## 三阶段架构列表数据,会员子点位信息

This commit is contained in:
zhangheng 2025-09-26 09:39:54 +08:00
parent 1fea92b74b
commit af5dbcc788
8 changed files with 36 additions and 64 deletions

View File

@ -798,8 +798,8 @@ public class CuMemberController extends BaseController {
@Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT)
@GetMapping("/member-point")
public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId) {
if (memberSettlePeriodId == null) {
log.error("参数错误{}", memberSettlePeriodId);
if (memberCode == null || memberSettlePeriodId == null) {
log.error("参数错误{}{}",memberCode, memberSettlePeriodId);
return AjaxResult.error(MemberMsgConstants.REQUIRED_NOT_EMPTY);
}
CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId);
@ -813,6 +813,9 @@ public class CuMemberController extends BaseController {
return AjaxResult.error("当前会员结算表不存在",settleTableName);
}
List<memberPointVO> list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode);
if (CollectionUtil.isEmpty(list)) {
return null;
}
list.forEach(item -> {
item.setMemberSettlePeriod(csPeriod.getSettleDate());
});
@ -820,25 +823,4 @@ public class CuMemberController extends BaseController {
return AjaxResult.success(getDataTable(list));
}
/**
*
* @param memberCode
* @param memberSettlePeriodId
* @return
*/
@Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT)
@PostMapping("/member-point-export")
public void memberPointExport(@RequestParam String memberCode,@RequestParam Long memberSettlePeriodId, HttpServletResponse response) {
CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId);
log.info("会员结算表信息{}",csPeriod);
String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId();
log.info("会员结算表名称{}",settleTableName);
List<memberPointVO> list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode);
list.forEach(item -> {
item.setMemberSettlePeriod(csPeriod.getSettleDate());
});
ExcelUtil<memberPointVO> util = new ExcelUtil<>(memberPointVO.class);
util.exportExcel(response, list, "会员点位信息");
}
}

View File

@ -2,7 +2,6 @@ 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.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.CuMemberThreeFrameworkVO;
@ -42,8 +41,8 @@ public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDet
@Param("stageStatus") Integer stageStatus);
CuMemberPointDTO getPointDetailByUserId(@Param("userId") Long userId,
@Param("stage") Integer stage,
@Param("point") Integer point,
@Param("settleTableName") String settleTableName);
CuMemberPointDetailVO getPointDetailByUserId(@Param("userId") Long userId,
@Param("stage") Integer stage,
@Param("point") Integer point,
@Param("settleTableName") String settleTableName);
}

View File

@ -24,5 +24,5 @@ public interface ICumemberRetailDetailService {
List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus);
CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName);
CuMemberPointDetailVO getPointDetailByUserId(Long userId, Integer stage, Integer point, String settleTableName);
}

View File

