master:返回档口会员金额及正式版金额调整;

pull/1121/head
liujiang 2025-11-16 17:06:37 +08:00
parent d804726b95
commit 473f3745a4
7 changed files with 38 additions and 18 deletions

View File

@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
* @author ruoyi
* @date 2025-03-26
*/
@Api(tags = "档口生产需求下载模板")
@Api(tags = "档口生产需求模板")
@RestController
@RequiredArgsConstructor
@RequestMapping("/rest/v1/store-templates")
@ -37,8 +37,8 @@ public class StoreProductDemandTemplateController extends XktBaseController {
}
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()")
@Log(title = "更新档口需求下载模板", businessType = BusinessType.UPDATE)
@ApiOperation(value = "更新档口需求下载模板", httpMethod = "PUT", response = R.class)
@Log(title = "更新档口需求模板", businessType = BusinessType.UPDATE)
@ApiOperation(value = "更新档口需求模板", httpMethod = "PUT", response = R.class)
@PutMapping("")
public R<Integer> updateTemplate(@RequestBody StoreDemandTemplateUpdateVO updateVO) {
return R.ok(templateService.updateTemplate(BeanUtil.toBean(updateVO, StoreDemandTemplateUpdateDTO.class)));

View File

@ -22,7 +22,9 @@ public class StoreExpireResVO {
private Date serviceEndTime;
@ApiModelProperty(value = "试用金额 正式版金额")
private BigDecimal serviceAmount;
@ApiModelProperty(value = "会员过期时间")
@ApiModelProperty(value = "会员状态 null 1:未购买待审核 2:已购买待审核 3:审核通过(正式使用)")
private Integer memberStatus;
@ApiModelProperty(value = "会员过期时间 未购买待审核没有时间")
private Date memberEndTime;
@ApiModelProperty(value = "会员金额")
private BigDecimal memberAmount;

View File

@ -51,7 +51,7 @@ public class StoreDemandTemplateResVO {
private Integer selectFacName;
@ApiModelProperty(value = "商品信息 需求单号")
private Integer selectDemandCode;
@ApiModelProperty(value = "商品信息 单时间")
@ApiModelProperty(value = "商品信息 单时间")
private Integer selectMakeTime;
@ApiModelProperty(value = "商品信息 工厂货号")
private Integer selectFactoryArtNum;
@ -67,9 +67,9 @@ public class StoreDemandTemplateResVO {
private Integer selectDemandStatus;
@ApiModelProperty(value = "商品信息 紧急程度 0正常 1紧急")
private Integer selectEmergency;
@ApiModelProperty(value = "商品信息 总需求数量")
@ApiModelProperty(value = "商品信息 总数量")
private Integer selectQuantity;
@ApiModelProperty(value = "工艺信息 客户名称")
@ApiModelProperty(value = "工艺信息 客户")
private Integer selectPartnerName;
@ApiModelProperty(value = "工艺信息 商标")
private Integer selectTrademark;

View File

@ -24,7 +24,9 @@ public class StoreExpireResDTO {
private Date serviceEndTime;
@ApiModelProperty(value = "试用金额 正式版金额")
private BigDecimal serviceAmount;
@ApiModelProperty(value = "会员过期时间")
@ApiModelProperty(value = "会员状态 null 1:未购买待审核 2:已购买待审核 3:审核通过(正式使用)")
private Integer memberStatus;
@ApiModelProperty(value = "会员过期时间 未购买待审核没有时间")
private Date memberEndTime;
@ApiModelProperty(value = "会员金额")
private BigDecimal memberAmount;

View File

@ -18,8 +18,8 @@ public enum StoreMemberStatus {
// 未购买待审核
WAIT_AUDIT(1, "未购买待审核"),
// 已购买待审核(续费状态)
BOUGHT_WAIT_AUDIT(2, "已购买待审核"),
// 审核通过(正式使用
BOUGHT_WAIT_AUDIT(2, "已购买待审核"),
// 审核通过(正式成为会员
AUDIT_PASS(3, "审核通过"),
// 审核拒绝
AUDIT_REJECT(4, "审核拒绝"),

View File

@ -176,6 +176,8 @@ public class StoreMemberServiceImpl implements IStoreMemberService {
Store store = Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper<Store>()
.eq(Store::getId, storeMember.getStoreId()).eq(Store::getDelFlag, Constants.UNDELETED)))
.orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR));
// 将档口购买优惠金额置为null
store.setMemberAmount(null);
store.setStoreWeight(ObjectUtils.defaultIfNull(store.getStoreWeight(), 0) + 1);
this.storeMapper.updateById(store);
// 将档口会员信息添加到 redis 中

View File

@ -434,6 +434,9 @@ public class StoreServiceImpl implements IStoreService {
/**
*
* 1.
* 2. 使 [使 ]
* 3. 使
*
* @param storeId ID
* @return StoreExpireResDTO
@ -441,16 +444,27 @@ public class StoreServiceImpl implements IStoreService {
@Override
@Transactional(readOnly = true)
public StoreExpireResDTO getExpireInfo(Long storeId) {
// 用户是否为档口管理者或子账户
if (!SecurityUtils.isAdmin() && !SecurityUtils.isStoreManagerOrSub(storeId)) {
throw new ServiceException("当前用户非管理员账号,无权限操作!", HttpStatus.ERROR);
}
Store store = Optional.ofNullable(storeMapper.selectById(storeId)).orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR));
StoreExpireResDTO expireDTO = new StoreExpireResDTO().setStoreId(storeId).setServiceEndTime(store.getServiceEndTime())
.setServiceAmount(ObjectUtils.defaultIfNull(store.getServiceAmount(), Constants.STORE_ANNUAL_AMOUNT))
.setMemberAmount(ObjectUtils.defaultIfNull(store.getMemberAmount(), Constants.STORE_MEMBER_AMOUNT));
// 获取档口会员
Date todayStart = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
// 是否已购买会员
StoreMember storeMember = this.storeMemberMapper.selectOne(new LambdaQueryWrapper<StoreMember>()
.eq(StoreMember::getStoreId, storeId).eq(StoreMember::getDelFlag, Constants.UNDELETED)
.le(StoreMember::getStartTime, todayStart));
return expireDTO.setMemberEndTime(ObjectUtils.isNotEmpty(storeMember) ? storeMember.getEndTime() : null);
.eq(StoreMember::getMemberStatus, StoreMemberStatus.AUDIT_PASS.getValue()));
BigDecimal serviceAmount = ObjectUtils.defaultIfNull(store.getServiceAmount(), Constants.STORE_ANNUAL_AMOUNT);
BigDecimal memberAmount = ObjectUtils.defaultIfNull(store.getMemberAmount(), Constants.STORE_MEMBER_AMOUNT);
// 如果档口为正式使用,则返回 diff 值
if (Objects.equals(store.getStoreStatus(), StoreStatus.FORMAL_USE.getValue())) {
// 如果会员价设置的价 比 年费低,则 自动使用默认价格 ;防止误操作
memberAmount = memberAmount.compareTo(serviceAmount) <= 0
? Constants.STORE_MEMBER_AMOUNT.subtract(serviceAmount) : memberAmount.subtract(serviceAmount);
}
return new StoreExpireResDTO().setStoreId(storeId).setServiceEndTime(store.getServiceEndTime())
.setServiceAmount(serviceAmount).setMemberAmount(memberAmount)
.setMemberEndTime(ObjectUtils.isNotEmpty(storeMember) ? storeMember.getEndTime() : null)
.setMemberStatus(ObjectUtils.isNotEmpty(storeMember) ? storeMember.getMemberStatus() : null);
}
/**
@ -840,7 +854,7 @@ public class StoreServiceImpl implements IStoreService {
this.storeCusMapper.insert(new StoreCustomer().setStoreId(storeId).setPhone(contactPhone).setCusName(Constants.STORE_CUS_CASH));
// 创建默认的工厂
this.storeFactoryMapper.insert(new StoreFactory().setFacName(storeName + "工厂"));
// 创建默认的需求下载模板
// 创建默认的需求模板
this.storeTemplateService.initTemplate(storeId);
}