## 加购添加加购升级记录;撤单删除加购升级记录;

This commit is contained in:
cabbage 2025-10-22 15:52:02 +08:00
parent 3d072ca1c8
commit 4ea9b98020
8 changed files with 111 additions and 14 deletions

View File

@ -0,0 +1,20 @@
package com.hzs.activity.add.dto;
import com.hzs.common.domain.activity.add.AcAddUpgradeRecord;
import com.hzs.system.config.dto.GradeDTO;
import lombok.Data;
@Data
public class AcAddUpgradeRecordDTO {
/**
* 加购升级记录
*/
private AcAddUpgradeRecord acAddUpgradeRecord;
/**
* 等级DTO
*/
private GradeDTO gradeDTO;
}

View File

@ -1,6 +1,7 @@
package com.hzs.activity.add.service; package com.hzs.activity.add.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.activity.add.dto.AcAddUpgradeRecordDTO;
import com.hzs.activity.add.param.AcAddUpgradeParam; import com.hzs.activity.add.param.AcAddUpgradeParam;
import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.activity.add.AcAddUpgradeConfig; import com.hzs.common.domain.activity.add.AcAddUpgradeConfig;
@ -25,8 +26,22 @@ public interface IAcAddUpgradeConfigService extends IService<AcAddUpgradeConfig>
AjaxResult getDetail(Integer pkId); AjaxResult getDetail(Integer pkId);
/**
* 判断是否满足加购升级显示使用
*
* @param orderParam
* @param orderReturn
*/
void handleAddUpgrade(OrderParam orderParam, OrderReturn orderReturn); void handleAddUpgrade(OrderParam orderParam, OrderReturn orderReturn);
GradeDTO handleAddUpgrade(Integer specialArea, List<SaOrderItems> orderItemsList, Integer pkGrade); /**
* 判断是否满足加购升级入库使用
*
* @param specialArea
* @param orderItemsList
* @param pkGrade
* @return
*/
AcAddUpgradeRecordDTO handleAddUpgrade(Integer specialArea, List<SaOrderItems> orderItemsList, Integer pkGrade);
} }

View File

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.activity.add.dto.AcAddUpgradeRecordDTO;
import com.hzs.activity.add.mapper.AcAddUpgradeConfigMapper; import com.hzs.activity.add.mapper.AcAddUpgradeConfigMapper;
import com.hzs.activity.add.param.*; import com.hzs.activity.add.param.*;
import com.hzs.activity.add.service.IAcAddUpgradeConfigService; import com.hzs.activity.add.service.IAcAddUpgradeConfigService;
@ -16,6 +17,7 @@ import com.hzs.common.core.enums.EActType;
import com.hzs.common.core.enums.EApprovalBusiness; import com.hzs.common.core.enums.EApprovalBusiness;
import com.hzs.common.core.enums.EControlType; import com.hzs.common.core.enums.EControlType;
import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.activity.add.AcAddUpgradeRecord;
import com.hzs.common.domain.activity.add.ext.AcAddUpgradeConfigExt; import com.hzs.common.domain.activity.add.ext.AcAddUpgradeConfigExt;
import com.hzs.common.domain.activity.base.AcBaseConfig; import com.hzs.common.domain.activity.base.AcBaseConfig;
import com.hzs.common.domain.activity.base.AcGoalMemberConfig; import com.hzs.common.domain.activity.base.AcGoalMemberConfig;
@ -209,7 +211,7 @@ public class AcAddUpgradeConfigServiceImpl extends ServiceImpl<AcAddUpgradeConfi
} }
@Override @Override
public GradeDTO handleAddUpgrade(Integer specialArea, List<SaOrderItems> orderItemsList, Integer pkGrade) { public AcAddUpgradeRecordDTO handleAddUpgrade(Integer specialArea, List<SaOrderItems> orderItemsList, Integer pkGrade) {
if (CollectionUtil.isEmpty(orderItemsList)) { if (CollectionUtil.isEmpty(orderItemsList)) {
return null; return null;
} }
@ -220,13 +222,22 @@ public class AcAddUpgradeConfigServiceImpl extends ServiceImpl<AcAddUpgradeConfi
for (SaOrderItems orderItemsParam : orderItemsList) { for (SaOrderItems orderItemsParam : orderItemsList) {
if (orderItemsParam.getPkWares().equals(configExt.getPkWares()) if (orderItemsParam.getPkWares().equals(configExt.getPkWares())
&& orderItemsParam.getWaresQuantity() >= configExt.getQuantity()) { && orderItemsParam.getWaresQuantity() >= configExt.getQuantity()) {
return GradeDTO.builder() AcAddUpgradeRecordDTO dto = new AcAddUpgradeRecordDTO();
dto.setAcAddUpgradeRecord(AcAddUpgradeRecord.builder()
.pkBaseId(configExt.getPkBaseId())
.pkRuleId(configExt.getPkId())
.pkOriginGrade(configExt.getOriginalLevel())
.pkUpgradeGrade(configExt.getUpgradeLevel())
.build());
dto.setGradeDTO(GradeDTO.builder()
.pkId(configExt.getUpgradeLevel()) .pkId(configExt.getUpgradeLevel())
.gradeValue(configExt.getGradeValue()) .gradeValue(configExt.getGradeValue())
.gradeName(configExt.getGradeName()) .gradeName(configExt.getGradeName())
.pkAwards(configExt.getPkAwards()) .pkAwards(configExt.getPkAwards())
.registerAuthority(configExt.getRegisterAuthority()) .registerAuthority(configExt.getRegisterAuthority())
.build(); .build());
return dto;
} }
} }
} }

View File

@ -482,7 +482,7 @@ public class ApiRegSaOrderController extends ParentOrderController {
// 返回计算等级 // 返回计算等级
OrderReturn orderReturn = getOrderService().computeLevel(orderParam); OrderReturn orderReturn = getOrderService().computeLevel(orderParam);
if (orderReturn.getIsEnough()) { if (orderReturn.getIsEnough()) {
// TODO 2025.10.20如果满足升级条件判断是否有加购升级活动 // 2025.10.20如果满足升级条件判断是否有加购升级活动
iAcAddUpgradeConfigService.handleAddUpgrade(orderParam, orderReturn); iAcAddUpgradeConfigService.handleAddUpgrade(orderParam, orderReturn);
return AjaxResult.success(orderReturn); return AjaxResult.success(orderReturn);
} else { } else {

View File

@ -12,8 +12,11 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.activity.add.dto.AcAddUpgradeRecordDTO;
import com.hzs.activity.add.service.IAcAddUpgradeConfigService; import com.hzs.activity.add.service.IAcAddUpgradeConfigService;
import com.hzs.activity.add.service.IAcAddUpgradeRecordService;
import com.hzs.activity.pick.service.IAcPickService; import com.hzs.activity.pick.service.IAcPickService;
import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.config.BdConfig;
import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.*;
@ -26,6 +29,7 @@ import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.utils.*; import com.hzs.common.core.utils.*;
import com.hzs.common.core.utils.reflect.ReflectUtils; import com.hzs.common.core.utils.reflect.ReflectUtils;
import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.activity.add.AcAddUpgradeRecord;
import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.base.CuMemberRegister; import com.hzs.common.domain.member.base.CuMemberRegister;
@ -86,6 +90,7 @@ import com.hzs.system.sys.dto.LoginUser;
import com.hzs.third.sms.ISmsServiceApi; import com.hzs.third.sms.ISmsServiceApi;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.bouncycastle.crypto.Wrapper;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -166,6 +171,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
private ISaOrderSyncService iSaOrderSyncService; private ISaOrderSyncService iSaOrderSyncService;
@Autowired @Autowired
private IAcAddUpgradeConfigService iAcAddUpgradeConfigService; private IAcAddUpgradeConfigService iAcAddUpgradeConfigService;
@Autowired
private IAcAddUpgradeRecordService iAcAddUpgradeRecordService;
@Autowired @Autowired
private UserTokenService userTokenService; private UserTokenService userTokenService;
@ -610,8 +617,11 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
} }
// TODO 2025.10.20 处理加购升级活动 // TODO 2025.10.20 处理加购升级活动
GradeDTO acGradeDTO = iAcAddUpgradeConfigService.handleAddUpgrade(saOrderExt.getOrderType(), orderItemsList, gradeDTO.getPkId()); AcAddUpgradeRecordDTO acAddUpgradeRecordDTO = iAcAddUpgradeConfigService.handleAddUpgrade(saOrderExt.getOrderType(), orderItemsList, gradeDTO.getPkId());
if (null != acGradeDTO) { if (null != acAddUpgradeRecordDTO) {
saOrderExt.setAcAddUpgradeRecord(acAddUpgradeRecordDTO.getAcAddUpgradeRecord());
GradeDTO acGradeDTO = acAddUpgradeRecordDTO.getGradeDTO();
// 达到活动升级需要处理 // 达到活动升级需要处理
cuMember.setPkSettleGrade(acGradeDTO.getPkId()); cuMember.setPkSettleGrade(acGradeDTO.getPkId());
cuMember.setPkSettleGradeValue(acGradeDTO.getGradeValue()); cuMember.setPkSettleGradeValue(acGradeDTO.getGradeValue());
@ -667,6 +677,15 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 保存订单明细 // 保存订单明细
iSaOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); iSaOrderItemsService.saveBatch(saOrderExt.getOrderItemsList());
if (null != saOrderExt.getAcAddUpgradeRecord()) {
// 2025.10.22 加购升级记录
AcAddUpgradeRecord acAddUpgradeRecord = saOrderExt.getAcAddUpgradeRecord();
acAddUpgradeRecord.setPkMember(saOrderExt.getPkMember());
acAddUpgradeRecord.setPkOrderId(saOrderExt.getPkId());
acAddUpgradeRecord.setPkCreator(saOrderExt.getPkMember());
iAcAddUpgradeRecordService.save(acAddUpgradeRecord);
}
// // 更新销量 // // 更新销量
// // 将订单表主键封装为明细表主键 // // 将订单表主键封装为明细表主键
// List<WaresNumberParam> waresNumberParamList = new ArrayList<>(); // List<WaresNumberParam> waresNumberParamList = new ArrayList<>();
@ -742,6 +761,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
@Override @Override
public Boolean payRegSaOrder(SaOrderExt saOrderExt, CuMember newCuMember, public Boolean payRegSaOrder(SaOrderExt saOrderExt, CuMember newCuMember,
CuMemberAccountExt cuMemberAccountExt, Boolean isHaiFun) { CuMemberAccountExt cuMemberAccountExt, Boolean isHaiFun) {
// 是否存在待支付true=存在
boolean isToBePay = getIsToBePayByOrderType(newCuMember.getPkSettleCountry(), saOrderExt.getOrderType()); boolean isToBePay = getIsToBePayByOrderType(newCuMember.getPkSettleCountry(), saOrderExt.getOrderType());
Date currentDateTime = DateUtils.currentDateTime(); Date currentDateTime = DateUtils.currentDateTime();
Long pkCreator = saOrderExt.getPkCreator(); Long pkCreator = saOrderExt.getPkCreator();
@ -939,6 +959,15 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
try { try {
updateById(saOrderExt); updateById(saOrderExt);
iSaOrderItemsService.updateBatchById(saOrderExt.getOrderItemsList()); iSaOrderItemsService.updateBatchById(saOrderExt.getOrderItemsList());
if (null != saOrderExt.getAcAddUpgradeRecord()) {
// 2025.10.22 加购升级记录
AcAddUpgradeRecord acAddUpgradeRecord = saOrderExt.getAcAddUpgradeRecord();
acAddUpgradeRecord.setPkMember(saOrderExt.getPkMember());
acAddUpgradeRecord.setPkOrderId(saOrderExt.getPkId());
acAddUpgradeRecord.setPkCreator(saOrderExt.getPkMember());
iAcAddUpgradeRecordService.save(acAddUpgradeRecord);
}
} finally { } finally {
redisService.unlock(CacheConstants.MEMBER_ORDER + saOrderExt.getOrderCode()); redisService.unlock(CacheConstants.MEMBER_ORDER + saOrderExt.getOrderCode());
} }
@ -1668,6 +1697,14 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
} }
cuMember.setConsumeAchieve(gradeDTO.getStartValue()); cuMember.setConsumeAchieve(gradeDTO.getStartValue());
} }
// 删除加购升级数据
iAcAddUpgradeRecordService.update(Wrappers.<AcAddUpgradeRecord>lambdaUpdate()
.eq(AcAddUpgradeRecord::getPkMember,saOrderExt.getPkMember())
.eq(AcAddUpgradeRecord::getPkOrderId, saOrderExt.getPkId())
.eq(AcAddUpgradeRecord::getDelFlag, EDelFlag.UN_DELETE.getValue())
.set(AcAddUpgradeRecord::getDelFlag, EDelFlag.DELETE.getValue())
);
} else if (EOrderType.PICK_ORDER.getValue() == saOrderExt.getOrderType()) { } else if (EOrderType.PICK_ORDER.getValue() == saOrderExt.getOrderType()) {
// 提货订单 // 提货订单
if (!iAcPickService.cancelPickOrder(saOrderExt.getOrderCode(), pkApprove)) { if (!iAcPickService.cancelPickOrder(saOrderExt.getOrderCode(), pkApprove)) {
@ -1679,7 +1716,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
} }
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType() if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()
&& EOrderTypeExtend.REG_REP.getValue() == saOrderExt.getOrderTypeExtend()) { && EOrderTypeExtend.REG_REP.getValue().equals(saOrderExt.getOrderTypeExtend())) {
// 注册转复购订单走的是注册订单的撤单流程 // 注册转复购订单走的是注册订单的撤单流程
R<Boolean> tmpR = iMemberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO); R<Boolean> tmpR = iMemberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO);
if (!tmpR.isSuccess()) { if (!tmpR.isSuccess()) {
@ -1999,13 +2036,15 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
saOrderExt.setPayType(EOrderPayType.ONLINE.getValue()); saOrderExt.setPayType(EOrderPayType.ONLINE.getValue());
} }
if (newCuMember == null) { if (newCuMember == null) {
throw new RuntimeException("生成会员失败"); throw new ServiceException("1.订单生成会员失败");
} }
payRegSaOrder(saOrderExt, newCuMember, null, Boolean.FALSE); payRegSaOrder(saOrderExt, newCuMember, null, Boolean.FALSE);
} else if (EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType() } else if (EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()
|| EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) { || EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
// 升级订单 // 升级订单
payUpgradeSaOrder(saOrderExt, null); if (payUpgradeSaOrder(saOrderExt, null)) {
throw new ServiceException("2.订单处理失败");
}
} else { } else {
// 其他订单 // 其他订单
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType() if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()
@ -2024,7 +2063,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
saOrderExt = packageWholeSaOrder(orderParam, newCuMember); saOrderExt = packageWholeSaOrder(orderParam, newCuMember);
saOrderExt.setPayType(EOrderPayType.ONLINE.getValue()); saOrderExt.setPayType(EOrderPayType.ONLINE.getValue());
if (!payReyZeroOrder(saOrderExt, newCuMember)) { if (!payReyZeroOrder(saOrderExt, newCuMember)) {
throw new ServiceException("会员或订单处理失败"); throw new ServiceException("3.会员或订单处理失败");
} }
} else { } else {
// 188分享订单复购订单 扩展类型为 注册转复购 // 188分享订单复购订单 扩展类型为 注册转复购
@ -2048,7 +2087,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
} }
if (newCuMember == null) { if (newCuMember == null) {
throw new RuntimeException("生成会员失败"); throw new RuntimeException("4.生成会员失败");
} }
payRegSaOrder(saOrderExt, newCuMember, null, Boolean.TRUE); payRegSaOrder(saOrderExt, newCuMember, null, Boolean.TRUE);
} }

View File

@ -5,8 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.core.web.domain.BaseEntity;
import lombok.Data; import lombok.*;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
@ -17,6 +16,9 @@ import lombok.experimental.Accessors;
* @author bd * @author bd
* @since 2025-10-13 * @since 2025-10-13
*/ */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel; import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.core.web.domain.BaseEntity;
import com.hzs.common.domain.activity.add.AcAddUpgradeRecord;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;

View File

@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.core.web.domain.BaseEntity;
import com.hzs.common.domain.activity.add.AcAddUpgradeRecord;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -226,4 +228,11 @@ public class SaOrder extends BaseEntity {
@TableField("BOX_NUM") @TableField("BOX_NUM")
private Integer boxNum; private Integer boxNum;
/**
* 活动升级数据
*/
@JsonIgnore
@TableField(exist = false)
private AcAddUpgradeRecord acAddUpgradeRecord;
} }