## 阶段架构查询bug修改
This commit is contained in:
parent
6ad38e9c5c
commit
a91403a3ad
|
|
@ -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