Compare commits
16 Commits
df2e775bbb
...
970e37cf05
| Author | SHA1 | Date |
|---|---|---|
|
|
970e37cf05 | |
|
|
6314e51dcf | |
|
|
dce78bb2f0 | |
|
|
490c523822 | |
|
|
0b0ebc93f9 | |
|
|
9c8b9c3634 | |
|
|
3314fdb8d9 | |
|
|
9563a3a86b | |
|
|
c2e90e1587 | |
|
|
9e212330ba | |
|
|
1eae26d056 | |
|
|
851a50e867 | |
|
|
9dfb0eda92 | |
|
|
ab2f87992c | |
|
|
77c389c85e | |
|
|
321c458410 |
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* 保存新会员信息,待支付订单
|
||||
*
|
||||
|
|
@ -297,14 +284,30 @@ public interface IMemberServiceApi {
|
|||
R<Boolean> updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
|
||||
|
||||
/**
|
||||
* 更新用户等级
|
||||
* 更新用户等级 -- 来源于活动
|
||||
*
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* 用户降级 -- 来源于活动
|
||||
*
|
||||
* @param cuMember 用户信息
|
||||
* @param saOrder 订单信息
|
||||
*/
|
||||
R<?> reduceMemberLevel(CuMember cuMember, SaOrder saOrder);
|
||||
|
||||
/**
|
||||
* 更新升级记录 -- 来源于活动
|
||||
*
|
||||
* @param saOrder 原订单
|
||||
* @param newOrder 新订单
|
||||
* @return
|
||||
*/
|
||||
R<?> changeMemberLevel(SaOrder saOrder, SaOrder newOrder);
|
||||
|
||||
/**
|
||||
* 校验是否血缘关系(返回true则有血缘关系)
|
||||
|
|
@ -322,11 +325,6 @@ public interface IMemberServiceApi {
|
|||
*/
|
||||
R<CuMemberExt> checkMemberByParentList(List<String> topCodeList, Long userId);
|
||||
|
||||
/**
|
||||
* 获取奖衔的翻译KEY值
|
||||
**/
|
||||
Integer getAwardsTranslateValue(Integer pkCountry, Integer pkId);
|
||||
|
||||
/**
|
||||
* 查询全部
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
package com.hzs.activity.base;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EApprovalBusiness;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
|
||||
/**
|
||||
* 活动审批相关服务入口
|
||||
*/
|
||||
public interface IActivityApprovalServiceApi {
|
||||
|
||||
/**
|
||||
* 活动服务信息处理回调
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
* @return
|
||||
*/
|
||||
R<Boolean> approvalCallback(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
|
||||
/**
|
||||
* 活动服务信息签呈查询
|
||||
*
|
||||
* @param eApprovalBusiness 业务类型
|
||||
* @param businessCode 业务单号
|
||||
* @param pkCountry 所属国家
|
||||
* @return
|
||||
*/
|
||||
R<?> queryApprovalData(EApprovalBusiness eApprovalBusiness, String businessCode, Integer pkCountry);
|
||||
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ package com.hzs.activity.base;
|
|||
import com.hzs.activity.dto.AcRecommendUpgradeDTO;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.activity.recommend.AcRepurCouponsRuleConfig;
|
||||
import com.hzs.common.domain.activity.recommend.ext.AcRepurSharRuleConfigExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -11,7 +10,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 所有活动的生效,获得赠品入口
|
||||
* 所有活动的生效
|
||||
*/
|
||||
public interface IActivityServiceApi {
|
||||
|
||||
|
|
@ -54,15 +53,6 @@ public interface IActivityServiceApi {
|
|||
*/
|
||||
R<List<AcRepurCouponsRuleConfig>> queryAcRepurchaseCouponsRule(Date settleDate);
|
||||
|
||||
/**
|
||||
* 查询复购券均分收益
|
||||
*
|
||||
* @param startDate
|
||||
* @param endDate
|
||||
* @return
|
||||
*/
|
||||
R<List<AcRepurSharRuleConfigExt>> queryRepurSharRuleConfig(Date startDate, Date endDate);
|
||||
|
||||
/**
|
||||
* 调用调用直推升级接口
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,33 @@ 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
|
||||
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
|
||||
|
|
@ -366,11 +381,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());
|
||||
|
|
|
|||
|
|
@ -168,13 +168,30 @@ public interface ICuMemberBusinessService {
|
|||
Boolean updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
|
||||
|
||||
/**
|
||||
* 更新用户等级
|
||||
* 更新用户等级 -- 来源于活动
|
||||
*
|
||||
* @param cuMember 用户信息
|
||||
* @param saOrder 订单信息
|
||||
* @param pkOldLevel 原等级
|
||||
*/
|
||||
Boolean updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
|
||||
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
|
||||
|
|
@ -195,19 +192,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 +204,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.build();
|
||||
cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry());
|
||||
cuMemberLevel.setPkCreator(cuMember.getPkId());
|
||||
return iCuMemberLevelService.save(cuMemberLevel);
|
||||
iCuMemberLevelService.save(cuMemberLevel);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1213,11 +1198,36 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
|
||||
@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
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
package com.hzs.member.statis.controller.api;
|
||||
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.enums.ETop30Type;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.domain.member.ext.CuMemberHonorWallExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.member.statis.param.DirectStatisticsTop30QueryParam;
|
||||
import com.hzs.member.statis.service.IMemberStatisticsService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 统计
|
||||
*/
|
||||
@Slf4j
|
||||
@RequestMapping("/api/member-statistics")
|
||||
@RestController
|
||||
public class MemberStatisticsController {
|
||||
|
||||
@Resource
|
||||
private IMemberStatisticsService memberStatisticsService;
|
||||
@PostMapping("/topPeople")
|
||||
public AjaxResult topPeople(@RequestBody DirectStatisticsTop30QueryParam param) {
|
||||
return AjaxResult.success(memberStatisticsService.getDirectStatisticsNumberOfPeople(param));
|
||||
}
|
||||
|
||||
@PostMapping("/topAmount")
|
||||
public AjaxResult topAmount(@RequestBody DirectStatisticsTop30QueryParam param) {
|
||||
return AjaxResult.success(memberStatisticsService.getDirectStatisticsNumberOfAmount(param));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
package com.hzs.member.statis.controller.manager;
|
||||
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.enums.ETop30Type;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.member.statis.param.DirectStatisticsTop30QueryParam;
|
||||
import com.hzs.member.statis.service.IMemberStatisticsService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 统计
|
||||
*/
|
||||
@Slf4j
|
||||
@RequestMapping("/manage/member-statistics")
|
||||
@RestController
|
||||
public class BackMemberStatisticsController {
|
||||
|
||||
@Resource
|
||||
private IMemberStatisticsService memberStatisticsService;
|
||||
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
|
||||
|
||||
@GetMapping("/setShowPeople/{flag}")
|
||||
public AjaxResult setShowPeople(@PathVariable("flag") String flag) {
|
||||
redisService.setCacheObject(CacheConstants.TOP_30_ACTIVITY + ETop30Type.PEOPLE.getKey(), flag);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/setShowAmount/{flag}")
|
||||
public AjaxResult setShowAmount(@PathVariable("flag") String flag) {
|
||||
redisService.setCacheObject(CacheConstants.TOP_30_ACTIVITY + ETop30Type.AMOUNT.getKey(), flag);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/getShowPeople")
|
||||
public AjaxResult getShowPeople() {
|
||||
return AjaxResult.success("操作成功!", redisService.getCacheObject(CacheConstants.TOP_30_ACTIVITY + ETop30Type.PEOPLE.getKey()));
|
||||
}
|
||||
|
||||
@GetMapping("/getShowAmount")
|
||||
public AjaxResult getShowAmount() {
|
||||
return AjaxResult.success("操作成功!", redisService.getCacheObject(CacheConstants.TOP_30_ACTIVITY + ETop30Type.AMOUNT.getKey()));
|
||||
}
|
||||
|
||||
@PostMapping("/topPeople")
|
||||
public AjaxResult topPeople(@RequestBody DirectStatisticsTop30QueryParam param) {
|
||||
param.setFaker(false);
|
||||
return AjaxResult.success(memberStatisticsService.getDirectStatisticsNumberOfPeople(param));
|
||||
}
|
||||
|
||||
@PostMapping("/topAmount")
|
||||
public AjaxResult topAmount(@RequestBody DirectStatisticsTop30QueryParam param) {
|
||||
param.setFaker(false);
|
||||
return AjaxResult.success(memberStatisticsService.getDirectStatisticsNumberOfAmount(param));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.hzs.member.statis.mapper;
|
||||
|
||||
import com.hzs.common.domain.member.statis.DirectStatisticsTop30VO;
|
||||
import com.hzs.member.statis.param.DirectStatisticsTop30QueryParam;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public interface MemberStatisticsMapper {
|
||||
|
||||
List<DirectStatisticsTop30VO> getDirectStatisticsNumberOfPeople(@Param("param") DirectStatisticsTop30QueryParam param);
|
||||
|
||||
|
||||
List<DirectStatisticsTop30VO> getDirectStatisticsNumberOfAmount(@Param("param") DirectStatisticsTop30QueryParam param);
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package com.hzs.member.statis.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class DirectStatisticsTop30QueryParam implements Serializable {
|
||||
|
||||
/**
|
||||
* 统计年
|
||||
*/
|
||||
private String year;
|
||||
|
||||
/**
|
||||
* 统计月
|
||||
*/
|
||||
private String month;
|
||||
|
||||
private Boolean faker;
|
||||
|
||||
|
||||
private Date startDate;
|
||||
|
||||
private Date endDate;
|
||||
|
||||
private Long memberId;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.hzs.member.statis.service;
|
||||
|
||||
import com.hzs.common.domain.member.statis.DirectStatisticsTop30VO;
|
||||
import com.hzs.member.statis.param.DirectStatisticsTop30QueryParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMemberStatisticsService {
|
||||
|
||||
List<DirectStatisticsTop30VO> getDirectStatisticsNumberOfPeople(DirectStatisticsTop30QueryParam param);
|
||||
|
||||
|
||||
List<DirectStatisticsTop30VO> getDirectStatisticsNumberOfAmount(DirectStatisticsTop30QueryParam param);
|
||||
}
|
||||
|
|
@ -0,0 +1,227 @@
|
|||
package com.hzs.member.statis.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.enums.ETop30Type;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.utils.DataMaskingUtil;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.member.statis.DirectStatisticsTop30VO;
|
||||
import com.hzs.member.statis.mapper.MemberStatisticsMapper;
|
||||
import com.hzs.member.statis.param.DirectStatisticsTop30QueryParam;
|
||||
import com.hzs.member.statis.service.IMemberStatisticsService;
|
||||
import com.hzs.member.statis.util.DataGeneratorUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.*;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MemberStatisticsServiceImpl implements IMemberStatisticsService {
|
||||
|
||||
@Resource
|
||||
private MemberStatisticsMapper memberStatisticsMapper;
|
||||
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
@Override
|
||||
public List<DirectStatisticsTop30VO> getDirectStatisticsNumberOfPeople(DirectStatisticsTop30QueryParam param) {
|
||||
String show = redisService.getCacheObject(CacheConstants.TOP_30_ACTIVITY + ETop30Type.PEOPLE.getKey());
|
||||
if(ObjectUtil.isEmpty(show) || "false".equals(show)){
|
||||
return null;
|
||||
}
|
||||
if(DateUtils.isYearMonthExceedCurrent(param.getYear() + "/" + param.getMonth())) {
|
||||
return null;
|
||||
}
|
||||
setStartAndEndDate(param);
|
||||
List<DirectStatisticsTop30VO> list = memberStatisticsMapper.getDirectStatisticsNumberOfPeople(param);
|
||||
return desensitizationAndFaker(list, param, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DirectStatisticsTop30VO> getDirectStatisticsNumberOfAmount(DirectStatisticsTop30QueryParam param) {
|
||||
String show = redisService.getCacheObject(CacheConstants.TOP_30_ACTIVITY + ETop30Type.AMOUNT.getKey());
|
||||
if(ObjectUtil.isEmpty(show) || "false".equals(show)){
|
||||
return null;
|
||||
}
|
||||
if(DateUtils.isYearMonthExceedCurrent(param.getYear() + "/" + param.getMonth())) {
|
||||
return null;
|
||||
}
|
||||
setStartAndEndDate(param);
|
||||
List<DirectStatisticsTop30VO> list = memberStatisticsMapper.getDirectStatisticsNumberOfAmount(param);
|
||||
return desensitizationAndFaker(list, param, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据脱敏&格式化数字&假数据
|
||||
* @param list
|
||||
* @param param
|
||||
* @param type
|
||||
*/
|
||||
private List<DirectStatisticsTop30VO> desensitizationAndFaker(List<DirectStatisticsTop30VO> list, DirectStatisticsTop30QueryParam param, Integer type){
|
||||
List<DirectStatisticsTop30VO> fakerList = DataGeneratorUtils.generateFakeData(
|
||||
new ArrayList<>(), 30, 1, DataGeneratorUtils.TimeGranularity.DAY);
|
||||
List<DirectStatisticsTop30VO> result = list;
|
||||
if(param.getFaker()){
|
||||
result = generateFakeData(list, 30, fakerList, type);
|
||||
}
|
||||
for (DirectStatisticsTop30VO directStatisticsTop30VO : result) {
|
||||
if(param.getFaker()){
|
||||
directStatisticsTop30VO.setMemberCode(DataMaskingUtil.mask(directStatisticsTop30VO.getMemberCode(), 2, 2));
|
||||
directStatisticsTop30VO.setMemberName(DataMaskingUtil.mask(directStatisticsTop30VO.getMemberName(), 1, 0));
|
||||
}
|
||||
directStatisticsTop30VO.setNumberOfAmount(directStatisticsTop30VO.getNumberOfAmount().divide(new BigDecimal(10000)));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
private void setStartAndEndDate(DirectStatisticsTop30QueryParam param) {
|
||||
// 参数验证
|
||||
if (ObjectUtil.isEmpty(param.getYear()) || ObjectUtil.isEmpty(param.getMonth())) {
|
||||
throw new IllegalArgumentException("年份和月份不能为空");
|
||||
}
|
||||
try {
|
||||
int year = Integer.parseInt(param.getYear());
|
||||
int month = Integer.parseInt(param.getMonth());
|
||||
YearMonth yearMonth = YearMonth.of(year, month);
|
||||
LocalDateTime firstDay = yearMonth.atDay(1).atStartOfDay();
|
||||
LocalDateTime lastDay = yearMonth.atEndOfMonth().atTime(23, 59, 59);
|
||||
// 获取系统默认时区
|
||||
ZoneId zoneId = ZoneId.systemDefault();
|
||||
// 转换为Date
|
||||
param.setStartDate(Date.from(firstDay.atZone(zoneId).toInstant()));
|
||||
param.setEndDate(Date.from(lastDay.atZone(zoneId).toInstant()));
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IllegalArgumentException("年份或月份格式不正确", e);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("获取时间范围失败", e);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 生成假数据并填充到列表
|
||||
*
|
||||
* @param list 原始数据列表
|
||||
* @param totalCount 总数
|
||||
* @param fakerList 假数据列表
|
||||
* @param type 类型:1为设置numberOfPeople, 2为设置numberOfAmount
|
||||
* @return 填充后的列表
|
||||
*/
|
||||
public static List<DirectStatisticsTop30VO> generateFakeData(
|
||||
List<DirectStatisticsTop30VO> list,
|
||||
int totalCount,
|
||||
List<DirectStatisticsTop30VO> fakerList,
|
||||
int type) {
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
|
||||
if (fakerList == null || fakerList.isEmpty()) {
|
||||
throw new IllegalArgumentException("假数据列表不能为空");
|
||||
}
|
||||
|
||||
if (totalCount < list.size()) {
|
||||
throw new IllegalArgumentException("总数不能小于原始列表大小");
|
||||
}
|
||||
|
||||
// 计算需要生成的假数据数量
|
||||
int needGenerateCount = totalCount - list.size();
|
||||
|
||||
// 检查假数据列表是否有足够的数据
|
||||
if (needGenerateCount > fakerList.size()) {
|
||||
throw new IllegalArgumentException("假数据列表数据不足");
|
||||
}
|
||||
|
||||
// 从假数据列表中移除并获取需要的假数据
|
||||
List<DirectStatisticsTop30VO> selectedFakerData = new ArrayList<>();
|
||||
for (int i = 0; i < needGenerateCount; i++) {
|
||||
// 随机选择一个假数据
|
||||
int randomIndex = new Random().nextInt(fakerList.size());
|
||||
DirectStatisticsTop30VO fakerData = fakerList.remove(randomIndex);
|
||||
selectedFakerData.add(fakerData);
|
||||
}
|
||||
|
||||
// 根据类型设置数据
|
||||
if (type == 1) {
|
||||
setNumberOfPeople(selectedFakerData, list);
|
||||
} else if (type == 2) {
|
||||
setNumberOfAmount(selectedFakerData, list);
|
||||
} else {
|
||||
throw new IllegalArgumentException("类型参数无效,只能是1或2");
|
||||
}
|
||||
|
||||
// 将生成的假数据添加到原始列表
|
||||
list.addAll(selectedFakerData);
|
||||
|
||||
// 按照对应类型降序排序
|
||||
if (type == 1) {
|
||||
list.sort(Comparator.comparing(DirectStatisticsTop30VO::getNumberOfPeople).reversed());
|
||||
} else {
|
||||
list.sort(Comparator.comparing(DirectStatisticsTop30VO::getNumberOfAmount).reversed());
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置numberOfPeople
|
||||
*/
|
||||
private static void setNumberOfPeople(List<DirectStatisticsTop30VO> selectedFakerData, List<DirectStatisticsTop30VO> originalList) {
|
||||
// 找出原始列表中最小的numberOfPeople
|
||||
int minPeopleCount = Integer.MAX_VALUE;
|
||||
for (DirectStatisticsTop30VO data : originalList) {
|
||||
if (data.getNumberOfPeople() != null && data.getNumberOfPeople() < minPeopleCount) {
|
||||
minPeopleCount = data.getNumberOfPeople();
|
||||
}
|
||||
}
|
||||
if (minPeopleCount == Integer.MAX_VALUE) {
|
||||
minPeopleCount = 10; // 默认值,可以根据需要调整
|
||||
}
|
||||
Random random = new Random();
|
||||
for (DirectStatisticsTop30VO fakerData : selectedFakerData) {
|
||||
if (minPeopleCount == 1) {
|
||||
fakerData.setNumberOfPeople(1);
|
||||
} else {
|
||||
int value = random.nextInt(minPeopleCount - 1) + 1;
|
||||
fakerData.setNumberOfPeople(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置numberOfAmount
|
||||
*/
|
||||
private static void setNumberOfAmount(List<DirectStatisticsTop30VO> selectedFakerData, List<DirectStatisticsTop30VO> originalList) {
|
||||
// 找出原始列表中最小的numberOfAmount
|
||||
BigDecimal minAmount = null;
|
||||
for (DirectStatisticsTop30VO data : originalList) {
|
||||
if (data.getNumberOfAmount() != null) {
|
||||
if (minAmount == null || data.getNumberOfAmount().compareTo(minAmount) < 0) {
|
||||
minAmount = data.getNumberOfAmount();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (minAmount == null) {
|
||||
minAmount = new BigDecimal(188); // 默认值,可以根据需要调整
|
||||
}
|
||||
Random random = new Random();
|
||||
for (DirectStatisticsTop30VO fakerData : selectedFakerData) {
|
||||
if (minAmount.compareTo(new BigDecimal(188)) == 0) {
|
||||
BigDecimal value = new BigDecimal(188);
|
||||
fakerData.setNumberOfAmount(value);
|
||||
} else {
|
||||
BigDecimal range = minAmount.subtract(BigDecimal.ONE);
|
||||
BigDecimal randomValue = new BigDecimal(random.nextDouble() * range.doubleValue()).setScale(4, BigDecimal.ROUND_HALF_UP);
|
||||
if (randomValue.compareTo(BigDecimal.ZERO) <= 0) {
|
||||
randomValue = BigDecimal.ONE;
|
||||
}
|
||||
fakerData.setNumberOfAmount(randomValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,316 @@
|
|||
package com.hzs.member.statis.util;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.hzs.common.core.constant.SysConstants;
|
||||
import com.hzs.common.domain.member.statis.DirectStatisticsTop30VO;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
public class DataGeneratorUtils {
|
||||
|
||||
// 时间粒度枚举
|
||||
public enum TimeGranularity {
|
||||
DAY, // 按天
|
||||
HOUR // 按小时
|
||||
}
|
||||
private static final String prefix = "BD";
|
||||
|
||||
// 常见姓氏数组
|
||||
private static final String[] COMMON_SURNAMES = {
|
||||
"王", "李", "张", "刘", "陈", "杨", "黄", "赵", "吴", "周",
|
||||
"徐", "孙", "马", "朱", "胡", "郭", "何", "高", "林", "罗",
|
||||
"郑", "梁", "谢", "宋", "唐", "许", "韩", "冯", "邓", "曹",
|
||||
"彭", "曾", "肖", "田", "董", "袁", "潘", "于", "蒋", "蔡"
|
||||
};
|
||||
|
||||
// 当前种子,用于生成数据
|
||||
private static int currentSeed = getSeed(TimeGranularity.DAY); // 默认按天
|
||||
private static TimeGranularity currentGranularity = TimeGranularity.DAY;
|
||||
// 预先生成的30条基础数据
|
||||
private static List<DirectStatisticsTop30VO> PERIODIC_PRE_GENERATED_DATA = generatePeriodicPredefinedData();
|
||||
|
||||
/**
|
||||
* 生成假数据并添加到列表中
|
||||
*
|
||||
* @param list 已有数据列表
|
||||
* @param totalCount 需要生成的总数据量
|
||||
* @param type 类型:1为设置numberOfPeople,2为设置numberOfAmount
|
||||
* @param granularity 时间粒度:DAY按天,HOUR按小时
|
||||
* @return 包含新生成数据的列表
|
||||
*/
|
||||
public static List<DirectStatisticsTop30VO> generateFakeData(
|
||||
List<DirectStatisticsTop30VO> list, int totalCount, int type, TimeGranularity granularity) {
|
||||
// 检查时间是否已变化,如果变化则重新生成数据
|
||||
checkAndUpdatePeriodicData(granularity);
|
||||
|
||||
// 创建返回列表(复制原列表,避免修改原列表)
|
||||
List<DirectStatisticsTop30VO> resultList = new ArrayList<>(list);
|
||||
|
||||
// 如果总数小于等于已有列表大小,直接返回原列表
|
||||
if (totalCount <= list.size()) {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
// 需要生成的新数据数量
|
||||
int needGenerateCount = totalCount - list.size();
|
||||
|
||||
// 从预生成数据中获取所需数量的数据
|
||||
List<DirectStatisticsTop30VO> newData = getPeriodicPreGeneratedDataByCount(needGenerateCount, type);
|
||||
|
||||
// 添加新数据到结果列表
|
||||
resultList.addAll(newData);
|
||||
|
||||
// 按照对应字段降序排序
|
||||
if (type == 1) {
|
||||
resultList.sort((a, b) -> b.getNumberOfPeople().compareTo(a.getNumberOfPeople()));
|
||||
} else if (type == 2) {
|
||||
resultList.sort((a, b) -> b.getNumberOfAmount().compareTo(a.getNumberOfAmount()));
|
||||
}
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* (兼容旧版本)按天生成数据
|
||||
*/
|
||||
public static List<DirectStatisticsTop30VO> generateFakeData(
|
||||
List<DirectStatisticsTop30VO> list, int totalCount, int type) {
|
||||
return generateFakeData(list, totalCount, type, TimeGranularity.DAY);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查时间是否已变化,如果变化则更新数据
|
||||
*/
|
||||
private static void checkAndUpdatePeriodicData(TimeGranularity granularity) {
|
||||
int newSeed = getSeed(granularity);
|
||||
if (newSeed != currentSeed || granularity != currentGranularity) {
|
||||
currentSeed = newSeed;
|
||||
currentGranularity = granularity;
|
||||
PERIODIC_PRE_GENERATED_DATA = generatePeriodicPredefinedData();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据时间粒度获取种子
|
||||
* @param granularity 时间粒度
|
||||
* @return 对应的种子
|
||||
*/
|
||||
private static int getSeed(TimeGranularity granularity) {
|
||||
if (granularity == TimeGranularity.HOUR) {
|
||||
// 按小时:格式为YYYYMMDDHH
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
return Integer.parseInt(now.format(DateTimeFormatter.ofPattern("yyyyMMddHH")));
|
||||
} else {
|
||||
// 按天:格式为YYYYMMDD
|
||||
LocalDate today = LocalDate.now();
|
||||
return Integer.parseInt(today.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成当前周期的30条预定义数据
|
||||
*/
|
||||
private static List<DirectStatisticsTop30VO> generatePeriodicPredefinedData() {
|
||||
List<DirectStatisticsTop30VO> dataList = new ArrayList<>(30);
|
||||
|
||||
// 使用当前周期的种子创建Random对象
|
||||
Random periodRandom = new Random(currentSeed);
|
||||
|
||||
// 生成30条基础数据
|
||||
for (int i = 0; i < 30; i++) {
|
||||
DirectStatisticsTop30VO vo = new DirectStatisticsTop30VO();
|
||||
|
||||
// 设置基础信息,包含时间粒度标识
|
||||
long baseId = 4000000L + currentSeed % 1000000L;
|
||||
vo.setMemberId(baseId + i);
|
||||
|
||||
// 根据时间粒度生成不同的用户编号前缀
|
||||
// String prefix = currentGranularity == TimeGranularity.HOUR ? "HOUR" : "DAY";
|
||||
// String prefix = SysConstants.HAI_FUN_PREFIX;
|
||||
vo.setMemberCode(generateMemberCode(currentSeed, 10));
|
||||
|
||||
// 生成随机中文姓名
|
||||
vo.setMemberName(generateRandomChineseName(i, periodRandom));
|
||||
|
||||
// 使用周期随机数生成数据值
|
||||
vo.setNumberOfPeople(1 + periodRandom.nextInt(100)); // 1-100之间的随机值
|
||||
|
||||
// 生成金额值
|
||||
BigDecimal amount = new BigDecimal(100 + periodRandom.nextInt(10000))
|
||||
.add(new BigDecimal(periodRandom.nextDouble()))
|
||||
.setScale(4, BigDecimal.ROUND_HALF_UP);
|
||||
vo.setNumberOfAmount(amount);
|
||||
|
||||
dataList.add(vo);
|
||||
}
|
||||
|
||||
return dataList;
|
||||
}
|
||||
public static String generateMemberCode(long currentSeed, int i) {
|
||||
int prefixLength = prefix.length();
|
||||
int numPartLength = 10 - prefixLength;
|
||||
long seedPart = generateRandomSeedPart(numPartLength);
|
||||
String memberCode = prefix + seedPart;
|
||||
return memberCode.length() > 10 ? memberCode.substring(0, 10) : memberCode;
|
||||
}
|
||||
/**
|
||||
* 生成指定位数的随机seedPart
|
||||
*
|
||||
* @param digits 位数
|
||||
* @return 随机数
|
||||
*/
|
||||
private static long generateRandomSeedPart(int digits) {
|
||||
if (digits <= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 计算最小值和最大值
|
||||
int min = (int) Math.pow(10, digits - 1);
|
||||
int max = (int) Math.pow(10, digits) - 1;
|
||||
|
||||
// 如果digits为0,返回0
|
||||
if (min == 0 && max == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return RandomUtil.randomInt(min, max);
|
||||
}
|
||||
/**
|
||||
* 根据需要的数量从预生成数据中获取数据
|
||||
*/
|
||||
private static List<DirectStatisticsTop30VO> getPeriodicPreGeneratedDataByCount(int count, int type) {
|
||||
List<DirectStatisticsTop30VO> result = new ArrayList<>(count);
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
// 从预生成数据中循环获取
|
||||
DirectStatisticsTop30VO originalVo = PERIODIC_PRE_GENERATED_DATA.get(i % 30);
|
||||
|
||||
// 创建副本以避免修改预生成的数据
|
||||
DirectStatisticsTop30VO newVo = new DirectStatisticsTop30VO();
|
||||
newVo.setMemberId(originalVo.getMemberId());
|
||||
newVo.setMemberName(originalVo.getMemberName());
|
||||
newVo.setMemberCode(originalVo.getMemberCode());
|
||||
|
||||
// 根据类型设置相应的值
|
||||
if (type == 1) {
|
||||
// 类型1:设置numberOfPeople
|
||||
newVo.setNumberOfPeople(originalVo.getNumberOfPeople());
|
||||
newVo.setNumberOfAmount(BigDecimal.ZERO);
|
||||
} else if (type == 2) {
|
||||
// 类型2:设置numberOfAmount
|
||||
newVo.setNumberOfPeople(0);
|
||||
newVo.setNumberOfAmount(originalVo.getNumberOfAmount());
|
||||
}
|
||||
|
||||
result.add(newVo);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成随机中文姓名
|
||||
*/
|
||||
private static String generateRandomChineseName(int index, Random random) {
|
||||
// 随机选择姓氏
|
||||
String surname = COMMON_SURNAMES[random.nextInt(COMMON_SURNAMES.length)];
|
||||
|
||||
// 随机决定是二字姓名还是三字姓名
|
||||
boolean isTwoCharacters = random.nextBoolean();
|
||||
|
||||
if (isTwoCharacters) {
|
||||
// 二字姓名:姓氏 + 1个随机汉字
|
||||
return surname + generateRandomChineseChar(random);
|
||||
} else {
|
||||
// 三字姓名:姓氏 + 2个随机汉字
|
||||
return surname + generateRandomChineseChar(random) + generateRandomChineseChar(random);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成随机汉字
|
||||
*/
|
||||
private static char generateRandomChineseChar(Random random) {
|
||||
// 中文汉字Unicode范围大致在0x4E00到0x9FA5之间
|
||||
int start = 0x4E00;
|
||||
int end = 0x9FA5;
|
||||
return (char) (start + random.nextInt(end - start + 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前周期预生成的30条完整数据
|
||||
* @param granularity 时间粒度
|
||||
* @return 预生成的数据列表
|
||||
*/
|
||||
public static List<DirectStatisticsTop30VO> getPeriodicPreGeneratedData(TimeGranularity granularity) {
|
||||
// 检查时间是否已变化
|
||||
checkAndUpdatePeriodicData(granularity);
|
||||
|
||||
// 返回预生成数据的副本,避免外部修改
|
||||
List<DirectStatisticsTop30VO> copyList = new ArrayList<>(PERIODIC_PRE_GENERATED_DATA.size());
|
||||
for (DirectStatisticsTop30VO vo : PERIODIC_PRE_GENERATED_DATA) {
|
||||
DirectStatisticsTop30VO copy = new DirectStatisticsTop30VO();
|
||||
copy.setMemberId(vo.getMemberId());
|
||||
copy.setMemberName(vo.getMemberName());
|
||||
copy.setMemberCode(vo.getMemberCode());
|
||||
copy.setNumberOfPeople(vo.getNumberOfPeople());
|
||||
copy.setNumberOfAmount(vo.getNumberOfAmount());
|
||||
copyList.add(copy);
|
||||
}
|
||||
return copyList;
|
||||
}
|
||||
|
||||
/**
|
||||
* (用于测试)根据指定日期和时间粒度获取数据
|
||||
*/
|
||||
public static List<DirectStatisticsTop30VO> getPreGeneratedDataByDate(
|
||||
int year, int month, int day, int hour, TimeGranularity granularity) {
|
||||
// 保存当前状态
|
||||
int originalSeed = currentSeed;
|
||||
TimeGranularity originalGranularity = currentGranularity;
|
||||
List<DirectStatisticsTop30VO> originalData = PERIODIC_PRE_GENERATED_DATA;
|
||||
|
||||
try {
|
||||
// 设置指定日期的种子
|
||||
Calendar calendar = new GregorianCalendar(year, month - 1, day, hour, 0, 0);
|
||||
Date date = calendar.getTime();
|
||||
|
||||
if (granularity == TimeGranularity.HOUR) {
|
||||
LocalDateTime localDateTime = date.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDateTime();
|
||||
currentSeed = Integer.parseInt(localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHH")));
|
||||
} else {
|
||||
LocalDate localDate = date.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate();
|
||||
currentSeed = Integer.parseInt(localDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
|
||||
}
|
||||
|
||||
currentGranularity = granularity;
|
||||
|
||||
// 重新生成指定日期的数据
|
||||
PERIODIC_PRE_GENERATED_DATA = generatePeriodicPredefinedData();
|
||||
|
||||
// 返回生成的数据
|
||||
return getPeriodicPreGeneratedData(granularity);
|
||||
} finally {
|
||||
// 恢复原始状态
|
||||
currentSeed = originalSeed;
|
||||
currentGranularity = originalGranularity;
|
||||
PERIODIC_PRE_GENERATED_DATA = originalData;
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 按天生成数据
|
||||
List<DirectStatisticsTop30VO> dailyData = DataGeneratorUtils.generateFakeData(
|
||||
new ArrayList<>(), 30, 1, DataGeneratorUtils.TimeGranularity.DAY);
|
||||
System.out.println(JSONUtil.toJsonPrettyStr(dailyData));
|
||||
// 按小时生成数据
|
||||
// List<DirectStatisticsTop30VO> hourlyData = DataGeneratorUtils.generateFakeData(
|
||||
// new ArrayList<>(), 50, 2, DataGeneratorUtils.TimeGranularity.HOUR);
|
||||
// System.out.println(JSONUtil.toJsonPrettyStr(hourlyData));
|
||||
}
|
||||
}
|
||||
|
|
@ -334,6 +334,29 @@ public class ApiMemberStructureController extends BaseController {
|
|||
result.get(0).putExtra("rightFirstSurplus", bdBonusExpand.getExpandBig().toString());
|
||||
}
|
||||
}
|
||||
|
||||
result.get(0).putExtra("parentId", null);
|
||||
result.get(0).putExtra("parentMemberCode", null);
|
||||
result.get(0).putExtra("placeDept", null);
|
||||
result.get(0).putExtra("countryName", null);
|
||||
result.get(0).putExtra("countryUrl", null);
|
||||
result.get(0).putExtra("countryUrl2", null);
|
||||
result.get(0).putExtra("settleCountryName", null);
|
||||
result.get(0).putExtra("settleCountryUrl", null);
|
||||
result.get(0).putExtra("settleCountryUrl2", null);
|
||||
result.get(0).putExtra("leftRealTotal", null);
|
||||
result.get(0).putExtra("leftFirstTotal", null);
|
||||
result.get(0).putExtra("leftRealNewPv", null);
|
||||
result.get(0).putExtra("rightRealNewPv", null);
|
||||
result.get(0).putExtra("leftFirstPurchaseAdd", null);
|
||||
result.get(0).putExtra("rightFirstPurchaseAdd", null);
|
||||
result.get(0).putExtra("leftRepeatPurchaseAdd", null);
|
||||
result.get(0).putExtra("rightRepeatPurchaseAdd", null);
|
||||
result.get(0).putExtra("rightRealTotal", null);
|
||||
result.get(0).putExtra("rightFirstTotal", null);
|
||||
result.get(0).putExtra("leftRepeatPurchaseTotal", null);
|
||||
result.get(0).putExtra("rightRepeatPurchaseTotal", null);
|
||||
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("tree", result);
|
||||
return AjaxResult.success(data);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.member.statis.mapper.MemberStatisticsMapper">
|
||||
|
||||
<select id="getDirectStatisticsNumberOfPeople"
|
||||
resultType="com.hzs.common.domain.member.statis.DirectStatisticsTop30VO">
|
||||
select
|
||||
PK_ID memberId,
|
||||
MEMBER_CODE memberCode,
|
||||
member_name memberName,
|
||||
numberOfPeople,
|
||||
numberOfAmount
|
||||
from (
|
||||
select
|
||||
PK_REFERENCE,
|
||||
count(PK_REFERENCE) numberOfPeople,
|
||||
sum(order_amount) numberOfAmount
|
||||
from sa_order
|
||||
where
|
||||
del_flag = 0
|
||||
and order_status = 1
|
||||
AND (order_type in (1,2) or (order_Type = 3 and ORDER_TYPE_EXTEND = 1))
|
||||
and pay_time between #{param.startDate} and #{param.endDate}
|
||||
group by PK_REFERENCE
|
||||
) r
|
||||
left join cu_member cm on r.PK_REFERENCE = cm.pk_id
|
||||
WHERE ROWNUM <![CDATA[ <=]]> 30
|
||||
order by numberOfPeople desc
|
||||
</select>
|
||||
<select id="getDirectStatisticsNumberOfAmount"
|
||||
resultType="com.hzs.common.domain.member.statis.DirectStatisticsTop30VO">
|
||||
select
|
||||
PK_ID memberId,
|
||||
MEMBER_CODE memberCode,
|
||||
member_name memberName,
|
||||
numberOfPeople,
|
||||
numberOfAmount
|
||||
from (
|
||||
select
|
||||
PK_REFERENCE,
|
||||
count(PK_REFERENCE) numberOfPeople,
|
||||
sum(order_amount) numberOfAmount
|
||||
from sa_order
|
||||
where
|
||||
del_flag = 0
|
||||
and order_status = 1
|
||||
AND (order_type in (1,2) or (order_Type = 3 and ORDER_TYPE_EXTEND = 1))
|
||||
and pay_time between #{param.startDate} and #{param.endDate}
|
||||
group by PK_REFERENCE
|
||||
) r
|
||||
left join cu_member cm on r.PK_REFERENCE = cm.pk_id
|
||||
WHERE ROWNUM <![CDATA[ <=]]> 30
|
||||
order by numberOfAmount desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -25,19 +25,12 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @BelongsProject: hzs_cloud
|
||||
* @BelongsPackage: com.hzs.activity.controller.manage
|
||||
* @Author: yh
|
||||
* @CreateTime: 2023-04-20 13:51
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/activity")
|
||||
public class ActivityController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IAcBaseConfigService baseConfigService;
|
||||
private IAcBaseConfigService iAcBaseConfigService;
|
||||
@Autowired
|
||||
private IActivityService iActivityService;
|
||||
|
||||
|
|
@ -95,7 +88,7 @@ public class ActivityController extends BaseController {
|
|||
// 创建时间倒叙
|
||||
queryWrapper.orderByDesc(AcBaseConfig::getCreationTime);
|
||||
List<BaseConfigVo> resultList = new ArrayList<>();
|
||||
List<AcBaseConfig> list = baseConfigService.list(queryWrapper);
|
||||
List<AcBaseConfig> list = iAcBaseConfigService.list(queryWrapper);
|
||||
for (AcBaseConfig acBaseConfig : list) {
|
||||
BaseConfigVo baseConfigVo = BeanUtil.copyProperties(acBaseConfig, BaseConfigVo.class);
|
||||
// 判断活动状态
|
||||
|
|
|
|||
|
|
@ -5,9 +5,6 @@ import com.hzs.common.domain.activity.base.AcApprovalLog;
|
|||
|
||||
/**
|
||||
* 活动审批日志 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-22
|
||||
*/
|
||||
public interface AcApprovalLogMapper extends BaseMapper<AcApprovalLog> {
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ public interface AcBaseConfigMapper extends BaseMapper<AcBaseConfig> {
|
|||
* 根据活动类型查询基本配置
|
||||
*
|
||||
* @param baseConfigVO 基本活动配置
|
||||
* @return List<AcBaseConfig>
|
||||
*/
|
||||
List<AcBaseConfig> selectBaseConfigByType(AcBaseConfigVO baseConfigVO);
|
||||
|
||||
|
|
|
|||
|
|
@ -6,14 +6,6 @@ import lombok.Data;
|
|||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @BelongsProject: hzs_cloud
|
||||
* @BelongsPackage: com.hzs.activity.controller.param
|
||||
* @Author: yh
|
||||
* @CreateTime: 2023-04-20 17:02
|
||||
* @Description: TODO
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class ConsumeRuleConfigParam implements Serializable {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,240 +0,0 @@
|
|||
package com.hzs.activity.base.provider;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.hzs.activity.base.IActivityApprovalServiceApi;
|
||||
import com.hzs.activity.base.service.IAcApprovalLogService;
|
||||
import com.hzs.activity.base.service.IActivityService;
|
||||
import com.hzs.activity.consume.service.IAcConsumeRuleConfigService;
|
||||
import com.hzs.activity.consume.service.IAcMemberConsumeRuleService;
|
||||
import com.hzs.activity.draw.param.PurchasedTimesParam;
|
||||
import com.hzs.activity.draw.service.IAcDrawGiftRuleConfigService;
|
||||
import com.hzs.activity.draw.service.IAcDrawRewardNumService;
|
||||
import com.hzs.activity.pick.param.AcPickSaveDetailParam;
|
||||
import com.hzs.activity.pick.service.IAcPickService;
|
||||
import com.hzs.activity.recommend.param.AcRecommendParam;
|
||||
import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService;
|
||||
import com.hzs.activity.wares.service.IAcWaresRuleConfigService;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.exception.base.BaseException;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.domain.activity.base.AcApprovalLog;
|
||||
import com.hzs.member.base.IMemberServiceApi;
|
||||
import com.hzs.sale.product.IProductServiceApi;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 活动审批相关服务
|
||||
*/
|
||||
@DubboService
|
||||
public class ActivityApprovalProvider implements IActivityApprovalServiceApi {
|
||||
|
||||
@Autowired
|
||||
private IAcDrawRewardNumService drawRewardNumService;
|
||||
@Autowired
|
||||
private IAcConsumeRuleConfigService consumeRuleConfigService;
|
||||
@Autowired
|
||||
private IActivityService activityService;
|
||||
@Autowired
|
||||
private IAcWaresRuleConfigService waresRuleConfigService;
|
||||
@Autowired
|
||||
private IAcDrawGiftRuleConfigService drawGiftConfigService;
|
||||
@Autowired
|
||||
private IAcPickService iAcPickService;
|
||||
@Autowired
|
||||
private IAcApprovalLogService iAcApprovalLogService;
|
||||
@Autowired
|
||||
private IAcRepurCouponsRuleConfigService acRepurCouponsRuleConfigService;
|
||||
@Autowired
|
||||
private IAcMemberConsumeRuleService iAcMemberConsumeRuleService;
|
||||
|
||||
@DubboReference
|
||||
IMemberServiceApi iMemberServiceApi;
|
||||
@DubboReference
|
||||
IProductServiceApi iProductServiceApi;
|
||||
|
||||
|
||||
@Override
|
||||
public R<Boolean> approvalCallback(ApprovalBusinessResultDTO approvalBusinessResultDTO) {
|
||||
try {
|
||||
// 返回内容
|
||||
String str = null;
|
||||
if (EApproveStatus.FINISH.getValue() == approvalBusinessResultDTO.getEApproveStatus().getValue()) {
|
||||
// 通过处理
|
||||
switch (approvalBusinessResultDTO.getEApprovalBusiness()) {
|
||||
case PICK_ADD:
|
||||
// 提货充值
|
||||
str = iAcPickService.pickApprovalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case PICK_ADD_DEL:
|
||||
// 提货充值删除
|
||||
str = iAcPickService.delpickApprovalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
// 直推赠送
|
||||
case DIRECT_PUSH_GIFT:
|
||||
str = acRepurCouponsRuleConfigService.approvalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case LOTTERY_DRAW:
|
||||
str = drawGiftConfigService.approvalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case TOURISM_SAVE:
|
||||
case TOURISM_UPDATE:
|
||||
case TOURISM_DELETE:
|
||||
str = activityService.approvalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case PRODUCT_GIFT_ADD:
|
||||
case PRODUCT_GIFT_UPDATE:
|
||||
case PRODUCT_GIFT_REMOVE:
|
||||
// 商品赠送添加/修改/删除
|
||||
str = waresRuleConfigService.approvalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case CONSUME_GIFT_ADD:
|
||||
case CONSUME_GIFT_UPDATE:
|
||||
case CONSUME_GIFT_REMOVE:
|
||||
// 消费赠送添加/修改/删除
|
||||
consumeRuleConfigService.approvalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case MEMBER_CONSUME_GIFT_ADD:
|
||||
case MEMBER_CONSUME_GIFT_UPDATE:
|
||||
case MEMBER_CONSUME_GIFT_REMOVE:
|
||||
// 会员消费赠送添加/修改/删除
|
||||
iAcMemberConsumeRuleService.approvalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case LOTTERY_DRAW_ADD:
|
||||
case LOTTERY_DRAW_UPDATE:
|
||||
case LOTTERY_DRAW_REMOVE:
|
||||
// 抽奖配置添加/修改/删除
|
||||
drawGiftConfigService.approvalAgree(approvalBusinessResultDTO);
|
||||
break;
|
||||
case PUR_CHASED_TIMES:
|
||||
// 充值已购买次数
|
||||
drawRewardNumService.rechargePurchasedTimes(approvalBusinessResultDTO);
|
||||
break;
|
||||
case UN_PUR_CHASED_TIMES:
|
||||
// 充值未购买次数
|
||||
drawRewardNumService.unRechargePurchasedTimes(approvalBusinessResultDTO);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
} else {
|
||||
// 驳回处理
|
||||
switch (approvalBusinessResultDTO.getEApprovalBusiness()) {
|
||||
case PICK_ADD:
|
||||
// 提货充值
|
||||
str = iAcPickService.pickApprovalReject(approvalBusinessResultDTO);
|
||||
break;
|
||||
// 直推赠送
|
||||
case DIRECT_PUSH_GIFT:
|
||||
str = acRepurCouponsRuleConfigService.approvalReject(approvalBusinessResultDTO);
|
||||
break;
|
||||
case LOTTERY_DRAW:
|
||||
str = acRepurCouponsRuleConfigService.approvalReject(approvalBusinessResultDTO);
|
||||
break;
|
||||
case PRODUCT_GIFT_ADD:
|
||||
case PRODUCT_GIFT_UPDATE:
|
||||
case PRODUCT_GIFT_REMOVE:
|
||||
// 商品赠送添加
|
||||
str = waresRuleConfigService.approvalReject(approvalBusinessResultDTO);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotEmpty(str)) {
|
||||
// 返回有信息,说明有问题,抛出异常
|
||||
throw new BaseException(str);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return R.fail(e.getMessage());
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 活动类审批诉求查询
|
||||
* @author:
|
||||
* @date: 2023/4/25 16:55
|
||||
* @param: [eApprovalBusiness, businessCode, pkCountry]
|
||||
* @return: com.hzs.common.core.domain.R
|
||||
**/
|
||||
@Override
|
||||
public R<?> queryApprovalData(EApprovalBusiness eApprovalBusiness, String businessCode, Integer pkCountry) {
|
||||
try {
|
||||
List<AcApprovalLog> acApprovalLogList = iAcApprovalLogService.queryApprovalLogList(eApprovalBusiness, businessCode, pkCountry);
|
||||
switch (eApprovalBusiness) {
|
||||
case PICK_ADD:
|
||||
case PICK_ADD_DEL:
|
||||
// 提货充值
|
||||
List<AcPickSaveDetailParam> list = new ArrayList<>();
|
||||
for (AcApprovalLog approvalLog : acApprovalLogList) {
|
||||
AcPickSaveDetailParam afterData = JSONUtil.toBean(approvalLog.getAfterData(), AcPickSaveDetailParam.class);
|
||||
afterData.setMemberName(iMemberServiceApi.getMember(afterData.getMemberCode()).getData().getMemberName());
|
||||
if (afterData.getPkProduct() != null) {
|
||||
afterData.setProductName(iProductServiceApi.getProduct(afterData.getPkProduct()).getData().getProductName() + "(" + afterData.getSpecsName() + ")");
|
||||
}
|
||||
list.add(afterData);
|
||||
}
|
||||
return R.ok(list);
|
||||
// 直推赠送
|
||||
case DIRECT_PUSH_GIFT:
|
||||
case TOURISM_UPDATE:
|
||||
case TOURISM_DELETE:
|
||||
case TOURISM_SAVE:
|
||||
case LOTTERY_DRAW:
|
||||
// 抽奖
|
||||
return R.ok(getRecommendApprovalData(acApprovalLogList.get(0)));
|
||||
case PUR_CHASED_TIMES:
|
||||
case UN_PUR_CHASED_TIMES:
|
||||
// 充值已购买次数
|
||||
return R.ok(getRecommendApprovalDataInfo(acApprovalLogList.get(0)));
|
||||
case CONSUME_GIFT_ADD:
|
||||
case CONSUME_GIFT_UPDATE:
|
||||
case CONSUME_GIFT_REMOVE:
|
||||
case PRODUCT_GIFT_ADD:
|
||||
case PRODUCT_GIFT_UPDATE:
|
||||
case PRODUCT_GIFT_REMOVE:
|
||||
case LOTTERY_DRAW_ADD:
|
||||
case LOTTERY_DRAW_UPDATE:
|
||||
case LOTTERY_DRAW_REMOVE:
|
||||
case MEMBER_CONSUME_GIFT_ADD:
|
||||
case MEMBER_CONSUME_GIFT_UPDATE:
|
||||
case MEMBER_CONSUME_GIFT_REMOVE:
|
||||
return R.ok(getRecommendApprovalData(acApprovalLogList.get(0)));
|
||||
default:
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return R.fail(e.getMessage());
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
private AcRecommendParam getRecommendApprovalData(AcApprovalLog acApprovalLog) {
|
||||
String data = acApprovalLog.getAfterData();
|
||||
return JSONUtil.toBean(data, AcRecommendParam.class);
|
||||
|
||||
}
|
||||
|
||||
private PurchasedTimesParam getRecommendApprovalDataInfo(AcApprovalLog acApprovalLog) {
|
||||
String data = acApprovalLog.getAfterData();
|
||||
if (StringUtils.isNotBlank(data)) {
|
||||
JSONObject js = new JSONObject(data);
|
||||
String memberCode = js.getStr("memberCode");
|
||||
String memberName = js.getStr("memberName");
|
||||
Integer num = js.getInt("num");
|
||||
PurchasedTimesParam purchasedTimesParam = new PurchasedTimesParam();
|
||||
purchasedTimesParam.setMemberCode(memberCode);
|
||||
purchasedTimesParam.setMemberName(memberName);
|
||||
purchasedTimesParam.setNum(num);
|
||||
return purchasedTimesParam;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,16 +1,12 @@
|
|||
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.activity.recommend.service.IAcRepurSharRuleConfigService;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.activity.recommend.AcRepurCouponsRuleConfig;
|
||||
import com.hzs.common.domain.activity.recommend.ext.AcRepurSharRuleConfigExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
|
|
@ -21,24 +17,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;
|
||||
@Autowired
|
||||
private IAcRepurSharRuleConfigService acRepurSharRuleConfigService;
|
||||
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();
|
||||
}
|
||||
|
|
@ -57,7 +51,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();
|
||||
}
|
||||
|
|
@ -66,7 +60,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();
|
||||
}
|
||||
|
|
@ -74,7 +68,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 {
|
||||
|
|
@ -82,15 +76,10 @@ public class ActivityServiceProvider implements IActivityServiceApi {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<AcRepurSharRuleConfigExt>> queryRepurSharRuleConfig(Date startDate, Date endDate) {
|
||||
return R.ok(acRepurSharRuleConfigService.queryRepurSharRuleConfig(startDate, endDate));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<Boolean> invokeRecommendUpgrade(AcRecommendUpgradeDTO recommendUpgradeDTO) {
|
||||
try {
|
||||
return R.ok(acRepurCouponsRuleConfigService.invokeRecommendUpgrade(BeanUtil.copyProperties(recommendUpgradeDTO, AcRecommendUpgrade.class)));
|
||||
return R.ok(iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(recommendUpgradeDTO));
|
||||
} catch (Exception e) {
|
||||
return R.fail();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,9 +9,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 活动审批日志 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-22
|
||||
*/
|
||||
public interface IAcApprovalLogService extends IService<AcApprovalLog> {
|
||||
|
||||
|
|
@ -25,16 +22,6 @@ public interface IAcApprovalLogService extends IService<AcApprovalLog> {
|
|||
*/
|
||||
AcApprovalLog queryApprovalLog(EApprovalBusiness eApprovalBusiness, String businessCode, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 查询审批记录列表
|
||||
*
|
||||
* @param eApprovalBusiness 业务类型
|
||||
* @param businessCode 业务单号
|
||||
* @param pkCountry 所属国家
|
||||
* @return
|
||||
*/
|
||||
List<AcApprovalLog> queryApprovalLogList(EApprovalBusiness eApprovalBusiness, String businessCode, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 更新审核修改记录
|
||||
*
|
||||
|
|
|
|||
|
|
@ -9,9 +9,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 活动基本配置表 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
public interface IAcBaseConfigService extends IService<AcBaseConfig> {
|
||||
|
||||
|
|
@ -19,31 +16,21 @@ public interface IAcBaseConfigService extends IService<AcBaseConfig> {
|
|||
* 根据活动类型查询基本配置
|
||||
*
|
||||
* @param baseConfigVO 基本活动配置
|
||||
* @return List<AcBaseConfig>
|
||||
*/
|
||||
List<AcBaseConfig> selectBaseConfigByType(AcBaseConfigVO baseConfigVO);
|
||||
|
||||
/**
|
||||
* @description: 会员前端查询活动列表
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 9:20
|
||||
* @param: null null
|
||||
* 会员前端查询活动列表
|
||||
**/
|
||||
List<AcBaseConfigExt> queryBaseConfigList(Integer pkCountry, Long pkMember);
|
||||
|
||||
/*
|
||||
* @description: 查询订单详情
|
||||
* @author: sui q
|
||||
* @date: 2023/6/21 10:41
|
||||
* @param: null null
|
||||
* 查询订单详情
|
||||
**/
|
||||
AcBaseConfigExt queryBaseConfigDetail(Long pkId, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* @description: 根据主键查询活动配置
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 14:05
|
||||
* @param: null null
|
||||
* 根据主键查询活动配置
|
||||
**/
|
||||
AcBaseConfig queryBaseConfigById(Long pkBaseId);
|
||||
|
||||
|
|
|
|||
|
|
@ -11,13 +11,9 @@ import com.hzs.common.domain.activity.base.AcApprovalLog;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 活动审批日志 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-22
|
||||
*/
|
||||
@Service
|
||||
public class AcApprovalLogServiceImpl extends ServiceImpl<AcApprovalLogMapper, AcApprovalLog> implements IAcApprovalLogService {
|
||||
|
|
@ -32,16 +28,6 @@ public class AcApprovalLogServiceImpl extends ServiceImpl<AcApprovalLogMapper, A
|
|||
return this.getOne(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AcApprovalLog> queryApprovalLogList(EApprovalBusiness eApprovalBusiness, String businessCode, Integer pkCountry) {
|
||||
// 查询修改记录
|
||||
LambdaQueryWrapper<AcApprovalLog> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AcApprovalLog::getBusinessCode, businessCode);
|
||||
queryWrapper.eq(AcApprovalLog::getApprovalType, eApprovalBusiness.getValue());
|
||||
queryWrapper.eq(AcApprovalLog::getPkCountry, pkCountry);
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateApprovalLog(EApprovalBusiness eApprovalBusiness, String businessCode, Integer pkCountry, Long userId,
|
||||
EApproveRechargeStatus approveStatus, String remark) {
|
||||
|
|
|
|||
|
|
@ -17,9 +17,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 活动基本配置表 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
@Service
|
||||
public class AcBaseConfigServiceImpl extends ServiceImpl<AcBaseConfigMapper, AcBaseConfig> implements IAcBaseConfigService {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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(AcRecommendUpgradeDTO.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(AcRecommendUpgradeDTO.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;
|
||||
|
|
|
|||
|
|
@ -7,14 +7,6 @@ import lombok.EqualsAndHashCode;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @BelongsProject: hzs_cloud
|
||||
* @BelongsPackage: com.hzs.activity.base.vo
|
||||
* @Author: yh
|
||||
* @CreateTime: 2023-04-21 18:56
|
||||
* @Description: TODO
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class ConsumeRuleConfigVo extends AcConsumeRuleConfig {
|
||||
|
|
|
|||
|
|
@ -9,17 +9,11 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 消费买赠规则配置表 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
public interface AcConsumeRuleConfigMapper extends BaseMapper<AcConsumeRuleConfig> {
|
||||
|
||||
/*
|
||||
* @description: 查询买赠活动赠品配置根据条件
|
||||
* @author: sui q
|
||||
* @date: 2023/4/25 19:26
|
||||
* @param: null null
|
||||
* 查询买赠活动赠品配置根据条件
|
||||
**/
|
||||
List<AcConsumeRuleConfigExt> queryConsumeGiftConfigByCondition(GiftConfigParam giftConfigParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,11 +9,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 会员消费赠送活动规则配置
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/28 11:30
|
||||
* @param:
|
||||
* @return:
|
||||
* 会员消费赠送活动规则配置
|
||||
**/
|
||||
public interface AcMemberConsumeRuleMapper extends BaseMapper<AcMemberConsumeRule> {
|
||||
|
||||
|
|
|
|||
|
|
@ -11,17 +11,11 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 消费买赠规则配置表 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
public interface IAcConsumeRuleConfigService extends IService<AcConsumeRuleConfig> {
|
||||
|
||||
/*
|
||||
* @description: 查询业绩赠送活动赠品配置根据条件
|
||||
* @author: sui q
|
||||
* @date: 2023/4/25 19:26
|
||||
* @param: null null
|
||||
* 查询业绩赠送活动赠品配置根据条件
|
||||
**/
|
||||
List<AcConsumeRuleConfigExt> queryConsumeGiftConfigByCondition(GiftConfigParam giftConfigParam);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
package com.hzs.activity.consume.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.activity.base.vo.AcMemberConsumeRuleVo;
|
||||
import com.hzs.activity.recommend.param.AcRecommendParam;
|
||||
import com.hzs.common.domain.activity.consume.AcMemberConsumeRule;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import com.hzs.common.domain.activity.consume.ext.AcMemberConsumeRuleExt;
|
||||
|
|
@ -12,32 +10,20 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 会员消费赠送活动规则配置
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/28 11:30
|
||||
* @param:
|
||||
* @return:
|
||||
* 会员消费赠送活动规则配置
|
||||
**/
|
||||
public interface IAcMemberConsumeRuleService extends IService<AcMemberConsumeRule> {
|
||||
|
||||
|
||||
/**
|
||||
* @description:会员消费赠送发起签呈
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/29 9:42
|
||||
* @param: [memberConsumeRuleVo]
|
||||
* @return: java.lang.Boolean
|
||||
* 会员消费赠送发起签呈
|
||||
**/
|
||||
String onLinePetition(AcMemberConsumeRuleVo memberConsumeRuleVo);
|
||||
|
||||
/**
|
||||
* @description: 会员消费赠审批
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/29 16:32
|
||||
* @param: [approvalBusinessResultDTO]
|
||||
* @return: java.lang.String
|
||||
* 会员消费赠审批
|
||||
**/
|
||||
String approvalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* 规则列表以及商品信息
|
||||
*
|
||||
|
|
@ -51,27 +37,17 @@ public interface IAcMemberConsumeRuleService extends IService<AcMemberConsumeRul
|
|||
List<AcMemberConsumeRuleExt> listRuleAndProduct(Date startDate, Date endDate, Integer pkGrade, Integer memberPoint, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* @description: 新增会员消费活动
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/2 17:15
|
||||
* @param: [mcrVo]
|
||||
* @return: java.lang.Long
|
||||
* 新增会员消费活动
|
||||
**/
|
||||
Long saveMemberConsumeRule(AcMemberConsumeRuleVo mcrVo);
|
||||
|
||||
/**
|
||||
* @description: 修改会员消费活动规则表
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/2 17:14
|
||||
* @param: [mcrVo]
|
||||
* @return: void
|
||||
* 修改会员消费活动规则表
|
||||
**/
|
||||
void updateConsumptionGift(AcMemberConsumeRuleVo mcrVo);
|
||||
|
||||
/**
|
||||
* @description: 删除会员消费活动
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/2 17:14
|
||||
* @param: [pkId]
|
||||
* @return: void
|
||||
* 删除会员消费活动
|
||||
**/
|
||||
void removeActivity(Integer pkId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,9 +43,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 消费买赠规则配置表 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
|
|
|
|||
|
|
@ -3,22 +3,17 @@ package com.hzs.activity.consume.service.impl;
|
|||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.activity.base.param.ActivityParam;
|
||||
import com.hzs.activity.base.param.ConsumeRuleConfigParam;
|
||||
import com.hzs.activity.base.service.IAcApprovalLogService;
|
||||
import com.hzs.activity.base.service.IAcBaseConfigService;
|
||||
import com.hzs.activity.base.service.IAcGoalMemberConfigService;
|
||||
import com.hzs.activity.base.service.IActivityService;
|
||||
import com.hzs.activity.base.vo.AcMemberConsumeRuleVo;
|
||||
import com.hzs.activity.base.vo.ConsumeRuleConfigVo;
|
||||
import com.hzs.activity.consume.mapper.AcMemberConsumeRuleMapper;
|
||||
import com.hzs.activity.consume.service.IAcMemberConsumeRuleService;
|
||||
import com.hzs.activity.recommend.param.AcRecommendParam;
|
||||
import com.hzs.activity.wares.service.IAcGiftConfigService;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.CommonUtil;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
|
|
@ -27,18 +22,12 @@ import com.hzs.common.domain.activity.base.AcBaseConfig;
|
|||
import com.hzs.common.domain.activity.base.AcGiftConfig;
|
||||
import com.hzs.common.domain.activity.base.AcGoalMemberConfig;
|
||||
import com.hzs.common.domain.activity.base.ext.AcGiftConfigExt;
|
||||
import com.hzs.common.domain.activity.consume.AcConsumeRuleConfig;
|
||||
import com.hzs.common.domain.activity.consume.AcConsumeShieldConfig;
|
||||
import com.hzs.common.domain.activity.consume.AcMemberConsumeRule;
|
||||
import com.hzs.common.domain.activity.consume.ext.AcMemberConsumeRuleExt;
|
||||
import com.hzs.common.domain.activity.wares.AcWaresRuleConfig;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.system.sys.IApprovalServiceApi;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import com.hzs.system.sys.dto.ApprovalSubmitDTO;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -47,14 +36,9 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 会员消费赠送活动规则配置
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/28 11:30
|
||||
* @param:
|
||||
* @return:
|
||||
* 会员消费赠送活动规则配置
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
|
|
@ -64,8 +48,6 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
private IAcApprovalLogService acApprovalLogService;
|
||||
@Autowired
|
||||
private IActivityService iActivityService;
|
||||
@DubboReference
|
||||
IApprovalServiceApi approvalServiceApi;
|
||||
@Autowired
|
||||
private IAcBaseConfigService baseConfigService;
|
||||
@Autowired
|
||||
|
|
@ -73,18 +55,10 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
@Autowired
|
||||
private IAcGoalMemberConfigService iAcGoalMemberConfigService;
|
||||
|
||||
|
||||
/**
|
||||
* @description: 会员消费赠送发起签呈
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/29 9:42
|
||||
* @param: [memberConsumeRuleVo]
|
||||
* @return: java.lang.Boolean
|
||||
**/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String onLinePetition(AcMemberConsumeRuleVo memberConsumeRuleVo) {
|
||||
log.info("商品赠送入参{}",JSONUtil.toJsonStr(memberConsumeRuleVo));
|
||||
log.info("商品赠送入参{}", JSONUtil.toJsonStr(memberConsumeRuleVo));
|
||||
EApprovalBusiness approvalBusiness = null;
|
||||
if (memberConsumeRuleVo.getControlType() == EControlType.SAVE.getValue()) {
|
||||
approvalBusiness = EApprovalBusiness.MEMBER_CONSUME_GIFT_ADD;
|
||||
|
|
@ -113,7 +87,7 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
activityParam.setActType(EActType.MEMBER_CONSUMPTION.getValue());
|
||||
memberConsumeRuleVo.setActivityParam(activityParam);
|
||||
updateConsumptionGift(memberConsumeRuleVo);
|
||||
}else if (memberConsumeRuleVo.getControlType().equals(EControlType.DELETE.getValue())) {
|
||||
} else if (memberConsumeRuleVo.getControlType().equals(EControlType.DELETE.getValue())) {
|
||||
ActivityParam activityParam = memberConsumeRuleVo.getActivityParam();
|
||||
Long pkId = activityParam.getPkId();
|
||||
removeActivity(pkId.intValue());
|
||||
|
|
@ -129,34 +103,7 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 发起签呈
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/29 9:44
|
||||
* @param: [memberConsumeRuleVo, approvalBusiness]
|
||||
* @return: java.lang.Boolean
|
||||
**/
|
||||
public Boolean submitApproval(AcMemberConsumeRuleVo memberConsumeRuleVo, EApprovalBusiness approvalBusiness) {
|
||||
//保存审批日志
|
||||
AcApprovalLog approvalLog = saveApprovalLog(memberConsumeRuleVo, approvalBusiness);
|
||||
ApprovalSubmitDTO approvalSubmitDTO = ApprovalSubmitDTO.builder().eApprovalBusiness(approvalBusiness)
|
||||
.businessCode(approvalLog.getBusinessCode())
|
||||
.businessData(JSONObject.toJSONString(memberConsumeRuleVo.getActivityParam()))
|
||||
.signType(ESignType.getEnumByValue(memberConsumeRuleVo.getSignType())).userIdList(memberConsumeRuleVo.getUserIdList())
|
||||
.sendIdList(memberConsumeRuleVo.getSendIdList()).remark(memberConsumeRuleVo.getRemark()).fileList(memberConsumeRuleVo.getFileList())
|
||||
.build();
|
||||
R<String> submit = approvalServiceApi.submit(approvalSubmitDTO, memberConsumeRuleVo.getLoginUser());
|
||||
if (!submit.isSuccess()) {
|
||||
throw new RuntimeException("旅游活动参数提交审批失败!");
|
||||
}
|
||||
return submit.isSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 保存审批日志
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/29 9:44
|
||||
* @param: [memberConsumeRuleVo, approvalBusiness]
|
||||
* @return: com.hzs.common.domain.activity.base.AcApprovalLog
|
||||
* 保存审批日志
|
||||
**/
|
||||
public AcApprovalLog saveApprovalLog(AcMemberConsumeRuleVo memberConsumeRuleVo, EApprovalBusiness approvalBusiness) {
|
||||
Integer controlType = memberConsumeRuleVo.getControlType();
|
||||
|
|
@ -176,14 +123,8 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
return approvalLog;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @description: 会员消费赠送审批
|
||||
* @author: zhang jing
|
||||
* @date: 2024/11/29 16:33
|
||||
* @param: [businessResult]
|
||||
* @return: java.lang.String
|
||||
* 会员消费赠送审批
|
||||
**/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
|
@ -218,7 +159,7 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
updateConsumptionGift(memberConsumeRuleVo);
|
||||
// IActivityService.createBaseConfigLog(activityParam, new StringBuffer(), activityParam.getPkBaseId(), EApprovalBusiness.CONSUME_GIFT_UPDATE.getValue(), true);
|
||||
return null;
|
||||
}else if (controlType.equals(EControlType.DELETE.getValue())) {
|
||||
} else if (controlType.equals(EControlType.DELETE.getValue())) {
|
||||
ActivityParam activityParam = memberConsumeRuleVo.getActivityParam();
|
||||
Long pkBaseId = activityParam.getPkBaseId();
|
||||
AcBaseConfig baseConfig = baseConfigService.getById(pkBaseId);
|
||||
|
|
@ -229,13 +170,6 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新增消费赠送规格
|
||||
*
|
||||
* @param mcrVo
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long saveMemberConsumeRule(AcMemberConsumeRuleVo mcrVo) {
|
||||
|
|
@ -248,13 +182,6 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
return baseConfig.getPkId();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:修改会员消费赠送规则
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/2 16:17
|
||||
* @param: [mcrVo]
|
||||
* @return: void
|
||||
**/
|
||||
@Override
|
||||
public void updateConsumptionGift(AcMemberConsumeRuleVo mcrVo) {
|
||||
Long pkId = mcrVo.getActivityParam().getPkId();
|
||||
|
|
@ -262,8 +189,8 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
AcBaseConfig baseConfig = BeanUtil.copyProperties(mcrVo.getActivityParam(), AcBaseConfig.class);
|
||||
baseConfigService.updateById(baseConfig);
|
||||
//删除会员消费活动赠品配置表
|
||||
if(CollectionUtil.isNotEmpty(mcrVo.getMcrList())){
|
||||
for(AcMemberConsumeRuleExt mcrex:mcrVo.getMcrList()){
|
||||
if (CollectionUtil.isNotEmpty(mcrVo.getMcrList())) {
|
||||
for (AcMemberConsumeRuleExt mcrex : mcrVo.getMcrList()) {
|
||||
// 消费赠送规格配置
|
||||
LambdaQueryWrapper<AcGiftConfig> delGif = new LambdaQueryWrapper<>();
|
||||
delGif.eq(AcGiftConfig::getPkRuleId, mcrex.getPkId());
|
||||
|
|
@ -285,11 +212,7 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 新增会员消费活动规则和活动赠品
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/2 16:43
|
||||
* @param: [mcrVo, baseConfig]
|
||||
* @return: void
|
||||
* 新增会员消费活动规则和活动赠品
|
||||
**/
|
||||
public void saveConsumeRuleConfigService(AcMemberConsumeRuleVo mcrVo, AcBaseConfig baseConfig) {
|
||||
List<AcMemberConsumeRuleExt> mcrList = mcrVo.getMcrList();
|
||||
|
|
@ -297,36 +220,32 @@ public class AcMemberConsumeRuleServiceImpl extends ServiceImpl<AcMemberConsumeR
|
|||
/**
|
||||
* 新增会员消费规则配置
|
||||
*/
|
||||
Date date=new Date();
|
||||
Date date = new Date();
|
||||
mcr.setPkBaseId(baseConfig.getPkId());
|
||||
mcr.setCreationTime(date);
|
||||
mcr.setPkCreator(mcrVo.getLoginUser().getUserId());
|
||||
mcr.setPkCountry(mcrVo.getLoginUser().getDataCountry());
|
||||
baseMapper.insert(mcr);
|
||||
/**
|
||||
* 活动赠品配置
|
||||
*/
|
||||
List<AcGiftConfigExt> giftConfigExList = mcr.getWgcList();
|
||||
List<AcGiftConfig> giftConfigList = new ArrayList<>();
|
||||
for (AcGiftConfigExt giftConfigExt : giftConfigExList) {
|
||||
giftConfigExt.setPkRuleId(mcr.getPkId());
|
||||
giftConfigExt.setActType(baseConfig.getActType());
|
||||
giftConfigExt.setPkCreator(baseConfig.getPkCreator());
|
||||
giftConfigExt.setPkCountry(baseConfig.getPkCountry());
|
||||
AcGiftConfig acGiftConfig = BeanUtil.copyProperties(giftConfigExt, AcGiftConfig.class);
|
||||
giftConfigList.add(acGiftConfig);
|
||||
}
|
||||
waresGiftConfigService.saveBatch(giftConfigList);
|
||||
/**
|
||||
* 活动赠品配置
|
||||
*/
|
||||
List<AcGiftConfigExt> giftConfigExList = mcr.getWgcList();
|
||||
List<AcGiftConfig> giftConfigList = new ArrayList<>();
|
||||
for (AcGiftConfigExt giftConfigExt : giftConfigExList) {
|
||||
giftConfigExt.setPkRuleId(mcr.getPkId());
|
||||
giftConfigExt.setActType(baseConfig.getActType());
|
||||
giftConfigExt.setPkCreator(baseConfig.getPkCreator());
|
||||
giftConfigExt.setPkCountry(baseConfig.getPkCountry());
|
||||
AcGiftConfig acGiftConfig = BeanUtil.copyProperties(giftConfigExt, AcGiftConfig.class);
|
||||
giftConfigList.add(acGiftConfig);
|
||||
}
|
||||
waresGiftConfigService.saveBatch(giftConfigList);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 删除会员消费活动
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/2 17:08
|
||||
* @param: [pkId]
|
||||
* @return: void
|
||||
* 删除会员消费活动
|
||||
**/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
|
|
|||
|
|
@ -9,17 +9,11 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 活动赠品配置 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
public interface AcDrawGiftRuleConfigMapper extends BaseMapper<AcDrawGiftRuleConfig> {
|
||||
|
||||
/*
|
||||
* @description: 查询活动的赠品配置
|
||||
* @author: sui q
|
||||
* @date: 2023/4/21 19:53
|
||||
* @param: null null
|
||||
* 查询活动的赠品配置
|
||||
**/
|
||||
List<AcDrawGiftRuleConfigExt> queryAcDrawGiftConfig(DrawGiftConfigParam drawGiftConfigParam);
|
||||
|
||||
|
|
|
|||
|
|
@ -10,25 +10,16 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员可抽奖次数记录 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
public interface AcDrawRewardNumMapper extends BaseMapper<AcDrawRewardNum> {
|
||||
|
||||
/*
|
||||
* @description: 查询
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 15:14
|
||||
* @param: null null
|
||||
* 查询
|
||||
**/
|
||||
AcDrawRewardNumExt queryDrawRewardNumByCondition(AcDrawRewardNumParam acDrawRewardNumParam);
|
||||
|
||||
/*
|
||||
* @description: 会员后台查询抽奖次数
|
||||
* @author: sui q
|
||||
* @date: 2023/6/1 10:36
|
||||
* @param: null null
|
||||
* 会员后台查询抽奖次数
|
||||
**/
|
||||
List<AcDrawRewardNumExt> queryDrawRewardExtNumByCondition(AcDrawRewardNumParam acDrawRewardNumParam);
|
||||
|
||||
|
|
|
|||
|
|
@ -12,17 +12,11 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 活动赠品配置 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
public interface IAcDrawGiftRuleConfigService extends IService<AcDrawGiftRuleConfig> {
|
||||
|
||||
/*
|
||||
* @description: 查询活动的赠品配置
|
||||
* @author: sui q
|
||||
* @date: 2023/4/21 19:53
|
||||
* @param: null null
|
||||
* 查询活动的赠品配置
|
||||
**/
|
||||
List<AcDrawGiftRuleConfigExt> queryAcDrawGiftConfig(DrawGiftConfigParam drawGiftConfigParam);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,33 +15,21 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员可抽奖次数记录 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
public interface IAcDrawRewardNumService extends IService<AcDrawRewardNum> {
|
||||
|
||||
/*
|
||||
* @description: 查询会员抽奖活动,查询会员的抽奖次数
|
||||
* @author: sui q
|
||||
* @date: 2023/4/22 10:11
|
||||
* @param: null null
|
||||
* 查询会员抽奖活动,查询会员的抽奖次数
|
||||
**/
|
||||
AcDrawRewardNum queryAcDrawRewardNum(AcDrawRewardNumParam acDrawRewardNumParam);
|
||||
|
||||
/*
|
||||
* @description: 会员后台查询抽奖次数
|
||||
* @author: sui q
|
||||
* @date: 2023/6/1 10:36
|
||||
* @param: null null
|
||||
* 会员后台查询抽奖次数
|
||||
**/
|
||||
List<AcDrawRewardNumExt> queryDrawRewardExtNumByCondition(AcDrawRewardNumParam acDrawRewardNumParam);
|
||||
|
||||
/*
|
||||
* @description: 更新会员抽奖次数
|
||||
* @author: sui q
|
||||
* @date: 2023/4/22 10:43
|
||||
* @param: null null
|
||||
* 更新会员抽奖次数
|
||||
**/
|
||||
Boolean updateAcDrawRewardNum(AcDrawRewardNum acDrawRewardNum);
|
||||
|
||||
|
|
@ -49,65 +37,41 @@ public interface IAcDrawRewardNumService extends IService<AcDrawRewardNum> {
|
|||
* 查询会员账户状态,账户信息
|
||||
*
|
||||
* @param cuMemberAccount 会员账户条件信息
|
||||
* @return: List<CuMemberAccountExt>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/5 11:57
|
||||
*/
|
||||
List<CuMemberAccountExt> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount);
|
||||
|
||||
/*
|
||||
* @description: 查询
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 15:14
|
||||
* @param: null null
|
||||
* 查询
|
||||
**/
|
||||
AcDrawRewardNumExt queryDrawRewardNumByCondition(AcDrawRewardNumParam acDrawRewardNumParam);
|
||||
|
||||
/*
|
||||
* @description: 支付抽奖次数
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 15:34
|
||||
* @param: null null
|
||||
* 支付抽奖次数
|
||||
**/
|
||||
void payDrawRewardNum(CuMemberAccountExt cuMemberAccountExt, Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
|
||||
|
||||
/*
|
||||
* @description: 在线支付确认生成待支付订单
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 17:54
|
||||
* @param: null null
|
||||
* 在线支付确认生成待支付订单
|
||||
**/
|
||||
String confirmDrawRewardPayNum(AcDrawRewardNumParam acDrawRewardNumParam, AcDrawRewardNumExt acDrawRewardNum);
|
||||
|
||||
/*
|
||||
* @description: 在线支付查询待支付金额
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 17:57
|
||||
* @param: null null
|
||||
* 在线支付查询待支付金额
|
||||
**/
|
||||
BigDecimal queryDrawRewardPayNumMoney(Long pkMember, String orderCode);
|
||||
|
||||
/*
|
||||
* @description: 抽奖在线支付购买次数
|
||||
* @author: sui q
|
||||
* @date: 2023/4/27 18:00
|
||||
* @param: null null
|
||||
* 抽奖在线支付购买次数
|
||||
**/
|
||||
Boolean callBackOnlinePay(Long pkMember, String orderCode);
|
||||
|
||||
/*
|
||||
* @description: 赠送抽奖次数
|
||||
* @author: sui q
|
||||
* @date: 2023/4/28 11:27
|
||||
* @param: null null
|
||||
* 赠送抽奖次数
|
||||
**/
|
||||
Boolean giveMemberDrawNum(SaOrderExt saOrderExt);
|
||||
|
||||
/*
|
||||
* @description: 撤单时回退抽奖次数
|
||||
* @author: sui q
|
||||
* @date: 2023/5/9 9:46
|
||||
* @param: null null
|
||||
* 撤单时回退抽奖次数
|
||||
**/
|
||||
Boolean backGiveMemberDrawNum(SaOrderExt saOrderExt);
|
||||
|
||||
|
|
@ -135,14 +99,6 @@ public interface IAcDrawRewardNumService extends IService<AcDrawRewardNum> {
|
|||
*/
|
||||
String approvalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* 修改已购买次数 审批驳回
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
* @return
|
||||
*/
|
||||
String approvalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* 充值未购买次数 (审批发起)
|
||||
*
|
||||
|
|
@ -151,17 +107,4 @@ public interface IAcDrawRewardNumService extends IService<AcDrawRewardNum> {
|
|||
*/
|
||||
void unpurchasedTimes(PurchasedTimesParam purchasedTimesParam);
|
||||
|
||||
/**
|
||||
* 充值已购买次数
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
*/
|
||||
void rechargePurchasedTimes(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* 充值未购买次数
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
*/
|
||||
void unRechargePurchasedTimes(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,9 +44,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 活动赠品配置 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
|
|
@ -186,7 +183,7 @@ public class AcDrawGiftRuleConfigServiceImpl extends ServiceImpl<AcDrawGiftRuleC
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String onLinePetition(AcRecommendParam recommendParam) {
|
||||
log.info("抽奖配置入参{}",JSONUtil.toJsonStr(recommendParam));
|
||||
log.info("抽奖配置入参{}", JSONUtil.toJsonStr(recommendParam));
|
||||
EApprovalBusiness approvalBusiness = null;
|
||||
if (recommendParam.getControlType().equals(EControlType.SAVE.getValue())) {
|
||||
approvalBusiness = EApprovalBusiness.LOTTERY_DRAW_ADD;
|
||||
|
|
@ -222,51 +219,6 @@ public class AcDrawGiftRuleConfigServiceImpl extends ServiceImpl<AcDrawGiftRuleC
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交审批
|
||||
*
|
||||
* @param recommendParam 抽奖参数
|
||||
*/
|
||||
public Boolean submitApproval(AcRecommendParam recommendParam, EApprovalBusiness approvalBusiness) {
|
||||
//保存审批日志
|
||||
AcApprovalLog approvalLog = saveApprovalLog(recommendParam, approvalBusiness);
|
||||
ApprovalSubmitDTO approvalSubmitDTO = ApprovalSubmitDTO.builder().eApprovalBusiness(approvalBusiness)
|
||||
.businessCode(approvalLog.getBusinessCode())
|
||||
.businessData(JSONObject.toJSONString(recommendParam)).fileList(recommendParam.getFileList())
|
||||
.signType(ESignType.getEnumByValue(recommendParam.getSignType())).userIdList(recommendParam.getUserIdList())
|
||||
.sendIdList(recommendParam.getSendIdList()).remark(recommendParam.getRemark()).build();
|
||||
R<String> submit = approvalServiceApi.submit(approvalSubmitDTO, recommendParam.getLoginUser());
|
||||
if (!submit.isSuccess()) {
|
||||
throw new RuntimeException("抽奖参数提交审批失败!");
|
||||
}
|
||||
|
||||
//添加操作日志
|
||||
StringBuffer str = new StringBuffer();
|
||||
Integer value = null;
|
||||
if (recommendParam.getControlType() == EControlType.SAVE.getValue()) {
|
||||
str.append(EControlType.SAVE.getLabel());
|
||||
value = EApprovalBusiness.LOTTERY_DRAW_ADD.getValue();
|
||||
}
|
||||
if (recommendParam.getControlType() == EControlType.MODIFY.getValue()) {
|
||||
str.append(EControlType.MODIFY.getLabel());
|
||||
value = EApprovalBusiness.LOTTERY_DRAW_UPDATE.getValue();
|
||||
}
|
||||
if (recommendParam.getControlType() == EControlType.DELETE.getValue()) {
|
||||
AcBaseConfig baseConfig = BeanUtil.copyProperties(recommendParam.getActivityParam(), AcBaseConfig.class);
|
||||
baseConfig.setPkCreator(approvalLog.getPkCreator());
|
||||
baseConfig.setPkCountry(recommendParam.getPkCountry());
|
||||
baseConfig.setBusinessCode(approvalLog.getBusinessCode());
|
||||
iActivityService.removeBaseConfigLog(baseConfig, str, null, EApprovalBusiness.LOTTERY_DRAW_REMOVE.getValue(), false);
|
||||
} else {
|
||||
ActivityParam activityParam = BeanUtil.copyProperties(recommendParam.getActivityParam(), ActivityParam.class);
|
||||
activityParam.setPkCreator(approvalLog.getPkCreator());
|
||||
activityParam.setPkCountry(recommendParam.getPkCountry());
|
||||
activityParam.setBusinessCode(approvalLog.getBusinessCode());
|
||||
iActivityService.createBaseConfigLog(activityParam, str, null, value, false);
|
||||
}
|
||||
return submit.isSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存活动审批日志信息
|
||||
*
|
||||
|
|
|
|||
|
|
@ -51,9 +51,6 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
/**
|
||||
* 会员可抽奖次数记录 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
|
|
@ -241,7 +238,7 @@ public class AcDrawRewardNumServiceImpl extends ServiceImpl<AcDrawRewardNumMappe
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void purchasedTimes(PurchasedTimesParam purchasedTimesParam) {
|
||||
log.info("修改已购买次数入参{}",JSONUtil.toJsonStr(purchasedTimesParam));
|
||||
log.info("修改已购买次数入参{}", JSONUtil.toJsonStr(purchasedTimesParam));
|
||||
String memberCode = purchasedTimesParam.getMemberCode();
|
||||
Integer num = purchasedTimesParam.getNum();
|
||||
Long pkBaseId = purchasedTimesParam.getPkBaseId();
|
||||
|
|
@ -359,27 +356,6 @@ public class AcDrawRewardNumServiceImpl extends ServiceImpl<AcDrawRewardNumMappe
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改已购买次数 审批驳回
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String approvalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO) {
|
||||
R<CuMemberServiceLog> cuMemberServiceLogR = memberServiceLogServiceApi.selectByBusinessNo(approvalBusinessResultDTO.getBusinessCode());
|
||||
|
||||
if (null == cuMemberServiceLogR) {
|
||||
log.error("修改已购买次数失败: 签呈不存在!");
|
||||
return TransactionUtils.getContent(CommonMsgConstants.APPROVAL_NOT_EXIST);
|
||||
}
|
||||
// 更新 日志
|
||||
CuMemberServiceLog memberServiceLog = cuMemberServiceLogR.getData();
|
||||
memberServiceLog.setApproveStatus(EApproveStatus.REJECTED.getValue());
|
||||
memberServiceLogServiceApi.updateByBusinessNo(memberServiceLog);
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改未购买次数 (审批发起)
|
||||
*
|
||||
|
|
@ -388,7 +364,7 @@ public class AcDrawRewardNumServiceImpl extends ServiceImpl<AcDrawRewardNumMappe
|
|||
*/
|
||||
@Override
|
||||
public void unpurchasedTimes(PurchasedTimesParam purchasedTimesParam) {
|
||||
log.info("修改未购买次数入参{}",JSONUtil.toJsonStr(purchasedTimesParam));
|
||||
log.info("修改未购买次数入参{}", JSONUtil.toJsonStr(purchasedTimesParam));
|
||||
String memberCode = purchasedTimesParam.getMemberCode();
|
||||
Integer num = purchasedTimesParam.getNum();
|
||||
Long pkBaseId = purchasedTimesParam.getPkBaseId();
|
||||
|
|
@ -414,76 +390,6 @@ public class AcDrawRewardNumServiceImpl extends ServiceImpl<AcDrawRewardNumMappe
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 充值已购买次数
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
*/
|
||||
@Override
|
||||
public void rechargePurchasedTimes(ApprovalBusinessResultDTO approvalBusinessResultDTO) {
|
||||
String businessData = approvalBusinessResultDTO.getBusinessData();
|
||||
JSONObject js = JSONObject.parseObject(businessData);
|
||||
String memberCode = js.getString("memberCode");
|
||||
Integer num = js.getInteger("num");
|
||||
Long pkBaseId = js.getLong("pkBaseId");
|
||||
R<CuMember> memberDto = memberServiceApi.getMember(memberCode);
|
||||
Long pkMember = memberDto.getData().getPkId();
|
||||
|
||||
LambdaQueryWrapper<AcDrawRewardNum> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AcDrawRewardNum::getPkBaseId, pkBaseId);
|
||||
queryWrapper.eq(AcDrawRewardNum::getPkMember, pkMember);
|
||||
AcDrawRewardNum drawRewardNum = this.getOne(queryWrapper);
|
||||
if (drawRewardNum != null) {
|
||||
baseMapper.updatePurchasedTimesByBaseId(pkMember, num, pkBaseId);
|
||||
} else {
|
||||
drawRewardNum = new AcDrawRewardNum();
|
||||
drawRewardNum.setPkBaseId(pkBaseId);
|
||||
drawRewardNum.setPkMember(pkMember);
|
||||
drawRewardNum.setTotalUsedNum(num);
|
||||
drawRewardNum.setAvailableNum(num);
|
||||
drawRewardNum.setTotalNum(num);
|
||||
drawRewardNum.setAvailableSurplusNum(num);
|
||||
drawRewardNum.setCreationTime(DateUtils.currentDateTime());
|
||||
drawRewardNum.setPkCreator(memberDto.getData().getPkCreator());
|
||||
drawRewardNum.setPkCountry(memberDto.getData().getPkCountry());
|
||||
this.save(drawRewardNum);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 充值未购买次数
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
*/
|
||||
@Override
|
||||
public void unRechargePurchasedTimes(ApprovalBusinessResultDTO approvalBusinessResultDTO) {
|
||||
String businessData = approvalBusinessResultDTO.getBusinessData();
|
||||
JSONObject js = JSONObject.parseObject(businessData);
|
||||
String memberCode = js.getString("memberCode");
|
||||
Integer num = js.getInteger("num");
|
||||
Long pkBaseId = js.getLong("pkBaseId");
|
||||
R<CuMember> memberDto = memberServiceApi.getMember(memberCode);
|
||||
Long pkMember = memberDto.getData().getPkId();
|
||||
|
||||
LambdaQueryWrapper<AcDrawRewardNum> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AcDrawRewardNum::getPkBaseId, pkBaseId);
|
||||
queryWrapper.eq(AcDrawRewardNum::getPkMember, pkMember);
|
||||
AcDrawRewardNum drawRewardNum = this.getOne(queryWrapper);
|
||||
if (drawRewardNum != null) {
|
||||
baseMapper.updateUnpurchasedTimesByPkbaseId(pkMember, num, pkBaseId);
|
||||
} else {
|
||||
drawRewardNum = new AcDrawRewardNum();
|
||||
drawRewardNum.setPkBaseId(pkBaseId);
|
||||
drawRewardNum.setPkMember(pkMember);
|
||||
drawRewardNum.setTotalNum(num);
|
||||
drawRewardNum.setTotalSurplusNum(num);
|
||||
drawRewardNum.setCreationTime(DateUtils.currentDateTime());
|
||||
drawRewardNum.setPkCreator(memberDto.getData().getPkCreator());
|
||||
drawRewardNum.setPkCountry(memberDto.getData().getPkCountry());
|
||||
this.save(drawRewardNum);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改已购买总次数 (已购买次数)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -44,11 +44,7 @@ import java.util.List;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @Description: 会员端提货处理控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/4/24 13:55
|
||||
* @Classname: ApiPickController
|
||||
* @PackageName: com.hzs.activity.pick.controller.api
|
||||
* 会员端提货处理控制器
|
||||
*/
|
||||
@RequestMapping("/api/pick")
|
||||
@RestController
|
||||
|
|
|
|||
|
|
@ -95,11 +95,7 @@ public interface AcPickMapper extends BaseMapper<AcPick> {
|
|||
int updatePickByPkId(@Param("acPick") AcPick acPick);
|
||||
|
||||
/**
|
||||
* @description: 删除充值提货卡
|
||||
* @author: zhang jing
|
||||
* @date: 2023/10/26 13:45
|
||||
* @param: [acPick]
|
||||
* @return: boolean
|
||||
* 删除充值提货卡
|
||||
**/
|
||||
boolean removePickByPkId(@Param("acPick") AcPick acPick);
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.hzs.activity.pick.vo.ApiPickListVO;
|
|||
import com.hzs.common.domain.activity.pick.AcPick;
|
||||
import com.hzs.common.domain.activity.pick.AcPickMemberLog;
|
||||
import com.hzs.common.domain.activity.pick.ext.AcPickExt;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -92,27 +91,6 @@ public interface IAcPickService extends IService<AcPick> {
|
|||
**/
|
||||
boolean delPick(AcPickSaveParam anpParam);
|
||||
|
||||
/**
|
||||
* 提货变动审批通过
|
||||
*
|
||||
* @param resultDTO
|
||||
* @return
|
||||
*/
|
||||
String pickApprovalAgree(ApprovalBusinessResultDTO resultDTO);
|
||||
|
||||
/**
|
||||
* @description: 审核删除充值提货卡
|
||||
**/
|
||||
String delpickApprovalAgree(ApprovalBusinessResultDTO resultDTO);
|
||||
|
||||
/**
|
||||
* 提货变动审批驳回
|
||||
*
|
||||
* @param resultDTO
|
||||
* @return
|
||||
*/
|
||||
String pickApprovalReject(ApprovalBusinessResultDTO resultDTO);
|
||||
|
||||
/**
|
||||
* 会员提货列表
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.hzs.activity.pick.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.hzs.activity.base.service.IAcApprovalLogService;
|
||||
|
|
@ -15,14 +14,12 @@ import com.hzs.activity.pick.vo.ApiPickListVO;
|
|||
import com.hzs.activity.wares.service.IAcGiftConfigService;
|
||||
import com.hzs.common.core.constant.RabbitMqConstants;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.constant.msg.ActivityMsgConstants;
|
||||
import com.hzs.common.core.constant.msg.DocumentMsgConstants;
|
||||
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.domain.activity.base.AcApprovalLog;
|
||||
import com.hzs.common.domain.activity.base.AcPickUpConfig;
|
||||
import com.hzs.common.domain.activity.base.ext.AcGiftConfigExt;
|
||||
import com.hzs.common.domain.activity.pick.AcPick;
|
||||
|
|
@ -36,7 +33,6 @@ import com.hzs.member.base.IMemberServiceApi;
|
|||
import com.hzs.sale.postage.IPostageServiceApi;
|
||||
import com.hzs.sale.postage.dto.PostageProductDTO;
|
||||
import com.hzs.sale.product.service.IBdProductService;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import com.hzs.system.sys.dto.BusinessLogDTO;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -57,8 +53,6 @@ import java.util.stream.Collectors;
|
|||
@Service
|
||||
public class AcPickServiceImpl extends ServiceImpl<AcPickMapper, AcPick> implements IAcPickService {
|
||||
|
||||
@Autowired
|
||||
private IAcApprovalLogService iAcApprovalLogService;
|
||||
@Autowired
|
||||
private IAcPickLogService iAcPickLogService;
|
||||
@Autowired
|
||||
|
|
@ -189,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;
|
||||
// 提货类型
|
||||
|
|
@ -363,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()) {
|
||||
|
|
@ -474,227 +468,6 @@ public class AcPickServiceImpl extends ServiceImpl<AcPickMapper, AcPick> impleme
|
|||
return true;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public String pickApprovalAgree(ApprovalBusinessResultDTO resultDTO) {
|
||||
// 用户ID
|
||||
Long userId = resultDTO.getLoginUser().getUserId();
|
||||
// 所属国家
|
||||
Integer pkCountry = resultDTO.getLoginUser().getDataCountry();
|
||||
|
||||
List<AcApprovalLog> approvalLogList = iAcApprovalLogService.queryApprovalLogList(resultDTO.getEApprovalBusiness(), resultDTO.getBusinessCode(), pkCountry);
|
||||
// 一批审批可能有多个
|
||||
AcApprovalLog approvalLog = approvalLogList.get(0);
|
||||
if (null == approvalLog) {
|
||||
log.error("提货充值同意处理失败: 签呈不存在!");
|
||||
return TransactionUtils.getContent(ActivityMsgConstants.PICK_NOT_EXIST);
|
||||
}
|
||||
if (EAgentApprovalStatus.UNAPPROVED.getValue() != approvalLog.getApprovalStatus()) {
|
||||
log.error("提货充值同意处理失败: 签呈已处理");
|
||||
return TransactionUtils.getContent(ActivityMsgConstants.PICK_PROCESSED);
|
||||
}
|
||||
|
||||
// 新増提货列表
|
||||
List<AcPick> createList = new ArrayList<>();
|
||||
// 修改提货列表
|
||||
List<AcPick> updateList = new ArrayList<>();
|
||||
|
||||
for (AcApprovalLog acApprovalLog : approvalLogList) {
|
||||
// 存在业务ID,则为修改
|
||||
AcPickSaveDetailParam detailParam = JSONUtil.toBean(acApprovalLog.getAfterData(), AcPickSaveDetailParam.class);
|
||||
// 当前会员
|
||||
CuMember cuMember = iMemberServiceApi.getMember(detailParam.getMemberCode()).getData();
|
||||
// 提货ID
|
||||
Long pickId = null;
|
||||
// 提货类型
|
||||
Integer pickType = null != detailParam.getPickType() ? detailParam.getPickType() : EPickType.PICK_PRODUCT.getValue();
|
||||
|
||||
if (null == detailParam.getPkId()) {
|
||||
LambdaQueryWrapper<AcPick> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AcPick::getPickType, pickType);
|
||||
queryWrapper.eq(AcPick::getPkBaseConfig, 0);
|
||||
queryWrapper.eq(AcPick::getPkDataId, detailParam.getPkProduct());
|
||||
queryWrapper.eq(AcPick::getSpecsNameId, detailParam.getSpecsNameId());
|
||||
queryWrapper.eq(AcPick::getPkMember, cuMember.getPkId());
|
||||
AcPick acPick = this.getOne(queryWrapper);
|
||||
if (null != acPick) {
|
||||
pickId = acPick.getPkId();
|
||||
}
|
||||
} else {
|
||||
pickId = detailParam.getPkId();
|
||||
}
|
||||
|
||||
AcPick acPick = new AcPick();
|
||||
if (null == pickId) {
|
||||
// 新增提货数据
|
||||
acPick.setPkMember(cuMember.getPkId());
|
||||
acPick.setPickType(pickType);
|
||||
acPick.setPkDataId(detailParam.getPkProduct().longValue());
|
||||
acPick.setSpecsName(detailParam.getSpecsName());
|
||||
acPick.setSpecsNameId(detailParam.getSpecsNameId());
|
||||
acPick.setUsableQuantity(detailParam.getQuantity());
|
||||
acPick.setBaseQuantity(detailParam.getBaseQuantity());
|
||||
acPick.setReceiveTime(detailParam.getReceiveTime());
|
||||
acPick.setIsFreeMail(detailParam.getIsFreeMail());
|
||||
acPick.setPkPostage(detailParam.getPkPostage());
|
||||
acPick.setPkCreator(userId);
|
||||
acPick.setPkCountry(pkCountry);
|
||||
createList.add(acPick);
|
||||
} else {
|
||||
// 修改提货数据
|
||||
acPick.setPkId(pickId);
|
||||
acPick.setUsableQuantity(detailParam.getQuantity());
|
||||
acPick.setBaseQuantity(detailParam.getBaseQuantity());
|
||||
acPick.setReceiveTime(detailParam.getReceiveTime());
|
||||
acPick.setIsFreeMail(detailParam.getIsFreeMail());
|
||||
acPick.setPkPostage(detailParam.getPkPostage());
|
||||
acPick.setPkModified(userId);
|
||||
acPick.setModifiedTime(new Date());
|
||||
updateList.add(acPick);
|
||||
}
|
||||
}
|
||||
|
||||
if (iAcApprovalLogService.updateApprovalLog(resultDTO.getEApprovalBusiness(), resultDTO.getBusinessCode(), pkCountry, userId, EApproveRechargeStatus.AGREE, resultDTO.getApproveRemark())) {
|
||||
// 更新修改记录
|
||||
|
||||
// 提货操作日志
|
||||
List<AcPickLog> logList = new ArrayList<>();
|
||||
|
||||
// 插入提货数据
|
||||
if (CollectionUtil.isNotEmpty(createList)) {
|
||||
for (AcPick acPick : createList) {
|
||||
this.baseMapper.insert(acPick);
|
||||
|
||||
AcPickLog acPickLog = new AcPickLog();
|
||||
acPickLog.setPkPick(acPick.getPkId());
|
||||
acPickLog.setQuantity(acPick.getUsableQuantity());
|
||||
acPickLog.setPkUser(userId);
|
||||
acPickLog.setPkCountry(pkCountry);
|
||||
logList.add(acPickLog);
|
||||
}
|
||||
}
|
||||
// 更新提货数据
|
||||
if (CollectionUtil.isNotEmpty(updateList)) {
|
||||
for (AcPick acPick : updateList) {
|
||||
this.baseMapper.updatePickByPkId(acPick);
|
||||
|
||||
AcPickLog acPickLog = new AcPickLog();
|
||||
acPickLog.setPkPick(acPick.getPkId());
|
||||
acPickLog.setQuantity(acPick.getUsableQuantity());
|
||||
acPickLog.setPkUser(userId);
|
||||
acPickLog.setPkCountry(pkCountry);
|
||||
logList.add(acPickLog);
|
||||
}
|
||||
}
|
||||
// 插入提货操作日志
|
||||
iAcPickLogService.insertBatch(logList);
|
||||
|
||||
return null;
|
||||
}
|
||||
log.error("提货充值同意处理失败: 更新数据失败");
|
||||
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_ERROR);
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public String delpickApprovalAgree(ApprovalBusinessResultDTO resultDTO) {
|
||||
// 用户ID
|
||||
Long userId = resultDTO.getLoginUser().getUserId();
|
||||
// 所属国家
|
||||
Integer pkCountry = resultDTO.getLoginUser().getDataCountry();
|
||||
|
||||
List<AcApprovalLog> approvalLogList = iAcApprovalLogService.queryApprovalLogList(resultDTO.getEApprovalBusiness(), resultDTO.getBusinessCode(), pkCountry);
|
||||
// 一批审批可能有多个
|
||||
AcApprovalLog approvalLog = approvalLogList.get(0);
|
||||
if (null == approvalLog) {
|
||||
log.error("提货充值同意处理失败: 签呈不存在!");
|
||||
return TransactionUtils.getContent(ActivityMsgConstants.PICK_NOT_EXIST);
|
||||
}
|
||||
if (EAgentApprovalStatus.UNAPPROVED.getValue() != approvalLog.getApprovalStatus()) {
|
||||
log.error("提货充值同意处理失败: 签呈已处理");
|
||||
return TransactionUtils.getContent(ActivityMsgConstants.PICK_PROCESSED);
|
||||
}
|
||||
|
||||
// 删除提货列表
|
||||
List<AcPick> updateList = new ArrayList<>();
|
||||
|
||||
for (AcApprovalLog acApprovalLog : approvalLogList) {
|
||||
// 存在业务ID,则为修改
|
||||
AcPickSaveDetailParam detailParam = JSONUtil.toBean(acApprovalLog.getAfterData(), AcPickSaveDetailParam.class);
|
||||
// 当前会员
|
||||
CuMember cuMember = iMemberServiceApi.getMember(detailParam.getMemberCode()).getData();
|
||||
// 提货ID
|
||||
Long pickId = null;
|
||||
if (null == detailParam.getPkId()) {
|
||||
LambdaQueryWrapper<AcPick> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AcPick::getPickType, EPickType.PICK_PRODUCT.getValue());
|
||||
queryWrapper.eq(AcPick::getPkBaseConfig, 0);
|
||||
queryWrapper.eq(AcPick::getPkDataId, detailParam.getPkProduct());
|
||||
queryWrapper.eq(AcPick::getPkMember, cuMember.getPkId());
|
||||
AcPick acPick = this.getOne(queryWrapper);
|
||||
if (null != acPick) {
|
||||
pickId = acPick.getPkId();
|
||||
}
|
||||
} else {
|
||||
pickId = detailParam.getPkId();
|
||||
}
|
||||
|
||||
AcPick acPick = new AcPick();
|
||||
if (null != pickId) {
|
||||
// 删除提货数据
|
||||
acPick.setPkId(pickId);
|
||||
acPick.setPkModified(userId);
|
||||
acPick.setModifiedTime(new Date());
|
||||
updateList.add(acPick);
|
||||
} else {
|
||||
log.error("提货充值同意处理失败: 更新数据失败");
|
||||
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
if (iAcApprovalLogService.updateApprovalLog(resultDTO.getEApprovalBusiness(), resultDTO.getBusinessCode(), pkCountry, userId, EApproveRechargeStatus.AGREE, resultDTO.getApproveRemark())) {
|
||||
// 更新修改记录
|
||||
|
||||
// 更新提货数据
|
||||
if (CollectionUtil.isNotEmpty(updateList)) {
|
||||
for (AcPick acPick : updateList) {
|
||||
this.baseMapper.removePickByPkId(acPick);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
log.error("提货充值同意处理失败: 更新数据失败");
|
||||
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_ERROR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String pickApprovalReject(ApprovalBusinessResultDTO resultDTO) {
|
||||
// 用户ID
|
||||
Long userId = resultDTO.getLoginUser().getUserId();
|
||||
// 所属国家
|
||||
Integer pkCountry = resultDTO.getLoginUser().getDataCountry();
|
||||
|
||||
List<AcApprovalLog> approvalLogList = iAcApprovalLogService.queryApprovalLogList(resultDTO.getEApprovalBusiness(), resultDTO.getBusinessCode(), pkCountry);
|
||||
// 一批审批可能有多个
|
||||
AcApprovalLog approvalLog = approvalLogList.get(0);
|
||||
if (null == approvalLog) {
|
||||
log.error("提货充值驳回处理失败: 签呈不存在!");
|
||||
return TransactionUtils.getContent(ActivityMsgConstants.PICK_NOT_EXIST);
|
||||
}
|
||||
if (EAgentApprovalStatus.UNAPPROVED.getValue() != approvalLog.getApprovalStatus()) {
|
||||
log.error("提货充值驳回处理失败: 签呈已处理");
|
||||
return TransactionUtils.getContent(ActivityMsgConstants.PICK_PROCESSED);
|
||||
}
|
||||
|
||||
if (iAcApprovalLogService.updateApprovalLog(resultDTO.getEApprovalBusiness(), resultDTO.getBusinessCode(), pkCountry, userId, EApproveRechargeStatus.REJECT, resultDTO.getApproveRemark())) {
|
||||
return null;
|
||||
}
|
||||
log.error("提货充值驳回处理失败: 更新数据失败");
|
||||
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_ERROR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ApiPickListVO> pickList(Long pkMember, Integer pkCountry) {
|
||||
return baseMapper.pickList(pkMember, pkCountry);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,12 @@ 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.AcDirectPushUpgradeListVO;
|
||||
import com.hzs.activity.recommend.vo.AcRecommendVO;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.enums.EActType;
|
||||
|
|
@ -14,6 +18,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 +40,8 @@ public class AcRecommendConfigController extends BaseController {
|
|||
IAcRepurCouponsRuleConfigService acRepurCouponsRuleConfigService;
|
||||
@Autowired
|
||||
private UserTokenService userTokenService;
|
||||
@Autowired
|
||||
private IAcRecomUpgradeRecordService iAcRecomUpgradeRecordService;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -56,6 +63,44 @@ 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)
|
||||
@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_LIST, business = EOperationBusiness.AC_DIRECT_PUSH_UPGRADE_LIST, method = EOperationMethod.SELECT)
|
||||
@GetMapping("/directPushUpgradeList")
|
||||
public TableDataInfo directPushUpgradeList(AcDirectPushUpgradeListParam param) {
|
||||
startPage();
|
||||
return getDataTable(iAcRecomUpgradeRecordService.queryList(param));
|
||||
}
|
||||
|
||||
@Log(module = EOperationModule.AC_DIRECT_PUSH_UPGRADE_LIST, business = EOperationBusiness.AC_DIRECT_PUSH_UPGRADE_LIST, method = EOperationMethod.SELECT)
|
||||
@PostMapping("/directPushUpgradeExport")
|
||||
public void export(AcDirectPushUpgradeListParam param, HttpServletResponse response) {
|
||||
startPage();
|
||||
List<AcDirectPushUpgradeListVO> list = iAcRecomUpgradeRecordService.queryList(param);
|
||||
ExcelUtil<AcDirectPushUpgradeListVO> util = new ExcelUtil<>(AcDirectPushUpgradeListVO.class);
|
||||
util.exportExcel(response, list, "直推升级数据导出");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 直推赠送查看详情
|
||||
|
|
|
|||
|
|
@ -1,39 +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
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/4/26 10:27
|
||||
* @Classname: AcRepurchaseCouponsDTO
|
||||
* @Package_name: com.hzs.activity.recommend.dto
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AcRecommendUpgrade implements Serializable {
|
||||
private static final long serialVersionUID = 9005728656479475728L;
|
||||
|
||||
/**
|
||||
* 订单信息
|
||||
*/
|
||||
private SaOrderExt saOrderExt;
|
||||
|
||||
/**
|
||||
* 订单操作状态
|
||||
*/
|
||||
private EOrderOperateStatus orderOperateStatus;
|
||||
|
||||
}
|
||||
|
|
@ -1,16 +1,18 @@
|
|||
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;
|
||||
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 +32,14 @@ public interface AcRecomUpgradeRecordMapper extends BaseMapper<AcRecomUpgradeRec
|
|||
*/
|
||||
List<Long> selectRecommendNumber(AcRecomUpgradeRecordExt upgradeRecord);
|
||||
|
||||
/**
|
||||
* 判断会员是否达标并且查询对应订单
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 复购均分配置 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
public interface AcRepurSharRuleConfigMapper extends BaseMapper<AcRepurSharRuleConfig> {
|
||||
|
||||
|
|
@ -27,12 +24,4 @@ public interface AcRepurSharRuleConfigMapper extends BaseMapper<AcRepurSharRuleC
|
|||
Integer deleteSharRuleConfigByActivityId(@Param("orderTypeList") List<Integer> orderTypeList,
|
||||
@Param("activityId") Long activityId, @Param("pkModifyId") Long pkModifyId);
|
||||
|
||||
/*
|
||||
* @description: 查询复购券均分收益
|
||||
* @author: sui q
|
||||
* @date: 2023/5/5 16:29
|
||||
* @param: null null
|
||||
**/
|
||||
List<AcRepurSharRuleConfigExt> queryRepurSharRuleConfig(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -17,12 +17,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 直推赠送参数
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/4/24 11:14
|
||||
* @Classname: AcRecommendParam
|
||||
* @Package_name: com.hzs.activity.recommend.param
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -1,16 +1,18 @@
|
|||
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;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 推荐升级业务表 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-27
|
||||
*/
|
||||
public interface IAcRecomUpgradeRecordService extends IService<AcRecomUpgradeRecord> {
|
||||
|
||||
|
|
@ -31,7 +33,6 @@ public interface IAcRecomUpgradeRecordService extends IService<AcRecomUpgradeRec
|
|||
*/
|
||||
AcRecomUpgradeRecord selectUpgradeRecordByOrderId(AcRecomUpgradeRecordExt upgradeRecord);
|
||||
|
||||
|
||||
/**
|
||||
* 查询推荐的人数
|
||||
*
|
||||
|
|
@ -49,4 +50,10 @@ public interface IAcRecomUpgradeRecordService extends IService<AcRecomUpgradeRec
|
|||
*/
|
||||
Boolean updateUpgradeStatusById(List<Long> pkIds, Long pkModified, Integer upGradeStatus);
|
||||
|
||||
/**
|
||||
* 判断会员是否达标并且查询对应订单
|
||||
*/
|
||||
List<SaOrder> listRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime);
|
||||
|
||||
List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* 根据活动配置主键删除推荐升级配置
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -53,18 +54,12 @@ public interface IAcRepurCouponsRuleConfigService extends IService<AcRepurCoupon
|
|||
*/
|
||||
String approvalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* @param approvalBusinessResultDTO 业务审批操作DTO
|
||||
* @return String
|
||||
*/
|
||||
String approvalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* 调用直推升级(对外提供接口)
|
||||
*
|
||||
* @param acRepurchaseCouponsDTO 直推升级信息
|
||||
* @param acRecommendUpgrade 直推升级信息
|
||||
*/
|
||||
Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRepurchaseCouponsDTO);
|
||||
Boolean invokeRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade);
|
||||
|
||||
/**
|
||||
* 查询目前所有启用的复购券规则
|
||||
|
|
@ -80,5 +75,6 @@ public interface IAcRepurCouponsRuleConfigService extends IService<AcRepurCoupon
|
|||
*/
|
||||
Boolean deleteCouponsRuleConfigByBaseId(Long pkBaseId, Long pkModifyId);
|
||||
|
||||
String directPushUpgradeSubmit(AcDirectPushUpgradeParam acDirectPushUpgradeParam);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,16 +2,9 @@ package com.hzs.activity.recommend.service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.activity.recommend.AcRepurSharRuleConfig;
|
||||
import com.hzs.common.domain.activity.recommend.ext.AcRepurSharRuleConfigExt;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 复购均分配置 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
public interface IAcRepurSharRuleConfigService extends IService<AcRepurSharRuleConfig> {
|
||||
|
||||
|
|
@ -33,12 +26,4 @@ public interface IAcRepurSharRuleConfigService extends IService<AcRepurSharRuleC
|
|||
*/
|
||||
Boolean deleteSharRuleConfigByActivityId(Long activityId, Long pkModifyId);
|
||||
|
||||
/*
|
||||
* @description: 查询复购券均分收益
|
||||
* @author: sui q
|
||||
* @date: 2023/5/5 16:29
|
||||
* @param: null null
|
||||
**/
|
||||
List<AcRepurSharRuleConfigExt> queryRepurSharRuleConfig(Date startDate, Date endDate);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,22 +1,27 @@
|
|||
package com.hzs.activity.recommend.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
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.enums.EGrade;
|
||||
import com.hzs.common.core.utils.bean.BeanUtils;
|
||||
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;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 推荐升级业务表 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-27
|
||||
*/
|
||||
@Service
|
||||
public class AcRecomUpgradeRecordServiceImpl extends ServiceImpl<AcRecomUpgradeRecordMapper, AcRecomUpgradeRecord> implements IAcRecomUpgradeRecordService {
|
||||
|
|
@ -50,4 +55,14 @@ public class AcRecomUpgradeRecordServiceImpl extends ServiceImpl<AcRecomUpgradeR
|
|||
return this.update(updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.*;
|
||||
|
|
@ -24,6 +24,7 @@ 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;
|
||||
|
|
@ -36,9 +37,7 @@ import com.hzs.common.domain.sale.order.SaOrder;
|
|||
import com.hzs.common.service.ITransactionCommonService;
|
||||
import com.hzs.member.base.IMemberServiceApi;
|
||||
import com.hzs.sale.product.IProductServiceApi;
|
||||
import com.hzs.system.sys.IApprovalServiceApi;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import com.hzs.system.sys.dto.ApprovalSubmitDTO;
|
||||
import com.hzs.system.sys.dto.BusinessLogDTO;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -59,34 +58,31 @@ 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 IAcGoalMemberConfigService acGoalMemberConfigService;
|
||||
@Autowired
|
||||
IAcGoalMemberConfigService acGoalMemberConfigService;
|
||||
private IAcRepurSharOrderTypeService acRepurSharOrderTypeService;
|
||||
@Autowired
|
||||
IAcRepurSharOrderTypeService acRepurSharOrderTypeService;
|
||||
private IAcRepurSharRuleConfigService acRepurSharRuleConfigService;
|
||||
@Autowired
|
||||
IAcRepurSharRuleConfigService acRepurSharRuleConfigService;
|
||||
@Autowired
|
||||
IAcBaseAuthorityService iAcBaseAuthorityService;
|
||||
private IAcBaseAuthorityService iAcBaseAuthorityService;
|
||||
|
||||
@DubboReference
|
||||
IApprovalServiceApi approvalServiceApi;
|
||||
IMemberServiceApi iMemberServiceApi;
|
||||
@DubboReference
|
||||
IMemberServiceApi memberServiceApi;
|
||||
@DubboReference
|
||||
IProductServiceApi productServiceApi;
|
||||
IProductServiceApi iProductServiceApi;
|
||||
|
||||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
|
@ -97,7 +93,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String onLinePetition(AcRecommendParam recommendParam) {
|
||||
log.info("直推参数{}",JSONUtil.toJsonStr(recommendParam));
|
||||
log.info("直推参数{}", JSONUtil.toJsonStr(recommendParam));
|
||||
EApprovalBusiness approvalBusiness = EApprovalBusiness.DIRECT_PUSH_GIFT;
|
||||
//根据产品ID查询产品名称
|
||||
List<AcRecommendUpgradeVO> recommendUpgradeList = recommendParam.getRecommendUpgradeList();
|
||||
|
|
@ -108,7 +104,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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -204,23 +200,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String approvalReject(ApprovalBusinessResultDTO businessResult) {
|
||||
EApprovalBusiness eApprovalBusiness = businessResult.getEApprovalBusiness();
|
||||
String businessCode = businessResult.getBusinessCode();
|
||||
LoginUser loginUser = businessResult.getLoginUser();
|
||||
AcApprovalLog approvalLog = acApprovalLogService.queryApprovalLog(eApprovalBusiness, businessCode, loginUser.getDataCountry());
|
||||
if (null == approvalLog) {
|
||||
return "审批数据不存在!";
|
||||
}
|
||||
//更新审批状态
|
||||
acApprovalLogService.updateApprovalLog(eApprovalBusiness, businessCode, loginUser.getDataCountry(),
|
||||
loginUser.getUserId(), EApproveRechargeStatus.REJECT, businessResult.getApproveRemark());
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存直推赠送数据
|
||||
*
|
||||
|
|
@ -251,7 +230,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)
|
||||
|
|
@ -267,7 +246,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();
|
||||
|
|
@ -425,7 +404,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);
|
||||
}
|
||||
|
|
@ -433,26 +412,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 提交审批
|
||||
*
|
||||
* @param recommendParam 直推赠送参数
|
||||
*/
|
||||
public Boolean submitApproval(AcRecommendParam recommendParam, EApprovalBusiness approvalBusiness, String businessCode) {
|
||||
//保存审批日志
|
||||
AcApprovalLog approvalLog = saveApprovalLog(recommendParam, approvalBusiness, businessCode);
|
||||
ApprovalSubmitDTO approvalSubmitDTO = ApprovalSubmitDTO.builder().eApprovalBusiness(approvalBusiness)
|
||||
.businessCode(approvalLog.getBusinessCode())
|
||||
.signType(ESignType.getEnumByValue(recommendParam.getSignType())).userIdList(recommendParam.getUserIdList())
|
||||
.sendIdList(recommendParam.getSendIdList()).remark(recommendParam.getRemark()).build();
|
||||
R<String> submit = approvalServiceApi.submit(approvalSubmitDTO, recommendParam.getLoginUser());
|
||||
if (!submit.isSuccess()) {
|
||||
throw new RuntimeException("直推赠送提交审批失败!");
|
||||
}
|
||||
return submit.isSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存活动审批日志信息
|
||||
*
|
||||
|
|
@ -512,7 +471,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);
|
||||
|
|
@ -527,7 +486,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);
|
||||
|
|
@ -619,27 +578,201 @@ 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);
|
||||
if (CollUtil.isNotEmpty(acBaseConfigs)) {
|
||||
EOrderOperateStatus orderOperateStatus = acRepurchaseCouponsDTO.getOrderOperateStatus();
|
||||
for (AcBaseConfig baseConfig : acBaseConfigs) {
|
||||
if (orderOperateStatus.equals(EOrderOperateStatus.NORMAL)) {
|
||||
result = handleBusiness(acRepurchaseCouponsDTO, baseConfig);
|
||||
} else {
|
||||
result = cancelOrder(acRepurchaseCouponsDTO, baseConfig);
|
||||
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 {
|
||||
// 撤单处理
|
||||
handleCancelRecommendUpgrade(acRecommendUpgrade);
|
||||
}
|
||||
return result;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 下单处理
|
||||
*/
|
||||
private void handleRecommendUpgrade(AcRecommendUpgradeDTO 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;
|
||||
}
|
||||
List<SaOrder> recomOrderList = iAcRecomUpgradeRecordService.listRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime);
|
||||
// 校验推荐人是否可以升级
|
||||
if (CollectionUtil.isEmpty(recomOrderList)
|
||||
|| recomOrderList.size() != upgradeRuleConfig.getRecommendNumber()) {
|
||||
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 void handleCancelRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade) {
|
||||
Date nowDate = new Date();
|
||||
// 订单信息
|
||||
SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
|
||||
// 订单ID
|
||||
Long pkOrderId = saOrderExt.getPkId();
|
||||
// 推荐人
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验活动权限(true:进行处理,false:不进行处理)
|
||||
*
|
||||
|
|
@ -667,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:
|
||||
}
|
||||
}
|
||||
|
|
@ -705,157 +822,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<>();
|
||||
|
|
@ -866,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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,17 +7,12 @@ import com.hzs.activity.recommend.mapper.AcRepurSharRuleConfigMapper;
|
|||
import com.hzs.activity.recommend.service.IAcRepurSharRuleConfigService;
|
||||
import com.hzs.common.core.enums.EDelFlag;
|
||||
import com.hzs.common.domain.activity.recommend.AcRepurSharRuleConfig;
|
||||
import com.hzs.common.domain.activity.recommend.ext.AcRepurSharRuleConfigExt;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 复购均分配置 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
@Service
|
||||
public class AcRepurSharRuleConfigServiceImpl extends ServiceImpl<AcRepurSharRuleConfigMapper, AcRepurSharRuleConfig> implements IAcRepurSharRuleConfigService {
|
||||
|
|
@ -39,8 +34,4 @@ public class AcRepurSharRuleConfigServiceImpl extends ServiceImpl<AcRepurSharRul
|
|||
return update(updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AcRepurSharRuleConfigExt> queryRepurSharRuleConfig(Date startDate, Date endDate) {
|
||||
return baseMapper.queryRepurSharRuleConfig(startDate, endDate);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date actStartDate;
|
||||
|
||||
/**
|
||||
* 活动结束时间
|
||||
*/
|
||||
@Excel(name = "活动结束时间", dateFormat = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date actEndDate;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
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
|
||||
|
|
|
|||
|
|
@ -11,19 +11,12 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 直推赠送模块VO
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/4/22 11:01
|
||||
* @Classname: AcRecommendUpgradeVO
|
||||
* @Package_name: com.hzs.activity.recommend.vo
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@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
|
||||
|
|
|
|||
|
|
@ -10,17 +10,11 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 商品买赠规则配置表 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
public interface AcWaresRuleConfigMapper extends BaseMapper<AcWaresRuleConfig> {
|
||||
|
||||
/*
|
||||
* @description: 查询买赠活动赠品配置根据条件
|
||||
* @author: sui q
|
||||
* @date: 2023/4/25 19:26
|
||||
* @param: null null
|
||||
* 查询买赠活动赠品配置根据条件
|
||||
**/
|
||||
List<AcWaresRuleConfigExt> queryWaresGiftConfigByCondition(@Param("giftConfigParam") GiftConfigParam giftConfigParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,17 +12,11 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 商品买赠规则配置表 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
public interface IAcWaresRuleConfigService extends IService<AcWaresRuleConfig> {
|
||||
|
||||
/*
|
||||
* @description: 查询买赠活动赠品配置根据条件
|
||||
* @author: sui q
|
||||
* @date: 2023/4/25 19:26
|
||||
* @param: null null
|
||||
* 查询买赠活动赠品配置根据条件
|
||||
**/
|
||||
List<AcWaresRuleConfigExt> queryWaresGiftConfigByCondition(GiftConfigParam giftConfigParam);
|
||||
|
||||
|
|
@ -64,11 +58,4 @@ public interface IAcWaresRuleConfigService extends IService<AcWaresRuleConfig> {
|
|||
*/
|
||||
String approvalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* 商品赠送 审核规则驳回
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
* @return
|
||||
*/
|
||||
String approvalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.hzs.activity.wares.service.impl;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.activity.base.param.ActivityParam;
|
||||
|
|
@ -13,7 +12,6 @@ import com.hzs.activity.base.service.IAcBaseConfigService;
|
|||
import com.hzs.activity.base.service.IAcGoalMemberConfigService;
|
||||
import com.hzs.activity.recommend.param.AcRecommendParam;
|
||||
import com.hzs.activity.wares.service.IAcGiftConfigService;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.CommonUtil;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
|
|
@ -26,12 +24,9 @@ import com.hzs.activity.wares.mapper.AcWaresRuleConfigMapper;
|
|||
import com.hzs.activity.wares.service.IAcWaresRuleConfigService;
|
||||
import com.hzs.common.domain.activity.wares.ext.AcWaresRuleConfigExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.system.sys.IApprovalServiceApi;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import com.hzs.system.sys.dto.ApprovalSubmitDTO;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -40,9 +35,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 商品买赠规则配置表 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
|
|
@ -61,8 +53,6 @@ public class AcWaresRuleConfigServiceImpl extends ServiceImpl<AcWaresRuleConfigM
|
|||
@Autowired
|
||||
private IAcWaresRuleConfigService waresRuleConfigService;
|
||||
|
||||
@DubboReference
|
||||
IApprovalServiceApi approvalServiceApi;
|
||||
|
||||
@Override
|
||||
public List<AcWaresRuleConfigExt> queryWaresGiftConfigByCondition(GiftConfigParam giftConfigParam) {
|
||||
|
|
@ -113,7 +103,7 @@ public class AcWaresRuleConfigServiceImpl extends ServiceImpl<AcWaresRuleConfigM
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String onLinePetition(AcRecommendParam recommendParam) {
|
||||
log.info("商品赠送入参{}",recommendParam);
|
||||
log.info("商品赠送入参{}", recommendParam);
|
||||
EApprovalBusiness approvalBusiness = null;
|
||||
if (recommendParam.getControlType() == EControlType.SAVE.getValue()) {
|
||||
approvalBusiness = EApprovalBusiness.PRODUCT_GIFT_ADD;
|
||||
|
|
@ -198,48 +188,6 @@ public class AcWaresRuleConfigServiceImpl extends ServiceImpl<AcWaresRuleConfigM
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品赠送审核规则
|
||||
*
|
||||
* @param businessResult
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String approvalReject(ApprovalBusinessResultDTO businessResult) {
|
||||
EApprovalBusiness eApprovalBusiness = businessResult.getEApprovalBusiness();
|
||||
String businessCode = businessResult.getBusinessCode();
|
||||
LoginUser loginUser = businessResult.getLoginUser();
|
||||
AcApprovalLog approvalLog = acApprovalLogService.queryApprovalLog(eApprovalBusiness, businessCode, loginUser.getDataCountry());
|
||||
if (null == approvalLog) {
|
||||
return "审批数据不存在!";
|
||||
}
|
||||
//更新审批状态
|
||||
acApprovalLogService.updateApprovalLog(eApprovalBusiness, businessCode, loginUser.getDataCountry(),
|
||||
loginUser.getUserId(), EApproveRechargeStatus.REJECT, businessResult.getApproveRemark());
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交审批
|
||||
*
|
||||
* @param recommendParam 抽奖参数
|
||||
*/
|
||||
public Boolean submitApproval(AcRecommendParam recommendParam, EApprovalBusiness approvalBusiness) {
|
||||
//保存审批日志
|
||||
AcApprovalLog approvalLog = saveApprovalLog(recommendParam, approvalBusiness);
|
||||
ApprovalSubmitDTO approvalSubmitDTO = ApprovalSubmitDTO.builder().eApprovalBusiness(approvalBusiness)
|
||||
.businessCode(approvalLog.getBusinessCode())
|
||||
.businessData(JSONObject.toJSONString(recommendParam.getActivityParam()))
|
||||
.signType(ESignType.getEnumByValue(recommendParam.getSignType())).userIdList(recommendParam.getUserIdList())
|
||||
.sendIdList(recommendParam.getSendIdList()).remark(recommendParam.getRemark()).fileList(recommendParam.getFileList())
|
||||
.build();
|
||||
R<String> submit = approvalServiceApi.submit(approvalSubmitDTO, recommendParam.getLoginUser());
|
||||
if (!submit.isSuccess()) {
|
||||
throw new RuntimeException("旅游活动参数提交审批失败!");
|
||||
}
|
||||
return submit.isSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存活动审批日志信息
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -580,20 +580,28 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
cuMember.setPkSettleGrade(gradeDTO.getPkId());
|
||||
cuMember.setPkSettleGradeValue(gradeDTO.getGradeValue());
|
||||
|
||||
if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||
// 2025.05.13 新添加需求,开网初期报单660给1980等级,报单1980给9900等级
|
||||
if (EGrade.YOU_KE.getValue() == gradeDTO.getGradeValue()) {
|
||||
GradeDTO newGradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.MAKER.getValue(), saOrderExt.getPkCountry()).getData();
|
||||
if (null != newGradeDTO) {
|
||||
cuMember.setPkSettleGrade(newGradeDTO.getPkId());
|
||||
cuMember.setPkSettleGradeValue(newGradeDTO.getGradeValue());
|
||||
}
|
||||
} else if (EGrade.MAKER.getValue() == gradeDTO.getGradeValue()) {
|
||||
GradeDTO newGradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.VIP.getValue(), saOrderExt.getPkCountry()).getData();
|
||||
if (null != newGradeDTO) {
|
||||
cuMember.setPkSettleGrade(newGradeDTO.getPkId());
|
||||
cuMember.setPkSettleGradeValue(newGradeDTO.getGradeValue());
|
||||
// 赠送等级截止时间
|
||||
Long giftGradeEnd = SysConstants.GIFT_GRADE_TIME;
|
||||
if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
|
||||
// 测试环境
|
||||
giftGradeEnd = SysConstants.GIFT_GRADE_TIME_TEST;
|
||||
}
|
||||
if (System.currentTimeMillis() < giftGradeEnd) {
|
||||
if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||
// 2025.05.13 新添加需求,开网初期报单660给1980等级,报单1980给9900等级
|
||||
if (EGrade.YOU_KE.getValue() == gradeDTO.getGradeValue()) {
|
||||
GradeDTO newGradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.MAKER.getValue(), saOrderExt.getPkCountry()).getData();
|
||||
if (null != newGradeDTO) {
|
||||
cuMember.setPkSettleGrade(newGradeDTO.getPkId());
|
||||
cuMember.setPkSettleGradeValue(newGradeDTO.getGradeValue());
|
||||
}
|
||||
} else if (EGrade.MAKER.getValue() == gradeDTO.getGradeValue()) {
|
||||
GradeDTO newGradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.VIP.getValue(), saOrderExt.getPkCountry()).getData();
|
||||
if (null != newGradeDTO) {
|
||||
cuMember.setPkSettleGrade(newGradeDTO.getPkId());
|
||||
cuMember.setPkSettleGradeValue(newGradeDTO.getGradeValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -788,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);
|
||||
|
|
@ -860,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);
|
||||
|
|
@ -973,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);
|
||||
|
|
@ -1921,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) {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -78,7 +78,6 @@
|
|||
order by aw.order_amount desc
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -40,4 +40,63 @@
|
|||
and r.upgrade_status = #{upgradeStatus}
|
||||
</select>
|
||||
|
||||
<!-- 判断会员是否达标并且查询对应订单 -->
|
||||
<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
|
||||
where so.del_flag = 0
|
||||
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,
|
||||
BG.GRADE_NAME AS pkSettleGrade,
|
||||
BGG.GRADE_NAME AS pkRecommendGrade,
|
||||
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
|
||||
LEFT JOIN BD_GRADE BG ON arur.PK_SETTLE_GRADE = BG.PK_ID
|
||||
LEFT JOIN BD_GRADE BGG ON arur.PK_RECOMMEND_GRADE = BGG.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,javaType=DATE}
|
||||
</if>
|
||||
<if test="startActEndDate != null">
|
||||
AND abc.ACT_START_DATE <= #{startActEndDate,javaType=DATE}
|
||||
</if>
|
||||
<if test="endActStartDate != null">
|
||||
AND abc.ACT_END_DATE >= #{endActStartDate,javaType=DATE}
|
||||
</if>
|
||||
<if test="endActEndDate != null">
|
||||
AND abc.ACT_END_DATE <= #{endActEndDate,javaType=DATE}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -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 <= #{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>
|
||||
|
|
|
|||
|
|
@ -34,16 +34,4 @@
|
|||
)
|
||||
</update>
|
||||
|
||||
<select id="queryRepurSharRuleConfig" resultMap="AcRepurSharRuleConfigExt">
|
||||
select ar.order_amount, ar.order_achieve, ar.ratio_value, ao.order_type, ac.pk_country
|
||||
from ac_base_config ac
|
||||
inner join ac_repur_shar_rule_config ar
|
||||
on ac.pk_id = ar.pk_base_id
|
||||
inner join ac_repur_shar_order_type ao
|
||||
on ar.pk_id = ao.pk_rule_id
|
||||
where ar.del_flag = 0
|
||||
and ao.del_flag = 0
|
||||
and ac.ACT_START_DATE <= #{startDate, jdbcType=DATE}
|
||||
and ac.ACT_END_DATE > #{endDate, jdbcType=DATE}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -223,11 +223,6 @@ public class EnumsInitController {
|
|||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
|
||||
//活动类型
|
||||
for (EActType value : EActType.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
|
||||
//发货方式
|
||||
for (EDelivery value : EDelivery.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
|
|
|
|||
|
|
@ -2,11 +2,9 @@ package com.hzs.system.sys.controller.manage;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.json.JSONConfig;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.hzs.activity.base.IActivityApprovalServiceApi;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
|
|
@ -90,8 +88,6 @@ public class SysApprovalBusinessController extends BaseController {
|
|||
@DubboReference
|
||||
ICuAwardsControlServiceApi controlServiceApi;
|
||||
@DubboReference
|
||||
IActivityApprovalServiceApi iActivityApprovalServiceApi;
|
||||
@DubboReference
|
||||
IUpPolicyCurrencyServiceApi upPolicyCurrencyServiceApi;
|
||||
@DubboReference
|
||||
IUpdateExpireStopServiceApi updateExpireStopServiceApi;
|
||||
|
|
@ -285,16 +281,6 @@ public class SysApprovalBusinessController extends BaseController {
|
|||
approvalBusinessVO.setBusinessData(sysApprovalBusinessData.getBusinessData());
|
||||
}
|
||||
break;
|
||||
case ACTIVITY_BUSINESS:
|
||||
// 活动服务信息处理
|
||||
R<?> activityR = iActivityApprovalServiceApi.queryApprovalData(EApprovalBusiness.getEnumByValue(approvalBusinessExt.getApprovalBusiness()), approvalBusinessExt.getBusinessCode(), SecurityUtils.getPkCountry());
|
||||
if (activityR.isSuccess()) {
|
||||
if (null != activityR.getData()) {
|
||||
JSONConfig jsonConfig = JSONConfig.create().setDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
approvalBusinessVO.setBusinessData(JSONUtil.toJsonStr(activityR.getData(), jsonConfig));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
return AjaxResult.success(approvalBusinessVO);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.hzs.activity.base.IActivityApprovalServiceApi;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.constant.msg.DocumentMsgConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
|
|
@ -79,8 +78,6 @@ public class ApprovalServiceImpl implements IApprovalService {
|
|||
@DubboReference
|
||||
INoticeAuditServiceApi iNoticeAuditServiceApi;
|
||||
@DubboReference
|
||||
IActivityApprovalServiceApi iActivityApprovalServiceApi;
|
||||
@DubboReference
|
||||
IApprovalPushInfo iApprovalPushInfo;
|
||||
@DubboReference
|
||||
IStatisticalLogServiceApi statisticalLogServiceApi;
|
||||
|
|
@ -478,10 +475,6 @@ public class ApprovalServiceImpl implements IApprovalService {
|
|||
// 公告、站内信相关
|
||||
resultR = iNoticeAuditServiceApi.noticeAuditProcess(approvalBusinessResultDTO);
|
||||
break;
|
||||
case ACTIVITY_BUSINESS:
|
||||
// 活动相关处理
|
||||
resultR = iActivityApprovalServiceApi.approvalCallback(approvalBusinessResultDTO);
|
||||
break;
|
||||
case CUSTOM_BUSINESS:
|
||||
// 自定义签呈不需要进行后续业务操作
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -330,4 +330,5 @@ public class CacheConstants {
|
|||
*/
|
||||
public final static String AUTO_LOGIN = CACHE_PREFIX + "auth:login:";
|
||||
|
||||
public final static String TOP_30_ACTIVITY = CACHE_PREFIX + "top:30:activity:";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,4 +44,13 @@ public class SysConstants {
|
|||
*/
|
||||
public static final List<Integer> NOT_BONUS_GRADE = Arrays.asList(EGrade.START_UP.getValue(), EGrade.HAI_FAN.getValue());
|
||||
|
||||
/**
|
||||
* 2025.10.01 之前赠送等级,后面不赠送了
|
||||
*/
|
||||
public static final Long GIFT_GRADE_TIME = 1759248000000L;
|
||||
/**
|
||||
* 2025.10.01 之前赠送等级,后面不赠送了(测试环境)
|
||||
*/
|
||||
public static final Long GIFT_GRADE_TIME_TEST = 1758556800000L;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
|
|
@ -14,32 +13,37 @@ public enum EActType {
|
|||
/**
|
||||
* 商品赠品
|
||||
*/
|
||||
PRODUCT_GIFT(11, "商品赠品", 0, EnumsPrefixConstants.ACT_TYPE + "11"),
|
||||
PRODUCT_GIFT(11, "商品赠品", 0),
|
||||
|
||||
/**
|
||||
* 消费赠送
|
||||
*/
|
||||
CONSUMPTION_GIFT(12, "消费赠送", 0, EnumsPrefixConstants.ACT_TYPE + "12"),
|
||||
CONSUMPTION_GIFT(12, "消费赠送", 0),
|
||||
|
||||
/**
|
||||
* 直推赠送
|
||||
*/
|
||||
DIRECT_PUSH_GIFT(13, "直推赠送", 0, EnumsPrefixConstants.ACT_TYPE + "13"),
|
||||
DIRECT_PUSH_GIFT(13, "直推赠送", 0),
|
||||
|
||||
/**
|
||||
* 抽奖
|
||||
*/
|
||||
LOTTERY_DRAW(17, "抽奖", 0, EnumsPrefixConstants.ACT_TYPE + "17"),
|
||||
LOTTERY_DRAW(17, "抽奖", 0),
|
||||
|
||||
/**
|
||||
* 旅游活动
|
||||
*/
|
||||
TOURISM(22, "旅游活动", 0, EnumsPrefixConstants.ACT_TYPE + "22"),
|
||||
TOURISM(22, "旅游活动", 0),
|
||||
|
||||
/**
|
||||
* 会员消费赠送 活动
|
||||
*/
|
||||
MEMBER_CONSUMPTION(25, "会员消费赠送", 0, EnumsPrefixConstants.ACT_TYPE + "25"),
|
||||
MEMBER_CONSUMPTION(25, "会员消费赠送", 0),
|
||||
|
||||
/**
|
||||
* 直推升级
|
||||
*/
|
||||
RECOMMEND_UPGRADE(30, "直推升级", 0),
|
||||
|
||||
;
|
||||
|
||||
|
|
@ -55,8 +59,5 @@ public enum EActType {
|
|||
* 是否启用(0=是,1=否) -- 来源EYesNo
|
||||
*/
|
||||
private final int enable;
|
||||
/**
|
||||
* 国际化翻译key值
|
||||
*/
|
||||
private final String key;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,11 +40,6 @@ public enum EApprovalType {
|
|||
*/
|
||||
NOTICE_BUSINESS(5, "公告站内信"),
|
||||
|
||||
/**
|
||||
* 活动相关处理
|
||||
*/
|
||||
ACTIVITY_BUSINESS(7, "活动相关处理"),
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -94,4 +94,13 @@ public enum EGrade {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static EGrade getGradeByIndex(int value){
|
||||
for (EGrade eGrade : EGrade.values()) {
|
||||
if (value == eGrade.index){
|
||||
return eGrade;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -254,6 +254,11 @@ public enum EOperationBusiness {
|
|||
|
||||
AC_RECOMMEEND_CONFIG("直推赠送"),
|
||||
|
||||
AC_DIRECT_PUSH_UPGRADE("直推升级"),
|
||||
|
||||
AC_DIRECT_PUSH_UPGRADE_LIST("直推升级数据"),
|
||||
|
||||
|
||||
AC_WARES_RULE_CONFIG("商品赠送"),
|
||||
|
||||
AC_TOURISM_CONFIG("旅游活动"),
|
||||
|
|
|
|||
|
|
@ -353,6 +353,10 @@ public enum EOperationModule {
|
|||
|
||||
AC_RECOMMEEND_CONFIG("直推赠送"),
|
||||
|
||||
AC_DIRECT_PUSH_UPGRADE("直推升级"),
|
||||
|
||||
AC_DIRECT_PUSH_UPGRADE_LIST("直推升级数据"),
|
||||
|
||||
AC_TOURISM_CONFIG("旅游活动"),
|
||||
|
||||
AC_WARES_RULE_CONFIG("商品赠送"),
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
|
|
@ -14,27 +13,27 @@ public enum EPickType {
|
|||
/**
|
||||
* 关联 BS_PRODUCT 表
|
||||
*/
|
||||
PICK_PRODUCT(0, "提货产品", EnumsPrefixConstants.ACT_TYPE + "0"),
|
||||
PICK_PRODUCT(0, "提货产品"),
|
||||
|
||||
/**
|
||||
* 关联 BS_PRODUCT 表(一次全部提走)
|
||||
*/
|
||||
PRIZE(1, "抽奖", EnumsPrefixConstants.ACT_TYPE + "1"),
|
||||
PRIZE(1, "抽奖"),
|
||||
|
||||
/**
|
||||
* 关联 AC_GIFT_CONFIG 表
|
||||
*/
|
||||
CONSUMPTION_GIFT(12, "消费赠送", EnumsPrefixConstants.ACT_TYPE + "12"),
|
||||
CONSUMPTION_GIFT(12, "消费赠送"),
|
||||
|
||||
/**
|
||||
* 关联 AC_GIFT_CONFIG 表
|
||||
*/
|
||||
DIRECT_PUSH_GIFT(13, "直推赠送", EnumsPrefixConstants.ACT_TYPE + "13"),
|
||||
DIRECT_PUSH_GIFT(13, "直推赠送"),
|
||||
|
||||
/**
|
||||
* 关联 AC_GIFT_CONFIG 表
|
||||
*/
|
||||
LOTTERY_DRAW(17, "抽奖", EnumsPrefixConstants.ACT_TYPE + "17"),
|
||||
LOTTERY_DRAW(17, "抽奖"),
|
||||
|
||||
;
|
||||
|
||||
|
|
@ -46,10 +45,6 @@ public enum EPickType {
|
|||
* 显示标签
|
||||
*/
|
||||
private final String label;
|
||||
/**
|
||||
* 国际化翻译key值
|
||||
*/
|
||||
private final String key;
|
||||
|
||||
/**
|
||||
* 根据枚举值查询枚举
|
||||
|
|
|
|||
|
|
@ -0,0 +1,84 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单类型枚举类
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum ETop30Type {
|
||||
|
||||
/**
|
||||
* 注册订单
|
||||
*/
|
||||
PEOPLE(1, "直推人数", "people"),
|
||||
|
||||
/**
|
||||
* 升级订单
|
||||
*/
|
||||
AMOUNT(2, "直推金额", "amount")
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
* 实际值
|
||||
*/
|
||||
private final int value;
|
||||
/**
|
||||
* 显示标签
|
||||
*/
|
||||
private final String label;
|
||||
/**
|
||||
* 显示标签
|
||||
*/
|
||||
private final String key;
|
||||
|
||||
/**
|
||||
* 根据值,返回枚举
|
||||
*
|
||||
* @param value
|
||||
* @return
|
||||
*/
|
||||
public static ETop30Type getEnumByValue(int value) {
|
||||
for (ETop30Type enums : ETop30Type.values()) {
|
||||
if (enums.getValue() == value) {
|
||||
return enums;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据值,返回名称
|
||||
*
|
||||
* @param value
|
||||
* @return
|
||||
*/
|
||||
public static String getLabelByValue(Integer value) {
|
||||
if (null == value) {
|
||||
return "";
|
||||
}
|
||||
for (ETop30Type enums : ETop30Type.values()) {
|
||||
if (enums.getValue() == value) {
|
||||
return enums.getLabel();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
public static List<ETop30Type> getOrderTypeSpecial() {
|
||||
List<ETop30Type> resultList = new ArrayList<>();
|
||||
resultList.add(ETop30Type.PEOPLE);
|
||||
resultList.add(ETop30Type.AMOUNT);
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
package com.hzs.common.core.utils;
|
||||
|
||||
/**
|
||||
* 数据脱敏工具类
|
||||
* 提供字符串脱敏功能,可指定保留前几位和后几位字符
|
||||
*/
|
||||
public class DataMaskingUtil {
|
||||
|
||||
// 默认脱敏字符
|
||||
private static final char DEFAULT_MASK_CHAR = '*';
|
||||
|
||||
/**
|
||||
* 对字符串进行脱敏处理
|
||||
* @param input 原始字符串
|
||||
* @param keepPrefix 保留的前缀位数
|
||||
* @param keepSuffix 保留的后缀位数
|
||||
* @return 脱敏后的字符串
|
||||
*/
|
||||
public static String mask(String input, int keepPrefix, int keepSuffix) {
|
||||
// 参数验证
|
||||
if (input == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 处理边界情况
|
||||
if (keepPrefix < 0 || keepSuffix < 0) {
|
||||
throw new IllegalArgumentException("保留位数不能为负数");
|
||||
}
|
||||
|
||||
int length = input.length();
|
||||
|
||||
// 如果字符串长度小于等于需要保留的位数之和,直接返回原字符串
|
||||
if (length <= keepPrefix + keepSuffix) {
|
||||
return input;
|
||||
}
|
||||
|
||||
// 构建StringBuilder用于高效拼接字符串
|
||||
StringBuilder result = new StringBuilder(length);
|
||||
|
||||
// 添加前缀保留字符
|
||||
result.append(input, 0, keepPrefix);
|
||||
|
||||
// 添加脱敏字符
|
||||
int maskCount = length - keepPrefix - keepSuffix;
|
||||
for (int i = 0; i < maskCount; i++) {
|
||||
result.append(DEFAULT_MASK_CHAR);
|
||||
}
|
||||
|
||||
// 添加后缀保留字符
|
||||
result.append(input, length - keepSuffix, length);
|
||||
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 对字符串进行脱敏处理,可自定义脱敏字符
|
||||
* @param input 原始字符串
|
||||
* @param keepPrefix 保留的前缀位数
|
||||
* @param keepSuffix 保留的后缀位数
|
||||
* @param maskChar 自定义脱敏字符
|
||||
* @return 脱敏后的字符串
|
||||
*/
|
||||
public static String mask(String input, int keepPrefix, int keepSuffix, char maskChar) {
|
||||
// 参数验证
|
||||
if (input == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 处理边界情况
|
||||
if (keepPrefix < 0 || keepSuffix < 0) {
|
||||
throw new IllegalArgumentException("保留位数不能为负数");
|
||||
}
|
||||
|
||||
int length = input.length();
|
||||
|
||||
// 如果字符串长度小于等于需要保留的位数之和,直接返回原字符串
|
||||
if (length <= keepPrefix + keepSuffix) {
|
||||
return input;
|
||||
}
|
||||
|
||||
// 构建StringBuilder用于高效拼接字符串
|
||||
StringBuilder result = new StringBuilder(length);
|
||||
|
||||
// 添加前缀保留字符
|
||||
result.append(input, 0, keepPrefix);
|
||||
|
||||
// 添加脱敏字符
|
||||
int maskCount = length - keepPrefix - keepSuffix;
|
||||
for (int i = 0; i < maskCount; i++) {
|
||||
result.append(maskChar);
|
||||
}
|
||||
|
||||
// 添加后缀保留字符
|
||||
result.append(input, length - keepSuffix, length);
|
||||
|
||||
return result.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import java.text.ParseException;
|
|||
import java.text.SimpleDateFormat;
|
||||
import java.time.*;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -895,5 +896,58 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
return LocalDate.parse(date, fmt);
|
||||
}
|
||||
/**
|
||||
* 判断输入的年/月字符串是否超过当前月份
|
||||
*
|
||||
* @param yearMonthStr 年/月字符串,格式为"yyyy/MM",如"2023/12"
|
||||
* @return 如果输入的年月超过当前月份则返回true,否则返回false
|
||||
* @throws IllegalArgumentException 如果输入的字符串格式不正确
|
||||
*/
|
||||
public static boolean isYearMonthExceedCurrent(String yearMonthStr) {
|
||||
// 参数校验
|
||||
if (yearMonthStr == null || yearMonthStr.trim().isEmpty()) {
|
||||
throw new IllegalArgumentException("年/月字符串不能为空");
|
||||
}
|
||||
|
||||
try {
|
||||
// 解析输入的年/月字符串
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM");
|
||||
YearMonth inputYearMonth = YearMonth.parse(yearMonthStr, formatter);
|
||||
|
||||
// 获取当前年月
|
||||
YearMonth currentYearMonth = YearMonth.now();
|
||||
|
||||
// 比较输入年月和当前年月
|
||||
// 如果输入年月大于当前年月,则返回true(表示超过当前月份)
|
||||
return inputYearMonth.isAfter(currentYearMonth);
|
||||
|
||||
} catch (DateTimeParseException e) {
|
||||
throw new IllegalArgumentException("年/月字符串格式不正确,应为'yyyy/MM'格式,如'2023/12'", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重载方法,支持自定义日期格式
|
||||
*
|
||||
* @param yearMonthStr 年/月字符串
|
||||
* @param pattern 日期格式,如"yyyy-MM"或"yyyyMM"等
|
||||
* @return 如果输入的年月超过当前月份则返回true,否则返回false
|
||||
* @throws IllegalArgumentException 如果输入参数不合法
|
||||
*/
|
||||
public static boolean isYearMonthExceedCurrent(String yearMonthStr, String pattern) {
|
||||
if (pattern == null || pattern.trim().isEmpty()) {
|
||||
throw new IllegalArgumentException("日期格式不能为空");
|
||||
}
|
||||
|
||||
try {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
|
||||
YearMonth inputYearMonth = YearMonth.parse(yearMonthStr, formatter);
|
||||
YearMonth currentYearMonth = YearMonth.now();
|
||||
|
||||
return inputYearMonth.isAfter(currentYearMonth);
|
||||
|
||||
} catch (DateTimeParseException e) {
|
||||
throw new IllegalArgumentException("年/月字符串格式不正确,无法使用模式'" + pattern + "'解析", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@ import lombok.experimental.Accessors;
|
|||
|
||||
/**
|
||||
* 活动审批日志
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-22
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class AcBaseConfig extends BaseEntity {
|
|||
private String actName;
|
||||
|
||||
/**
|
||||
* 活动类型(11=商品赠送 12=消费赠送 13=直推赠送 17=抽奖 24=升级权限赠送)
|
||||
* 活动类型(11=商品赠送 12=消费赠送 13=直推赠送 17=抽奖 30=推荐升级)
|
||||
*/
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.ACT_TYPE)
|
||||
@TableField("ACT_TYPE")
|
||||
|
|
|
|||
|
|
@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 消费买赠规则配置表
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -10,12 +10,7 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 消费赠送屏蔽配置表
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -9,12 +9,7 @@ import java.io.Serializable;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 业绩赠送配置
|
||||
* @author: sui q
|
||||
* @time: 2023/4/26 10:30
|
||||
* @classname: AcConsumeRuleConfigExt
|
||||
* @package_name: com.hzs.common.domain.activity.consume.ext
|
||||
* version 1.0.0
|
||||
* 业绩赠送配置
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
|
|
|
|||
|
|
@ -9,12 +9,7 @@ import lombok.*;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 抽奖活动赠品配置
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -9,12 +9,7 @@ import lombok.*;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员可抽奖次数记录
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-21
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -9,12 +9,7 @@ import lombok.EqualsAndHashCode;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @description: 扩展类
|
||||
* @author: sui q
|
||||
* @time: 2023/4/27 15:07
|
||||
* @classname: AcDrawRewardNumExt
|
||||
* @package_name: com.hzs.common.domain.activity.draw.ext
|
||||
* version 1.0.0
|
||||
* 扩展类
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue