From 817bca75534604c47bd2a930a3d3be5a1e1b8260 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 22 Sep 2025 16:26:15 +0800 Subject: [PATCH] =?UTF-8?q?##=20Opt=20-=20=E7=A7=92=E7=BB=93MQ(=E4=B8=8B?= =?UTF-8?q?=E5=8D=95/=E6=92=A4=E5=8D=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailRangeMapper.java | 3 + .../service/ICuMemberRetailRangeService.java | 1 + .../impl/CuMemberRetailRangeServiceImpl.java | 5 ++ .../hzs/bonus/base/mapper/CuMemberMapper.java | 3 + .../bonus/base/service/ICuMemberService.java | 3 + .../service/impl/CuMemberServiceImpl.java | 6 ++ .../service/impl/BonusSettleServiceImpl.java | 13 +++- .../achieve/CuMemberRetailRangeMapper.xml | 61 ++++++++++++++++--- .../mapper/bonus/base/CuMemberMapper.xml | 4 ++ .../manage/CuUmbrellaBelowPushController.java | 5 +- .../manage/OrderSingleItemStatController.java | 7 +-- .../service/impl/RetailOrderServiceImpl.java | 16 +++-- .../com/hzs/common/core/utils/DateUtils.java | 25 ++++++++ 13 files changed, 126 insertions(+), 26 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java index d3b1e4c7..13cca34f 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java @@ -127,4 +127,7 @@ public interface CuMemberRetailRangeMapper extends BaseMapper memberList, @Param("updateType") Integer updateType, @Param("symbol") String symbol); + + + void initMemberRetailSecondRange(@Param("tableName") String tableName, @Param("member") CuMemberExt memberList); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java index 8b805aa7..e9a7eb2e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java @@ -87,4 +87,5 @@ public interface ICuMemberRetailRangeService extends IService pkMemberList, Integer updateType, String symbol); + void initMemberRetailSecondRange(String tableName, CuMemberExt member); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java index 38a019a3..87745682 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java @@ -149,6 +149,11 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl> setUpdCuMemberTreeLists(Map cuMemberTreeMap) { List cuMemberTreeList = new ArrayList<>(); cuMemberTreeMap.forEach((key, value) -> cuMemberTreeList.add(value)); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java index 2d21daf6..5675063a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java @@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberAwards; import org.apache.ibatis.annotations.Param; +import java.io.Serializable; import java.util.Date; import java.util.List; @@ -13,6 +14,8 @@ import java.util.List; */ public interface CuMemberMapper extends BaseMapper { + CuMember getByPkId(@Param("pkId") Serializable id); + /** * 更新会员奖衔根据临时表 */ diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java index 8ccbffd5..28b2ba62 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java @@ -3,7 +3,9 @@ package com.hzs.bonus.base.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberAwards; +import org.apache.ibatis.annotations.Param; +import java.io.Serializable; import java.util.Date; import java.util.List; @@ -12,6 +14,7 @@ import java.util.List; */ public interface ICuMemberService extends IService { + CuMember getByPkId(Serializable id); /** * 更新会员奖衔根据临时表 -- 日结 */ diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java index e1e193a2..c0272a6d 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java @@ -8,6 +8,7 @@ import com.hzs.common.domain.member.detail.CuMemberAwards; import com.hzs.bonus.base.mapper.CuMemberMapper; import org.springframework.stereotype.Service; +import java.io.Serializable; import java.util.*; /** @@ -16,6 +17,11 @@ import java.util.*; @Service public class CuMemberServiceImpl extends ServiceImpl implements ICuMemberService { + @Override + public CuMember getByPkId(Serializable id) { + return baseMapper.getByPkId(id); + } + @Override public void updateCuMemberRetailRangeByPeriod(Integer period) { baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index bf6b5e51..f6c7ff35 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -1,7 +1,9 @@ package com.hzs.bonus.bonus.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService; import com.hzs.bonus.base.service.ICuMemberService; @@ -26,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.temporal.ChronoUnit; import java.util.*; +import java.util.stream.Collectors; /** * 奖金结算服务类 @@ -182,7 +185,15 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 秒结表名 String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod; List memberList = iCuMemberRetailRangeService.findParentMemberList(orderExt.getPkMember()); - CuMember self = iCuMemberService.getById(orderExt.getPkId()); + CuMember self = iCuMemberService.getByPkId(orderExt.getPkMember()); + CuMemberExt initSelf = new CuMemberExt(); + BeanUtil.copyProperties(self, initSelf); + List initMemberList = new ArrayList<>(); + initMemberList.add(initSelf); + initMemberList.addAll(memberList); + for (CuMemberExt memberExt : initMemberList) { + iCuMemberRetailRangeService.initMemberRetailSecondRange(secondRangeTableName, memberExt); + } iCuMemberRetailRangeService.updateMemberRetailSecondRangeSelf(secondRangeTableName, orderExt, self, updateType, symbol); iCuMemberRetailRangeService.updateMemberRetailSecondRangeParent(secondRangeTableName, orderExt, memberList, updateType, symbol); } diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml index 610ce41a..d6667d93 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml @@ -540,7 +540,7 @@ ALL_CONSUME_NEW_AMOUNT = ALL_CONSUME_NEW_AMOUNT ${symbol} #{orderExt.orderAmount}, ALL_CONSUME_NEW_PV = ALL_CONSUME_NEW_PV ${symbol} #{orderExt.orderAchieve} WHERE - PK_MEMBER = #{pkMember} + PK_MEMBER = #{cuMember.pkId} UPDATE ${tableName} @@ -554,13 +554,56 @@ REP_TEAM_NEW_PV = REP_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve}, ALL_TEAM_NEW_AMOUNT = ALL_TEAM_NEW_AMOUNT ${symbol} #{orderExt.orderAmount}, - ALL_TEAM_NEW_PV = ALL_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve}, + ALL_TEAM_NEW_PV = ALL_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve} WHERE PK_MEMBER in #{member.pkId} + + INSERT INTO ${tableName} ( + "PK_MEMBER", + "PK_PARENT", + "PK_GRADE", + "PK_AWARDS", + "ALL_CONSUME_NEW_AMOUNT", + "ALL_CONSUME_NEW_PV", + "ALL_TEAM_NEW_AMOUNT", + "ALL_TEAM_NEW_PV", + "REG_CONSUME_NEW_AMOUNT", + "REG_CONSUME_NEW_PV", + "REG_TEAM_NEW_AMOUNT", + "REG_TEAM_NEW_PV", + "REP_CONSUME_NEW_AMOUNT", + "REP_CONSUME_NEW_PV", + "REP_TEAM_NEW_AMOUNT", + "REP_TEAM_NEW_PV" + ) + SELECT + #{member.pkId}, + #{member.pkParent}, + #{member.pkSettleGrade}, + #{member.pkAwards}, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + FROM DUAL + WHERE NOT EXISTS ( + SELECT 1 + FROM ${tableName} + WHERE "PK_MEMBER" = #{member.pkId} + ) + diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml index 038c7f0c..d2756848 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml @@ -239,5 +239,9 @@ a.modified_time = sysdate + diff --git a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/CuUmbrellaBelowPushController.java b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/CuUmbrellaBelowPushController.java index 3ffddaf8..b23a93ad 100644 --- a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/CuUmbrellaBelowPushController.java +++ b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/CuUmbrellaBelowPushController.java @@ -13,14 +13,11 @@ import com.hzs.common.core.utils.poi.ExcelUtil; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.base.CuMember; -import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.service.ITransactionCommonService; import com.hzs.member.base.IMemberServiceApi; import com.hzs.report.member.service.IMemberService; -import com.hzs.report.member.vo.MallPVStatVO; import com.hzs.report.member.vo.UmbrellaBelowPushVO; -import com.hzs.sale.order.ISaOrderServiceApi; +import com.hzs.report.order.ISaOrderServiceApi; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; diff --git a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/OrderSingleItemStatController.java b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/OrderSingleItemStatController.java index 237dcd88..3f22ed44 100644 --- a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/OrderSingleItemStatController.java +++ b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/controller/manage/OrderSingleItemStatController.java @@ -10,13 +10,12 @@ import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.poi.ExcelUtil; import com.hzs.common.core.web.controller.BaseController; -import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.PageDomain; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.core.web.page.TableSupport; -import com.hzs.sale.order.ISaOrderServiceApi; -import com.hzs.sale.order.dto.SingleItemStatDTO; -import com.hzs.sale.order.dto.SingleItemStatParamDTO; +import com.hzs.report.order.ISaOrderServiceApi; +import com.hzs.report.order.dto.SingleItemStatDTO; +import com.hzs.report.order.dto.SingleItemStatParamDTO; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 8fda2f70..0e2d6742 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -745,18 +745,16 @@ public class RetailOrderServiceImpl implements IRetailOrderService { */ private Boolean handleMemberActivate(CuMember cuMember, SaOrderExt saOrder) { if ((null == cuMember.getIsActivate() || EYesNo.YES.getIntValue() != cuMember.getIsActivate()) - && EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() + && (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() || EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) ) { // 会员激活状态为空 或 未激活,并且是 注册、升级 订单,判断会员是否激活 - if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) > 0) { - // 存在指定盒数商品 - cuMember.setIsActivate(EYesNo.YES.getIntValue()); - if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) { - cuMember.setPayTime(saOrder.getPayTime()); - cuMember.setPayStatus(EPayStatus.PAID.getValue()); - } - return true; + // 存在指定盒数商品 + cuMember.setIsActivate(EYesNo.YES.getIntValue()); + if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) { + cuMember.setPayTime(saOrder.getPayTime()); + cuMember.setPayStatus(EPayStatus.PAID.getValue()); } + return true; } return false; } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DateUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DateUtils.java index aa66ce87..f40085e8 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DateUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DateUtils.java @@ -1,5 +1,6 @@ package com.hzs.common.core.utils; +import cn.hutool.core.date.DateUtil; import org.apache.commons.lang3.time.DateFormatUtils; import java.text.ParseException; @@ -910,4 +911,28 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { return daysStrList; } + + public static Date getStartOfDay(Date date) { + LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + LocalDateTime endOfDay = localDateTime.withHour(0).withMinute(0).withSecond(0).withNano(0); + return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + } + public static Date getEndOfDay(Date date) { + LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + LocalDateTime endOfDay = localDateTime.withHour(23).withMinute(59).withSecond(59).withNano(999999999); + return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + } + + public static Date getStartOfDay(String day) { + Date date = DateUtil.parse(day, "yyyy-MM-dd"); + LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + LocalDateTime endOfDay = localDateTime.withHour(0).withMinute(0).withSecond(0).withNano(0); + return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + } + public static Date getEndOfDay(String day) { + Date date = DateUtil.parse(day, "yyyy-MM-dd"); + LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + LocalDateTime endOfDay = localDateTime.withHour(23).withMinute(59).withSecond(59).withNano(999999999); + return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + } }