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..a81356c8 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,39 @@ 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 null; + } + list.forEach(item -> { + item.setMemberSettlePeriod(csPeriod.getSettleDate()); + }); + startPage(); + return AjaxResult.success(getDataTable(list)); + } } 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..dc3881f7 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,16 +20,20 @@ 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.base.CuMemberRetail; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.system.config.BdAwards; 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 +47,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 +59,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 +72,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 +789,38 @@ 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) { + if (memberCode == null || memberSettlePeriodId == null) { + log.error("参数错误{}{}",memberCode, memberSettlePeriodId); + return AjaxResult.error(MemberMsgConstants.REQUIRED_NOT_EMPTY); + } + 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("当前会员结算表不存在",settleTableName); + } + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode); + if (CollectionUtil.isEmpty(list)) { + return null; + } + list.forEach(item -> { + item.setMemberSettlePeriod(csPeriod.getSettleDate()); + }); + startPage(); + return AjaxResult.success(getDataTable(list)); + } + } 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..724a4730 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 @@ -34,10 +34,15 @@ public interface CuMemberRetailDetailMapper extends BaseMapper getCuMemberRetailDetailDTOList(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode, @Param("stage") Integer stage, @Param("stageStatus") Integer stageStatus); + + + CuMemberPointDetailVO 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..453672e1 --- /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); + + 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..510dc8d1 --- /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); + + List getMemberPointByUserId(String settleTableName, Long userId); +} 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..94be8633 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, 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..f2c3ac9a --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java @@ -0,0 +1,38 @@ +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.Collections; +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) { + return baseMapper.getMemberPointByMemberCode(settleTableName,memberCode); + } + + @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/ICumemberRetailDetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java index d2aa28b5..040293a9 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,6 +3,9 @@ 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; @@ -24,6 +27,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 +112,23 @@ 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, Integer stage, Integer point, String settleTableName) { + CuMemberPointDetailVO pointDetailByUserId = baseMapper.getPointDetailByUserId(userId, stage, point, settleTableName); + pointDetailByUserId.setMemberName(pointDetailByUserId.getMemberName() + "-" + point); + return pointDetailByUserId; } + 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..676f4e52 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java @@ -0,0 +1,39 @@ +package com.hzs.member.base.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class memberPointVO { + /** + * 会员编号 + */ + private String memberCode; + /** + * 会员姓名 + */ + private String memberName; + /** + * 子点位总数 + */ + private Integer pointCount; + /** + * 待激活点位数 + */ + private Integer waitPointCount; + /** + * 复购业绩余额 + */ + private Long repPvBalance; + /** + * 期数 + */ + @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..e002886d 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 @@ -157,12 +157,30 @@ public class ApiMemberStructureController extends BaseController { @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) { + public AjaxResult pointDetail(Integer stage,Integer point) { + if (stage == null || point == null) { log.error("参数错误"); return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } - CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + 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("数据查询错误,请联系客服处理"); + } + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(userId,stage,point,settleTableName); if (cuMemberPointDetailVO == null) { return null; } 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 db4febc3..51a3b22c 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 @@ -276,12 +276,22 @@ public class MemberStructureController extends BaseController { @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) { + public AjaxResult pointDetail(Long pkMember,Integer stage,Integer point,Long memberSettlePeriodId) { + if (pkMember == null || stage == null || point == null || memberSettlePeriodId == null) { log.error("参数错误"); return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } - CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + 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); + } + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(pkMember,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..68982f52 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,10 +1,13 @@ package com.hzs.member.structure.controller.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; + @Data @AllArgsConstructor @NoArgsConstructor @@ -26,4 +29,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/CuMemberRetailMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml new file mode 100644 index 00000000..20de4174 --- /dev/null +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..f7897a31 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-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/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/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;