## 阶段架构前台结构修改
This commit is contained in:
parent
d80de779f3
commit
dab8ac9f1a
|
|
@ -6,6 +6,7 @@ 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;
|
||||
import com.hzs.member.structure.controller.vo.CuMemberPointListVO;
|
||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -28,4 +29,6 @@ public interface ICumemberRetailDetailService {
|
|||
CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName);
|
||||
|
||||
List<CuMemberPointDTO> getPointDetailListByPoints(List<CuMemberPointPairParam> pairList, Integer stage, String settleTableName);
|
||||
|
||||
List<CuMemberPointListVO> convertToList(CuMemberRetailDetail cuMemberRetailDetail, String settleTableName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import com.hzs.member.structure.controller.dto.CuMemberDetailDTO;
|
|||
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.CuMemberPointListVO;
|
||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
|
||||
import lombok.var;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -47,55 +48,8 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
|
|||
|
||||
@Override
|
||||
public List<Tree<String>> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail,String settleTableName) {
|
||||
// 所有会员id
|
||||
List<Long> ids = new ArrayList<>();
|
||||
ids.add(cuMemberRetailDetail.getPkMember());
|
||||
// 过滤空的会员id
|
||||
Stream.of(
|
||||
cuMemberRetailDetail.getPointMember11(), cuMemberRetailDetail.getPointMember12(),
|
||||
cuMemberRetailDetail.getPointMember21(), cuMemberRetailDetail.getPointMember22(), cuMemberRetailDetail.getPointMember23(), cuMemberRetailDetail.getPointMember24(),
|
||||
cuMemberRetailDetail.getPointMember31(), cuMemberRetailDetail.getPointMember32(), cuMemberRetailDetail.getPointMember33(), cuMemberRetailDetail.getPointMember34(),
|
||||
cuMemberRetailDetail.getPointMember35(), cuMemberRetailDetail.getPointMember36(), cuMemberRetailDetail.getPointMember37(), cuMemberRetailDetail.getPointMember38()
|
||||
).filter(Objects::nonNull).forEach(ids::add);
|
||||
// 查找对应会员信息
|
||||
List<CuMember> members;
|
||||
if (ids.isEmpty()) {
|
||||
members = Collections.emptyList();
|
||||
} else {
|
||||
members = iCuMemberService.listByIds(new ArrayList<>(ids));
|
||||
}
|
||||
|
||||
Map<Long, CuMember> memberMap = members.stream()
|
||||
.collect(Collectors.toMap(CuMember::getPkId, Function.identity(), (a, b) -> a));
|
||||
// 所有点位信息
|
||||
List<Integer> points = new ArrayList<>();
|
||||
// 过滤所有空的点位信息
|
||||
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<CuMemberPointDTO> cuMemberPointDTOList;
|
||||
if (points.isEmpty() || ids.isEmpty()) {
|
||||
cuMemberPointDTOList = Collections.emptyList();
|
||||
}else {
|
||||
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<String, CuMemberPointDTO> collect = cuMemberPointDTOList.stream()
|
||||
.collect(Collectors.toMap(
|
||||
dto -> dto.getPkMember() + "-" + dto.getChildNode(),
|
||||
Function.identity(),
|
||||
(a, b) -> a
|
||||
));
|
||||
Map<Long, CuMember> memberMap = createMemberMap(cuMemberRetailDetail);
|
||||
Map<String, CuMemberPointDTO> collect = createPointMap(cuMemberRetailDetail,settleTableName);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
// 构建node
|
||||
List<Map<String, Object>> nodeList = new ArrayList<>();
|
||||
|
|
@ -130,25 +84,6 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
|
|||
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(), 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(), 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(), 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) -> {
|
||||
tree.setId((String) node.get("id"));
|
||||
|
|
@ -184,7 +119,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
|
|||
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 "";
|
||||
return null;
|
||||
}
|
||||
return sdf.format(detail.getCreationTime());
|
||||
}
|
||||
|
|
@ -225,6 +160,98 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
|
|||
return baseMapper.getPointDetailListByPoints(pairList,stage,settleTableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CuMemberPointListVO> convertToList(CuMemberRetailDetail cuMemberRetailDetail, String settleTableName) {
|
||||
ArrayList<CuMemberPointListVO> list = new ArrayList<>();
|
||||
Map<Long, CuMember> memberMap = createMemberMap(cuMemberRetailDetail);
|
||||
Map<String, CuMemberPointDTO> collect = createPointMap(cuMemberRetailDetail,settleTableName);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
for (EMemberChildNodeType type : EMemberChildNodeType.values()) {
|
||||
if (type == EMemberChildNodeType.ROOT) {
|
||||
continue;
|
||||
}
|
||||
Integer point = (Integer) type.getPointValue(cuMemberRetailDetail);
|
||||
Long pointMember = (Long) type.getPointMemberValue(cuMemberRetailDetail);
|
||||
CuMemberPointListVO build = CuMemberPointListVO.builder()
|
||||
.point(type.getId())
|
||||
.pkMember(pointMember)
|
||||
.childNode(point)
|
||||
.build();
|
||||
if (pointMember != null && memberMap.containsKey(pointMember)) {
|
||||
build.setMemberCode(memberMap.get(pointMember).getMemberCode());
|
||||
build.setMemberName(memberMap.get(pointMember).getMemberName());
|
||||
}
|
||||
build.setStage(safeStage(collect,pointMember,point));
|
||||
build.setStageSort(safeStageSort(collect,pointMember,point));
|
||||
build.setCreationTime(safeFormatTime(collect,pointMember,point,sdf));
|
||||
list.add(build);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private Map<String, CuMemberPointDTO> createPointMap(CuMemberRetailDetail cuMemberRetailDetail,String settleTableName){
|
||||
// 所有会员id
|
||||
List<Long> ids = new ArrayList<>();
|
||||
// 过滤空的会员id
|
||||
Stream.of(
|
||||
cuMemberRetailDetail.getPointMember11(), cuMemberRetailDetail.getPointMember12(),
|
||||
cuMemberRetailDetail.getPointMember21(), cuMemberRetailDetail.getPointMember22(), cuMemberRetailDetail.getPointMember23(), cuMemberRetailDetail.getPointMember24(),
|
||||
cuMemberRetailDetail.getPointMember31(), cuMemberRetailDetail.getPointMember32(), cuMemberRetailDetail.getPointMember33(), cuMemberRetailDetail.getPointMember34(),
|
||||
cuMemberRetailDetail.getPointMember35(), cuMemberRetailDetail.getPointMember36(), cuMemberRetailDetail.getPointMember37(), cuMemberRetailDetail.getPointMember38()
|
||||
).filter(Objects::nonNull).forEach(ids::add);
|
||||
// 所有点位信息
|
||||
List<Integer> points = new ArrayList<>();
|
||||
// 过滤所有空的点位信息
|
||||
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<CuMemberPointDTO> cuMemberPointDTOList;
|
||||
if (points.isEmpty() || ids.isEmpty()) {
|
||||
cuMemberPointDTOList = Collections.emptyList();
|
||||
}else {
|
||||
List<CuMemberPointPairParam> pairList = new ArrayList<>();
|
||||
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);
|
||||
}
|
||||
return cuMemberPointDTOList.stream()
|
||||
.collect(Collectors.toMap(
|
||||
dto -> dto.getPkMember() + "-" + dto.getChildNode(),
|
||||
Function.identity(),
|
||||
(a, b) -> a
|
||||
));
|
||||
}
|
||||
|
||||
private Map<Long, CuMember> createMemberMap(CuMemberRetailDetail cuMemberRetailDetail){
|
||||
// 所有会员id
|
||||
List<Long> ids = new ArrayList<>();
|
||||
ids.add(cuMemberRetailDetail.getPkMember());
|
||||
// 过滤空的会员id
|
||||
Stream.of(
|
||||
cuMemberRetailDetail.getPointMember11(), cuMemberRetailDetail.getPointMember12(),
|
||||
cuMemberRetailDetail.getPointMember21(), cuMemberRetailDetail.getPointMember22(), cuMemberRetailDetail.getPointMember23(), cuMemberRetailDetail.getPointMember24(),
|
||||
cuMemberRetailDetail.getPointMember31(), cuMemberRetailDetail.getPointMember32(), cuMemberRetailDetail.getPointMember33(), cuMemberRetailDetail.getPointMember34(),
|
||||
cuMemberRetailDetail.getPointMember35(), cuMemberRetailDetail.getPointMember36(), cuMemberRetailDetail.getPointMember37(), cuMemberRetailDetail.getPointMember38()
|
||||
).filter(Objects::nonNull).forEach(ids::add);
|
||||
// 查找对应会员信息
|
||||
List<CuMember> members;
|
||||
if (ids.isEmpty()) {
|
||||
members = Collections.emptyList();
|
||||
} else {
|
||||
members = iCuMemberService.listByIds(new ArrayList<>(ids));
|
||||
}
|
||||
|
||||
return members.stream()
|
||||
.collect(Collectors.toMap(CuMember::getPkId, Function.identity(), (a, b) -> a));
|
||||
}
|
||||
|
||||
private CuMemberPointDetailVO makeCuMemberPointDetailVO(CuMemberDetailDTO cuMemberDetailDTO, CuMemberPointDTO cuMemberPointDTO,Integer point) {
|
||||
return CuMemberPointDetailVO.builder()
|
||||
.memberCode(cuMemberDetailDTO.getMemberCode())
|
||||
|
|
|
|||
|
|
@ -16,8 +16,10 @@ import com.hzs.common.security.utils.SecurityUtils;
|
|||
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.member.base.service.ICuMemberService;
|
||||
import com.hzs.member.base.service.ICumemberRetailDetailService;
|
||||
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.CuMemberPointListVO;
|
||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -82,7 +84,7 @@ public class ApiMemberStructureController extends BaseController {
|
|||
return AjaxResult.error("数据查询错误,请联系客服处理");
|
||||
}
|
||||
// 拼接树形结构
|
||||
List<Tree<String>> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail,settleTableName);
|
||||
List<CuMemberPointListVO> cuMemberRetailTree = iCumemberRetailDetailService.convertToList(cuMemberRetailDetail,settleTableName);
|
||||
return AjaxResult.success(cuMemberRetailTree);
|
||||
}
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
package com.hzs.member.structure.controller.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class CuMemberPointListVO {
|
||||
/**
|
||||
* 会员编号
|
||||
*/
|
||||
private String memberCode;
|
||||
/**
|
||||
* 会员姓名
|
||||
*/
|
||||
private String memberName;
|
||||
/**
|
||||
* 点位位置
|
||||
*/
|
||||
private String point;
|
||||
/**
|
||||
* 会员主键信息
|
||||
*/
|
||||
private Long pkMember;
|
||||
/**
|
||||
* 点位信息
|
||||
*/
|
||||
private Integer stageSort;
|
||||
|
||||
/**
|
||||
* 点位信息
|
||||
*/
|
||||
private Integer childNode;
|
||||
/**
|
||||
* 阶段信息
|
||||
*/
|
||||
private Integer stage;
|
||||
/**
|
||||
* 点位创建时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private String creationTime;
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue