## 推3升一级活动正向;

This commit is contained in:
cabbage 2025-09-23 16:35:08 +08:00
parent 368406e9d7
commit 867a39cc72
27 changed files with 318 additions and 365 deletions

View File

@ -154,19 +154,6 @@ public interface IMemberServiceApi {
*/
R<CuMember> getMember(Long pkMember);
/**
* 获取会员缓存
*
* @param memberCode 会员编号
* @return CuMember
*/
R<CuMember> queryMember(String memberCode);
/**
* 查询会员
*/
R<CuMember> queryMember(Long pkMember);
/**
* 保存新会员信息,待支付订单
*
@ -302,9 +289,8 @@ public interface IMemberServiceApi {
* @param cuMember 用户信息
* @param saOrder 订单信息
* @param pkOldLevel 原等级
* @return R<Boolean>
*/
R<Boolean> updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
R<?> updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
/**
* 校验是否血缘关系返回true则有血缘关系
@ -322,11 +308,6 @@ public interface IMemberServiceApi {
*/
R<CuMemberExt> checkMemberByParentList(List<String> topCodeList, Long userId);
/**
* 获取奖衔的翻译KEY值
**/
Integer getAwardsTranslateValue(Integer pkCountry, Integer pkId);
/**
* 查询全部
*

View File

@ -10,7 +10,7 @@ import java.util.Date;
import java.util.List;
/**
* 所有活动的生效获得赠品入口
* 所有活动的生效
*/
public interface IActivityServiceApi {

View File

@ -208,16 +208,6 @@ public class MemberServiceProvider implements IMemberServiceApi {
return R.ok(iCuMemberService.getMember(pkMember));
}
@Override
public R<CuMember> queryMember(String memberCode) {
return R.ok(iCuMemberService.queryMember(memberCode));
}
@Override
public R<CuMember> queryMember(Long pkMember) {
return R.ok(iCuMemberService.queryMember(pkMember));
}
@Override
public R<Boolean> saveMember(CuMember cuMember) {
try {
@ -352,8 +342,13 @@ public class MemberServiceProvider implements IMemberServiceApi {
}
@Override
public R<Boolean> updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) {
return R.ok(iCuMemberBusinessService.updateMemberLevel(cuMember, saOrder, pkOldLevel));
public R<?> updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) {
try {
iCuMemberBusinessService.updateMemberLevel(cuMember, saOrder, pkOldLevel);
return R.ok();
} catch (Exception e) {
return R.fail(e.getMessage());
}
}
@Override
@ -366,11 +361,6 @@ public class MemberServiceProvider implements IMemberServiceApi {
return R.ok(iCuMemberService.checkMemberByParentList(topCodeList, userId));
}
@Override
public Integer getAwardsTranslateValue(Integer pkCountry, Integer pkId) {
return iCuMemberService.getAwardsTranslateValue(pkCountry, pkId);
}
@Override
public R<List<CuMemberExt>> findAll() {
return R.ok(iCuMemberService.findAll());

View File

@ -174,7 +174,7 @@ public interface ICuMemberBusinessService {
* @param saOrder 订单信息
* @param pkOldLevel 原等级
*/
Boolean updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
/**
* 查询会员的安置位置

View File

@ -195,19 +195,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
* @param saOrder 订单
* @param pkOldLevel 原等级
*/
private Boolean saveLevelUpgrade(CuMember cuMember, Integer levelType, SaOrder saOrder, Integer pkOldLevel) {
// V3可以买一单升V4这个位置需要添加校验如果是购买升级 并且 原等级大于新等级不添加升级记录
if (EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrder.getOrderType()
&& EUpgradeType.BUY_UPGRADE.getValue() == levelType) {
// 购买升级
GradeDTO oldGrade = iGradeServiceApi.getGrade(pkOldLevel).getData();
GradeDTO newGrade = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
if (oldGrade.getGradeValue() >= newGrade.getGradeValue()) {
// 旧等级大于等于新等级则不需要添加升级记录
return true;
}
}
private void saveLevelUpgrade(CuMember cuMember, Integer levelType, SaOrder saOrder, Integer pkOldLevel) {
// 记录升级历史
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(cuMember.getPkId())
@ -219,7 +207,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build();
cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry());
cuMemberLevel.setPkCreator(cuMember.getPkId());
return iCuMemberLevelService.save(cuMemberLevel);
iCuMemberLevelService.save(cuMemberLevel);
}
/**
@ -1215,9 +1203,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) {
public void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) {
updateCuMember(cuMember);
return saveLevelUpgrade(cuMember, EUpgradeType.ACTIVITY_UPGRADE.getValue(), saOrder, pkOldLevel);
saveLevelUpgrade(cuMember, EUpgradeType.ACTIVITY_UPGRADE.getValue(), saOrder, pkOldLevel);
}
@Override

View File

@ -17,7 +17,6 @@ public interface AcBaseConfigMapper extends BaseMapper<AcBaseConfig> {
* 根据活动类型查询基本配置
*
* @param baseConfigVO 基本活动配置
* @return List<AcBaseConfig>
*/
List<AcBaseConfig> selectBaseConfigByType(AcBaseConfigVO baseConfigVO);

View File

@ -19,22 +19,22 @@ import java.util.Date;
import java.util.List;
/**
* 所有活动的生效获得赠品入口
* 所有活动的生效
*/
@Slf4j
@DubboService
public class ActivityServiceProvider implements IActivityServiceApi {
@Autowired
private IAcDrawRewardNumService acDrawRewardNumService;
private IAcDrawRewardNumService iAcDrawRewardNumService;
@Autowired
private IAcRepurCouponsRuleConfigService acRepurCouponsRuleConfigService;
private IAcRepurCouponsRuleConfigService iAcRepurCouponsRuleConfigService;
@Autowired
private IActivityService iActivityService;
@Override
public R<BigDecimal> queryDrawRewardPayNumMoney(Long pkMember, String orderCode) {
BigDecimal payMoney = acDrawRewardNumService.queryDrawRewardPayNumMoney(pkMember, orderCode);
BigDecimal payMoney = iAcDrawRewardNumService.queryDrawRewardPayNumMoney(pkMember, orderCode);
if (payMoney == null) {
return R.fail();
}
@ -53,7 +53,7 @@ public class ActivityServiceProvider implements IActivityServiceApi {
@Override
public R<Boolean> callBackOnlinePay(Long pkMember, String orderCode) {
try {
return R.ok(acDrawRewardNumService.callBackOnlinePay(pkMember, orderCode));
return R.ok(iAcDrawRewardNumService.callBackOnlinePay(pkMember, orderCode));
} catch (Exception e) {
return R.fail();
}
@ -62,7 +62,7 @@ public class ActivityServiceProvider implements IActivityServiceApi {
@Override
public R<Boolean> backGiveMemberDrawNum(SaOrderExt saOrderExt) {
try {
return R.ok(acDrawRewardNumService.backGiveMemberDrawNum(saOrderExt));
return R.ok(iAcDrawRewardNumService.backGiveMemberDrawNum(saOrderExt));
} catch (Exception e) {
return R.fail();
}
@ -70,7 +70,7 @@ public class ActivityServiceProvider implements IActivityServiceApi {
@Override
public R<List<AcRepurCouponsRuleConfig>> queryAcRepurchaseCouponsRule(Date settleDate) {
List<AcRepurCouponsRuleConfig> acRepurCouponsRuleConfigList = acRepurCouponsRuleConfigService.queryAcRepurchaseCouponsRule(settleDate);
List<AcRepurCouponsRuleConfig> acRepurCouponsRuleConfigList = iAcRepurCouponsRuleConfigService.queryAcRepurchaseCouponsRule(settleDate);
if (acRepurCouponsRuleConfigList != null && acRepurCouponsRuleConfigList.size() > 0) {
return R.ok(acRepurCouponsRuleConfigList);
} else {
@ -81,7 +81,7 @@ public class ActivityServiceProvider implements IActivityServiceApi {
@Override
public R<Boolean> invokeRecommendUpgrade(AcRecommendUpgradeDTO recommendUpgradeDTO) {
try {
return R.ok(acRepurCouponsRuleConfigService.invokeRecommendUpgrade(BeanUtil.copyProperties(recommendUpgradeDTO, AcRecommendUpgrade.class)));
return R.ok(iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(BeanUtil.copyProperties(recommendUpgradeDTO, AcRecommendUpgrade.class)));
} catch (Exception e) {
return R.fail();
}

View File

@ -16,7 +16,6 @@ public interface IAcBaseConfigService extends IService<AcBaseConfig> {
* 根据活动类型查询基本配置
*
* @param baseConfigVO 基本活动配置
* @return List<AcBaseConfig>
*/
List<AcBaseConfig> selectBaseConfigByType(AcBaseConfigVO baseConfigVO);

View File

@ -105,9 +105,9 @@ public class ActivityServiceImpl implements IActivityService {
@Autowired
private IAcMemberConsumeRuleService iAcMemberConsumeRuleService;
@Autowired
private IAcDrawRewardNumService acDrawRewardNumService;
private IAcDrawRewardNumService iAcDrawRewardNumService;
@Autowired
private IAcRepurCouponsRuleConfigService acRepurCouponsRuleConfigService;
private IAcRepurCouponsRuleConfigService iAcRepurCouponsRuleConfigService;
@Autowired
private IAcPickUpConfigService pickUpConfigService;
@Autowired
@ -118,13 +118,13 @@ public class ActivityServiceImpl implements IActivityService {
private IBdWaresService waresService;
@DubboReference
IGradeServiceApi gradeServiceApi;
IGradeServiceApi iGradeServiceApi;
@DubboReference
IAwardsServiceApi awardsServiceApi;
IAwardsServiceApi iAwardsServiceApi;
@DubboReference
IMemberServiceApi iMemberServiceApi;
@DubboReference
IApprovalServiceApi approvalServiceApi;
IApprovalServiceApi iApprovalServiceApi;
/**
@ -400,7 +400,7 @@ public class ActivityServiceImpl implements IActivityService {
for (Map.Entry<Integer, List<AcGoalMemberConfig>> item : memberConfigList.entrySet()) {
if (item.getKey().equals(1)) {
// 等级
R<List<GradeDTO>> gradeDTO = gradeServiceApi.selectGradeAll(activityParam.getPkCountry());
R<List<GradeDTO>> gradeDTO = iGradeServiceApi.selectGradeAll(activityParam.getPkCountry());
List<GradeDTO> gradeList = gradeDTO.getData();
str.append("注册等级:");
for (AcGoalMemberConfig acGoalMemberConfig : item.getValue()) {
@ -414,7 +414,7 @@ public class ActivityServiceImpl implements IActivityService {
str.append("\t\t");
} else if (item.getKey().equals(2)) {
// 奖衔
R<List<BdAwards>> awardsDTO = awardsServiceApi.queryAwards(activityParam.getPkCountry());
R<List<BdAwards>> awardsDTO = iAwardsServiceApi.queryAwards(activityParam.getPkCountry());
List<BdAwards> awardsList = awardsDTO.getData();
str.append("真实奖衔:");
for (AcGoalMemberConfig acGoalMemberConfig : item.getValue()) {
@ -632,7 +632,7 @@ public class ActivityServiceImpl implements IActivityService {
*/
@Override
public String onLinePetition(AcRecommendParam recommendParam) {
log.info("旅游活动新增参数{}",JSONUtil.toJsonStr(recommendParam));
log.info("旅游活动新增参数{}", JSONUtil.toJsonStr(recommendParam));
//业务单号
String code = CommonUtil.createSerialNumber(EOrderPrefix.ACTIVITY_CODE.getValue());
EApprovalBusiness approvalBusiness = null;
@ -763,7 +763,7 @@ public class ActivityServiceImpl implements IActivityService {
.signType(ESignType.getEnumByValue(recommendParam.getSignType())).userIdList(recommendParam.getUserIdList())
.fileList(recommendParam.getFileList())
.sendIdList(recommendParam.getSendIdList()).remark(recommendParam.getRemark()).build();
R<String> submit = approvalServiceApi.submit(approvalSubmitDTO, recommendParam.getLoginUser());
R<String> submit = iApprovalServiceApi.submit(approvalSubmitDTO, recommendParam.getLoginUser());
if (!submit.isSuccess()) {
throw new RuntimeException("旅游活动参数提交审批失败!");
}
@ -804,21 +804,21 @@ public class ActivityServiceImpl implements IActivityService {
@Transactional(rollbackFor = Exception.class)
public Boolean handleActivity(SaOrderExt saOrderExt) {
if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()) {
if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()) {
// 抽奖
acDrawRewardNumService.giveMemberDrawNum(saOrderExt);
}
// // 抽奖
// iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt);
// 直推升级
acRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder().saOrderExt(saOrderExt).orderOperateStatus(EOrderOperateStatus.NORMAL).build());
iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder()
.saOrderExt(saOrderExt)
.orderOperateStatus(EOrderOperateStatus.NORMAL)
.build());
} else if (EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
// 抽奖
acDrawRewardNumService.giveMemberDrawNum(saOrderExt);
// // 抽奖
// iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt);
// 直推升级
acRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder().saOrderExt(saOrderExt).orderOperateStatus(EOrderOperateStatus.NORMAL).build());
} else if (EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|| EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
// 直推升级
acRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder().saOrderExt(saOrderExt).orderOperateStatus(EOrderOperateStatus.NORMAL).build());
iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder()
.saOrderExt(saOrderExt)
.orderOperateStatus(EOrderOperateStatus.NORMAL)
.build());
}
return true;
}
@ -1050,7 +1050,7 @@ public class ActivityServiceImpl implements IActivityService {
&& StringUtils.isNotEmpty(cuMember.getMemberName())
&& StringUtils.isNotEmpty(cuMember.getPhone())) {
// 根据订单业绩匹配对应等级
BdGrade bdGrade = gradeServiceApi.getLastGrade(giftConfigParam.getOrderAchieve(), pkCountry).getData();
BdGrade bdGrade = iGradeServiceApi.getLastGrade(giftConfigParam.getOrderAchieve(), pkCountry).getData();
if (null != bdGrade) {
// 查询会员该等级点位数量因为当前订单的数据还没有更新入库此处计算数量时需要加 1
Integer memberPoint = iMemberServiceApi.countGradeMemberPoint(cuMember.getMemberName(), cuMember.getPhone(), bdGrade.getPkId(), pkCountry).getData() + 1;

View File

@ -183,7 +183,7 @@ public class AcPickServiceImpl extends ServiceImpl<AcPickMapper, AcPick> impleme
// approvalLogList.add(acApprovalLog);
// 会员信息
CuMember cuMember = iMemberServiceApi.queryMember(detailParam.getMemberCode()).getData();
CuMember cuMember = iMemberServiceApi.getMember(detailParam.getMemberCode()).getData();
// 提货ID
Long pickId = null;
// 提货类型
@ -357,7 +357,7 @@ public class AcPickServiceImpl extends ServiceImpl<AcPickMapper, AcPick> impleme
// approvalLogList.add(acApprovalLog);
// 被操作会员
CuMember cuMember = iMemberServiceApi.queryMember(detailParam.getMemberCode()).getData();
CuMember cuMember = iMemberServiceApi.getMember(detailParam.getMemberCode()).getData();
// 提货ID
Long pickId = null;
if (null == detailParam.getPkId()) {

View File

@ -1,6 +1,5 @@
package com.hzs.activity.recommend.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

@ -3,14 +3,14 @@ package com.hzs.activity.recommend.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecord;
import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecordExt;
import com.hzs.common.domain.sale.order.SaOrder;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 推荐升级业务表 Mapper 接口
*
* @author hzs
* @since 2023-04-27
*/
public interface AcRecomUpgradeRecordMapper extends BaseMapper<AcRecomUpgradeRecord> {
@ -30,4 +30,13 @@ public interface AcRecomUpgradeRecordMapper extends BaseMapper<AcRecomUpgradeRec
*/
List<Long> selectRecommendNumber(AcRecomUpgradeRecordExt upgradeRecord);
/**
* 判断会员是否达标并且查询对应订单
*/
SaOrder getRecomOrder(@Param("pkMember") Long pkMember,
@Param("pkGrade") Integer pkGrade,
@Param("num") Integer num,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
}

View File

@ -8,18 +8,12 @@ import java.util.List;
/**
* 直推-推荐升级 Mapper 接口
*
* @author hzs
* @since 2023-04-22
*/
public interface AcRecomUpgradeRuleConfigMapper extends BaseMapper<AcRecomUpgradeRuleConfig> {
/**
* 查询配置规则
*
* @param recommendUpgradeVO 推荐升级参数
* @return List<AcRecomUpgradeRuleConfig>
*/
List<AcRecomUpgradeRuleConfig> selectRuleConfig(AcRecommendUpgradeVO recommendUpgradeVO);
List<AcRecomUpgradeRuleConfig> listRuleConfig(AcRecommendUpgradeVO recommendUpgradeVO);
}

View File

@ -3,14 +3,13 @@ package com.hzs.activity.recommend.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecord;
import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecordExt;
import com.hzs.common.domain.sale.order.SaOrder;
import java.util.Date;
import java.util.List;
/**
* 推荐升级业务表 服务类
*
* @author hzs
* @since 2023-04-27
*/
public interface IAcRecomUpgradeRecordService extends IService<AcRecomUpgradeRecord> {
@ -31,7 +30,6 @@ public interface IAcRecomUpgradeRecordService extends IService<AcRecomUpgradeRec
*/
AcRecomUpgradeRecord selectUpgradeRecordByOrderId(AcRecomUpgradeRecordExt upgradeRecord);
/**
* 查询推荐的人数
*
@ -49,4 +47,9 @@ public interface IAcRecomUpgradeRecordService extends IService<AcRecomUpgradeRec
*/
Boolean updateUpgradeStatusById(List<Long> pkIds, Long pkModified, Integer upGradeStatus);
/**
* 判断会员是否达标并且查询对应订单
*/
SaOrder getRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime);
}

View File

@ -8,11 +8,9 @@ import java.util.List;
/**
* 直推-推荐升级 服务类
*
* @author hzs
* @since 2023-04-22
*/
public interface IAcRecomUpgradeRuleConfigService extends IService<AcRecomUpgradeRuleConfig> {
/**
* 根据活动ID查询直推升级
*
@ -23,11 +21,8 @@ public interface IAcRecomUpgradeRuleConfigService extends IService<AcRecomUpgrad
/**
* 查询配置规则
*
* @param recommendUpgradeVO 推荐升级参数
* @return List<AcRecomUpgradeRuleConfig>
*/
List<AcRecomUpgradeRuleConfig> selectRuleConfig(AcRecommendUpgradeVO recommendUpgradeVO);
List<AcRecomUpgradeRuleConfig> listRuleConfig(AcRecommendUpgradeVO recommendUpgradeVO);
/**
* 根据活动配置主键删除推荐升级配置

View File

@ -56,9 +56,9 @@ public interface IAcRepurCouponsRuleConfigService extends IService<AcRepurCoupon
/**
* 调用直推升级对外提供接口
*
* @param acRepurchaseCouponsDTO 直推升级信息
* @param acRecommendUpgrade 直推升级信息
*/
Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRepurchaseCouponsDTO);
Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade);
/**
* 查询目前所有启用的复购券规则

View File

@ -7,6 +7,7 @@ import com.hzs.activity.recommend.service.IAcRecomUpgradeRecordService;
import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecord;
import com.hzs.common.domain.activity.recommend.AcRecomUpgradeRecordExt;
import com.hzs.common.domain.sale.order.SaOrder;
import org.springframework.stereotype.Service;
import java.util.Date;
@ -14,9 +15,6 @@ import java.util.List;
/**
* 推荐升级业务表 服务实现类
*
* @author hzs
* @since 2023-04-27
*/
@Service
public class AcRecomUpgradeRecordServiceImpl extends ServiceImpl<AcRecomUpgradeRecordMapper, AcRecomUpgradeRecord> implements IAcRecomUpgradeRecordService {
@ -50,4 +48,9 @@ public class AcRecomUpgradeRecordServiceImpl extends ServiceImpl<AcRecomUpgradeR
return this.update(updateWrapper);
}
@Override
public SaOrder getRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime) {
return baseMapper.getRecomOrder(pkMember, pkGrade, num, startTime, endTime);
}
}

View File

@ -15,9 +15,6 @@ import java.util.List;
/**
* 直推-推荐升级 服务实现类
*
* @author hzs
* @since 2023-04-22
*/
@Service
public class AcRecomUpgradeRuleConfigServiceImpl extends ServiceImpl<AcRecomUpgradeRuleConfigMapper, AcRecomUpgradeRuleConfig> implements IAcRecomUpgradeRuleConfigService {
@ -30,8 +27,8 @@ public class AcRecomUpgradeRuleConfigServiceImpl extends ServiceImpl<AcRecomUpgr
}
@Override
public List<AcRecomUpgradeRuleConfig> selectRuleConfig(AcRecommendUpgradeVO recommendUpgradeVO) {
return baseMapper.selectRuleConfig(recommendUpgradeVO);
public List<AcRecomUpgradeRuleConfig> listRuleConfig(AcRecommendUpgradeVO recommendUpgradeVO) {
return baseMapper.listRuleConfig(recommendUpgradeVO);
}
@Override

View File

@ -22,7 +22,9 @@ import com.hzs.activity.recommend.vo.*;
import com.hzs.activity.wares.service.IAcGiftConfigService;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.constant.RabbitMqConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.utils.CommonUtil;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
@ -45,6 +47,7 @@ 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;
@ -56,32 +59,33 @@ import java.util.stream.Collectors;
public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCouponsRuleConfigMapper, AcRepurCouponsRuleConfig> implements IAcRepurCouponsRuleConfigService {
@Autowired
IActivityService iActivityService;
private IActivityService iActivityService;
@Autowired
IAcRecomUpgradeRuleConfigService recomUpgradeRuleConfigService;
private IAcBaseConfigService iAcBaseConfigService;
@Autowired
IAcGiftConfigService giftConfigService;
private IAcRecomUpgradeRuleConfigService iAcRecomUpgradeRuleConfigService;
@Autowired
IAcBaseConfigService baseConfigService;
private IAcRecomUpgradeRecordService iAcRecomUpgradeRecordService;
@Autowired
IAcApprovalLogService acApprovalLogService;
private IAcGiftConfigService giftConfigService;
@Autowired
IAcRecomUpgradeRecordService acRecomUpgradeRecordService;
private IAcApprovalLogService acApprovalLogService;
@Autowired
IAcPickService acPickService;
private IAcPickService acPickService;
@Autowired
IAcGoalMemberConfigService acGoalMemberConfigService;
private IAcGoalMemberConfigService acGoalMemberConfigService;
@Autowired
IAcRepurSharOrderTypeService acRepurSharOrderTypeService;
private IAcRepurSharOrderTypeService acRepurSharOrderTypeService;
@Autowired
IAcRepurSharRuleConfigService acRepurSharRuleConfigService;
private IAcRepurSharRuleConfigService acRepurSharRuleConfigService;
@Autowired
IAcBaseAuthorityService iAcBaseAuthorityService;
private IAcBaseAuthorityService iAcBaseAuthorityService;
@DubboReference
IMemberServiceApi memberServiceApi;
IMemberServiceApi iMemberServiceApi;
@DubboReference
IProductServiceApi productServiceApi;
IProductServiceApi iProductServiceApi;
@Autowired
private RabbitTemplate rabbitTemplate;
@ -103,7 +107,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
for (AcGiftConfigVO giftConfigVO : giftConfigList) {
Integer pkProduct = giftConfigVO.getPkProduct();
if (null != pkProduct) {
giftConfigVO.setProductName(productServiceApi.getProduct(pkProduct).getData().getProductName());
giftConfigVO.setProductName(iProductServiceApi.getProduct(pkProduct).getData().getProductName());
}
}
}
@ -229,7 +233,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
Long pkBaseId = recommendParam.getActivityParam().getPkId();
Long pkModifyId = recommendParam.getPkMember();
//删除活动基本信息
baseConfigService.deleteBaseConfigById(pkBaseId, pkModifyId);
iAcBaseConfigService.deleteBaseConfigById(pkBaseId, pkModifyId);
// 删除活动权限配置
iAcBaseAuthorityService.update(Wrappers.<AcBaseAuthority>lambdaUpdate()
.eq(AcBaseAuthority::getPkBaseId, pkBaseId)
@ -245,7 +249,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
//删除直推升级配置信息
List<AcRecommendUpgradeVO> recommendUpgradeList = recommendParam.getRecommendUpgradeList();
if (CollUtil.isNotEmpty(recommendUpgradeList)) {
recomUpgradeRuleConfigService.deleteUpgradeRuleConfigByBaseId(pkBaseId, pkModifyId);
iAcRecomUpgradeRuleConfigService.deleteUpgradeRuleConfigByBaseId(pkBaseId, pkModifyId);
}
//删除复购均分
AcRecommendSharVO acRecommendSharVO = recommendParam.getAcRecommendSharVO();
@ -403,7 +407,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
recommendUpgradeVO.setPkCountry(recommendParam.getPkCountry());
recomUpgradeRuleConfig = BeanUtil.copyProperties(recommendUpgradeVO, AcRecomUpgradeRuleConfig.class);
recomUpgradeRuleConfig.setPkBaseId(recommendParam.getPkBaseId());
recomUpgradeRuleConfigService.save(recomUpgradeRuleConfig);
iAcRecomUpgradeRuleConfigService.save(recomUpgradeRuleConfig);
List<AcGiftConfig> giftConfigs = saveRecommendUpgradeGift(recommendUpgradeVO, recomUpgradeRuleConfig.getPkId());
giftConfigService.saveBatch(giftConfigs);
}
@ -470,7 +474,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
public AcRecommendVO showDetailInfo(Long activityId, Integer pkCountry) {
AcRecommendVO recommendVO = new AcRecommendVO();
recommendVO.setPkBaseId(activityId);
AcBaseConfig baseConfig = baseConfigService.getById(activityId);
AcBaseConfig baseConfig = iAcBaseConfigService.getById(activityId);
//查询目标用户群体
List<AcGoalMemberConfig> acGoalMemberConfigs = acGoalMemberConfigService.selectMemberConfig(activityId);
BaseConfigVo baseConfigVo = BeanUtil.copyProperties(baseConfig, BaseConfigVo.class);
@ -485,7 +489,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
List<AcRepurCouponsRuleConfig> repurCouponsRuleConfigList = selectRuleConfigByActivityId(activityId);
recommendVO.setRepurchaseCouponsShowList(conversionAcRepurchaseCouponsShowVO(repurCouponsRuleConfigList));
//查询直推升级规则
List<AcRecomUpgradeRuleConfig> recomUpgradeRuleConfigList = recomUpgradeRuleConfigService.selectByActivityId(activityId);
List<AcRecomUpgradeRuleConfig> recomUpgradeRuleConfigList = iAcRecomUpgradeRuleConfigService.selectByActivityId(activityId);
recommendVO.setRecommendUpgradeList(conversionRecommendUpgradeVO(recomUpgradeRuleConfigList, pkCountry));
//复购券均分
AcRepurSharRuleConfig repurSharRuleConfig = acRepurSharRuleConfigService.selectAcRepurSharRuleConfigByBaseId(activityId);
@ -577,27 +581,189 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRepurchaseCouponsDTO) {
boolean result = true;
SaOrderExt saOrderExt = acRepurchaseCouponsDTO.getSaOrderExt();
AcBaseConfigVO baseConfigVO = AcBaseConfigVO.builder().actType(EActType.DIRECT_PUSH_GIFT.getValue())
.pkCountry(saOrderExt.getPkCountry())
.atcModule(EActModule.DIRECT_PUSH_UPGRADE.getValue()).build();
//查询活动
List<AcBaseConfig> acBaseConfigs = baseConfigService.selectBaseConfigByType(baseConfigVO);
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 = acRepurchaseCouponsDTO.getOrderOperateStatus();
EOrderOperateStatus orderOperateStatus = acRecommendUpgrade.getOrderOperateStatus();
for (AcBaseConfig baseConfig : acBaseConfigs) {
if (orderOperateStatus.equals(EOrderOperateStatus.NORMAL)) {
result = handleBusiness(acRepurchaseCouponsDTO, baseConfig);
// 正常处理
handleRecommendUpgrade(acRecommendUpgrade, baseConfig);
} else {
result = cancelOrder(acRepurchaseCouponsDTO, baseConfig);
// 撤单处理
cancelOrder(acRecommendUpgrade, baseConfig);
}
}
}
return result;
return true;
}
/**
* 处理业务(正常报单)
*/
private void handleRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) {
Date nowDate = new Date();
// 订单信息
SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
// 活动ID
Long pkBaseId = baseConfig.getPkId();
// 推荐人
Long pkMember = saOrderExt.getPkReference();
// 当前时间年月
String upgradeTime = DateUtils.parseDateToFormat(DateUtils.YYYYMM, nowDate);
// 校验推荐人本月是否已经触发过
if (iAcRecomUpgradeRecordService.count(Wrappers.<AcRecomUpgradeRecord>lambdaQuery()
.eq(AcRecomUpgradeRecord::getPkBaseId, pkBaseId)
.eq(AcRecomUpgradeRecord::getPkMember, pkMember)
.eq(AcRecomUpgradeRecord::getUpgradeTime, upgradeTime)
) > 0) {
return;
}
// 推荐人等级ID
CuMember referenceMember = iMemberServiceApi.getMember(pkMember).getData();
Integer pkSettleGrade = referenceMember.getPkSettleGrade();
// 国家
Integer pkCountry = saOrderExt.getPkCountry();
AcRecommendUpgradeVO recommendUpgradeVO = AcRecommendUpgradeVO.builder()
.pkBaseId(pkBaseId)
.pkSettleGrade(pkSettleGrade)
.pkCountry(pkCountry)
.memberType(1)
.build();
//查询规则
List<AcRecomUpgradeRuleConfig> upgradeRuleConfigList = iAcRecomUpgradeRuleConfigService.listRuleConfig(recommendUpgradeVO);
if (CollUtil.isNotEmpty(upgradeRuleConfigList)) {
// 升级规则
AcRecomUpgradeRuleConfig upgradeRuleConfig = upgradeRuleConfigList.get(0);
// // 查询活动权限
// if (!this.checkAuthority(baseConfig, saOrderExt.getPkReference())) {
// return;
// }
// log.info("直推升级权限校验pkBaseId: {}orderCode: {}", pkBaseId, saOrderExt.getOrderCode());
// 查询订单时间范围
// 默认活动开始时间
Date startTime = baseConfig.getActStartDate();
// 默认订单时间
Date endTime = saOrderExt.getPayTime();
// 当月第一天
Date monthFirst = DateUtils.getFirstDayOfMonth(nowDate);
if (monthFirst.compareTo(startTime) > 0) {
startTime = monthFirst;
}
// 校验推荐人是否可以升级
if (null == iAcRecomUpgradeRecordService.getRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime)) {
return;
}
// 封装规则升级记录
AcRecomUpgradeRecord recomUpgradeRecord = AcRecomUpgradeRecord.builder()
.pkBaseId(pkBaseId)
.pkRuleId(upgradeRuleConfig.getPkId())
.pkMember(pkMember)
.pkSettleGrade(pkSettleGrade)
.pkRecommendGrade(upgradeRuleConfig.getPkUpgradeGrade())
.pkOrderId(saOrderExt.getPkId())
.upgradeTime(upgradeTime)
.build();
recomUpgradeRecord.setPkCreator(referenceMember.getPkId());
recomUpgradeRecord.setPkCountry(referenceMember.getPkSettleCountry());
iAcRecomUpgradeRecordService.save(recomUpgradeRecord);
// 更新会员等级
referenceMember.setPkSettleGrade(upgradeRuleConfig.getPkUpgradeGrade());
// 更新用户信息
CuMember cuMember = CuMember.builder()
.pkId(pkMember)
.pkSettleGrade(upgradeRuleConfig.getPkUpgradeGrade())
.pkSettleCountry(referenceMember.getPkCountry())
.build();
cuMember.setPkModified(pkMember);
cuMember.setModifiedTime(nowDate);
SaOrder saOrder = SaOrder.builder()
.pkId(saOrderExt.getPkId())
.payTime(nowDate)
.build();
//调用升级接口
R<?> resultBool = iMemberServiceApi.updateMemberLevel(cuMember, saOrder, pkSettleGrade);
if (!resultBool.isSuccess()) {
log.error("直推活动会员升级升级失败. {}", resultBool.getMsg());
throw new ServiceException(resultBool.getMsg());
}
}
}
/**
* 撤单
*/
private Boolean cancelOrder(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) {
SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
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);
}
}
}
return true;
}
/**
* 校验活动权限true进行处理false不进行处理
*
@ -663,157 +829,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
return baseMapper.queryAcRepurchaseCouponsRule(settleDate);
}
/**
* 处理业务(正常报单)
*
* @param acRecommendUpgrade 升级参数
* @param baseConfig 基本配置
*/
private Boolean handleBusiness(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) {
SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
//活动ID
Long pkBaseId = baseConfig.getPkId();
//推荐人
Long pkMember = saOrderExt.getPkReference();
//推荐人等级ID
Integer pkSettleGrade = memberServiceApi.queryMember(pkMember).getData().getPkSettleGrade();
//被推荐人等级ID
Integer pkRecommendGrade = memberServiceApi.queryMember(saOrderExt.getPkMember()).getData().getPkSettleGrade();
//国家
Integer pkCountry = saOrderExt.getPkCountry();
AcRecommendUpgradeVO recommendUpgradeVO = AcRecommendUpgradeVO.builder().pkCountry(pkCountry)
.pkBaseId(pkBaseId).memberType(1).pkSettleGrade(pkSettleGrade)
.pkRecommendGrade(pkRecommendGrade).build();
//查询规则
List<AcRecomUpgradeRuleConfig> recomUpgradeRuleConfigList = recomUpgradeRuleConfigService.selectRuleConfig(recommendUpgradeVO);
if (CollUtil.isNotEmpty(recomUpgradeRuleConfigList)) {
AcRecomUpgradeRuleConfig recomUpgradeRuleConfig = recomUpgradeRuleConfigList.get(0);
//正常报单
Long pkRuleId = recomUpgradeRuleConfig.getPkId();
//插入业务表
AcRecomUpgradeRecord recomUpgradeRecord = AcRecomUpgradeRecord.builder().pkBaseId(pkBaseId)
.pkRuleId(pkRuleId).pkMember(pkMember)
.pkSettleGrade(pkSettleGrade).pkRecommendGrade(pkRecommendGrade)
.pkOrderId(saOrderExt.getPkId()).build();
recomUpgradeRecord.setPkCountry(pkCountry);
recomUpgradeRecord.setPkCreator(pkMember);
acRecomUpgradeRecordService.save(recomUpgradeRecord);
// 查询活动权限
if (!this.checkAuthority(baseConfig, saOrderExt.getPkReference())) {
return true;
}
log.info("直推升级权限校验pkBaseId: {}orderCode: {}", pkBaseId, saOrderExt.getOrderCode());
//满足规则时 直推升级
AcRecomUpgradeRecordExt upgradeRecord = new AcRecomUpgradeRecordExt();
upgradeRecord.setPkMember(pkMember);
upgradeRecord.setPkBaseId(pkBaseId);
upgradeRecord.setPkRuleId(pkRuleId);
upgradeRecord.setPkSettleGrade(recomUpgradeRuleConfig.getPkSettleGrade());
upgradeRecord.setPkRecommendGrade(recomUpgradeRuleConfig.getPkRecommendGrade());
upgradeRecord.setStartDate(baseConfig.getActStartDate());
upgradeRecord.setEndDate(baseConfig.getActEndDate());
upgradeRecord.setPkCountry(pkCountry);
upgradeRecord.setUpgradeStatus(0);
//查询推荐人数ID(没有升级过记录)
List<Long> recommendNumber = acRecomUpgradeRecordService.selectRecommendNumber(upgradeRecord);
//配置中的人数
Integer configNumber = recomUpgradeRuleConfig.getRecommendNumber();
if (CollUtil.isNotEmpty(recommendNumber) && configNumber.equals(recommendNumber.size())) {
//更新为已升级过的推荐状态
acRecomUpgradeRecordService.updateUpgradeStatusById(recommendNumber, pkMember, EYesNo.NO.getIntValue());
//升级等级
Integer pkUpgradeGrade = recomUpgradeRuleConfig.getPkUpgradeGrade();
CuMember data = memberServiceApi.getMember(pkMember).getData();
//用户信息
CuMember cuMember = CuMember.builder().pkId(pkMember).pkSettleGrade(pkUpgradeGrade).memberCode(data.getMemberCode())
.pkSettleCountry(data.getPkSettleCountry()).build();
cuMember.setPkModified(pkMember);
cuMember.setModifiedTime(new Date());
SaOrder saOrder = SaOrder.builder().payTime(new Date()).build();
//查询是否配置赠品
List<AcGiftConfigExt> acGiftConfigList = giftConfigService.queryListByRuleIdList(pkRuleId, pkCountry);
//调用提货接口
if (CollUtil.isNotEmpty(acGiftConfigList)) {
AcGiftConfigExt acGiftConfigExt = acGiftConfigList.get(0);
acPickService.addPickByActivity(pkMember, EActType.DIRECT_PUSH_GIFT.getValue(),
baseConfig.getPkId(), pkRuleId, acGiftConfigExt.getQuantity(), baseConfig.getActCover(), null,
null, pkMember, pkCountry, baseConfig.getPkId(), null, null);
}
//调用升级接口
return memberServiceApi.updateMemberLevel(cuMember, saOrder, pkSettleGrade).getData();
}
}
return true;
}
/**
* 撤单
*/
private Boolean cancelOrder(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) {
SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
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 = acRecomUpgradeRecordService.selectUpgradeRecordByOrderId(upgradeRecordOrder);
if (null != recomUpgradeRecord) {
Long pkRuleId = recomUpgradeRecord.getPkRuleId();
//查询规则
AcRecomUpgradeRuleConfig upgradeRuleConfig = recomUpgradeRuleConfigService.getById(pkRuleId);
//结算等级
Integer pkSettleGrade = upgradeRuleConfig.getPkSettleGrade();
//找茬等级
Integer pkRecommendGrade = upgradeRuleConfig.getPkRecommendGrade();
if (pkSettleGrade.equals(recomUpgradeRecord.getPkSettleGrade()) && pkRecommendGrade.equals(recomUpgradeRecord.getPkRecommendGrade())) {
//撤单更新状态
acRecomUpgradeRecordService.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 = acRecomUpgradeRecordService.selectRecommendNumber(upgradeRecord);
//配置的推荐人数
Integer recommendConfigNumber = upgradeRuleConfig.getRecommendNumber();
if (CollUtil.isNotEmpty(recommendNumber) && recommendNumber.size() < recommendConfigNumber) {
Long pkMember = recomUpgradeRecord.getPkMember();
//调用降级处理
Integer pkUpgradeGrade = upgradeRuleConfig.getPkUpgradeGrade();
CuMember data = memberServiceApi.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();
//修改升级状态
acRecomUpgradeRecordService.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);
}
//调用降级处理
memberServiceApi.updateMemberLevel(cuMember, saOrder, pkUpgradeGrade);
}
}
}
return true;
}
@Override
public Boolean deleteCouponsRuleConfigByBaseId(Long pkBaseId, Long pkModifyId) {
LambdaUpdateWrapper<AcRepurCouponsRuleConfig> updateWrapper = new LambdaUpdateWrapper<>();

View File

@ -459,7 +459,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
CuMember cuMember;
if (!EOrderTypeExtend.REG_REP.getValue().equals(orderParam.getOrderTypeExtend())) {
// 非0元需要获取会员编号会员主键
cuMember = saOrderHandle.packageSaveUser(orderParam, iMemberServiceApi.queryMember(orderParam.getCenterCodeId()).getData());
cuMember = saOrderHandle.packageSaveUser(orderParam, iMemberServiceApi.getMember(orderParam.getCenterCodeId()).getData());
// 获取会员编号会员主键
if (isToBePay) {
cuMember = iMemberServiceApi.createMemberIdAndCode(cuMember, Boolean.FALSE).getData();
@ -469,7 +469,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember = iMemberServiceApi.createRegisterMemberCode(cuMember).getData();
}
} else {
cuMember = iMemberServiceApi.queryMember(orderParam.getCenterCodeId()).getData();
cuMember = iMemberServiceApi.getMember(orderParam.getCenterCodeId()).getData();
}
SaOrderExt saOrderExt = packageWholeSaOrder(orderParam, cuMember);
@ -542,7 +542,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
orderParam.setPlaceParentId(placeMember.getPkId());
}
}
CuMember cuMember = saOrderHandle.packageSaveUser(orderParam, iMemberServiceApi.queryMember(orderParam.getCenterCodeId()).getData());
CuMember cuMember = saOrderHandle.packageSaveUser(orderParam, iMemberServiceApi.getMember(orderParam.getCenterCodeId()).getData());
// 获取会员编号会员主键
cuMember = iMemberServiceApi.createMemberIdAndCode(cuMember, Boolean.FALSE).getData();
return cuMember;
@ -796,7 +796,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 同步全网产品库存
this.allProductSync(saOrderExt);
log.info("生产活动消息activity.exchange{}", JSONUtil.toJsonStr(saOrderExt));
// 注册订单推送MQ处理活动
rabbitTemplate.convertAndSend(RabbitMqConstants.ACTIVITY_EXCHANGE, RabbitMqConstants.ACTIVITY_KEY, saOrderExt);
// 推送秒结数据处理 -- 注册订单
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_EXCHANGE, RabbitMqConstants.ORDER_SECOND_KEY, saOrderExt);
@ -868,7 +868,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 同步全网产品库存
this.allProductSync(saOrderExt);
log.info("生产活动消息activity.exchange{}", JSONUtil.toJsonStr(saOrderExt));
// 188注册转复购订单推送MQ处理活动
rabbitTemplate.convertAndSend(RabbitMqConstants.ACTIVITY_EXCHANGE, RabbitMqConstants.ACTIVITY_KEY, saOrderExt);
// 推送秒结数据处理 -- 注册订单
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_EXCHANGE, RabbitMqConstants.ORDER_SECOND_KEY, saOrderExt);
@ -981,6 +981,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 同步全网产品库存
this.allProductSync(saOrderExt);
// 升级订单推送MQ处理活动
rabbitTemplate.convertAndSend(RabbitMqConstants.ACTIVITY_EXCHANGE, RabbitMqConstants.ACTIVITY_KEY, saOrderExt);
// 推送秒结数据处理 -- 升级订单
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_EXCHANGE, RabbitMqConstants.ORDER_SECOND_KEY, saOrderExt);
@ -1929,30 +1930,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return baseMapper.queryOrderSelect(param, pkCountry);
}
/**
* 封装会员分享会员
*
* @param orderParam 参数
* @param cuMemberShare 会员分享
*/
private CuMember packageCuMemberShare(OrderParam orderParam, CuMemberShare cuMemberShare) {
orderParam.setMemberCode(cuMemberShare.getMemberCode());
orderParam.setMemberName(cuMemberShare.getMemberName());
orderParam.setPhone(cuMemberShare.getPhone());
orderParam.setParentId(cuMemberShare.getPkParent());
orderParam.setCenterCodeId(cuMemberShare.getPkParent());
CuMember parentMember = iMemberServiceApi.queryMember(cuMemberShare.getPkParent()).getData();
if (parentMember == null) {
return null;
}
orderParam.setPkCountry(cuMemberShare.getPkCountry());
orderParam.setPkSettleCountry(parentMember.getPkSettleCountry());
CuMember newCuMember = saOrderHandle.packageSaveUser(orderParam, parentMember);
newCuMember.setPkId(cuMemberShare.getPkId());
newCuMember.setPkCreator(cuMemberShare.getPkId());
return newCuMember;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean onlinePaymentCallBack(Long pkMember, String orderCode) {

View File

@ -84,14 +84,14 @@
<select id="selectBaseConfigByType" resultMap="BaseResultMap">
select *
from AC_BASE_CONFIG b
from ac_base_config b
where b.del_flag = 0
and b.pk_country = #{pkCountry}
<if test="actType != null">
and b.act_type = #{actType}
</if>
<if test="atcModule != null">
and b.atc_module =#{atcModule}
and b.atc_module = #{atcModule}
</if>
and trunc(sysdate) between b.act_start_date and b.act_end_date
</select>

View File

@ -40,4 +40,24 @@
and r.upgrade_status = #{upgradeStatus}
</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
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
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}
</select>
</mapper>

View File

@ -18,25 +18,16 @@
<result column="PK_UPGRADE_GRADE" property="pkUpgradeGrade"/>
</resultMap>
<select id="selectRuleConfig" resultMap="BaseResultMap">
<select id="listRuleConfig" resultMap="BaseResultMap">
select *
from AC_RECOM_UPGRADE_RULE_CONFIG u
from ac_recom_upgrade_rule_config u
where u.del_flag = 0
and u.pk_country = #{pkCountry}
and u.pk_base_id = #{pkBaseId}
and u.pk_settle_grade = #{pkSettleGrade}
and u.pk_recommend_grade &lt;= #{pkRecommendGrade}
and u.pk_settle_grade in (select m.pk_level
from AC_GOAL_MEMBER_CONFIG m
where m.del_flag = 0
and m.pk_country = #{pkCountry}
<if test="memberType != null">
and m.member_type = #{memberType}
<if test="pkCountry != null">
and u.pk_country = #{pkCountry}
</if>
and m.pk_base_id = #{pkBaseId})
order by u.creation_time desc
</select>
</mapper>

View File

@ -127,7 +127,7 @@ public class CuMemberTransferWhiteController extends BaseController {
@Log(module = EOperationModule.TRADE_CONFIG, business = EOperationBusiness.TRANSFER_ACCOUNT_WHITE, method = EOperationMethod.UPDATE)
@PostMapping("/update")
public AjaxResult updateTransferConfig(@RequestBody CuMemberTransferWhiteVO transferWhiteVO) {
CuMember cumember = iMemberServiceApi.queryMember(transferWhiteVO.getMemberCode()).getData();
CuMember cumember = iMemberServiceApi.getMember(transferWhiteVO.getMemberCode()).getData();
AjaxResult ajaxResult = parametersVerify(transferWhiteVO, cumember);
if ((Integer) ajaxResult.get(AjaxResult.CODE_TAG) == HttpStatus.ERROR) {
return ajaxResult;

View File

@ -3,15 +3,8 @@ package com.hzs.common.core.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 订单操作状态
*
* @Description:
* @Author: ljc
* @Time: 2023/4/27 11:14
* @Classname: EOrderOperateStatus
* @Package_name: com.hzs.common.core.enums
*/
@AllArgsConstructor
@Getter

View File

@ -59,6 +59,12 @@ public class AcRecomUpgradeRecord extends BaseEntity {
@TableField("PK_RECOMMEND_GRADE")
private Integer pkRecommendGrade;
/**
* 活动年月
*/
@TableField("UPGRADE_TIME")
private String upgradeTime;
/**
* 订单ID -- 已不用
*/

View File

@ -20,22 +20,22 @@ import org.springframework.stereotype.Component;
public class ActivityListener {
@DubboReference
IActivityServiceApi activityServiceApi;
IActivityServiceApi iActivityServiceApi;
@RabbitListener(bindings = @QueueBinding(
exchange = @Exchange(value = RabbitMqConstants.ACTIVITY_EXCHANGE, type = "topic"),
value = @Queue(value = RabbitMqConstants.ACTIVITY_QUEUE, durable = "true", autoDelete = "false"),
key = RabbitMqConstants.ACTIVITY_KEY))
@RabbitHandler
public void onMessage(Message<SaOrderExt> message, Channel channel) throws Exception {
public void onMessage(Message<SaOrderExt> message, Channel channel) {
SaOrderExt saOrderExt = message.getPayload();
log.info("开始活动消费,接收到的参数:{}", JSONUtil.toJsonStr(saOrderExt));
// 赠送抽奖次数
try {
Thread.sleep(1000);
Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
channel.basicAck(deliveryTag, false);
activityServiceApi.handleActivity(saOrderExt);
iActivityServiceApi.handleActivity(saOrderExt);
} catch (Exception e) {
log.error(e.getMessage());
e.printStackTrace();