diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java index a7a3e8cf..e3f36f8a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java @@ -87,24 +87,55 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl> nodeList = new ArrayList<>(); - nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), sdf.format(cuMemberRetailDetail.getCreationTime()),cuMemberRetailDetail.getChildNode(),cuMemberRetailDetail.getPkMember(), memberMap)); + for (EMemberChildNodeType type : EMemberChildNodeType.values()) { + if (type == EMemberChildNodeType.ROOT) { + nodeList.add(makeNode( + type.getId(), + type.getParentId(), + type.getLabel(), + sdf.format(cuMemberRetailDetail.getCreationTime()), + cuMemberRetailDetail.getStageSort(), + cuMemberRetailDetail.getChildNode(), + cuMemberRetailDetail.getPkMember(), + cuMemberRetailDetail.getStage(), + memberMap + )); + continue; + } - 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)); + Integer point = (Integer) type.getPointValue(cuMemberRetailDetail); + Long pointMember = (Long) type.getPointMemberValue(cuMemberRetailDetail); - 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)); + nodeList.add(makeNode( + type.getId(), + type.getParentId(), + type.getLabel(), + safeFormatTime(collect, point, sdf), + safeStageSort(collect,point), + point, + pointMember, + safeStage(collect,point), + 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) -> { @@ -117,8 +148,27 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl collect, Integer point) { + CuMemberPointDTO cuMemberPointDTO = collect.get(point); + if (cuMemberPointDTO == null || cuMemberPointDTO.getStage() == null) { + return null; + } + return cuMemberPointDTO.getStage(); + } + + private Integer safeStageSort(Map collect, Integer point) { + CuMemberPointDTO cuMemberPointDTO = collect.get(point); + if (cuMemberPointDTO == null || cuMemberPointDTO.getStageSort() == null) { + return null; + } + return cuMemberPointDTO.getStageSort(); + } + private String safeFormatTime(Map collect, Integer pointKey, SimpleDateFormat sdf) { var detail = collect.get(pointKey); if (detail == null || detail.getCreationTime() == null) { @@ -174,8 +224,8 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl makeNode(String id, String parentId, String label,String creationTime,Integer pointMember, - Long memberId, Map memberMap) { + private Map makeNode(String id, String parentId, String label,String creationTime,Integer stageSort,Integer pointMember, + Long memberId, Integer stage,Map memberMap) { Map map = new HashMap<>(); map.put("id", id); map.put("parentId", parentId); @@ -187,8 +237,10 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl SELECT + cur.STAGE_SORT, cur.CHILD_NODE, - cur.CREATION_TIME + cur.CREATION_TIME, + cur.STAGE FROM ${settleTableName} cur WHERE diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EMemberChildNodeType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EMemberChildNodeType.java index b56bf454..fd6f54dd 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EMemberChildNodeType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EMemberChildNodeType.java @@ -14,7 +14,7 @@ public enum EMemberChildNodeType { /** * 根节点 */ - ROOT("0-root", "0", "0-root"), + ROOT("0-root", "0", "0-root", null, null), /** * 第一层:根的子节点 @@ -22,31 +22,31 @@ public enum EMemberChildNodeType { /** * 1-1 */ - NODE1("1-1", "0-root", "1-1"), + NODE1("1-1", "0-root", "1-1", "point11", "pointMember11"), /** * 1-2 */ - NODE2("1-2", "0-root", "1-2"), + NODE2("1-2", "0-root", "1-2", "point12", "pointMember12"), /** * 第二层 */ - NODE3("2-1", "1-1", "2-1"), - NODE4("2-2", "1-1", "2-2"), - NODE5("2-3", "1-2", "2-3"), - NODE6("2-4", "1-2", "2-4"), + NODE3("2-1", "1-1", "2-1", "point21", "pointMember21"), + NODE4("2-2", "1-1", "2-2", "point22", "pointMember22"), + NODE5("2-3", "1-2", "2-3", "point23", "pointMember23"), + NODE6("2-4", "1-2", "2-4", "point24", "pointMember24"), /** * 第三层 */ - NODE7("3-1", "2-1", "3-1"), - NODE8("3-2", "2-1", "3-2"), - NODE9("3-3", "2-2", "3-3"), - NODE10("3-4", "2-2", "3-4"), - NODE11("3-5", "2-3", "3-5"), - NODE12("3-6", "2-3", "3-6"), - NODE13("3-7", "2-4", "3-7"), - NODE14("3-8", "2-4", "3-8"); + NODE7("3-1", "2-1", "3-1", "point31", "pointMember31"), + NODE8("3-2", "2-1", "3-2", "point32", "pointMember32"), + NODE9("3-3", "2-2", "3-3", "point33", "pointMember33"), + NODE10("3-4", "2-2", "3-4", "point34", "pointMember34"), + NODE11("3-5", "2-3", "3-5", "point35", "pointMember35"), + NODE12("3-6", "2-3", "3-6", "point36", "pointMember36"), + NODE13("3-7", "2-4", "3-7", "point37", "pointMember37"), + NODE14("3-8", "2-4", "3-8", "point38", "pointMember38"); /** * 点位子会员节点 @@ -62,4 +62,28 @@ public enum EMemberChildNodeType { * 节点显示名称 */ private final String label; + + private final String pointField; + + private final String pointMemberField; + + public Object getFieldValue(Object target, String fieldName) { + if (target == null || fieldName == null) { + return null; + } + try { + String methodName = "get" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1); + return target.getClass().getMethod(methodName).invoke(target); + } catch (Exception e) { + return null; + } + } + + public Object getPointValue(Object target) { + return getFieldValue(target, this.pointField); + } + + public Object getPointMemberValue(Object target) { + return getFieldValue(target, this.pointMemberField); + } } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java index 91f37bfd..c7a57acd 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java @@ -294,4 +294,10 @@ public class CuMemberRetailDetail { @TableField(exist = false) private Integer updateBool; + /** + * 阶段节点顺序 + */ + @TableField("STAGE_SORT") + private Integer stageSort; + }