## 直推升级活动

This commit is contained in:
zhangheng 2025-09-23 16:57:29 +08:00
parent a23fd0fe07
commit 069daab4f1
7 changed files with 271 additions and 0 deletions

View File

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

View File

@ -0,0 +1,55 @@
package com.hzs.activity.recommend.param;
import com.hzs.activity.base.param.ActivityParam;
import com.hzs.activity.recommend.vo.AcRecommendSharVO;
import com.hzs.activity.recommend.vo.AcRecommendUpgradeVO;
import com.hzs.activity.recommend.vo.AcRepurchaseCouponsShowVO;
import com.hzs.common.domain.activity.base.AcBaseAuthority;
import com.hzs.system.sys.dto.LoginUser;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AcDirectPushUpgradeParam {
/**
* 活动基本配置主键
*/
private Long pkBaseId;
/**
* 操作类型1=新增,2=修改,3=删除
*/
private Integer controlType;
/**
* 国家
*/
private Integer pkCountry;
/**
* 会员ID
*/
private Long pkMember;
/**
* 登录用户信息
*/
private LoginUser loginUser;
/**
* 基本信息
*/
private ActivityParam activityParam;
/**
* 直推升级
*/
private List<AcRecommendUpgradeVO> recommendUpgradeList;
}

View File

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

View File

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

View File

@ -0,0 +1,63 @@
package com.hzs.activity.recommend.vo;
import com.hzs.activity.base.vo.AcGiftConfigVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AcDirectPushUpgradeVO {
private static final long serialVersionUID = 7140530986849619774L;
/**
* 主键
*/
private Long pkId;
/**
* 活动基本配置主键
*/
private Long pkBaseId;
/**
* 结算等级
*/
private Integer pkSettleGrade;
/**
* 推荐等级
*/
private Integer pkRecommendGrade;
/**
* 推荐数量
*/
private Integer recommendNumber;
/**
* 升级等级
*/
private Integer pkUpgradeGrade;
/**
* 创建人ID
*/
private Long pkCreator;
/**
* 国家
*/
private Integer pkCountry;
/**
* 会员类型 1=等级 2=奖衔 3=权限
*/
private Integer memberType;
}

View File

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

View File

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