## 阶段架构查询bug修改
This commit is contained in:
		
							parent
							
								
									e3af3db152
								
							
						
					
					
						commit
						6bf2125a18
					
				|  | @ -2,6 +2,7 @@ package com.hzs.member.base.mapper; | ||||||
| 
 | 
 | ||||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||||
| import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; | import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; | ||||||
|  | import com.hzs.member.base.param.CuMemberPointPairParam; | ||||||
| import com.hzs.member.structure.controller.dto.CuMemberPointDTO; | import com.hzs.member.structure.controller.dto.CuMemberPointDTO; | ||||||
| import com.hzs.member.structure.controller.vo.ChildCodeVO; | import com.hzs.member.structure.controller.vo.ChildCodeVO; | ||||||
| import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; | import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; | ||||||
|  | @ -42,8 +43,7 @@ public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDet | ||||||
|                                             @Param("point") Integer point, |                                             @Param("point") Integer point, | ||||||
|                                             @Param("settleTableName") String settleTableName); |                                             @Param("settleTableName") String settleTableName); | ||||||
| 
 | 
 | ||||||
|     List<CuMemberPointDTO> getPointDetailListByPoints(@Param("pkMember") Long pkMember, |     List<CuMemberPointDTO> getPointDetailListByPoints(@Param("pairList") List<CuMemberPointPairParam> pairList, | ||||||
|                                                            @Param("points") Set<Integer> points, |  | ||||||
|                                                            @Param("stage") Integer stage, |                                                            @Param("stage") Integer stage, | ||||||
|                                                            @Param("settleTableName") String settleTableName); |                                                            @Param("settleTableName") String settleTableName); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | package com.hzs.member.base.param; | ||||||
|  | 
 | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import lombok.Data; | ||||||
|  | import lombok.NoArgsConstructor; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | @AllArgsConstructor | ||||||
|  | @NoArgsConstructor | ||||||
|  | public class CuMemberPointPairParam { | ||||||
|  | 
 | ||||||
|  |     private Long pkMember; | ||||||
|  | 
 | ||||||
|  |     private Integer childNode; | ||||||
|  | } | ||||||
|  | @ -2,6 +2,7 @@ package com.hzs.member.base.service; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.lang.tree.Tree; | import cn.hutool.core.lang.tree.Tree; | ||||||
| import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; | import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; | ||||||
|  | import com.hzs.member.base.param.CuMemberPointPairParam; | ||||||
| import com.hzs.member.structure.controller.dto.CuMemberPointDTO; | import com.hzs.member.structure.controller.dto.CuMemberPointDTO; | ||||||
| import com.hzs.member.structure.controller.vo.ChildCodeVO; | import com.hzs.member.structure.controller.vo.ChildCodeVO; | ||||||
| import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; | import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; | ||||||
|  | @ -26,5 +27,5 @@ public interface ICumemberRetailDetailService { | ||||||
| 
 | 
 | ||||||
|     CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName); |     CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName); | ||||||
| 
 | 
 | ||||||
