## 三阶段架构会员名称添加点位信息

This commit is contained in:
zhangheng 2025-09-25 11:13:28 +08:00
parent 90512bb1e0
commit d2a4c012c7
8 changed files with 298 additions and 19 deletions

View File

@ -3,6 +3,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.structure.controller.vo.ChildCodeVO;
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -31,4 +32,9 @@ public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDet
@Param("stage")Integer stage,
@Param("stageStatus")Integer stageStatus,
@Param("settleTableName")String settleTableName);
List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(@Param("settleTableName") String settleTableName,
@Param("memberCode") String memberCode,
@Param("stage") Integer stage,
@Param("stageStatus") Integer stageStatus);
}

View File

@ -3,6 +3,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.structure.controller.vo.ChildCodeVO;
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
import java.util.List;
@ -18,4 +19,6 @@ public interface ICumemberRetailDetailService {
CuMemberRetailDetail getCuMemberRetailDetailByUserId(Long userId, Integer stage, Integer stageStatus, String childNode, String settleTableName);
List<ChildCodeVO> getChildListByUserId(Long userId, Integer stage, Integer stageStatus, String settleTableName);
List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus);
}

View File

@ -10,6 +10,7 @@ import com.hzs.member.base.mapper.CuMemberRetailDetailMapper;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.base.service.ICumemberRetailDetailService;
import com.hzs.member.structure.controller.vo.ChildCodeVO;
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -63,24 +64,24 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
// 构建node
List<Map<String, Object>> nodeList = new ArrayList<>();
nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), cuMemberRetailDetail.getPkMember(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), null,cuMemberRetailDetail.getPkMember(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), cuMemberRetailDetail.getPointMember11(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), cuMemberRetailDetail.getPointMember12(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPointMember11(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), cuMemberRetailDetail.getPoint12(),cuMemberRetailDetail.getPointMember12(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE3.getId(), EMemberChildNodeType.NODE3.getParentId(), EMemberChildNodeType.NODE3.getLabel(), cuMemberRetailDetail.getPointMember21(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE4.getId(), EMemberChildNodeType.NODE4.getParentId(), EMemberChildNodeType.NODE4.getLabel(), cuMemberRetailDetail.getPointMember22(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE5.getId(), EMemberChildNodeType.NODE5.getParentId(), EMemberChildNodeType.NODE5.getLabel(), cuMemberRetailDetail.getPointMember23(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE6.getId(), EMemberChildNodeType.NODE6.getParentId(), EMemberChildNodeType.NODE6.getLabel(), cuMemberRetailDetail.getPointMember24(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE3.getId(), EMemberChildNodeType.NODE3.getParentId(), EMemberChildNodeType.NODE3.getLabel(), cuMemberRetailDetail.getPoint21(),cuMemberRetailDetail.getPointMember21(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE4.getId(), EMemberChildNodeType.NODE4.getParentId(), EMemberChildNodeType.NODE4.getLabel(), cuMemberRetailDetail.getPoint22(),cuMemberRetailDetail.getPointMember22(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE5.getId(), EMemberChildNodeType.NODE5.getParentId(), EMemberChildNodeType.NODE5.getLabel(), cuMemberRetailDetail.getPoint23(),cuMemberRetailDetail.getPointMember23(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE6.getId(), EMemberChildNodeType.NODE6.getParentId(), EMemberChildNodeType.NODE6.getLabel(), cuMemberRetailDetail.getPoint24(),cuMemberRetailDetail.getPointMember24(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE7.getId(), EMemberChildNodeType.NODE7.getParentId(), EMemberChildNodeType.NODE7.getLabel(), cuMemberRetailDetail.getPointMember31(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE8.getId(), EMemberChildNodeType.NODE8.getParentId(), EMemberChildNodeType.NODE8.getLabel(), cuMemberRetailDetail.getPointMember32(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE9.getId(), EMemberChildNodeType.NODE9.getParentId(), EMemberChildNodeType.NODE9.getLabel(), cuMemberRetailDetail.getPointMember33(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE10.getId(), EMemberChildNodeType.NODE10.getParentId(), EMemberChildNodeType.NODE10.getLabel(), cuMemberRetailDetail.getPointMember34(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE11.getId(), EMemberChildNodeType.NODE11.getParentId(), EMemberChildNodeType.NODE11.getLabel(), cuMemberRetailDetail.getPointMember35(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE12.getId(), EMemberChildNodeType.NODE12.getParentId(), EMemberChildNodeType.NODE12.getLabel(), cuMemberRetailDetail.getPointMember36(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE13.getId(), EMemberChildNodeType.NODE13.getParentId(), EMemberChildNodeType.NODE13.getLabel(), cuMemberRetailDetail.getPointMember37(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE14.getId(), EMemberChildNodeType.NODE14.getParentId(), EMemberChildNodeType.NODE14.getLabel(), cuMemberRetailDetail.getPointMember38(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE7.getId(), EMemberChildNodeType.NODE7.getParentId(), EMemberChildNodeType.NODE7.getLabel(), cuMemberRetailDetail.getPoint31(),cuMemberRetailDetail.getPointMember31(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE8.getId(), EMemberChildNodeType.NODE8.getParentId(), EMemberChildNodeType.NODE8.getLabel(), cuMemberRetailDetail.getPoint32(),cuMemberRetailDetail.getPointMember32(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE9.getId(), EMemberChildNodeType.NODE9.getParentId(), EMemberChildNodeType.NODE9.getLabel(), cuMemberRetailDetail.getPoint33(),cuMemberRetailDetail.getPointMember33(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE10.getId(), EMemberChildNodeType.NODE10.getParentId(), EMemberChildNodeType.NODE10.getLabel(), cuMemberRetailDetail.getPoint34(),cuMemberRetailDetail.getPointMember34(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE11.getId(), EMemberChildNodeType.NODE11.getParentId(), EMemberChildNodeType.NODE11.getLabel(), cuMemberRetailDetail.getPoint35(),cuMemberRetailDetail.getPointMember35(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE12.getId(), EMemberChildNodeType.NODE12.getParentId(), EMemberChildNodeType.NODE12.getLabel(), cuMemberRetailDetail.getPoint36(),cuMemberRetailDetail.getPointMember36(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE13.getId(), EMemberChildNodeType.NODE13.getParentId(), EMemberChildNodeType.NODE13.getLabel(), cuMemberRetailDetail.getPoint37(),cuMemberRetailDetail.getPointMember37(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE14.getId(), EMemberChildNodeType.NODE14.getParentId(), EMemberChildNodeType.NODE14.getLabel(), cuMemberRetailDetail.getPoint38(),cuMemberRetailDetail.getPointMember38(), memberMap));
// 构造树结构
return TreeUtil.build(nodeList, EMemberChildNodeType.ROOT.getParentId(), (node, tree) -> {
@ -103,7 +104,19 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
return baseMapper.getChildListByUserId(userId,stage,stageStatus,settleTableName);
}
private Map<String, Object> makeNode(String id, String parentId, String label,
@Override
public List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus) {
List<CuMemberThreeFrameworkVO> cuMemberRetailDetailList = baseMapper.getCuMemberRetailDetailList(settleTableName, memberCode, stage, stageStatus);
if (cuMemberRetailDetailList == null || cuMemberRetailDetailList.isEmpty()) {
return null;
}else {
// 构建map
cuMemberRetailDetailList.forEach(CuMemberThreeFrameworkVO::buildMemberMaps);
}
return cuMemberRetailDetailList;
}
private Map<String, Object> makeNode(String id, String parentId, String label,Integer pointMember,
Long memberId, Map<Long, CuMember> memberMap) {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
@ -114,7 +127,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
if (memberId != null && memberMap.containsKey(memberId)) {
CuMember member = memberMap.get(memberId);
map.put("memberCode", member.getMemberCode());
map.put("memberName", member.getMemberName());
map.put("memberName", member.getMemberName() + "-" +pointMember);
} else {
// 没有信息置空
map.put("memberCode", "");

View File

@ -34,6 +34,7 @@ import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.base.service.ICumemberRetailDetailService;
import com.hzs.member.structure.controller.vo.ChildCodeVO;
import com.hzs.member.structure.controller.vo.CuMemberSettlePeriodVo;
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.GradeDTO;
import com.hzs.system.sys.IUserServiceApi;
@ -242,6 +243,35 @@ public class MemberStructureController extends BaseController {
List<Tree<String>> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail);
return AjaxResult.success(cuMemberRetailTree);
}
/**
* 三阶段列表数据
* @param memberSettlePeriodId
* @param memberCode
* @param stage
* @param stageStatus
* @return
*/
@Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT)
@GetMapping("/three-framework-list")
public AjaxResult threeFrameworkList(Long memberSettlePeriodId, String memberCode,Integer stage,Integer stageStatus) {
if (memberSettlePeriodId == null || memberCode == null || stage == null) {
log.error("参数错误");
return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
}
CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId);
log.info("日结信息{}",csPeriod);
String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId();
log.info("日结表名称{}",settleTableName);
// 校验当前日结表是否存在
Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName);
if (isFind == null || isFind != 1) {
log.error("当前表名不存在{}",settleTableName);
return AjaxResult.error("当前日结信息表不存在",settleTableName);
}
// 查询当前会员所有子点位信息
List<CuMemberThreeFrameworkVO> cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus);
return AjaxResult.success(cuMemberThreeFrameworkVOS);
}
/**
* 查询子节点

View File

@ -0,0 +1,182 @@
package com.hzs.member.structure.controller.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.HashMap;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberThreeFrameworkVO {
private static final long serialVersionUID = 1L;
/**
* 阶段状态0=已完成1=未完成
*/
private Integer stageStatus;
/**
* 阶段完成时间
*/
private Date stageDate;
/**
* 点位1-1会员ID
*/
private Long pointMember11;
/**
* 点位1-1会员子节点
*/
private String point11;
/**
* 点位1-2会员ID
*/
private Long pointMember12;
/**
* 点位1-2会员子节点
*/
private String point12;
/**
* 点位2-1会员ID
*/
private Long pointMember21;
/**
* 点位2-1会员子节点
*/
private String point21;
/**
* 点位2-2会员ID
*/
private Long pointMember22;
/**
* 点位2-2会员子节点
*/
private String point22;
/**
* 点位2-3会员ID
*/
private Long pointMember23;
/**
* 点位2-3会员子节点
*/
private String point23;
/**
* 点位2-4会员ID
*/
private Long pointMember24;
/**
* 点位2-4会员子节点
*/
private String point24;
/**
* 点位3-1会员ID
*/
private Long pointMember31;
/**
* 点位3-1会员子节点
*/
private String point31;
/**
* 点位3-2会员ID
*/
private Long pointMember32;
/**
* 点位3-2会员子节点
*/
private String point32;
/**
* 点位3-3会员ID
*/
private Long pointMember33;
/**
* 点位3-3会员子节点
*/
private String point33;
/**
* 点位3-4会员ID
*/
private Long pointMember34;
/**
* 点位3-4会员子节点
*/
private String point34;
/**
* 点位3-5会员ID
*/
private Long pointMember35;
/**
* 点位3-5会员子节点
*/
private String point35;
/**
* 点位3-6会员ID
*/
private Long pointMember36;
/**
* 点位3-6会员子节点
*/
private String point36;
/**
* 点位3-7会员ID
*/
private Long pointMember37;
/**
* 点位3-7会员子节点
*/
private String point37;
/**
* 点位3-8会员ID
*/
private Long pointMember38;
/**
* 点位3-8会员子节点
*/
private String point38;
@TableField(exist = false)
HashMap<String,Long> memberMaps = new HashMap<>(14);
public void buildMemberMaps() {
memberMaps.clear();
putIntoMap(point11, pointMember11);
putIntoMap(point12, pointMember12);
putIntoMap(point21, pointMember21);
putIntoMap(point22, pointMember22);
putIntoMap(point23, pointMember23);
putIntoMap(point24, pointMember24);
putIntoMap(point31, pointMember31);
putIntoMap(point32, pointMember32);
putIntoMap(point33, pointMember33);
putIntoMap(point34, pointMember34);
putIntoMap(point35, pointMember35);
putIntoMap(point36, pointMember36);
putIntoMap(point37, pointMember37);
putIntoMap(point38, pointMember38);
}
private void putIntoMap(String key, Long value) {
memberMaps.put(key != null ? key : "", value);
}
}

View File

@ -62,4 +62,47 @@
and cud.STAGE_STATUS = #{stageStatus}
</if>
</select>
<select id="getCuMemberRetailDetailList"
resultType="com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO">
SELECT
curd.STAGE_STATUS,
curd.STAGE_DATE,
'1-1' AS point11,
curd.POINT_MEMBER_11 AS pointMember11,
'1-2' AS point12,
curd.POINT_MEMBER_12 AS pointMember12,
'2-1' AS point21,
curd.POINT_MEMBER_21 AS pointMember21,
'2-2' AS point22,
curd.POINT_MEMBER_22 AS pointMember22,
'2-3' AS point23,
curd.POINT_MEMBER_23 AS pointMember23,
'2-4' AS point24,
curd.POINT_MEMBER_24 AS pointMember24,
'3-1' AS point31,
curd.POINT_MEMBER_31 AS pointMember31,
'3-2' AS point32,
curd.POINT_MEMBER_32 AS pointMember32,
'3-3' AS point33,
curd.POINT_MEMBER_33 AS pointMember33,
'3-4' AS point34,
curd.POINT_MEMBER_34 AS pointMember34,
'3-5' AS point35,
curd.POINT_MEMBER_35 AS pointMember35,
'3-6' AS point36,
curd.POINT_MEMBER_36 AS pointMember36,
'3-7' AS point37,
curd.POINT_MEMBER_37 AS pointMember37,
'3-8' AS point38,
curd.POINT_MEMBER_38 AS pointMember38
FROM
#{settleTableName} curd
LEFT JOIN CU_MEMBER cu ON curd.PK_MEMBER = cu.PK_ID
WHERE
cu.MEMBER_CODE = #{memberCode}
AND curd.STAGE = #{stage}
<if test="stageStatus != null">
and curd.STAGE_STATUS = #{stageStatus}
</if>
</select>
</mapper>

View File

@ -403,7 +403,8 @@ public enum EOperationBusiness {
MEMBER_RISK_CONTROL("K值风控设置"),
MEMBER_RETAIL_STAT("收益区域数据"),
MEMBER_RETAIL_CHILDNODE("会员子节点查询"),
MEMBER_RETAIL_TREE("三阶段结构")
MEMBER_RETAIL_TREE("三阶段结构"),
MEMBER_RETAIL_TREE_LIST("三阶段数据")
;

View File

@ -402,7 +402,8 @@ public enum EOperationModule {
MEMBER_RISK_CONTROL("K值风控设置"),
ORDER_SYNC("同步失败订单"),
MEMBER_RETAIL_CHILDNODE("会员子节点查询"),
MEMBER_RETAIL_TREE("三阶段结构")
MEMBER_RETAIL_TREE("三阶段结构"),
MEMBER_RETAIL_TREE_LIST("三阶段数据")
;
/**