## 加购升级处理;
This commit is contained in:
		
							parent
							
								
									c936497f13
								
							
						
					
					
						commit
						3c78541b6d
					
				|  | @ -5,6 +5,7 @@ import com.hzs.activity.add.param.AcAddUpgradeListParam; | ||||||
| import com.hzs.activity.add.param.AcAddUpgradeRuleConfigParam; | import com.hzs.activity.add.param.AcAddUpgradeRuleConfigParam; | ||||||
| import com.hzs.common.domain.activity.add.AcAddUpgradeConfig; | import com.hzs.common.domain.activity.add.AcAddUpgradeConfig; | ||||||
| import com.hzs.activity.add.vo.AcAddUpgradeListVO; | import com.hzs.activity.add.vo.AcAddUpgradeListVO; | ||||||
|  | import com.hzs.common.domain.activity.add.ext.AcAddUpgradeConfigExt; | ||||||
| import com.hzs.common.domain.system.config.BdGrade; | import com.hzs.common.domain.system.config.BdGrade; | ||||||
| import org.apache.ibatis.annotations.Param; | import org.apache.ibatis.annotations.Param; | ||||||
| 
 | 
 | ||||||
|  | @ -28,4 +29,19 @@ public interface AcAddUpgradeConfigMapper extends BaseMapper<AcAddUpgradeConfig> | ||||||
|     List<AcAddUpgradeListVO> queryList(AcAddUpgradeListParam param); |     List<AcAddUpgradeListVO> queryList(AcAddUpgradeListParam param); | ||||||
| 
 | 
 | ||||||
|     BdGrade selectGradeValue(@Param("pkId") Integer pkId); |     BdGrade selectGradeValue(@Param("pkId") Integer pkId); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 查询符合条件的规则 | ||||||
|  |      */ | ||||||
|  |     AcAddUpgradeConfigExt getUpgradeConfig(@Param("orderType") Integer orderType, | ||||||
|  |                                            @Param("waresCodeList") List<String> waresCodeList, | ||||||
|  |                                            @Param("pkGrade") Integer pkGrade); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 查询符合条件的规则 | ||||||
|  |      */ | ||||||
|  |     AcAddUpgradeConfigExt getUpgradeConfigByPkWares(@Param("orderType") Integer orderType, | ||||||
|  |                                                     @Param("pkWaresList") List<Integer> pkWaresList, | ||||||
|  |                                                     @Param("pkGrade") Integer pkGrade); | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,8 +2,14 @@ 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.param.AcAddUpgradeParam; | import com.hzs.activity.add.param.AcAddUpgradeParam; | ||||||
| import com.hzs.common.domain.activity.add.AcAddUpgradeConfig; |  | ||||||
| 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.sale.order.SaOrderItems; | ||||||
|  | import com.hzs.sale.order.param.OrderParam; | ||||||
|  | import com.hzs.sale.order.param.OrderReturn; | ||||||
|  | import com.hzs.system.config.dto.GradeDTO; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * <p> |  * <p> | ||||||
|  | @ -18,4 +24,9 @@ public interface IAcAddUpgradeConfigService extends IService<AcAddUpgradeConfig> | ||||||
|     String onLinePetition(AcAddUpgradeParam acAddUpgradeParam); |     String onLinePetition(AcAddUpgradeParam acAddUpgradeParam); | ||||||
| 
 | 
 | ||||||
|     AjaxResult getDetail(Integer pkId); |     AjaxResult getDetail(Integer pkId); | ||||||
|  | 
 | ||||||
|  |     void handleAddUpgrade(OrderParam orderParam, OrderReturn orderReturn); | ||||||
|  | 
 | ||||||
|  |     GradeDTO handleAddUpgrade(Integer specialArea, List<SaOrderItems> orderItemsList, Integer pkGrade); | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| package com.hzs.activity.add.service.impl; | package com.hzs.activity.add.service.impl; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||||
|  | 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.mapper.AcAddUpgradeConfigMapper; | import com.hzs.activity.add.mapper.AcAddUpgradeConfigMapper; | ||||||
|  | @ -15,10 +16,16 @@ 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.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; | ||||||
|  | import com.hzs.common.domain.sale.order.SaOrderItems; | ||||||
| import com.hzs.common.domain.system.config.BdGrade; | import com.hzs.common.domain.system.config.BdGrade; | ||||||
| import com.hzs.common.security.utils.SecurityUtils; | import com.hzs.common.security.utils.SecurityUtils; | ||||||
|  | import com.hzs.sale.order.param.OrderItemsParam; | ||||||
|  | import com.hzs.sale.order.param.OrderParam; | ||||||
|  | import com.hzs.sale.order.param.OrderReturn; | ||||||
|  | import com.hzs.system.config.dto.GradeDTO; | ||||||
| import com.hzs.system.sys.dto.LoginUser; | import com.hzs.system.sys.dto.LoginUser; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | @ -26,6 +33,7 @@ import org.springframework.stereotype.Service; | ||||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||||
| 
 | 
 | ||||||