|     List<CuMemberPointDTO> getPointDetailListByPoints(Long pkMember, Set<Integer> points, Integer stage, String settleTableName); |     List<CuMemberPointDTO> getPointDetailListByPoints(List<CuMemberPointPairParam> pairList, Integer stage, String settleTableName); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ import com.hzs.common.core.enums.EMemberChildNodeType; | ||||||
| import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; | import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; | ||||||
| import com.hzs.common.domain.member.base.CuMember; | import com.hzs.common.domain.member.base.CuMember; | ||||||
| import com.hzs.member.base.mapper.CuMemberRetailDetailMapper; | import com.hzs.member.base.mapper.CuMemberRetailDetailMapper; | ||||||
|  | import com.hzs.member.base.param.CuMemberPointPairParam; | ||||||
| import com.hzs.member.base.service.ICuMemberService; | import com.hzs.member.base.service.ICuMemberService; | ||||||
| import com.hzs.member.base.service.ICumemberRetailDetailService; | import com.hzs.member.base.service.ICumemberRetailDetailService; | ||||||
| import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; | import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; | ||||||
|  | @ -47,7 +48,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail | ||||||
|     @Override |     @Override | ||||||
|     public List<Tree<String>> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail,String settleTableName) { |     public List<Tree<String>> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail,String settleTableName) { | ||||||
|         // 所有会员id |         // 所有会员id | ||||||
|         Set<Long> ids = new LinkedHashSet<>(); |         List<Long> ids = new ArrayList<>(); | ||||||
|         ids.add(cuMemberRetailDetail.getPkMember()); |         ids.add(cuMemberRetailDetail.getPkMember()); | ||||||
|         // 过滤空的会员id |         // 过滤空的会员id | ||||||
|         Stream.of( |         Stream.of( | ||||||
|  | @ -67,7 +68,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail | ||||||
|         Map<Long, CuMember> memberMap = members.stream() |         Map<Long, CuMember> memberMap = members.stream() | ||||||
|                 .collect(Collectors.toMap(CuMember::getPkId, Function.identity(), (a, b) -> a)); |                 .collect(Collectors.toMap(CuMember::getPkId, Function.identity(), (a, b) -> a)); | ||||||
|         // 所有点位信息 |         // 所有点位信息 | ||||||
|         Set<Integer> points = new LinkedHashSet<>(); |         List<Integer> points = new ArrayList<>(); | ||||||
|         // 过滤所有空的点位信息 |         // 过滤所有空的点位信息 | ||||||
|         Stream.of( |         Stream.of( | ||||||
|                 cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPoint12(), |                 cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPoint12(), | ||||||
|  | @ -77,13 +78,24 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail | ||||||
|         ).filter(Objects::nonNull).forEach(points::add); |         ).filter(Objects::nonNull).forEach(points::add); | ||||||
|         // 查询所有点位信息创建时间 |         // 查询所有点位信息创建时间 | ||||||
|         List<CuMemberPointDTO> cuMemberPointDTOList; |         List<CuMemberPointDTO> cuMemberPointDTOList; | ||||||
|         if (points.isEmpty()) { |         if (points.isEmpty() || ids.isEmpty()) { | ||||||
|             cuMemberPointDTOList = Collections.emptyList(); |             cuMemberPointDTOList = Collections.emptyList(); | ||||||
|         }else { |         }else { | ||||||
|             cuMemberPointDTOList = iCumemberRetailDetailService.getPointDetailListByPoints(cuMemberRetailDetail.getPkMember(),points,cuMemberRetailDetail.getStage(),settleTableName); |             List<CuMemberPointPairParam> pairList = new ArrayList<>(); | ||||||
|  |             ids.remove(0); | ||||||
|  |             Iterator<Long> idIter = ids.iterator(); | ||||||
|  |             Iterator<Integer> pointIter = points.iterator(); | ||||||
|  |             while (idIter.hasNext() && pointIter.hasNext()) { | ||||||
|  |                 pairList.add(new CuMemberPointPairParam(idIter.next(), pointIter.next())); | ||||||
|  |             } | ||||||
|  |             cuMemberPointDTOList = iCumemberRetailDetailService.getPointDetailListByPoints(pairList,cuMemberRetailDetail.getStage(),settleTableName); | ||||||
|         } |         } | ||||||
|         Map<Integer, CuMemberPointDTO> collect = cuMemberPointDTOList.stream() |         Map<String, CuMemberPointDTO> collect = cuMemberPointDTOList.stream() | ||||||
|                 .collect(Collectors.toMap(CuMemberPointDTO::getChildNode, Function.identity(), (a, b) -> a)); |                 .collect(Collectors.toMap( | ||||||
|  |                         dto -> dto.getPkMember() + "-" + dto.getChildNode(), | ||||||
|  |                         Function.identity(), | ||||||
|  |                         (a, b) -> a | ||||||
|  |                 )); | ||||||
|         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||||||
|         // 构建node |         // 构建node | ||||||
|         List<Map<String, Object>> nodeList = new ArrayList<>(); |         List<Map<String, Object>> nodeList = new ArrayList<>(); | ||||||
|  | @ -110,11 +122,11 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail | ||||||
|                     type.getId(), |                     type.getId(), | ||||||
|                     type.getParentId(), |                     type.getParentId(), | ||||||
|                     type.getLabel(), |                     type.getLabel(), | ||||||
|                     safeFormatTime(collect, point, sdf), |                     safeFormatTime(collect, pointMember,point, sdf), | ||||||
|                     safeStageSort(collect,point), |                     safeStageSort(collect,pointMember,point), | ||||||
|                     point, |                     point, | ||||||
|                     pointMember, |                     pointMember, | ||||||
|                     safeStage(collect,point), |                     safeStage(collect,pointMember,point), | ||||||
|                     memberMap |                     memberMap | ||||||
|             )); |             )); | ||||||
|         } |         } | ||||||
|  | @ -153,24 +165,24 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private Integer safeStage(Map<Integer, CuMemberPointDTO> collect, Integer point) { |     private Integer safeStage(Map<String, CuMemberPointDTO> collect,Long pkMember, Integer point) { | ||||||
|         CuMemberPointDTO cuMemberPointDTO = collect.get(point); |         CuMemberPointDTO cuMemberPointDTO = collect.get(pkMember + "-" + point); | ||||||
|         if (cuMemberPointDTO == null || cuMemberPointDTO.getStage() == null) { |         if (cuMemberPointDTO == null || cuMemberPointDTO.getStage() == null) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         return cuMemberPointDTO.getStage(); |         return cuMemberPointDTO.getStage(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private Integer safeStageSort(Map<Integer, CuMemberPointDTO> collect, Integer point) { |     private Integer safeStageSort(Map<String, CuMemberPointDTO> collect,Long pkMember, Integer point) { | ||||||
|         CuMemberPointDTO cuMemberPointDTO = collect.get(point); |         CuMemberPointDTO cuMemberPointDTO = collect.get(pkMember + "-" + point); | ||||||
|         if (cuMemberPointDTO == null || cuMemberPointDTO.getStageSort() == null) { |         if (cuMemberPointDTO == null || cuMemberPointDTO.getStageSort() == null) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         return cuMemberPointDTO.getStageSort(); |         return cuMemberPointDTO.getStageSort(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private String safeFormatTime(Map<Integer, CuMemberPointDTO> collect, Integer pointKey, SimpleDateFormat sdf) { |     private String safeFormatTime(Map<String, CuMemberPointDTO> collect,Long pkMember, Integer pointKey, SimpleDateFormat sdf) { | ||||||
|         var detail = collect.get(pointKey); |         var detail = collect.get(pkMember + "-" + pointKey); | ||||||
|         if (detail == null || detail.getCreationTime() == null) { |         if (detail == null || detail.getCreationTime() == null) { | ||||||
|             return ""; |             return ""; | ||||||
|         } |         } | ||||||
|  | @ -209,8 +221,8 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public List<CuMemberPointDTO> getPointDetailListByPoints(Long pkMember, Set<Integer> points, Integer stage, String settleTableName) { |     public List<CuMemberPointDTO> getPointDetailListByPoints(List<CuMemberPointPairParam> pairList, Integer stage, String settleTableName) { | ||||||
|         return baseMapper.getPointDetailListByPoints(pkMember,points,stage,settleTableName); |         return baseMapper.getPointDetailListByPoints(pairList,stage,settleTableName); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private CuMemberPointDetailVO makeCuMemberPointDetailVO(CuMemberDetailDTO cuMemberDetailDTO, CuMemberPointDTO cuMemberPointDTO,Integer point) { |     private CuMemberPointDetailVO makeCuMemberPointDetailVO(CuMemberDetailDTO cuMemberDetailDTO, CuMemberPointDTO cuMemberPointDTO,Integer point) { | ||||||
|  |  | ||||||
|  | @ -11,6 +11,10 @@ import java.util.Date; | ||||||
| @AllArgsConstructor | @AllArgsConstructor | ||||||
| @NoArgsConstructor | @NoArgsConstructor | ||||||
| public class CuMemberPointDTO { | public class CuMemberPointDTO { | ||||||
|  |     /** | ||||||
|  |      * 会员编号 | ||||||
|  |      */ | ||||||
|  |     private Long pkMember; | ||||||
|     /** |     /** | ||||||
|      * 点位信息 |      * 点位信息 | ||||||
|      */ |      */ | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ | ||||||
|             and curd.STAGE_STATUS = #{stageStatus} |             and curd.STAGE_STATUS = #{stageStatus} | ||||||
|         </if> |         </if> | ||||||
|         ORDER BY |         ORDER BY | ||||||
|         curd.CHILD_NODE |         curd.STAGE_SORT | ||||||
|     </select> |     </select> | ||||||
|     <select id="getPointDetailByUserId" |     <select id="getPointDetailByUserId" | ||||||
|             resultType="com.hzs.member.structure.controller.dto.CuMemberPointDTO"> |             resultType="com.hzs.member.structure.controller.dto.CuMemberPointDTO"> | ||||||
|  | @ -76,6 +76,7 @@ | ||||||
|     <select id="getPointDetailListByPoints" |     <select id="getPointDetailListByPoints" | ||||||
|             resultType="com.hzs.member.structure.controller.dto.CuMemberPointDTO"> |             resultType="com.hzs.member.structure.controller.dto.CuMemberPointDTO"> | ||||||
|         SELECT |         SELECT | ||||||
|  |         cur.PK_MEMBER, | ||||||
|         cur.STAGE_SORT, |         cur.STAGE_SORT, | ||||||
|         cur.CHILD_NODE, |         cur.CHILD_NODE, | ||||||
|         cur.CREATION_TIME, |         cur.CREATION_TIME, | ||||||
|  | @ -83,10 +84,8 @@ | ||||||
|         FROM |         FROM | ||||||
|         ${settleTableName} cur |         ${settleTableName} cur | ||||||
|         WHERE |         WHERE | ||||||
|         cur.PK_MEMBER = #{ pkMember } |         <foreach collection="pairList" item="pair" separator=" OR "> | ||||||
|         AND cur.CHILD_NODE IN |             (cur.PK_MEMBER = #{pair.pkMember} AND cur.CHILD_NODE = #{pair.childNode}) | ||||||
|         <foreach collection="points" item="p" open="(" separator="," close=")"> |  | ||||||
|             #{p} |  | ||||||
|         </foreach> |         </foreach> | ||||||
|         AND cur.STAGE = #{ stage } |         AND cur.STAGE = #{ stage } | ||||||
|     </select> |     </select> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue