diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java index 13cca34f..7f065cd8 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java @@ -128,6 +128,12 @@ public interface CuMemberRetailRangeMapper extends BaseMapper memberList, @Param("updateType") Integer updateType, @Param("symbol") String symbol); - void initMemberRetailSecondRange(@Param("tableName") String tableName, @Param("member") CuMemberExt memberList); + + /** + * 查询直推会员数据 + */ + List listChildRetail(@Param("rangeTableName") String rangeTableName, + @Param("pkParentList") List pkParentList); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java index 81d13adc..5a079e9c 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java @@ -29,7 +29,7 @@ public interface ICuMemberRetailDetailService extends IService memberRangeExtMap, - List queryMemberList, EBonusStage eBonusStage); + void listChildRetailDetail(String rangeTableName, String retailDetailTableName, Map memberRangeExtMap, + CuMemberRetailRangeExt sourceMember, EBonusStage eBonusStage); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java index 5602c43d..87a96399 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java @@ -2,6 +2,7 @@ package com.hzs.bonus.achieve.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.hzs.bonus.achieve.mapper.CuMemberRetailDetailMapper; +import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper; import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.constant.MagicNumberConstants; @@ -12,6 +13,7 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.*; /** @@ -20,6 +22,9 @@ import java.util.*; @Service public class CuMemberRetailDetailServiceImpl extends ServiceImpl implements ICuMemberRetailDetailService { + @Resource + private CuMemberRetailRangeMapper cuMemberRetailRangeMapper; + @Autowired private CuMemberBonusSettle cuMemberBonusSettle; @@ -35,32 +40,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl { // 查询明细数据(指定阶段,未完成的) List tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue(), null != eBonusStageStatus ? eBonusStageStatus.getValue() : null); - if (CollectionUtil.isNotEmpty(tmpList)) { - // 明细数据放到对应的会员数据中 - for (CuMemberRetailDetail cuMemberRetailDetail : tmpList) { - CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailDetail.getPkMember()); - if (null == cuMemberRetailRangeExt.getOneDetailMap()) { - cuMemberRetailRangeExt.setOneDetailMap(new LinkedHashMap<>()); - } - if (null == cuMemberRetailRangeExt.getTwoDetailMap()) { - cuMemberRetailRangeExt.setTwoDetailMap(new LinkedHashMap<>()); - } - if (null == cuMemberRetailRangeExt.getThreeDetailMap()) { - cuMemberRetailRangeExt.setThreeDetailMap(new LinkedHashMap<>()); - } - // 使用有序map,为了后续业务处理方便 - if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { - // 阶段一点位列表 - cuMemberRetailRangeExt.getOneDetailMap().put(cuMemberRetailDetail.getChildNode(), cuMemberRetailDetail); - } else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) { - // 阶段二点位列表 - cuMemberRetailRangeExt.getTwoDetailMap().put(cuMemberRetailDetail.getChildNode(), cuMemberRetailDetail); - } else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) { - // 阶段三点位列表 - cuMemberRetailRangeExt.getThreeDetailMap().put(cuMemberRetailDetail.getChildNode(), cuMemberRetailDetail); - } - } - } + packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpList); }); } @@ -69,6 +49,13 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl queryMemberList, EBonusStage eBonusStage) { // 查询明细数据(指定阶段,未完成的) List tmpDetailList = baseMapper.listMemberRetailDetail(retailDetailTableName, queryMemberList, eBonusStage.getValue(), EBonusStageStatus.NO.getValue()); + packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpDetailList); + } + + /** + * 封装三个明细map + */ + private void packageThreeDetailMap(Map memberRangeExtMap, EBonusStage eBonusStage, List tmpDetailList) { if (CollectionUtil.isNotEmpty(tmpDetailList)) { // 明细数据放到对应的会员数据中 for (CuMemberRetailDetail cuMemberRetailDetail : tmpDetailList) { @@ -99,9 +86,42 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl memberRangeExtMap, - List queryMemberList, EBonusStage eBonusStage) { + public void listChildRetailDetail(String rangeTableName, String retailDetailTableName, Map memberRangeExtMap, + CuMemberRetailRangeExt sourceMember, EBonusStage eBonusStage) { + if (null != sourceMember.getChildRetailMap()) { + // 直推会员列表存在,则直接结束 + return; + } + sourceMember.setChildRetailMap(new LinkedHashMap<>()); + // 会员直推数据 + List retailRangeList = cuMemberRetailRangeMapper.listChildRetail(rangeTableName, Collections.singletonList(sourceMember.getPkParent())); + if (CollectionUtil.isNotEmpty(retailRangeList)) { + // 直推数据列表 + LinkedHashMap childRetailMap = sourceMember.getChildRetailMap(); + + List queryMemberList = new ArrayList<>(); + for (CuMemberRetailRangeExt cuMemberRetailRangeExt : retailRangeList) { + CuMemberRetailRangeExt tmpMemberRetailRange = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); + if (null != tmpMemberRetailRange) { + // 直推会员已经存在 + childRetailMap.put(tmpMemberRetailRange.getPayTime(), tmpMemberRetailRange); + } else { + // 直推会员不存在 + childRetailMap.put(cuMemberRetailRangeExt.getPayTime(), cuMemberRetailRangeExt); + memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt); + queryMemberList.add(cuMemberRetailRangeExt.getPkMember()); + } + } + if (queryMemberList.size() > 0) { + List> pkMemberList = cuMemberBonusSettle.handleCutList(queryMemberList, MagicNumberConstants.BATCH_QUERY_NUM); + pkMemberList.forEach(tmpIdList -> { + // 查询明细数据(指定阶段,未完成的) + List tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue(), EBonusStageStatus.NO.getValue()); + packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpList); + }); + } + } } } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 2f9104bd..20a90d34 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -1026,6 +1026,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { .build(); detailList.put(newRetailDetail.getChildNode(), newRetailDetail); + // 处理阶段点位填充(一阶段) this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE, sourceMember, newRetailDetail, returnRetailDetailList); @@ -1052,6 +1053,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { .build(); detailList.put(newRetailDetail.getChildNode(), newRetailDetail); + // 处理阶段点位填充(一阶段赠点) this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE, sourceMember, newRetailDetail, returnRetailDetailList); @@ -1084,6 +1086,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return returnRetailDetailList; } + // 处理阶段点位填充 this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, null, settleDate, rangeTableName, rangeDetailTableName, eBonusStage, sourceMember, memberRetailDetail, returnRetailDetailList); @@ -1103,7 +1106,62 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 阶段奖金处理列表 List bonusStageDataList = new ArrayList<>(); - if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType()) { + boolean giftBool = false; + if (EBonusStageType.GIFT.getValue() == newRetailDetail.getPointType()) { + // 赠送点位处理,赠送点位给自己直推会员轮流布点 + iCuMemberRetailDetailService.listChildRetailDetail(rangeTableName, rangeDetailTableName, memberRangeExtMap, + sourceMember, eBonusStage); + // 判断是不是都已经填充过一轮了,如果是则需要重新开始从第一个开始填充 + LinkedHashMap childRetailMap = sourceMember.getChildRetailMap(); + if (childRetailMap.size() > 0) { + // 获取最后一条数据 key + Date lastKey = new ArrayList<>(childRetailMap.keySet()).get(childRetailMap.size() - 1); + // 获取最新的会员注册时间,如果没有则设置一个初始化时间 + Date giftPayTime = sourceMember.getGiftPayTime(); + if (null == giftPayTime || giftPayTime.compareTo(lastKey) == 0) { + giftPayTime = BonusConstants.GIFT_PAY_TIME; + } + + for (Date keyDate : childRetailMap.keySet()) { + if (keyDate.compareTo(giftPayTime) > 0) { + // 当前会员注册比之前的要晚,则顺序进行填充 + giftPayTime = keyDate; + // 需要填充的直推会员 + CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate); + // 推荐人一阶段子点位列表 + LinkedHashMap parentDetailList = targetMember.getOneDetailMap(); + + // 推荐人第一层点位处理 + giftBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (giftBool) { + // 在第一层找到并填充点位,就开始下一个点位的处理 + break; + } + // 推荐人第二层点位处理 + giftBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (giftBool) { + // 在第二层找到并填充点位,就开始下一个点位的处理 + break; + } + // 推荐人第三层点位处理 + giftBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (giftBool) { + // 在第三层找到并填充点位,就开始下一个点位的处理 + break; + } + } + } + if (giftBool) { + sourceMember.setGiftPayTime(giftPayTime); + } + } + } + + if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType() + || !giftBool) { // 普通点位处理 // 推荐人 Long pkParent = sourceMember.getPkParent(); @@ -1136,7 +1194,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 在第一层找到并填充点位,就开始下一个点位的处理 break; } - // 推荐人第二层点位处理 forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); @@ -1144,7 +1201,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 在第二层找到并填充点位,就开始下一个点位的处理 break; } - // 推荐人第三层点位处理 forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); @@ -1153,9 +1209,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { break; } } - } else { - // TODO 赠送点位处理,赠送点位给自己直推会员轮流布点 - } if (CollectionUtil.isNotEmpty(bonusStageDataList)) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java index cb393e6f..5aaa477a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java @@ -1,14 +1,12 @@ package com.hzs.bonus.constant; import cn.hutool.core.util.ReflectUtil; +import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import java.lang.reflect.Field; import java.math.BigDecimal; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public class BonusConstants { @@ -46,6 +44,11 @@ public class BonusConstants { */ public static final BigDecimal THREE_BONUS_38 = new BigDecimal("155"); + /** + * 赠点初始时间 + */ + public static final Date GIFT_PAY_TIME = DateUtils.parseStringToDateTime("2025-09-01 00:00:00"); + public static final String POINT_11 = "11"; public static final String POINT_12 = "12"; public static final String POINT_21 = "21"; diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml index eb220f7b..89c84f4a 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml @@ -54,6 +54,7 @@ + @@ -99,7 +100,8 @@ point_count = 0, wait_point_count = 0, rep_pv_balance = 0, - gift_point = 0 + gift_point = 0, + gift_pay_time = null @@ -112,7 +114,7 @@ team_consume_amount, team_month_amount, recommend_num, team_num, big_team_pv, small_team_pv, point_count, wait_point_count, rep_pv_balance, - gift_point + gift_point, gift_pay_time from ${yesterdayRangeTableName} ) b on (a.pk_member = b.pk_member) @@ -127,7 +129,7 @@ a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv, a.point_count = b.point_count, a.wait_point_count = b.wait_point_count, a.rep_pv_balance = b.rep_pv_balance, - a.gift_point = b.gift_point + a.gift_point = b.gift_point, a.gift_pay_time = b.gift_pay_time ,a.month_consume_pv = b.month_consume_pv ,a.month_consume_amount = b.month_consume_amount @@ -347,7 +349,7 @@ #{item.repConsumeNewAmount} rep_consume_new_amount, #{item.repConsumeNewPv} rep_consume_new_pv, #{item.repTeamNewAmount} rep_team_new_amount, #{item.repTeamNewPv} rep_team_new_pv, #{item.pointCount} point_count, #{item.waitPointCount} wait_point_count, #{item.repPvBalance} rep_pv_balance, - #{item.giftPoint} gift_point + #{item.giftPoint} gift_point, #{item.giftPayTime, jdbcType=TIMESTAMP} gift_pay_time from dual ) b @@ -364,7 +366,7 @@ a.rep_consume_new_amount = b.rep_consume_new_amount, a.rep_consume_new_pv = b.rep_consume_new_pv, a.rep_team_new_amount = b.rep_team_new_amount, a.rep_team_new_pv = b.rep_team_new_pv, a.point_count = b.point_count, a.wait_point_count = b.wait_point_count, a.rep_pv_balance = b.rep_pv_balance, - a.gift_point = b.gift_point + a.gift_point = b.gift_point, a.gift_pay_time = b.gift_pay_time @@ -595,46 +597,43 @@ - INSERT INTO ${tableName} ( - "PK_MEMBER", - "PK_PARENT", - "PK_GRADE", - "PK_AWARDS", - "ALL_CONSUME_NEW_AMOUNT", - "ALL_CONSUME_NEW_PV", - "ALL_TEAM_NEW_AMOUNT", - "ALL_TEAM_NEW_PV", - "REG_CONSUME_NEW_AMOUNT", - "REG_CONSUME_NEW_PV", - "REG_TEAM_NEW_AMOUNT", - "REG_TEAM_NEW_PV", - "REP_CONSUME_NEW_AMOUNT", - "REP_CONSUME_NEW_PV", - "REP_TEAM_NEW_AMOUNT", - "REP_TEAM_NEW_PV" - ) - SELECT - #{member.pkId}, - #{member.pkParent}, - #{member.pkSettleGrade}, - #{member.pkAwards}, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - FROM DUAL - WHERE NOT EXISTS ( - SELECT 1 - FROM ${tableName} - WHERE "PK_MEMBER" = #{member.pkId} + INSERT INTO ${tableName} ("PK_MEMBER", + "PK_PARENT", + "PK_GRADE", + "PK_AWARDS", + "ALL_CONSUME_NEW_AMOUNT", + "ALL_CONSUME_NEW_PV", + "ALL_TEAM_NEW_AMOUNT", + "ALL_TEAM_NEW_PV", + "REG_CONSUME_NEW_AMOUNT", + "REG_CONSUME_NEW_PV", + "REG_TEAM_NEW_AMOUNT", + "REG_TEAM_NEW_PV", + "REP_CONSUME_NEW_AMOUNT", + "REP_CONSUME_NEW_PV", + "REP_TEAM_NEW_AMOUNT", + "REP_TEAM_NEW_PV") + SELECT #{member.pkId}, + #{member.pkParent}, + #{member.pkSettleGrade}, + #{member.pkAwards}, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + FROM DUAL + WHERE NOT EXISTS( + SELECT 1 + FROM ${tableName} + WHERE "PK_MEMBER" = #{member.pkId} ) @@ -683,6 +682,7 @@ wait_point_count, rep_pv_balance, gift_point, + gift_pay_time, bw.awards_value, bw.awards_name from ( @@ -888,15 +888,79 @@ from ${tableName} where pk_parent = #{pkParent} + + + + diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml index e61a1a6c..6e1022aa 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml @@ -578,7 +578,8 @@ point_count number(8) default 0 not null, wait_point_count number(8) default 0 not null, rep_pv_balance number(17,6) default 0 not null, - gift_point number(2) default 1 not null + gift_point number(2) default 1 not null, + gift_pay_time DATE ) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java index e566f0be..a558392a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java @@ -2,9 +2,11 @@ package com.hzs.member.base.controller.api; import cn.hutool.core.codec.Base64Decoder; import cn.hutool.core.collection.CollectionUtil; +import com.hzs.common.core.annotation.Log; import com.hzs.common.core.annotation.RepeatSubmitSimple; import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.CacheConstants; +import com.hzs.common.core.constant.TableNameConstants; import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.constant.msg.ConfigMsgConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; @@ -18,13 +20,17 @@ import com.hzs.common.core.utils.uuid.IdUtils; 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.domain.member.achieve.CuMemberRetailDetail; +import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberChangeLog; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; +import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; import com.hzs.member.base.param.ForgetPasswordParam; import com.hzs.member.base.param.MemberDataParam; +import com.hzs.member.base.service.ICuMemberRetailService; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.IMemberInfoService; import com.hzs.common.core.utils.UploadFileUtil; @@ -39,6 +45,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; @@ -56,6 +64,11 @@ public class ApiMemberController extends BaseController { private ICuMemberService iCuMemberService; @Autowired private IApiAliSmsService iApiAliSmsService; + @Autowired + private ICuMemberRetailService iCuMemberRetailService; + @Autowired + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; + @Autowired private RedisService redisService; @@ -427,4 +440,38 @@ public class ApiMemberController extends BaseController { .uuid(uuid) .build()); } + /** + * + * @return + */ + @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) + @GetMapping("/member-point") + public AjaxResult memberPoint() { + Long userId = SecurityUtils.getUserId(); + if (userId == null) { + log.error("用户登录信息错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + // 获取当前时间 -1 天 + String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + // 查询相关日结表 + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday); + log.info("会员结算表信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); + log.info("会员结算表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前表名不存在{}",settleTableName); + return AjaxResult.error("数据查询错误,请联系客服处理"); + } + List list = iCuMemberRetailService.getMemberPointByUserId(settleTableName,userId); + if (CollectionUtil.isEmpty(list)) { + return AjaxResult.success(); + } + memberPointVO memberPointVO = list.get(0); + memberPointVO.setMemberSettlePeriod(csPeriod.getSettleDate()); + startPage(); + return AjaxResult.success(memberPointVO); + } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java index 58063571..83eb320c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java @@ -9,6 +9,7 @@ import com.hzs.common.core.annotation.ColumnAuthority; import com.hzs.common.core.annotation.Log; import com.hzs.common.core.constant.CountryConstants; import com.hzs.common.core.constant.EnumsPrefixConstants; +import com.hzs.common.core.constant.TableNameConstants; import com.hzs.common.core.constant.VertexConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.domain.R; @@ -19,6 +20,7 @@ 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.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.system.config.BdAwards; @@ -26,9 +28,11 @@ import com.hzs.common.security.service.MemberTokenService; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.service.ITransactionCommonService; import com.hzs.common.util.TransactionUtils; +import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; import com.hzs.member.base.dto.LoginMember; import com.hzs.member.base.dto.MemberBusinessTemplate; import com.hzs.member.base.param.*; +import com.hzs.member.base.service.ICuMemberRetailService; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.vo.*; import com.hzs.member.login.service.IMemberLoginService; @@ -42,6 +46,7 @@ import com.hzs.system.config.dto.GradeDTO; import com.hzs.system.sys.IMenuColumnServiceApi; import com.hzs.system.sys.IUserServiceApi; import com.hzs.system.sys.dto.UserAuthorityDTO; +import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -53,6 +58,7 @@ import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.Collectors; +@Slf4j @RequestMapping("/manager/member") @RestController public class CuMemberController extends BaseController { @@ -65,6 +71,10 @@ public class CuMemberController extends BaseController { private MemberTokenService memberTokenService; @Autowired private IMemberLoginService iMemberLoginService; + @Autowired + private ICuMemberRetailService iCuMemberRetailService; + @Autowired + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @DubboReference IUserServiceApi iUserServiceApi; @@ -778,4 +788,56 @@ public class CuMemberController extends BaseController { return AjaxResult.success("", Base64Encoder.encode(tmpPwd.getBytes(StandardCharsets.UTF_8))); } + /** + * + * @param memberCode + * @param memberSettlePeriodId + * @return + */ + @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) + @GetMapping("/member-point") + public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId,String sort,String sortColumn) { + if (memberSettlePeriodId == null) { + log.error("参数错误{}", memberSettlePeriodId); + return AjaxResult.error(); + } + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); + log.info("会员结算表信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); + log.info("会员结算表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前表名不存在{}",settleTableName); + return AjaxResult.error(); + } + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); + list.forEach(item -> { + item.setMemberSettlePeriod(csPeriod.getSettleDate()); + }); + startPage(); + return AjaxResult.success(getDataTable(list)); + } + + /** + * + * @param memberCode + * @param memberSettlePeriodId + * @return + */ + @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) + @PostMapping("/member-point-export") + public void memberPointExport(@RequestParam String memberCode,@RequestParam Long memberSettlePeriodId,@RequestParam String sort,@RequestParam String sortColumn, HttpServletResponse response) { + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); + log.info("会员结算表信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); + log.info("会员结算表名称{}",settleTableName); + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); + list.forEach(item -> { + item.setMemberSettlePeriod(csPeriod.getSettleDate()); + }); + ExcelUtil util = new ExcelUtil<>(memberPointVO.class); + util.exportExcel(response, list, "会员点位信息"); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index e935b14c..16bdd4df 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -13,6 +13,7 @@ import com.hzs.member.handlebusiness.vo.BusinessMemberVO; import com.hzs.member.handlebusiness.vo.HandleBusinessVO; import com.hzs.member.marketnews.param.MarketNewsParam; import com.hzs.member.marketnews.vo.UserInvestmentVo; +import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; import com.hzs.retail.member.param.ShareRetailMemberParam; import org.apache.ibatis.annotations.Param; @@ -598,4 +599,6 @@ public interface CuMemberMapper extends BaseMapper { * @return */ CuMemberExt queryFansOrder(@Param("orderCode") String orderCode); + + CuMemberDetailDTO getCuMemberDetailById(@Param("pointMember") Long pointMember); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java index a4fa110f..94ab3f43 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java @@ -2,6 +2,7 @@ package com.hzs.member.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; +import com.hzs.member.structure.controller.dto.CuMemberPointDTO; import com.hzs.member.structure.controller.vo.ChildCodeVO; import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; @@ -34,10 +35,15 @@ public interface CuMemberRetailDetailMapper extends BaseMapper getCuMemberRetailDetailDTOList(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode, @Param("stage") Integer stage, @Param("stageStatus") Integer stageStatus); + + + CuMemberPointDTO getPointDetailByUserId(@Param("userId") Long userId, + @Param("stage") Integer stage, + @Param("point") Integer point, + @Param("settleTableName") String settleTableName); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java new file mode 100644 index 00000000..6f4411e4 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java @@ -0,0 +1,26 @@ +package com.hzs.member.base.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.member.base.CuMemberRetail; +import com.hzs.member.base.vo.memberPointVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author bd + * @since 2025-09-25 + */ +public interface CuMemberRetailMapper extends BaseMapper { + + Integer getFindCumemberRetailDetail(@Param("settleTableName") String settleTableName); + + List getMemberPointByMemberCode(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode,@Param("sort") String sort,@Param("sortColumn") String sortColumn); + + List getMemberPointByUserId(@Param("settleTableName") String settleTableName, @Param("userId") Long userId); +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java new file mode 100644 index 00000000..1b9e1fb1 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java @@ -0,0 +1,23 @@ +package com.hzs.member.base.service; + + +import com.hzs.member.base.vo.memberPointVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author bd + * @since 2025-09-25 + */ +public interface ICuMemberRetailService{ + + Integer getFindCuMemberRetailDetail(String settleTableName); + + List getMemberPointByMemberCode(String settleTableName, String memberCode,String sort,String sortColumn); + + List getMemberPointByUserId(String settleTableName, Long userId); +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index 708e012a..006bd679 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -20,6 +20,7 @@ import com.hzs.member.handlebusiness.vo.HandleBusinessVO; import com.hzs.member.marketnews.param.MarketNewsParam; import com.hzs.member.marketnews.vo.UserInvestmentVo; import com.hzs.member.share.param.ShareRegisterParam; +import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; import com.hzs.retail.member.param.ShareRetailMemberParam; import com.hzs.system.sys.dto.ApprovalBusinessResultDTO; @@ -870,4 +871,6 @@ public interface ICuMemberService extends IService { * @return */ Integer getMemberPhoneCount(String phone); + + CuMemberDetailDTO getCuMemberDetailById(Long pointMember); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java index c67c74aa..779d47c1 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java @@ -23,6 +23,6 @@ public interface ICumemberRetailDetailService { List getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus); - CuMemberPointDetailVO getPointDetail(Long pointMemberCode); + CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java new file mode 100644 index 00000000..09070d76 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java @@ -0,0 +1,37 @@ +package com.hzs.member.base.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.domain.member.base.CuMemberRetail; +import com.hzs.member.base.mapper.CuMemberRetailMapper; +import com.hzs.member.base.service.ICuMemberRetailService; +import com.hzs.member.base.vo.memberPointVO; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author bd + * @since 2025-09-25 + */ +@Service +public class CuMemberRetailServiceImpl extends ServiceImpl implements ICuMemberRetailService { + + @Override + public Integer getFindCuMemberRetailDetail(String settleTableName) { + return baseMapper.getFindCumemberRetailDetail(settleTableName); + } + + @Override + public List getMemberPointByMemberCode(String settleTableName, String memberCode, String sort, String sortColumn) { + return baseMapper.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); + } + + @Override + public List getMemberPointByUserId(String settleTableName, Long userId) { + return baseMapper.getMemberPointByUserId(settleTableName,userId); + } +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index fb7913c7..9fd7c590 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -52,6 +52,7 @@ import com.hzs.member.handlebusiness.vo.HandleBusinessVO; import com.hzs.member.marketnews.param.MarketNewsParam; import com.hzs.member.marketnews.vo.UserInvestmentVo; import com.hzs.member.share.param.ShareRegisterParam; +import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; import com.hzs.retail.member.param.ShareRetailMemberParam; import com.hzs.system.base.ICountryServiceApi; import com.hzs.system.base.ICurrencyServiceApi; @@ -3248,4 +3249,9 @@ public class CuMemberServiceImpl extends ServiceImpl i wrapper.eq(CuMember::getPhone, phone); return baseMapper.selectCount(wrapper); } + + @Override + public CuMemberDetailDTO getCuMemberDetailById(Long pointMember) { + return baseMapper.getCuMemberDetailById(pointMember); + } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java index 075e75c0..854026ee 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java @@ -3,12 +3,17 @@ package com.hzs.member.base.service.impl; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.core.enums.EBonusStage; +import com.hzs.common.core.enums.EBonusStageStatus; +import com.hzs.common.core.enums.EBonusStageType; import com.hzs.common.core.enums.EMemberChildNodeType; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.base.CuMember; import com.hzs.member.base.mapper.CuMemberRetailDetailMapper; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.ICumemberRetailDetailService; +import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; +import com.hzs.member.structure.controller.dto.CuMemberPointDTO; import com.hzs.member.structure.controller.vo.ChildCodeVO; import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; @@ -24,6 +29,8 @@ import java.util.stream.Stream; public class ICumemberRetailDetailServiceImpl extends ServiceImpl implements ICumemberRetailDetailService { @Autowired private ICuMemberService iCuMemberService; + @Autowired + private ICumemberRetailDetailService iCumemberRetailDetailService; @Override public List getChildList(String memberCode, Integer stage, Integer stageStatus, String settleTableName) { return baseMapper.getChildList(memberCode,stage,stageStatus,settleTableName); @@ -107,14 +114,36 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus) { - return baseMapper.getCuMemberRetailDetailDTOList(settleTableName, memberCode, stage, stageStatus); + List cuMemberRetailDetailDTOList = baseMapper.getCuMemberRetailDetailDTOList(settleTableName, memberCode, stage, stageStatus); + cuMemberRetailDetailDTOList.forEach(item -> { + item.setPointTypeLabel(EBonusStageType.getEBonusStageTypeByValue(item.getPointType()).getLabel()); + item.setStageLabel(EBonusStage.getEBonusStageByValue(item.getStage()).getLabel()); + item.setStageStatusLabel(EBonusStageStatus.getEBonusStageStatusLabel(item.getStageStatus()).getLabel()); + }); + return cuMemberRetailDetailDTOList; } @Override - public CuMemberPointDetailVO getPointDetail(Long pointMemberCode) { - return baseMapper.getPointDetail(pointMemberCode); + public CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember, Integer stage, Integer point, String settleTableName) { + CuMemberPointDTO cuMemberPointDTO = baseMapper.getPointDetailByUserId(pointMember, stage, point, settleTableName); + CuMemberDetailDTO cuMemberDetailDTO = iCuMemberService.getCuMemberDetailById(pointMember); + if (cuMemberDetailDTO == null || cuMemberPointDTO == null) { + return null; + } + return makeCuMemberPointDetailVO(cuMemberDetailDTO,cuMemberPointDTO,point); } + private CuMemberPointDetailVO makeCuMemberPointDetailVO(CuMemberDetailDTO cuMemberDetailDTO, CuMemberPointDTO cuMemberPointDTO,Integer point) { + return CuMemberPointDetailVO.builder() + .memberCode(cuMemberDetailDTO.getMemberCode()) + .memberName(cuMemberDetailDTO.getMemberName() + "-" + point) + .awardsName(cuMemberDetailDTO.getAwardsName()) + .vertexName(cuMemberDetailDTO.getVertexName()) + .creationTime(cuMemberPointDTO.getCreationTime()) + .build(); + } + + private Map makeNode(String id, String parentId, String label,Integer pointMember, Long memberId, Map memberMap) { Map map = new HashMap<>(); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java new file mode 100644 index 00000000..3f6d29af --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java @@ -0,0 +1,46 @@ +package com.hzs.member.base.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.hzs.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class memberPointVO { + /** + * 会员编号 + */ + @Excel(name = "会员编号") + private String memberCode; + /** + * 会员姓名 + */ + @Excel(name = "会员姓名") + private String memberName; + /** + * 子点位总数 + */ + @Excel(name = "子点位总数") + private Integer pointCount; + /** + * 待激活点位数 + */ + @Excel(name = "待激活点位数") + private Integer waitPointCount; + /** + * 复购业绩余额 + */ + @Excel(name = "复购业绩余额") + private Long repPvBalance; + /** + * 期数 + */ + @Excel(name = "期数",dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date memberSettlePeriod; +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java index 06f097b3..008e6ad2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java @@ -7,10 +7,10 @@ import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.enums.*; 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.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.base.CuMember; -import com.hzs.common.security.service.UserTokenService; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; import com.hzs.member.base.service.ICuMemberService; @@ -18,18 +18,14 @@ import com.hzs.member.base.service.ICumemberRetailDetailService; import com.hzs.member.structure.controller.vo.ChildCodeVO; import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; -import com.hzs.system.sys.dto.LoginUser; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.text.DateFormatSymbols; -import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.Date; import java.util.List; /** @@ -125,7 +121,7 @@ public class ApiMemberStructureController extends BaseController { @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/three-framework-list") - public AjaxResult threeFrameworkList(Integer stage,Integer stageStatus) { + public AjaxResult threeFrameworkList(Integer stage, Integer stageStatus) { if (stage == null) { log.error("参数错误"); return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); @@ -144,25 +140,43 @@ public class ApiMemberStructureController extends BaseController { log.info("日结表名称{}",settleTableName); // 校验当前日结表是否存在 Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前会员日结信息不存在{}",settleTableName); + return AjaxResult.error(); + } + startPage(); + // 查询当前会员所有子点位信息 + CuMember member = iCuMemberService.getMember(userId); + List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,member.getMemberCode(),stage,stageStatus); + return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); + } + + @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) + @GetMapping("/pointDetail") + public AjaxResult pointDetail(Integer stage,Integer point,Long pointMember) { + if (stage == null || point == null || pointMember == null) { + log.error("参数错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + Long userId = SecurityUtils.getUserId(); + if (userId == null) { + log.error("用户登录信息错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + // 获取当前时间 -1 天 + String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + // 查询相关日结表 + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday); + log.info("日结信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("日结表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前会员日结信息不存在{}",settleTableName); return AjaxResult.error("数据查询错误,请联系客服处理"); } - startPage(); - // 查询当前会员所有子点位信息 - CuMember member = iCuMemberService.getMember(userId); - List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,member.getMemberCode(),stage,stageStatus); - return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); - } - - @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) - @GetMapping("/pointDetail") - public AjaxResult pointDetail(Long pointMemberCode) { - if (pointMemberCode == null) { - log.error("参数错误"); - return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); - } - CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(userId, pointMember, stage, point, settleTableName); if (cuMemberPointDetailVO == null) { return null; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberDetailDTO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberDetailDTO.java new file mode 100644 index 00000000..5ea5d4f0 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberDetailDTO.java @@ -0,0 +1,30 @@ +package com.hzs.member.structure.controller.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CuMemberDetailDTO { + /** + * 会员编号 + */ + private String memberCode; + /** + * 会员姓名 + */ + private String memberName; + /** + * 荣誉奖衔 + */ + private String awardsName; + /** + * 隶属体系 + */ + private String vertexName; +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberPointDTO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberPointDTO.java new file mode 100644 index 00000000..5f8b3322 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberPointDTO.java @@ -0,0 +1,22 @@ +package com.hzs.member.structure.controller.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CuMemberPointDTO { + + + /** + * 点位创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date creationTime; + +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java index 447f730c..92505327 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java @@ -22,6 +22,7 @@ import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.sign.Base64Util; 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.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt; @@ -254,7 +255,7 @@ public class MemberStructureController extends BaseController { */ @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/three-framework-list") - public AjaxResult threeFrameworkList(Long memberSettlePeriodId, String memberCode,Integer stage,Integer stageStatus) { + public AjaxResult threeFrameworkList(Long memberSettlePeriodId, String memberCode, Integer stage, Integer stageStatus) { if (memberSettlePeriodId == null || memberCode == null || stage == null) { log.error("参数错误"); return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); @@ -265,24 +266,34 @@ public class MemberStructureController extends BaseController { log.info("日结表名称{}",settleTableName); // 校验当前日结表是否存在 Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前表名不存在{}",settleTableName); + return AjaxResult.error(); + } + startPage(); + // 查询当前会员所有子点位信息 + List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus); + return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); + } + + @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) + @GetMapping("/pointDetail") + public AjaxResult pointDetail(Long pkMember,Long pointMember,Integer stage,Integer point,Long memberSettlePeriodId) { + if (pkMember == null || stage == null || point == null || memberSettlePeriodId == null || pointMember == null) { + log.error("参数错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); + log.info("日结信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("日结表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); return AjaxResult.error("当前日结信息表不存在",settleTableName); } - startPage(); - // 查询当前会员所有子点位信息 - List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus); - return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); - } - - @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) - @GetMapping("/pointDetail") - public AjaxResult pointDetail(Long pointMemberCode) { - if (pointMemberCode == null) { - log.error("参数错误"); - return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); - } - CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(pkMember,pointMember,stage,point,settleTableName); if (cuMemberPointDetailVO == null) { return null; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java index fbc5864b..433f8c8e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java @@ -1,14 +1,19 @@ package com.hzs.member.structure.controller.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; + @Data @AllArgsConstructor @NoArgsConstructor @JsonInclude(JsonInclude.Include.ALWAYS) +@Builder public class CuMemberPointDetailVO { /** * 会员编号 @@ -26,4 +31,9 @@ public class CuMemberPointDetailVO { * 隶属体系 */ private String vertexName; + /** + * 点位创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date creationTime; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java index 660fed11..fa0d217b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java @@ -1,11 +1,14 @@ package com.hzs.member.structure.controller.vo; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; @Data @AllArgsConstructor @@ -14,146 +17,237 @@ import java.io.Serializable; public class CuMemberThreeFrameworkVO implements Serializable { private static final long serialVersionUID = 1L; + + /** + * 会员ID + */ + private Long pkMember; + + /** + * 会员子节点 + */ + private Integer childNode; + + /** + * 推荐人 + */ + private Long pkParent; + + /** + * 三个阶段(1、2、3) + */ + private Integer stage; + /** + * 三阶段实际值 + */ + private String stageLabel; + /** * 阶段状态(0=已完成,1=未完成) */ private Integer stageStatus; + /** + * 阶段完成实际值 + */ + private String stageStatusLabel; /** - * 阶段 + * 阶段完成时间 */ - private Integer stage; - /** - * 子点位 - */ - private Integer childNode; + private Date stageDate; /** * 点位1-1会员ID */ - private String pointMemberName11; + private Long pointMember11; /** - * 点位1-1会员ID + * 点位1-1会员子节点 */ - private String pointMemberCode11; + private Integer point11; /** * 点位1-2会员ID */ - private String pointMemberName12; + private Long pointMember12; /** - * 点位1-1会员ID + * 点位1-2会员子节点 */ - private String pointMemberCode12; + private Integer point12; /** * 点位2-1会员ID */ - private String pointMemberName21; + private Long pointMember21; /** - * 点位1-1会员ID + * 点位2-1会员子节点 */ - private String pointMemberCode21; + private Integer point21; /** * 点位2-2会员ID */ - private String pointMemberName22; + private Long pointMember22; /** - * 点位1-1会员ID + * 点位2-2会员子节点 */ - private String pointMemberCode22; + private Integer point22; /** * 点位2-3会员ID */ - private String pointMemberName23; + private Long pointMember23; /** - * 点位1-1会员ID + * 点位2-3会员子节点 */ - private String pointMemberCode23; + private Integer point23; /** * 点位2-4会员ID */ - private String pointMemberName24; + private Long pointMember24; /** - * 点位1-1会员ID + * 点位2-4会员子节点 */ - private String pointMemberCode24; + private Integer point24; /** * 点位3-1会员ID */ - private String pointMemberName31; + private Long pointMember31; /** - * 点位1-1会员ID + * 点位3-1会员子节点 */ - private String pointMemberCode31; + private Integer point31; /** * 点位3-2会员ID */ - private String pointMemberName32; + private Long pointMember32; /** - * 点位1-1会员ID + * 点位3-2会员子节点 */ - private String pointMemberCode32; + private Integer point32; /** * 点位3-3会员ID */ - private String pointMemberName33; + private Long pointMember33; /** - * 点位1-1会员ID + * 点位3-3会员子节点 */ - private String pointMemberCode33; + private Integer point33; /** * 点位3-4会员ID */ - private String pointMemberName34; + private Long pointMember34; /** - * 点位1-1会员ID + * 点位3-4会员子节点 */ - private String pointMemberCode34; + private Integer point34; /** * 点位3-5会员ID */ - private String pointMemberName35; + private Long pointMember35; /** - * 点位1-1会员ID + * 点位3-5会员子节点 */ - private String pointMemberCode35; + private Integer point35; /** * 点位3-6会员ID */ - private String pointMemberName36; + private Long pointMember36; /** - * 点位1-1会员ID + * 点位3-6会员子节点 */ - private String pointMemberCode36; + private Integer point36; /** * 点位3-7会员ID */ - private String pointMemberName37; + private Long pointMember37; /** - * 点位1-1会员ID + * 点位3-7会员子节点 */ - private String pointMemberCode37; + private Integer point37; /** * 点位3-8会员ID */ - private String pointMemberName38; + private Long pointMember38; /** - * 点位1-1会员ID + * 点位3-8会员子节点 */ - private String pointMemberCode38; + private Integer point38; + /** + * 点位类型(0=普通,1=赠送点位) + */ + private Integer pointType; + /** + * 点位类型实际值 + */ + private String pointTypeLabel; + + /** + * 赠点数量(三阶段走完赠送几个点位) + */ + private Integer pointGift; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date creationTime; + + /** + * 第一层会员ID + */ + private Long pointMemberFirst; + /** + * 第一层会员子节点 + */ + private Integer pointFirst; + + /** + * 第二层会员ID + */ + private Long pointMemberSecond; + /** + * 第二层会员子节点 + */ + private Integer pointSecond; + + /** + * 第三层会员ID + */ + private Long pointMemberThird; + /** + * 第三层会员子节点 + */ + private Integer pointThird; + + /** + * 三阶段1层奖金次数 + */ + private Integer thirdBonus1; + + /** + * 三阶段2层奖金次数 + */ + private Integer thirdBonus2; + + /** + * 三阶段3层奖金次数 + */ + private Integer thirdBonus3; + + /** + * 更新标记(不为null则需要入库) + */ + private Integer updateBool; } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index 7b65a071..bea85627 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -2405,4 +2405,17 @@ and so.order_type in (41, 43) and so.order_code = #{orderCode} + diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml new file mode 100644 index 00000000..d73f34a9 --- /dev/null +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PK_COUNTRY, + PK_MEMBER, PK_PARENT, MEMBER_CODE, MEMBER_NAME, CUSTOMER_TYPE, PHONE, PK_GRADE, PK_AWARDS, PK_SHARE_AWARDS, ENABLE_STATUS, ACCOUNT_STATUS, PAY_STATUS, PAY_TIME, CATEGORY, PURCHASE_STATUS, INCOME_STATUS, PK_TEAM_CODE, PK_CENTER_CODE, PK_VERTEX, PK_SETTLE_COUNTRY, IS_REAL_NAME, SYSTEM_TYPE, PK_RATE, NEW_CONSUME_PV, CONSUME_PV, MONTH_CONSUME_PV, NEW_CONSUME_AMOUNT, CONSUME_AMOUNT, MONTH_CONSUME_AMOUNT, TEAM_NEW_PV, TEAM_CONSUME_PV, TEAM_MONTH_PV, TEAM_NEW_AMOUNT, TEAM_CONSUME_AMOUNT, TEAM_MONTH_AMOUNT, RECOMMEND_NUM, TEAM_NUM, BIG_TEAM_PV, SMALL_TEAM_PV, REG_CONSUME_NEW_AMOUNT, REG_CONSUME_NEW_PV, REG_TEAM_NEW_AMOUNT, REG_TEAM_NEW_PV, REP_CONSUME_NEW_AMOUNT, REP_CONSUME_NEW_PV, REP_TEAM_NEW_AMOUNT, REP_TEAM_NEW_PV, POINT_COUNT, WAIT_POINT_COUNT, REP_PV_BALANCE, GIFT_ONE, GIFT_TWO + + + + + + diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml index 3f542e8d..2611ea8d 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml @@ -62,96 +62,10 @@ and cud.STAGE_STATUS = #{stageStatus} - + diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java index b65d3a63..a74cb802 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java @@ -17,13 +17,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -/** - * @Description: - * @Author: sui q - * @Time: 2022/9/16 17:10 - * @Classname: RedisComponent - * @PackageName: com.hzs.sale.component.load - */ @Component @Slf4j class RedisComponent { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java index 1a1746a8..d6793616 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java @@ -8,9 +8,6 @@ import java.util.List; /** * 邮费详情设置 Mapper 接口 - * - * @author hzs - * @since 2022-08-29 */ public interface BdPostageDetailMapper extends BaseMapper { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java index 9b433b45..856460b0 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java @@ -7,9 +7,6 @@ import java.util.List; /** * 邮费详情设置 服务类 - * - * @author hzs - * @since 2022-08-29 */ public interface IBdPostageDetailService extends IService { @@ -18,9 +15,6 @@ public interface IBdPostageDetailService extends IService { * * @param tranType 运费方式 * @param pkPostage 邮费模板 - * @return: BdPostageDetail - * @Author: sui q - * @Date: 2022/9/19 17:29 */ List getPostageDetail(Integer tranType, Integer pkPostage); @@ -28,9 +22,6 @@ public interface IBdPostageDetailService extends IService { * 根据运费类型查询对应的模板 * * @param tranType 运费类型 - * @return: List - * @Author: sui q - * @Date: 2022/9/19 17:02 */ List queryPostageDetail(Integer tranType); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java index fc9e5cfc..be33d282 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java @@ -9,12 +9,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** - *

* 邮费详情设置 服务实现类 - *

- * - * @author hzs - * @since 2022-08-29 */ @Service public class BdPostageDetailServiceImpl extends ServiceImpl implements IBdPostageDetailService { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java index ae52b1a0..c502c464 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java @@ -34,4 +34,16 @@ public enum EBonusStage { */ private final String label; + public static EBonusStage getEBonusStageByValue(Integer value) { + if (null == value) { + return null; + } + for (EBonusStage eBonusStage : EBonusStage.values()) { + if (eBonusStage.getValue() == value) { + return eBonusStage; + } + } + return null; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java index 2e3d4406..08bdfed5 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java @@ -30,4 +30,16 @@ public enum EBonusStageStatus { */ private final String label; + public static EBonusStageStatus getEBonusStageStatusLabel(Integer value) { + if (null == value) { + return null; + } + for (EBonusStageStatus eBonusStageStatus : EBonusStageStatus.values()) { + if (eBonusStageStatus.getValue() == value) { + return eBonusStageStatus; + } + } + return null; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java index 9497814c..b9c86dff 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java @@ -30,4 +30,15 @@ public enum EBonusStageType { */ private final String label; + public static EBonusStageType getEBonusStageTypeByValue(Integer value) { + if (null == value) { + return null; + } + for (EBonusStageType eBonusStageType : EBonusStageType.values()) { + if (eBonusStageType.getValue() == value) { + return eBonusStageType; + } + } + return null; + } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java index 2ea8ab27..df49c905 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java @@ -74,6 +74,8 @@ public enum EOperationBusiness { SHARE_DELETE("删除空点"), + MEMBER_POINT("会员子点信息"), + //////////////////// 架构管理 //////////////////// SCHEME_ONE("方案一"), diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java index 8bac1e44..85229246 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java @@ -40,6 +40,8 @@ public enum EOperationModule { BUSINESS_LICENSE("营业执照"), + MEMBER_POINT("会员子点信息"), + //////////////////// 架构管理 //////////////////// RESETTLE_FRAMEWORK("安置架构"), @@ -400,9 +402,13 @@ public enum EOperationModule { STATISTIC_ANALYSIS("统计分析"), MEMBER_RISK_CONTROL("K值风控设置"), + ORDER_SYNC("同步失败订单"), + MEMBER_RETAIL_CHILDNODE("会员子节点查询"), + MEMBER_RETAIL_TREE("三阶段结构"), + MEMBER_RETAIL_TREE_LIST("三阶段数据") ; diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java index 6b996bf6..a5eea6b0 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java @@ -212,4 +212,10 @@ public class CuMemberRetailRange extends BaseEntity { @TableField("GIFT_POINT") private Integer giftPoint; + /** + * 赠送点位填充最新时间 + */ + @TableField("GIFT_PAY_TIME") + private Date giftPayTime; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java index b9e2a69e..97b019a1 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java @@ -6,8 +6,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; +import java.util.Date; import java.util.LinkedHashMap; -import java.util.List; /** * 新零售极差实体 @@ -142,4 +142,9 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange { */ private LinkedHashMap threeDetailMap; + /** + * 直推会员列表 + */ + private LinkedHashMap childRetailMap; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMemberRetail.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMemberRetail.java new file mode 100644 index 00000000..cd2be83e --- /dev/null +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMemberRetail.java @@ -0,0 +1,339 @@ +package com.hzs.common.domain.member.base; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.TableField; +import com.hzs.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author bd + * @since 2025-09-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@TableName("CU_MEMBER_RETAIL") +@AllArgsConstructor +@NoArgsConstructor +public class CuMemberRetail extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 会员ID + */ + @TableField("PK_MEMBER") + private Long pkMember; + + /** + * 推荐人ID + */ + @TableField("PK_PARENT") + private Long pkParent; + + /** + * 会员编号 + */ + @TableField("MEMBER_CODE") + private String memberCode; + + /** + * 会员姓名 + */ + @TableField("MEMBER_NAME") + private String memberName; + + /** + * 会员类型(0.正常 1.空单 2.待激活-不用 3.已注销-不用 4.嗨粉 6.会员) + */ + @TableField("CUSTOMER_TYPE") + private Integer customerType; + + /** + * 联系方式 + */ + @TableField("PHONE") + private String phone; + + /** + * 会员等级 + */ + @TableField("PK_GRADE") + private Integer pkGrade; + + /** + * 会员奖衔 + */ + @TableField("PK_AWARDS") + private Integer pkAwards; + + /** + * 分红奖衔 + */ + @TableField("PK_SHARE_AWARDS") + private Integer pkShareAwards; + + /** + * 是否支付 + */ + @TableField("ENABLE_STATUS") + private Integer enableStatus; + + /** + * 账户状态(0=正常,1=限制登录(仅登录,无操作),2=禁止登录(不能登录),3=停止收益(计算不发),4=停算奖金(不计算奖金)) + */ + @TableField("ACCOUNT_STATUS") + private Integer accountStatus; + + /** + * 支付状态 + */ + @TableField("PAY_STATUS") + private Integer payStatus; + + /** + * 支付时间 + */ + @TableField("PAY_TIME") + private Date payTime; + + /** + * 用户类型分类(0=正常(正常 空单 嗨粉) 1=待激活(撤单死点)2=已注销(退单)) + */ + @TableField("CATEGORY") + private Integer category; + + /** + * 复购免考(0=是,1=否) + */ + @TableField("PURCHASE_STATUS") + private Integer purchaseStatus; + + /** + * 收益状态 (0=正常,1=停止收益) + */ + @TableField("INCOME_STATUS") + private Integer incomeStatus; + + /** + * 团队ID + */ + @TableField("PK_TEAM_CODE") + private Long pkTeamCode; + + /** + * 报单中心ID + */ + @TableField("PK_CENTER_CODE") + private Long pkCenterCode; + + /** + * 体系ID + */ + @TableField("PK_VERTEX") + private Long pkVertex; + + /** + * 结算国 + */ + @TableField("PK_SETTLE_COUNTRY") + private Integer pkSettleCountry; + + /** + * 是否实名认证(0=是,1=否) + */ + @TableField("IS_REAL_NAME") + private Integer isRealName; + + /** + * 系统类型(2=新零售) + */ + @TableField("SYSTEM_TYPE") + private Integer systemType; + + /** + * 汇率 + */ + @TableField("PK_RATE") + private Integer pkRate; + + /** + * 本人当天新消费pv + */ + @TableField("NEW_CONSUME_PV") + private BigDecimal newConsumePv; + + /** + * 本人累计消费pv + */ + @TableField("CONSUME_PV") + private BigDecimal consumePv; + + /** + * 本人月累计消费pv + */ + @TableField("MONTH_CONSUME_PV") + private BigDecimal monthConsumePv; + + /** + * 本人当天新消费金额 + */ + @TableField("NEW_CONSUME_AMOUNT") + private BigDecimal newConsumeAmount; + + /** + * 本人累计消费金额 + */ + @TableField("CONSUME_AMOUNT") + private BigDecimal consumeAmount; + + /** + * 本人月累计消费金额 + */ + @TableField("MONTH_CONSUME_AMOUNT") + private BigDecimal monthConsumeAmount; + + /** + * 团队当天新增消费pv + */ + @TableField("TEAM_NEW_PV") + private BigDecimal teamNewPv; + + /** + * 团队累计消费pv + */ + @TableField("TEAM_CONSUME_PV") + private BigDecimal teamConsumePv; + + /** + * 团队月累计消费pv + */ + @TableField("TEAM_MONTH_PV") + private BigDecimal teamMonthPv; + + /** + * 团队新增消费金额 + */ + @TableField("TEAM_NEW_AMOUNT") + private BigDecimal teamNewAmount; + + /** + * 团队累计消费金额 + */ + @TableField("TEAM_CONSUME_AMOUNT") + private BigDecimal teamConsumeAmount; + + /** + * 团队月累计消费金额 + */ + @TableField("TEAM_MONTH_AMOUNT") + private BigDecimal teamMonthAmount; + + /** + * 推荐人数 + */ + @TableField("RECOMMEND_NUM") + private Integer recommendNum; + + /** + * 团队人数 + */ + @TableField("TEAM_NUM") + private Integer teamNum; + + @TableField("BIG_TEAM_PV") + private BigDecimal bigTeamPv; + + @TableField("SMALL_TEAM_PV") + private BigDecimal smallTeamPv; + + /** + * 本日-个人注册(精品专区)新增金额 + */ + @TableField("REG_CONSUME_NEW_AMOUNT") + private BigDecimal regConsumeNewAmount; + + /** + * 本日-个人注册(精品专区)新增业绩 + */ + @TableField("REG_CONSUME_NEW_PV") + private BigDecimal regConsumeNewPv; + + /** + * 本日-团队注册(精品专区)新增金额 + */ + @TableField("REG_TEAM_NEW_AMOUNT") + private BigDecimal regTeamNewAmount; + + /** + * 本日-团队注册(精品专区)新增业绩 + */ + @TableField("REG_TEAM_NEW_PV") + private BigDecimal regTeamNewPv; + + /** + * 本日-个人复购(商城专区)新增金额 + */ + @TableField("REP_CONSUME_NEW_AMOUNT") + private BigDecimal repConsumeNewAmount; + + /** + * 本日-个人复购(商城专区)新增业绩 + */ + @TableField("REP_CONSUME_NEW_PV") + private BigDecimal repConsumeNewPv; + + /** + * 本日-团队复购(商城专区)新增金额 + */ + @TableField("REP_TEAM_NEW_AMOUNT") + private BigDecimal repTeamNewAmount; + + /** + * 本日-团队复购(商城专区)新增业绩 + */ + @TableField("REP_TEAM_NEW_PV") + private BigDecimal repTeamNewPv; + + /** + * 子点位总数 + */ + @TableField("POINT_COUNT") + private Integer pointCount; + + /** + * 待激活子点位数 + */ + @TableField("WAIT_POINT_COUNT") + private Integer waitPointCount; + + /** + * 复购业绩余额 + */ + @TableField("REP_PV_BALANCE") + private BigDecimal repPvBalance; + + /** + * 赠送1个点位已存在标记 + */ + @TableField("GIFT_ONE") + private Integer giftOne; + + /** + * 赠送2个点位已存在标记 + */ + @TableField("GIFT_TWO") + private Integer giftTwo; + + +} diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java index 7923914d..01400e6f 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java @@ -12,19 +12,14 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** - *

* 邮费详情设置 - *

- * - * @author hzs - * @since 2022-08-29 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("BD_POSTAGE_DETAIL") @KeySequence("BD_POSTAGE_DETAIL_SEQ") -public class BdPostageDetail extends BaseEntity { +public class BdPostageDetail extends BaseEntity { private static final long serialVersionUID = 1L; @@ -32,7 +27,6 @@ public class BdPostageDetail extends BaseEntity { private Integer pkId; - /** * 首重重量 */ diff --git a/code-util/src/test/java/com/CodeGenerator.java b/code-util/src/test/java/com/CodeGenerator.java index 5aae5688..645a8119 100644 --- a/code-util/src/test/java/com/CodeGenerator.java +++ b/code-util/src/test/java/com/CodeGenerator.java @@ -20,7 +20,7 @@ public class CodeGenerator { // 模块名称(包名) String moduleName = "com.hzs.common.domain"; // 表名 - String[] tables = {"CU_MEMBER_RETAIL_DETAIL"}; + String[] tables = {"CU_MEMBER_RETAIL"}; // 生成实体是否继承统一父类 boolean superBool = true;