## 三阶段架构前台

This commit is contained in:
zhangheng 2025-09-23 15:08:24 +08:00
parent 6a4429ca68
commit b4cbcda88b
6 changed files with 94 additions and 44 deletions

View File

@ -20,4 +20,10 @@ public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDet
@Param("settleTableName")String settleTableName);
Integer getFindCumemberRetailDetail(@Param("settleTableName") String settleTableName);
CuMemberRetailDetail getCuMemberRetailDetailByUserId(@Param("userId")Long userId,
@Param("stage")Integer stage,
@Param("stageStatus")Integer stageStatus,
@Param("childNode")String childNode,
@Param("settleTableName")String settleTableName);
}

View File

@ -6,7 +6,7 @@ import com.hzs.member.structure.controller.vo.ChildCodeVO;
import java.util.List;
public interface ICumemberRetailDetail {
public interface ICumemberRetailDetailService {
List<ChildCodeVO> getChildList(String memberCode, Integer stage, Integer stageStatus, String settleTableName);
CuMemberRetailDetail getCuMemberRetailDetail(String memberCode, Integer stage, Integer stageStatus, String childNode, String settleTableName);
@ -14,4 +14,6 @@ public interface ICumemberRetailDetail {
Integer getFindCumemberRetailDetail(String settleTableName);
List<Tree<String>> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail);
CuMemberRetailDetail getCuMemberRetailDetailByUserId(Long userId, Integer stage, Integer stageStatus, String childNode, String settleTableName);
}

View File

@ -8,7 +8,7 @@ import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
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.ICumemberRetailDetail;
import com.hzs.member.base.service.ICumemberRetailDetailService;
import com.hzs.member.structure.controller.vo.ChildCodeVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -19,7 +19,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
public class ICumemberRetailDetailImpl extends ServiceImpl<CuMemberRetailDetailMapper, CuMemberRetailDetail> implements ICumemberRetailDetail {
public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailDetailMapper, CuMemberRetailDetail> implements ICumemberRetailDetailService {
@Autowired
private ICuMemberService iCuMemberService;
@Override
@ -92,6 +92,12 @@ public class ICumemberRetailDetailImpl extends ServiceImpl<CuMemberRetailDetailM
tree.putExtra("nodeCode", node.get("nodeCode"));
});
}
@Override
public CuMemberRetailDetail getCuMemberRetailDetailByUserId(Long userId, Integer stage, Integer stageStatus, String childNode, String settleTableName) {
return baseMapper.getCuMemberRetailDetailByUserId(userId,stage,stageStatus,childNode,settleTableName);
}
private Map<String, Object> makeNode(String id, String parentId, String label,
Long memberId, Map<Long, CuMember> memberMap) {
Map<String, Object> map = new HashMap<>();

View File

@ -1,52 +1,31 @@
package com.hzs.member.structure.controller.api;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.constant.*;
import com.hzs.common.core.constant.msg.MemberMsgConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.constant.msg.CommonMsgConstants;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.web.controller.BaseController;
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.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import com.hzs.common.domain.system.base.BdCountry;
import com.hzs.common.security.service.UserTokenService;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.member.achieve.service.ICuMemberTreeService;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.structure.controller.vo.CuMemberSettlePeriodVo;
import com.hzs.system.base.ICountryServiceApi;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.GradeDTO;
import com.hzs.system.sys.IUserServiceApi;
import com.hzs.system.sys.dto.UserAuthorityDTO;
import org.apache.dubbo.config.annotation.DubboReference;
import com.hzs.member.base.service.ICumemberRetailDetailService;
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.time.temporal.ChronoUnit;
import java.util.ArrayList;
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;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description:
@ -55,10 +34,53 @@ import java.util.stream.Collectors;
* @Classname: MemberStructureController
* @PackageName: com.hzs.member.memberStructure.controller.api
*/
//@RestController
//@RequestMapping("/api/member-structure")
@Slf4j
@RestController
@RequestMapping("/api/member-structure")
public class ApiMemberStructureController extends BaseController {
@Autowired
ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
ICumemberRetailDetailService iCumemberRetailDetailService;
@Log(module = EOperationModule.MEMBER_RETAIL_TREE, business = EOperationBusiness.MEMBER_RETAIL_TREE, method = EOperationMethod.SELECT)
@GetMapping("/three-framework")
public AjaxResult Framework(Integer stage,String childNode,Integer stageStatus) {
if (stage == null || childNode == null) {
log.error("参数错误");
return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
}
Long userId = SecurityUtils.getUserId();
if (userId == null) {
log.error("用户登录信息错误");
return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
}
// 获取当前时间 -1
String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd")));
// 查询相关日结表
CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday);
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);
}
CuMemberRetailDetail cuMemberRetailDetail = iCumemberRetailDetailService.getCuMemberRetailDetailByUserId(userId,stage,stageStatus,childNode,settleTableName);
log.info("日结表会员信息{}",cuMemberRetailDetail);
if (cuMemberRetailDetail == null) {
log.error("当前会员日结信息不存在");
return AjaxResult.error("当前会员日结信息不存在");
}
// 拼接树形结构
List<Tree<String>> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail);
return AjaxResult.success(cuMemberRetailTree);
}
// @Autowired
// private ITransactionCommonService iTransactionCommonService;
// @Autowired

View File

@ -31,7 +31,7 @@ import com.hzs.common.util.TransactionUtils;
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.member.achieve.service.ICuMemberTreeService;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.base.service.ICumemberRetailDetail;
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.system.config.IGradeServiceApi;
@ -61,7 +61,7 @@ public class MemberStructureController extends BaseController {
private ICuMemberService iCuMemberService;
@Autowired
private ICumemberRetailDetail iCumemberRetailDetail;
private ICumemberRetailDetailService iCumemberRetailDetailService;
@DubboReference
IUserServiceApi iUserServiceApi;
@DubboReference
@ -228,19 +228,19 @@ public class MemberStructureController extends BaseController {
String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId();
log.info("日结表名称{}",settleTableName);
// 校验当前日结表是否存在
Integer isFind = iCumemberRetailDetail.getFindCumemberRetailDetail(settleTableName);
Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName);
if (isFind == null || isFind != 1) {
log.error("当前表名不存在{}",settleTableName);
return AjaxResult.error("当前日结信息表不存在",settleTableName);
}
CuMemberRetailDetail cuMemberRetailDetail = iCumemberRetailDetail.getCuMemberRetailDetail(memberCode,stage,stageStatus,childNode,settleTableName);
CuMemberRetailDetail cuMemberRetailDetail = iCumemberRetailDetailService.getCuMemberRetailDetail(memberCode,stage,stageStatus,childNode,settleTableName);
log.info("日结表会员信息{}",cuMemberRetailDetail);
if (cuMemberRetailDetail == null) {
log.error("当前会员日结信息不存在");
return AjaxResult.error("当前会员日结信息不存在");
}
// 拼接树形结构
List<Tree<String>> cuMemberRetailTree = iCumemberRetailDetail.convertToNodeList(cuMemberRetailDetail);
List<Tree<String>> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail);
return AjaxResult.success(cuMemberRetailTree);
}
@ -264,12 +264,12 @@ public class MemberStructureController extends BaseController {
String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId();
log.info("日结表名称{}",settleTableName);
// 校验当前日结表是否存在
Integer isFind = iCumemberRetailDetail.getFindCumemberRetailDetail(settleTableName);
Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName);
if (isFind == null || isFind != 1) {
log.error("当前表名不存在{}",settleTableName);
return AjaxResult.error("当前日结信息表不存在",settleTableName);
}
List<ChildCodeVO> childCodeList = iCumemberRetailDetail.getChildList(memberCode,stage,stageStatus,settleTableName);
List<ChildCodeVO> childCodeList = iCumemberRetailDetailService.getChildList(memberCode,stage,stageStatus,settleTableName);
return AjaxResult.success(childCodeList);
}
/**

View File

@ -36,4 +36,18 @@
</if>
AND CHILD_NODE = #{childNode}
</select>
<select id="getCuMemberRetailDetailByUserId"
resultType="com.hzs.common.domain.member.achieve.CuMemberRetailDetail">
SELECT
cud.*
FROM
${ settleTableName } cud
WHERE
cud.PK_MEMBER = #{userId}
AND STAGE = #{stage}
<if test="stageStatus != null">
and cud.STAGE_STATUS = #{stageStatus}
</if>
AND CHILD_NODE = #{childNode}
</select>
</mapper>