## 阶段架构查询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()));
|
||||
}
|
||||
cuMemberPointDTOList = iCumemberRetailDetailService.getPointDetailListByPoints(pairList,cuMemberRetailDetail.getStage(),settleTableName);
|
||||
}
|
||||
Map<Integer, CuMemberPointDTO> collect = cuMemberPointDTOList.stream()
|
||||
.collect(Collectors.toMap(CuMemberPointDTO::getChildNode, Function.identity(), (a, b) -> a));
|
||||
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