diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java index 33fa4a2b..6debd753 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java @@ -284,7 +284,7 @@ public interface IMemberServiceApi { R updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt); /** - * 更新用户等级 + * 更新用户等级 -- 来源于活动 * * @param cuMember 用户信息 * @param saOrder 订单信息 @@ -292,6 +292,23 @@ public interface IMemberServiceApi { */ R updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel); + /** + * 用户降级 -- 来源于活动 + * + * @param cuMember 用户信息 + * @param saOrder 订单信息 + */ + R reduceMemberLevel(CuMember cuMember, SaOrder saOrder); + + /** + * 更新升级记录 -- 来源于活动 + * + * @param saOrder 原订单 + * @param newOrder 新订单 + * @return + */ + R changeMemberLevel(SaOrder saOrder, SaOrder newOrder); + /** * 校验是否血缘关系(返回true则有血缘关系) * diff --git a/bd-api/bd-api-sale/src/main/java/com/hzs/activity/dto/AcRecommendUpgradeDTO.java b/bd-api/bd-api-sale/src/main/java/com/hzs/activity/dto/AcRecommendUpgradeDTO.java index 5c36ce25..b3dd209e 100644 --- a/bd-api/bd-api-sale/src/main/java/com/hzs/activity/dto/AcRecommendUpgradeDTO.java +++ b/bd-api/bd-api-sale/src/main/java/com/hzs/activity/dto/AcRecommendUpgradeDTO.java @@ -1,6 +1,5 @@ package com.hzs.activity.dto; - import com.hzs.common.core.enums.EOrderOperateStatus; import com.hzs.common.domain.sale.ext.SaOrderExt; import lombok.AllArgsConstructor; @@ -12,12 +11,6 @@ import java.io.Serializable; /** * 直推-升级DTO - * - * @Description: - * @Author: ljc - * @Time: 2023/4/26 10:27 - * @Classname: AcRepurchaseCouponsDTO - * @Package_name: com.hzs.activity.recommend.dto */ @Data @Builder diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java index 39efa409..2655e529 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java @@ -351,6 +351,26 @@ public class MemberServiceProvider implements IMemberServiceApi { } } + @Override + public R reduceMemberLevel(CuMember cuMember, SaOrder saOrder) { + try { + iCuMemberBusinessService.reduceMemberLevel(cuMember, saOrder); + return R.ok(); + } catch (Exception e) { + return R.fail(e.getMessage()); + } + } + + @Override + public R changeMemberLevel(SaOrder saOrder, SaOrder newOrder) { + try { + iCuMemberBusinessService.changeMemberLevel(saOrder, newOrder); + return R.ok(); + } catch (Exception e) { + return R.fail(e.getMessage()); + } + } + @Override public R checkParent(String topCode, Long userId) { return R.ok(iCuMemberService.checkParent(topCode, userId) > 0); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java index 165cc5a3..bb9504cc 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java @@ -168,7 +168,7 @@ public interface ICuMemberBusinessService { Boolean updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt); /** - * 更新用户等级 + * 更新用户等级 -- 来源于活动 * * @param cuMember 用户信息 * @param saOrder 订单信息 @@ -176,6 +176,23 @@ public interface ICuMemberBusinessService { */ void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel); + /** + * 用户降级 -- 来源于活动 + * + * @param cuMember 用户信息 + * @param saOrder 订单信息 + */ + void reduceMemberLevel(CuMember cuMember, SaOrder saOrder); + + /** + * 更新升级记录 -- 来源于活动 + * + * @param saOrder 原订单 + * @param newOrder 新订单 + * @return + */ + void changeMemberLevel(SaOrder saOrder, SaOrder newOrder); + /** * 查询会员的安置位置 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 1be5568b..a92dc78e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.activity.pick.IAcPickServiceApi; import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.constant.CacheConstants; @@ -61,9 +62,7 @@ import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.config.IAccountServiceApi; import com.hzs.system.config.IAreaCurrencyServiceApi; import com.hzs.system.config.IAwardsServiceApi; -import com.hzs.system.config.IGradeServiceApi; import com.hzs.system.config.dto.AreaCurrencyDTO; -import com.hzs.system.config.dto.GradeDTO; import com.hzs.third.pay.ITOnlinePaymentServiceApi; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -92,8 +91,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @DubboReference ISaOrderServiceApi iSaOrderServiceApi; @DubboReference - IGradeServiceApi iGradeServiceApi; - @DubboReference IMemberSettleBonusApi iMemberSettleBonusApi; @Autowired @@ -1201,13 +1198,38 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { return null; } - @Override @Transactional(rollbackFor = Exception.class) + @Override public void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) { updateCuMember(cuMember); saveLevelUpgrade(cuMember, EUpgradeType.ACTIVITY_UPGRADE.getValue(), saOrder, pkOldLevel); } + @Transactional(rollbackFor = Exception.class) + @Override + public void reduceMemberLevel(CuMember cuMember, SaOrder saOrder) { + updateCuMember(cuMember); + iCuMemberLevelService.update(Wrappers.lambdaUpdate() + .eq(CuMemberLevel::getPkMember, cuMember.getPkId()) + .eq(CuMemberLevel::getUpType, EUpgradeType.ACTIVITY_UPGRADE.getValue()) + .eq(CuMemberLevel::getPkOrder, saOrder.getPkId()) + .set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue()) + .set(CuMemberLevel::getUpgradeTime, new Date()) + ); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void changeMemberLevel(SaOrder saOrder, SaOrder newOrder) { + iCuMemberLevelService.update(Wrappers.lambdaUpdate() + .eq(CuMemberLevel::getPkMember, saOrder.getPkReference()) + .eq(CuMemberLevel::getUpType, EUpgradeType.ACTIVITY_UPGRADE.getValue()) + .eq(CuMemberLevel::getPkOrder, saOrder.getPkId()) + .set(CuMemberLevel::getPkOrder, newOrder.getPkId()) + .set(CuMemberLevel::getUpgradeTime, newOrder.getPayTime()) + ); + } + @Override public CuMember queryCuMemberPlaceDept(CuMember cuMember, Boolean isFirst, Boolean isFirstAchieve) { Long pkMember = cuMember.getPkParent(); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/provider/ActivityServiceProvider.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/provider/ActivityServiceProvider.java index bda2b989..28a72cfd 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/provider/ActivityServiceProvider.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/provider/ActivityServiceProvider.java @@ -1,11 +1,9 @@ package com.hzs.activity.base.provider; -import cn.hutool.core.bean.BeanUtil; import com.hzs.activity.base.IActivityServiceApi; import com.hzs.activity.base.service.IActivityService; import com.hzs.activity.draw.service.IAcDrawRewardNumService; import com.hzs.activity.dto.AcRecommendUpgradeDTO; -import com.hzs.activity.recommend.dto.AcRecommendUpgrade; import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService; import com.hzs.common.core.domain.R; import com.hzs.common.domain.activity.recommend.AcRepurCouponsRuleConfig; @@ -81,7 +79,7 @@ public class ActivityServiceProvider implements IActivityServiceApi { @Override public R invokeRecommendUpgrade(AcRecommendUpgradeDTO recommendUpgradeDTO) { try { - return R.ok(iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(BeanUtil.copyProperties(recommendUpgradeDTO, AcRecommendUpgrade.class))); + return R.ok(iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(recommendUpgradeDTO)); } catch (Exception e) { return R.fail(); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/ActivityServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/ActivityServiceImpl.java index 0da80568..6490d755 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/ActivityServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/ActivityServiceImpl.java @@ -19,8 +19,8 @@ import com.hzs.activity.draw.service.IAcDrawGiftRuleConfigService; import com.hzs.activity.draw.service.IAcDrawRewardNumService; import com.hzs.activity.draw.service.IAcDrawRuleConfigService; import com.hzs.activity.draw.vo.AcDrawGiftRuleConfigVo; +import com.hzs.activity.dto.AcRecommendUpgradeDTO; import com.hzs.activity.pick.service.IAcPickUpConfigService; -import com.hzs.activity.recommend.dto.AcRecommendUpgrade; import com.hzs.activity.recommend.param.AcRecommendParam; import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService; import com.hzs.activity.wares.service.IAcGiftConfigService; @@ -807,7 +807,7 @@ public class ActivityServiceImpl implements IActivityService { // // 抽奖 // iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt); // 直推升级 - iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder() + iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder() .saOrderExt(saOrderExt) .orderOperateStatus(EOrderOperateStatus.NORMAL) .build()); @@ -815,7 +815,7 @@ public class ActivityServiceImpl implements IActivityService { // // 抽奖 // iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt); // 直推升级 - iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder() + iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder() .saOrderExt(saOrderExt) .orderOperateStatus(EOrderOperateStatus.NORMAL) .build()); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/controller/AcRecommendConfigController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/controller/AcRecommendConfigController.java index 311ff9b9..474565f7 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/controller/AcRecommendConfigController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/controller/AcRecommendConfigController.java @@ -3,7 +3,10 @@ package com.hzs.activity.recommend.controller; import com.hzs.activity.base.param.QueryActivityParam; import com.hzs.activity.base.service.IActivityService; import com.hzs.activity.base.vo.BaseConfigVo; +import com.hzs.activity.recommend.param.AcDirectPushUpgradeListParam; +import com.hzs.activity.recommend.param.AcDirectPushUpgradeParam; import com.hzs.activity.recommend.param.AcRecommendParam; +import com.hzs.activity.recommend.service.IAcRecomUpgradeRecordService; import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService; import com.hzs.activity.recommend.vo.AcRecommendVO; import com.hzs.common.core.annotation.Log; @@ -14,6 +17,7 @@ import com.hzs.common.core.enums.EOperationModule; import com.hzs.common.core.utils.poi.ExcelUtil; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; +import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.security.service.UserTokenService; import com.hzs.common.security.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +39,8 @@ public class AcRecommendConfigController extends BaseController { IAcRepurCouponsRuleConfigService acRepurCouponsRuleConfigService; @Autowired private UserTokenService userTokenService; + @Autowired + private IAcRecomUpgradeRecordService iAcRecomUpgradeRecordService; /** @@ -56,6 +62,35 @@ public class AcRecommendConfigController extends BaseController { return AjaxResult.success(); } + /** + * + * @param acDirectPushUpgradeParam + * @return + */ + @Log(module = EOperationModule.AC_DIRECT_PUSH_UPGRADE, business = EOperationBusiness.AC_DIRECT_PUSH_UPGRADE, method = EOperationMethod.INSERT, remark = "在线签呈") + @PostMapping("/directPushUpgrade") + public AjaxResult directPushUpgradeSubmit(@RequestBody AcDirectPushUpgradeParam acDirectPushUpgradeParam) { + acDirectPushUpgradeParam.setPkCountry(SecurityUtils.getPkCountry()); + acDirectPushUpgradeParam.setPkMember(SecurityUtils.getUserId()); + acDirectPushUpgradeParam.setLoginUser(userTokenService.getLoginUser()); + String str = acRepurCouponsRuleConfigService.directPushUpgradeSubmit(acDirectPushUpgradeParam); + if (str != null) { + return AjaxResult.error(str); + } + return AjaxResult.success(); + } + /** + * + * @param param + * @return + */ + @Log(module = EOperationModule.AC_DIRECT_PUSH_UPGRADE, business = EOperationBusiness.AC_DIRECT_PUSH_UPGRADE, method = EOperationMethod.SELECT, remark = "在线签呈") + @GetMapping("/directPushUpgradeList") + public TableDataInfo directPushUpgradeList(AcDirectPushUpgradeListParam param) { + startPage(); + return getDataTable(iAcRecomUpgradeRecordService.queryList(param)); + } + /** * 直推赠送查看详情 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/dto/AcRecommendUpgrade.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/dto/AcRecommendUpgrade.java deleted file mode 100644 index 384bf615..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/dto/AcRecommendUpgrade.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hzs.activity.recommend.dto; - -import com.hzs.common.core.enums.EOrderOperateStatus; -import com.hzs.common.domain.sale.ext.SaOrderExt; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * 直推-升级DTO - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class AcRecommendUpgrade implements Serializable { - private static final long serialVersionUID = 9005728656479475728L; - - /** - * 订单信息 - */ - private SaOrderExt saOrderExt; - - /** - * 订单操作状态 - */ - private EOrderOperateStatus orderOperateStatus; - -} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/mapper/AcRecomUpgradeRecordMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/mapper/AcRecomUpgradeRecordMapper.java index 35b630d1..1a4eb4f3 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/mapper/AcRecomUpgradeRecordMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/mapper/AcRecomUpgradeRecordMapper.java @@ -1,6 +1,8 @@ package com.hzs.activity.recommend.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.activity.recommend.param.AcDirectPushUpgradeListParam; +import com.hzs.activity.recommend.vo.AcDirectPushUpgradeListVO; import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecord; import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecordExt; import com.hzs.common.domain.sale.order.SaOrder; @@ -33,10 +35,11 @@ public interface AcRecomUpgradeRecordMapper extends BaseMapper listRecomOrder(@Param("pkMember") Long pkMember, + @Param("pkGrade") Integer pkGrade, + @Param("num") Integer num, + @Param("startTime") Date startTime, + @Param("endTime") Date endTime); + List queryList(AcDirectPushUpgradeListParam param); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/param/AcDirectPushUpgradeListParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/param/AcDirectPushUpgradeListParam.java new file mode 100644 index 00000000..02a88f45 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/param/AcDirectPushUpgradeListParam.java @@ -0,0 +1,44 @@ +package com.hzs.activity.recommend.param; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AcDirectPushUpgradeListParam { + + /** + * 活动名称 + */ + private String actName; + + /** + * 会员编号 + */ + private String memberCode; + + + /** + * 开始活动开始时间 + */ + private Date startActStartDate; + + /** + * 开始活动结束时间 + */ + private Date startActEndDate; + + /** + * 结束活动开始时间 + */ + private Date endActStartDate; + + /** + * 结束活动结束时间 + */ + private Date endActEndDate; +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/param/AcDirectPushUpgradeParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/param/AcDirectPushUpgradeParam.java new file mode 100644 index 00000000..e90a725f --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/param/AcDirectPushUpgradeParam.java @@ -0,0 +1,55 @@ +package com.hzs.activity.recommend.param; + +import com.hzs.activity.base.param.ActivityParam; +import com.hzs.activity.recommend.vo.AcRecommendSharVO; +import com.hzs.activity.recommend.vo.AcRecommendUpgradeVO; +import com.hzs.activity.recommend.vo.AcRepurchaseCouponsShowVO; +import com.hzs.common.domain.activity.base.AcBaseAuthority; +import com.hzs.system.sys.dto.LoginUser; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AcDirectPushUpgradeParam { + /** + * 活动基本配置主键 + */ + private Long pkBaseId; + + /** + * 操作类型(1=新增,2=修改,3=删除) + */ + private Integer controlType; + + /** + * 国家 + */ + private Integer pkCountry; + + /** + * 会员ID + */ + private Long pkMember; + + + /** + * 登录用户信息 + */ + private LoginUser loginUser; + + /** + * 基本信息 + */ + private ActivityParam activityParam; + + /** + * 直推升级 + */ + private List recommendUpgradeList; + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRecomUpgradeRecordService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRecomUpgradeRecordService.java index 1c4ad2dc..152a7874 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRecomUpgradeRecordService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRecomUpgradeRecordService.java @@ -1,6 +1,9 @@ package com.hzs.activity.recommend.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.activity.recommend.param.AcDirectPushUpgradeListParam; +import com.hzs.activity.recommend.vo.AcDirectPushUpgradeListVO; +import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecord; import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecordExt; import com.hzs.common.domain.sale.order.SaOrder; @@ -50,6 +53,7 @@ public interface IAcRecomUpgradeRecordService extends IService listRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime); + List queryList(AcDirectPushUpgradeListParam param); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRepurCouponsRuleConfigService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRepurCouponsRuleConfigService.java index dd5bca66..48ad83da 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRepurCouponsRuleConfigService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/IAcRepurCouponsRuleConfigService.java @@ -1,7 +1,8 @@ package com.hzs.activity.recommend.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.hzs.activity.recommend.dto.AcRecommendUpgrade; +import com.hzs.activity.dto.AcRecommendUpgradeDTO; +import com.hzs.activity.recommend.param.AcDirectPushUpgradeParam; import com.hzs.activity.recommend.param.AcRecommendParam; import com.hzs.activity.recommend.vo.AcRecommendVO; import com.hzs.common.domain.activity.recommend.AcRepurCouponsRuleConfig; @@ -58,7 +59,7 @@ public interface IAcRepurCouponsRuleConfigService extends IService listRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime) { + return baseMapper.listRecomOrder(pkMember, pkGrade, num, startTime, endTime); + } + + @Override + public List queryList(AcDirectPushUpgradeListParam param) { + return baseMapper.queryList(param); } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/impl/AcRepurCouponsRuleConfigServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/impl/AcRepurCouponsRuleConfigServiceImpl.java index 97b43418..6a94b9db 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/impl/AcRepurCouponsRuleConfigServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/service/impl/AcRepurCouponsRuleConfigServiceImpl.java @@ -12,10 +12,10 @@ import com.hzs.activity.base.param.ActivityParam; import com.hzs.activity.base.service.*; import com.hzs.activity.base.vo.AcGiftConfigVO; import com.hzs.activity.base.vo.BaseConfigVo; +import com.hzs.activity.dto.AcRecommendUpgradeDTO; import com.hzs.activity.people.vo.AcBaseConfigVO; -import com.hzs.activity.pick.service.IAcPickService; -import com.hzs.activity.recommend.dto.AcRecommendUpgrade; import com.hzs.activity.recommend.mapper.AcRepurCouponsRuleConfigMapper; +import com.hzs.activity.recommend.param.AcDirectPushUpgradeParam; import com.hzs.activity.recommend.param.AcRecommendParam; import com.hzs.activity.recommend.service.*; import com.hzs.activity.recommend.vo.*; @@ -47,7 +47,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.lang.reflect.Member; import java.util.*; import java.util.stream.Collectors; @@ -72,8 +71,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl acBaseConfigs = iAcBaseConfigService.selectBaseConfigByType(baseConfigVO); - if (CollUtil.isNotEmpty(acBaseConfigs)) { - EOrderOperateStatus orderOperateStatus = acRecommendUpgrade.getOrderOperateStatus(); - for (AcBaseConfig baseConfig : acBaseConfigs) { - if (orderOperateStatus.equals(EOrderOperateStatus.NORMAL)) { - // 正常处理 + public Boolean invokeRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade) { + if (EOrderOperateStatus.NORMAL.equals(acRecommendUpgrade.getOrderOperateStatus())) { + // 正向处理 + AcBaseConfigVO baseConfigVO = AcBaseConfigVO.builder() + .actType(EActType.RECOMMEND_UPGRADE.getValue()) + .pkCountry(acRecommendUpgrade.getSaOrderExt().getPkCountry()) + .build(); + // 查询订单时内的直推活动 + List acBaseConfigs = iAcBaseConfigService.selectBaseConfigByType(baseConfigVO); + if (CollUtil.isNotEmpty(acBaseConfigs)) { + for (AcBaseConfig baseConfig : acBaseConfigs) { handleRecommendUpgrade(acRecommendUpgrade, baseConfig); - } else { - // 撤单处理 - cancelOrder(acRecommendUpgrade, baseConfig); } } + } else { + // 撤单处理 + handleCancelRecommendUpgrade(acRecommendUpgrade); } return true; } /** - * 处理业务(正常报单) + * 下单处理 */ - private void handleRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) { + private void handleRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade, AcBaseConfig baseConfig) { Date nowDate = new Date(); // 订单信息 SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt(); @@ -657,8 +653,10 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl 0) { startTime = monthFirst; } + List recomOrderList = iAcRecomUpgradeRecordService.listRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime); // 校验推荐人是否可以升级 - if (null == iAcRecomUpgradeRecordService.getRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime)) { + if (CollectionUtil.isEmpty(recomOrderList) + || recomOrderList.size() != upgradeRuleConfig.getRecommendNumber()) { return; } // 封装规则升级记录 @@ -698,69 +696,80 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl recommendNumber = iAcRecomUpgradeRecordService.selectRecommendNumber(upgradeRecord); - //配置的推荐人数 - Integer recommendConfigNumber = upgradeRuleConfig.getRecommendNumber(); - if (CollUtil.isNotEmpty(recommendNumber) && recommendNumber.size() < recommendConfigNumber) { - Long pkMember = recomUpgradeRecord.getPkMember(); - //调用降级处理 - Integer pkUpgradeGrade = upgradeRuleConfig.getPkUpgradeGrade(); - CuMember data = iMemberServiceApi.getMember(pkMember).getData(); - //用户信息 - CuMember cuMember = CuMember.builder().pkId(pkMember).pkSettleGrade(pkSettleGrade).memberCode(data.getMemberCode()) - .pkSettleCountry(data.getPkSettleCountry()).build(); - cuMember.setPkModified(pkMember); - cuMember.setModifiedTime(new Date()); - SaOrder saOrder = SaOrder.builder().payTime(new Date()).build(); - //修改升级状态 - iAcRecomUpgradeRecordService.updateUpgradeStatusById(recommendNumber, pkModified, EYesNo.YES.getIntValue()); - //查询是否配置赠品 - List acGiftConfigList = giftConfigService.queryListByRuleIdList(pkRuleId, saOrderExt.getPkCountry()); - //调用提货接口 - if (CollUtil.isNotEmpty(acGiftConfigList)) { - AcGiftConfigExt acGiftConfigExt = acGiftConfigList.get(0); - acPickService.updatePickUsableByMemberAndActivityType(pkMember, EActType.DIRECT_PUSH_GIFT.getValue(), baseConfig.getPkId(), pkRuleId - , acGiftConfigExt.getQuantity(), pkModified); - } - //调用降级处理 - iMemberServiceApi.updateMemberLevel(cuMember, saOrder, pkUpgradeGrade); + // 推荐人 + Long pkMember = saOrderExt.getPkReference(); + + List upgradeRecordList = iAcRecomUpgradeRecordService.list(Wrappers.lambdaQuery() + .eq(AcRecomUpgradeRecord::getPkMember, pkMember) + .eq(AcRecomUpgradeRecord::getPkOrderId, pkOrderId) + .orderByDesc(AcRecomUpgradeRecord::getUpgradeTime) + ); + if (CollectionUtil.isNotEmpty(upgradeRecordList)) { + // 会员活动升级记录 + AcRecomUpgradeRecord recomUpgradeRecord = upgradeRecordList.get(0); + // 删除活动升级记录 + iAcRecomUpgradeRecordService.update(Wrappers.lambdaUpdate() + .eq(AcRecomUpgradeRecord::getPkId, recomUpgradeRecord.getPkId()) + .set(AcRecomUpgradeRecord::getDelFlag, EDelFlag.DELETE.getValue()) + .set(AcRecomUpgradeRecord::getModifiedTime, nowDate) + .set(AcRecomUpgradeRecord::getPkModified, saOrderExt.getPkMember()) + ); + + // 推荐会员信息 + CuMember referenceMember = iMemberServiceApi.getMember(pkMember).getData(); + if (!referenceMember.getPkSettleGrade().equals(recomUpgradeRecord.getPkRecommendGrade())) { + // 会员目前等于与这次活动升级不一致,只需要删掉升级记录 + CuMember cuMember = CuMember.builder() + .pkId(pkMember) + .pkSettleGrade(referenceMember.getPkSettleGrade()) + .build(); + iMemberServiceApi.reduceMemberLevel(cuMember, saOrderExt); + } else { + // 活动基础配置 + AcBaseConfig baseConfig = iAcBaseConfigService.getById(recomUpgradeRecord.getPkId()); + // 活动基础配置 + AcRecomUpgradeRuleConfig upgradeRuleConfig = iAcRecomUpgradeRuleConfigService.getById(recomUpgradeRecord.getPkRuleId()); + // 查询订单时间范围 + // 默认活动开始时间 + Date startTime = baseConfig.getActStartDate(); + // 默认活动结束时间 + Date endTime = baseConfig.getActEndDate(); + // 当月第一天 + Date monthFirst = DateUtils.getFirstDayOfMonth(nowDate); + if (monthFirst.compareTo(startTime) > 0) { + startTime = monthFirst; } + // 当月最后一天 + Date monthLast = DateUtils.getLastDayOfMonth(nowDate); + if (monthLast.compareTo(endTime) < 0) { + endTime = monthLast; + } + List recomOrderList = iAcRecomUpgradeRecordService.listRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime); + // 校验推荐人是否可以升级 + if (CollectionUtil.isEmpty(recomOrderList) + || recomOrderList.size() != upgradeRuleConfig.getRecommendNumber()) { + // 订单撤单后,目前订单不够升级了,需要降级 + CuMember cuMember = CuMember.builder() + .pkId(pkMember) + .pkSettleGrade(recomUpgradeRecord.getPkSettleGrade()) + .build(); + iMemberServiceApi.reduceMemberLevel(cuMember, saOrderExt); + return; + } + // 足够升级,更新升级记录时间 + SaOrder newOrder = recomOrderList.get(recomOrderList.size() - 1); + iMemberServiceApi.changeMemberLevel(saOrderExt, newOrder); } } - return true; } @@ -791,32 +800,16 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl 0) { - return false; - } else { - return true; - } + return iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) <= 0; case BLOOD_STOP: // 血缘禁止 - if (iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0) { - return false; - } else { - return true; - } + return iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) <= 0; case PLACE_ALLWO: // 安置可见 - if (iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 0) { - return true; - } else { - return false; - } + return iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 0; case BLOOD_ALLOW: // 血缘可见 - if (iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0) { - return true; - } else { - return false; - } + return iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0; default: } } @@ -839,5 +832,130 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl recommendUpgradeList = acDirectPushUpgradeParam.getRecommendUpgradeList(); + if (CollUtil.isNotEmpty(recommendUpgradeList)) { + for (AcRecommendUpgradeVO recommendUpgradeVO : recommendUpgradeList) { + List giftConfigList = recommendUpgradeVO.getGiftConfigList(); + if (CollUtil.isNotEmpty(giftConfigList)) { + for (AcGiftConfigVO giftConfigVO : giftConfigList) { + Integer pkProduct = giftConfigVO.getPkProduct(); + if (null != pkProduct) { + giftConfigVO.setProductName(iProductServiceApi.getProduct(pkProduct).getData().getProductName()); + } + } + } + } + } + Integer controlType = acDirectPushUpgradeParam.getControlType(); + if (controlType.equals(EControlType.SAVE.getValue())) { + log.info("直推升级新增{}", JSONUtil.toJsonStr(acDirectPushUpgradeParam)); + return saveDirectPushUpgradeData(acDirectPushUpgradeParam); + } else if (controlType.equals(EControlType.MODIFY.getValue())) { + log.info("直推升级修改{}", JSONUtil.toJsonStr(acDirectPushUpgradeParam)); + deleteDirectPushUpgradeData(acDirectPushUpgradeParam); + return saveDirectPushUpgradeData(acDirectPushUpgradeParam); + } else { + log.info("直推升级刪除{}", JSONUtil.toJsonStr(acDirectPushUpgradeParam)); + deleteDirectPushUpgradeData(acDirectPushUpgradeParam); + } + //业务单号 + String businessCode = CommonUtil.createSerialNumber(EOrderPrefix.ACTIVITY_CODE.getValue()); + //日志 + packageDirectPushOperationLog(acDirectPushUpgradeParam, approvalBusiness, businessCode); + return null; + } + + private void packageDirectPushOperationLog(AcDirectPushUpgradeParam param, EApprovalBusiness approvalBusiness, String businessCode) { + //活动的基本信息 + ActivityParam activityParam = param.getActivityParam(); + //推荐升级 + List recommendUpgradeList = param.getRecommendUpgradeList(); + Map transactionMap = iTransactionCommonService.exportEnumTransaction(EControlType.values()); + Integer controlType = param.getControlType(); + controlType = null == controlType ? EControlType.SAVE.getValue() : controlType; + StringBuilder sb = new StringBuilder(); + sb.append("活动名称:").append(activityParam.getActName()) + .append(" 活动说明:").append(activityParam.getActExplain()) + .append(" 活动时间:").append(DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, activityParam.getActStartDate())).append(" 至 ") + .append(DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, activityParam.getActEndDate())) + .append(" 业务类型:"); + if (CollUtil.isNotEmpty(recommendUpgradeList)) { + sb.append(EApprovalBusiness.DIRECT_PUSH_UPGRADE.getLabel()).append(" "); + } + sb.append(" 操作类型:").append(transactionMap.get(EnumsPrefixConstants.CONTROL_TYPE + controlType)); + BusinessLogDTO businessLog = BusinessLogDTO.builder() + .businessType(approvalBusiness.getValue()) + .businessCode(businessCode) + .content(sb.toString()).pkCreator(param.getPkMember()) + .pkCountry(param.getPkCountry()) + .freeSignFlag(false).build(); + rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, Collections.singleton(businessLog)); + } + + private void deleteDirectPushUpgradeData(AcDirectPushUpgradeParam acDirectPushUpgradeParam) { + Long pkBaseId = acDirectPushUpgradeParam.getActivityParam().getPkId(); + Long pkModifyId = acDirectPushUpgradeParam.getPkMember(); + //删除活动基本信息 + iAcBaseConfigService.deleteBaseConfigById(pkBaseId, pkModifyId); + //删除直推升级配置信息 + List recommendUpgradeList = acDirectPushUpgradeParam.getRecommendUpgradeList(); + if (CollUtil.isNotEmpty(recommendUpgradeList)) { + iAcRecomUpgradeRuleConfigService.deleteUpgradeRuleConfigByBaseId(pkBaseId, pkModifyId); + } + } + + + private String saveDirectPushUpgradeData(AcDirectPushUpgradeParam acDirectPushUpgradeParam) { + //保存活动基本信息 + String message = saveDirectPushUpgradeBaseConfig(acDirectPushUpgradeParam); + //保存直推升级配置信息 + saveDirectPushUpgradeRuleInfo(acDirectPushUpgradeParam); + return message; + } + + private void saveDirectPushUpgradeRuleInfo(AcDirectPushUpgradeParam acDirectPushUpgradeParam) { + AcRecomUpgradeRuleConfig recomUpgradeRuleConfig; + //直推升级规则配置 + List recommendUpgradeList = acDirectPushUpgradeParam.getRecommendUpgradeList(); + if (CollUtil.isNotEmpty(recommendUpgradeList)) { + for (AcRecommendUpgradeVO recommendUpgradeVO : recommendUpgradeList) { + recommendUpgradeVO.setPkCreator(acDirectPushUpgradeParam.getPkMember()); + recommendUpgradeVO.setPkCountry(acDirectPushUpgradeParam.getPkCountry()); + recomUpgradeRuleConfig = BeanUtil.copyProperties(recommendUpgradeVO, AcRecomUpgradeRuleConfig.class); + recomUpgradeRuleConfig.setPkBaseId(acDirectPushUpgradeParam.getPkBaseId()); + iAcRecomUpgradeRuleConfigService.save(recomUpgradeRuleConfig); + List giftConfigs = saveRecommendUpgradeGift(recommendUpgradeVO, recomUpgradeRuleConfig.getPkId()); + giftConfigService.saveBatch(giftConfigs); + } + } + } + + + private String saveDirectPushUpgradeBaseConfig(AcDirectPushUpgradeParam acDirectPushUpgradeParam) { + ActivityParam activityParam = acDirectPushUpgradeParam.getActivityParam(); + if (null == activityParam) { + return "没有活动的基本信息!"; + } + List recommendUpgradeList = acDirectPushUpgradeParam.getRecommendUpgradeList(); + if (CollUtil.isNotEmpty(recommendUpgradeList)) { + activityParam.setAtcModule(EActModule.DIRECT_PUSH_UPGRADE.getValue()); + } + activityParam.setActType(EActType.RECOMMEND_UPGRADE.getValue()); + //保存基础配置 + activityParam.setPkCreator(acDirectPushUpgradeParam.getPkMember()); + activityParam.setPkCountry(acDirectPushUpgradeParam.getPkCountry()); + AcBaseConfig acBaseConfig = iActivityService.saveBaseConfig(activityParam); + acDirectPushUpgradeParam.setPkBaseId(acBaseConfig.getPkId()); + iActivityService.saveGoalMemberConfig(activityParam, acBaseConfig); + + return null; + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcDirectPushUpgradeListVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcDirectPushUpgradeListVO.java new file mode 100644 index 00000000..25244b0d --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcDirectPushUpgradeListVO.java @@ -0,0 +1,68 @@ +package com.hzs.activity.recommend.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.hzs.common.core.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class AcDirectPushUpgradeListVO { + + /** + * 活动名称 + */ + @Excel(name = "活动名称") + private String actName; + /** + * 会员编号 + */ + @Excel(name = "会员编号") + private String memberCode; + /** + * 会员名称 + */ + @Excel(name = "会员名称") + private String memberName; + + /** + * 原等级 + */ + @Excel(name = "原等级") + private String pkSettleGrade; + /** + * 新等级 + */ + @Excel(name = "新等级") + private String pkRecommendGrade; + + /** + * 活动开始时间 + */ + @Excel(name = "活动开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date actStartDate; + + /** + * 活动结束时间 + */ + @Excel(name = "活动结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date actEndDate; + + /** + * 创建时间 + */ + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + /** + * 升级年月 + */ + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd") + private String upgradeTime; + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcDirectPushUpgradeVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcDirectPushUpgradeVO.java new file mode 100644 index 00000000..c67bebed --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcDirectPushUpgradeVO.java @@ -0,0 +1,63 @@ +package com.hzs.activity.recommend.vo; + +import com.hzs.activity.base.vo.AcGiftConfigVO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AcDirectPushUpgradeVO { + private static final long serialVersionUID = 7140530986849619774L; + + /** + * 主键 + */ + private Long pkId; + + /** + * 活动基本配置主键 + */ + private Long pkBaseId; + + /** + * 结算等级 + */ + private Integer pkSettleGrade; + + /** + * 推荐等级 + */ + private Integer pkRecommendGrade; + + /** + * 推荐数量 + */ + private Integer recommendNumber; + + /** + * 升级等级 + */ + private Integer pkUpgradeGrade; + + /** + * 创建人ID + */ + private Long pkCreator; + + /** + * 国家 + */ + private Integer pkCountry; + + + /** + * 会员类型 (1=等级 2=奖衔 3=权限) + */ + private Integer memberType; + + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendSharVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendSharVO.java index dc282a23..d9836db2 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendSharVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendSharVO.java @@ -10,12 +10,6 @@ import java.util.List; /** * 复购券均分VO - * - * @Description: - * @Author: ljc - * @Time: 2023/5/4 15:19 - * @Classname: AcRecommendSharVO - * @Package_name: com.hzs.activity.recommend.vo */ @Data @AllArgsConstructor diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendUpgradeVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendUpgradeVO.java index 0a291982..4a52d64b 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendUpgradeVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendUpgradeVO.java @@ -11,12 +11,6 @@ import java.util.List; /** * 直推升级VO - * - * @Description: - * @Author: ljc - * @Time: 2023/4/22 11:06 - * @Classname: AcRecommendUpgradeVO - * @Package_name: com.hzs.activity.recommend.vo */ @Data @Builder diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendVO.java index fc3ab62d..75e356c4 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRecommendVO.java @@ -17,7 +17,6 @@ import java.util.List; @NoArgsConstructor public class AcRecommendVO implements Serializable { - private static final long serialVersionUID = 7140530986849619774L; /** * 活动基本配置主键 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsShowVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsShowVO.java index 2040ca9c..9d37a7d0 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsShowVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsShowVO.java @@ -8,13 +8,6 @@ import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.List; -/** - * @Description: - * @Author: ljc - * @Time: 2023/4/22 11:40 - * @Classname: AcRepurchaseCouponsShowVO - * @Package_name: com.hzs.activity.recommend.vo - */ @Data @Builder @AllArgsConstructor diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsVO.java index c22442cd..3ff652b9 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/recommend/vo/AcRepurchaseCouponsVO.java @@ -1,6 +1,5 @@ package com.hzs.activity.recommend.vo; - import com.hzs.common.core.annotation.Transaction; import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; @@ -12,12 +11,6 @@ import java.math.BigDecimal; /** * 直推复购券 VO - * - * @Description: - * @Author: ljc - * @Time: 2023/4/22 11:00 - * @Classname: AcRepurchaseCouponsVO - * @Package_name: com.hzs.activity.recommend.vo */ @Data @AllArgsConstructor diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/recommend/AcRecomUpgradeRecordMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/recommend/AcRecomUpgradeRecordMapper.xml index 95d548ca..1f4079d7 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/recommend/AcRecomUpgradeRecordMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/recommend/AcRecomUpgradeRecordMapper.xml @@ -41,23 +41,60 @@ - + select t.* from ( + select so.* from sa_order so - left join cu_member_level cml - on cml.pk_member = so.pk_member - and cml.pk_order = so.pk_id - left join bd_grade bg - on bg.pk_id = cml.new_level + left join cu_member_level cml + on cml.pk_member = so.pk_member + and cml.pk_order = so.pk_id + left join bd_grade bg + on bg.pk_id = cml.new_level where so.del_flag = 0 - and so.order_status = 1 - and (so.order_type in (1, 2) or so.order_type_extend = 1) - and so.pay_time >= #{startTime} - and #{endTime} >= so.pay_time - and so.pk_reference = #{pkMember} - and bg.grade_value >= (select grade_value from bd_grade where pk_id = #{pkGrade}) - group by so.pk_reference - having count(so.pk_reference) >= #{num} + and so.order_status = 1 + and so.order_type in (1, 2) + and so.pay_time >= #{startTime} + and #{endTime} >= so.pay_time + and so.pk_reference = #{pkMember} + and bg.grade_value >= (select grade_value from bd_grade where pk_id = #{pkGrade}) + order by so.pay_time + ) t + where #{num} >= rownum + + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java index a5bb49d7..f0952f1d 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java @@ -254,6 +254,9 @@ public enum EOperationBusiness { AC_RECOMMEEND_CONFIG("直推赠送"), + AC_DIRECT_PUSH_UPGRADE("直推升级"), + + AC_WARES_RULE_CONFIG("商品赠送"), AC_TOURISM_CONFIG("旅游活动"), diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java index 68ac3a01..60a4ed28 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java @@ -353,6 +353,8 @@ public enum EOperationModule { AC_RECOMMEEND_CONFIG("直推赠送"), + AC_DIRECT_PUSH_UPGRADE("直推升级"), + AC_TOURISM_CONFIG("旅游活动"), AC_WARES_RULE_CONFIG("商品赠送"), diff --git a/bd-third/src/main/java/com/hzs/third/mqcall/listener/ActivityBackListener.java b/bd-third/src/main/java/com/hzs/third/mqcall/listener/ActivityBackListener.java index 24912842..b8d62d5a 100644 --- a/bd-third/src/main/java/com/hzs/third/mqcall/listener/ActivityBackListener.java +++ b/bd-third/src/main/java/com/hzs/third/mqcall/listener/ActivityBackListener.java @@ -25,15 +25,16 @@ import java.util.List; public class ActivityBackListener { @DubboReference - IActivityServiceApi activityServiceApi; + IActivityServiceApi iActivityServiceApi; @RabbitListener(bindings = @QueueBinding( exchange = @Exchange(value = RabbitMqConstants.ORDER_CANCEL_EXCHANGE, type = "topic"), value = @Queue(value = RabbitMqConstants.ORDER_CANCEL_ACTIVITY_BACK_QUEUE, durable = "true", autoDelete = "false"), key = RabbitMqConstants.ORDER_CANCEL_KEY)) @RabbitHandler - public void onMessage(Message> message, Channel channel) throws Exception { + public void onMessage(Message> message, Channel channel) { try { + Thread.sleep(500); Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); channel.basicAck(deliveryTag, false); @@ -44,15 +45,16 @@ public class ActivityBackListener { if (CollectionUtil.isNotEmpty(saOrderExtList)) { SaOrderExt saOrderExt = saOrderExtList.get(0); - // 处理抽奖 - activityServiceApi.backGiveMemberDrawNum(saOrderExt); +// // 处理抽奖 +// iActivityServiceApi.backGiveMemberDrawNum(saOrderExt); if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType() - || EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType() - || EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType() - || EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) { + || EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) { // 处理直推升级 - activityServiceApi.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder().saOrderExt(saOrderExt).orderOperateStatus(EOrderOperateStatus.CANCEL).build()); + iActivityServiceApi.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder(). + saOrderExt(saOrderExt). + orderOperateStatus(EOrderOperateStatus.CANCEL) + .build()); } } } catch (Exception e) {