From 4cfca176bb4f08ed50cc7c44249e66c8bc1c72eb Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 1 Jul 2025 14:53:45 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=AF=8F=E6=9C=88=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E8=80=83=E6=A0=B8=E6=95=B0=E6=8D=AE=E7=94=9F=E6=88=90=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/retail/member/IMemberRetailApi.java | 7 +- .../mapper/CuRegionAssessDetailMapper.java | 53 ++---- .../detail/mapper/CuRegionAssessMapper.java | 48 +---- .../service/ICuRegionAssessDetailService.java | 25 +-- .../service/ICuRegionAssessService.java | 29 +-- .../impl/CuRegionAssessDetailServiceImpl.java | 8 - .../impl/CuRegionAssessServiceImpl.java | 62 +++---- .../detail/CuRegionAssessDetailMapper.xml | 168 +++++++++++------- .../bonus/detail/CuRegionAssessMapper.xml | 166 +++++++++-------- .../member/provider/MemberRetailProvider.java | 6 +- .../domain/member/detail/CuRegionAssess.java | 7 +- .../member/detail/CuRegionAssessDetail.java | 8 +- .../job/controller/JobTestController.java | 15 +- 13 files changed, 277 insertions(+), 325 deletions(-) diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java index cf060659..e994f225 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java @@ -5,11 +5,7 @@ import com.hzs.common.core.domain.R; import java.util.List; /** - * @Description: 新零售会员dubbo服务 - * @Author: jiang chao - * @Time: 2024/12/31 13:40 - * @Classname: IMemberRetailApi - * @PackageName: com.hzs.retail.member + * 新零售会员dubbo服务 */ public interface IMemberRetailApi { @@ -20,7 +16,6 @@ public interface IMemberRetailApi { */ R checkRegion(); - /** * 取消收益区域 * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java index c64e2b86..25efdea9 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java @@ -8,78 +8,51 @@ import java.util.Date; import java.util.List; /** - *

* 新零售会员区域考核明细表 Mapper 接口 - *

- * - * @author hzs - * @since 2025-01-13 */ public interface CuRegionAssessDetailMapper extends BaseMapper { /* - * @description: 考核开始日期 - * @author: sui q - * @date: 2025/1/13 17:13 - * @param: null null + * 考核开始日期 **/ void deleteAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod); /* - * @description: 删除重复的数据 - * @author: sui q - * @date: 2025/1/15 16:11 - * @param: null null + * 删除重复的数据 **/ void updateAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate); + /** + * 批量生成考核明细seq + * + * @param rowNum + * @return + */ List batchQueryCuRegionAssessDetailSeq(Integer rowNum); /* - * @description: 批量插入区域考核数据 - * @author: sui q - * @date: 2025/1/14 14:31 - * @param: null null + * 批量插入区域考核数据 **/ void batchInsertCuRegionAssessDetail(@Param("cuRegionAssessDetailList") List cuRegionAssessDetailList); /* - * @description: 根据上月数据更新考核明细数据 - * @author: sui q - * @date: 2025/1/14 16:44 - * @param: null null + * 根据上月数据更新考核明细数据 **/ void mergeCuRegionAssessDetailTeamPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate); /* - * @description: 根据上月数据更新考核明细数据 - * @author: sui q - * @date: 2025/1/14 16:44 - * @param: null null + * 根据上月数据更新考核明细数据 **/ void mergeCuRegionAssessDetailSmallAreaPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate); /* - * @description: 初始化考核,先置为考核失败 - * @author: sui q - * @date: 2025/1/14 17:30 - * @param: null null + * 初始化考核,先置为考核失败 **/ void updateCuRegionAssessDetailInit(@Param("assessDate") Date assessDate); /* - * @description: 根据月后业绩考核,汇总满足30w,小区10w - * @author: sui q - * @date: 2025/1/14 17:36 - * @param: null null + * 根据月后业绩考核,汇总满足30w,小区10w **/ void updateCuRegionAssessDetailByPv(@Param("assessDate") Date assessDate); - /* - * @description: 根据月后业绩考核,汇总满足30w,小区10w - * @author: sui q - * @date: 2025/1/14 17:36 - * @param: null null - **/ - void updateCuRegionAssessDetailByHand(@Param("assessDate") Date assessDate); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java index 63b8f9ae..005d38f5 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java @@ -11,36 +11,22 @@ import java.util.Date; import java.util.List; /** - *

* 新零售会员区域考核 Mapper 接口 - *

- * - * @author hzs - * @since 2025-01-13 */ public interface CuRegionAssessMapper extends BaseMapper { /* - * @description: 查询考核结果 - * @author: sui q - * @date: 2025/1/15 17:22 - * @param: null null + * 查询考核结果 **/ List queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam); /* - * @description: 考核开始日期 - * @author: sui q - * @date: 2025/1/13 17:13 - * @param: null null + * 考核开始日期 **/ void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod); /* - * @description: 考核开始日期 - * @author: sui q - * @date: 2025/1/13 17:13 - * @param: null null + * 考核开始日期 **/ void updateAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate); @@ -48,49 +34,31 @@ public interface CuRegionAssessMapper extends BaseMapper { * 批量获取cuMemberBonus主键 * * @param rowNum 数量 - * @return: List - * @Author: sui q - * @Date: 2022/12/13 13:47 */ List batchQueryCuRegionAssessSeq(Integer rowNum); /* - * @description: 批量插入区域考核数据 - * @author: sui q - * @date: 2025/1/14 14:31 - * @param: null null + * 批量插入区域考核数据 **/ void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List cuRegionAssessList); /* - * @description: 更新达标次数 - * @author: sui q - * @date: 2025/1/15 10:44 - * @param: null null + * 更新达标次数 **/ void mergeCuRegionAssess(@Param("assessDate") Date assessDate); /* - * @description: 查询待考核的区域 - * @author: sui q - * @date: 2025/1/13 17:31 - * @param: null null + * 查询待考核的区域 **/ List queryCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate); /* - * @description: 查询到期日期是上个月的区域 - * @author: sui q - * @date: 2025/2/25 15:45 - * @param: null null + * 查询到期日期是上个月的区域 **/ List queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate); /* - * @description: 查询手动设置考核的近6个月考核记录 - * @author: sui q - * @date: 2025/2/26 9:21 - * @param: null null + * 查询手动设置考核的近6个月考核记录 **/ List queryRegionAssessByDate(@Param("memberRetailRegionList") List memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java index 168dbe0c..f0e47195 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java @@ -7,46 +7,29 @@ import java.util.Date; import java.util.List; /** - *

* 新零售会员区域考核明细表 服务类 - *

- * - * @author hzs - * @since 2025-01-13 */ public interface ICuRegionAssessDetailService extends IService { /* - * @description: 考核开始日期 - * @author: sui q - * @date: 2025/1/13 17:13 - * @param: null null + * 考核开始日期 **/ void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod); /* - * @description: 删除重复的数据 - * @author: sui q - * @date: 2025/1/15 16:11 - * @param: null null + * 删除重复的数据 **/ void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate); List batchQueryCuRegionAssessDetailSeq(Integer rowNum); /* - * @description: 批量插入区域考核数据 - * @author: sui q - * @date: 2025/1/14 14:31 - * @param: null null + * 批量插入区域考核数据 **/ void batchInsertCuRegionAssessDetail(List cuRegionAssessDetailList); /* - * @description: 根据上月数据考核区域 - * @author: sui q - * @date: 2025/1/14 16:44 - * @param: null null + * 根据上月数据考核区域 **/ void assessCuRegionAssessDetail(String rangeTableName, Date assessDate); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java index 0f5fe7c0..29a77c3d 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java @@ -5,51 +5,34 @@ import com.hzs.bonus.detail.vo.CuRegionAssessVO; import com.hzs.bonus.param.CuRegionAssessParam; import com.hzs.common.domain.member.detail.CuRegionAssess; import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt; -import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; /** - *

* 新零售会员区域考核 服务类 - *

- * - * @author hzs - * @since 2025-01-13 */ public interface ICuRegionAssessService extends IService { /* - * @description: 每月考核区域是否达标 - * @author: sui q - * @date: 2025/1/13 16:46 - * @param: null null + * 每月考核区域是否达标 **/ void assessRegionByEveryMonth(String settleDate, String rangeTableName); /** - * @description: 定时处理会员收益区域(处理前三天) - * @author: zhang jing - * @date: 2025/3/7 10:08 - * @param: [startDate] + * 定时处理会员收益区域(处理前三天) + * * @return: void **/ - void validateHandAreaAssess(Date startDate,Date endDate); + void validateHandAreaAssess(Date startDate, Date endDate); /* - * @description: 考核开始日期 - * @author: sui q - * @date: 2025/1/13 17:13 - * @param: null null + * 考核开始日期 **/ void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod); /* - * @description: 查询考核结果 - * @author: sui q - * @date: 2025/1/15 17:22 - * @param: null null + * 查询考核结果 **/ List queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java index 2897177b..89306255 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java @@ -10,12 +10,7 @@ import java.util.Date; import java.util.List; /** - *

* 新零售会员区域考核明细表 服务实现类 - *

- * - * @author hzs - * @since 2025-01-13 */ @Service public class CuRegionAssessDetailServiceImpl extends ServiceImpl implements ICuRegionAssessDetailService { @@ -50,8 +45,5 @@ public class CuRegionAssessDetailServiceImpl extends ServiceImpl * 新零售会员区域考核 服务实现类 - *

- * - * @author hzs - * @since 2025-01-13 */ +@Slf4j @Service public class CuRegionAssessServiceImpl extends ServiceImpl implements ICuRegionAssessService { @DubboReference - private IMemberRetailApi memberRetailApi; + IMemberRetailApi iMemberRetailApi; @Autowired - private ICuRegionAssessDetailService cuRegionAssessDetailService; + private ICuRegionAssessDetailService iCuRegionAssessDetailService; @Autowired private CuMemberBonusSettle cuMemberBonusSettle; @@ -54,14 +48,23 @@ public class CuRegionAssessServiceImpl extends ServiceImpl memberRetailRegionList = baseMapper.queryCuMemberRetailRegion(startDate, assessDate); if (memberRetailRegionList.size() > 0) { Map regionAssessMap = new HashMap<>(); @@ -92,18 +95,19 @@ public class CuRegionAssessServiceImpl extends ServiceImpl cancelRegionList = new ArrayList<>(); // 开始考核,将 上月最后一天,奖衔、业绩同步到考核表中 // 查询主表考核结束日期=考核日期的,这部分需要生成下6期,最后一期结算完,验证是否达标,达标后继续生成下一期,不达标取消区域 // 查询考核结束日期次数不达标的区域,进行区域取消处理 List cuRegionAssessList = queryCuRegionAssessByEndDate(assessDate); - List cancelRegionList = new ArrayList<>(); Map regionAssessMap = new HashMap<>(); List regionAssessDetailList = new ArrayList<>(); for (CuRegionAssess cuRegionAssess : cuRegionAssessList) { - // 手动开区域的不参与考核,只有会员端选区域的参与考核 - if (cuRegionAssess.getReachNum() < 3 && cuRegionAssess.getSource() == 1) { + if (cuRegionAssess.getReachNum() < 3) { cancelRegionList.add(cuRegionAssess.getPkRegion()); continue; } @@ -136,16 +140,13 @@ public class CuRegionAssessServiceImpl extends ServiceImpl 0) { - if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) { + if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) { throw new RuntimeException("区域更新失败"); } } } } - /** - * 定时处理会员收益区域(处理前三天) - **/ @Override public void validateHandAreaAssess(Date startDate, Date endDate) { List cancelRegionList = new ArrayList<>(); @@ -169,7 +170,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl 0) { - if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) { + if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) { throw new RuntimeException("区域更新失败"); } } @@ -193,21 +194,20 @@ public class CuRegionAssessServiceImpl extends ServiceImpl> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList); - lists.forEach(list -> - baseMapper.batchInsertCuRegionAssess(list)); - List idList = cuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size()); + lists.forEach(list -> baseMapper.batchInsertCuRegionAssess(list)); + + List idList = iCuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size()); for (int j = 0; j < regionAssessDetailList.size(); j++) { regionAssessDetailList.get(j).setPkId(idList.get(j)); } // 明细表 List> detailList = cuMemberBonusSettle.handleCutList(regionAssessDetailList); - detailList.forEach(detail -> - cuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail)); + detailList.forEach(detail -> iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail)); } List queryCuRegionAssessByEndDate(Date settleDate) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("ASSESS_END_DATE", settleDate); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CuRegionAssess::getAssessEndDate, settleDate); return baseMapper.selectList(queryWrapper); } @@ -215,7 +215,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl - - - - - - - - - - - - - - + + + + + + + + + + + + + + + insert ALL - - into cu_region_assess_detail(pk_id,pk_member,pk_region_assess,assess_date,pk_creator,pk_country) values - ( - #{item.pkId},#{item.pkMember},#{item.pkRegionAssess},#{item.assessDate},#{item.pkCreator},#{item.pkCountry} - ) + + into cu_region_assess_detail ( + pk_id, pk_member, pk_region_assess, assess_date, + pk_creator, pk_country) + values ( + #{item.pkId}, #{item.pkMember}, #{item.pkRegionAssess}, #{item.assessDate}, + #{item.pkCreator}, #{item.pkCountry}) SELECT 1 FROM dual + merge into cu_region_assess_detail a - using( - select cd.pk_id,cr.pk_member,cr.pk_awards, - (cr.month_consume_pv+cr.team_month_pv) team_month_pv from cu_region_assess_detail cd - inner join ${rangeTableName} cr - on cd.pk_member=cr.pk_member - where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE} + using ( + select cd.pk_id, + cr.pk_member, + cr.pk_awards, + (cr.month_consume_pv + cr.team_month_pv) team_month_pv + from cu_region_assess_detail cd + inner join ${rangeTableName} cr + on cd.pk_member = cr.pk_member + where cd.del_flag = 0 + and cd.assess_date = #{assessDate, jdbcType=DATE} ) b - on(a.pk_id=b.pk_id) + on (a.pk_id = b.pk_id) when matched then - update set a.pk_awards=b.pk_awards,a.team_month_pv=b.team_month_pv - WHERE a.pk_awards != b.pk_awards OR a.team_month_pv != b.team_month_pv + update set a.pk_awards = b.pk_awards, a.team_month_pv = b.team_month_pv + WHERE a.pk_awards != b.pk_awards + OR a.team_month_pv != b.team_month_pv + merge into cu_region_assess_detail a - using( - select pk_id,max(big_area_pv) big_area_pv from( - select cd.pk_id,b.* from cu_region_assess_detail cd - inner join( - select pk_parent pk_member,(month_consume_pv+team_month_pv) big_area_pv from ${rangeTableName} - union - select pk_member,month_consume_pv big_area_pv from ${rangeTableName}) b - on cd.pk_member=b.pk_member - where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE} - ) + using ( + select pk_id, max(big_area_pv) big_area_pv + from ( + select cd.pk_id, b.* + from cu_region_assess_detail cd + inner join ( + select pk_parent pk_member, (month_consume_pv + team_month_pv) big_area_pv + from ${rangeTableName} + union + select pk_member, month_consume_pv big_area_pv + from ${rangeTableName} + ) b + on cd.pk_member = b.pk_member + where cd.del_flag = 0 + and cd.assess_date = #{assessDate, jdbcType=DATE} + ) group by pk_id ) b - on(a.pk_id=b.pk_id) + on (a.pk_id = b.pk_id) when matched then - update set a.small_area_pv=a.team_month_pv-b.big_area_pv + update set a.small_area_pv = a.team_month_pv - b.big_area_pv + - update cu_region_assess_detail set assess_status=2 where del_flag=0 and assess_date=#{assessDate, jdbcType=DATE} - - - update cu_region_assess_detail set assess_status=0 - where del_flag=0 and team_month_pv>=46875 and small_area_pv>=15625 + update cu_region_assess_detail + set assess_status = 2 + where del_flag = 0 and assess_date = #{assessDate, jdbcType=DATE} - - update cu_region_assess_detail set assess_status=0 - where del_flag=0 and assess_date = #{assessDate, jdbcType=DATE} - and pk_region_assess in(select pk_id from cu_region_assess where del_flag=0 and source=2) + + + update cu_region_assess_detail + set assess_status = 0 + where del_flag = 0 + and team_month_pv >= 300000 + and small_area_pv >= 100000 + and assess_date = #{assessDate, jdbcType=DATE} + - update cu_region_assess_detail set del_flag=1,modified_time=sysdate where pk_region_assess in( - select ca.pk_id from cu_region_assess ca - inner join ( - select pk_id from cu_member_retail_region - where effective=0 and del_flag=0 - and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE} - and nvl(modified_time,creation_time) < #{assessEndDate,jdbcType=DATE} - ) b - on ca.pk_region =b.pk_id - where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE}) + update cu_region_assess_detail + set del_flag = 1, + modified_time = sysdate + where pk_region_assess in ( + select ca.pk_id + from cu_region_assess ca + inner join ( + select pk_id + from cu_member_retail_region + where effective = 0 + and del_flag = 0 + and nvl(modified_time, creation_time) >= #{assessStartDate, jdbcType=DATE} + and nvl(modified_time, creation_time) < #{assessEndDate, jdbcType=DATE} + ) b + on ca.pk_region = b.pk_id + where ca.del_flag = 0 + and ca.assess_start_date != #{assessEndDate,jdbcType=DATE}) + - delete from cu_region_assess_detail where del_flag=0 and - pk_region_assess in( - select pk_id from cu_region_assess where del_flag=0 and - assess_start_date=#{assessStartDate, jdbcType=DATE} - - and assess_period=#{assessPeriod} - and assess_period >= #{assessPeriod} - + delete from cu_region_assess_detail + where del_flag = 0 and + pk_region_assess in ( + select pk_id from cu_region_assess + where del_flag = 0 + and assess_start_date = #{assessStartDate, jdbcType=DATE} + + and assess_period = #{assessPeriod} + and assess_period >= #{assessPeriod} + ) + diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml index c80c17d6..60e3a2bb 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml @@ -4,96 +4,119 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + insert ALL - - into cu_region_assess(pk_id,pk_member,assess_period,pk_region,assess_start_date,assess_end_date, - source,pk_creator,pk_country) values - ( - #{item.pkId},#{item.pkMember},#{item.assessPeriod},#{item.pkRegion},#{item.assessStartDate},#{item.assessEndDate}, - #{item.source},#{item.pkCreator},#{item.pkCountry} - ) + + into cu_region_assess ( + pk_id, pk_member, assess_period, pk_region, + assess_start_date, assess_end_date, + source, pk_creator, pk_country) + values ( + #{item.pkId}, #{item.pkMember}, #{item.assessPeriod}, #{item.pkRegion}, + #{item.assessStartDate}, #{item.assessEndDate}, + #{item.source}, #{item.pkCreator}, #{item.pkCountry}) SELECT 1 FROM dual + merge into CU_REGION_ASSESS a - using( - select cd.pk_region_assess,sum(1) REACH_NUM from cu_region_assess_detail cd - inner join cu_region_assess ca - on cd.pk_region_assess=ca.pk_id - where cd.ASSESS_STATUS=0 and cd.del_flag=0 and ca.del_flag=0 - and ca.assess_start_date <= #{assessDate,jdbcType=DATE} - and ca.assess_end_date >= #{assessDate,jdbcType=DATE} + using ( + select cd.pk_region_assess, sum(1) REACH_NUM + from cu_region_assess_detail cd + inner join cu_region_assess ca + on cd.pk_region_assess = ca.pk_id + where cd.ASSESS_STATUS = 0 + and cd.del_flag = 0 + and ca.del_flag = 0 + and ca.assess_start_date <= #{assessDate,jdbcType=DATE} + and ca.assess_end_date >= #{assessDate,jdbcType=DATE} group by cd.pk_region_assess ) b - on (a.pk_id=b.pk_region_assess) + on (a.pk_id = b.pk_region_assess) when matched then - update set a.REACH_NUM=b.REACH_NUM + update set a.REACH_NUM = b.REACH_NUM + - update cu_region_assess set del_flag=1,modified_time=sysdate where pk_id in( - select ca.pk_id from cu_region_assess ca - inner join ( - select pk_id from cu_member_retail_region - where effective=0 and del_flag=0 - and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE} - and nvl(modified_time,creation_time) < #{assessEndDate,jdbcType=DATE} - ) b - on ca.pk_region =b.pk_id - where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE}) + update cu_region_assess + set del_flag = 1, + modified_time = sysdate + where pk_id in ( + select ca.pk_id + from cu_region_assess ca + inner join ( + select pk_id + from cu_member_retail_region + where effective = 0 + and del_flag = 0 + and nvl(modified_time, creation_time) >= #{assessStartDate,jdbcType=DATE} + and nvl(modified_time, creation_time) < #{assessEndDate,jdbcType=DATE} + ) b + on ca.pk_region = b.pk_id + where ca.del_flag = 0 + and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE}) + delete from cu_region_assess where del_flag=0 and - assess_start_date=#{assessStartDate, jdbcType=DATE} + assess_start_date=#{assessStartDate, jdbcType=DATE} and assess_period=#{assessPeriod} and assess_period >= #{assessPeriod} + + + diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java index dddd4b2e..8e78ffa0 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java @@ -10,11 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.List; /** - * @Description: 新零售会员dubbo服务 - * @Author: jiang chao - * @Time: 2024/12/31 13:40 - * @Classname: MemberRetailProvider - * @PackageName: com.hzs.retail.member.provider + * 新零售会员dubbo服务 */ @Slf4j @DubboService diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssess.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssess.java index 1aad6248..251ceccf 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssess.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssess.java @@ -2,7 +2,9 @@ package com.hzs.common.domain.member.detail; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableName; + import java.util.Date; + import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.hzs.common.core.web.domain.BaseEntity; @@ -10,12 +12,7 @@ import lombok.*; import lombok.experimental.Accessors; /** - *

* 新零售会员区域考核 - *

- * - * @author hzs - * @since 2025-01-13 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssessDetail.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssessDetail.java index 63cfa96a..c502d0db 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssessDetail.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuRegionAssessDetail.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.math.BigDecimal; import java.util.Date; + import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.hzs.common.core.web.domain.BaseEntity; @@ -12,12 +13,7 @@ import lombok.*; import lombok.experimental.Accessors; /** - *

* 新零售会员区域考核明细表 - *

- * - * @author hzs - * @since 2025-01-13 */ @Data @EqualsAndHashCode(callSuper = true) @@ -56,7 +52,7 @@ public class CuRegionAssessDetail extends BaseEntity { private Date assessDate; /** - * 会员等级 + * 会员奖衔 */ @TableField("PK_AWARDS") private Integer pkAwards; diff --git a/bd-third/src/main/java/com/hzs/third/job/controller/JobTestController.java b/bd-third/src/main/java/com/hzs/third/job/controller/JobTestController.java index 72160a75..83b916fa 100644 --- a/bd-third/src/main/java/com/hzs/third/job/controller/JobTestController.java +++ b/bd-third/src/main/java/com/hzs/third/job/controller/JobTestController.java @@ -4,19 +4,20 @@ import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.domain.R; +import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.member.account.IMemberJobServiceApi; import com.hzs.system.base.IAreaServiceApi; import com.hzs.system.base.dto.AreaDTO; -import com.hzs.third.job.OrderJob; 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.time.temporal.ChronoUnit; import java.util.*; /** @@ -32,6 +33,16 @@ public class JobTestController { @DubboReference IMemberJobServiceApi iMemberJobServiceApi; + @DubboReference + IMemberSettleBonusApi iMemberSettleBonusApi; + + + @GetMapping("/test-settle") + public AjaxResult testSettle() { + Date startDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate()); + iMemberSettleBonusApi.autoCalculateBonus(startDate); + return AjaxResult.success(); + } /** * 测试行政区划更新