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