Merge remote-tracking branch 'origin/bd_test' into bd_test

This commit is contained in:
sangelxiu1 2025-09-24 10:22:08 +08:00
commit 3d9a2c5be6
27 changed files with 663 additions and 211 deletions

View File

@ -284,7 +284,7 @@ public interface IMemberServiceApi {
R<Boolean> 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则有血缘关系
*

View File

@ -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

View File

@ -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<Boolean> checkParent(String topCode, Long userId) {
return R.ok(iCuMemberService.checkParent(topCode, userId) > 0);

View File

@ -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);
/**
* 查询会员的安置位置
*

View File

@ -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.<CuMemberLevel>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.<CuMemberLevel>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();

View File

@ -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<Boolean> 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();
}

View File

@ -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());

View File

@ -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));
}
/**
* 直推赠送查看详情

View File

@ -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;
}

View File

@ -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<AcRecomUpgradeRec
/**
* 判断会员是否达标并且查询对应订单
*/
SaOrder getRecomOrder(@Param("pkMember") Long pkMember,
@Param("pkGrade") Integer pkGrade,
@Param("num") Integer num,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
List<SaOrder> listRecomOrder(@Param("pkMember") Long pkMember,
@Param("pkGrade") Integer pkGrade,
@Param("num") Integer num,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param);
}

View File

@ -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;
}

View File

@ -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<AcRecommendUpgradeVO> recommendUpgradeList;
}

View File

@ -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<AcRecomUpgradeRec
/**
* 判断会员是否达标并且查询对应订单
*/
SaOrder getRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime);
List<SaOrder> listRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime);
List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param);
}

View File

@ -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<AcRepurCoupon
*
* @param acRecommendUpgrade 直推升级信息
*/
Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade);
Boolean invokeRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade);
/**
* 查询目前所有启用的复购券规则
@ -74,5 +75,6 @@ public interface IAcRepurCouponsRuleConfigService extends IService<AcRepurCoupon
*/
Boolean deleteCouponsRuleConfigByBaseId(Long pkBaseId, Long pkModifyId);
String directPushUpgradeSubmit(AcDirectPushUpgradeParam acDirectPushUpgradeParam);
}

View File

@ -3,8 +3,11 @@ package com.hzs.activity.recommend.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.activity.recommend.mapper.AcRecomUpgradeRecordMapper;
import com.hzs.activity.recommend.param.AcDirectPushUpgradeListParam;
import com.hzs.activity.recommend.service.IAcRecomUpgradeRecordService;
import com.hzs.activity.recommend.vo.AcDirectPushUpgradeListVO;
import com.hzs.common.core.enums.EDelFlag;
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;
@ -49,8 +52,13 @@ public class AcRecomUpgradeRecordServiceImpl extends ServiceImpl<AcRecomUpgradeR
}
@Override
public SaOrder getRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime) {
return baseMapper.getRecomOrder(pkMember, pkGrade, num, startTime, endTime);
public List<SaOrder> listRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime) {
return baseMapper.listRecomOrder(pkMember, pkGrade, num, startTime, endTime);
}
@Override
public List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param) {
return baseMapper.queryList(param);
}
}

View File