@ -12,8 +12,6 @@ import com.hzs.common.domain.member.base.CuMember;
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.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.CuMemberThreeFrameworkVO;
@ -72,7 +70,7 @@ 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(), null,cuMemberRetailDetail.getPkMember(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), cuMemberRetailDetail.getChildNode(),cuMemberRetailDetail.getPkMember(), 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));
@ -124,23 +122,10 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
}
@Override
public CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember, Integer stage, Integer point, String settleTableName) {
CuMemberPointDTO cuMemberPointDTO = baseMapper.getPointDetailByUserId(pointMember, stage, point, settleTableName);
CuMemberDetailDTO cuMemberDetailDTO = iCuMemberService.getCuMemberDetailById(pointMember);
if (cuMemberDetailDTO == null || cuMemberPointDTO == null) {
return null;
}
return makeCuMemberPointDetailVO(cuMemberDetailDTO,cuMemberPointDTO,point);
}
private CuMemberPointDetailVO makeCuMemberPointDetailVO(CuMemberDetailDTO cuMemberDetailDTO, CuMemberPointDTO cuMemberPointDTO,Integer point) {
return CuMemberPointDetailVO.builder()
.memberCode(cuMemberDetailDTO.getMemberCode())
.memberName(cuMemberDetailDTO.getMemberName() + "-" + point)
.awardsName(cuMemberDetailDTO.getAwardsName())
.vertexName(cuMemberDetailDTO.getVertexName())
.creationTime(cuMemberPointDTO.getCreationTime())
.build();
public CuMemberPointDetailVO getPointDetailByUserId(Long userId, Integer stage, Integer point, String settleTableName) {
CuMemberPointDetailVO pointDetailByUserId = baseMapper.getPointDetailByUserId(userId, stage, point, settleTableName);
pointDetailByUserId.setMemberName(pointDetailByUserId.getMemberName() + "-" + point);
return pointDetailByUserId;
}

View File

@ -1,7 +1,6 @@
package com.hzs.member.base.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -15,32 +14,26 @@ public class memberPointVO {
/**
* 会员编号
*/
@Excel(name = "会员编号")
private String memberCode;
/**
* 会员姓名
*/
@Excel(name = "会员姓名")
private String memberName;
/**
* 子点位总数
*/
@Excel(name = "子点位总数")
private Integer pointCount;
/**
* 待激活点位数
*/
@Excel(name = "待激活点位数")
private Integer waitPointCount;
/**
* 复购业绩余额
*/
@Excel(name = "复购业绩余额")
private Long repPvBalance;
/**
* 期数
*/
@Excel(name = "期数",dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date memberSettlePeriod;
}

View File

@ -10,6 +10,7 @@ import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.security.service.UserTokenService;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.member.base.service.ICuMemberService;
@ -17,14 +18,18 @@ import com.hzs.member.base.service.ICumemberRetailDetailService;
import com.hzs.member.structure.controller.vo.ChildCodeVO;
import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO;
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
import com.hzs.system.sys.dto.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
/**
@ -152,8 +157,8 @@ public class ApiMemberStructureController extends BaseController {
@Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT)
@GetMapping("/pointDetail")
public AjaxResult pointDetail(Integer stage,Integer point,Long pointMember) {
if (stage == null || point == null || pointMember == null) {
public AjaxResult pointDetail(Integer stage,Integer point) {
if (stage == null || point == null) {
log.error("参数错误");
return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
}
@ -175,7 +180,7 @@ public class ApiMemberStructureController extends BaseController {
log.error("当前会员日结信息不存在{}",settleTableName);
return AjaxResult.error("数据查询错误,请联系客服处理");
}
CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(userId, pointMember, stage, point, settleTableName);
CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(userId,stage,point,settleTableName);
if (cuMemberPointDetailVO == null) {
return null;
}

View File

@ -269,15 +269,16 @@ public class MemberStructureController extends BaseController {
log.error("当前表名不存在{}",settleTableName);
return AjaxResult.error("当前日结信息表不存在",settleTableName);
}
startPage();
// 查询当前会员所有子点位信息
List<CuMemberThreeFrameworkVO> cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus);
return AjaxResult.success(cuMemberThreeFrameworkVOS);
return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS));
}
@Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT)
@GetMapping("/pointDetail")
public AjaxResult pointDetail(Long pkMember,Long pointMember,Integer stage,Integer point,Long memberSettlePeriodId) {
if (pkMember == null || stage == null || point == null || memberSettlePeriodId == null || pointMember == null) {
public AjaxResult pointDetail(Long pkMember,Integer stage,Integer point,Long memberSettlePeriodId) {
if (pkMember == null || stage == null || point == null || memberSettlePeriodId == null) {
log.error("参数错误");
return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
}
@ -291,7 +292,7 @@ public class MemberStructureController extends BaseController {
log.error("当前表名不存在{}",settleTableName);
return AjaxResult.error("当前日结信息表不存在",settleTableName);
}
CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(pkMember,pointMember,stage,point,settleTableName);
CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(pkMember,stage,point,settleTableName);
if (cuMemberPointDetailVO == null) {
return null;
}

View File

@ -79,11 +79,18 @@
curd.CHILD_NODE
</select>
<select id="getPointDetailByUserId"
resultType="com.hzs.member.structure.controller.dto.CuMemberPointDTO">
resultType="com.hzs.member.structure.controller.vo.CuMemberPointDetailVO">
SELECT
cu.MEMBER_CODE,
cu.MEMBER_NAME,
ba.AWARDS_NAME,
bv.VERTEX_NAME,
cur.CREATION_TIME
FROM
${settleTableName} cur
LEFT JOIN CU_MEMBER cu ON cur.PK_MEMBER = cu.PK_ID
LEFT JOIN BD_AWARDS ba ON cu.PK_AWARDS = ba.PK_ID
LEFT JOIN BD_VERTEX bv ON cu.PK_VERTEX = bv.PK_ID
WHERE
cur.PK_MEMBER = #{ userId }
AND cur.STAGE = #{stage}