From f9f2643b36bfe095a082a875a34304d0966200ff Mon Sep 17 00:00:00 2001 From: zhangheng Date: Wed, 22 Oct 2025 18:00:22 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=89=8D=E5=8F=B0=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailDetailMapper.java | 13 ++-- .../service/ICumemberRetailDetailService.java | 8 +- .../ICumemberRetailDetailServiceImpl.java | 75 +++++++++++++------ .../api/ApiMemberStructureController.java | 2 +- .../controller/dto/CuMemberPointDTO.java | 4 + .../manage/MemberStructureController.java | 5 +- .../member/CuMemberRetailDetailMapper.xml | 69 ++++++++--------- 7 files changed, 105 insertions(+), 71 deletions(-) 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 94ab3f43..95eecc55 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 @@ -9,6 +9,7 @@ import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; public interface CuMemberRetailDetailMapper extends BaseMapper { List getChildList(@Param("memberCode") String memberCode, @@ -16,12 +17,6 @@ public interface CuMemberRetailDetailMapper extends BaseMapper getPointDetailListByPoints(@Param("pkMember") Long pkMember, + @Param("points") Set points, + @Param("stage") Integer stage, + @Param("settleTableName") String settleTableName); + } 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 779d47c1..2052c3e1 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 @@ -2,20 +2,20 @@ package com.hzs.member.base.service; import cn.hutool.core.lang.tree.Tree; 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; import java.util.List; +import java.util.Set; public interface ICumemberRetailDetailService { List getChildList(String memberCode, Integer stage, Integer stageStatus, String settleTableName); - CuMemberRetailDetail getCuMemberRetailDetail(String memberCode, Integer stage, Integer stageStatus, String childNode, String settleTableName); - Integer getFindCumemberRetailDetail(String settleTableName); - List> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail); + List> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail,String settleTableName); CuMemberRetailDetail getCuMemberRetailDetailByUserId(Long userId, Integer stage, Integer stageStatus, String childNode, String settleTableName); @@ -25,4 +25,6 @@ public interface ICumemberRetailDetailService { CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName); + + List getPointDetailListByPoints(Long pkMember, Set points, Integer stage, String settleTableName); } 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 850b37d0..a7a3e8cf 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 @@ -17,6 +17,7 @@ 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; +import lombok.var; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -37,10 +38,6 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail) { + public List> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail,String settleTableName) { // 所有会员id Set ids = new LinkedHashSet<>(); ids.add(cuMemberRetailDetail.getPkMember()); @@ -59,7 +56,6 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl members; if (ids.isEmpty()) { @@ -70,28 +66,45 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl memberMap = members.stream() .collect(Collectors.toMap(CuMember::getPkId, Function.identity(), (a, b) -> a)); + // 所有点位信息 + Set points = new LinkedHashSet<>(); + // 过滤所有空的点位信息 + Stream.of( + cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPoint12(), + cuMemberRetailDetail.getPoint21(), cuMemberRetailDetail.getPoint22(), cuMemberRetailDetail.getPoint23(), cuMemberRetailDetail.getPoint24(), + cuMemberRetailDetail.getPoint31(), cuMemberRetailDetail.getPoint32(), cuMemberRetailDetail.getPoint33(), cuMemberRetailDetail.getPoint34(), + cuMemberRetailDetail.getPoint35(), cuMemberRetailDetail.getPoint36(), cuMemberRetailDetail.getPoint37(), cuMemberRetailDetail.getPoint38() + ).filter(Objects::nonNull).forEach(points::add); + // 查询所有点位信息创建时间 + List cuMemberPointDTOList; + if (points.isEmpty()) { + cuMemberPointDTOList = Collections.emptyList(); + }else { + cuMemberPointDTOList = iCumemberRetailDetailService.getPointDetailListByPoints(cuMemberRetailDetail.getPkMember(),points,cuMemberRetailDetail.getStage(),settleTableName); + } + Map collect = cuMemberPointDTOList.stream() + .collect(Collectors.toMap(CuMemberPointDTO::getChildNode, Function.identity(), (a, b) -> a)); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String formattedTime = sdf.format(cuMemberRetailDetail.getCreationTime()); // 构建node List> nodeList = new ArrayList<>(); - nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), formattedTime,cuMemberRetailDetail.getChildNode(),cuMemberRetailDetail.getPkMember(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), sdf.format(cuMemberRetailDetail.getCreationTime()),cuMemberRetailDetail.getChildNode(),cuMemberRetailDetail.getPkMember(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), formattedTime,cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPointMember11(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), formattedTime,cuMemberRetailDetail.getPoint12(),cuMemberRetailDetail.getPointMember12(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint11(),sdf),cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPointMember11(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint12(),sdf),cuMemberRetailDetail.getPoint12(),cuMemberRetailDetail.getPointMember12(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE3.getId(), EMemberChildNodeType.NODE3.getParentId(), EMemberChildNodeType.NODE3.getLabel(), formattedTime,cuMemberRetailDetail.getPoint21(),cuMemberRetailDetail.getPointMember21(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE4.getId(), EMemberChildNodeType.NODE4.getParentId(), EMemberChildNodeType.NODE4.getLabel(), formattedTime,cuMemberRetailDetail.getPoint22(),cuMemberRetailDetail.getPointMember22(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE5.getId(), EMemberChildNodeType.NODE5.getParentId(), EMemberChildNodeType.NODE5.getLabel(), formattedTime,cuMemberRetailDetail.getPoint23(),cuMemberRetailDetail.getPointMember23(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE6.getId(), EMemberChildNodeType.NODE6.getParentId(), EMemberChildNodeType.NODE6.getLabel(), formattedTime,cuMemberRetailDetail.getPoint24(),cuMemberRetailDetail.getPointMember24(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE3.getId(), EMemberChildNodeType.NODE3.getParentId(), EMemberChildNodeType.NODE3.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint21(),sdf),cuMemberRetailDetail.getPoint21(),cuMemberRetailDetail.getPointMember21(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE4.getId(), EMemberChildNodeType.NODE4.getParentId(), EMemberChildNodeType.NODE4.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint22(),sdf),cuMemberRetailDetail.getPoint22(),cuMemberRetailDetail.getPointMember22(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE5.getId(), EMemberChildNodeType.NODE5.getParentId(), EMemberChildNodeType.NODE5.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint23(),sdf),cuMemberRetailDetail.getPoint23(),cuMemberRetailDetail.getPointMember23(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE6.getId(), EMemberChildNodeType.NODE6.getParentId(), EMemberChildNodeType.NODE6.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint24(),sdf),cuMemberRetailDetail.getPoint24(),cuMemberRetailDetail.getPointMember24(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE7.getId(), EMemberChildNodeType.NODE7.getParentId(), EMemberChildNodeType.NODE7.getLabel(), formattedTime,cuMemberRetailDetail.getPoint31(),cuMemberRetailDetail.getPointMember31(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE8.getId(), EMemberChildNodeType.NODE8.getParentId(), EMemberChildNodeType.NODE8.getLabel(), formattedTime,cuMemberRetailDetail.getPoint32(),cuMemberRetailDetail.getPointMember32(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE9.getId(), EMemberChildNodeType.NODE9.getParentId(), EMemberChildNodeType.NODE9.getLabel(), formattedTime,cuMemberRetailDetail.getPoint33(),cuMemberRetailDetail.getPointMember33(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE10.getId(), EMemberChildNodeType.NODE10.getParentId(), EMemberChildNodeType.NODE10.getLabel(), formattedTime,cuMemberRetailDetail.getPoint34(),cuMemberRetailDetail.getPointMember34(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE11.getId(), EMemberChildNodeType.NODE11.getParentId(), EMemberChildNodeType.NODE11.getLabel(), formattedTime,cuMemberRetailDetail.getPoint35(),cuMemberRetailDetail.getPointMember35(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE12.getId(), EMemberChildNodeType.NODE12.getParentId(), EMemberChildNodeType.NODE12.getLabel(), formattedTime,cuMemberRetailDetail.getPoint36(),cuMemberRetailDetail.getPointMember36(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE13.getId(), EMemberChildNodeType.NODE13.getParentId(), EMemberChildNodeType.NODE13.getLabel(), formattedTime,cuMemberRetailDetail.getPoint37(),cuMemberRetailDetail.getPointMember37(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE14.getId(), EMemberChildNodeType.NODE14.getParentId(), EMemberChildNodeType.NODE14.getLabel(), formattedTime,cuMemberRetailDetail.getPoint38(),cuMemberRetailDetail.getPointMember38(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE7.getId(), EMemberChildNodeType.NODE7.getParentId(), EMemberChildNodeType.NODE7.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint31(),sdf),cuMemberRetailDetail.getPoint31(),cuMemberRetailDetail.getPointMember31(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE8.getId(), EMemberChildNodeType.NODE8.getParentId(), EMemberChildNodeType.NODE8.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint32(),sdf),cuMemberRetailDetail.getPoint32(),cuMemberRetailDetail.getPointMember32(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE9.getId(), EMemberChildNodeType.NODE9.getParentId(), EMemberChildNodeType.NODE9.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint33(),sdf),cuMemberRetailDetail.getPoint33(),cuMemberRetailDetail.getPointMember33(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE10.getId(), EMemberChildNodeType.NODE10.getParentId(), EMemberChildNodeType.NODE10.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint34(),sdf),cuMemberRetailDetail.getPoint34(),cuMemberRetailDetail.getPointMember34(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE11.getId(), EMemberChildNodeType.NODE11.getParentId(), EMemberChildNodeType.NODE11.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint35(),sdf),cuMemberRetailDetail.getPoint35(),cuMemberRetailDetail.getPointMember35(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE12.getId(), EMemberChildNodeType.NODE12.getParentId(), EMemberChildNodeType.NODE12.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint36(),sdf),cuMemberRetailDetail.getPoint36(),cuMemberRetailDetail.getPointMember36(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE13.getId(), EMemberChildNodeType.NODE13.getParentId(), EMemberChildNodeType.NODE13.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint37(),sdf),cuMemberRetailDetail.getPoint37(),cuMemberRetailDetail.getPointMember37(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE14.getId(), EMemberChildNodeType.NODE14.getParentId(), EMemberChildNodeType.NODE14.getLabel(), safeFormatTime(collect,cuMemberRetailDetail.getPoint38(),sdf),cuMemberRetailDetail.getPoint38(),cuMemberRetailDetail.getPointMember38(), memberMap)); // 构造树结构 return TreeUtil.build(nodeList, EMemberChildNodeType.ROOT.getParentId(), (node, tree) -> { @@ -103,8 +116,16 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl collect, Integer pointKey, SimpleDateFormat sdf) { + var detail = collect.get(pointKey); + if (detail == null || detail.getCreationTime() == null) { + return ""; + } + return sdf.format(detail.getCreationTime()); + } @Override public CuMemberRetailDetail getCuMemberRetailDetailByUserId(Long userId, Integer stage, Integer stageStatus, String childNode, String settleTableName) { @@ -137,6 +158,11 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl getPointDetailListByPoints(Long pkMember, Set points, Integer stage, String settleTableName) { + return baseMapper.getPointDetailListByPoints(pkMember,points,stage,settleTableName); + } + private CuMemberPointDetailVO makeCuMemberPointDetailVO(CuMemberDetailDTO cuMemberDetailDTO, CuMemberPointDTO cuMemberPointDTO,Integer point) { return CuMemberPointDetailVO.builder() .memberCode(cuMemberDetailDTO.getMemberCode()) @@ -155,18 +181,21 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail); + List> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail,settleTableName); return AjaxResult.success(cuMemberRetailTree); } /** 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 index 5f8b3322..fb845077 100644 --- 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 @@ -13,6 +13,10 @@ import java.util.Date; public class CuMemberPointDTO { + /** + * 点位信息 + */ + private Integer childNode; /** * 点位创建时间 */ 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 6149264c..d75287cb 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 @@ -235,14 +235,15 @@ public class MemberStructureController extends BaseController { log.error("当前表名不存在{}",settleTableName); return AjaxResult.error("当前日结信息表不存在",settleTableName); } - CuMemberRetailDetail cuMemberRetailDetail = iCumemberRetailDetailService.getCuMemberRetailDetail(memberCode,stage,stageStatus,childNode,settleTableName); + CuMember member = iCuMemberService.getMember(memberCode); + CuMemberRetailDetail cuMemberRetailDetail = iCumemberRetailDetailService.getCuMemberRetailDetailByUserId(member.getPkId(),stage,stageStatus,childNode,settleTableName); log.info("日结表会员信息{}",cuMemberRetailDetail); if (cuMemberRetailDetail == null) { log.error("当前会员日结信息不存在{}",settleTableName); return AjaxResult.error("当前会员日结信息不存在",settleTableName); } // 拼接树形结构 - List> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail); + List> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail,settleTableName); return AjaxResult.success(cuMemberRetailTree); } /** 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 bd1db8e3..0e18c4e9 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 @@ -4,13 +4,13 @@ - SELECT - curd.* + curd.* FROM - ${settleTableName} curd - LEFT JOIN CU_MEMBER cu ON curd.PK_MEMBER = cu.PK_ID + ${settleTableName} curd + LEFT JOIN CU_MEMBER cu ON curd.PK_MEMBER = cu.PK_ID WHERE - cu.MEMBER_CODE = #{memberCode} - AND curd.STAGE = #{stage} + cu.MEMBER_CODE = #{memberCode} + AND curd.STAGE = #{stage} and curd.STAGE_STATUS = #{stageStatus} ORDER BY - curd.CHILD_NODE + curd.CHILD_NODE +