## 直推升级活动
This commit is contained in:
		
							parent
							
								
									9e212330ba
								
							
						
					
					
						commit
						c2e90e1587
					
				| 
						 | 
				
			
			@ -3,6 +3,7 @@ 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.AcDirectPushUpgradeParam;
 | 
			
		||||
import com.hzs.activity.recommend.param.AcRecommendParam;
 | 
			
		||||
import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService;
 | 
			
		||||
import com.hzs.activity.recommend.vo.AcRecommendVO;
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +57,24 @@ 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();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 直推赠送查看详情
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -2,6 +2,7 @@ package com.hzs.activity.recommend.service;
 | 
			
		|||
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.IService;
 | 
			
		||||
import com.hzs.activity.recommend.dto.AcRecommendUpgrade;
 | 
			
		||||
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;
 | 
			
		||||
| 
						 | 
				
			
			@ -74,5 +75,6 @@ public interface IAcRepurCouponsRuleConfigService extends IService<AcRepurCoupon
 | 
			
		|||
     */
 | 
			
		||||
    Boolean deleteCouponsRuleConfigByBaseId(Long pkBaseId, Long pkModifyId);
 | 
			
		||||
 | 
			
		||||
    String directPushUpgradeSubmit(AcDirectPushUpgradeParam acDirectPushUpgradeParam);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,7 @@ 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.*;
 | 
			
		||||
| 
						 | 
				
			
			@ -839,5 +840,131 @@ 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,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;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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("商品赠送"),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue