Merge remote-tracking branch 'origin/bd_test' into bd_test
This commit is contained in:
commit
3d9a2c5be6
|
@ -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则有血缘关系)
|
||||
*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* 查询会员的安置位置
|
||||
*
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 直推赠送查看详情
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -17,7 +17,6 @@ import java.util.List;
|
|||
@NoArgsConstructor
|
||||
public class AcRecommendVO implements Serializable {
|
||||
|
||||
|
||||
private static final long serialVersionUID = 7140530986849619774L;
|
||||
/**
|
||||
* 活动基本配置主键
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <= #{startActEndDate}
|
||||
</if>
|
||||
<if test="startActEndDate != null">
|
||||
AND abc.ACT_END_DATE >= #{endActStartDate}
|
||||
</if>
|
||||
<if test="endActStartDate != null">
|
||||
AND abc.ACT_END_DATE <= #{endActEndDate}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -254,6 +254,9 @@ public enum EOperationBusiness {
|
|||
|
||||
AC_RECOMMEEND_CONFIG("直推赠送"),
|
||||
|
||||
AC_DIRECT_PUSH_UPGRADE("直推升级"),
|
||||
|
||||
|
||||
AC_WARES_RULE_CONFIG("商品赠送"),
|
||||
|
||||
AC_TOURISM_CONFIG("旅游活动"),
|
||||
|
|
|
@ -353,6 +353,8 @@ public enum EOperationModule {
|
|||
|
||||
AC_RECOMMEEND_CONFIG("直推赠送"),
|
||||
|
||||
AC_DIRECT_PUSH_UPGRADE("直推升级"),
|
||||
|
||||
AC_TOURISM_CONFIG("旅游活动"),
|
||||
|
||||
AC_WARES_RULE_CONFIG("商品赠送"),
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue