From d3d416d377f7672cf4c497c8ae8f8b527a5b6e0b Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Wed, 25 Jun 2025 09:20:40 +0800 Subject: [PATCH] =?UTF-8?q?##=20Feat=20-=20H5=E4=B8=AA=E4=BA=BA=E6=8B=93?= =?UTF-8?q?=E5=B1=95=E7=BB=93=E4=BD=99=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/base/ISystemConfigServiceApi.java | 2 + .../api/ApiMemberStructureController.java | 142 +++++++++++++++++- .../provider/SystemConfigServiceProvider.java | 14 ++ 3 files changed, 156 insertions(+), 2 deletions(-) diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/base/ISystemConfigServiceApi.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/base/ISystemConfigServiceApi.java index 6423007f..e4813a95 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/base/ISystemConfigServiceApi.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/base/ISystemConfigServiceApi.java @@ -1,6 +1,7 @@ package com.hzs.system.base; import com.hzs.common.core.domain.R; +import com.hzs.common.domain.system.config.BdBonusExpand; import com.hzs.system.base.dto.BdCubasdocDTO; import java.util.Collection; @@ -50,4 +51,5 @@ public interface ISystemConfigServiceApi { **/ R queryBdCubasdocByUser(Long pkUser); + R getBdBonusExpand(); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java index 0dff6cdf..2c1fbf8c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java @@ -7,13 +7,20 @@ 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 cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.hzs.common.core.constant.*; +import com.hzs.common.core.constant.CountryConstants; +import com.hzs.common.core.constant.MemberConstants; +import com.hzs.common.core.constant.MemberFrameworkConstants; +import com.hzs.common.core.constant.TableNameConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.domain.R; -import com.hzs.common.core.enums.*; +import com.hzs.common.core.enums.ECategory; +import com.hzs.common.core.enums.EGrade; +import com.hzs.common.core.enums.EPlaceDept; +import com.hzs.common.core.enums.EYesNo; import com.hzs.common.core.utils.CommonUtil; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; @@ -24,6 +31,7 @@ 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.domain.system.config.BdBonusExpand; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; @@ -31,16 +39,21 @@ 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.base.ISystemConfigServiceApi; 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 lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; 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.math.BigDecimal; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Date; @@ -50,6 +63,7 @@ import java.util.stream.Collectors; @RestController @RequestMapping("/api/member-structure") +@Slf4j public class ApiMemberStructureController extends BaseController { @Autowired @@ -65,6 +79,8 @@ public class ApiMemberStructureController extends BaseController { IUserServiceApi iUserServiceApi; @DubboReference ICountryServiceApi iCountryServiceApi; + @DubboReference + ISystemConfigServiceApi systemConfigServiceApi; /** * 安置架构网体 @@ -544,4 +560,126 @@ public class ApiMemberStructureController extends BaseController { return AjaxResult.success(array); } + @GetMapping("/az-framework") + public AjaxResult azFramework() { + Integer level = 1; + List> result = null; + // 体系 + UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); + List vertexIdList = userAuthorityDTO.getVertexIdList(); + Date date = new Date(); + String time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date); + LocalDate beforeLocalDate = DateUtils.getStringToLocalDate(time).minus(1, ChronoUnit.DAYS); + time = beforeLocalDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + Long pkMember = SecurityUtils.getUserId(); + Integer period = null; + Date settleDate = null; + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(time); + if (csPeriod != null) { + period = csPeriod.getPkId(); + settleDate = csPeriod.getSettleDate(); + } + // 查询当天 (秒结) +// if (settleDate != null +// && DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, settleDate).equals(DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, new Date()))) { + if(1 == 2) { + // 会员结算秒结表 + String settleTableName = TableNameConstants.CU_MEMBER_SECOND + period; + // 查询所有用户表数据 id + // 查询秒结 表 如果 秒结表 没有则去 历史表 + Integer tableNumber = iCuMemberTreeService.queryExistOracleTable(settleTableName); + if (tableNumber != null && tableNumber == 1) { + List cuMemberSettleExts; + // 查询今日会员表是否有值 + Long treeMemberCount = iCuMemberTreeService.selectByselectByTreeMemberCount(settleTableName, pkMember); + if (treeMemberCount > 0) { + //表格存在 + cuMemberSettleExts = iCuMemberTreeService.selectByTreeMemberList(pkMember, settleTableName, level, vertexIdList); + } else { + DateTime dateTime = DateUtil.offsetDay(DateUtils.currentDate(), -1); + time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, dateTime); + csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(time); + if (csPeriod != null) { + period = csPeriod.getPkId(); + } + settleTableName = TableNameConstants.CU_MEMBER_SETTLE + period; + cuMemberSettleExts = iCuMemberTreeService.selectByTreeMemberList(pkMember, settleTableName, level, vertexIdList); + } + // 查询顶点 + CuMemberSettleExt memberSettleExt = iCuMemberTreeService.queryCuMemberTreeByPkMemberTable(settleTableName, pkMember); + if (MemberConstants.GJ30720200CODE.equals(memberSettleExt.getParentMemberCode())) { + memberSettleExt.setParentMemberCode(memberSettleExt.getMemberCode()); + } + memberSettleExt.setLevel(0); + // 添加自身 + cuMemberSettleExts.add(memberSettleExt); + List> build = iCuMemberService.systemAzSetListTree(cuMemberSettleExts, memberSettleExt); + // 安置架构 无点位 追加空点位 + R> allCountryMap = iCountryServiceApi.getAllCountryMap(); + Map allCountryData = allCountryMap.getData(); + result = setTreeList(build, level, allCountryData); + } else { + // 查询表格是否存在 + tableNumber = iCuMemberTreeService.queryExistOracleTable(settleTableName); + if (tableNumber == null) { + settleTableName = null; + } + // 查询顶点 + CuMemberSettleExt memberSettleExt = iCuMemberTreeService.queryCuMemberTreeByPkMemberTable(settleTableName, pkMember); + if (MemberConstants.GJ30720200CODE.equals(memberSettleExt.getParentMemberCode())) { + memberSettleExt.setParentMemberCode(memberSettleExt.getMemberCode()); + } + memberSettleExt.setLevel(0); + //查询下级 + List list = iCuMemberTreeService.queryCuMemberTreePlaceParentHistoryTable(settleTableName, pkMember, new ArrayList<>(), level); + // 无法查询到自身 所有单独查询自身并且添加 + list.add(memberSettleExt); + List> build = iCuMemberService.systemAzSetListTree(list, memberSettleExt); + // 安置架构 无点位 追加空点位 + R> allCountryMap = iCountryServiceApi.getAllCountryMap(); + Map allCountryData = allCountryMap.getData(); + result = setTreeList(build, level, allCountryData); + } + } else { + // 查询 历史 + String settleTableName = TableNameConstants.CU_MEMBER_SETTLE + period; + Integer tableNumber = iCuMemberTreeService.queryExistOracleTable(settleTableName); + if (tableNumber != null && tableNumber == 1) { + // 表示表格存在 + // 查询顶点 + CuMemberSettleExt memberSettleExt = iCuMemberTreeService.queryCuMemberTreeByPkMemberTable(settleTableName, pkMember); + if (MemberConstants.GJ30720200CODE.equals(memberSettleExt.getParentMemberCode())) { + memberSettleExt.setParentMemberCode(memberSettleExt.getMemberCode()); + } + memberSettleExt.setLevel(0); + //查询下级 + List list = iCuMemberTreeService.queryCuMemberTreePlaceParentHistoryFramework(settleTableName, pkMember, new ArrayList<>(), level); + // 无法查询到自身 所有单独查询自身并且添加 + list.add(memberSettleExt); + List> build = iCuMemberService.systemAzSetListTree(list, memberSettleExt); + // 安置架构 无点位 追加空点位 + R> allCountryMap = iCountryServiceApi.getAllCountryMap(); + Map allCountryData = allCountryMap.getData(); + result = setTreeList(build, level, allCountryData); + } + } + BdBonusExpand bdBonusExpand = systemConfigServiceApi.getBdBonusExpand().getData(); + assert result != null; + String leftFirstSurplusStr = result.get(0).get("leftFirstSurplus").toString(); + String rightFirstSurplusStr = result.get(0).get("rightFirstSurplus").toString(); + BigDecimal leftFirstSurplus = new BigDecimal(leftFirstSurplusStr.replaceAll(",", "")); + BigDecimal rightFirstSurplus = new BigDecimal(rightFirstSurplusStr.replaceAll(",", "")); + log.info("result : {}", JSONUtil.toJsonStr(result)); + if(leftFirstSurplus.compareTo(bdBonusExpand.getExpandSmall()) > 0){ + result.get(0).putExtra("leftFirstSurplus", bdBonusExpand.getExpandSmall().toString()); + } + if(rightFirstSurplus.compareTo(bdBonusExpand.getExpandBig()) > 0){ + result.get(0).putExtra("rightFirstSurplus", bdBonusExpand.getExpandBig().toString()); + } + JSONObject data = new JSONObject(); + data.put("tree", result); + data.put("config", bdBonusExpand); + + return AjaxResult.success(data); + } } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/SystemConfigServiceProvider.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/SystemConfigServiceProvider.java index 20e27ec7..39843008 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/SystemConfigServiceProvider.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/SystemConfigServiceProvider.java @@ -2,17 +2,20 @@ package com.hzs.system.base.provider; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.ESystemConfig; import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.domain.system.base.BdCountry; import com.hzs.common.domain.system.base.ext.BdCubasdocExt; +import com.hzs.common.domain.system.config.BdBonusExpand; import com.hzs.system.base.ISystemConfigServiceApi; import com.hzs.system.base.dto.BdCubasdocDTO; import com.hzs.system.base.param.BdCubasdocParam; import com.hzs.system.base.service.IBdCountryService; import com.hzs.system.base.service.IBdCubasdocService; import com.hzs.system.base.service.IBdSystemConfigService; +import com.hzs.system.config.service.IBdBonusExpandService; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +33,8 @@ public class SystemConfigServiceProvider implements ISystemConfigServiceApi { private IBdCountryService bdCountryService; @Autowired private IBdCubasdocService bdCubasdocService; + @Autowired + private IBdBonusExpandService iBdBonusExpandService; @Override public R getBonusSystemConfig(Integer pkCountry, String key) { @@ -101,4 +106,13 @@ public class SystemConfigServiceProvider implements ISystemConfigServiceApi { return R.fail(); } + @Override + public R getBdBonusExpand() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BdBonusExpand::getPkCountry, 1); + queryWrapper.orderByDesc(BdBonusExpand::getCreationTime); + BdBonusExpand bdBonusExpand = iBdBonusExpandService.getOne(queryWrapper, false); + return R.ok(bdBonusExpand); + } + }