@ -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<AcRepurCoup
@Autowired
private IAcApprovalLogService acApprovalLogService;
@Autowired
private IAcPickService acPickService;
@Autowired
private IAcGoalMemberConfigService acGoalMemberConfigService;
@Autowired
private IAcRepurSharOrderTypeService acRepurSharOrderTypeService;
@ -581,32 +578,31 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade) {
AcBaseConfigVO baseConfigVO = AcBaseConfigVO.builder()
.actType(EActType.RECOMMEND_UPGRADE.getValue())
.pkCountry(acRecommendUpgrade.getSaOrderExt().getPkCountry())
.build();
// 查询订单时内的直推活动
List<AcBaseConfig> 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<AcBaseConfig> 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<AcRepurCoup
if (monthFirst.compareTo(startTime) > 0) {
startTime = monthFirst;
}
List<SaOrder> 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<AcRepurCoup
}
}
/**
* 撤单
* 撤单处理
*/
private Boolean cancelOrder(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) {
private void handleCancelRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade) {
Date nowDate = new Date();
// 订单信息
SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
// 订单ID
Long pkOrderId = saOrderExt.getPkId();
//修改人
Long pkModified = saOrderExt.getPkReference();
AcRecomUpgradeRecordExt upgradeRecordOrder = new AcRecomUpgradeRecordExt();
upgradeRecordOrder.setPkOrderId(pkOrderId);
upgradeRecordOrder.setStartDate(baseConfig.getActStartDate());
upgradeRecordOrder.setEndDate(baseConfig.getActEndDate());
//根据orderId查询
AcRecomUpgradeRecord recomUpgradeRecord = iAcRecomUpgradeRecordService.selectUpgradeRecordByOrderId(upgradeRecordOrder);
if (null != recomUpgradeRecord) {
Long pkRuleId = recomUpgradeRecord.getPkRuleId();
//查询规则
AcRecomUpgradeRuleConfig upgradeRuleConfig = iAcRecomUpgradeRuleConfigService.getById(pkRuleId);
//结算等级
Integer pkSettleGrade = upgradeRuleConfig.getPkSettleGrade();
//找茬等级
Integer pkRecommendGrade = upgradeRuleConfig.getPkRecommendGrade();
if (pkSettleGrade.equals(recomUpgradeRecord.getPkSettleGrade()) && pkRecommendGrade.equals(recomUpgradeRecord.getPkRecommendGrade())) {
//撤单更新状态
iAcRecomUpgradeRecordService.cancelOrder(pkOrderId, pkModified);
AcRecomUpgradeRecordExt upgradeRecord = BeanUtil.copyProperties(recomUpgradeRecord, AcRecomUpgradeRecordExt.class);
upgradeRecord.setPkSettleGrade(pkSettleGrade);
upgradeRecord.setPkRecommendGrade(pkRecommendGrade);
upgradeRecord.setStartDate(baseConfig.getActStartDate());
upgradeRecord.setEndDate(baseConfig.getActEndDate());
upgradeRecord.setUpgradeStatus(1);
//推荐人数
List<Long> 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<AcGiftConfigExt> 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<AcRecomUpgradeRecord> upgradeRecordList = iAcRecomUpgradeRecordService.list(Wrappers.<AcRecomUpgradeRecord>lambdaQuery()
.eq(AcRecomUpgradeRecord::getPkMember, pkMember)
.eq(AcRecomUpgradeRecord::getPkOrderId, pkOrderId)
.orderByDesc(AcRecomUpgradeRecord::getUpgradeTime)
);
if (CollectionUtil.isNotEmpty(upgradeRecordList)) {
// 会员活动升级记录
AcRecomUpgradeRecord recomUpgradeRecord = upgradeRecordList.get(0);
// 删除活动升级记录
iAcRecomUpgradeRecordService.update(Wrappers.<AcRecomUpgradeRecord>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<SaOrder> 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<AcRepurCoup
return true;
case PLACE_STOP:
// 安置禁止
if (iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 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<AcRepurCoup
return update(updateWrapper);
}
@Override
@Transactional(rollbackFor = Exception.class)
public String directPushUpgradeSubmit(AcDirectPushUpgradeParam acDirectPushUpgradeParam) {
log.info("直推参数{}", JSONUtil.toJsonStr(acDirectPushUpgradeParam));
EApprovalBusiness approvalBusiness = EApprovalBusiness.DIRECT_PUSH_UPGRADE;
//根据产品ID查询产品名称
List<AcRecommendUpgradeVO> recommendUpgradeList = acDirectPushUpgradeParam.getRecommendUpgradeList();
if (CollUtil.isNotEmpty(recommendUpgradeList)) {
for (AcRecommendUpgradeVO recommendUpgradeVO : recommendUpgradeList) {
List<AcGiftConfigVO> 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<AcRecommendUpgradeVO> recommendUpgradeList = param.getRecommendUpgradeList();
Map<String, String> 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<AcRecommendUpgradeVO> 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<AcRecommendUpgradeVO> 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<AcGiftConfig> giftConfigs = saveRecommendUpgradeGift(recommendUpgradeVO, recomUpgradeRuleConfig.getPkId());
giftConfigService.saveBatch(giftConfigs);
}
}
}
private String saveDirectPushUpgradeBaseConfig(AcDirectPushUpgradeParam acDirectPushUpgradeParam) {
ActivityParam activityParam = acDirectPushUpgradeParam.getActivityParam();
if (null == activityParam) {
return "没有活动的基本信息!";
}
List<AcRecommendUpgradeVO> 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;
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -17,7 +17,6 @@ import java.util.List;
@NoArgsConstructor
public class AcRecommendVO implements Serializable {
private static final long serialVersionUID = 7140530986849619774L;
/**
* 活动基本配置主键

View File

@ -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

View File

@ -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

View File

@ -41,23 +41,60 @@
</select>
<!-- 判断会员是否达标并且查询对应订单 -->
<select id="getRecomOrder" resultType="com.hzs.common.domain.sale.order.SaOrder">
select so.pk_reference, max(so.pk_id) pk_id, max(so.pay_time) pay_time
<select id="listRecomOrder" resultType="com.hzs.common.domain.sale.order.SaOrder">
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
</select>
<select id="queryList" resultType="com.hzs.activity.recommend.vo.AcDirectPushUpgradeListVO">
SELECT
abc.ACT_NAME,
cm.member_code,
cm.member_name,
arur.PK_SETTLE_GRADE,
arur.PK_RECOMMEND_GRADE,
abc.ACT_START_DATE,
abc.ACT_END_DATE,
arur.CREATION_TIME,
arur.UPGRADE_TIME
FROM
AC_RECOM_UPGRADE_RECORD arur
LEFT JOIN AC_BASE_CONFIG abc ON arur.PK_BASE_ID = abc.PK_ID
LEFT JOIN CU_MEMBER cm ON arur.pk_member = cm.pk_id
WHERE arur.DEL_FLAG = 0
<if test="actName != null">
AND abc.ACT_NAME = #{actName}
</if>
<if test="memberCode != null">
AND cm.member_code = #{memberCode}
</if>
<if test="startActStartDate != null">
AND abc.ACT_START_DATE >= #{startActStartDate}
</if>
<if test="startActEndDate != null">
AND abc.ACT_START_DATE &lt;= #{startActEndDate}
</if>
<if test="startActEndDate != null">
AND abc.ACT_END_DATE >= #{endActStartDate}
</if>
<if test="endActStartDate != null">
AND abc.ACT_END_DATE &lt;= #{endActEndDate}
</if>
</select>
</mapper>

View File

@ -254,6 +254,9 @@ public enum EOperationBusiness {
AC_RECOMMEEND_CONFIG("直推赠送"),
AC_DIRECT_PUSH_UPGRADE("直推升级"),
AC_WARES_RULE_CONFIG("商品赠送"),
AC_TOURISM_CONFIG("旅游活动"),

View File

@ -353,6 +353,8 @@ public enum EOperationModule {
AC_RECOMMEEND_CONFIG("直推赠送"),
AC_DIRECT_PUSH_UPGRADE("直推升级"),
AC_TOURISM_CONFIG("旅游活动"),
AC_WARES_RULE_CONFIG("商品赠送"),

View File

@ -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<List<SaOrderExt>> message, Channel channel) throws Exception {
public void onMessage(Message<List<SaOrderExt>> 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) {