| import java.util.*; | import java.util.*; | ||||||
|  | import java.util.stream.Collectors; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * <p> |  * <p> | ||||||
|  | @ -75,7 +83,7 @@ public class AcAddUpgradeConfigServiceImpl extends ServiceImpl<AcAddUpgradeConfi | ||||||
|             // 新增活动基本配置 |             // 新增活动基本配置 | ||||||
|             AcBaseConfig acBaseConfig = iActivityService.saveBaseConfig(activityParam); |             AcBaseConfig acBaseConfig = iActivityService.saveBaseConfig(activityParam); | ||||||
|             // 新增加购活动配置 |             // 新增加购活动配置 | ||||||
|             saveAddUpgradeConfig(acAddUpgradeParam.getAcAddUpgradeConfigParam(),acBaseConfig); |             saveAddUpgradeConfig(acAddUpgradeParam.getAcAddUpgradeConfigParam(), acBaseConfig); | ||||||
|         } else if (acAddUpgradeParam.getControlType().equals(EControlType.MODIFY.getValue())) { |         } else if (acAddUpgradeParam.getControlType().equals(EControlType.MODIFY.getValue())) { | ||||||
|             ActivityParam activityParam = acAddUpgradeParam.getActivityParam(); |             ActivityParam activityParam = acAddUpgradeParam.getActivityParam(); | ||||||
|             activityParam.setPkCountry(loginUser.getDataCountry()); |             activityParam.setPkCountry(loginUser.getDataCountry()); | ||||||
|  | @ -140,11 +148,11 @@ public class AcAddUpgradeConfigServiceImpl extends ServiceImpl<AcAddUpgradeConfi | ||||||
|             baseMapper.delete(new LambdaQueryWrapper<AcAddUpgradeConfig>() |             baseMapper.delete(new LambdaQueryWrapper<AcAddUpgradeConfig>() | ||||||
|                     .eq(AcAddUpgradeConfig::getPkBaseId, pkId)); |                     .eq(AcAddUpgradeConfig::getPkBaseId, pkId)); | ||||||
|             // 添加加购活动配置 |             // 添加加购活动配置 | ||||||
|             saveAddUpgradeConfig(acAddUpgradeConfigParam,baseConfig); |             saveAddUpgradeConfig(acAddUpgradeConfigParam, baseConfig); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void saveAddUpgradeConfig(List<AcAddUpgradeConfigParam> acAddUpgradeConfigParam,AcBaseConfig acBaseConfig) { |     private void saveAddUpgradeConfig(List<AcAddUpgradeConfigParam> acAddUpgradeConfigParam, AcBaseConfig acBaseConfig) { | ||||||
|         acAddUpgradeConfigParam.forEach(item -> { |         acAddUpgradeConfigParam.forEach(item -> { | ||||||
|             List<AcAddUpgradeRuleConfigParam> acAddUpgradeRuleConfigParams = item.getAcAddUpgradeRuleConfigParams(); |             List<AcAddUpgradeRuleConfigParam> acAddUpgradeRuleConfigParams = item.getAcAddUpgradeRuleConfigParams(); | ||||||
|             if (acAddUpgradeRuleConfigParams != null) { |             if (acAddUpgradeRuleConfigParams != null) { | ||||||
|  | @ -178,4 +186,37 @@ public class AcAddUpgradeConfigServiceImpl extends ServiceImpl<AcAddUpgradeConfi | ||||||
| 
 | 
 | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void handleAddUpgrade(OrderParam orderParam, OrderReturn orderReturn) { | ||||||
|  |         List<OrderItemsParam> orderItemsParams = orderParam.getOrderItemsParams(); | ||||||
|  |         if (CollectionUtil.isEmpty(orderItemsParams)) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         List<String> waresCodeList = orderItemsParams.stream().map(OrderItemsParam::getWaresCode).collect(Collectors.toList()); | ||||||
|  | 
 | ||||||
|  |         AcAddUpgradeConfigExt configExt = baseMapper.getUpgradeConfig(orderParam.getSpecialArea(), waresCodeList, orderReturn.getPkGradeTmp()); | ||||||
|  |         if (null != configExt) { | ||||||
|  |             orderReturn.setPkGradeVal(configExt.getGradeName()); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public GradeDTO handleAddUpgrade(Integer specialArea, List<SaOrderItems> orderItemsList, Integer pkGrade) { | ||||||
|  |         if (CollectionUtil.isEmpty(orderItemsList)) { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         List<Integer> pkWaresList = orderItemsList.stream().map(SaOrderItems::getPkWares).collect(Collectors.toList()); | ||||||
|  |         AcAddUpgradeConfigExt configExt = baseMapper.getUpgradeConfigByPkWares(specialArea, pkWaresList, pkGrade); | ||||||
|  |         if (null != configExt) { | ||||||
|  |             return GradeDTO.builder() | ||||||
|  |                     .pkId(configExt.getUpgradeLevel()) | ||||||
|  |                     .gradeName(configExt.getGradeName()) | ||||||
|  |                     .pkAwards(configExt.getPkAwards()) | ||||||
|  |                     .registerAuthority(configExt.getRegisterAuthority()) | ||||||
|  |                     .build(); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ package com.hzs.sale.order.controller.api; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||||
| import cn.hutool.core.collection.CollectionUtil; | import cn.hutool.core.collection.CollectionUtil; | ||||||
|  | import com.hzs.activity.add.service.IAcAddUpgradeConfigService; | ||||||
| import com.hzs.activity.pick.IAcPickServiceApi; | import com.hzs.activity.pick.IAcPickServiceApi; | ||||||
| import com.hzs.common.core.annotation.RepeatSubmit; | import com.hzs.common.core.annotation.RepeatSubmit; | ||||||
| import com.hzs.common.core.config.BdConfig; | import com.hzs.common.core.config.BdConfig; | ||||||
|  | @ -32,6 +33,7 @@ import com.hzs.system.config.IGradeServiceApi; | ||||||
| import com.hzs.system.config.dto.GradeDTO; | import com.hzs.system.config.dto.GradeDTO; | ||||||
| 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.springframework.beans.factory.annotation.Autowired; | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
| 
 | 
 | ||||||
|  | @ -47,6 +49,9 @@ import java.util.concurrent.TimeUnit; | ||||||
| @Slf4j | @Slf4j | ||||||
| public class ApiRegSaOrderController extends ParentOrderController { | public class ApiRegSaOrderController extends ParentOrderController { | ||||||
| 
 | 
 | ||||||
|  |     @Autowired | ||||||
|  |     private IAcAddUpgradeConfigService iAcAddUpgradeConfigService; | ||||||
|  | 
 | ||||||
|     @DubboReference |     @DubboReference | ||||||
|     IGradeServiceApi iGradeServiceApi; |     IGradeServiceApi iGradeServiceApi; | ||||||
|     @DubboReference |     @DubboReference | ||||||
|  | @ -251,7 +256,8 @@ public class ApiRegSaOrderController extends ParentOrderController { | ||||||
|                     CuMember parentCuMember = getOrderService().getCuMemberByKey(cuMember.getPkParent()); |                     CuMember parentCuMember = getOrderService().getCuMemberByKey(cuMember.getPkParent()); | ||||||
|                     CuMember placeCuMember = getOrderService().getCuMemberByKey(cuMember.getPkPlaceParent()); |                     CuMember placeCuMember = getOrderService().getCuMemberByKey(cuMember.getPkPlaceParent()); | ||||||
|                     GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); |                     GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); | ||||||
|                     orderReturn.setPkGrade(gradeDTO.getPkTransaction()); |                     orderReturn.setPkGrade(gradeDTO.getPkId()); | ||||||
|  |                     orderReturn.setPkGradeVal(gradeDTO.getGradeName()); | ||||||
|                     orderReturn.setPhone(cuMember.getPhone()); |                     orderReturn.setPhone(cuMember.getPhone()); | ||||||
|                     orderReturn.setParent(CommonUtil.getMemberCode(parentCuMember.getMemberCode(), parentCuMember.getServiceCode())); |                     orderReturn.setParent(CommonUtil.getMemberCode(parentCuMember.getMemberCode(), parentCuMember.getServiceCode())); | ||||||
|                     orderReturn.setPlaceParent(CommonUtil.getMemberCode(placeCuMember.getMemberCode(), placeCuMember.getServiceCode())); |                     orderReturn.setPlaceParent(CommonUtil.getMemberCode(placeCuMember.getMemberCode(), placeCuMember.getServiceCode())); | ||||||
|  | @ -266,9 +272,10 @@ public class ApiRegSaOrderController extends ParentOrderController { | ||||||
|                     orderReturn.setSource(cuMember.getSource()); |                     orderReturn.setSource(cuMember.getSource()); | ||||||
|                 } else if (EOrderType.UPGRADE_ORDER.getValue() == saOrder.getOrderType() || |                 } else if (EOrderType.UPGRADE_ORDER.getValue() == saOrder.getOrderType() || | ||||||
|                         EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrder.getOrderType()) { |                         EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrder.getOrderType()) { | ||||||
|                     getOrderService().setLastCuMemberGrade(cuMember, saOrder); |                     getOrderService().setLastCuMemberGrade(cuMember, saOrder, null); | ||||||
|                     GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); |                     GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); | ||||||
|                     orderReturn.setPkGrade(gradeDTO.getPkTransaction()); |                     orderReturn.setPkGrade(gradeDTO.getPkId()); | ||||||
|  |                     orderReturn.setPkGradeVal(gradeDTO.getGradeName()); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } else if (EOrderType.PICK_ORDER.getValue() == orderParam.getSpecialArea()) { |         } else if (EOrderType.PICK_ORDER.getValue() == orderParam.getSpecialArea()) { | ||||||
|  | @ -282,7 +289,8 @@ public class ApiRegSaOrderController extends ParentOrderController { | ||||||
|             orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + SecurityUtils.getUserId() + orderParam.getOrderCode()); |             orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + SecurityUtils.getUserId() + orderParam.getOrderCode()); | ||||||
|             if (orderParam.getPkGrade() != null) { |             if (orderParam.getPkGrade() != null) { | ||||||
|                 GradeDTO gradeDTO = iGradeServiceApi.getGrade(orderParam.getPkGrade()).getData(); |                 GradeDTO gradeDTO = iGradeServiceApi.getGrade(orderParam.getPkGrade()).getData(); | ||||||
|                 orderReturn.setPkGrade(gradeDTO.getPkTransaction()); |                 orderReturn.setPkGrade(gradeDTO.getPkId()); | ||||||
|  |                 orderReturn.setPkGradeVal(gradeDTO.getGradeName()); | ||||||
|             } |             } | ||||||
|             orderReturn.setMemberCode(orderParam.getMemberCode()); |             orderReturn.setMemberCode(orderParam.getMemberCode()); | ||||||
|             orderReturn.setMemberName(orderParam.getMemberName()); |             orderReturn.setMemberName(orderParam.getMemberName()); | ||||||
|  | @ -474,6 +482,8 @@ 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,如果满足升级条件,判断是否有加购升级活动 | ||||||
|  |             iAcAddUpgradeConfigService.handleAddUpgrade(orderParam, orderReturn); | ||||||
|             return AjaxResult.success(orderReturn); |             return AjaxResult.success(orderReturn); | ||||||
|         } else { |         } else { | ||||||
|             if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || |             if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || | ||||||
|  |  | ||||||
|  | @ -117,7 +117,6 @@ public class OrderReturn implements Serializable { | ||||||
|     /** |     /** | ||||||
|      * 等级 |      * 等级 | ||||||
|      */ |      */ | ||||||
|     @Transaction(transactionKey = EnumsPrefixConstants.KEY_GRADE) |  | ||||||
|     private Integer pkGrade; |     private Integer pkGrade; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | @ -125,6 +124,11 @@ public class OrderReturn implements Serializable { | ||||||
|      */ |      */ | ||||||
|     private String pkGradeVal; |     private String pkGradeVal; | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * 临时等级值 | ||||||
|  |      */ | ||||||
|  |     private Integer pkGradeTmp; | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * 手机号码 |      * 手机号码 | ||||||
|      */ |      */ | ||||||
|  |  | ||||||
|  | @ -172,7 +172,7 @@ public interface ISaOrderService extends IService<SaOrder> { | ||||||
|     /* |     /* | ||||||
|      *  这是会员等级 |      *  这是会员等级 | ||||||
|      **/ |      **/ | ||||||
|     Boolean setLastCuMemberGrade(CuMember cuMember, SaOrder saOrderExt); |     Boolean setLastCuMemberGrade(CuMember cuMember, SaOrder saOrderExt, List<SaOrderItems> orderItemsList); | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 点击支付按钮,输入密码,确认下单(注册订单) |      * 点击支付按钮,输入密码,确认下单(注册订单) | ||||||
|  |  | ||||||
|  | @ -13,6 +13,7 @@ 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.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||||
|  | import com.hzs.activity.add.service.IAcAddUpgradeConfigService; | ||||||
| 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.*; | ||||||
|  | @ -163,6 +164,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|     private IBdWaresMemberLimitService iBdWaresMemberLimitService; |     private IBdWaresMemberLimitService iBdWaresMemberLimitService; | ||||||
|     @Autowired |     @Autowired | ||||||
|     private ISaOrderSyncService iSaOrderSyncService; |     private ISaOrderSyncService iSaOrderSyncService; | ||||||
|  |     @Autowired | ||||||
|  |     private IAcAddUpgradeConfigService iAcAddUpgradeConfigService; | ||||||
| 
 | 
 | ||||||
|     @Autowired |     @Autowired | ||||||
|     private UserTokenService userTokenService; |     private UserTokenService userTokenService; | ||||||
|  | @ -474,7 +477,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
| 
 | 
 | ||||||
|         SaOrderExt saOrderExt = packageWholeSaOrder(orderParam, cuMember); |         SaOrderExt saOrderExt = packageWholeSaOrder(orderParam, cuMember); | ||||||
|         // 设置会员等级 |         // 设置会员等级 | ||||||
|         if (setLastCuMemberGrade(cuMember, saOrderExt)) { |         if (setLastCuMemberGrade(cuMember, saOrderExt, saOrderExt.getOrderItemsList())) { | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
|         // cabbage 这个位置的订单只用于注册订单确认,支付单独有别的地方处理 |         // cabbage 这个位置的订单只用于注册订单确认,支付单独有别的地方处理 | ||||||
|  | @ -511,7 +514,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|     @Override |     @Override | ||||||
|     public SaOrderExt packageSaOrder(OrderParam orderParam, CuMember cuMember) { |     public SaOrderExt packageSaOrder(OrderParam orderParam, CuMember cuMember) { | ||||||
|         SaOrderExt saOrderExt = packageWholeSaOrder(orderParam, cuMember); |         SaOrderExt saOrderExt = packageWholeSaOrder(orderParam, cuMember); | ||||||
|         if (setLastCuMemberGrade(cuMember, saOrderExt)) { |         if (setLastCuMemberGrade(cuMember, saOrderExt, null)) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         // cabbage 这个位置的订单只用于注册订单支付,支付这个处理和确认不是一个地方 |         // cabbage 这个位置的订单只用于注册订单支付,支付这个处理和确认不是一个地方 | ||||||
|  | @ -549,7 +552,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public Boolean setLastCuMemberGrade(CuMember cuMember, SaOrder saOrderExt) { |     public Boolean setLastCuMemberGrade(CuMember cuMember, SaOrder saOrderExt, List<SaOrderItems> orderItemsList) { | ||||||
|         OrderReturn orderReturn = OrderReturn.builder().isEnough(false).build(); |         OrderReturn orderReturn = OrderReturn.builder().isEnough(false).build(); | ||||||
|         GradeDTO gradeDTO = calculateGradeDTO(saOrderExt.getOrderType(), cuMember.getPkSettleCountry(), cuMember.getPkId(), saOrderExt, orderReturn); |         GradeDTO gradeDTO = calculateGradeDTO(saOrderExt.getOrderType(), cuMember.getPkSettleCountry(), cuMember.getPkId(), saOrderExt, orderReturn); | ||||||
| 
 | 
 | ||||||
|  | @ -606,27 +609,49 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         // 判断奖衔,原会员有奖衔的话判断哪个大,使用大的 |         // TODO 2025.10.20 处理加购升级活动 | ||||||
|         if (pkAwards != null && gradeDTO.getGradeValue() != null) { |         GradeDTO acGradeDTO = iAcAddUpgradeConfigService.handleAddUpgrade(saOrderExt.getOrderType(), orderItemsList, gradeDTO.getPkId()); | ||||||
|             BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(pkAwards).getData(); |         if (null != acGradeDTO) { | ||||||
|             BdAwards newAwards = iAwardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData(); |             // 达到活动升级,需要处理 | ||||||
|             if (bdAwards.getAwardsValue() < newAwards.getAwardsValue()) { |             cuMember.setPkSettleGrade(acGradeDTO.getPkId()); | ||||||
|                 cuMember.setPkAwards(gradeDTO.getPkAwards()); |             cuMember.setPkSettleGradeValue(acGradeDTO.getGradeValue()); | ||||||
|  | 
 | ||||||
|  |             if (pkAwards != null && acGradeDTO.getGradeValue() != null) { | ||||||
|  |                 BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(pkAwards).getData(); | ||||||
|  |                 BdAwards newAwards = iAwardsServiceApi.getAwardsOne(acGradeDTO.getPkAwards()).getData(); | ||||||
|  |                 if (bdAwards.getAwardsValue() < newAwards.getAwardsValue()) { | ||||||
|  |                     cuMember.setPkAwards(acGradeDTO.getPkAwards()); | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 cuMember.setPkAwards(acGradeDTO.getPkAwards()); | ||||||
|  |             } | ||||||
|  |             if (cuMember.getRegisterAuthority() == null || cuMember.getRegisterAuthority() < acGradeDTO.getRegisterAuthority()) { | ||||||
|  |                 cuMember.setRegisterAuthority(acGradeDTO.getRegisterAuthority()); | ||||||
|             } |             } | ||||||
|         } else { |  | ||||||
|             cuMember.setPkAwards(gradeDTO.getPkAwards()); |  | ||||||
|         } |  | ||||||
|         // 等级对应的结算值 |  | ||||||
|         cuMember.setConsumeMoney(saOrderExt.getOrderAmount()); |  | ||||||
|         if (EGrade.HAI_FAN.getValue() == gradeDTO.getGradeValue()) { |  | ||||||
|             // 顾客注册会员显示订单业绩 |  | ||||||
|             cuMember.setConsumeAchieve(saOrderExt.getOrderAchieve()); |             cuMember.setConsumeAchieve(saOrderExt.getOrderAchieve()); | ||||||
|         } else { |         } else { | ||||||
|             cuMember.setConsumeAchieve(gradeDTO.getStartValue()); |             // 判断奖衔,原会员有奖衔的话判断哪个大,使用大的 | ||||||
|         } |             if (pkAwards != null && gradeDTO.getGradeValue() != null) { | ||||||
|         if (cuMember.getRegisterAuthority() == null || cuMember.getRegisterAuthority() < gradeDTO.getRegisterAuthority()) { |                 BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(pkAwards).getData(); | ||||||
|             cuMember.setRegisterAuthority(gradeDTO.getRegisterAuthority()); |                 BdAwards newAwards = iAwardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData(); | ||||||
|  |                 if (bdAwards.getAwardsValue() < newAwards.getAwardsValue()) { | ||||||
|  |                     cuMember.setPkAwards(gradeDTO.getPkAwards()); | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 cuMember.setPkAwards(gradeDTO.getPkAwards()); | ||||||
|  |             } | ||||||
|  |             if (cuMember.getRegisterAuthority() == null || cuMember.getRegisterAuthority() < gradeDTO.getRegisterAuthority()) { | ||||||
|  |                 cuMember.setRegisterAuthority(gradeDTO.getRegisterAuthority()); | ||||||
|  |             } | ||||||
|  |             if (EGrade.HAI_FAN.getValue() == gradeDTO.getGradeValue()) { | ||||||
|  |                 // 顾客注册会员显示订单业绩 | ||||||
|  |                 cuMember.setConsumeAchieve(saOrderExt.getOrderAchieve()); | ||||||
|  |             } else { | ||||||
|  |                 cuMember.setConsumeAchieve(gradeDTO.getStartValue()); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|  |         cuMember.setConsumeMoney(saOrderExt.getOrderAmount()); | ||||||
|  | 
 | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -742,7 +767,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|         } else { |         } else { | ||||||
|             newCuMember.setConsumeMoney(BigDecimal.ZERO); |             newCuMember.setConsumeMoney(BigDecimal.ZERO); | ||||||
|             newCuMember.setConsumeAchieve(BigDecimal.ZERO); |             newCuMember.setConsumeAchieve(BigDecimal.ZERO); | ||||||
|             if (setLastCuMemberGrade(newCuMember, saOrderExt)) { |             if (setLastCuMemberGrade(newCuMember, saOrderExt, saOrderExt.getOrderItemsList())) { | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|             if (isHaiFun) { |             if (isHaiFun) { | ||||||
|  | @ -942,7 +967,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|         CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember()); |         CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember()); | ||||||
|         GradeDTO oldGradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); |         GradeDTO oldGradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); | ||||||
|         // 封装等级,重新计算会员等级 |         // 封装等级,重新计算会员等级 | ||||||
|         if (setLastCuMemberGrade(cuMember, saOrderExt)) { |         if (setLastCuMemberGrade(cuMember, saOrderExt, saOrderExt.getOrderItemsList())) { | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
|         // 验证等级,原等级<新等级,才可以进行升级 或者 累计升级 |         // 验证等级,原等级<新等级,才可以进行升级 或者 累计升级 | ||||||
|  | @ -1028,7 +1053,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|         // 升级订单验证等级 |         // 升级订单验证等级 | ||||||
|         if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || |         if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || | ||||||
|                 EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == orderParam.getSpecialArea()) { |                 EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == orderParam.getSpecialArea()) { | ||||||
|             if (setLastCuMemberGrade(cuMember, saOrderExt)) { |             if (setLastCuMemberGrade(cuMember, saOrderExt, saOrderExt.getOrderItemsList())) { | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|         } else if (EOrderType.MALL_ORDER.getValue() == orderParam.getSpecialArea()) { |         } else if (EOrderType.MALL_ORDER.getValue() == orderParam.getSpecialArea()) { | ||||||
|  | @ -1193,6 +1218,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|             orderReturn.setIsEnough(Boolean.TRUE); |             orderReturn.setIsEnough(Boolean.TRUE); | ||||||
|             CuMember member = getCuMemberByKey(orderParam.getCenterCodeId()); |             CuMember member = getCuMemberByKey(orderParam.getCenterCodeId()); | ||||||
|             GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData(); |             GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData(); | ||||||
|  |             orderReturn.setPkGradeTmp(grade.getPkId()); | ||||||
|             orderReturn.setPkGradeVal(grade.getGradeName()); |             orderReturn.setPkGradeVal(grade.getGradeName()); | ||||||
|             return orderReturn; |             return orderReturn; | ||||||
|         } |         } | ||||||
|  | @ -1222,6 +1248,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         orderReturn.setPkGradeTmp(gradeDTO.getPkId()); | ||||||
|         orderReturn.setPkGradeVal(gradeDTO.getGradeName()); |         orderReturn.setPkGradeVal(gradeDTO.getGradeName()); | ||||||
|         return orderReturn; |         return orderReturn; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ | ||||||
|                  LEFT JOIN BD_GRADE bgg ON aauc.UPGRADE_LEVEL = bgg.PK_ID |                  LEFT JOIN BD_GRADE bgg ON aauc.UPGRADE_LEVEL = bgg.PK_ID | ||||||
|         WHERE aauc.PK_BASE_ID = #{pkId} |         WHERE aauc.PK_BASE_ID = #{pkId} | ||||||
|           AND aauc.DEL_FLAG = 0 |           AND aauc.DEL_FLAG = 0 | ||||||
|         AND aauc.ORDER_TYPE = #{orderType} |           AND aauc.ORDER_TYPE = #{orderType} | ||||||
|     </select> |     </select> | ||||||
|     <select id="selectOrderTypeByBaseId" resultType="java.lang.Integer"> |     <select id="selectOrderTypeByBaseId" resultType="java.lang.Integer"> | ||||||
|         SELECT DISTINCT ORDER_TYPE |         SELECT DISTINCT ORDER_TYPE | ||||||
|  | @ -90,7 +90,61 @@ | ||||||
|         </if> |         </if> | ||||||
|     </select> |     </select> | ||||||
|     <select id="selectGradeValue" resultType="com.hzs.common.domain.system.config.BdGrade"> |     <select id="selectGradeValue" resultType="com.hzs.common.domain.system.config.BdGrade"> | ||||||
|         SELECT * FROM BD_GRADE WHERE PK_ID = #{pkId} |         SELECT * | ||||||
|  |         FROM BD_GRADE | ||||||
|  |         WHERE PK_ID = #{pkId} | ||||||
|  |     </select> | ||||||
|  | 
 | ||||||
|  |     <!-- 查询符合条件的规则 --> | ||||||
|  |     <select id="getUpgradeConfig" resultType="com.hzs.common.domain.activity.add.ext.AcAddUpgradeConfigExt"> | ||||||
|  |         select t.*, | ||||||
|  |         bg.grade_name, bg.grade_value, bg.pk_awards, bg.register_authority | ||||||
|  |         from (select aauc.* | ||||||
|  |         from ac_base_config abc | ||||||
|  |         left join AC_ADD_UPGRADE_CONFIG aauc | ||||||
|  |         on aauc.pk_base_id = abc.pk_id | ||||||
|  |         where abc.del_flag = 0 | ||||||
|  |         and abc.act_type = 31 | ||||||
|  |         and sysdate >= abc.act_start_date | ||||||
|  |         and abc.act_end_date >= sysdate | ||||||
|  |         and aauc.del_flag = 0 | ||||||
|  |         and aauc.order_type = #{orderType} | ||||||
|  |         and aauc.original_level = #{pkGrade} | ||||||
|  |         and aauc.pk_wares in (select pk_id | ||||||
|  |         from bd_wares bw | ||||||
|  |         where bw.wares_code in | ||||||
|  |         <foreach collection="waresCodeList" item="items" open="(" separator="," close=")"> | ||||||
|  |             #{items} | ||||||
|  |         </foreach> | ||||||
|  |         and bw.del_flag = 0) | ||||||
|  |         order by abc.act_start_date desc) t | ||||||
|  |         left join bd_grade bg | ||||||
|  |         on bg.pk_id = t.upgrade_level | ||||||
|  |         where rownum = 1 | ||||||
|  |     </select> | ||||||
|  | 
 | ||||||
|  |     <select id="getUpgradeConfigByPkWares" resultType="com.hzs.common.domain.activity.add.ext.AcAddUpgradeConfigExt"> | ||||||
|  |         select t.*, | ||||||
|  |         bg.grade_name, bg.grade_value, bg.pk_awards, bg.register_authority | ||||||
|  |         from (select aauc.* | ||||||
|  |         from ac_base_config abc | ||||||
|  |         left join AC_ADD_UPGRADE_CONFIG aauc | ||||||
|  |         on aauc.pk_base_id = abc.pk_id | ||||||
|  |         where abc.del_flag = 0 | ||||||
|  |         and abc.act_type = 31 | ||||||
|  |         and sysdate >= abc.act_start_date | ||||||
|  |         and abc.act_end_date >= sysdate | ||||||
|  |         and aauc.del_flag = 0 | ||||||
|  |         and aauc.order_type = #{orderType} | ||||||
|  |         and aauc.original_level = #{pkGrade} | ||||||
|  |         and aauc.pk_wares in | ||||||
|  |         <foreach collection="pkWaresList" item="items" open="(" separator="," close=")"> | ||||||
|  |             #{items} | ||||||
|  |         </foreach> | ||||||
|  |         order by abc.act_start_date desc) t | ||||||
|  |         left join bd_grade bg | ||||||
|  |         on bg.pk_id = t.upgrade_level | ||||||
|  |         where rownum = 1 | ||||||
|     </select> |     </select> | ||||||
| 
 | 
 | ||||||
| </mapper> | </mapper> | ||||||
|  |  | ||||||
|  | @ -5,9 +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.Builder; | import lombok.*; | ||||||
| import lombok.Data; |  | ||||||
| import lombok.EqualsAndHashCode; |  | ||||||
| import lombok.experimental.Accessors; | import lombok.experimental.Accessors; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | @ -19,6 +17,8 @@ import lombok.experimental.Accessors; | ||||||
|  * @since 2025-10-13 |  * @since 2025-10-13 | ||||||
|  */ |  */ | ||||||
| @Data | @Data | ||||||
|  | @AllArgsConstructor | ||||||
|  | @NoArgsConstructor | ||||||
| @EqualsAndHashCode(callSuper = true) | @EqualsAndHashCode(callSuper = true) | ||||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||||
| @TableName("AC_ADD_UPGRADE_CONFIG") | @TableName("AC_ADD_UPGRADE_CONFIG") | ||||||
|  |  | ||||||
|  | @ -0,0 +1,28 @@ | ||||||
|  | package com.hzs.common.domain.activity.add.ext; | ||||||
|  | 
 | ||||||
|  | import com.hzs.common.domain.activity.add.AcAddUpgradeConfig; | ||||||
|  | import lombok.Data; | ||||||
|  | import lombok.EqualsAndHashCode; | ||||||
|  | 
 | ||||||
|  | @EqualsAndHashCode(callSuper = true) | ||||||
|  | @Data | ||||||
|  | public class AcAddUpgradeConfigExt extends AcAddUpgradeConfig { | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 等级名称 | ||||||
|  |      */ | ||||||
|  |     private String gradeName; | ||||||
|  |     /** | ||||||
|  |      * 等级值 | ||||||
|  |      */ | ||||||
|  |     private Integer gradeValue; | ||||||
|  |     /** | ||||||
|  |      * 奖衔ID | ||||||
|  |      */ | ||||||
|  |     private Integer pkAwards; | ||||||
|  |     /** | ||||||
|  |      * 注册权限 | ||||||
|  |      */ | ||||||
|  |     private Integer registerAuthority; | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue