From 21a2db7a930034a08451d6afa1128ca84d885178 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 8 Jul 2025 14:26:46 +0800 Subject: [PATCH 01/89] =?UTF-8?q?##=20=E7=AD=89=E7=BA=A7=E3=80=81=E5=A4=8D?= =?UTF-8?q?=E8=B4=AD=E7=BA=A7=E5=B7=AE=E6=B7=BB=E5=8A=A0=E5=88=B07?= =?UTF-8?q?=E7=BA=A7=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/base/mapper/BdNoticeMapper.java | 20 - .../system/base/service/IBdNoticeService.java | 16 +- .../service/impl/BdNoticeServiceImpl.java | 47 +- .../com/hzs/system/base/vo/BdNoticeVO.java | 6 +- .../manage/BdRetailRangeController.java | 141 ++--- .../config/mapper/BdRangeDetailsMapper.java | 12 +- .../service/IBdRangeDetailsService.java | 14 +- .../impl/BdRangeDetailsServiceImpl.java | 13 +- .../mapper/system/base/BdNoticeMapper.xml | 119 ++-- .../system/config/BdRangeDetailsMapper.xml | 35 +- .../core/constant/msg/ConfigMsgConstants.java | 599 ++++++++---------- .../com/hzs/common/core/enums/ERangeType.java | 6 +- .../common/domain/system/base/BdNotice.java | 3 - .../domain/system/config/BdRangeDetails.java | 6 - .../system/config/ext/BdRangeDetailsExt.java | 17 +- .../domain/system/config/ext/BdRangeExt.java | 26 +- 16 files changed, 408 insertions(+), 672 deletions(-) diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdNoticeMapper.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdNoticeMapper.java index 29ea92d5..355bc775 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdNoticeMapper.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdNoticeMapper.java @@ -9,12 +9,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - *

* 公告表 Mapper 接口 - *

- * - * @author hzs - * @since 2022-08-09 */ public interface BdNoticeMapper extends BaseMapper { @@ -26,7 +21,6 @@ public interface BdNoticeMapper extends BaseMapper { */ List getMemberNotice(BdNoticeVO noticeVO); - /** * 查询后台公告列表信息 * @@ -35,7 +29,6 @@ public interface BdNoticeMapper extends BaseMapper { */ List getAdminNotice(BdNoticeVO noticeVO); - /** * 后台首页显示 * @@ -44,15 +37,6 @@ public interface BdNoticeMapper extends BaseMapper { */ List getAdminIndexNotice(BdNoticeVO noticeVO); - /** - * 根据 ID删除公告信息 - * - * @param notice 参数 - * @return Boolean - */ - Integer deleteNoticeById(BdNotice notice); - - /** * 会员首页显示公告 * @@ -69,7 +53,6 @@ public interface BdNoticeMapper extends BaseMapper { */ List showIndexMailNotice(BdNoticeVO noticeVO); - /** * 会员端弹窗显示 * @@ -78,7 +61,6 @@ public interface BdNoticeMapper extends BaseMapper { */ List showIndexPopScreen(BdNoticeVO noticeVO); - /** * 会员首页公告、站内信总条数 * @@ -87,7 +69,6 @@ public interface BdNoticeMapper extends BaseMapper { */ Integer showIndexNoticeCount(BdNoticeVO noticeVO); - /** * 会员首页站内信的未读条数 * @@ -112,7 +93,6 @@ public interface BdNoticeMapper extends BaseMapper { */ List selectAdminNotice(@Param("pkCountry") Integer pkCountry); - /** * 后台根据角色弹窗显示 * diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdNoticeService.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdNoticeService.java index b536683b..c0f6aab6 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdNoticeService.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdNoticeService.java @@ -13,9 +13,6 @@ import java.util.Map; /** * 公告表 服务类 - * - * @author hzs - * @since 2022-08-09 */ public interface IBdNoticeService extends IService { @@ -104,20 +101,12 @@ public interface IBdNoticeService extends IService { /** - * @description: 获取等级的翻译KEY值 - * @author: zhang jing - * @date: 2023/3/2 12:00 - * @param: [pkId, gradeMap] - * @return: java.lang.Integer + * 获取等级的翻译KEY值 **/ Integer getGradeTranslateValue(Integer pkId, Map gradeMap); /** - * @description: 获取奖衔的翻译KEY值 - * @author: zhang jing - * @date: 2023/3/2 12:00 - * @param: [pkId, awardsMap] - * @return: java.lang.Integer + * 获取奖衔的翻译KEY值 **/ Integer getAwardsTranslateValue(Integer pkId, Map awardsMap); @@ -154,7 +143,6 @@ public interface IBdNoticeService extends IService { */ Object[] selectAdminNotice(Integer pkCountry); - /** * 会员首页公告、站内信总条数 * diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdNoticeServiceImpl.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdNoticeServiceImpl.java index 0a749390..27550ef9 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdNoticeServiceImpl.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdNoticeServiceImpl.java @@ -22,7 +22,6 @@ import com.hzs.common.domain.system.ext.BdNoticeExt; import com.hzs.common.domain.system.sys.SysRole; import com.hzs.common.service.ITransactionCommonService; import com.hzs.system.base.mapper.BdNoticeMapper; -import com.hzs.system.base.service.IBdMemberNoticeService; import com.hzs.system.base.service.IBdNoticeDetailService; import com.hzs.system.base.service.IBdNoticeService; import com.hzs.system.base.vo.*; @@ -43,19 +42,16 @@ import java.util.stream.Collectors; /** * 公告表 服务实现类 - * - * @author hzs - * @since 2022-08-09 */ @Service public class BdNoticeServiceImpl extends ServiceImpl implements IBdNoticeService { @Autowired - private ISysRoleService sysRoleService; + private ISysRoleService iSysRoleService; @Autowired - private IBdGradeService gradeService; + private IBdGradeService iBdGradeService; @Autowired - private IBdAwardsService awardsService; + private IBdAwardsService iBdAwardsService; @Autowired private IBdNoticeDetailService iBdNoticeDetailService; @Autowired @@ -64,7 +60,7 @@ public class BdNoticeServiceImpl extends ServiceImpl i private RabbitTemplate rabbitTemplate; @DubboReference - IApprovalServiceApi approvalServiceApi; + IApprovalServiceApi iApprovalServiceApi; @Override @Transactional(rollbackFor = Exception.class) @@ -93,7 +89,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i return result; } - @Override @Transactional(rollbackFor = Exception.class) public Boolean adminSaveNotice(NoticePetitionVO noticePetitionVO) { @@ -127,7 +122,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i return submitApproval(noticePetitionVO, batchCode); } - /** * 公告、站内信 操作日志 * @@ -166,7 +160,7 @@ public class BdNoticeServiceImpl extends ServiceImpl i .signType(ESignType.getEnumByValue(noticePetitionVO.getSignType())).userIdList(noticePetitionVO.getUserIdList()) .sendIdList(noticePetitionVO.getSendIdList()) .remark(noticePetitionVO.getRemark()).build(); - R submit = approvalServiceApi.submit(approvalSubmitDTO, noticeVO.getLoginUser()); + R submit = iApprovalServiceApi.submit(approvalSubmitDTO, noticeVO.getLoginUser()); if (!submit.isSuccess()) { throw new RuntimeException(submit.getMsg()); } else { @@ -200,9 +194,9 @@ public class BdNoticeServiceImpl extends ServiceImpl i if (CollUtil.isNotEmpty(noticeList)) { // 查询等级、奖衔列表 - List gradeList = gradeService.selectGradeAll(noticeVO.getPkCountry()); + List gradeList = iBdGradeService.selectGradeAll(noticeVO.getPkCountry()); Map gradeMap = gradeList.stream().collect(Collectors.toMap(BdGrade::getPkId, val -> val)); - List awardsList = awardsService.getBdAwards(noticeVO.getPkCountry(), null); + List awardsList = iBdAwardsService.getBdAwards(noticeVO.getPkCountry(), null); Map awardsMap = awardsList.stream().collect(Collectors.toMap(BdAwards::getPkId, val -> val)); for (BdNotice notice : noticeList) { @@ -258,7 +252,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i return new Object[]{noticeList, bdNoticeVOList}; } - @Override public Object[] showIndexNotice(BdNoticeVO noticeVO) { List noticeList; @@ -271,7 +264,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i } List bdNoticeVOList = BeanUtil.copyToList(noticeList, BdNoticeVO.class); return new Object[]{noticeList, bdNoticeVOList}; - } @Override @@ -280,7 +272,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i return BeanUtil.copyToList(noticeList, BdNoticeVO.class); } - @Override public BdNoticeVO showIndexNoticeDetail(Long pkId, Integer pkCountry, Long pkMember) { BdNoticeDetail noticeDetail = iBdNoticeDetailService.selectNoticeDetailByPkNoticeId(pkId, pkMember); @@ -298,20 +289,12 @@ public class BdNoticeServiceImpl extends ServiceImpl i return changeTranslate(notice, null, null); } - @Override public BdNoticeVO showNoticeDetail(Long pkId) { BdNotice notice = baseMapper.selectById(pkId); return changeTranslate(notice, null, null); } - /** - * 获取等级的翻译KEY值 - * - * @param pkId ID - * @param gradeMap 等级map - * @return Integer - */ @Override public Integer getGradeTranslateValue(Integer pkId, Map gradeMap) { BdGrade bdGrade; @@ -321,20 +304,13 @@ public class BdNoticeServiceImpl extends ServiceImpl i return bdGrade.getPkTransaction(); } } - bdGrade = gradeService.getBdGrade(pkId); + bdGrade = iBdGradeService.getBdGrade(pkId); if (null != bdGrade) { return bdGrade.getPkTransaction(); } return 0; } - /** - * 获取奖衔的翻译KEY值 - * - * @param pkId ID - * @param awardsMap 奖衔map - * @return Integer - */ @Override public Integer getAwardsTranslateValue(Integer pkId, Map awardsMap) { BdAwards bdAwards; @@ -344,7 +320,7 @@ public class BdNoticeServiceImpl extends ServiceImpl i return bdAwards.getPkTransaction(); } } - bdAwards = awardsService.getBdAwardsOne(pkId); + bdAwards = iBdAwardsService.getBdAwardsOne(pkId); if (bdAwards != null) { return bdAwards.getPkTransaction(); } @@ -410,7 +386,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i return noticeAwardList; } - /** * 发布位置翻译 * @@ -443,7 +418,7 @@ public class BdNoticeServiceImpl extends ServiceImpl i String[] roles = role.split(","); List roleNames = new ArrayList<>(); for (String roleStr : roles) { - SysRole sysRole = sysRoleService.selectRoleById(Long.parseLong(roleStr)); + SysRole sysRole = iSysRoleService.selectRoleById(Long.parseLong(roleStr)); if (null != sysRole) { roleNames.add(sysRole.getRoleName()); } @@ -481,7 +456,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i showVO.setNoticeList(bdNoticeVOList); showVO.setMonthTime(entry.getKey()); bdNoticeAdminShowVOList.add(showVO); - } } return new Object[]{bdNoticeExtList, bdNoticeAdminShowVOList}; @@ -497,7 +471,6 @@ public class BdNoticeServiceImpl extends ServiceImpl i return baseMapper.showIndexMailCount(noticeVO); } - @Override public List selectAdminNoticeByRole(BdNoticeVO noticeVO) { return baseMapper.selectAdminNoticeByRole(noticeVO); diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/vo/BdNoticeVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/vo/BdNoticeVO.java index b1d68d23..b7f49887 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/vo/BdNoticeVO.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/vo/BdNoticeVO.java @@ -15,11 +15,7 @@ import java.util.Date; import java.util.List; /** - * @Description: 公告VO - * @Author: ljc - * @Time: 2023/2/3 11:24 - * @Classname: BdNoticeVO - * @Package_name: com.hzs.system.base.vo + * 公告VO */ @Data @Builder diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdRetailRangeController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdRetailRangeController.java index 47983f05..ebba9731 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdRetailRangeController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdRetailRangeController.java @@ -6,25 +6,25 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.hzs.common.core.annotation.Log; import com.hzs.common.core.constant.msg.ConfigMsgConstants; -import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; 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.TableDataInfo; +import com.hzs.common.domain.system.config.BdAwards; +import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.domain.system.config.BdRange; import com.hzs.common.domain.system.config.ext.BdRangeDetailsExt; import com.hzs.common.domain.system.config.ext.BdRangeExt; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; -import com.hzs.system.base.ITransactionServiceApi; -import com.hzs.system.base.service.IBdNoticeService; +import com.hzs.system.config.service.IBdAwardsService; +import com.hzs.system.config.service.IBdGradeService; import com.hzs.system.config.service.IBdRangeDetailsService; import com.hzs.system.config.service.IBdRangeService; import com.hzs.system.config.vo.RangeVo; 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.*; @@ -35,9 +35,6 @@ import java.util.List; /** * 新零售极差配置 前端控制器 - * - * @author zhangjing - * @since 2022-09-09 */ @Slf4j @RestController @@ -45,21 +42,16 @@ import java.util.List; public class BdRetailRangeController extends BaseController { @Autowired - private IBdRangeService rangeService; + private IBdRangeService iBdRangeService; @Autowired - private IBdRangeDetailsService rangeDetailsService; + private IBdRangeDetailsService iBdRangeDetailsService; @Autowired - private IBdNoticeService noticeService; - - @DubboReference - ITransactionServiceApi iTransactionServiceApi; + private IBdGradeService iBdGradeService; + @Autowired + private IBdAwardsService iBdAwardsService; /** - * @description: 查询极差配置列表 - * @author: zhang jing - * @date: 2022/8/30 10:20 - * @param: [range] - * @return: com.hzs.common.core.web.page.TableDataInfo + * 查询极差配置列表 **/ @Log(module = EOperationModule.LEVEL_CONFIG, business = EOperationBusiness.REPURCHASE_RANGE, method = EOperationMethod.SELECT) @GetMapping("/list") @@ -71,48 +63,47 @@ public class BdRetailRangeController extends BaseController { queryWrapper.eq(BdRange::getRangeName, range.getRangeName()); } queryWrapper.orderByDesc(BdRange::getRangeValue, BdRange::getCreationTime); - List list = rangeService.list(queryWrapper); startPage(); + List list = iBdRangeService.list(queryWrapper); + List listExt = new ArrayList<>(); if (CollectionUtil.isNotEmpty(list)) { for (BdRange bdRange : list) { BdRangeExt rangeExt = BeanUtil.copyProperties(bdRange, BdRangeExt.class); - BdRangeDetailsExt rangeDetailsExt = new BdRangeDetailsExt(); - rangeDetailsExt.setPkRange(bdRange.getPkId()); List rangeDetailsGradeList = new ArrayList<>(); List rangeDetailsAwardList = new ArrayList<>(); - List bdRangeDetailsList = rangeDetailsService.getBdRangeDetailsList(rangeDetailsExt); + + BdRangeDetailsExt rangeDetailsExt = new BdRangeDetailsExt(); + rangeDetailsExt.setPkRange(bdRange.getPkId()); + List bdRangeDetailsList = iBdRangeDetailsService.getBdRangeDetailsList(rangeDetailsExt); if (CollectionUtil.isNotEmpty(bdRangeDetailsList)) { for (BdRangeDetailsExt brde : bdRangeDetailsList) { if (StringUtils.isNotNull(brde.getRangeType()) && brde.getRangeType() == ERangeType.GRADE.getValue()) { - //等级key - Integer pkRegisterGrade = noticeService.getGradeTranslateValue(brde.getPkLevel(), null); - brde.setPkGrade(pkRegisterGrade); + // 等级 + BdGrade bdGrade = iBdGradeService.getBdGrade(brde.getPkLevel()); + brde.setPkGrade(bdGrade.getPkId()); + brde.setPkGradeVal(bdGrade.getGradeName()); rangeDetailsGradeList.add(brde); } if (StringUtils.isNotNull(brde.getRangeType()) && brde.getRangeType() == ERangeType.AWARDS.getValue()) { - //奖衔key - Integer pkAward = noticeService.getAwardsTranslateValue(brde.getPkLevel(), null); - brde.setPkAward(pkAward); + // 奖衔 + BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(brde.getPkLevel()); + brde.setPkAward(bdAwards.getPkId()); + brde.setPkAwardVal(bdAwards.getAwardsName()); rangeDetailsAwardList.add(brde); } } } - rangeExt.setRangeDetailsAward(rangeDetailsAwardList); rangeExt.setRangeDetailsGrade(rangeDetailsGradeList); + rangeExt.setRangeDetailsAward(rangeDetailsAwardList); listExt.add(rangeExt); } } - return getDataTable(listExt); } /** - * @description: 导出复购极差 - * @author: zhang jing - * @date: 2023/3/9 15:47 - * @param: [response, range] - * @return: void + * 导出复购极差 **/ @Log(module = EOperationModule.LEVEL_CONFIG, business = EOperationBusiness.REPURCHASE_RANGE, method = EOperationMethod.EXPORT) @PostMapping("/export") @@ -124,7 +115,7 @@ public class BdRetailRangeController extends BaseController { queryWrapper.eq(BdRange::getRangeName, range.getRangeName()); } queryWrapper.orderByDesc(BdRange::getCreationTime); - List list = rangeService.list(queryWrapper); + List list = iBdRangeService.list(queryWrapper); startPage(); List listExt = new ArrayList<>(); for (BdRange bdRange : list) { @@ -133,38 +124,35 @@ public class BdRetailRangeController extends BaseController { rangeDetailsExt.setPkRange(bdRange.getPkId()); List rangeDetailsGradeList = new ArrayList<>(); List rangeDetailsAwardList = new ArrayList<>(); - List bdRangeDetailsList = rangeDetailsService.getBdRangeDetailsList(rangeDetailsExt); + List bdRangeDetailsList = iBdRangeDetailsService.getBdRangeDetailsList(rangeDetailsExt); if (CollectionUtil.isNotEmpty(bdRangeDetailsList)) { for (BdRangeDetailsExt brde : bdRangeDetailsList) { if (StringUtils.isNotNull(brde.getRangeType()) && brde.getRangeType() == ERangeType.GRADE.getValue()) { - //等级key - Integer pkRegisterGrade = noticeService.getGradeTranslateValue(brde.getPkLevel(), null); - brde.setPkGrade(pkRegisterGrade); + // 等级 + BdGrade bdGrade = iBdGradeService.getBdGrade(brde.getPkLevel()); + brde.setPkGrade(bdGrade.getPkId()); + brde.setPkGradeVal(bdGrade.getGradeName()); rangeDetailsGradeList.add(brde); } if (StringUtils.isNotNull(brde.getRangeType()) && brde.getRangeType() == ERangeType.AWARDS.getValue()) { - //奖衔key - Integer pkAward = noticeService.getAwardsTranslateValue(brde.getPkLevel(), null); - brde.setPkAward(pkAward); + // 奖衔 + BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(brde.getPkLevel()); + brde.setPkAward(bdAwards.getPkId()); + brde.setPkAwardVal(bdAwards.getAwardsName()); rangeDetailsAwardList.add(brde); } } } - rangeExt.setRangeDetailsAward(rangeDetailsAwardList); rangeExt.setRangeDetailsGrade(rangeDetailsGradeList); + rangeExt.setRangeDetailsAward(rangeDetailsAwardList); listExt.add(rangeExt); } ExcelUtil util = new ExcelUtil<>(BdRangeExt.class); - util.exportExcel(response, listExt, "复购极差"); + util.exportExcel(response, listExt, "复购级差"); } - /** - * @description: 新增极差配置 - * @author: zhang jing - * @date: 2022/8/30 10:21 - * @param: [range] - * @return: com.hzs.common.core.web.domain.AjaxResult + * 新增极差配置 **/ @Log(module = EOperationModule.LEVEL_CONFIG, business = EOperationBusiness.REPURCHASE_RANGE, method = EOperationMethod.INSERT) @PostMapping("/generate") @@ -190,7 +178,7 @@ public class BdRetailRangeController extends BaseController { queryWrapper.eq(BdRange::getPkCountry, SecurityUtils.getPkCountry()); queryWrapper.eq(BdRange::getRangeValue, rangeExt.getRangeValue()); queryWrapper.eq(BdRange::getSystemType, ESystemType.DEFAULT.getValue()); - List list = rangeService.list(queryWrapper); + List list = iBdRangeService.list(queryWrapper); if (CollectionUtil.isNotEmpty(list)) { return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.RANGE_VALUE_REPEAT)); } @@ -200,17 +188,13 @@ public class BdRetailRangeController extends BaseController { rangeExt.setPkCreator(SecurityUtils.getUserId()); rangeExt.setCreationTime(new Date()); rangeExt.setSystemType(ESystemType.DEFAULT.getValue()); - rangeService.saveRange(rangeExt); + iBdRangeService.saveRange(rangeExt); } return AjaxResult.success(); } /** - * @description: 修改极差配置 - * @author: zhang jing - * @date: 2022/8/30 10:21 - * @param: [range] - * @return: com.hzs.common.core.web.domain.AjaxResult + * 修改极差配置 **/ @Log(module = EOperationModule.LEVEL_CONFIG, business = EOperationBusiness.REPURCHASE_RANGE, method = EOperationMethod.UPDATE) @PostMapping("/update") @@ -231,40 +215,25 @@ public class BdRetailRangeController extends BaseController { return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PK_GRADE_AWARDS_NOT_NULL)); } - //字段翻译保存到数据库 - if (null != rangeExt.getPkTransaction()) { - R b = iTransactionServiceApi.updateTransaction(pkCountry, - rangeExt.getRangeName(), rangeExt.getPkTransaction(), true); - } else { - //字段翻译保存到数据库 - R pkTransaction = iTransactionServiceApi.createTransaction(pkCountry, ETransactionKey.RANGE, - rangeExt.getRangeName(), EYesNo.YES, EYesNo.NO); - rangeExt.setPkTransaction(pkTransaction.getData()); - } rangeExt.setPkModified(SecurityUtils.getUserId()); rangeExt.setPkCountry(pkCountry); rangeExt.setModifiedTime(new Date()); - return toAjax(rangeService.updateRange(rangeExt)); + return toAjax(iBdRangeService.updateRange(rangeExt)); } - /** - * @description: 查询单条极差配置 - * @author: zhang jing - * @date: 2022/8/30 10:21 - * @param: [pkId] - * @return: com.hzs.common.core.web.domain.AjaxResult + * 查询单条极差配置 **/ @Log(module = EOperationModule.LEVEL_CONFIG, business = EOperationBusiness.REPURCHASE_RANGE, method = EOperationMethod.SELECT) @GetMapping("/getOne/{pkId}") public AjaxResult getOne(@PathVariable Long pkId) { - BdRange range = rangeService.getById(pkId); + BdRange range = iBdRangeService.getById(pkId); BdRangeExt rangeExt = BeanUtil.copyProperties(range, BdRangeExt.class); BdRangeDetailsExt rangeDetailsExt = new BdRangeDetailsExt(); List gradeList = new ArrayList<>(); List awardsList = new ArrayList<>(); rangeDetailsExt.setPkRange(pkId.intValue()); - List bdRangeDetailsList = rangeDetailsService.getBdRangeDetailsList(rangeDetailsExt); + List bdRangeDetailsList = iBdRangeDetailsService.getBdRangeDetailsList(rangeDetailsExt); if (CollectionUtil.isNotEmpty(bdRangeDetailsList)) { for (BdRangeDetailsExt bdRangeDetailsExt : bdRangeDetailsList) { if (StringUtils.isNotNull(bdRangeDetailsExt.getRangeType()) && ERangeType.GRADE.getValue() == bdRangeDetailsExt.getRangeType()) { @@ -281,13 +250,8 @@ public class BdRetailRangeController extends BaseController { return AjaxResult.success(rangeExt); } - /** - * @description: 删除极差配置 - * @author: zhang jing - * @date: 2022/8/30 10:21 - * @param: [pkId] - * @return: com.hzs.common.core.web.domain.AjaxResult + * 删除极差配置 **/ @Log(module = EOperationModule.LEVEL_CONFIG, business = EOperationBusiness.REPURCHASE_RANGE, method = EOperationMethod.DELETE) @DeleteMapping("/{pkId}") @@ -297,12 +261,8 @@ public class BdRetailRangeController extends BaseController { updateWrapper.set(BdRange::getDelFlag, EDelFlag.DELETE.getValue()); updateWrapper.set(BdRange::getPkModified, SecurityUtils.getUserId()); updateWrapper.set(BdRange::getModifiedTime, new Date()); - BdRange bdRange = rangeService.getById(pkId); - //删除翻译 - List pkIdList = new ArrayList<>(); - pkIdList.add(bdRange.getPkTransaction().longValue()); - R b = iTransactionServiceApi.removeTransactionByPkId(pkIdList); - return toAjax(rangeService.update(updateWrapper)); + BdRange bdRange = iBdRangeService.getById(pkId); + return toAjax(iBdRangeService.update(updateWrapper)); } /** @@ -317,11 +277,12 @@ public class BdRetailRangeController extends BaseController { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(BdRange::getPkCountry, SecurityUtils.getPkCountry()); queryWrapper.eq(BdRange::getSystemType, ESystemType.DEFAULT.getValue()); - for (BdRange range : rangeService.list(queryWrapper)) { + for (BdRange range : iBdRangeService.list(queryWrapper)) { RangeVo rangeVo = BeanUtil.copyProperties(range, RangeVo.class); rangeVo.setPkRange(range.getPkId()); resultList.add(rangeVo); } return AjaxResult.success(resultList); } + } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/mapper/BdRangeDetailsMapper.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/mapper/BdRangeDetailsMapper.java index a2f6f681..122d34d2 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/mapper/BdRangeDetailsMapper.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/mapper/BdRangeDetailsMapper.java @@ -1,6 +1,5 @@ package com.hzs.system.config.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.system.config.BdRangeDetails; import com.hzs.common.domain.system.config.ext.BdRangeDetailsExt; @@ -8,21 +7,12 @@ import com.hzs.common.domain.system.config.ext.BdRangeDetailsExt; import java.util.List; /** - *

* 极差详细表 Mapper 接口 - *

- * - * @author hzs - * @since 2022-10-28 */ public interface BdRangeDetailsMapper extends BaseMapper { /** - * @description: 查询极差详情 - * @author: zhang jing - * @date: 2022/10/28 11:34 - * @param: [rangeDetailsExt] - * @return: java.util.List + * 查询极差详情 **/ List getBdRangeDetailsList(BdRangeDetailsExt rangeDetailsExt); } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/IBdRangeDetailsService.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/IBdRangeDetailsService.java index 488e2825..2f45284f 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/IBdRangeDetailsService.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/IBdRangeDetailsService.java @@ -1,6 +1,5 @@ package com.hzs.system.config.service; - import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.system.config.BdRangeDetails; import com.hzs.common.domain.system.config.ext.BdRangeDetailsExt; @@ -8,20 +7,13 @@ import com.hzs.common.domain.system.config.ext.BdRangeDetailsExt; import java.util.List; /** - *

* 极差详细表 服务类 - *

- * - * @author hzs - * @since 2022-10-28 */ public interface IBdRangeDetailsService extends IService { + /** - * @description: 查询极差详情 - * @author: zhang jing - * @date: 2022/10/28 11:36 - * @param: [rangeDetailsExt] - * @return: java.util.List + * 查询极差详情 **/ List getBdRangeDetailsList(BdRangeDetailsExt rangeDetailsExt); + } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdRangeDetailsServiceImpl.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdRangeDetailsServiceImpl.java index 2714815b..18d2f128 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdRangeDetailsServiceImpl.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdRangeDetailsServiceImpl.java @@ -10,25 +10,14 @@ import org.springframework.stereotype.Service; import java.util.List; /** - *

* 极差详细表 服务实现类 - *

- * - * @author hzs - * @since 2022-10-28 */ @Service public class BdRangeDetailsServiceImpl extends ServiceImpl implements IBdRangeDetailsService { - /** - * @description: 查询极差详情 - * @author: zhang jing - * @date: 2022/10/28 11:35 - * @param: [rangeDetailsExt] - * @return: java.util.List - **/ @Override public List getBdRangeDetailsList(BdRangeDetailsExt rangeDetailsExt) { return baseMapper.getBdRangeDetailsList(rangeDetailsExt); } + } diff --git a/bd-business/bd-business-system/src/main/resources/mapper/system/base/BdNoticeMapper.xml b/bd-business/bd-business-system/src/main/resources/mapper/system/base/BdNoticeMapper.xml index 2e64843b..f1b04794 100644 --- a/bd-business/bd-business-system/src/main/resources/mapper/system/base/BdNoticeMapper.xml +++ b/bd-business/bd-business-system/src/main/resources/mapper/system/base/BdNoticeMapper.xml @@ -78,11 +78,12 @@ order by t.creation_time desc + t.del_flag = 0 and t.mail_type = 1 - and t.system_type in (#{systemType}, 9) + and t.system_type in (#{systemType}, 9) and t.pk_country = #{pkCountry} @@ -130,6 +131,7 @@ + - - update bd_notice n - set n.del_flag = 1, - PK_MODIFIED=#{pkModified}, - MODIFIED_TIME = sysdate - where PK_ID = #{pkId} - - - select * - from (select n.pk_id pkId, - n.title, - n.content, - n.creation_time creationTime, - nvl(d.read_state, 1) readState - from bd_notice n - left join bd_notice_detail d - on n.pk_id = d.pk_notice - and d.pk_member = #{pkMember} - and d.del_flag = 0 - where n.del_flag = 0 - and n.mail_type = 1 - and n.approve_state = 2 - and n.pk_country = #{pkCountry} - and n.function_type = 2 - and n.website_type = 1 - and sysdate >= n.start_time - and sysdate <= n.end_time - - and n.system_type in - - #{item} - - - union all - select n.pk_id pkId, - n.title, - n.content, - n.creation_time creationTime, - nvl(d.read_state, 1) readState - from bd_notice n - inner join bd_member_notice mn - on n.pk_id = mn.pk_notice - and mn.pk_member = #{pkMember} - left join bd_notice_detail d - on n.pk_id = d.pk_notice - and d.pk_member = #{pkMember} - and d.del_flag = 0 - where n.del_flag = 0 - and n.mail_type = 2 - and n.approve_state = 2 - and n.pk_country = #{pkCountry} - and n.function_type = 2 - and n.website_type = 1 - and sysdate >= n.start_time - and sysdate <= n.end_time - - and n.system_type in - - #{item} - - - ) + from (select n.pk_id pkId, + n.title, + n.content, + n.creation_time creationTime, + nvl(d.read_state, 1) readState + from bd_notice n + left join bd_notice_detail d + on n.pk_id = d.pk_notice + and d.pk_member = #{pkMember} + and d.del_flag = 0 + where n.del_flag = 0 + and n.mail_type = 1 + and n.approve_state = 2 + and n.pk_country = #{pkCountry} + and n.function_type = 2 + and n.website_type = 1 + and sysdate >= n.start_time + and sysdate <= n.end_time + + and n.system_type in + + #{item} + + + union all + select n.pk_id pkId, + n.title, + n.content, + n.creation_time creationTime, + nvl(d.read_state, 1) readState + from bd_notice n + inner join bd_member_notice mn + on n.pk_id = mn.pk_notice + and mn.pk_member = #{pkMember} + left join bd_notice_detail d + on n.pk_id = d.pk_notice + and d.pk_member = #{pkMember} + and d.del_flag = 0 + where n.del_flag = 0 + and n.mail_type = 2 + and n.approve_state = 2 + and n.pk_country = #{pkCountry} + and n.function_type = 2 + and n.website_type = 1 + and sysdate >= n.start_time + and sysdate <= n.end_time + + and n.system_type in + + #{item} + + + ) order by creationTime desc diff --git a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdRangeDetailsMapper.xml b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdRangeDetailsMapper.xml index 11f9b951..c2432e6a 100644 --- a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdRangeDetailsMapper.xml +++ b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdRangeDetailsMapper.xml @@ -4,28 +4,17 @@ - - - - - - - - - + + + + + + + + + - - - DEL_FLAG, - PK_COUNTRY, - CREATION_TIME, - MODIFIED_TIME, - PK_CREATOR, - PK_MODIFIED, - PK_ID, PK_RANGE, PK_LEVEL - - diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/ConfigMsgConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/ConfigMsgConstants.java index 674fdf53..5193ff2f 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/ConfigMsgConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/ConfigMsgConstants.java @@ -7,178 +7,178 @@ public class ConfigMsgConstants { /** * 最低提现金额不能为空 -- 最低提现金额不能为空! */ -public static final String MIN_AMOUNT_NOT_NULL = "最低提现金额不能为空!"; + public static final String MIN_AMOUNT_NOT_NULL = "最低提现金额不能为空!"; /** * 手续费类型不能为空 -- 手续费类型不能为空! */ -public static final String SERVICE_TYPE_NOT_NULL = "手续费类型不能为空!"; + public static final String SERVICE_TYPE_NOT_NULL = "手续费类型不能为空!"; /** * 提现个税扣除类型不能为空 -- 提现个税扣除类型不能为空! */ -public static final String TAX_SERVICE_TYPE_NOT_NULL = "提现个税扣除类型不能为空!"; + public static final String TAX_SERVICE_TYPE_NOT_NULL = "提现个税扣除类型不能为空!"; /** * 提现个税明细不能为空 -- 提现个税明细不能为空! */ -public static final String BD_WITHDRAWAL_TAX_DETAILS_NOT_NULL = "提现个税明细不能为空!"; + public static final String BD_WITHDRAWAL_TAX_DETAILS_NOT_NULL = "提现个税明细不能为空!"; /** * 手续费值不能为空 -- 手续费金额不能为空! */ -public static final String SERVICE_RATIO_NOT_NULL = "手续费金额不能为空!"; + public static final String SERVICE_RATIO_NOT_NULL = "手续费金额不能为空!"; /** * 手续费重复 -- 手续费重复! */ -public static final String SERVICE_TYPE_REPEAT = "手续费重复!"; + public static final String SERVICE_TYPE_REPEAT = "手续费重复!"; /** * 最高提现金额不能为空 -- 最高提现金额不能为空! */ -public static final String MAX_AMOUNT_NOT_NULL = "最高提现金额不能为空!"; + public static final String MAX_AMOUNT_NOT_NULL = "最高提现金额不能为空!"; /** * 最低自动提现金额不能为空 -- 最低自动提现金额不能为空! */ -public static final String LOWER_BOUND_NOT_NULL = "最低自动提现金额不能为空!"; + public static final String LOWER_BOUND_NOT_NULL = "最低自动提现金额不能为空!"; /** * 个税上界不能为空 -- 个税上界不能为空! */ -public static final String TAX_MAX_AMOUNT_NOT_NULL = "个税上界不能为空!"; + public static final String TAX_MAX_AMOUNT_NOT_NULL = "个税上界不能为空!"; /** * 个税下界不能为空 -- 个税下界不能为空! */ -public static final String TAX_LOWER_BOUND_NOT_NULL = "个税下界不能为空!"; + public static final String TAX_LOWER_BOUND_NOT_NULL = "个税下界不能为空!"; /** * 个税扣除不能为空 -- 个税扣除不能为空! */ -public static final String TAX_RATIO_NOT_NULL = "个税扣除不能为空!"; + public static final String TAX_RATIO_NOT_NULL = "个税扣除不能为空!"; /** * 提现个税周期不能为空 -- 提现个税周期不能为空! */ -public static final String TAX_CYCLE_NOT_NULL = "提现个税周期不能为空!"; + public static final String TAX_CYCLE_NOT_NULL = "提现个税周期不能为空!"; /** * 提现个税周期不能小于0大于12 -- 提现个税周期不能小于0大于12! */ -public static final String TAX_CYCLE_NOT_STANDARD = "提现个税周期不能小于0大于12!"; + public static final String TAX_CYCLE_NOT_STANDARD = "提现个税周期不能小于0大于12!"; /** * 最高自动提现金额不能为空 -- 最高自动提现金额不能为空! */ -public static final String UPPER_BOUND_NOT_NULL = "最高自动提现金额不能为空!"; + public static final String UPPER_BOUND_NOT_NULL = "最高自动提现金额不能为空!"; /** * 是否自动不能为空 -- 是否自动不能为空! */ -public static final String IS_AUTO_NOT_NULL = "是否自动不能为空!"; + public static final String IS_AUTO_NOT_NULL = "是否自动不能为空!"; /** * 是否整取不能为空 -- 是否整取不能为空! */ -public static final String IS_ROUNDING_NOT_NULL = "是否整取不能为空!"; + public static final String IS_ROUNDING_NOT_NULL = "是否整取不能为空!"; /** * 是否血缘不能为空 -- 是否血缘不能为空 */ -public static final String BD_TRANSFER_IS_REFERENCE_NOT_NULL = "是否血缘不能为空"; + public static final String BD_TRANSFER_IS_REFERENCE_NOT_NULL = "是否血缘不能为空"; /** * 提现次数不能为空 -- 提现次数不能为空 */ -public static final String WITHDRAWAL_NUMBER_NOT_NULL = "提现次数不能为空"; + public static final String WITHDRAWAL_NUMBER_NOT_NULL = "提现次数不能为空"; /** * 提现周期不能为空 -- 提现周期不能为空 */ -public static final String WITHDRAWAL_CYCLE_NOT_NULL = "提现周期不能为空"; + public static final String WITHDRAWAL_CYCLE_NOT_NULL = "提现周期不能为空"; /** * 最低提现金额不能大于最高提现金额 -- 最低提现金额不能大于最高提现金额 */ -public static final String COMPARISON_OF_SIZE = "最低提现金额不能大于最高提现金额"; + public static final String COMPARISON_OF_SIZE = "最低提现金额不能大于最高提现金额"; /** * 生效日期不能为空 -- 生效日期不能为空 */ -public static final String EFFECTIVE_DATE_NOT_NULL = "生效日期不能为空"; + public static final String EFFECTIVE_DATE_NOT_NULL = "生效日期不能为空"; /** * 倍数不能为空 -- 倍数不能为空 */ -public static final String MULTIPLE_NOT_NULL = "倍数不能为空"; + public static final String MULTIPLE_NOT_NULL = "倍数不能为空"; /** * 显示顺序不能为空 -- 显示顺序不能为空 */ -public static final String SORT_NOT_NULL = "显示顺序不能为空"; + public static final String SORT_NOT_NULL = "显示顺序不能为空"; /** * 显示顺序重复 -- 显示顺序重复 */ -public static final String SORT_NOT_REPEAT = "显示顺序重复"; + public static final String SORT_NOT_REPEAT = "显示顺序重复"; /** * 在线充值重复 -- 在线充值重复 */ -public static final String RECHARGE_NOT_REPEAT = "在线充值重复"; + public static final String RECHARGE_NOT_REPEAT = "在线充值重复"; /** * 账户名称不能为空 -- 账户名称不能为空 */ -public static final String ACCOUNT_NAME_NOT_NULL = "账户名称不能为空"; + public static final String ACCOUNT_NAME_NOT_NULL = "账户名称不能为空"; /** * 洲际名称不能为空 -- 大洲名称不能为空 */ -public static final String CONTINENT_NAME_NOT_NULL = "大洲名称不能为空"; + public static final String CONTINENT_NAME_NOT_NULL = "大洲名称不能为空"; /** * 大区名称不能为空 -- 大区名称不能为空 */ -public static final String REGION_NAME_NOT_NULL = "大区名称不能为空"; + public static final String REGION_NAME_NOT_NULL = "大区名称不能为空"; /** * 地区名称不能为空 -- 地区名称不能为空 */ -public static final String CONTINENT_AREA_NAME_NOT_NULL = "地区名称不能为空"; + public static final String CONTINENT_AREA_NAME_NOT_NULL = "地区名称不能为空"; /** * 上一级不能为空 -- 上一级不能为空 */ -public static final String UPPER_LEVEL_NOT_NULL = "上一级不能为空"; + public static final String UPPER_LEVEL_NOT_NULL = "上一级不能为空"; /** * 请选择要关联的国家 -- 请选择要关联的国家 */ -public static final String BINDING_COUNTRY_NOT_NULL = "请选择要关联的国家"; + public static final String BINDING_COUNTRY_NOT_NULL = "请选择要关联的国家"; /** * 请选择要关联的省 -- 请选择要关联的省 */ -public static final String BINDING_PROVINCE_NOT_NULL = "请选择要关联的省"; + public static final String BINDING_PROVINCE_NOT_NULL = "请选择要关联的省"; /** * 账户值不能为空 -- 账户值不能为空 */ -public static final String ACCOUNT_VALUE_NOT_NULL = "账户值不能为空"; + public static final String ACCOUNT_VALUE_NOT_NULL = "账户值不能为空"; /** * 办理业务手续费不存在 -- 办理业务手续费不存在 */ -public static final String BUSINESS_ACCOUNT_IS_NULL = "办理业务手续费不存在"; + public static final String BUSINESS_ACCOUNT_IS_NULL = "办理业务手续费不存在"; /** * 办理业务手续费退款失败 -- 办理业务手续费退款失败 */ -public static final String BUSINESS_ACCOUNT_IS_REFUND = "办理业务手续费退款失败"; + public static final String BUSINESS_ACCOUNT_IS_REFUND = "办理业务手续费退款失败"; /** * 所属专区不能为空 -- 所属专区不能为空 */ -public static final String SPECIAL_AREA_NOT_NULL = "所属专区不能为空"; + public static final String SPECIAL_AREA_NOT_NULL = "所属专区不能为空"; /** * 账户类型不能为空 -- 账户类型不能为空 */ -public static final String PK_ACCOUNT_NOT_NULL = "账户类型不能为空"; + public static final String PK_ACCOUNT_NOT_NULL = "账户类型不能为空"; /** * 扣款顺序重复 -- 扣款顺序重复 */ -public static final String DEDUCT_SORT_NOT_REPEAT = "扣款顺序重复"; + public static final String DEDUCT_SORT_NOT_REPEAT = "扣款顺序重复"; /** * 扣款顺序不能为空 -- 扣款顺序不能为空 */ -public static final String DEDUCT_SORT_NOT_NULL = "扣款顺序不能为空"; + public static final String DEDUCT_SORT_NOT_NULL = "扣款顺序不能为空"; /** * 扣款比例不能超过100% -- 扣款比例不能超过100% */ -public static final String DEDUCT_EXCEED_MAX = "扣款比例不能超过100%"; + public static final String DEDUCT_EXCEED_MAX = "扣款比例不能超过100%"; /** * 政策币扣款比例必须大于0 */ @@ -187,35 +187,31 @@ public static final String DEDUCT_EXCEED_MAX = "扣款比例不能超过100%"; /** * 扣款比例不能大于 -- 扣款比例不能大于 */ -public static final String DEDUCT_RATIO_NOT_MORE_THAN = "扣款比例不能大于"; - /** - * 配置扣款比例不足 -- 扣款比例不足 - */ -public static final String DEDUCT_RATIO_NOT_ENOUGH = "扣款比例不足"; + public static final String DEDUCT_RATIO_NOT_MORE_THAN = "扣款比例不能大于"; /** * 扣款比例不能为空 -- 扣款比例不能为空 */ -public static final String DEDUCT_RATIO_NOT_NULL = "扣款比例不能为空"; + public static final String DEDUCT_RATIO_NOT_NULL = "扣款比例不能为空"; /** * 扣款不能为空 -- 扣款不能为空 */ -public static final String DEDUCT_NOT_NULL = "扣款不能为空"; + public static final String DEDUCT_NOT_NULL = "扣款不能为空"; /** * 扣款比例已满100 -- 扣款比例已满100 */ -public static final String DEDUCT_RATIO_FULL = "扣款比例已满100"; + public static final String DEDUCT_RATIO_FULL = "扣款比例已满100"; /** * 比例不能为空 -- 比例不能为空 */ -public static final String RATIO_NOT_NULL = "比例不能为空"; + public static final String RATIO_NOT_NULL = "比例不能为空"; /** * 会员编号不能为空 -- 会员编号不能为空 */ -public static final String MEMBER_CODE_NOT_NULL = "会员编号不能为空"; + public static final String MEMBER_CODE_NOT_NULL = "会员编号不能为空"; /** * 会员名称不能为空 -- 会员名称不能为空 */ -public static final String MEMBER_NAME_NOT_NULL = "会员名称不能为空"; + public static final String MEMBER_NAME_NOT_NULL = "会员名称不能为空"; /** * 安置部门不能为空 -- 安置部门不能为空 @@ -224,41 +220,41 @@ public static final String MEMBER_NAME_NOT_NULL = "会员名称不能为空"; /** * 会员编号前两位编号不能修改 -- 会员编号前两位编号不能修改 */ -public static final String MEMBER_CODE_NOT_EQUAL = "会员编号前两位编号不能修改"; + public static final String MEMBER_CODE_NOT_EQUAL = "会员编号前两位编号不能修改"; /** * 请选择注水业绩 -- 请选择注水业绩 */ -public static final String ACHIEVE_NOT_NULL = "请选择注水业绩"; + public static final String ACHIEVE_NOT_NULL = "请选择注水业绩"; /** * 会员信息不存在 -- 会员信息不存在 */ -public static final String MEMBER_NOT_VALID = "会员信息不存在"; + public static final String MEMBER_NOT_VALID = "会员信息不存在"; /** * 变更后会员编号重复 -- 变更后会员编号重复 */ -public static final String UPDATE_MEMBER_CODE_REPEAT = "变更后会员编号重复"; + public static final String UPDATE_MEMBER_CODE_REPEAT = "变更后会员编号重复"; /** * 审批修改 -- 当前有修改正在进行中 */ -public static final String MEMBER_PARENT_UPDATE = "当前有修改正在进行中"; + public static final String MEMBER_PARENT_UPDATE = "当前有修改正在进行中"; /** * 最低转账金额不能为空 -- 最低转账金额不能为空 */ -public static final String MIN_AMOUNT_TRANSFER_NOT_NULL = "最低转账金额不能为空"; + public static final String MIN_AMOUNT_TRANSFER_NOT_NULL = "最低转账金额不能为空"; /** * 最高转账金额不能为空 -- 最高转账金额不能为空 */ -public static final String MAX_AMOUNT_TRANSFER_NOT_NULL = "最高转账金额不能为空"; + public static final String MAX_AMOUNT_TRANSFER_NOT_NULL = "最高转账金额不能为空"; /** * 转账特殊设置 -- 转账特殊设置不能为空 */ -public static final String TRANSFER_SPECIAL_MIN_AMOUNT_NOT_NULL = "转账特殊设置不能为空"; + public static final String TRANSFER_SPECIAL_MIN_AMOUNT_NOT_NULL = "转账特殊设置不能为空"; /** * 最低转账金额 -- 最低转账金额不能为空 */ -public static final String MIN_AMOUNT_MONEY_NOT_NULL = "最低转账金额不能为空"; + public static final String MIN_AMOUNT_MONEY_NOT_NULL = "最低转账金额不能为空"; /** * 结算值 注册金额/业绩不能为空 -- 注册金额/业绩不能为 */ @@ -266,123 +262,123 @@ public static final String MIN_AMOUNT_MONEY_NOT_NULL = "最低转账金额不能 /** * 拓展比例不能为空 -- 拓展比例不能为空 */ -public static final String EXPAND_RATIO_NOT_NULL = "拓展比例不能为空"; + public static final String EXPAND_RATIO_NOT_NULL = "拓展比例不能为空"; /** * 拓展封顶不能为空 -- 拓展封顶不能为空 */ -public static final String EXPAND_CAPPING_NOT_NULL = "拓展封顶不能为空"; + public static final String EXPAND_CAPPING_NOT_NULL = "拓展封顶不能为空"; /** * 复购拓展封顶不能为空 -- 复购拓展封顶不能为空 */ -public static final String REPURCHASE_CAPPING_NOT_NULL = "复购拓展封顶不能为空"; + public static final String REPURCHASE_CAPPING_NOT_NULL = "复购拓展封顶不能为空"; /** * 复购拓展比例不能为空 -- 复购拓展比例不能为空 */ -public static final String REPURCHASE_RATIO_NOT_NULL = "复购拓展比例不能为空"; + public static final String REPURCHASE_RATIO_NOT_NULL = "复购拓展比例不能为空"; /** * 小区考核不能为空 -- 小区考核起不能为空 */ -public static final String COMMUNITY_CHECK_NOT_NULL = "小区考核起不能为空"; + public static final String COMMUNITY_CHECK_NOT_NULL = "小区考核起不能为空"; /** * 辅导代数不能为空 -- 辅导代数不能为空 */ -public static final String COACH_ALGEBRA_NOT_NULL = "辅导代数不能为空"; + public static final String COACH_ALGEBRA_NOT_NULL = "辅导代数不能为空"; /** * 辅导比例不能为空 -- 辅导比例不能为空 */ -public static final String COACH_RATIO_NOT_NULL = "辅导比例不能为空"; + public static final String COACH_RATIO_NOT_NULL = "辅导比例不能为空"; /** * 分红比例不能为空 -- 分红比例不能为空 */ -public static final String ABONUS_RATIO_NOT_NULL = "分红比例不能为空"; + public static final String ABONUS_RATIO_NOT_NULL = "分红比例不能为空"; /** * 复购考核不能为空 -- 复购考核不能为空 */ -public static final String PURCHASE_CHECK_NOT_NULL = "复购考核不能为空"; + public static final String PURCHASE_CHECK_NOT_NULL = "复购考核不能为空"; /** * 分红考核不能为空 -- 分红考核不能为空 */ -public static final String SHARE_CHECK_NOT_NULL = "分红考核不能为空"; + public static final String SHARE_CHECK_NOT_NULL = "分红考核不能为空"; /** * 环球积分不能为空 -- 环球积分不能为空 */ -public static final String GLOBAL_INTEGRAL_NOT_NULL = "环球积分不能为空"; + public static final String GLOBAL_INTEGRAL_NOT_NULL = "环球积分不能为空"; /** * 车奖积分不能为空 -- 车奖积分不能为空 */ -public static final String CAR_AWARD_POINTS_NOT_NULL = "车奖积分不能为空"; + public static final String CAR_AWARD_POINTS_NOT_NULL = "车奖积分不能为空"; /** * 真实奖衔不能为空 -- 真实奖衔不能为空 */ -public static final String AWARDS_NAME_NOT_NULL = "真实奖衔不能为空"; + public static final String AWARDS_NAME_NOT_NULL = "真实奖衔不能为空"; /** * 左右区奖衔不能为空 -- 左右区奖衔不能为空 */ -public static final String LEFT_RIGHT_AWARDS_NAME_NOT_NULL = "左右区奖衔不能为空"; + public static final String LEFT_RIGHT_AWARDS_NAME_NOT_NULL = "左右区奖衔不能为空"; /** * 颜色不能为空 -- 颜色不能为空 */ -public static final String COLOR_NOT_NULL = "颜色不能为空"; + public static final String COLOR_NOT_NULL = "颜色不能为空"; /** * 真实奖衔属性不能为空 -- 真实奖衔属性不能为空 */ -public static final String AWARDS_VALUE_NOT_NULL = "真实奖衔属性不能为空"; + public static final String AWARDS_VALUE_NOT_NULL = "真实奖衔属性不能为空"; /** - * 极差名称不能为空 -- 极差名称不能为空 + * 级差名称不能为空 -- 级差名称不能为空 */ -public static final String RANGE_NAME_NOT_NULL = "极差名称不能为空"; + public static final String RANGE_NAME_NOT_NULL = "级差名称不能为空"; /** * 金额比例不能为空 -- 金额比例不能为空 */ -public static final String RANGE_MONEY_RATIO_NOT_NULL = "金额比例不能为空"; + public static final String RANGE_MONEY_RATIO_NOT_NULL = "金额比例不能为空"; /** * 业绩比例不能为空 -- 业绩比例不能为空 */ -public static final String RANGE_ACHIEVE_RATIO_NOT_NULL = "业绩比例不能为空"; + public static final String RANGE_ACHIEVE_RATIO_NOT_NULL = "业绩比例不能为空"; /** - * 极差值不能为空 -- 极差值不能为空 + * 级差值不能为空 -- 级差值不能为空 */ -public static final String RANGE_VALUE_NOT_NULL = "极差值不能为空"; + public static final String RANGE_VALUE_NOT_NULL = "级差值不能为空"; /** - * 极差值不能重复 -- 极差值不能重复 + * 级差值不能重复 -- 级差值不能重复 */ -public static final String RANGE_VALUE_REPEAT = "极差值不能重复"; + public static final String RANGE_VALUE_REPEAT = "级差值不能重复"; /** * 审核状态不能为空 -- 审核状态不能为空 */ -public static final String APPROVE_OPERATION_NOT_NULL = "审核状态不能为空"; + public static final String APPROVE_OPERATION_NOT_NULL = "审核状态不能为空"; /** * 等级或奖衔不能为空 -- 等级或奖衔不能为空 */ -public static final String PK_GRADE_AWARDS_NOT_NULL = "等级或奖衔不能为空"; + public static final String PK_GRADE_AWARDS_NOT_NULL = "等级或奖衔不能为空"; /** * 拓展次数不能为空 -- 拓展次数不能为空 */ -public static final String EXPAND_NUMBER_NOT_NULL = "拓展次数不能为空"; + public static final String EXPAND_NUMBER_NOT_NULL = "拓展次数不能为空"; /** * 4-N配置不能为空 -- 4-N配置不能为空 */ -public static final String BONUS_EXPANDS_NOT_NULL = "4-N配置不能为空"; + public static final String BONUS_EXPANDS_NOT_NULL = "4-N配置不能为空"; /** * 区代名称不能为空 -- 区代名称不能为空 */ -public static final String AGENT_NAME_NOT_NULL = "区代名称不能为空"; + public static final String AGENT_NAME_NOT_NULL = "区代名称不能为空"; /** * 区代值不能为空 -- 区代值不能为空 */ -public static final String AGENT_VALUE_NOT_NULL = "区代值不能为空"; + public static final String AGENT_VALUE_NOT_NULL = "区代值不能为空"; /** * 等级不能为空 -- 等级不能为空 */ -public static final String PK_GRADE_NOT_NULL = "等级不能为空"; + public static final String PK_GRADE_NOT_NULL = "等级不能为空"; /** * 修改后推荐编号不能是本身或者血缘伞下 */ @@ -403,375 +399,324 @@ public static final String PK_GRADE_NOT_NULL = "等级不能为空"; /** * 注册权限不能为空 -- 注册权限不能为空 */ -public static final String REGISTER_AUTHORITY_NOT_NULL = "注册权限不能为空"; + public static final String REGISTER_AUTHORITY_NOT_NULL = "注册权限不能为空"; /** * 关系类型不能为空 -- 关系类型不能为空 */ -public static final String RELATION_TYPE_NOT_NULL = "关系类型不能为空"; + public static final String RELATION_TYPE_NOT_NULL = "关系类型不能为空"; /** * 考核奖衔不能为空 -- 考核奖衔不能为空 */ -public static final String PK_CHECK_AWARDS_NOT_NULL = "考核奖衔不能为空"; + public static final String PK_CHECK_AWARDS_NOT_NULL = "考核奖衔不能为空"; /** * 保存失败 -- 保存失败 */ -public static final String FAILED_TO_SAVE = "保存失败"; + public static final String FAILED_TO_SAVE = "保存失败"; /** * 协议标题不能为空 -- 协议标题不能为空 */ -public static final String PROTOCOL_TITLE_NOT_NULL = "协议标题不能为空"; + public static final String PROTOCOL_TITLE_NOT_NULL = "协议标题不能为空"; /** * 协议内容不能为空 -- 协议内容不能为空 */ -public static final String PROTOCOL_CONTENT_NOT_NULL = "协议内容不能为空"; - - /** - * 内容不能为空 -- 内容不能为空 - */ -public static final String HO_CONTENT_NOT_NULL = "内容不能为空"; + public static final String PROTOCOL_CONTENT_NOT_NULL = "协议内容不能为空"; /** * 协议不能为空 -- 协议不能为空 */ -public static final String PK_AGREEMENT_NOT_NULL = "协议不能为空"; + public static final String PK_AGREEMENT_NOT_NULL = "协议不能为空"; /** * 店铺名称不能为空 -- 店铺名称不能为空 */ -public static final String SHOP_NAME_NOT_NULL = "店铺名称不能为空"; + public static final String SHOP_NAME_NOT_NULL = "店铺名称不能为空"; /** * 店铺等级名称不能为空 -- 店铺等级名称不能为空 */ -public static final String STORE_LEVEL_NAME_NOT_NULL = "店铺等级名称不能为空"; + public static final String STORE_LEVEL_NAME_NOT_NULL = "店铺等级名称不能为空"; /** * 店铺等级属性不能为空 -- 店铺等级属性不能为空 */ -public static final String LEVEL_VALUE_NOT_NULL = "店铺等级属性不能为空"; + public static final String LEVEL_VALUE_NOT_NULL = "店铺等级属性不能为空"; /** * 店铺等级业绩和比例不能为空 -- 店铺等级业绩和比例不能为空 */ -public static final String STORE_DETAIL_NOT_NULL = "店铺等级业绩和比例不能为空"; + public static final String STORE_DETAIL_NOT_NULL = "店铺等级业绩和比例不能为空"; /** * 店铺等级重复 -- 店铺等级重复 */ -public static final String LEVEL_VALUE_REPEAT = "店铺等级重复"; + public static final String LEVEL_VALUE_REPEAT = "店铺等级重复"; /** * 仓库编号不能为空 -- 仓库编号不能为空 */ -public static final String STOREHOUSE_CODE_NOT_NULL = "仓库编号不能为空"; + public static final String STOREHOUSE_CODE_NOT_NULL = "仓库编号不能为空"; /** * 仓库不能为空 -- 仓库不能为空 */ -public static final String STOREHOUSE_NOT_NULL = "仓库不能为空"; + public static final String STOREHOUSE_NOT_NULL = "仓库不能为空"; /** * 仓库名称不能为空 -- 仓库名称不能为空 */ -public static final String STOREHOUSE_NAME_NOT_NULL = "仓库名称不能为空"; + public static final String STOREHOUSE_NAME_NOT_NULL = "仓库名称不能为空"; /** * 仓库编号重复 -- 仓库编号重复 */ -public static final String STOREHOUSE_CODE_REPEAT = "仓库编号重复"; + public static final String STOREHOUSE_CODE_REPEAT = "仓库编号重复"; /** * 地区已绑定仓库 -- 已绑定仓库 */ -public static final String AREA_BINDING_REPEAT = "已绑定仓库"; + public static final String AREA_BINDING_REPEAT = "已绑定仓库"; /** * 配送中心名称不能为空 -- 配送中心名称不能为空 */ -public static final String DELIVERY_NAME_NOT_NULL = "配送中心名称不能为空"; + public static final String DELIVERY_NAME_NOT_NULL = "配送中心名称不能为空"; /** * 补贴比例不能为空 -- 补贴比例不能为空 */ -public static final String SUBSIDY_PROPORTION_NOT_NULL = "补贴比例不能为空"; + public static final String SUBSIDY_PROPORTION_NOT_NULL = "补贴比例不能为空"; /** * 统计值不能为空 -- 统计值不能为空 */ -public static final String CENSUS_VALUE_NOT_NULL = "统计值不能为空"; + public static final String CENSUS_VALUE_NOT_NULL = "统计值不能为空"; /** * 配送中心等级不能为空 -- 配送中心等级不能为空 */ -public static final String DELIVERY_GRADE_NOT_NULL = "配送中心等级不能为空"; + public static final String DELIVERY_GRADE_NOT_NULL = "配送中心等级不能为空"; /** * 等级属性不能为空 -- 等级属性不能为空 */ -public static final String GRADE_VALUE_NOT_NULL = "等级属性不能为空"; + public static final String GRADE_VALUE_NOT_NULL = "等级属性不能为空"; /** * 收益类型不能为空 -- 收益类型不能为空 */ -public static final String CLOUD_TYPE_NOT_NULL = "收益类型不能为空"; + public static final String CLOUD_TYPE_NOT_NULL = "收益类型不能为空"; /** * 收益比例不能为空 -- 收益比例不能为空 */ -public static final String CLOUD_RATIO_NOT_NULL = "收益比例不能为空"; + public static final String CLOUD_RATIO_NOT_NULL = "收益比例不能为空"; /** * 结算业绩不能为空 -- 结算业绩不能为空 */ -public static final String SHOP_SETTLE_VALUE_NOT_NULL = "结算业绩不能为空"; + public static final String SHOP_SETTLE_VALUE_NOT_NULL = "结算业绩不能为空"; /** * 联系人不能为空 -- 联系人不能为空 */ -public static final String CONTACTS_NOT_NULL = "联系人不能为空"; + public static final String CONTACTS_NOT_NULL = "联系人不能为空"; /** * 配送费不能为空 -- 配送费不能为空 */ -public static final String DELIVERY_FEE_NOT_NULL = "配送费不能为空"; + public static final String DELIVERY_FEE_NOT_NULL = "配送费不能为空"; /** * 联系方式不能为空 -- 联系方式不能为空 */ -public static final String MOBILEPHONE_NOT_NULL = "联系方式不能为空"; + public static final String MOBILEPHONE_NOT_NULL = "联系方式不能为空"; /** * 配送中心等级名称重复 -- 配送中心等级名称重复 */ -public static final String SHOP_NAME_REPEAT = "配送中心等级名称重复"; + public static final String SHOP_NAME_REPEAT = "配送中心等级名称重复"; /** * 配送中心名称重复 -- 配送中心名称重复 */ -public static final String DELIVERY_NAME_REPEAT = "配送中心名称重复"; + public static final String DELIVERY_NAME_REPEAT = "配送中心名称重复"; /** * 团队名称不能为空 -- 团队名称不能为空 */ -public static final String TEAM_NAME_NOT_NULL = "团队名称不能为空"; + public static final String TEAM_NAME_NOT_NULL = "团队名称不能为空"; /** * 团队编号不能为空 -- 团队编号不能为空 */ -public static final String TEAM_CODE_NOT_NULL = "团队编号不能为空"; + public static final String TEAM_CODE_NOT_NULL = "团队编号不能为空"; /** * 体系不能为空 -- 体系不能为空 */ -public static final String PK_BD_VERTEX_NOT_NULL = "体系不能为空"; + public static final String PK_BD_VERTEX_NOT_NULL = "体系不能为空"; /** * 会员已经加入团队 -- 会员已经加入团队 */ -public static final String MEMBER_CODE_REPEAT = "会员已经加入团队"; + public static final String MEMBER_CODE_REPEAT = "会员已经加入团队"; /** * 结算期间不能为空 -- 结算期间不能为空 */ -public static final String PERIOD_NOT_NULL = "结算期间不能为空"; + public static final String PERIOD_NOT_NULL = "结算期间不能为空"; /** * 直推收益不能为空 -- 推收益不能为空 */ -public static final String IS_REFERENCE_NOT_NULL = "直推收益不能为空"; + public static final String IS_REFERENCE_NOT_NULL = "直推收益不能为空"; /** * 拓展收益不能为空 -- 拓展收益不能为空 */ -public static final String IS_EXPAND_NOT_NULL = "拓展收益不能为空"; + public static final String IS_EXPAND_NOT_NULL = "拓展收益不能为空"; /** * 辅导收益不能为空 -- 辅导收益不能为空 */ -public static final String IS_COACH_NOT_NULL = "辅导收益不能为空"; + public static final String IS_COACH_NOT_NULL = "辅导收益不能为空"; /** * 分红收益不能为空 -- 分红收益不能为空 */ -public static final String IS_SHARE_NOT_NULL = "分红收益不能为空"; + public static final String IS_SHARE_NOT_NULL = "分红收益不能为空"; /** * 服务补贴不能为空 -- 服务补贴不能为空 */ -public static final String IS_SERVICE_NOT_NULL = "服务补贴不能为空"; + public static final String IS_SERVICE_NOT_NULL = "服务补贴不能为空"; /** - * 复购极差收益不能为空 -- 复购极差收益不能为空 + * 复购级差收益不能为空 -- 复购级差收益不能为空 */ -public static final String IS_PURCHASE_RANGE_NOT_NULL = "复购极差收益不能为空"; + public static final String IS_PURCHASE_RANGE_NOT_NULL = "复购级差收益不能为空"; /** * 消费拓展收益不能为空 -- 消费拓展收益不能为空 */ -public static final String IS_CONSUME_EXPAND_NOT_NULL = "消费拓展收益不能为空"; + public static final String IS_CONSUME_EXPAND_NOT_NULL = "消费拓展收益不能为空"; /** * 商城重销不能为空 -- 商城重销不能为空 */ -public static final String IS_MALL_RESALE_NOT_NULL = "商城重销不能为空"; + public static final String IS_MALL_RESALE_NOT_NULL = "商城重销不能为空"; /** * 平台服务费不能为空 -- 平台服务费不能为空 */ -public static final String IS_PLATFORM_FEE_NOT_NULL = "平台服务费不能为空"; + public static final String IS_PLATFORM_FEE_NOT_NULL = "平台服务费不能为空"; /** * 复购券不能为空 -- 复购券不能为空 */ -public static final String IS_COUPONS_NOT_NULL = "复购券不能为空"; + public static final String IS_COUPONS_NOT_NULL = "复购券不能为空"; /** * 云代直推收益不能为空 -- 云代直推收益不能为空 */ -public static final String IS_CLOUD_REFERENCE_NOT_NULL = "云代直推收益不能为空"; + public static final String IS_CLOUD_REFERENCE_NOT_NULL = "云代直推收益不能为空"; /** * 云代首购收益不能为空 -- 云代首购收益不能为空 */ -public static final String IS_CLOUD_FIRST_NOT_NULL = "云代首购收益不能为空"; + public static final String IS_CLOUD_FIRST_NOT_NULL = "云代首购收益不能为空"; /** * 云代复购收益不能为空 -- 云代复购收益不能为空 */ -public static final String IS_CLOUD_REPEAT_NOT_NULL = "云代复购收益不能为空"; + public static final String IS_CLOUD_REPEAT_NOT_NULL = "云代复购收益不能为空"; /** * 全球分红不能为空 -- 全球分红不能为空 */ -public static final String IS_GLOBAL_DIVIDEND_NOT_NULL = "全球分红不能为空"; + public static final String IS_GLOBAL_DIVIDEND_NOT_NULL = "全球分红不能为空"; /** * 环球积分不能为空 -- 环球积分不能为空 */ -public static final String IS_GLOBAL_INTEGRAL_NOT_NULL = "环球积分不能为空"; + public static final String IS_GLOBAL_INTEGRAL_NOT_NULL = "环球积分不能为空"; /** * 车奖积分不能为空 -- 车奖积分不能为空 */ -public static final String IS_CAR_AWARD_POINTS_NOT_NULL = "车奖积分不能为空"; + public static final String IS_CAR_AWARD_POINTS_NOT_NULL = "车奖积分不能为空"; /** * 月份不能为空 -- 月份不能为空 */ -public static final String MONTH_NOT_NULL = "月份不能为空"; + public static final String MONTH_NOT_NULL = "月份不能为空"; /** * 期末总额不能为空 -- 期末总额不能为空 */ -public static final String TOTAL_AMOUNT_NOT_NULL = "期末总额不能为空"; + public static final String TOTAL_AMOUNT_NOT_NULL = "期末总额不能为空"; /** * 本月新增不能为空 -- 本月新增不能为空 */ -public static final String ADD_AMOUNT_NOT_NULL = "本月新增不能为空"; + public static final String ADD_AMOUNT_NOT_NULL = "本月新增不能为空"; /** * 本月发放不能为空 -- 本月发放不能为空 */ -public static final String USED_AMOUNT_NOT_NULL = "本月发放不能为空"; + public static final String USED_AMOUNT_NOT_NULL = "本月发放不能为空"; /** * 本月结余不能为空 -- 本月结余不能为空 */ -public static final String BALANCE_AMOUNT_NOT_NULL = "本月结余不能为空"; + public static final String BALANCE_AMOUNT_NOT_NULL = "本月结余不能为空"; /** * 当月标杆不能为空 -- 当月标杆不能为空 */ -public static final String BASE_AMOUNT_NOT_NULL = "当月标杆不能为空"; + public static final String BASE_AMOUNT_NOT_NULL = "当月标杆不能为空"; /** * 是否发放不能为空 -- 是否发放不能为空 */ -public static final String IS_GRANT_NOT_NULL = "是否发放不能为空"; + public static final String IS_GRANT_NOT_NULL = "是否发放不能为空"; /** * 分红配置重复 -- 分红配置重复 */ -public static final String SHARE_REPEAT = "分红配置重复"; + public static final String SHARE_REPEAT = "分红配置重复"; /** * 主键不能为空 -- 主键不能为空 */ -public static final String PKID_NOT_NULL = "主键不能为空"; + public static final String PKID_NOT_NULL = "主键不能为空"; /** * 分红配置不能为空 -- 分红配置不能为空 */ -public static final String PK_SHARE_NOT_NULL = "分红配置不能为空"; + public static final String PK_SHARE_NOT_NULL = "分红配置不能为空"; /** * 晋升人数不能为空 -- 晋升人数不能为空 */ -public static final String TOTAL_NUMBER_NOT_NULL = "晋升人数不能为空"; + public static final String TOTAL_NUMBER_NOT_NULL = "晋升人数不能为空"; /** * 达标人数不能为空 -- 达标人数不能为空 */ -public static final String REACH_NUMBER_NOT_NULL = "达标人数不能为空"; + public static final String REACH_NUMBER_NOT_NULL = "达标人数不能为空"; /** * 预发金额不能为空 -- 预发金额不能为空 */ -public static final String ADVANCE_MONEY_NOT_NULL = "预发金额不能为空"; + public static final String ADVANCE_MONEY_NOT_NULL = "预发金额不能为空"; /** * 实发金额不能为空 -- 实发金额不能为空 */ -public static final String PAY_MONEY_NOT_NULL = "实发金额不能为空"; + public static final String PAY_MONEY_NOT_NULL = "实发金额不能为空"; /** * 图片不能为空 -- 图片不能为空 */ -public static final String HO_PICTURE_NOT_NULL = "图片不能为空"; + public static final String HO_PICTURE_NOT_NULL = "图片不能为空"; /** * 发布位置不能为空 -- 发布位置不能为空 */ -public static final String HO_POSITION_NOT_NULL = "发布位置不能为空"; + public static final String HO_POSITION_NOT_NULL = "发布位置不能为空"; /** * 地区不能为空 -- 地区不能为空 */ -public static final String HO_REGION_NOT_NULL = "地区不能为空"; - /** - * 国家不能为空 -- 国家不能为空 - */ -public static final String HO_PKCOUNTRY_NOT_NULL = "国家不能为空"; + public static final String HO_REGION_NOT_NULL = "地区不能为空"; /** * 省不能为空 -- 省不能为空 */ -public static final String GLO_PROVINCE_NOT_NULL = "省不能为空"; + public static final String GLO_PROVINCE_NOT_NULL = "省不能为空"; /** * 市不能为空 -- 市不能为空 */ -public static final String GLO_CITY_NOT_NULL = "市不能为空"; + public static final String GLO_CITY_NOT_NULL = "市不能为空"; - /** - * 分公司不能为空 -- 分公司不能为空 - */ -public static final String HO_COMPANY_NOT_NULL = "分公司不能为空"; - /** - * 联系人不能为空 -- 联系人不能为空 - */ -public static final String HO_CONTACTS_NOT_NULL = "联系人不能为空"; - /** - * 联系方式不能为空 -- 联系方式不能为空 - */ -public static final String HO_PHONE_NOT_NULL = "联系方式不能为空"; /** * 详细地址不能为空 -- 详细地址不能为空 */ -public static final String HO_ADDRESS_NOT_NULL = "详细地址不能为空"; - - /** - * 链接不能为空 -- 详细地址不能为空 - */ -public static final String HO_LINK_ADDRESS_NOT_NULL = "链接不能为空"; + public static final String HO_ADDRESS_NOT_NULL = "详细地址不能为空"; /** * 排序不能为空 -- 排序不能为空 */ -public static final String HO_SORT_NOT_NULL = "排序不能为空"; + public static final String HO_SORT_NOT_NULL = "排序不能为空"; /** * 排序重复 -- 排序重复 */ -public static final String HO_SORT_NOT_REPEAT = "排序重复"; + public static final String HO_SORT_NOT_REPEAT = "排序重复"; /** * 数据不存在 -- 数据不存在 */ -public static final String HO_OBJECT_NOT_REPEAT = "数据不存在"; - /** - * 标题名称不能为空 -- 标题名称不能为空 - */ -public static final String TITLE_NAME_NOT_NULL = "标题名称不能为空"; - /** - * 副标题名称不能为空 -- 副标题名称不能为空 - */ -public static final String TWO_TITLE_NAME_NOT_NULL = "副标题名称不能为空"; + public static final String HO_OBJECT_NOT_REPEAT = "数据不存在"; /** * 主键不能为空 -- 主键不能为空 */ -public static final String PK_ID_NOT_NULL = "主键不能为空"; + public static final String PK_ID_NOT_NULL = "主键不能为空"; - /** - * 时间不能为空 -- 时间不能为空 - */ -public static final String TITLE_SETUP_TIME_NOT_NULL = "时间不能为空"; - /** - * 上传视频不能为空 -- 上传视频不能为空 - */ -public static final String VIDEO_ADDRESS_NOT_NULL = "上传视频不能为空"; - /** - * 封面图片不能为空 -- 封面图片不能为空 - */ -public static final String COVER_ADDRESS_NOT_NULL = "封面图片不能为空"; - - /** - * 商品分类不能为空 -- 商品分类不能为空 - */ -public static final String PK_HO_PRODUCT_RANGE_NOT_NULL = "商品分类不能为空"; /** * 产品不能为空 -- 产品不能为空 */ -public static final String PK_PRODUCT_NOT_NULL = "产品不能为空"; + public static final String PK_PRODUCT_NOT_NULL = "产品不能为空"; /** * 可提数量需大于0 -- 可提数量需大于0 */ @@ -791,362 +736,346 @@ public static final String PK_PRODUCT_NOT_NULL = "产品不能为空"; /** * 条形码前缀不能为空 -- 条形码前缀不能为空 */ -public static final String PREFIX_NOT_NULL = "条形码前缀不能为空"; + public static final String PREFIX_NOT_NULL = "条形码前缀不能为空"; /** * 条形码前缀位数不能超过两位 -- 条形码前缀位数不能超过两位 */ -public static final String PREFIX_DIGIT_ERROR = "条形码前缀位数不能超过两位"; + public static final String PREFIX_DIGIT_ERROR = "条形码前缀位数不能超过两位"; /** * 条形码是否年列不能为空 -- 条形码是否年列不能为空 */ -public static final String IS_YEAR_NOT_NULL = "条形码是否年列不能为空"; + public static final String IS_YEAR_NOT_NULL = "条形码是否年列不能为空"; /** * 条形码是否月不能为空 -- 条形码是否月不能为空 */ -public static final String IS_MONTH_NOT_NULL = "条形码是否月不能为空"; + public static final String IS_MONTH_NOT_NULL = "条形码是否月不能为空"; /** * 条形码尾号位数不能为空 -- 条形码尾号位数不能为空 */ -public static final String TAIL_NUMBER_NOT_NULL = "条形码尾号位数不能为空"; + public static final String TAIL_NUMBER_NOT_NULL = "条形码尾号位数不能为空"; /** * 条形码尾号位数长度不能大于9位 -- 条形码尾号位数长度不能大于9位 */ -public static final String TAIL_NUMBER_DIGIT_ERROR = "条形码尾号位数长度不能大于9位"; + public static final String TAIL_NUMBER_DIGIT_ERROR = "条形码尾号位数长度不能大于9位"; /** * 条形码是否初始化不能为空 -- 条形码是否初始化不能为空 */ -public static final String IS_INITIALIZE_NOT_NULL = "条形码是否初始化不能为空"; + public static final String IS_INITIALIZE_NOT_NULL = "条形码是否初始化不能为空"; /** * 条形码尾号不能为空 -- 条形码尾号不能为空 */ -public static final String END_NUMBER_NOT_NULL = "条形码尾号不能为空"; + public static final String END_NUMBER_NOT_NULL = "条形码尾号不能为空"; /** * 条形码当前尾号不能为空 -- 商品所属系列不能为空 */ -public static final String CURRENT_NUMBER_NOT_NULL = "商品所属系列不能为空"; + public static final String CURRENT_NUMBER_NOT_NULL = "商品所属系列不能为空"; /** * 是否启用不能为空 -- 是否启用不能为空 */ -public static final String ENABLE_STATE_NOT_NULL = "是否启用不能为空"; + public static final String ENABLE_STATE_NOT_NULL = "是否启用不能为空"; /** * 启用数据不能删除 -- 启用数据不能删除 */ -public static final String ENABLE_STATE_NOT_DELETE = "启用数据不能删除"; + public static final String ENABLE_STATE_NOT_DELETE = "启用数据不能删除"; /** * 条形码配置无效 -- 条形码配置无效 */ -public static final String PK_BAR_CODE_NOT_NULL = "条形码配置无效"; + public static final String PK_BAR_CODE_NOT_NULL = "条形码配置无效"; /** * 生成条形码数量不能为空 -- 生成条形码数量不能为空 */ -public static final String GENERATE_COUNT_NOT_NULL = "生成条形码数量不能为空"; + public static final String GENERATE_COUNT_NOT_NULL = "生成条形码数量不能为空"; /** * 会员礼包收货地址主键不能为空 -- 会员礼包收货地址主键不能为空 */ -public static final String CU_MEMBER_GIFT_PKID_NOT_NULL = "会员礼包收货地址主键不能为空"; + public static final String CU_MEMBER_GIFT_PKID_NOT_NULL = "会员礼包收货地址主键不能为空"; /** * 收货地址不能为空 -- 收货地址不能为空 */ -public static final String GIFT_ADDRESS_NOT_NULL = "收货地址不能为空"; + public static final String GIFT_ADDRESS_NOT_NULL = "收货地址不能为空"; /** * 收货人姓名不能为空 -- 收货人姓名不能为空 */ -public static final String GIFT_NAME_NOT_NULL = "收货人姓名不能为空"; + public static final String GIFT_NAME_NOT_NULL = "收货人姓名不能为空"; /** * 收货人手机不能为空 -- 收货人手机不能为空 */ -public static final String GIFT_PHONE_NOT_NULL = "收货人手机不能为空"; + public static final String GIFT_PHONE_NOT_NULL = "收货人手机不能为空"; /** * 收货地址省不能为空 -- 收货地址省不能为空 */ -public static final String GIFT_PROVINCE_NOT_NULL = "收货地址省不能为空"; + public static final String GIFT_PROVINCE_NOT_NULL = "收货地址省不能为空"; /** * 收货地址市不能为空 -- 收货地址市不能为空 */ -public static final String GIFT_CITY_NOT_NULL = "收货地址市不能为空"; + public static final String GIFT_CITY_NOT_NULL = "收货地址市不能为空"; /** * 收货地址县不能为空 -- 收货地址县不能为空 */ -public static final String GIFT_COUNTY_NOT_NULL = "收货地址县不能为空"; + public static final String GIFT_COUNTY_NOT_NULL = "收货地址县不能为空"; /** * 等级不能为空 -- 等级不能为空 */ -public static final String PK_SCOPE_NOT_NULL = "等级不能为空"; + public static final String PK_SCOPE_NOT_NULL = "等级不能为空"; /** * 注册金额不能为空 -- 注册金额不能为空 */ -public static final String REGISTER_VALUE_NOT_NULL = "注册金额不能为空"; + public static final String REGISTER_VALUE_NOT_NULL = "注册金额不能为空"; /** * 奖项名称不能为空 -- 奖项名称不能为空 */ -public static final String BONUS_NAME_NOT_NULL = "奖项名称不能为空"; + public static final String BONUS_NAME_NOT_NULL = "奖项名称不能为空"; /** * 结算周期不能为空 -- 结算周期不能为空 */ -public static final String SETTLE_TYPE_NOT_NULL = "结算周期不能为空"; + public static final String SETTLE_TYPE_NOT_NULL = "结算周期不能为空"; /** * 公布时间不能为空 -- 公布时间不能为空 */ -public static final String PUBLISH_TIME_NOT_NULL = "公布时间不能为空"; + public static final String PUBLISH_TIME_NOT_NULL = "公布时间不能为空"; /** * 公布日期不能为空 -- 公布日期不能为空 */ -public static final String PUBLISH_DATE_NOT_NULL = "公布日期不能为空"; + public static final String PUBLISH_DATE_NOT_NULL = "公布日期不能为空"; /** * 发布日期不能为空 -- 发布日期不能为空 */ -public static final String GRANT_DATE_NOT_NULL = "发布日期不能为空"; + public static final String GRANT_DATE_NOT_NULL = "发布日期不能为空"; /** * 可提现日期不能为空 -- 可提现日期不能为空 */ -public static final String WITHDRAWAL_DATE_NOT_NULL = "可提现日期不能为空"; + public static final String WITHDRAWAL_DATE_NOT_NULL = "可提现日期不能为空"; /** * 变更后会员编号不能为空 -- 变更后会员编号不能为空 */ -public static final String MEMBER_CODE_NEW_NOT_NULL = "变更后会员编号不能为空"; + public static final String MEMBER_CODE_NEW_NOT_NULL = "变更后会员编号不能为空"; /** * 变更后结算国不能为空 -- 变更后结算国不能为空 */ -public static final String SETTLE_COUNTRY_NEW_NOT_NULL = "变更后结算国不能为空"; + public static final String SETTLE_COUNTRY_NEW_NOT_NULL = "变更后结算国不能为空"; /** * 结算国不能为空 -- 结算国不能为空 */ -public static final String SETTLE_COUNTRY_OLD_NOT_NULL = "结算国不能为空"; + public static final String SETTLE_COUNTRY_OLD_NOT_NULL = "结算国不能为空"; /** * 存在7天内奖金结算未完成 -- 存在7天内奖金结算未完成 */ -public static final String BONUS_SETTLE_NOT_COMPLETED = "存在7天内奖金结算未完成"; + public static final String BONUS_SETTLE_NOT_COMPLETED = "存在7天内奖金结算未完成"; /** * 会员手机不能为空 -- 会员手机不能为空 */ -public static final String MEMBER_PHONE_NOT_NULL = "会员手机不能为空"; + public static final String MEMBER_PHONE_NOT_NULL = "会员手机不能为空"; /** * 签呈流程类型不能为空 -- 签呈流程类型不能为空 */ -public static final String PROCESS_TYPE_NOT_NULL = "签呈流程类型不能为空"; + public static final String PROCESS_TYPE_NOT_NULL = "签呈流程类型不能为空"; /** * 业务类型不能为空 -- 业务类型不能为空 */ -public static final String WORK_TYPE_NOT_NULL = "业务类型不能为空"; + public static final String WORK_TYPE_NOT_NULL = "业务类型不能为空"; /** * 业务单号不能为空 -- 业务单号不能为空 */ -public static final String WORK_NO_NOT_NULL = "业务单号不能为空"; + public static final String WORK_NO_NOT_NULL = "业务单号不能为空"; /** * 会员余额不足 -- 会员余额不足 */ -public static final String MEMBER_BALANCE_INSUFFICIENT = "会员余额不足"; + public static final String MEMBER_BALANCE_INSUFFICIENT = "会员余额不足"; /** * 数据不能为空 -- 数据不能为空 */ -public static final String MEMBER_DATA_NOT_NULL = "数据不能为空"; + public static final String MEMBER_DATA_NOT_NULL = "数据不能为空"; /** * 会员存在未审核数据 -- 会员存在未审核数据 */ -public static final String MEMBER_UPDATE_CODE_REPEAT = "会员存在未审核数据"; + public static final String MEMBER_UPDATE_CODE_REPEAT = "会员存在未审核数据"; /** * 订单超过24小时无法申请 -- 订单超过24小时无法申请 */ -public static final String ORDER_TIMEOUT = "订单超过24小时无法申请"; + public static final String ORDER_TIMEOUT = "订单超过24小时无法申请"; /** * 会员账户余额不为零 -- 会员账户余额不为零 */ -public static final String MEMBER_ACCOUNT_NOT_ZERO = "会员账户余额不为零"; + public static final String MEMBER_ACCOUNT_NOT_ZERO = "会员账户余额不为零"; /** * 会员有充值未审核 -- 会员有充值未审核 */ -public static final String MEMBER_CECHARGE_REPEAT = "会员有充值未审核"; + public static final String MEMBER_CECHARGE_REPEAT = "会员有充值未审核"; /** * 会员有提现未审核 -- 会员有提现未审核 */ -public static final String MEMBER_WITHDRAW_REPEAT = "会员有提现未审核"; + public static final String MEMBER_WITHDRAW_REPEAT = "会员有提现未审核"; /** * 会员有绑定的银行卡 -- 会员有绑定的银行卡 */ -public static final String MEMBER_BINDING_BANK = "会员有绑定的银行卡"; + public static final String MEMBER_BINDING_BANK = "会员有绑定的银行卡"; /** * 会员有未审核注水业绩 -- 会员有未审核注水业绩 */ -public static final String MEMBER_ACHIEVE_REPEAT = "会员有未审核注水业绩"; + public static final String MEMBER_ACHIEVE_REPEAT = "会员有未审核注水业绩"; /** * 只能注水7天以内业绩 -- 只能注水7天以内业绩 */ -public static final String ACHIEVE_WITHIN_SEVEN_DAYS = "只能注水7天以内业绩"; + public static final String ACHIEVE_WITHIN_SEVEN_DAYS = "只能注水7天以内业绩"; /** * 修改会员编号扣款失败 -- 修改会员编号扣款失败 */ -public static final String MEMBER_UPDATE_CODE_MONEY = "修改会员编号扣款失败"; + public static final String MEMBER_UPDATE_CODE_MONEY = "修改会员编号扣款失败"; /** * 变更后国家等级未配置 -- 变更后国家等级未配置 */ -public static final String UPDATE_COUNTRY_AFTER_GRADE_IS_NULL = "变更后国家等级未配置"; + public static final String UPDATE_COUNTRY_AFTER_GRADE_IS_NULL = "变更后国家等级未配置"; /** * 变更后国家奖衔未配置 -- 变更后国家奖衔未配置 */ -public static final String UPDATE_COUNTRY_AFTER_AWARDS_IS_NULL = "变更后国家奖衔未配置"; + public static final String UPDATE_COUNTRY_AFTER_AWARDS_IS_NULL = "变更后国家奖衔未配置"; /** * 修改安置编号扣款失败 -- 修改会员编号扣款失败 */ -public static final String MEMBER_UPDATE_PLACE_MONEY = "修改会员编号扣款失败"; + public static final String MEMBER_UPDATE_PLACE_MONEY = "修改会员编号扣款失败"; /** * 修改安置发起失败 -- 修改安置发起失败 */ -public static final String MEMBER_UPDATE_PLACE_PARENT = "修改安置发起失败"; + public static final String MEMBER_UPDATE_PLACE_PARENT = "修改安置发起失败"; /** * 修改会员编号发起签呈失败 -- 修改会员编号发起签呈失败 */ -public static final String MEMBER_UPDATE_PETITION = "修改会员编号发起签呈失败"; + public static final String MEMBER_UPDATE_PETITION = "修改会员编号发起签呈失败"; /** * 注水业绩发起签呈失败 -- 注水业绩发起签呈失败 */ -public static final String MEMBER_ACHIEVE_DEDUCT_PETITION = "注水业绩发起签呈失败"; - /** - * 添加真实奖衔控制重复 -- 添加真实奖衔控制重复 - */ -public static final String AWARDS_CONTROL_SAVE_REPEAT = "添加真实奖衔控制重复"; - /** - * 添加真实奖衔控制发起签呈失败 -- 添加真实奖衔控制发起签呈失败 - */ -public static final String AWARDS_CONTROL_SAVE_PETITION = "添加真实奖衔控制发起签呈失败"; - /** - * 修改真实奖衔控制发起签呈失败 -- 修改真实奖衔控制发起签呈失败 - */ -public static final String AWARDS_CONTROL_MODIFY_PETITION = "修改真实奖衔控制发起签呈失败"; - /** - * 删除真实奖衔控制发起签呈失败 -- 删除真实奖衔控制发起签呈失败 - */ -public static final String AWARDS_CONTROL_DELETE_PETITION = "删除真实奖衔控制发起签呈失败"; + public static final String MEMBER_ACHIEVE_DEDUCT_PETITION = "注水业绩发起签呈失败"; /** * 修改结算国发起签呈失败 -- 修改结算国发起签呈失败 */ -public static final String UPDATE_SETTLE_PETITION = "修改结算国发起签呈失败"; + public static final String UPDATE_SETTLE_PETITION = "修改结算国发起签呈失败"; /** * 修改政策币发起签呈失败 -- 修改政策币发起签呈失败 */ -public static final String POLICY_CURRENCY_PETITION = "修改政策币发起签呈失败"; + public static final String POLICY_CURRENCY_PETITION = "修改政策币发起签呈失败"; /** * 自助服务-修改收货地址 -- 自助服务修改收货地址发起签呈失败 */ -public static final String SELF_MODIFY_ADDRESS = "自助服务修改收货地址发起签呈失败"; + public static final String SELF_MODIFY_ADDRESS = "自助服务修改收货地址发起签呈失败"; /** * 零元撤单扣款失败 -- 零元撤单扣款失败 */ -public static final String ZERO_ELEMENT_REVOKE_MONEY = "零元撤单扣款失败"; + public static final String ZERO_ELEMENT_REVOKE_MONEY = "零元撤单扣款失败"; /** * 修改结算国扣款失败 -- 修改结算国扣款失败 */ -public static final String UPDATE_SETTLE_MONEY = "修改结算国扣款失败"; + public static final String UPDATE_SETTLE_MONEY = "修改结算国扣款失败"; /** * 修改政策币扣款失败 -- 修改政策币扣款失败 */ -public static final String POLICY_CURRENCY_MONEY = "修改政策币扣款失败"; + public static final String POLICY_CURRENCY_MONEY = "修改政策币扣款失败"; /** * 注水业绩扣款失败 -- 注水业绩扣款失败 */ -public static final String MEMBER_ACHIEVE_DEDUCT_MONEY = "注水业绩扣款失败"; + public static final String MEMBER_ACHIEVE_DEDUCT_MONEY = "注水业绩扣款失败"; /** * 审批特殊业务流程出错 -- 审批特殊业务流程出错 */ -public static final String MEMBER_UPDATE_CODE_ERROR = "审批特殊业务流程出错"; + public static final String MEMBER_UPDATE_CODE_ERROR = "审批特殊业务流程出错"; /** * 签呈不存在 -- 签呈不存在 */ -public static final String PETITION_ABSENT_ERROR = "签呈不存在"; + public static final String PETITION_ABSENT_ERROR = "签呈不存在"; /** * 签呈已审核 -- 签呈已审核 */ -public static final String PETITION_AUDITED_ERROR = "签呈已审核"; + public static final String PETITION_AUDITED_ERROR = "签呈已审核"; /** * 审批流程不能为空 -- 审批流程不能为空 */ -public static final String EXAMINE_AND_APPROVE_NOT_NULL = "审批流程不能为空"; + public static final String EXAMINE_AND_APPROVE_NOT_NULL = "审批流程不能为空"; /** * 错误数据 -- 错误数据 */ -public static final String MEMBER_DATA_ERROR = "错误数据"; + public static final String MEMBER_DATA_ERROR = "错误数据"; /** * 数据重复 -- 数据重复 */ -public static final String DATA_REPEAT = "数据重复"; + public static final String DATA_REPEAT = "数据重复"; /** * 注水日期不能为空 -- 注水日期不能为空 */ -public static final String SETTLEDATE_NOT_VALID = "注水日期不能为空"; + public static final String SETTLEDATE_NOT_VALID = "注水日期不能为空"; /** * 零元撤单发起签呈失败 -- 零元撤单发起签呈失败 */ -public static final String ZERO_ELEMENT_REVOKE_PETITION = "零元撤单发起签呈失败"; + public static final String ZERO_ELEMENT_REVOKE_PETITION = "零元撤单发起签呈失败"; /** * 注水日期不能大于结束日期 -- 注水日期不能大于结束日期 */ -public static final String SETTLE_DUE_DATE_COMPARE = "注水日期不能大于结束日期"; + public static final String SETTLE_DUE_DATE_COMPARE = "注水日期不能大于结束日期"; /** * 注水业绩类型不能为空 -- 注水业绩类型不能为空 */ -public static final String INFUSING_WATER_TYPE_NOT_NULL = "注水业绩类型不能为空"; + public static final String INFUSING_WATER_TYPE_NOT_NULL = "注水业绩类型不能为空"; /** * 变更后注水业绩不能为空 -- 变更后注水业绩不能为空 */ -public static final String INFUSING_WATER_PV_NOT_NULL = "变更后注水业绩不能为空"; + public static final String INFUSING_WATER_PV_NOT_NULL = "变更后注水业绩不能为空"; /** * 4-N配置 -- 4-N配置 */ -public static final String FOUR_N_DISPOSE = "4-N配置"; + public static final String FOUR_N_DISPOSE = "4-N配置"; /** * 签呈文件类型不能为空 -- 签呈文件类型不能为空 */ -public static final String SIGN_TYPE_NOT_NULL = "签呈文件类型不能为空"; + public static final String SIGN_TYPE_NOT_NULL = "签呈文件类型不能为空"; /** * 扣款币种 (页面固定文字) -- 扣款币种 */ -public static final String DEDUCTION_CURRENCY = "扣款币种"; + public static final String DEDUCTION_CURRENCY = "扣款币种"; /** * 变更后 (页面固定文字) -- 变更后 */ -public static final String AFTER_THE_CHANGE = "变更后"; + public static final String AFTER_THE_CHANGE = "变更后"; /** * 汇率配置至少存在一条,无法禁用 -- 汇率配置至少存在一条,无法禁用 */ -public static final String CURRENCY_UNABLE_TO_FAIL = "汇率配置至少存在一条,无法禁用"; + public static final String CURRENCY_UNABLE_TO_FAIL = "汇率配置至少存在一条,无法禁用"; /** * 活动不能为空 -- 活动不能为空 */ -public static final String ACTIVITY_NOT_NULL = "活动不能为空"; + public static final String ACTIVITY_NOT_NULL = "活动不能为空"; /** * 活动已存在 -- 活动已存在 @@ -1156,55 +1085,55 @@ public static final String ACTIVITY_NOT_NULL = "活动不能为空"; /** * 左右区结余不能同时大于零 -- 左右区结余不能同时大于零 */ -public static final String BALANCE_NOT_ZERO = "左右区结余不能同时大于零"; + public static final String BALANCE_NOT_ZERO = "左右区结余不能同时大于零"; /** * 政策币启用状态不能为空 -- 政策币启用状态不能为空 */ -public static final String ENABLE_STATUS_NOT_NULL = "政策币启用状态不能为空"; + public static final String ENABLE_STATUS_NOT_NULL = "政策币启用状态不能为空"; /** * 政策币扣款比例不能为空 -- 政策币扣款比例不能为空 */ -public static final String DEDUCT_MONEY_NOT_NULL = "政策币扣款比例不能为空"; + public static final String DEDUCT_MONEY_NOT_NULL = "政策币扣款比例不能为空"; /** * 政策币转账不能为空 -- 政策币转账不能为空 */ -public static final String TRANSFER_NOT_NULL = "政策币转账不能为空"; + public static final String TRANSFER_NOT_NULL = "政策币转账不能为空"; /** * 基础业务模板 -- 基础业务模板 */ -public static final String BASIC_BUSINESS = "基础业务模板"; + public static final String BASIC_BUSINESS = "基础业务模板"; /** * 邮费模板名称必填 -- 邮费模板名称必填 */ -public static final String POSTAGE_TEMPLATE_IS_REQUIRED = "邮费模板名称必填"; + public static final String POSTAGE_TEMPLATE_IS_REQUIRED = "邮费模板名称必填"; /** * 营业执照状态 -- 营业执照状态不能为空 */ -public static final String LICENSE_STATE_NOT_EMPTY = "营业执照状态不能为空"; + public static final String LICENSE_STATE_NOT_EMPTY = "营业执照状态不能为空"; /** * 业务模块不能为空 -- 业务模块不能为空 */ -public static final String BUSINESS_MODULE = "业务模块不能为空"; + public static final String BUSINESS_MODULE = "业务模块不能为空"; /** * 会员编号不能为空 -- 会员编号不能为空 */ -public static final String MEMBER_CODE_NOT_EMPTY = "会员编号不能为空"; + public static final String MEMBER_CODE_NOT_EMPTY = "会员编号不能为空"; /** * 会员不存在 -- 会员不存在 */ -public static final String MEMBER_NOT_EXIST = "会员不存在"; + public static final String MEMBER_NOT_EXIST = "会员不存在"; /** * 提现权限或转账权限不能为空 -- 提现权限或转账权限不能为空 */ -public static final String WITHDRAWAL_NOT_EMPTY = "提现权限或转账权限不能为空"; + public static final String WITHDRAWAL_NOT_EMPTY = "提现权限或转账权限不能为空"; /** * 修改安置安置位置已被占用 -- 修改安置安置位置已被占用 */ @@ -1212,37 +1141,33 @@ public static final String WITHDRAWAL_NOT_EMPTY = "提现权限或转账权限 /** * 请填写驳回信息 -- 请填写驳回信息 */ -public static final String REJECT_MSG_NOT_NULL = "请填写驳回信息"; + public static final String REJECT_MSG_NOT_NULL = "请填写驳回信息"; /** * 统计体系不能为空 -- 联创统计 */ -public static final String LIANCHUANG_STAT_CODE = "统计体系编号不能为空"; + public static final String LIANCHUANG_STAT_CODE = "统计体系编号不能为空"; /** * 统计名称不能为空 -- 联创统计 */ -public static final String LIANCHUANG_STAT_NAME = "统计名称不能为空"; + public static final String LIANCHUANG_STAT_NAME = "统计名称不能为空"; /** * 统计加区不能为空 -- 联创统计 */ -public static final String LIANCHUANG_STAT_ADD_REGION = "统计加区不能为空"; + public static final String LIANCHUANG_STAT_ADD_REGION = "统计加区不能为空"; /** * 修改免考状态无效 -- 办理业务 */ -public static final String FREE_ASSESSMENT_STATE_INVALID = "修改免考状态无效"; - /** - * 办理业务手续费退款失败 -- 真实奖衔控制驳回签呈退费失败 - */ -public static final String AWARDS_CONTROL_IS_REFUND = "真实奖衔控制驳回签呈退费失败"; + public static final String FREE_ASSESSMENT_STATE_INVALID = "修改免考状态无效"; /** * 注水业绩扣款失败 -- 注水业绩驳回签呈退款失败 */ -public static final String MEMBER_ACHIEVE_IS_REFUND = "注水业绩驳回签呈退款失败"; + public static final String MEMBER_ACHIEVE_IS_REFUND = "注水业绩驳回签呈退款失败"; /** * 请选择政策币业务 -- 请选择政策币业务 */ -public static final String POLICY_CURRENCY_NOT_NULL = "请选择政策币业务"; + public static final String POLICY_CURRENCY_NOT_NULL = "请选择政策币业务"; /** * 领用用途重复 -- 领用用途重复 */ @@ -1254,16 +1179,16 @@ public static final String POLICY_CURRENCY_NOT_NULL = "请选择政策币业务" /** * 会员控制配置重复 -- 会员控制配置重复 */ -public static final String MEMBER_AUTHORITY_CONTROL = "会员控制配置重复"; + public static final String MEMBER_AUTHORITY_CONTROL = "会员控制配置重复"; /** * 会员实名认证重复 -- 会员实名认证重复 */ -public static final String REAL_NAME_AUTHENTICATION_REPEAT = "会员实名认证重复"; + public static final String REAL_NAME_AUTHENTICATION_REPEAT = "会员实名认证重复"; /** * 小区考核不能为空 -- 小区考核止不能为空 */ -public static final String COMMUNITY_CHECK_END_NOT_NULL = "小区考核止不能为空"; + public static final String COMMUNITY_CHECK_END_NOT_NULL = "小区考核止不能为空"; /** * 会员已存在 -- 会员已存在 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeType.java index c449cad4..13ede5a2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeType.java @@ -5,11 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @author: sui q - * @time: 2022/8/27 10:35 - * @description: 极差类型枚举 - * @classname: ERangeType - * @package_name: com.hzs.common.core.enums + * 极差类型枚举 */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/base/BdNotice.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/base/BdNotice.java index 4abed85a..8002f46f 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/base/BdNotice.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/base/BdNotice.java @@ -13,9 +13,6 @@ import java.util.Date; /** * 公告表 - * - * @author hzs - * @since 2023-02-03 */ @Data @Builder diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRangeDetails.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRangeDetails.java index 55d16690..c4a6490a 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRangeDetails.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRangeDetails.java @@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** - *

* 极差详细表 - *

- * - * @author hzs - * @since 2022-10-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -51,5 +46,4 @@ public class BdRangeDetails extends BaseEntity { private Integer rangeType; - } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeDetailsExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeDetailsExt.java index 4213a6a9..70495fa4 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeDetailsExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeDetailsExt.java @@ -1,23 +1,11 @@ package com.hzs.common.domain.system.config.ext; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.constant.EnumsPrefixConstants; -import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.domain.system.config.BdRangeDetails; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** - *

* 极差详细表 - *

- * - * @author hzs - * @since 2022-10-28 */ @EqualsAndHashCode(callSuper = true) @Data @@ -30,14 +18,13 @@ public class BdRangeDetailsExt extends BdRangeDetails { */ private String rangeTypeVal; - @Transaction(transactionKey = EnumsPrefixConstants.KEY_GRADE) private Integer pkGrade; - @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD) - private Integer pkAward; /** * 等级翻译 */ private String pkGradeVal; + + private Integer pkAward; /** * 奖衔翻译 */ diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeExt.java index 9bd829ca..d5aac1a6 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdRangeExt.java @@ -1,27 +1,14 @@ package com.hzs.common.domain.system.config.ext; -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import com.hzs.common.core.annotation.Excel; -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.domain.system.config.BdRange; -import com.hzs.common.domain.system.config.BdRangeDetails; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import java.util.List; /** - *

* 极差配置 - *

- * - * @author zhangjing - * @since 2022-09-09 */ @EqualsAndHashCode(callSuper = true) @Data @@ -32,22 +19,21 @@ public class BdRangeExt extends BdRange { /** * 等级极差详情集合 */ - @Transaction private List rangeDetailsGrade; - @Excel(name = "等级",sort=2) - private String rangeDetailsGradeVal; - /** * 奖衔极差详情集合 */ - @Transaction private List rangeDetailsAward; - private List rangeDetails; - @Excel(name = "奖衔",sort=3) + @Excel(name = "等级", sort = 2) + private String rangeDetailsGradeVal; + + @Excel(name = "奖衔", sort = 3) private String rangeDetailsAwardVal; + private List rangeDetails; + /** * 等级集合 */ From 304ccac4319142cad40e2c047f559d2e73c41316 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 8 Jul 2025 14:41:41 +0800 Subject: [PATCH 02/89] =?UTF-8?q?##=20=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9E=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/controller/EnumsController.java | 210 +++++------------- .../hzs/common/core/enums/ESignSource.java | 6 +- .../hzs/common/core/enums/ESpecialArea.java | 10 +- .../hzs/common/core/enums/EUpgradeType.java | 1 + .../hzs/common/core/enums/EnableStatus.java | 8 +- .../common/core/web/domain/EnumEntity.java | 8 +- 6 files changed, 65 insertions(+), 178 deletions(-) diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java index f8e5608b..ee0f7181 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java @@ -42,27 +42,23 @@ import java.util.Map; @RequestMapping("/pub/enums") public class EnumsController extends BaseController { - private IBdSystemConfigService bdSystemConfigService; - @Autowired - public void setBdSystemConfigService(IBdSystemConfigService bdSystemConfigService) { - this.bdSystemConfigService = bdSystemConfigService; - } + private IBdSystemConfigService bdSystemConfigService; @Autowired private IBdAccountService iBdAccountService; @Autowired - private IBdGradeService gradeService; + private IBdGradeService iBdGradeService; @Autowired - private IBdAwardsService awardsService; + private IBdAwardsService iBdAwardsService; @Autowired - private IBdCountryService countryService; + private IBdCountryService iBdCountryService; @Autowired - private IBdServiceChargeService serviceChargeService; + private IBdServiceChargeService iBdServiceChargeService; @Autowired private IBdDeliveryService iBdDeliveryService; @Autowired - private IBdBonusItemsService bonusItemsService; + private IBdBonusItemsService iBdBonusItemsService; @DubboReference IMenuColumnServiceApi iMenuColumnServiceApi; @@ -106,7 +102,7 @@ public class EnumsController extends BaseController { List enumEntityList = new ArrayList<>(); for (EApprovalBusiness value : EApprovalBusiness.values()) { if (value.getValue() == 233 || value.getValue() == 234) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.APPROVAL_BUSINESS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } @@ -123,7 +119,7 @@ public class EnumsController extends BaseController { public AjaxResult AssessmentType() { List enumEntityList = new ArrayList<>(); for (EAssessmentType value : EAssessmentType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ASSESSMENT_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -137,7 +133,7 @@ public class EnumsController extends BaseController { public AjaxResult incomeStatus() { List enumEntityList = new ArrayList<>(); for (EIncomeStatus value : EIncomeStatus.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.INCOME_STATUS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -153,7 +149,7 @@ public class EnumsController extends BaseController { for (EApproveStatus value : EApproveStatus.values()) { if (EApproveStatus.WAIT_SUBMIT.getValue() != value.getValue() && EApproveStatus.ALREADY_SUBMIT.getValue() != value.getValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.APPROVE_STATUS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -170,7 +166,7 @@ public class EnumsController extends BaseController { List enumEntityList = new ArrayList<>(); for (EApproveStatus value : EApproveStatus.values()) { if (EApproveStatus.WAIT_SUBMIT.getValue() != value.getValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.APPROVE_STATUS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -186,7 +182,7 @@ public class EnumsController extends BaseController { public AjaxResult approvalStatusAll() { List enumEntityList = new ArrayList<>(); for (EApproveStatus value : EApproveStatus.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.APPROVE_STATUS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -200,7 +196,7 @@ public class EnumsController extends BaseController { public AjaxResult approvalOperation() { List enumEntityList = new ArrayList<>(); for (EApproveOperation value : EApproveOperation.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.APPROVE_OPERATION)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -215,7 +211,7 @@ public class EnumsController extends BaseController { List enumEntityList = new ArrayList<>(); for (EAwards value : EAwards.values()) { if (value.getEnable() == EYesNo.YES.getIntValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.AWARDS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -223,18 +219,13 @@ public class EnumsController extends BaseController { /** * 奖衔级别 - * - * @author: zhang jing - * @date: 2023/10/17 10:53 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/awardsLevelList") public AjaxResult awardsLevelList() { List enumEntityList = new ArrayList<>(); for (EAwardsLevel value : EAwardsLevel.values()) { if (value.getEnable() == EYesNo.YES.getIntValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.AWARDS_LEVEL)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -249,7 +240,7 @@ public class EnumsController extends BaseController { public AjaxResult awardsAllList() { List enumEntityList = new ArrayList<>(); for (EAwards value : EAwards.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.AWARDS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -264,7 +255,7 @@ public class EnumsController extends BaseController { List enumEntityList = new ArrayList<>(); for (EGrade value : EGrade.values()) { if (value.getEnable() == EnableStatus.ENABLE.getValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.GRADE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -279,7 +270,7 @@ public class EnumsController extends BaseController { public AjaxResult signSource() { List enumEntityList = new ArrayList<>(); for (ESignSource value : ESignSource.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.SIGN_SOURCE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -292,8 +283,8 @@ public class EnumsController extends BaseController { @GetMapping("/sign-source-first-two") public AjaxResult signSourceFirstTwo() { List enumEntityList = new ArrayList<>(); - enumEntityList.add(new EnumEntity(ESignSource.MANAGE.getValue(), ESignSource.MANAGE.getLabel(), EnumsPrefixConstants.SIGN_SOURCE)); - enumEntityList.add(new EnumEntity(ESignSource.MEMBER.getValue(), ESignSource.MEMBER.getLabel(), EnumsPrefixConstants.SIGN_SOURCE)); + enumEntityList.add(new EnumEntity(ESignSource.MANAGE.getValue(), ESignSource.MANAGE.getLabel())); + enumEntityList.add(new EnumEntity(ESignSource.MEMBER.getValue(), ESignSource.MEMBER.getLabel())); return AjaxResult.success(enumEntityList); } @@ -306,7 +297,7 @@ public class EnumsController extends BaseController { public AjaxResult permissionType() { List enumEntityList = new ArrayList<>(); for (EPermissionType value : EPermissionType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.PERMISSION_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -320,7 +311,7 @@ public class EnumsController extends BaseController { public AjaxResult orderBusiness() { List enumEntityList = new ArrayList<>(); for (EOrderBusiness value : EOrderBusiness.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ORDER_BUSINESS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -334,7 +325,7 @@ public class EnumsController extends BaseController { public AjaxResult orderUpBusiness() { List enumEntityList = new ArrayList<>(); for (EOrderUpBusiness value : EOrderUpBusiness.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ORDER_UP_BUSINESS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -349,7 +340,7 @@ public class EnumsController extends BaseController { public AjaxResult batchType() { List enumEntityList = new ArrayList<>(); for (EBatchType value : EBatchType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.BATCH_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -363,7 +354,7 @@ public class EnumsController extends BaseController { public AjaxResult currencyType() { List enumEntityList = new ArrayList<>(); for (ECurrencyType value : ECurrencyType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.CURRENCY_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -377,7 +368,7 @@ public class EnumsController extends BaseController { public AjaxResult AchievementType() { List enumEntityList = new ArrayList<>(); for (EAchievementType value : EAchievementType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ACHIEVEMENT_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -392,7 +383,7 @@ public class EnumsController extends BaseController { List enumEntityList = new ArrayList<>(); for (EAchievementType value : EAchievementType.values()) { if (value.getValue() == EAchievementType.FIRST_PURCHASE.getValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ACHIEVEMENT_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -407,42 +398,32 @@ public class EnumsController extends BaseController { public AjaxResult algebra() { List enumEntityList = new ArrayList<>(); for (EAlgebra value : EAlgebra.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ALGEBRA)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } /** * 直推配置取值枚举 - * - * @author: zhang jing - * @date: 2023/6/2 16:32 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/take-value-type") public AjaxResult takeValueType() { List enumEntityList = new ArrayList<>(); for (ETakeValueType value : ETakeValueType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.TAKE_VALUE_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } /** * 专区枚举list - * - * @author: zhang jing - * @date: 2022/9/29 16:29 - * @param: [] - * @return: com.hzs.common.core.web.page.TableDataInfo **/ @GetMapping("/special-area") public AjaxResult specialArea() { List enumEntityList = new ArrayList<>(); for (ESpecialArea value : ESpecialArea.values()) { if (value.getEnable() == EnableStatus.ENABLE.getValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.SPECIAL_AREA)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -450,11 +431,6 @@ public class EnumsController extends BaseController { /** * 控制类型枚举 - * - * @author: zhang jing - * @date: 2024/6/24 10:47 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/authority-control-type") public AjaxResult authorityControlType() { @@ -467,11 +443,6 @@ public class EnumsController extends BaseController { /** * 地区类型枚举 - * - * @author: zhang jing - * @date: 2022/9/29 16:29 - * @param: [] - * @return: com.hzs.common.core.web.page.TableDataInfo **/ @GetMapping("/areaType") public AjaxResult areaType() { @@ -486,11 +457,6 @@ public class EnumsController extends BaseController { /** * 专区枚举-消费配置专用 - * - * @author: zhang jing - * @date: 2023/5/8 15:10 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/special-area-consume") public AjaxResult specialAreaConsume() { @@ -503,11 +469,6 @@ public class EnumsController extends BaseController { /** * 注水业绩枚举 - * - * @author: zhang jing - * @date: 2023/3/28 17:52 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/member-achieve") public AjaxResult memberAchieve() { @@ -520,11 +481,6 @@ public class EnumsController extends BaseController { /** * 注水方式枚举 - * - * @author: zhang jing - * @date: 2023/4/11 14:52 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/member-watertype") public AjaxResult watertype() { @@ -537,11 +493,6 @@ public class EnumsController extends BaseController { /** * 统计值枚举 - * - * @author: zhang jing - * @date: 2022/9/30 14:30 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult STATISTICAL_VALUE **/ @GetMapping("/statistical-value") public AjaxResult statisticalValue() { @@ -554,11 +505,6 @@ public class EnumsController extends BaseController { /** * 注册权限 - * - * @author: zhang jing - * @date: 2022/9/30 14:57 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/registration-authority") public AjaxResult registrationAuthority() { @@ -571,11 +517,6 @@ public class EnumsController extends BaseController { /** * 关系类型 - * - * @author: zhang jing - * @date: 2022/9/30 14:59 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/relation-type") public AjaxResult relationType() { @@ -588,11 +529,6 @@ public class EnumsController extends BaseController { /** * 极差类型 - * - * @author: zhang jing - * @date: 2022/9/30 15:18 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/range-type") public AjaxResult rangeType() { @@ -606,11 +542,6 @@ public class EnumsController extends BaseController { /** * 计算类型 - * - * @author: zhang jing - * @date: 2022/9/30 15:24 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/cal-type") public AjaxResult calType() { @@ -623,11 +554,6 @@ public class EnumsController extends BaseController { /** * 货币种类 - * - * @author: zhang jing - * @date: 2022/9/30 15:34 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/account") public AjaxResult account() { @@ -640,11 +566,6 @@ public class EnumsController extends BaseController { /** * 账户状态(会员登录账户) - * - * @author: zhang jing - * @date: 2022/9/30 15:38 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/account-status") public AjaxResult accountStatus() { @@ -657,11 +578,6 @@ public class EnumsController extends BaseController { /** * 活动类型 - * - * @author: zhang jing - * @date: 2022/9/30 15:40 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/activity-type") public AjaxResult activityType() { @@ -677,11 +593,6 @@ public class EnumsController extends BaseController { /** * 条码状态 - * - * @author: zhang jing - * @date: 2022/9/30 15:52 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/barcode-status") public AjaxResult barcodeStatus() { @@ -694,11 +605,6 @@ public class EnumsController extends BaseController { /** * 会员类型 - * - * @author: zhang jing - * @date: 2022/9/30 16:26 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/customerTypeList") public AjaxResult getECustomerTypeList() { @@ -1157,7 +1063,7 @@ public class EnumsController extends BaseController { List enumEntityList = new ArrayList<>(); for (EOrderType value : EOrderType.values()) { if (value.getEnable() == EYesNo.YES.getIntValue()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ORDER_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -1262,7 +1168,7 @@ public class EnumsController extends BaseController { */ @GetMapping("/bonus-country") public AjaxResult bonusCountry() { - List list = bonusItemsService.queryBonusItems(SecurityUtils.getPkCountry()); + List list = iBdBonusItemsService.queryBonusItems(SecurityUtils.getPkCountry()); List enumEntityList = new ArrayList<>(); for (BdBonusItemsExt bonusItemsExt : list) { @@ -1798,7 +1704,7 @@ public class EnumsController extends BaseController { pkCountry = SecurityUtils.getPkCountry(); } // 查询国家等级列表 - List gradeList = gradeService.queryGradeConfigByCondition(pkCountry); + List gradeList = iBdGradeService.queryGradeConfigByCondition(pkCountry); gradeList.sort(Comparator.comparing(BdGrade::getGradeValue)); List enumEntityList = new ArrayList<>(); @@ -1820,7 +1726,7 @@ public class EnumsController extends BaseController { pkCountry = SecurityUtils.getPkCountry(); } // 查询国家奖衔列表 - List awardList = awardsService.queryAwards(pkCountry); + List awardList = iBdAwardsService.queryAwards(pkCountry); List enumEntityList = new ArrayList<>(); for (BdAwards bdAwards : awardList) { @@ -1970,7 +1876,7 @@ public class EnumsController extends BaseController { //变更会员姓名 if (value.getValue() == EApprovalBusiness.CHANGE_NAME.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -1986,7 +1892,7 @@ public class EnumsController extends BaseController { //变更联系方式 } else if (value.getValue() == EApprovalBusiness.CHANGE_PHONE.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2002,7 +1908,7 @@ public class EnumsController extends BaseController { //重置会员密码 } else if (value.getValue() == EApprovalBusiness.RESET_LOGIN_PASSWORD.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2018,7 +1924,7 @@ public class EnumsController extends BaseController { //实名认证 } else if (value.getValue() == EApprovalBusiness.REAL_NAME_AUTHENTICATION.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2034,7 +1940,7 @@ public class EnumsController extends BaseController { //重置银行信息 } else if (value.getValue() == EApprovalBusiness.RESET_BANK.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2050,7 +1956,7 @@ public class EnumsController extends BaseController { //修改注册等级 } else if (value.getValue() == EApprovalBusiness.CHANGE_REGISTER_GRADE.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2059,7 +1965,7 @@ public class EnumsController extends BaseController { QueryWrapper queryWrapperGr = new QueryWrapper(); queryWrapperGr.eq("PK_COUNTRY", SecurityUtils.getPkCountry()); queryWrapperGr.orderByAsc("GRADE_VALUE"); - List grList = gradeService.list(queryWrapperGr); + List grList = iBdGradeService.list(queryWrapperGr); List enumEntityList1 = new ArrayList<>(); for (BdGrade gr : grList) { enumEntityList1.add(new EnumEntity(gr.getPkId(), gr.getGradeName(), EnumsPrefixConstants.KEY_GRADE)); @@ -2070,7 +1976,7 @@ public class EnumsController extends BaseController { //修改结算等级 } else if (value.getValue() == EApprovalBusiness.CHANGE_SETTLEMENT_GRADE.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2079,7 +1985,7 @@ public class EnumsController extends BaseController { QueryWrapper queryWrapperGr = new QueryWrapper(); queryWrapperGr.eq("PK_COUNTRY", SecurityUtils.getPkCountry()); queryWrapperGr.orderByAsc("GRADE_VALUE"); - List grList = gradeService.list(queryWrapperGr); + List grList = iBdGradeService.list(queryWrapperGr); List enumEntityList1 = new ArrayList<>(); for (BdGrade gr : grList) { enumEntityList1.add(new EnumEntity(gr.getPkId(), gr.getGradeName(), EnumsPrefixConstants.KEY_GRADE)); @@ -2090,7 +1996,7 @@ public class EnumsController extends BaseController { //修改奖衔 } else if (value.getValue() == EApprovalBusiness.CHANGE_AWARDS.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2101,7 +2007,7 @@ public class EnumsController extends BaseController { queryWrapperAw.eq("ENABLE_STATE", EnableStatus.ENABLE.getValue()); queryWrapperAw.orderByAsc("AWARDS_VALUE"); List enumEntityList1 = new ArrayList<>(); - List list = awardsService.list(queryWrapperAw); + List list = iBdAwardsService.list(queryWrapperAw); for (BdAwards ba : list) { enumEntityList1.add(new EnumEntity(ba.getPkId(), ba.getAwardsName(), EnumsPrefixConstants.AWARDS)); } @@ -2112,14 +2018,14 @@ public class EnumsController extends BaseController { } else if (value.getValue() == EApprovalBusiness.CHANGE_NATURAL_COUNTRY.getValue()) { //修改自然国家 queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } handleBusinessEnumVO.setBusinessType(value.getValue()); handleBusinessEnumVO.setEditTypeName(value.getLabel()); List enumEntityList1 = new ArrayList<>(); - List list = countryService.list(); + List list = iBdCountryService.list(); for (BdCountry value1 : list) { enumEntityList1.add(new EnumEntity(value1.getPkId(), value1.getName())); } @@ -2129,7 +2035,7 @@ public class EnumsController extends BaseController { //修改登录状态 } else if (value.getValue() == EApprovalBusiness.SIGN_IN_STATE.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2145,7 +2051,7 @@ public class EnumsController extends BaseController { //修改收益状态 } else if (value.getValue() == EApprovalBusiness.PROFIT_STATE.getValue()) { queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2162,7 +2068,7 @@ public class EnumsController extends BaseController { } else if (value.getValue() == EApprovalBusiness.WALLET_STATE.getValue()) { handleBusinessEnumVO.setButtonType(EButtonType.MULTIPLE_CHOICE.getValue()); queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2179,7 +2085,7 @@ public class EnumsController extends BaseController { } else if (value.getValue() == EApprovalBusiness.FREE_ASSESSMENT_STATE.getValue()) { handleBusinessEnumVO.setButtonType(EButtonType.MULTIPLE_CHOICE.getValue()); queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2195,7 +2101,7 @@ public class EnumsController extends BaseController { } else if (value.getValue() == EApprovalBusiness.IS_REGION.getValue()) { //是否收益区域 queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2211,7 +2117,7 @@ public class EnumsController extends BaseController { } else if (value.getValue() == EApprovalBusiness.IS_ACTIVATE.getValue()) { //是否激活 queryWrapper.eq("TYPE", value.getValue()); - BdServiceCharge bdServiceCharge = serviceChargeService.getOne(queryWrapper); + BdServiceCharge bdServiceCharge = iBdServiceChargeService.getOne(queryWrapper); if (StringUtils.isNotNull(bdServiceCharge)) { handleBusinessEnumVO.setPkAccount(bdServiceCharge.getPkAccount().intValue()); } @@ -2742,11 +2648,6 @@ public class EnumsController extends BaseController { /** * 结算方式枚举 - * - * @author: zhang jing - * @date: 2024/3/29 11:54 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/settle-Type") public AjaxResult settleType() { @@ -2818,11 +2719,6 @@ public class EnumsController extends BaseController { /** * 联创数据报表类型枚举 - * - * @author: zhang jing - * @date: 2025/2/27 10:46 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/sheetType") public AjaxResult sheetType() { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESignSource.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESignSource.java index e9a2b5fe..0dffb5c1 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESignSource.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESignSource.java @@ -5,11 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 签呈来源 - * @Author: jiang chao - * @Time: 2023/4/10 14:09 - * @Classname: EApprovalSource - * @PackageName: com.hzs.common.core.enums + * 签呈来源 */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java index a1f95558..842d1585 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java @@ -14,27 +14,27 @@ public enum ESpecialArea { /** * 注册专区 */ - REGISTER_AREA(1, "旧注册专区", 0, EnumsPrefixConstants.SPECIAL_AREA + "1", 3, EMenuDetail.REGISTER.getValue()), + REGISTER_AREA(1, "旧注册专区", 1, EnumsPrefixConstants.SPECIAL_AREA + "1", 3, EMenuDetail.REGISTER.getValue()), /** * 升级专区 */ - UPGRADE_AREA(2, "旧升级专区", 0, EnumsPrefixConstants.SPECIAL_AREA + "2", 4, EMenuDetail.UPGRADE.getValue()), + UPGRADE_AREA(2, "旧升级专区", 1, EnumsPrefixConstants.SPECIAL_AREA + "2", 4, EMenuDetail.UPGRADE.getValue()), /** * 复购专区 */ - REPURCHASE_AREA(3, "旧复购自营", 0, EnumsPrefixConstants.SPECIAL_AREA + "3", 5, EMenuDetail.REPURCHASE.getValue()), + REPURCHASE_AREA(3, "旧复购自营", 1, EnumsPrefixConstants.SPECIAL_AREA + "3", 5, EMenuDetail.REPURCHASE.getValue()), /** * 重消专区 */ - RESCISSION_AREA(10, "旧重消专区", 0, EnumsPrefixConstants.SPECIAL_AREA + "10", 8, EMenuDetail.REPEATED_CONSUMPTION.getValue()), + RESCISSION_AREA(10, "旧重消专区", 1, EnumsPrefixConstants.SPECIAL_AREA + "10", 8, EMenuDetail.REPEATED_CONSUMPTION.getValue()), /** * 直播专区 */ - LIVE_BROADCAST(14, "直播专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 14, 14, EMenuDetail.LIVE.getValue()), + LIVE_BROADCAST(14, "直播专区", 1, EnumsPrefixConstants.SPECIAL_AREA + 14, 14, EMenuDetail.LIVE.getValue()), /** * 新零售会员专区(注册) diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java index 279d0f3d..90179359 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java @@ -10,6 +10,7 @@ import lombok.Getter; @AllArgsConstructor @Getter public enum EUpgradeType { + /** * 1=自动升级 (奖衔),2=手动升级(等级奖衔),3=购买赠予(奖衔) 4=购买升级(等级前台报单、升级) 5=活动升级(等级) */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EnableStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EnableStatus.java index 9a0dc8c5..efe68c8e 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EnableStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EnableStatus.java @@ -5,11 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 启用状态 - * @Author: jiang chao - * @Time: 2023/1/4 15:32 - * @Classname: EnableStatus - * @PackageName: com.hzs.common.core.enums + * 启用状态 */ @AllArgsConstructor @Getter @@ -18,7 +14,7 @@ public enum EnableStatus { /** * 已启用 */ - ENABLE(0, "已启用", 0,EnumsPrefixConstants.ENABLE_STATUS + "0"), + ENABLE(0, "已启用", 0, EnumsPrefixConstants.ENABLE_STATUS + "0"), /** * 已禁用 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/web/domain/EnumEntity.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/web/domain/EnumEntity.java index da29c05b..2ffccebb 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/web/domain/EnumEntity.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/web/domain/EnumEntity.java @@ -8,8 +8,6 @@ import java.util.List; /** * 枚举统一返回实体 - * - * @author: jiiangchao */ @AllArgsConstructor @Data @@ -69,9 +67,9 @@ public class EnumEntity { /** * 需要翻译的构造函数 * - * @param value 值 - * @param label 标签 - * @param field 字段 + * @param value 值 + * @param label 标签 + * @param field 字段 * @param transactionKey 翻译健 */ public EnumEntity(int value, String label, String field, String transactionKey) { From 2d834a9aa1be35f6f1ddbf28c098d947f51f0ee0 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 8 Jul 2025 15:02:39 +0800 Subject: [PATCH 03/89] =?UTF-8?q?##=20=E7=AD=89=E7=BA=A7=E6=94=B9=E4=B8=BA?= =?UTF-8?q?6=E7=BA=A7=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hzs/common/core/enums/EGrade.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java index dda1d84a..333e5e68 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java @@ -40,24 +40,17 @@ public enum EGrade { YOU_KE(3, 40, "V2", 0, EnumsPrefixConstants.GRADE + "40", MemberFrameworkConstants.YOU_KE), /** - * 博羚店主 + * 店主 */ MAKER(4, 50, "V3", 0, EnumsPrefixConstants.GRADE + "50", MemberFrameworkConstants.MAKER), - /** - * 高级店主 - */ - VIP(5, 60, "V4", 0, EnumsPrefixConstants.GRADE + "60", MemberFrameworkConstants.VIP), - /** * 分公司 */ - S_VIP(6, 70, "V5", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.S_VIP), - + VIP(5, 60, "V4", 0, EnumsPrefixConstants.GRADE + "60", MemberFrameworkConstants.VIP), /** - * 总公司 + * 公司 */ - COMPANY(7, 80, "V6", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.COUNTY_AGENT), - + S_VIP(6, 70, "V5", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.S_VIP), ; From 9d68f6d7c81525b9004ffa39ce58bb22d5a8164d Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 8 Jul 2025 15:55:00 +0800 Subject: [PATCH 04/89] =?UTF-8?q?##=20=E7=AD=89=E7=BA=A7=E6=94=B9=E4=B8=BA?= =?UTF-8?q?7=E7=BA=A7=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hzs/common/core/enums/EGrade.java | 10 +++++++--- .../java/com/hzs/common/core/enums/ERangeAwards.java | 6 +----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java index 333e5e68..1fe9b580 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrade.java @@ -40,17 +40,21 @@ public enum EGrade { YOU_KE(3, 40, "V2", 0, EnumsPrefixConstants.GRADE + "40", MemberFrameworkConstants.YOU_KE), /** - * 店主 + * 博羚店主 */ MAKER(4, 50, "V3", 0, EnumsPrefixConstants.GRADE + "50", MemberFrameworkConstants.MAKER), /** - * 分公司 + * 高级店主 */ VIP(5, 60, "V4", 0, EnumsPrefixConstants.GRADE + "60", MemberFrameworkConstants.VIP), /** - * 公司 + * 分公司 */ S_VIP(6, 70, "V5", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.S_VIP), + /** + * 总公司 + */ + COMPANY(7, 80, "V6", 0, EnumsPrefixConstants.GRADE + "80", MemberFrameworkConstants.COUNTY_AGENT), ; diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeAwards.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeAwards.java index 1bc4f5ff..b5ae92a8 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeAwards.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ERangeAwards.java @@ -5,11 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 极差奖衔枚举 - * @Author: sui q - * @Time: 2022/9/1 17:39 - * @Classname: EAwards - * @PackageName: com.hzs.common.core.enums + * 极差奖衔枚举 */ @AllArgsConstructor @Getter From c8f78e8480993241f79cb6aa5ed79a9c8a4808ed Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 8 Jul 2025 16:49:30 +0800 Subject: [PATCH 05/89] =?UTF-8?q?##=20=E5=8E=BB=E6=8E=89=E7=A7=92=E7=BB=93?= =?UTF-8?q?=EF=BC=9B=E9=83=A8=E5=88=86=E5=9B=BD=E9=99=85=E5=8C=96=E5=A4=84?= =?UTF-8?q?=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/settle/IMemberSettleBonusApi.java | 3 - .../detail/ICuMemberServiceLogServiceApi.java | 32 -- .../com/hzs/third/mq/IDelayedMessageApi.java | 11 - .../hzs/third/mq/dto/DelayedMessageDTO.java | 6 +- .../com/hzs/third/mq/dto/RefundOrderDTO.java | 6 +- .../hzs/third/mq/dto/TransactionMqDTO.java | 51 -- .../manage/CuMemberSettleController.java | 14 - .../mapper/CuMemberRetailRangeMapper.java | 46 -- .../service/ICuMemberRetailRangeService.java | 38 -- .../achieve/service/ICuMemberTreeService.java | 25 - .../impl/CuMemberRetailRangeServiceImpl.java | 41 -- .../service/impl/CuMemberTreeServiceImpl.java | 18 - .../hzs/bonus/base/mapper/CuMemberMapper.java | 26 - .../bonus/base/service/ICuMemberService.java | 26 - .../service/impl/CuMemberServiceImpl.java | 22 - .../bonus/mapper/CuMemberBonusMapper.java | 1 - .../bonus/mapper/CuMemberRetailLogMapper.java | 19 - .../provider/MemberSettleBonusProvider.java | 29 - .../bonus/service/IBonusSettleService.java | 5 - .../bonus/service/ICuMemberBonusService.java | 9 - .../service/ICuMemberRetailLogService.java | 23 - .../service/impl/BonusSettleRangeHandle.java | 519 ------------------ .../service/impl/BonusSettleServiceImpl.java | 80 --- .../impl/CuMemberBonusServiceImpl.java | 8 - .../impl/CuMemberRetailLogServiceImpl.java | 38 -- .../detail/mapper/CuMemberAwardsMapper.java | 46 -- .../detail/mapper/CuMemberGradeMapper.java | 53 -- .../service/ICuMemberAwardsService.java | 29 - .../detail/service/ICuMemberGradeService.java | 54 -- .../impl/CuMemberAwardsServiceImpl.java | 257 --------- .../impl/CuMemberGradeServiceImpl.java | 58 -- ...derSecondActivateCompensationListener.java | 46 -- .../bonus/listener/SaOrderSecondListener.java | 62 --- .../bonus/order/mapper/BonusOrderMapper.java | 22 - .../order/service/IBonusOrderService.java | 15 - .../service/impl/BonusOrderServiceImpl.java | 16 - .../achieve/CuMemberRetailRangeMapper.xml | 359 +----------- .../mapper/bonus/base/CuMemberMapper.xml | 121 ---- .../bonus/bonus/CuMemberBonusMapper.xml | 29 +- .../bonus/bonus/CuMemberRetailLogMapper.xml | 15 - .../bonus/detail/CuMemberAwardsMapper.xml | 129 ----- .../bonus/detail/CuMemberGradeMapper.xml | 153 ------ .../mapper/bonus/order/BonusOrderMapper.xml | 133 ----- .../impl/CuMemberBusinessServiceImpl.java | 3 - .../mapper/CuMemberServiceLogMapper.java | 28 - .../provider/CuMemberServiceLogProvider.java | 24 - .../service/ICuMemberServiceLogService.java | 28 - .../impl/CuMemberServiceLogServiceImpl.java | 66 +-- .../impl/CuHandleBusinessServiceImpl.java | 4 - .../detail/CuMemberServiceLogMapper.xml | 67 --- .../service/impl/RetailOrderServiceImpl.java | 202 ------- .../service/impl/SaOrderServiceImpl.java | 48 -- .../product/mapper/BdSpecsTypeMapper.java | 8 +- .../product/service/IBdSpecsTypeService.java | 13 +- .../service/impl/BdSpecsTypeServiceImpl.java | 118 ++-- .../hzs/sale/wares/mapper/BdWaresMapper.java | 17 - .../sale/wares/service/IBdWaresService.java | 23 +- .../service/impl/BdWaresServiceImpl.java | 87 --- .../mapper/sale/product/BdSpecsTypeMapper.xml | 21 - .../mapper/sale/wares/BdWaresMapper.xml | 7 - .../base/mapper/BdTransactionMapper.java | 3 - .../impl/BdTransactionServiceImpl.java | 65 +-- .../core/constant/RabbitMqConstants.java | 38 -- .../domain/sale/classify/BdSpecsType.java | 8 - .../com/hzs/third/job/BonusSettleJob.java | 9 - .../mqcall/listener/ActivityListener.java | 7 +- .../mqcall/listener/TransactionListener.java | 120 ---- .../translate/config/TranslateConfig.java | 34 -- .../third/translate/dto/TranslateParam.java | 39 -- .../third/translate/dto/TranslateResult.java | 42 -- .../translate/dto/TranslateResultDetail.java | 25 - .../translate/service/ITranslateService.java | 17 - .../service/impl/TranslateServiceImpl.java | 86 --- 73 files changed, 84 insertions(+), 3866 deletions(-) delete mode 100644 bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/TransactionMqDTO.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRetailLogMapper.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberRetailLogService.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberRetailLogServiceImpl.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondActivateCompensationListener.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java delete mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberRetailLogMapper.xml delete mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml delete mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml delete mode 100644 bd-third/src/main/java/com/hzs/third/mqcall/listener/TransactionListener.java delete mode 100644 bd-third/src/main/java/com/hzs/third/translate/config/TranslateConfig.java delete mode 100644 bd-third/src/main/java/com/hzs/third/translate/dto/TranslateParam.java delete mode 100644 bd-third/src/main/java/com/hzs/third/translate/dto/TranslateResult.java delete mode 100644 bd-third/src/main/java/com/hzs/third/translate/dto/TranslateResultDetail.java delete mode 100644 bd-third/src/main/java/com/hzs/third/translate/service/ITranslateService.java delete mode 100644 bd-third/src/main/java/com/hzs/third/translate/service/impl/TranslateServiceImpl.java diff --git a/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java b/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java index 965c3a56..67a8bff8 100644 --- a/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java +++ b/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java @@ -40,7 +40,4 @@ public interface IMemberSettleBonusApi { **/ Boolean chargeBackSaOrder(SaOrder saOrder); - - void calculateCuMemberRetailRangeBonusBySaOrder(); - } diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberServiceLogServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberServiceLogServiceApi.java index 412dd054..8a845892 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberServiceLogServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberServiceLogServiceApi.java @@ -2,7 +2,6 @@ package com.hzs.member.detail; import com.hzs.common.core.domain.R; import com.hzs.common.domain.member.detail.CuMemberServiceLog; -import com.hzs.common.domain.member.detail.CuMemberServiceLogExt; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -50,37 +49,6 @@ public interface ICuMemberServiceLogServiceApi { */ R updateByBusinessNo(CuMemberServiceLog memberLog); - /** - * 根据业务单号查询业务日志 - **/ - R> selectCuMemberServiceLog(String businessNo); - - /** - * 查询指定会员政策币信息 - * - * @param pkMember 会员ID - * @return - */ - R queryPolicy(Long pkMember); - - /** - * @param pkMember 会员主键 pkMember - * @param approvalBusiness 类型 EApprovalBusiness - * @param approveStatus 提交签呈状态 EApproveStatus - * @return - */ - R queryCount(Long pkMember, Integer approvalBusiness, Integer approveStatus); - - /** - * 查询最新一条变动记录 - * - * @param pkMember 会员ID - * @param editType 业务类型 - * @param approveStatus 审核状态 - * @return - */ - R selectTopData(Long pkMember, int editType, int approveStatus); - /** * 查询激活操作数据 * diff --git a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/IDelayedMessageApi.java b/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/IDelayedMessageApi.java index e9a4100f..583fcb54 100644 --- a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/IDelayedMessageApi.java +++ b/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/IDelayedMessageApi.java @@ -3,21 +3,10 @@ package com.hzs.third.mq; import com.hzs.common.core.domain.R; import com.hzs.third.mq.dto.DelayedMessageDTO; -/** - * @Description: - * @Author: sui q - * @Time: 2023/3/9 15:21 - * @Classname: IDelayedMessage - * @PackageName: com.hzs.third.mq - */ public interface IDelayedMessageApi { /** * 发送延时队列消息 - * @param delayedMessageDTO 内容 - * @return: void - * @Author: sui q - * @Date: 2023/3/9 15:18 */ R sendDelayedMessage(DelayedMessageDTO delayedMessageDTO); } diff --git a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/DelayedMessageDTO.java b/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/DelayedMessageDTO.java index ac90e9cd..7bb6c528 100644 --- a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/DelayedMessageDTO.java +++ b/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/DelayedMessageDTO.java @@ -10,11 +10,7 @@ import java.util.Date; import java.util.List; /** - * @Description: 用于延时队列,删除redis缓存 - * @Author: sui q - * @Time: 2023/3/9 15:49 - * @Classname: DelayedMessageDTO - * @PackageName: com.hzs.third.mq.dto + * 用于延时队列,删除redis缓存 */ @Data @Builder diff --git a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/RefundOrderDTO.java b/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/RefundOrderDTO.java index e496ddb6..27986942 100644 --- a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/RefundOrderDTO.java +++ b/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/RefundOrderDTO.java @@ -8,11 +8,7 @@ import lombok.NoArgsConstructor; import java.io.Serializable; /** - * @Description: 在线支付订单退款DTO - * @Author: jiang chao - * @Time: 2023/9/12 14:15 - * @Classname: RefundDTO - * @PackageName: com.hzs.third.mq.dto + * 在线支付订单退款DTO */ @AllArgsConstructor @NoArgsConstructor diff --git a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/TransactionMqDTO.java b/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/TransactionMqDTO.java deleted file mode 100644 index 36fa0b10..00000000 --- a/bd-api/bd-api-third/src/main/java/com/hzs/third/mq/dto/TransactionMqDTO.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hzs.third.mq.dto; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * 国际化翻译DTO - */ -@AllArgsConstructor -@NoArgsConstructor -@Builder -@Data -public class TransactionMqDTO implements Serializable { - - private static final long serialVersionUID = -1069984921409482655L; - - /** - * 国际化翻译ID(需要操作的数据) -- MQ必填 - */ - private Integer pkId; - - /** - * 国际化翻译key值 - */ - private String key; - - /** - * 语言对应的列名 -- MQ必填,为翻译来源语言 - */ - private String column; - - /** - * 语言对应内容 -- MQ必填,为翻译来源语言内容 - */ - private String columnValue; - - /** - * 是否缓存(0=是,1=否) - */ - private Integer isCache; - - /** - * 目标语言apiKey(ELanguages中的apiKey) -- MQ使用,如果不传则翻译全部 - */ - private String toApiKey; - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java index ded360cf..f0ae7401 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java @@ -170,20 +170,6 @@ public class CuMemberSettleController extends BaseController { return AjaxResult.success(); } - /** - * 秒接结算业绩,仅用于测试 - * - * @return AjaxResult - */ - @GetMapping("/settle-second-bonus") - public AjaxResult settleSecondBonus(String orderCode) { - if (StringUtils.isEmpty(orderCode)) { - return AjaxResult.error(); - } - iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(orderCode); - return AjaxResult.success(); - } - /* * 查询奖金计算期数列表 **/ 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 8fcf1c5d..2f189373 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 @@ -5,7 +5,6 @@ import com.hzs.common.domain.member.achieve.CuMemberRetailRange; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import org.apache.ibatis.annotations.Param; -import java.math.BigDecimal; import java.util.List; /** @@ -25,56 +24,11 @@ public interface CuMemberRetailRangeMapper extends BaseMapper queryCuMemberRetailRangeParent(@Param("tableName") String tableName, @Param("saOrderExtList") List saOrderExtList); - /** - * 推荐推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体 - */ - List queryCuMemberRetailRangeExtByParent(@Param("tableName") String tableName, @Param("pkParent") Long pkParent); - - /** - * 查询推荐人伞下满足 - */ - List queryCuMemberRetailRangeEnoughAchieve(@Param("tableName") String tableName, @Param("pkParent") Long pkParent, @Param("achievePv") BigDecimal achievePv); - - /** - * 根据会员查询会员上的所有网体, 按照pkParent作为key,查询极差秒接表 - */ - List queryCuMemberSecondRangeParent(@Param("rangeTableName") String rangeTableName, - @Param("secondTableName") String secondTableName, - @Param("pkMember") Long pkMember); - - /** - * 秒结:推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体 - */ - List queryCuMemberSecondRangeExtByParent(@Param("rangeTableName") String rangeTableName, @Param("secondTableName") String secondTableName, @Param("pkMember") Long pkMember); - - /** - * 更新新零售极差秒接表 - */ - void mergeCuMemberSecondRange(@Param("secondTableName") String secondTableName, @Param("cuMemberRangeExtList") List cuMemberRangeExtList); - /** * 批量更新网体 */ 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 ceec0067..2636908d 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 @@ -5,7 +5,6 @@ import com.hzs.common.domain.member.achieve.CuMemberRetailRange; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.sale.ext.SaOrderExt; -import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; @@ -25,26 +24,6 @@ public interface ICuMemberRetailRangeService extends IService queryCuMemberRetailRangeParent(String tableName, List saOrderExtList); - /** - * 推荐推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体 - */ - List queryCuMemberRetailRangeExtByParent(String tableName, Long pkParent); - - /** - * 查询推荐人伞下满足 - */ - List queryCuMemberRetailRangeEnoughAchieve(String tableName, Long pkParent, BigDecimal achievePv); - - /** - * 根据会员查询会员上的所有网体, 按照pkParent作为key,查询极差秒接表 - */ - List queryCuMemberSecondRangeParent(String rangeTableName, String secondTableName, Long pkMember); - - /** - * 推荐推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体 - */ - List queryCuMemberSecondRangeExtByParent(String rangeTableName, String secondTableName, Long pkMember); - /** * 更新会员树的累计业绩 * @@ -53,21 +32,4 @@ public interface ICuMemberRetailRangeService extends IService cuMemberTreeMap); - /** - * 更新极差秒接表,用昨天的结算表 - */ - void mergeMemberSecondRetailRangeByRange(String rangeTableName, String secondRangeTableName, Long pkMember); - - /** - * 更新购买订单的等级 - */ - void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember, Integer isToday); - - /** - * 更新会员树的累计业绩 - * - * @param secondTableName 结算日期 - * @param cuMemberTreeMap 树 - */ - void updateCuMemberSecondRange(String secondTableName, Map cuMemberTreeMap); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java index 550c2391..0138bdd5 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java @@ -39,31 +39,6 @@ public interface ICuMemberTreeService extends IService { */ void createCuMemberTableSequence(String tableName, String tableNameSeq); - /** - * 查询会员结算表,查询出结算表中会员伞下左右区满足等级 - * - * @param settleTableName 结算表 - * @param placeDept 部门 - * @param awardsValue 奖衔对应的值 - * @param pkMember 会员 - */ - Boolean queryCuMemberSettlePlaceUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember); - - /** - * 查询会员结算表,查询出结算表中会员血缘关系满足等级 - * - * @param settleTableName 结算表 - * @param pkMember 会员 - */ - Boolean queryCuMemberSettleBloodUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember); - - /** - * 更新会员网体奖衔数据,更新月表、结算表 - * - * @param periodList 期间 - */ - void updateCuMemberSettleByPeriod(List periodList); - /** * 删除日表数据 * 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 0929006f..e6c4e058 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 @@ -10,7 +10,6 @@ import com.hzs.common.domain.sale.ext.SaOrderExt; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.math.BigDecimal; import java.util.*; /** @@ -51,52 +50,12 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl queryCuMemberRetailRangeExtByParent(String tableName, Long pkParent) { - return baseMapper.queryCuMemberRetailRangeExtByParent(tableName, pkParent); - } - - @Override - public List queryCuMemberRetailRangeEnoughAchieve(String tableName, Long pkParent, BigDecimal achievePv) { - return baseMapper.queryCuMemberRetailRangeEnoughAchieve(tableName, pkParent, achievePv); - } - - @Override - public List queryCuMemberSecondRangeParent(String rangeTableName, String secondTableName, Long pkMember) { - // 查询伞上 - return baseMapper.queryCuMemberSecondRangeParent(rangeTableName, secondTableName, pkMember); - } - - @Override - public List queryCuMemberSecondRangeExtByParent(String rangeTableName, String secondTableName, Long pkMember) { - return baseMapper.queryCuMemberSecondRangeExtByParent(rangeTableName, secondTableName, pkMember); - } - @Override public void updateCuMemberRetailRange(String settleTableName, Map cuMemberTreeMap) { List> treeList = setUpdCuMemberTreeLists(cuMemberTreeMap); treeList.forEach(list -> baseMapper.mergeCuMemberRetailRangeExt(settleTableName, list)); } - @Override - public void mergeMemberSecondRetailRangeByRange(String rangeTableName, String secondRangeTableName, Long pkMember) { - // 当前网体更新极差秒接表(血缘伞上) - baseMapper.mergeMemberSecondRetailRangeByRange(secondRangeTableName, pkMember); - // 昨天的结算表更新极差秒结(激活状态和等级) - baseMapper.mergeMemberSecondRetailRangeByRangeEnable(rangeTableName, secondRangeTableName, pkMember); - } - - @Override - public void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember, Integer isToday) { - baseMapper.mergeMemberRetailGradeByMember(rangeTableName, pkMember, isToday); - } - - @Override - public void updateCuMemberSecondRange(String secondTableName, Map cuMemberTreeMap) { - List> treeList = setUpdCuMemberTreeLists(cuMemberTreeMap); - treeList.forEach(list -> baseMapper.mergeCuMemberSecondRange(secondTableName, list)); - } - private List> 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/achieve/service/impl/CuMemberTreeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java index f61056b3..208f41de 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java @@ -118,24 +118,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl 0; - } - - @Override - public Boolean queryCuMemberSettleBloodUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember) { - return baseMapper.queryCuMemberSettleBloodUnderUmbrella(settleTableName, awardsValue, placeDept, pkMember) > 0; - } - - @Override - public void updateCuMemberSettleByPeriod(List periodList) { - periodList.forEach(period -> { - String updateTableName = TableNameConstants.CU_MEMBER_SETTLE + period; - baseMapper.updateCuMemberSettleByPeriod(updateTableName, period); - }); - } - private List getCuMemberSettleExtList(String settleTableName, Set serviceMemberSet) { List cuMemberSettleExtList = new ArrayList<>(); if (serviceMemberSet.size() > 0) { 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 6d0f01c1..50fae8e2 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 @@ -2,13 +2,9 @@ package com.hzs.bonus.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.base.CuMember; -import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.ext.CuMemberExt; import org.apache.ibatis.annotations.Param; -import java.util.List; - /** * 会员 Mapper 接口 */ @@ -23,26 +19,4 @@ public interface CuMemberMapper extends BaseMapper { */ CuMemberExt queryLoginMember(@Param("memberCode") String memberCode, @Param("pkMember") Long pkMember); - /** - * 更新会员奖衔根据临时表 - */ - Integer updateCuMemberByPeriod(Integer period); - - /** - * 更新会员奖衔根据临时表 - * - * @param cuMemberAwardsList 修改奖衔的会员 - */ - Integer updateCuMemberRetailRangeByList(@Param("cuMemberAwardsList") List cuMemberAwardsList, - @Param("period") Integer period, - @Param("awardType") Integer awardType); - - /** - * 更新会员奖衔根据临时表 - * - * @param cuMemberGradeList 修改奖衔的会员 - */ - Integer updateCuMemberMinGradeByList(@Param("cuMemberGradeList") List cuMemberGradeList, @Param("period") Integer period); - - } 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 e6d8260a..8c823474 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 @@ -2,12 +2,7 @@ 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 com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.ext.CuMemberExt; -import com.hzs.common.domain.member.ext.CuMemberSettleExt; - -import java.util.List; /** * 会员 服务类 @@ -22,25 +17,4 @@ public interface ICuMemberService extends IService { */ CuMemberExt getMemberByCode(String memberCode); - /** - * 更新会员奖衔根据临时表 - * - * @param enoughAwardsMember 修改奖衔的会员 - */ - void updateCuMemberByPeriod(List enoughAwardsMember, Integer period); - - /** - * 更新会员奖衔根据临时表 - * - * @param cuMemberGradeList 修改奖衔的会员 - */ - void updateCuMemberMinGradeByList(List cuMemberGradeList, Integer period); - - /** - * 更新会员奖衔根据临时表 - * - * @param cuMemberAwardsList 修改奖衔的会员 - */ - void updateCuMemberMinAwardsByList(List cuMemberAwardsList, Integer period); - } 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 ed5c4996..3c459067 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 @@ -2,17 +2,11 @@ package com.hzs.bonus.base.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.bonus.base.service.*; -import com.hzs.common.core.enums.*; import com.hzs.common.domain.member.base.*; -import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.ext.CuMemberExt; -import com.hzs.common.domain.member.ext.CuMemberSettleExt; import com.hzs.bonus.base.mapper.CuMemberMapper; import org.springframework.stereotype.Service; -import java.util.*; - /** * 会员 服务实现类 */ @@ -24,20 +18,4 @@ public class CuMemberServiceImpl extends ServiceImpl i return baseMapper.queryLoginMember(memberCode, null); } - @Override - public void updateCuMemberByPeriod(List enoughAwardsMember, Integer period) { - baseMapper.updateCuMemberByPeriod(period); - } - - @Override - public void updateCuMemberMinGradeByList(List cuMemberGradeList, Integer period) { - baseMapper.updateCuMemberMinGradeByList(cuMemberGradeList, period); - } - - @Override - public void updateCuMemberMinAwardsByList(List cuMemberAwardsList, Integer period) { - baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue()); - baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue()); - } - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java index 6b9d96aa..45cdb0f8 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java @@ -82,5 +82,4 @@ public interface CuMemberBonusMapper extends BaseMapper { */ void mergeBackRangeBonusIncome(@Param("pkOrder") Long pkOrder, @Param("bonusValue") Integer bonusValue); - void recalculateTeamNewBoxNum(@Param("pkId") Long pkId, @Param("retailsTableName") String retailsTableName); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRetailLogMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRetailLogMapper.java deleted file mode 100644 index fed3aac8..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRetailLogMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hzs.bonus.bonus.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hzs.common.domain.member.bonus.CuMemberRetailLog; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 秒接日志记录表 Mapper 接口 - */ -public interface CuMemberRetailLogMapper extends BaseMapper { - - /* - * 更新会员日志 - **/ - void updateCuMemberRetailLogByList(@Param("cuMemberRetailLogs") List cuMemberRetailLogs); - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java index ec2271ab..1529e4dc 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java @@ -3,22 +3,17 @@ package com.hzs.bonus.bonus.provider; import com.hzs.bonus.achieve.service.ICuMemberAchieveService; import com.hzs.bonus.achieve.service.ICuMemberMonthAchieveService; import com.hzs.bonus.bonus.service.IBonusGrantService; -import com.hzs.bonus.bonus.service.IBonusSettleService; import com.hzs.bonus.bonus.service.ICuMemberBonusService; -import com.hzs.bonus.bonus.service.ICuMemberRetailLogService; import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.domain.R; import com.hzs.common.core.utils.DateUtils; -import com.hzs.common.domain.member.bonus.CuMemberRetailLog; import com.hzs.common.domain.sale.order.SaOrder; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Autowired; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; import java.util.Date; -import java.util.List; /** * 奖金计算 @@ -30,15 +25,11 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi { @Autowired private ICuMemberMonthAchieveService iCuMemberMonthAchieveService; @Autowired - private IBonusSettleService iBonusSettleService; - @Autowired private IBonusGrantService iBonusGrantService; @Autowired private ICuMemberBonusService iCuMemberBonusService; @Autowired private ICuMemberAchieveService iCuMemberAchieveService; - @Autowired - private ICuMemberRetailLogService iCuMemberRetailLogService; @Override public R autoCalculateBonus(Date settleDate) { @@ -97,24 +88,4 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi { return iCuMemberAchieveService.chargeBackSaOrder(saOrder); } - @Override - public void calculateCuMemberRetailRangeBonusBySaOrder() { - List cuMemberRetailLogs = iCuMemberRetailLogService.queryCuMemberRetailLog(); - if (cuMemberRetailLogs.size() > 0) { - List successLogList = new ArrayList<>(); - try { - for (CuMemberRetailLog cuMemberRetailLog : cuMemberRetailLogs) { - iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(cuMemberRetailLog.getOrderCode()); - successLogList.add(cuMemberRetailLog); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (successLogList.size() > 0) { - iCuMemberRetailLogService.updateCuMemberRetailLogByList(successLogList); - } - } - } - } - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java index 1c436461..90d35f1c 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java @@ -17,9 +17,4 @@ public interface IBonusSettleService { */ void calculateCuMemberBonus(String date, List saOrderExtList); - /** - * 根据订单计算新零售奖金 - */ - void calculateCuMemberRetailRangeBonusBySaOrder(String orderCode); - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java index 4590c667..f686a25d 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java @@ -2,14 +2,12 @@ package com.hzs.bonus.bonus.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.bonus.bonus.param.BonusParam; -import com.hzs.bonus.bonus.vo.MemberBonusVO; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.bonus.CuMemberBonus; import com.hzs.common.domain.member.ext.CuMemberBonusExt; import java.util.Date; import java.util.List; -import java.util.Map; import java.util.Set; /** @@ -146,11 +144,4 @@ public interface ICuMemberBonusService extends IService { CuMemberBonusExt initCuMemberBonus(); - /** - * 用户激活后会抛出MQ - * 在此需要补偿该用户的当日秒结的团队新增 - * - * @param pkIdList - */ - void recalculateTeamNewBoxNum(List pkIdList); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberRetailLogService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberRetailLogService.java deleted file mode 100644 index 2c7b76f6..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberRetailLogService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.hzs.bonus.bonus.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.hzs.common.domain.member.bonus.CuMemberRetailLog; - -import java.util.List; - -/** - * 秒接日志记录表 服务类 - */ -public interface ICuMemberRetailLogService extends IService { - - /* - * 查询24小时之内失败的记录,重试 - **/ - List queryCuMemberRetailLog(); - - /* - * 更新会员日志 - **/ - void updateCuMemberRetailLogByList(List cuMemberRetailLogs); - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index d235f025..c39bcc5f 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -1,11 +1,7 @@ package com.hzs.bonus.bonus.service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; -import com.hzs.bonus.base.service.ICuMemberService; import com.hzs.bonus.bonus.vo.BonusRecordDetailVO; -import com.hzs.bonus.detail.service.ICuMemberAwardsService; -import com.hzs.bonus.detail.service.ICuMemberGradeService; import com.hzs.bonus.order.service.IBonusOrderService; import com.hzs.common.core.constant.MagicNumberConstants; import com.hzs.common.core.constant.RetailConstants; @@ -17,12 +13,10 @@ import com.hzs.common.domain.bonus.BdBonusDeduct; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.bonus.*; import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderWaresExt; import com.hzs.common.domain.sale.order.SaOrder; -import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.domain.system.config.BdGrade; import com.hzs.member.detail.ICuMemberServiceLogServiceApi; import com.hzs.system.config.dto.BonusConfigDTO; @@ -46,311 +40,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { @Autowired private ICuMemberRetailRangeService iCuMemberRetailRangeService; @Autowired - private ICuMemberAwardsService iCuMemberAwardsService; - @Autowired - private ICuMemberGradeService iCuMemberGradeService; - @Autowired - private ICuMemberService iCuMemberService; - @Autowired private IBonusOrderService iBonusOrderService; @DubboReference ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; - /** - * 秒结: - * 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖) - */ - List calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, - String secondRangeTableName, int beforePeriod, int currentPeriod, - Map cuMemberBonusMap, List cuMemberBonusDetailList) { - // 会员级差表 - String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod; - // 更新极差秒接表,用昨天的结算表(血缘伞上) - iCuMemberRetailRangeService.mergeMemberSecondRetailRangeByRange(rangeTableName, secondRangeTableName, saOrderExt.getPkMember()); -// // 处理会员等级(查询会员最新手动升级记录,更新秒结表会员等级小于手动升级的会员等级) -// // TODO new 秒结只影响上面,更新等级应该只更新血缘上就可以,不需要全网更新 -- 是否需要修改??? -// iCuMemberGradeService.updateCuMemberGradeSecond(secondRangeTableName, currentPeriod); - - // 按照血缘,查询该会员血缘伞上(昨天日结表累计值 + 今天秒结表新増值) - List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember()); - - // 会员结算map(key:会员ID,value:结算扩展) - Map memberRangeExtMap = new HashMap<>(); - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { - if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt); - } - } - - // 等级map(key:等级值,value:等级对象) - Map gradeMap = new HashMap<>(); - // 等级列表 - List retaiGradeList = bonusConfigDTO.getRetaiGradeList(); - for (BdGrade bdGrade : retaiGradeList) { - gradeMap.put(bdGrade.getGradeValue(), bdGrade); - } - - // 当期的手动激活的记录列表 - Map activateMap = this.getActivateMap(saOrderExt.getPayTime()); - - // 计算自消费奖衔 - CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - // 先算等级 注册、升级计算等级 - // 订单指定产品盒数 - int boxNum = 0; - for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { - if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) { - boxNum += saOrderItems.getWaresQuantity(); - } - } - saOrderExt.setBoxNum(boxNum); - - // 订单业绩 - BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); - // 注册、升级、复购、重消,盒数、业绩算个人累计数据(盒数、业绩) - sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum); - sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum); - sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() + boxNum); - sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve)); - sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve)); - sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve)); - - calculateRetailRangeGradeAwards(memberRangeExtMap, saOrderExt, boxNum, activateMap); - - // 奖金处理 - List cuMemberBonusRangeList = new ArrayList<>(); - if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() - || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() - ) { - // 注册、升级订单,计算奖金: 直推级差收益 + 平级收益 - for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { - if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) { - // 指定盒数商品 - // 计算直推级差收益 + 平级收益 - cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt)); - } - } - } - - // 更新秒表结会员数据 - if (memberRetailRangeExtList.size() > 0) { - iCuMemberRetailRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap); - } - return cuMemberBonusRangeList; - } - - /** - * 撤单秒结:实时计算撤单数据(业绩、盒数、等级、奖衔、日奖) - */ - void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, - String secondRangeTableName, int beforePeriod, int currentPeriod) { - // 当天的撤单 - List memberRetailRangeExtList; - String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod; - - if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) { - // 当天撤单 - // 实时网体查询血缘伞上会员,更新秒结表等级、奖衔 - iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember(), EYesNo.YES.getIntValue()); - // 恢复秒结表奖衔 - iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod, EYesNo.YES.getIntValue()); - // 查询 昨天日结 + 今天秒结 血缘伞上+直推 - memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember()); - } else { - // 非当天撤单 - rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + currentPeriod; - List retailOrderList = new ArrayList<>(); - retailOrderList.add(saOrderExt); - // 实时网体查询血缘上会员,更新订单支付日结表等级、奖衔 - iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember(), EYesNo.NO.getIntValue()); - // 恢复日结表奖衔 - iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod, EYesNo.NO.getIntValue()); - // 查询 订单下单日结 血缘上会员结算数据 - memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); - } - - // 会员结算map(key:会员ID,value:结算扩展) - Map memberRangeExtMap = new HashMap<>(); - - // 团队升级等级map(key:等级值,value:等级对象) - Map retailTeamGradeMap = new TreeMap<>(); - // 等级map(key:等级ID,value:等级对象) - Map gradeIdMap = new HashMap<>(); - // 等级列表 - List retailGradeList = bonusConfigDTO.getRetaiGradeList(); - // 等级 - for (BdGrade bdGrade : retailGradeList) { - if (bdGrade.getBoxTotal() > 0) { - retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade); - } - gradeIdMap.put(bdGrade.getPkId(), bdGrade); - } - - // 奖衔map(key:奖衔值,value:奖衔对象) - Map retailAwardsMap = new HashMap<>(); - List awardsList = bonusConfigDTO.getAwardsList(); - awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards)); - - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { - if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt); - } - } - - // 计算自消费奖衔 - CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - // 先算等级 注册、升级计算等级 - int boxNum = 0; - for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { - if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) { - boxNum += saOrderItems.getWaresQuantity(); - } - } - saOrderExt.setBoxNum(boxNum); - - // 订单业绩 - BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); - // 复购、重消,盒数、业绩算个人累计数据(盒数、业绩) - sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum); - sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum); - sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() - boxNum); - sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve)); - sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve)); - sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve)); - - // 会员等级map - Map cuMemberGradeMap = new HashMap<>(); - // 会员奖衔map - Map cuMemberAwardsMap = new HashMap<>(); - // 会员分红奖衔map - Map cuMemberShareAwardsMap = new HashMap<>(); - // 计算自己等级、奖衔等 - calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, - cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, sourceMemberRangeExt); - // 计算团队业绩、盒数,计算等级、奖衔 - List cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, - secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap); - cuMemberRetailRangeExtList.add(sourceMemberRangeExt); - - // 查询期间的等级 - List memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod); - // 查询最大的手动奖衔 - List cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList); - if (cuMemberGradeList1.size() > 0) { - Map memberGradeMap = new HashMap<>(); - for (CuMemberGrade cuMemberGrade : cuMemberGradeList1) { - cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade); - memberGradeMap.put(cuMemberGrade.getPkMember(), cuMemberGrade); - } - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { - if (memberGradeMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - CuMemberGrade cuMemberGrade = memberGradeMap.get(cuMemberRetailRangeExt.getPkMember()); - if (cuMemberRetailRangeExt.getPkGrade() < cuMemberGrade.getNewLevel()) { - cuMemberRetailRangeExt.setPkGrade(cuMemberGrade.getNewLevel()); - BdGrade bdGrade = gradeIdMap.get(cuMemberGrade.getNewLevel()); - cuMemberRetailRangeExt.setGradeValue(bdGrade.getGradeValue()); - } - BdGrade bdGrade = gradeIdMap.get(cuMemberRetailRangeExt.getPkGrade()); - if (bdGrade != null && bdGrade.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 11) { - // 如果是合伙人,奖衔肯定得有,不能置为无 - cuMemberRetailRangeExt.setPkAwards(11); - } - } - } - } - if (memberGradeList.size() > 0) { - List cuMemberGradeList = new ArrayList<>(); - for (CuMemberGrade cuMemberGrade : memberGradeList) { - String key = cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(); - if (!cuMemberGradeMap.containsKey(key)) { - CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberGrade.getPkMember()); - if (cuMemberGrade.getOldLevel() < cuMemberRetailRangeExt.getPkGrade()) { - cuMemberRetailRangeExt.setPkGrade(cuMemberGrade.getOldLevel()); - } - cuMemberGrade.setNewLevel(cuMemberGrade.getOldLevel()); - cuMemberGradeList.add(cuMemberGrade); - } - } - if (cuMemberGradeList.size() > 0) { - // 删除等级 - iCuMemberGradeService.deleteCuMemberGrade(cuMemberGradeList, currentPeriod); - // 批量更新会员等级 - iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod); - } - } - // 当期的所有奖衔升级记录 - List memberAwardsList = iCuMemberAwardsService.queryCuMemberAwards(cuMemberRetailRangeExtList, currentPeriod); - if (memberAwardsList.size() > 0) { - // 当月奖衔升级记录 - List pkAwardsList = memberAwardsList.stream().filter(tmpData -> tmpData.getAwardType() == EAwardsType.RANGE_TYPE.getValue()).collect(Collectors.toList()); - // 分红奖衔升级记录 - List pkShareAwardsList = memberAwardsList.stream().filter(tmpData -> tmpData.getAwardType() == EAwardsType.SHARE_TYPE.getValue()).collect(Collectors.toList()); - - List cuMemberAwardsList = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(pkAwardsList)) { - for (CuMemberAwards cuMemberAwards : pkAwardsList) { - String key = cuMemberAwards.getPkMember() + "_" + cuMemberAwards.getNewLevel(); - if (!cuMemberAwardsMap.containsKey(key)) { - CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberAwards.getPkMember()); - if (cuMemberAwards.getOldLevel() < cuMemberRetailRangeExt.getPkAwards()) { - cuMemberRetailRangeExt.setPkAwards(cuMemberAwards.getOldLevel()); - } - if (cuMemberRetailRangeExt.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 11) { - // 如果是合伙人,奖衔肯定得有,不能置为无 - cuMemberRetailRangeExt.setPkAwards(11); - continue; - } - cuMemberAwards.setNewLevel(cuMemberAwards.getOldLevel()); - cuMemberAwardsList.add(cuMemberAwards); - } - } - } - if (CollectionUtil.isNotEmpty(pkShareAwardsList)) { - for (CuMemberAwards cuMemberAwards : pkShareAwardsList) { - String key = cuMemberAwards.getPkMember() + "_" + cuMemberAwards.getNewLevel(); - if (!cuMemberShareAwardsMap.containsKey(key)) { - CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberAwards.getPkMember()); - if (cuMemberAwards.getOldLevel() < cuMemberRetailRangeExt.getPkShareAwards()) { - cuMemberRetailRangeExt.setPkShareAwards(cuMemberAwards.getOldLevel()); - } - cuMemberAwards.setNewLevel(cuMemberAwards.getOldLevel()); - cuMemberAwardsList.add(cuMemberAwards); - } - } - } - - // 处理等级、奖衔 - if (cuMemberAwardsList.size() > 0) { - // 删除会员奖衔记录 - iCuMemberAwardsService.deleteCuMemberAwards(cuMemberAwardsList, currentPeriod); - // 更新会员表奖衔数据 - iCuMemberService.updateCuMemberMinAwardsByList(cuMemberAwardsList, currentPeriod); - } - } - // 处理业绩 - if (memberRangeExtMap.size() > 0) { - if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) { - iCuMemberRetailRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap); - } else { - iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap); - } - } - } - - private CuMemberGrade getCuMemberGrade(int currentPeriod, CuMemberRetailRangeExt sourceMemberRangeExt, BdGrade bdGrade) { - CuMemberGrade cuMemberGrade = CuMemberGrade.builder() - .pkMember(sourceMemberRangeExt.getPkMember()) - .period(currentPeriod) - .oldLevel(sourceMemberRangeExt.getPkGrade()) - .newLevel(bdGrade.getPkId()) - .upType(EUpgradeType.AUTO_UPGRADE.getValue()) - .build(); - cuMemberGrade.setPkCreator(MagicNumberConstants.PK_ADMIN); - cuMemberGrade.setPkCountry(sourceMemberRangeExt.getPkSettleCountry()); - return cuMemberGrade; - } - /** * 日结: * 计算新零售团队的奖金,首购级差、复购级差 @@ -516,198 +210,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return cuMemberAwardsList; } - /** - * 计算团队极差奖衔 - */ - public List calculateRetailBackRangeGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, - Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName, Integer boxNum, - Map cuMemberGradeMap, Map cuMemberAwardsMap, Map cuMemberShareAwardsMap) { - List cuMemberRetailRangeExtList = new ArrayList<>(); - // 订单会员 - CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - // 订单会员的推荐人 - CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent()); - - BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); - BigDecimal orderAmount = saOrderExt.getOrderAmount(); - while (targetMemberRangeExt != null) { - // 激活的账号才能累计业绩和盒数(有注册、升级订单) - if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) { - // 累计业绩 - targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve)); - targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve)); - targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve)); - // 累计金额 - targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount)); - targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount)); - targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount)); - // 累计盒数 - targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum); - targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum); - targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() - boxNum); - // 计算等级 - calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, - cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, targetMemberRangeExt); - cuMemberRetailRangeExtList.add(targetMemberRangeExt); - } - // 计算等级 - targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent()); - } - return cuMemberRetailRangeExtList; - } - - private void calculateBackGrade(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, - Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName, - Map cuMemberGradeMap, Map cuMemberAwardsMap, Map cuMemberShareAwardsMap, - CuMemberRetailRangeExt targetMemberRangeExt) { - // 遍历团队等级map(V4,V5) - for (Integer gradeValue : retailTeamGradeMap.keySet()) { - BdGrade bdGrade = retailTeamGradeMap.get(gradeValue); - - if (bdGrade.getBoxTotal() <= ( - targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - )) { - // 验证小区,计算小区累计盒数 查询伞下会员 - List cuMemberRangeExtList; - if (secondRangeTableName != null) { - // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); - } else { - // 昨日结算表,查询订单会员直推数据 - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); - } - - // new 新逻辑确认:注水 2 个虚拟区,自己消费 1 个虚拟区,伞下直推,所有的最大 - // 大区盒数(默认为自己累计消费盒数) - int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum(); - if (targetMemberRangeExt.getBigBoxNum() > bigBoxNum) { - // 注水大区如果大则使用注水盒数为大区 - bigBoxNum = targetMemberRangeExt.getBigBoxNum(); - } - if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) { - // 注水小区如果大则使用注水盒数为大区 - bigBoxNum = targetMemberRangeExt.getSmallBoxNum(); - } - // 秒结补全直推数据,此处秒结和日结可以使用同一逻辑 - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); - } - // 伞下团队累计盒数 + 自己消费盒数 - int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum(); - if (areaBoxNum > bigBoxNum) { - // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 - bigBoxNum = areaBoxNum; - } - } - - // 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数) - int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum; - if (smallBoxNum >= bdGrade.getBoxSmallTotal()) { - // 小区盒数 大于等于 升级小区盒数 - CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade); - cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade); - targetMemberRangeExt.setGradeValue(bdGrade.getGradeValue()); - targetMemberRangeExt.setPkGrade(bdGrade.getPkId()); - targetMemberRangeExt.setGradeName(bdGrade.getGradeName()); - } - } - } - // 计算奖衔(荣誉级别) - while (true) { - int awardsValue = targetMemberRangeExt.getAwardsValue() + 5; - if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { - // 等级达到V5 并且 存在下个奖衔,判断是否能升奖衔 - BdAwards bdAwards = retailAwardsMap.get(awardsValue); - // 先验证累计业绩 - // new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩 - if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { - // 累计业绩足够,即可升奖衔 - CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()); - cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); - targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); - targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); - targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); - continue; - } - } - break; - } - - // 计算分红奖衔 - while (true) { - // 当月奖衔值 + 5,获取下一个奖衔值 - int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; - if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { - BdAwards bdAwards = retailAwardsMap.get(awardsValue); - // 先验证累计业绩 - if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { - // 验证小区,计算小区业绩(拉取直推会员数据) - List cuMemberRangeExtList; - if (secondRangeTableName != null) { - // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); - } else { - // 昨日结算表,查询订单会员直推数据 - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); - } - // 本人月消费业绩(默认为大区) - BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); - } - // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 - BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); - if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { - // 月累计业绩 > 大区业绩,则月累计就成为大区了 - consumeBigPv = consumePv; - } - } - - // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩 - BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); - if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { - // 小区业绩 >= 小区考核业绩 - if (bdAwards.getPlaceDeptNum() > 0) { - // 验证是否有多个区满足业绩 - List cuMemberRetailRangeExtList; - if (secondRangeTableName != null) { - // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 - cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); - } else { - // 昨日结算表,查询订单会员直推数据 - cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); - } - - int enoughNum = 0; - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { - if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); - } - if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) { - // 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1 - enoughNum += 1; - } - } - if (bdAwards.getPlaceDeptNum() > enoughNum) { - break; - } - } - CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue()); - cuMemberShareAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); - targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); - targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); - continue; - } - } - } - break; - } - } - /** * 计算直推级差收益 */ @@ -811,27 +313,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return cuMemberBonusRange; } - private CuMemberAwards getCuMemberRetailAwards(CuMemberRetailRangeExt sourceRangeExt, Integer period, - SaOrderExt saOrderExt, BdAwards bdRangeAwards, Integer awardType) { - CuMemberAwards cuMemberAwards = CuMemberAwards.builder() - .pkMember(sourceRangeExt.getPkMember()) - .period(period) - .upType(EUpgradeType.AUTO_UPGRADE.getValue()) - .awardType(awardType) - // 原等级 - .oldLevel(sourceRangeExt.getPkAwards()) - .newLevel(bdRangeAwards.getPkId()) - // 默认不免考 - .purchaseStatus(EYesNo.NO.getIntValue()) - .pkOrder(saOrderExt.getPkId()) - .systemType(2) - .build(); - cuMemberAwards.setPkCreator(MagicNumberConstants.PK_ADMIN); - cuMemberAwards.setPkCountry(saOrderExt.getPkCountry()); - cuMemberAwards.setCreationTime(saOrderExt.getPayTime()); - return cuMemberAwards; - } - /** * 获取手动激活map * 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 fcac2788..0a5b1c6d 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,12 +1,8 @@ package com.hzs.bonus.bonus.service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService; import com.hzs.bonus.bonus.service.*; import com.hzs.bonus.bonus.vo.BonusRecordDetailVO; -import com.hzs.bonus.order.service.IBonusOrderService; -import com.hzs.common.core.constant.MagicNumberConstants; -import com.hzs.common.core.constant.TableNameConstants; import com.hzs.common.core.enums.*; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.member.bonus.*; @@ -32,8 +28,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { @DubboReference IBonusItemsServiceApi iBonusItemsServiceApi; - @Autowired - private IBonusOrderService iBonusOrderService; @Autowired private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @Autowired @@ -81,22 +75,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { this.cuMemberBonusService = cuMemberBonusService; } - /** - * 保存会员奖金 - * - * @param cuMemberBonusMap 奖金map - */ - protected void saveCuMemberBonus(int period, String settleDate, Map cuMemberBonusMap) { - // 保存奖金 - List cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap); - if (cuMemberBonusList.size() > 0) { - // 插入奖金主表 - cuMemberBonusService.insertOrUpdateCuMemberBonus(cuMemberBonusList); - List cuMemberBonuses = cuMemberBonusService.queryCuMemberBonus(period, cuMemberBonusList); - cuMemberBonuses.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus)); - } - } - @Override @Transactional(rollbackFor = Exception.class) public void calculateCuMemberBonus(String settleDate, List saOrderExtList) { @@ -130,64 +108,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { } } - @Override - public void calculateCuMemberRetailRangeBonusBySaOrder(String orderCode) { - // 查询奖金参数 - BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData(); - // 需要处理的订单 - List retailOrderList = iBonusOrderService.queryRetailSaOrderByDay(DateUtils.beforeDate(6, ChronoUnit.DAYS), DateUtils.afterDate(1, ChronoUnit.DAYS), orderCode); - - if (CollectionUtil.isNotEmpty(retailOrderList)) { - // 会员奖金map - Map cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM); - // 订单数据 - SaOrderExt saOrderExt = retailOrderList.get(0); - - // 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据 - // 今天结算期数 - String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime()); - int currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); - // 昨天结算期数 - String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, saOrderExt.getPayTime())); - int beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId(); - // 秒结表名 - String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod; - - if (saOrderExt.getDelFlag() == EYesNo.YES.getIntValue()) { - // 订单下单处理(正向) - // 会员奖金明细 - List cuMemberBonusDetailList = new ArrayList<>(); - // 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖) - List cuMemberBonusRangeList = bonusSettleRangeHandle.calculateCuMemberRetailRangeBonusBySecond(settleDate, saOrderExt, bonusConfigDTO, - secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList); - saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap); - - Set memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(currentPeriod); - if (cuMemberBonusRangeList.size() > 0) { - cuMemberBonusRangeList.forEach(cuMemberBonusRange -> - cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId())); - cuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet); - } - if (cuMemberBonusDetailList.size() > 0) { - cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> - cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId())); - cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet); - } - } else { - // 订单撤单处理(逆向) - if (!DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) { - settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)); - currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); - } - // 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖) - bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO, - secondRangeTableName, beforePeriod, currentPeriod); - // 处理收益 - cuMemberBonusService.mergeBackMemberBonusIncome(saOrderExt.getPkId()); - } - } - } - /** * 计算每天的奖金入库 * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index 66d4d44e..70984f98 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -570,14 +570,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl pkIdList) { - String retailsTableName = getDayTableName(); - for (Long pkId : pkIdList) { - baseMapper.recalculateTeamNewBoxNum(pkId, retailsTableName); - } - } - private String getDayTableName() { String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId(); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberRetailLogServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberRetailLogServiceImpl.java deleted file mode 100644 index 461632b1..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberRetailLogServiceImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.hzs.bonus.bonus.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.bonus.bonus.mapper.CuMemberRetailLogMapper; -import com.hzs.bonus.bonus.service.ICuMemberRetailLogService; -import com.hzs.common.core.enums.EYesNo; -import com.hzs.common.core.utils.DateUtils; -import com.hzs.common.domain.member.bonus.CuMemberRetailLog; -import org.springframework.stereotype.Service; - -import java.time.temporal.ChronoUnit; -import java.util.Date; -import java.util.List; - -/** - * 秒接日志记录表 服务实现类 - */ -@Service -public class CuMemberRetailLogServiceImpl extends ServiceImpl implements ICuMemberRetailLogService { - - @Override - public List queryCuMemberRetailLog() { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(CuMemberRetailLog::getEnableStatus, EYesNo.NO.getIntValue()); - Date endTime = DateUtils.currentDateTime(); - Date startTime = DateUtils.beforeDate(1, ChronoUnit.DAYS, endTime); - queryWrapper.gt(CuMemberRetailLog::getCreationTime, startTime); - queryWrapper.le(CuMemberRetailLog::getCreationTime, endTime); - queryWrapper.orderByAsc(CuMemberRetailLog::getCreationTime); - return baseMapper.selectList(queryWrapper); - } - - @Override - public void updateCuMemberRetailLogByList(List cuMemberRetailLogs) { - baseMapper.updateCuMemberRetailLogByList(cuMemberRetailLogs); - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java deleted file mode 100644 index b1885ebd..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.hzs.bonus.detail.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; -import com.hzs.common.domain.member.detail.CuMemberAwards; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 会员信息-奖衔升级记录 Mapper 接口 - */ -public interface CuMemberAwardsMapper extends BaseMapper { - - /** - * 查询会员最后一条奖衔升级记录 - * - * @param cuMemberAwardsList 奖衔升级记录 - */ - List queryLastCuMemberAwards(@Param("cuMemberAwardsList") List cuMemberAwardsList); - - /** - * 批量插入奖衔记录 - * - * @param cuMemberAwardsList 需要插入的奖衔列表 - */ - Integer saveBatchCuMemberAwards(@Param("cuMemberAwardsList") List cuMemberAwardsList); - - /** - * 删除升级的奖衔 - */ - void deleteCuMemberAwardsByList(@Param("cuMemberAwards") List cuMemberAwards, @Param("period") Integer period); - - /** - * 查询自动升级的等级 - */ - List queryCuMemberAwards(@Param("cuMemberRetailRangeExtList") List cuMemberRetailRangeExtList, @Param("period") Integer period); - - /** - * 回退等级 - */ - void mergeCuMemberBackAwards(@Param("rangeTableName") String rangeTableName, - @Param("pkMember") Long pkMember, - @Param("period") Integer period, - @Param("awardType") Integer awardType); -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java deleted file mode 100644 index 083be22c..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hzs.bonus.detail.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; -import com.hzs.common.domain.member.detail.CuMemberGrade; -import com.hzs.common.domain.member.detail.CuMemberLevel; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; -import java.util.List; - -/** - * 会员信息-等级升级记录 Mapper 接口 - */ -public interface CuMemberGradeMapper extends BaseMapper { - - /** - * 回退会员等级 - */ - void updateCuMemberGrade(@Param("rangeTableName") String rangeTableName, @Param("period") Integer period); - - /** - * 查询会员最新手动升级记录,更新秒结表会员等级小于手动升级的会员等级 - */ - void updateCuMemberGradeSecond(@Param("secondRangeTableName") String secondRangeTableName, @Param("period") Integer period); - - /** - * 查询手动升级的等级 - */ - List queryCuMemberGradeByList(@Param("period") Integer period, @Param("memberRetailRangeExtList") List memberRetailRangeExtList); - - /** - * 查询会员等级 - */ - List queryCuMemberLevel(@Param("startDate") Date startDate, @Param("endDate") Date endDate); - - /** - * 回退会员等级 - */ - void updateCuMemberGradeLevel(@Param("rangeTableName") String rangeTableName, @Param("pkOrder") Long pkOrder); - - /** - * 删除等级升级记录 - */ - void deleteCuMemberGradeByList(@Param("cuMemberGradeList") List cuMemberGradeList, @Param("period") Integer period); - - /** - * 查询自动升级的等级 - */ - List queryCuMemberGrade(@Param("cuMemberRetailRangeExtList") List cuMemberRetailRangeExtList, - @Param("period") Integer period); - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java deleted file mode 100644 index 5df19c55..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hzs.bonus.detail.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; -import com.hzs.common.domain.member.detail.CuMemberAwards; - -import java.util.List; - -/** - * 会员信息-奖衔升级记录 服务类 - */ -public interface ICuMemberAwardsService extends IService { - - /** - * 删除升级的奖衔 - */ - void deleteCuMemberAwards(List cuMemberAwards, Integer period); - - /** - * 查询自动升级的等级 - */ - List queryCuMemberAwards(List cuMemberRetailRangeExtList, Integer period); - - /** - * 回退奖衔 - */ - void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday); - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java deleted file mode 100644 index 79968315..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hzs.bonus.detail.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; -import com.hzs.common.domain.member.detail.CuMemberGrade; -import com.hzs.common.domain.member.detail.CuMemberLevel; - -import java.util.Date; -import java.util.List; - -/** - * 会员信息-等级升级记录 服务类 - */ -public interface ICuMemberGradeService extends IService { - - /** - * 回退极差奖衔,每日重新结算,先把奖衔回退到前一天 - * - * @param period 结算期间 - * @param rangeTableName 结算表 - */ - List calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName); - - /** - * 查询会员最新手动升级记录,更新秒结表会员等级小于手动升级的会员等级 - */ - void updateCuMemberGradeSecond(String secondRangeTableName, Integer period); - - /** - * 查询手动升级的等级 - */ - List queryCuMemberGradeByList(Integer period, List memberRetailRangeExtList); - - /** - * 回退会员等级 - */ - void updateCuMemberGrade(String rangeTableName, Long pkOrder); - - /** - * 插入会员等级升级记录 - */ - void insertCuMemberGrade(List cuMemberGradeList); - - /** - * 删除等级升级记录 - */ - void deleteCuMemberGrade(List cuMemberGradeList, Integer period); - - /** - * 查询自动升级的等级 - */ - List queryCuMemberGrade(List cuMemberRetailRangeExtList, Integer period); - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java deleted file mode 100644 index b94d014e..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java +++ /dev/null @@ -1,257 +0,0 @@ -package com.hzs.bonus.detail.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService; -import com.hzs.bonus.achieve.service.ICuMemberTreeService; -import com.hzs.bonus.detail.service.ICuMemberAwardsService; -import com.hzs.common.core.constant.*; -import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.ComputeUtil; -import com.hzs.common.core.utils.DateUtils; -import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; -import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.ext.CuMemberSettleExt; -import com.hzs.common.domain.system.config.BdAwards; -import com.hzs.bonus.base.service.ICuMemberService; -import com.hzs.bonus.detail.mapper.CuMemberAwardsMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.temporal.ChronoUnit; -import java.util.*; - -/** - * 会员信息-奖衔升级记录 服务实现类 - */ -@Service -public class CuMemberAwardsServiceImpl extends ServiceImpl implements ICuMemberAwardsService { - - @Autowired - private ICuMemberService iCuMemberService; - @Autowired - private ICuMemberTreeService iCuMemberTreeService; - @Autowired - private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; - - @Override - public void deleteCuMemberAwards(List cuMemberAwards, Integer period) { - baseMapper.deleteCuMemberAwardsByList(cuMemberAwards, period); - } - - @Override - public List queryCuMemberAwards(List cuMemberRetailRangeExtList, Integer period) { - return baseMapper.queryCuMemberAwards(cuMemberRetailRangeExtList, period); - } - - @Override - public void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday) { - baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period, EAwardsType.RANGE_TYPE.getValue()); - if (EYesNo.YES.getIntValue() == isToday) { - // 当天,需要处理秒结的分红奖衔 - baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period, EAwardsType.SHARE_TYPE.getValue()); - } - } - - private Boolean calculateAwards(Map countryAwardsMap, String settleTableName, Date settleDate, Integer period, List cuMemberSettleExtList) { - // 当天奖衔发生过变动的人, 只要发生过变动,就要进行更新 降奖衔或者不变 - // 更新奖衔,更新会员表,更新奖衔变动记录表 - // 只满足业绩的 - List cuMemberAwardsList = new ArrayList<>(); - List enoughAwardsMemberList = new ArrayList<>(); - if (cuMemberSettleExtList.size() > 0) { - List placeAwardsMemberList = new ArrayList<>(); - List bloodAwardsMemberList = new ArrayList<>(); - // 用于记录原来的奖衔 - Map originalCuMemberSettleMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberSettleExtList.size())); - cuMemberSettleExtList.forEach(cuMemberSettleExt -> { - BdAwards bdAwards = getBdAwards(countryAwardsMap, originalCuMemberSettleMap, cuMemberSettleExt); - // 验证关系 - if (null == bdAwards.getRelationType()) { - enoughAwardsMemberList.add(cuMemberSettleExt); - } else if (ERelationType.BLOOD_KINSHIP_CHECK.getValue() == bdAwards.getRelationType()) { - bloodAwardsMemberList.add(cuMemberSettleExt); - } else if (ERelationType.PLACE_CHECK.getValue() == bdAwards.getRelationType()) { - placeAwardsMemberList.add(cuMemberSettleExt); - } else { - enoughAwardsMemberList.add(cuMemberSettleExt); - } - }); - - List memberAwardsList = updateAwardsRecord(enoughAwardsMemberList, originalCuMemberSettleMap, period); - if (memberAwardsList != null && memberAwardsList.size() > 0) { - cuMemberAwardsList.addAll(memberAwardsList); - } - // 需要验证安置的 - if (placeAwardsMemberList.size() > 0) { - List updateAwardsMemberList = new ArrayList<>(); - placeAwardsMemberList.forEach(cuMemberSettleExt -> { - BdAwards bdAwards = getBdAwards(countryAwardsMap, originalCuMemberSettleMap, cuMemberSettleExt); - // 验证安置 验证左右区是否存在满足等级的 考核 - // 先验证左区 - if (validateCuMemberPlaceRelation(settleTableName, bdAwards, cuMemberSettleExt.getPkMember())) { - updateAwardsMemberList.add(cuMemberSettleExt); - } - }); - List awardsList = updateAwardsRecord(updateAwardsMemberList, originalCuMemberSettleMap, period); - if (updateAwardsMemberList.size() > 0) { - enoughAwardsMemberList.addAll(updateAwardsMemberList); - } - if (awardsList != null && awardsList.size() > 0) { - cuMemberAwardsList.addAll(awardsList); - } - } - // 需要验证血缘的 - if (bloodAwardsMemberList.size() > 0) { - List updateAwardsMemberList = new ArrayList<>(); - bloodAwardsMemberList.forEach(cuMemberSettleExt -> { - BdAwards bdAwards = getBdAwards(countryAwardsMap, originalCuMemberSettleMap, cuMemberSettleExt); - // 验证血缘 - // 1 先验证安置,验证左右区是否存在满足等级的 考核 - // 2 在验证血缘,验证满足等级的会员是否在他的血缘线上 - if (validateBloodRelation(settleTableName, cuMemberSettleExt, bdAwards)) { - updateAwardsMemberList.add(cuMemberSettleExt); - } - }); - List awardsList = updateAwardsRecord(updateAwardsMemberList, originalCuMemberSettleMap, period); - if (updateAwardsMemberList.size() > 0) { - enoughAwardsMemberList.addAll(updateAwardsMemberList); - } - if (awardsList != null && awardsList.size() > 0) { - cuMemberAwardsList.addAll(awardsList); - } - } - } - if (cuMemberAwardsList.size() > 0) { - // 将变动值插入临时表中 - // 更新会员表 - iCuMemberService.updateCuMemberByPeriod(enoughAwardsMemberList, period); - // 更新结算网体表(月表、日表) - // 根据结算日期获得所有需要更新的周期 - updateMemberAwardPeriod(settleDate); - return Boolean.TRUE; - } else { - iCuMemberService.updateCuMemberByPeriod(null, period); - updateMemberAwardPeriod(settleDate); - return Boolean.FALSE; - } - } - - private void updateMemberAwardPeriod(Date settleDate) { - Date currentDate = DateUtils.currentDate(); - List periodList = new ArrayList<>(); - while (DateUtils.compareDateBefore(settleDate, currentDate)) { - String settleDateStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate); - periodList.add(iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDateStr).getPkId()); - settleDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleDate); - } - iCuMemberTreeService.updateCuMemberSettleByPeriod(periodList); - } - - private BdAwards getBdAwards(Map countryAwardsMap, Map originalCuMemberSettleMap, CuMemberSettleExt cuMemberSettleExt) { - originalCuMemberSettleMap.put(cuMemberSettleExt.getPkMember(), cuMemberSettleExt); - String key = cuMemberSettleExt.getPkSettleCountry().toString() + cuMemberSettleExt.getPkAwards().toString(); - return countryAwardsMap.get(key); - } - - /** - * 更新奖衔记录 - * - * @param enoughAwardsMemberList 满足业绩 - * @param originalCuMemberSettleMap 原来的map - * @param period 期间 - */ - private List updateAwardsRecord(List enoughAwardsMemberList, Map originalCuMemberSettleMap, - Integer period) { - if (enoughAwardsMemberList.size() == 0) { - return null; - } - // 更新奖衔记录变动 - // 增加奖衔记录表 - // 更新升奖衔的会员,插入升衔记录 - return upgradeCuMemberAwards(enoughAwardsMemberList, originalCuMemberSettleMap, period); - - } - - /** - * 插入升级记录 - * - * @param enoughAwardsMemberList 足够升级的 - * @param originalCuMemberSettleMap 记录会员原等级的map - * @param period 期间 - */ - private List upgradeCuMemberAwards(List enoughAwardsMemberList, Map originalCuMemberSettleMap, - Integer period) { - List cuMemberAwardsList = new ArrayList<>(); - if (enoughAwardsMemberList.size() > 0) { - // 记录要入库的,为了验证是否首次晋升 - enoughAwardsMemberList.forEach(enoughAwardsMember -> getCuMemberAwards(originalCuMemberSettleMap, period, cuMemberAwardsList, enoughAwardsMember)); - // 验证满足的这群人是否是首次晋升,查询出值的不是首次晋升 - List originalCuMemberAwardsList = baseMapper.queryLastCuMemberAwards(cuMemberAwardsList); - // 是首次晋升的数据 - Map cuMemberAwardsMap = new HashMap<>(ComputeUtil.mapInitCapacity(originalCuMemberAwardsList.size())); - originalCuMemberAwardsList.forEach(cuMemberAwards -> cuMemberAwardsMap.put(cuMemberAwards.getPkMember(), cuMemberAwards)); - cuMemberAwardsList.forEach(cuMemberAwards -> { - CuMemberAwards memberAwards = cuMemberAwardsMap.get(cuMemberAwards.getPkMember()); - // 没有奖衔升级记录或者奖衔升级记录是会员的 算首次晋升 - if (memberAwards == null) { - cuMemberAwards.setPurchaseStatus(EYesNo.YES.getIntValue()); - } - }); - // 插入记录 - baseMapper.saveBatchCuMemberAwards(cuMemberAwardsList); - } - return cuMemberAwardsList; - } - - private void getCuMemberAwards(Map originalCuMemberSettleMap, Integer period, List cuMemberAwardsList, CuMemberSettleExt enoughAwardsMember) { - CuMemberAwards cuMemberAwards = CuMemberAwards.builder() - .pkMember(enoughAwardsMember.getPkMember()) - .period(period) - .upType(EUpgradeType.AUTO_UPGRADE.getValue()) - // 原等级 - .oldLevel(originalCuMemberSettleMap.get(enoughAwardsMember.getPkMember()).getPkOriAwards()) - .newLevel(enoughAwardsMember.getPkAwards()) - // 默认不免考 - .purchaseStatus(EYesNo.NO.getIntValue()) - .build(); - cuMemberAwards.setPkCreator(MagicNumberConstants.PK_ADMIN); - cuMemberAwards.setPkCountry(enoughAwardsMember.getPkSettleCountry()); - cuMemberAwardsList.add(cuMemberAwards); - } - - /** - * 验证血缘关系 - * - * @param settleTableName 结算表 - * @param cuMemberSettleExt 会员结算表 - * @param bdAwards 等级 - */ - private Boolean validateBloodRelation(String settleTableName, CuMemberSettleExt cuMemberSettleExt, BdAwards bdAwards) { - // 左区满足,且满足血缘 - if (iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), cuMemberSettleExt.getPkMember()) && - iCuMemberTreeService.queryCuMemberSettleBloodUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), cuMemberSettleExt.getPkMember())) { - // 验证血缘,左区存在血缘关系的 - // 右区满足,且满足血缘 - // 进行验证血缘验证 - return iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), cuMemberSettleExt.getPkMember()) && - iCuMemberTreeService.queryCuMemberSettleBloodUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), cuMemberSettleExt.getPkMember()); - } - return false; - } - - /** - * 验证左右区安置关系 - * - * @param settleTableName 结算表 - * @param bdAwards 等级 - * @param pkMember 会员 - */ - private Boolean validateCuMemberPlaceRelation(String settleTableName, BdAwards bdAwards, Long pkMember) { - // 验证左区 - if (iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), pkMember)) { - // 在验证右区 - return iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), pkMember); - } - return false; - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java deleted file mode 100644 index 4b066bf2..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hzs.bonus.detail.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.bonus.detail.mapper.CuMemberGradeMapper; -import com.hzs.bonus.detail.service.ICuMemberGradeService; -import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; -import com.hzs.common.domain.member.detail.CuMemberGrade; -import com.hzs.common.domain.member.detail.CuMemberLevel; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Date; -import java.util.List; - -/** - * 会员信息-等级升级记录 服务实现类 - */ -@Service -public class CuMemberGradeServiceImpl extends ServiceImpl implements ICuMemberGradeService { - - @Override - public List calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName) { - // 更新奖衔,回退等级 - baseMapper.updateCuMemberGrade(rangeTableName, period); - return baseMapper.queryCuMemberLevel(startDate, endDate); - } - - @Override - public void updateCuMemberGradeSecond(String secondRangeTableName, Integer period) { - baseMapper.updateCuMemberGradeSecond(secondRangeTableName, period); - } - - @Override - public List queryCuMemberGradeByList(Integer period, List memberRetailRangeExtList) { - return baseMapper.queryCuMemberGradeByList(period, memberRetailRangeExtList); - } - - @Override - public void updateCuMemberGrade(String rangeTableName, Long pkOrder) { - baseMapper.updateCuMemberGradeLevel(rangeTableName, pkOrder); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void insertCuMemberGrade(List cuMemberGradeList) { - saveBatch(cuMemberGradeList); - } - - @Override - public void deleteCuMemberGrade(List cuMemberGradeList, Integer period) { - baseMapper.deleteCuMemberGradeByList(cuMemberGradeList, period); - } - - @Override - public List queryCuMemberGrade(List cuMemberRetailRangeExtList, Integer period) { - return baseMapper.queryCuMemberGrade(cuMemberRetailRangeExtList, period); - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondActivateCompensationListener.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondActivateCompensationListener.java deleted file mode 100644 index 4b648640..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondActivateCompensationListener.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.hzs.bonus.listener; - -import cn.hutool.json.JSONUtil; -import com.hzs.bonus.bonus.service.IBonusSettleService; -import com.hzs.bonus.bonus.service.ICuMemberBonusService; -import com.hzs.bonus.bonus.service.ICuMemberRetailLogService; -import com.hzs.common.core.constant.CountryConstants; -import com.hzs.common.core.constant.MagicNumberConstants; -import com.hzs.common.core.constant.RabbitMqConstants; -import com.hzs.common.core.enums.EYesNo; -import com.hzs.common.domain.member.bonus.CuMemberRetailLog; -import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.rabbitmq.client.Channel; -import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.rabbit.annotation.*; -import org.springframework.amqp.support.AmqpHeaders; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.messaging.Message; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * 订单秒接 - */ -@Slf4j -@Component -public class SaOrderSecondActivateCompensationListener { - @Autowired - private ICuMemberBonusService memberBonusService; - - @RabbitListener(bindings = @QueueBinding( - exchange = @Exchange(value = RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE, type = "topic"), - value = @Queue(value = RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_QUEUE, durable = "true", autoDelete = "false"), - key = RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_KEY)) - @RabbitHandler - public void onMessage(Message> message, Channel channel) throws Exception { - List activateCompensationIdList = message.getPayload(); - log.info("秒结开始消费,接收到的参数:{}", JSONUtil.toJsonStr(activateCompensationIdList)); - - Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); - channel.basicAck(deliveryTag, false); - - memberBonusService.recalculateTeamNewBoxNum(activateCompensationIdList); - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java deleted file mode 100644 index f003e922..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hzs.bonus.listener; - -import com.hzs.bonus.bonus.service.IBonusSettleService; -import com.hzs.bonus.bonus.service.ICuMemberRetailLogService; -import com.hzs.common.core.constant.CountryConstants; -import com.hzs.common.core.constant.MagicNumberConstants; -import com.hzs.common.core.constant.RabbitMqConstants; -import com.hzs.common.core.enums.EYesNo; -import com.hzs.common.domain.member.bonus.CuMemberRetailLog; -import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.rabbitmq.client.Channel; -import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.rabbit.annotation.*; -import org.springframework.amqp.support.AmqpHeaders; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.messaging.Message; -import org.springframework.stereotype.Component; - -/** - * 订单秒接 - */ -@Slf4j -@Component -public class SaOrderSecondListener { - - @Autowired - private IBonusSettleService iBonusSettleService; - @Autowired - private ICuMemberRetailLogService iCuMemberRetailLogService; - - @RabbitListener(bindings = @QueueBinding( - exchange = @Exchange(value = RabbitMqConstants.ORDER_SECOND_EXCHANGE, type = "topic"), - value = @Queue(value = RabbitMqConstants.ORDER_SECOND_QUEUE, durable = "true", autoDelete = "false"), - key = RabbitMqConstants.ORDER_SECOND_KEY)) - @RabbitHandler - public void onMessage(Message message, Channel channel) throws Exception { - SaOrderExt saOrderExt = message.getPayload(); - log.info("秒结开始消费,接收到的参数:{}", saOrderExt.getOrderCode()); - - Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); - channel.basicAck(deliveryTag, false); - - CuMemberRetailLog cuMemberRetailLog = new CuMemberRetailLog(); - cuMemberRetailLog.setPkCountry(CountryConstants.CHINA_COUNTRY); - cuMemberRetailLog.setPkCreator(MagicNumberConstants.PK_ADMIN); - cuMemberRetailLog.setOrderCode(saOrderExt.getOrderCode()); - if (saOrderExt.getCancelBool() != null && saOrderExt.getCancelBool()) { - cuMemberRetailLog.setCancelStatus(EYesNo.YES.getIntValue()); - } - - try { - Thread.sleep(500); - iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(saOrderExt.getOrderCode()); - } catch (Exception e) { - cuMemberRetailLog.setEnableStatus(EYesNo.NO.getIntValue()); - cuMemberRetailLog.setMsg(e.getMessage()); - e.printStackTrace(); - } finally { - iCuMemberRetailLogService.save(cuMemberRetailLog); - } - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/mapper/BonusOrderMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/mapper/BonusOrderMapper.java index ac0fe4c7..ca2640d9 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/mapper/BonusOrderMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/mapper/BonusOrderMapper.java @@ -1,7 +1,6 @@ package com.hzs.bonus.order.mapper; import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.domain.sale.order.SaOrder; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -19,25 +18,4 @@ public interface BonusOrderMapper { @Param("endDate") Date endDate, @Param("orderCode") String orderCode); - /** - * 查询时间范围内的订单,需要查询出del_flag = 1的值 - * - * @param startDate 开始时间 - * @param endDate 结束时间 - */ - List querySaOrderByTime(@Param("startDate") Date startDate, - @Param("endDate") Date endDate, - @Param("orderCode") String orderCode); - - /** - * 查询订单列表 - * - * @param startDate 开始日期 - * @param endDate 结束日期 - * @param orderType 订单类型列表 - */ - List listSaOrderByTime(@Param("startDate") Date startDate, - @Param("endDate") Date endDate, - @Param("orderType") List orderType); - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/IBonusOrderService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/IBonusOrderService.java index 0b380855..308b4730 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/IBonusOrderService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/IBonusOrderService.java @@ -1,7 +1,6 @@ package com.hzs.bonus.order.service; import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.domain.sale.order.SaOrder; import java.util.Date; import java.util.List; @@ -16,18 +15,4 @@ public interface IBonusOrderService { */ List queryRetailSaOrderByDay(Date startDate, Date endDate, String orderCode); - /** - * 查询订单编号 - */ - SaOrderExt querySaOrderByDay(Date startDate, Date endDate, String orderCode); - - /** - * 查询订单列表 - * - * @param startDate 开始日期 - * @param endDate 结束日期 - * @param orderType 订单类型列表 - */ - List listSaOrderByTime(Date startDate, Date endDate, List orderType); - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/impl/BonusOrderServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/impl/BonusOrderServiceImpl.java index 25180756..ccdfab87 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/impl/BonusOrderServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/order/service/impl/BonusOrderServiceImpl.java @@ -1,10 +1,8 @@ package com.hzs.bonus.order.service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.hzs.bonus.order.mapper.BonusOrderMapper; import com.hzs.bonus.order.service.IBonusOrderService; import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.domain.sale.order.SaOrder; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -22,18 +20,4 @@ public class BonusOrderServiceImpl implements IBonusOrderService { return bonusOrderMapper.queryRetailSaOrderByDay(startDate, endDate, orderCode); } - @Override - public SaOrderExt querySaOrderByDay(Date startDate, Date endDate, String orderCode) { - List saOrderList = bonusOrderMapper.querySaOrderByTime(startDate, endDate, orderCode); - if (CollectionUtil.isNotEmpty(saOrderList)) { - return saOrderList.get(0); - } - return null; - } - - @Override - public List listSaOrderByTime(Date startDate, Date endDate, List orderType) { - return bonusOrderMapper.listSaOrderByTime(startDate, endDate, orderType); - } - } 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 fee11e65..07c4920e 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 @@ -62,29 +62,29 @@ update ${rangeTableName} - set new_box_num = 0, - consume_box_num = 0, - month_box_num = 0, - new_consume_pv = 0, - consume_pv = 0, - month_consume_pv = 0, - team_new_box_num = 0, - team_box_num = 0, - team_month_box_num = 0, - team_new_pv = 0, - team_consume_pv = 0, - team_month_pv = 0, - team_new_amount = 0, + set new_box_num = 0, + consume_box_num = 0, + month_box_num = 0, + new_consume_pv = 0, + consume_pv = 0, + month_consume_pv = 0, + team_new_box_num = 0, + team_box_num = 0, + team_month_box_num = 0, + team_new_pv = 0, + team_consume_pv = 0, + team_month_pv = 0, + team_new_amount = 0, team_consume_amount = 0, - team_month_amount = 0, - recommend_num = 0, - team_num = 0, - enable_status = 1, - region_address = 0, - big_box_num = 0, - small_box_num = 0, - big_team_pv = 0, - small_team_pv = 0 + team_month_amount = 0, + recommend_num = 0, + team_num = 0, + enable_status = 1, + region_address = 0, + big_box_num = 0, + small_box_num = 0, + big_team_pv = 0, + small_team_pv = 0 @@ -146,92 +146,6 @@ a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status - - - merge into ${secondRangeTableName} a - using ( - select a.pk_id pk_member, - a.pk_parent, - a.pk_settle_grade pk_grade, - a.pk_awards, - a.pk_range_awards, - a.is_activate enable_status, - a.system_type - from (select * - from cu_member - where del_flag = 0 - start - with pk_id = #{pkMember} - connect by pk_id = prior pk_parent - ) a - ) b - on (a.pk_member = b.pk_member) - when not matched then - insert (pk_member, pk_parent, enable_status, system_type) - values (b.pk_member, b.pk_parent, b.enable_status, b.system_type) - - - - - merge into ${secondRangeTableName} a - using ( - select a.pk_id pk_member, - a.pk_parent, - a.pk_settle_grade pk_grade, - a.pk_awards, - a.pk_range_awards, - nvl(b.enable_status, 1) enable_status - from (select * - from cu_member - where del_flag = 0 - start - with pk_id = #{pkMember} - connect by pk_id = prior pk_parent - ) a - left join ${rangeTableName} b - on a.pk_id = b.pk_member - where b.enable_status = 0 - ) b - on (a.pk_member = b.pk_member) - when matched then - update set a.enable_status = b.enable_status - - - - - merge into ${secondTableName} a - using ( - - select - #{item.pkMember} pk_member, #{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv, - #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv, - #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status - from dual - - ) b - on (a.pk_member = b.pk_member) - when matched then - update set a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv, - a.team_new_box_num = b.team_new_box_num, a.team_new_pv = b.team_new_pv, - a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status - - - - merge into ${rangeTableName} a - using ( - select pk_id pk_member, pk_parent, - pk_settle_grade, pk_awards, pk_range_awards - from cu_member start with pk_id = #{pkMember} - connect by prior pk_parent = pk_id - ) b - on (a.pk_member = b.pk_member) - when matched then - update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards - - , a.pk_share_awards = b.pk_range_awards - - - - - - - - - - - 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 67699b2a..5059160a 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 @@ -85,85 +85,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - merge into cu_member a - using ( - select pk_member, max(new_level) pk_awards - from cu_member_awards - where period = #{period} - and del_flag = 0 - group by pk_member - ) b - on (a.pk_id = b.pk_member) - when matched then - update set - a.pk_awards = b.pk_awards, - a.modified_time = sysdate - - - - - merge into cu_member a - using ( - select pk_member, max(pk_awards) pk_awards from ( - - select - #{item.pkMember} pk_member, - #{item.newLevel} pk_awards, - #{item.awardType} award_type - from dual - - ) - where award_type = #{awardType} - group by pk_member - ) b - on (a.pk_id = b.pk_member) - when matched then - update set - - a.pk_awards = b.pk_awards, - - - a.pk_range_awards = b.pk_awards, - - a.modified_time = sysdate - - - - merge into cu_member a - using ( - select pk_member, min(pk_grade) pk_grade from( - - select #{item.pkMember} pk_member,#{item.newLevel} pk_grade from dual - ) - group by pk_member - ) b - on (a.pk_id = b.pk_member) - when matched then - update set a.pk_settle_grade = b.pk_grade,a.modified_time = sysdate - - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml index f73eb8f7..d30722f9 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml @@ -544,37 +544,10 @@ group by cb.period,cp.settle_date order by cb.period desc + - - MERGE INTO ${retailsTableName} s - USING ( - SELECT SUM(boxNum) AS boxNum, SUM(pv) AS pv, pk_id - FROM ( - SELECT b.PK_ID, - NVL(s.NEW_BOX_NUM, 0) AS boxNum, - NVL(s.NEW_CONSUME_PV, 0) AS pv - FROM ${retailsTableName} s - RIGHT JOIN ( - SELECT cm.PK_ID - FROM cu_member cm - WHERE cm.PK_ID != #{pkId} - START WITH cm.PK_ID = #{pkId} - CONNECT BY PRIOR cm.pk_id = cm.pk_parent - ORDER BY LEVEL - ) b ON s.PK_MEMBER = b.PK_ID - ) c - GROUP BY pk_id - ) result - ON (s.PK_MEMBER = result.PK_ID) - WHEN MATCHED THEN - UPDATE SET - s.ENABLE_STATUS = 0, - s.TEAM_NEW_BOX_NUM = result.boxNum, - s.TEAM_NEW_PV = result.pv - WHERE s.PK_MEMBER = #{pkId} - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberRetailLogMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberRetailLogMapper.xml deleted file mode 100644 index c77e7b95..00000000 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberRetailLogMapper.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - update cu_member_retail_log - set enable_status = 0 - where del_flag = 0 - and pk_id in - - #{item.pkId} - - - - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml deleted file mode 100644 index 64e696bb..00000000 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - insert ALL - - into cu_member_awards ( - pk_member, period, up_type, old_level, new_level, - purchase_status, award_type, pk_creator, pk_country, system_type - ) - values ( - #{item.pkMember}, #{item.period}, #{item.upType}, #{item.oldLevel}, #{item.newLevel}, - #{item.purchaseStatus}, #{item.awardType}, #{item.pkCreator}, #{item.pkCountry}, #{item.systemType} - ) - - SELECT 1 FROM dual - - - - merge into ${rangeTableName} a - using ( - select cw.* - from cu_member_awards cw - inner join ( - select ca.pk_member, min(ca.pk_id) pk_id - from cu_member_awards ca - inner join bd_awards bw - on ca.new_level = bw.pk_id - and bw.del_flag = 0 - and bw.awards_value >= 5 - where ca.del_flag = 0 - and ca.up_type = 1 - and ca.period = #{period} - and ca.award_type = #{awardType} - and ca.pk_member in - (select pk_id - from cu_member start - with pk_id = #{pkMember} - connect by prior pk_parent = pk_id) - group by ca.pk_member - ) cx on cw.pk_id = cx.pk_id where cw.del_flag = 0 - ) b on (a.pk_member = b.pk_member) - when matched then - update set - - a.pk_awards = b.old_level - - - a.pk_share_awards = b.old_level - - - - - - update cu_member_awards cma - set cma.del_flag = 1, - cma.modified_time = sysdate - where period = #{period} and del_flag = 0 and up_type = 1 - and pk_id in - - #{item.pkId} - - - - - - - - - - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml deleted file mode 100644 index e847defe..00000000 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - merge into ${rangeTableName} a - using ( - select a.pk_member, max(a.new_level) pk_grade - from cu_member_grade a - inner join( - select pk_member, max(nvl(modified_time, creation_time)) creation_time - from cu_member_grade - where period = #{period} - and del_flag = 0 - and up_type = 2 - group by pk_member) b - on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time - group by a.pk_member - ) b - on (a.pk_member = b.pk_member) - when matched then - update set - a.pk_grade = b.pk_grade - - - - - merge into ${secondRangeTableName} a - using ( - select cs.pk_member, b.pk_grade - from ${secondRangeTableName} cs - inner join ( - select a.pk_member, max(a.new_level) pk_grade - from cu_member_grade a - inner join ( - select pk_member, max(nvl(modified_time, creation_time)) creation_time - from cu_member_grade - where period <= #{period} - and del_flag = 0 - and up_type = 2 - group by pk_member - ) b on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time - group by a.pk_member - ) b on cs.pk_member = b.pk_member - where cs.pk_grade < b.pk_grade - ) b - on (a.pk_member = b.pk_member) - when matched then - update set - a.pk_grade = b.pk_grade - - - - - merge into ${rangeTableName} a - using ( - select pk_member, max(new_level) pk_grade - from cu_member_level - where del_flag = 0 and up_type = 4 - - and pk_order = #{pkOrder} - - group by pk_member - ) b - on (a.pk_member = b.pk_member) - when matched then - update set - a.pk_grade = b.pk_grade - - - - - update cu_member_grade - set del_flag = 1, - modified_time = sysdate - where period = #{period} - and del_flag = 0 - and up_type = 1 - and pk_id in - - #{item.pkId} - - - - - - - - - - - - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml index 7a6db564..42c59106 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml @@ -83,49 +83,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 7746f410..21d66077 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -1519,9 +1519,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); - - // 推送会员激活处理 - rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE, RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_KEY, Collections.singletonList(cuMember.getPkId())); } @Transactional(rollbackFor = Exception.class) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberServiceLogMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberServiceLogMapper.java index 85c3bd86..db447923 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberServiceLogMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberServiceLogMapper.java @@ -17,13 +17,6 @@ public interface CuMemberServiceLogMapper extends BaseMapper Integer selectByMaxApproveNumber(@Param("pkMember") Long pkMember, @Param("editType") Integer editType, @Param("approveStatus") Integer approveStatus); - /** - * 查询会员办理业务日志最新数据 - **/ - CuMemberServiceLog selectTopData(@Param("pkMember") Long pkMember, - @Param("editType") int editType, - @Param("approveStatus") int approveStatus); - /** * 查询用户是否已经存在未审核业务 **/ @@ -37,11 +30,6 @@ public interface CuMemberServiceLogMapper extends BaseMapper */ List selectByServiceLogList(CuMemberServiceLog cuMemberServiceLog); - /** - * 查询审核通过的最新数据 - **/ - CuMemberServiceLogVO selectNewestServiceLog(CuMemberServiceLogVO cuMemberServiceLogVO); - /** * 查询会员原值 **/ @@ -82,22 +70,6 @@ public interface CuMemberServiceLogMapper extends BaseMapper */ List selectByList(CuMemberServiceLogExt memberServiceLogExt); - /** - * 查询指定会员政策币信息 - * - * @param pkMember 会员ID - * @return - */ - CuMemberServiceLogExt queryPolicy(@Param("pkMember") Long pkMember); - - /** - * 查询会员办理业务日志表最新数据 - **/ - List selectTopDataList(@Param("pkMember") Long pkMember, - @Param("editTypeList") List editTypeList, - @Param("approveStatus") int approveStatus, - @Param("actEndDateStr") String actEndDateStr); - /** * 查询激活操作数据 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberServiceLogProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberServiceLogProvider.java index 0fc5091e..7417c05e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberServiceLogProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberServiceLogProvider.java @@ -43,30 +43,6 @@ public class CuMemberServiceLogProvider implements ICuMemberServiceLogServiceApi return iCuMemberServiceLogService.updateByBusinessNo(memberLog); } - @Override - public R> selectCuMemberServiceLog(String businessNo) { - return iCuMemberServiceLogService.selectCuMemberServiceLog(businessNo); - } - - @Override - public R queryPolicy(Long pkMember) { - return R.ok(iCuMemberServiceLogService.queryPolicy(pkMember)); - } - - @Override - public R queryCount(Long pkMember, Integer approvalBusiness, Integer approveStatus) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(CuMemberServiceLog::getApproveStatus, approveStatus); - query.eq(CuMemberServiceLog::getEditType, approvalBusiness); - query.eq(CuMemberServiceLog::getPkMember, pkMember); - return R.ok(iCuMemberServiceLogService.count(query)); - } - - @Override - public R selectTopData(Long pkMember, int editType, int approveStatus) { - return R.ok(iCuMemberServiceLogService.selectTopData(pkMember, editType, approveStatus)); - } - @Override public R> listActivateLog(Date queryDate) { return R.ok(iCuMemberServiceLogService.listActivateLog(queryDate)); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberServiceLogService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberServiceLogService.java index f1ba72b5..afd161f2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberServiceLogService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberServiceLogService.java @@ -25,11 +25,6 @@ public interface ICuMemberServiceLogService extends IService */ Integer selectByMaxApproveNumber(Long pkMember, Integer editType, Integer approveStatus); - /** - * 查询会员办理业务日志最新数据 - **/ - CuMemberServiceLog selectTopData(Long pkMember, int editType, int approveStatus); - /** * 查询用户是否已经存在未审核业务 **/ @@ -43,11 +38,6 @@ public interface ICuMemberServiceLogService extends IService */ List selectByServiceLogList(CuMemberServiceLog cuMemberServiceLog); - /** - * 查询审核通过的最新数据 - **/ - CuMemberServiceLogVO selectNewestServiceLog(CuMemberServiceLogVO cuMemberServiceLogVO); - /** * 查询会员原值 **/ @@ -101,11 +91,6 @@ public interface ICuMemberServiceLogService extends IService */ List queryList(Integer editType, String memberCode, String memberName, Integer pkCountry, Integer approveStatus); - /** - * 根据业务单号查询业务日志 - **/ - R> selectCuMemberServiceLog(String businessNo); - /** * 查询展示列表 * @@ -113,19 +98,6 @@ public interface ICuMemberServiceLogService extends IService */ List selectByList(CuMemberServiceLogExt memberServiceLogExt); - /** - * 查询指定会员政策币信息 - * - * @param pkMember 会员ID - * @return - */ - CuMemberServiceLogExt queryPolicy(Long pkMember); - - /** - * 查询会员多个办理业务的日志最新数据 - **/ - CuMemberServiceLogVO selectTopDataList(Long pkMember, List editType, int approveStatus, String actEndDateStr); - /** * 查询激活操作数据 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberServiceLogServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberServiceLogServiceImpl.java index e7aa36c4..9494d018 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberServiceLogServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberServiceLogServiceImpl.java @@ -1,13 +1,11 @@ package com.hzs.member.detail.service.impl; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.constant.msg.ConfigMsgConstants; import com.hzs.common.core.domain.R; -import com.hzs.common.core.enums.EApprovalBusiness; import com.hzs.common.core.enums.EApproveStatus; import com.hzs.common.core.enums.EOrderPrefix; import com.hzs.common.core.exception.ServiceException; @@ -19,15 +17,12 @@ import com.hzs.member.detail.mapper.CuMemberServiceLogMapper; import com.hzs.member.detail.service.ICuMemberServiceLogService; import com.hzs.member.detail.vo.CuMemberServiceLogVO; import com.hzs.member.handlebusiness.vo.BusinessMemberVO; -import com.hzs.member.self.vo.DomicileChangeVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Comparator; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; /** * 会员更名、密码修改表 服务实现类 @@ -40,11 +35,6 @@ public class CuMemberServiceLogServiceImpl extends ServiceImpl selectServiceLogList(CuMemberServiceLogVO cuMemberServiceLogVO) { return baseMapper.selectServiceLogList(cuMemberServiceLogVO); @@ -55,11 +45,6 @@ public class CuMemberServiceLogServiceImpl extends ServiceImpl selectOldValue(BusinessMemberVO businessMemberVO) { return baseMapper.selectOldValue(businessMemberVO); @@ -102,15 +87,15 @@ public class CuMemberServiceLogServiceImpl extends ServiceImpl selectByBusinessNo(String businessNo) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("BUSINESS_NO", businessNo); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CuMemberServiceLog::getBusinessNo, businessNo); return R.ok(baseMapper.selectOne(queryWrapper)); } @Override public R updateByBusinessNo(CuMemberServiceLog memberLog) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("BUSINESS_NO", memberLog.getBusinessNo()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(CuMemberServiceLog::getBusinessNo, memberLog.getBusinessNo()); return R.ok(baseMapper.update(memberLog, updateWrapper) == 1); } @@ -119,13 +104,6 @@ public class CuMemberServiceLogServiceImpl extends ServiceImpl> selectCuMemberServiceLog(String businessNo) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("BUSINESS_NO", businessNo); - return R.ok(baseMapper.selectList(queryWrapper)); - } - @Override public List selectByList(CuMemberServiceLogExt memberServiceLogExt) { return baseMapper.selectByList(memberServiceLogExt); @@ -136,39 +114,9 @@ public class CuMemberServiceLogServiceImpl extends ServiceImpl editType, int approveStatus, String actEndDateStr) { - CuMemberServiceLogVO cmvo = new CuMemberServiceLogVO(); - List cmsList = baseMapper.selectTopDataList(pkMember, editType, approveStatus, actEndDateStr); - if (CollectionUtil.isNotEmpty(cmsList)) { - List sortedCmsList = cmsList.stream() - .sorted(Comparator.comparing(CuMemberServiceLog::getCreationTime)) - .collect(Collectors.toList()); - for (CuMemberServiceLog cms : sortedCmsList) { - cms.setPkMember(pkMember); - if (cms.getEditType() == EApprovalBusiness.CHANGE_NAME.getValue()) { - cmvo.setOldName(cms.getOldValue()); - } - if (cms.getEditType() == EApprovalBusiness.CHANGE_PHONE.getValue()) { - cmvo.setOldPhone(cms.getOldValue()); - } - if (cms.getEditType() == EApprovalBusiness.DOMICILE_CHANGE.getValue()) { - DomicileChangeVO oldValue = JSONUtil.toBean(cms.getOldValue(), DomicileChangeVO.class); - cmvo.setOldPhone(oldValue.getPhone()); - cmvo.setOldName(oldValue.getMemberName()); - } - } - } - return cmvo; - } - @Override public List listActivateLog(Date queryDate) { return baseMapper.listActivateLog(queryDate); } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java index 8632cee4..3692cef8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java @@ -699,10 +699,6 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl - - - - - - - - select * - from (select * - from CU_MEMBER_SERVICE_LOG - where EDIT_TYPE = 125 - and PK_MEMBER = #{pkMember} - and APPROVE_STATUS = 5 - order by CREATION_TIME desc) - where rownum = 1 - - - - - select st.* ,bc.NAME classifyName from BD_SPECS_TYPE st @@ -44,7 +24,6 @@ and st.PK_COUNTRY = #{pkCountry} order by st.sort - diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml index 64158386..10ef5e7d 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml @@ -348,13 +348,6 @@ order by bw.sort,bw.creation_time desc - - update BD_WARES - set PRE_SALE_QUANTITY = PRE_SALE_QUANTITY - #{quantity} - where WARES_CODE = #{waresCode} - and PRE_SALE_QUANTITY > 0 - - - - - diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index 9c0634dc..c8257b3a 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -207,13 +207,16 @@ ,IS_ACTIVATE ) - VALUES (#{pkId,jdbcType=INTEGER}, #{memberCode}, #{memberName}, #{category}, #{customerType}, #{phone}, #{email, jdbcType=VARCHAR}, #{idCard, jdbcType=VARCHAR}, #{pkSettleCountry}, - #{pkParent}, #{pkPlaceParent,jdbcType=NUMERIC}, #{placeDept,jdbcType=INTEGER}, #{pkTeamCode,jdbcType=INTEGER}, #{pkCenterCode,jdbcType=INTEGER}, #{source}, #{pkRegisterGrade}, + VALUES (#{pkId,jdbcType=INTEGER}, #{memberCode}, #{memberName}, #{category}, #{customerType}, #{phone}, #{email, jdbcType=VARCHAR}, + #{idCard, jdbcType=VARCHAR}, #{pkSettleCountry}, + #{pkParent}, #{pkPlaceParent,jdbcType=NUMERIC}, #{placeDept,jdbcType=INTEGER}, #{pkTeamCode,jdbcType=INTEGER}, + #{pkCenterCode,jdbcType=INTEGER}, #{source}, #{pkRegisterGrade}, #{pkSettleGrade}, #{pkAwards}, #{consumeMoney,jdbcType=NUMERIC}, #{consumeAchieve,jdbcType=NUMERIC}, #{payStatus}, #{loginPwd}, #{payPwd}, #{loginPassword}, #{payPassword}, #{pkVertex,jdbcType=INTEGER}, #{accountStatus}, #{orderSource}, #{pkCreator,jdbcType=INTEGER}, #{creationTime, jdbcType=TIMESTAMP}, #{pkCountry}, #{payTime, jdbcType=TIMESTAMP}, #{globalCode, jdbcType=VARCHAR}, #{countryCode, jdbcType=VARCHAR}, #{registerAuthority,jdbcType=INTEGER}, - #{expireDate, jdbcType=DATE}, #{stopDate, jdbcType=DATE}, #{isMakerGift,jdbcType=INTEGER}, #{makerGiftTime,jdbcType=TIMESTAMP}, #{nickName, jdbcType=VARCHAR} + #{expireDate, jdbcType=DATE}, #{stopDate, jdbcType=DATE}, #{isMakerGift,jdbcType=INTEGER}, #{makerGiftTime,jdbcType=TIMESTAMP}, + #{nickName, jdbcType=VARCHAR} ,#{systemType} @@ -1459,7 +1462,8 @@ + + + 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 08df6a92..ffdebdde 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 @@ -226,7 +226,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { public List createSaOrderItems(RetailOrderParam orderParam, List gradeList, CuMember cuMember, SaOrderExt saOrderExt, CurrencyDTO currency) { // 需要查询盒数商品 - List boxProductList = BoxProductUtil.getBoxProductListBySystemType(null); + List boxWaresList = BoxProductUtil.getBoxProductListBySystemType(null); // 订单明细信息 List orderItemsList = new ArrayList<>(); @@ -244,8 +244,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 当前盒数 int boxNum = 0; -// // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件 -// this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList); + // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件 + this.checkWaresLimit(cuMember, orderParam.getSpecialArea(), waresDetailExtList, boxWaresList, gradeList); // 遍历生成订单明细数据 for (BdWaresDetailExt waresDetailExt : waresDetailExtList) { @@ -261,7 +261,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems); } - if (boxProductList.contains(waresDetailExt.getWaresCode())) { + if (boxWaresList.contains(waresDetailExt.getWaresCode())) { // 商品是盒数商品,需要累计数量 boxNum += orderItems.getWaresQuantity(); } @@ -782,22 +782,25 @@ public class RetailOrderServiceImpl implements IRetailOrderService { /** * 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件 * - * @param pkMember 会员ID + * @param cuMember 会员 * @param specialArea 所属专区 * @param waresDetailExtList 购买商品列表 - * @param boxProductList 盒数商品列表 + * @param boxWaresList 盒数商品列表 + * @param gradeList 等级列表 * @return */ - private void checkWaresLimit(Long pkMember, Integer specialArea, List waresDetailExtList, List boxProductList) { + private void checkWaresLimit(CuMember cuMember, Integer specialArea, List waresDetailExtList, List boxWaresList, List gradeList) { + if (null == gradeList) { + return; + } String limitDate = DateUtils.parseDateToFormat(DateUtils.YYYYMM, new Date()); // 商品数量map(key: 商品编号,value: 商品数量) Map waresNumMap = new HashMap<>(); // 商品信息map(key: 商品编号,value: 商品名称) Map waresNameMap = new HashMap<>(); for (BdWaresDetailExt waresDetailExt : waresDetailExtList) { - if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea - || ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) - && boxProductList.contains(waresDetailExt.getWaresCode()) + if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea) + && boxWaresList.contains(waresDetailExt.getWaresCode()) && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift() ) { // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每月每人限购50件(赠品排除) @@ -807,19 +810,37 @@ public class RetailOrderServiceImpl implements IRetailOrderService { } if (!waresNumMap.isEmpty()) { + // 根据会员等级进行限购处理 + BdGrade bdGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(cuMember.getPkSettleGrade())).findFirst().get(); + + // 会员、VIP、合伙人,每月限购1套 + Integer limitNum = RetailConstants.V1_LIMIT; + + if (EGrade.VIP.getValue() == bdGrade.getGradeValue() + || EGrade.S_VIP.getValue() == bdGrade.getGradeValue()) { + // 会员、VIP、合伙人,每月限购10套 + limitNum = RetailConstants.V4_LIMIT; + } else if (EGrade.BRANCH_COMPANY.getValue() == bdGrade.getGradeValue()) { + // 分公司,每月限购25套 + limitNum = RetailConstants.V6_LIMIT; + } else if (EGrade.COMPANY.getValue() == bdGrade.getGradeValue()) { + // 总公司,不限购给一个很大的值 + limitNum = RetailConstants.V7_LIMIT; + } + for (String key : waresNumMap.keySet()) { - if (waresNumMap.get(key) > 50) { - throw new ServiceException("商品【" + waresNameMap.get(key) + "】每月限购50件"); + if (waresNumMap.get(key) > limitNum) { + throw new ServiceException("商品【" + waresNameMap.get(key) + "】每月限购 " + limitNum + " 件"); } } - List limitList = iSaOrderWaresLimitService.listWaresList(pkMember, specialArea, limitDate, new ArrayList<>(waresNumMap.keySet())); + List limitList = iSaOrderWaresLimitService.listWaresList(cuMember.getPkId(), specialArea, limitDate, new ArrayList<>(waresNumMap.keySet())); if (CollectionUtil.isNotEmpty(limitList)) { for (SaOrderWaresLimitExt waresLimitExt : limitList) { Integer waresNum = waresNumMap.get(waresLimitExt.getWaresCode()); if (null != waresNum - && waresNum + waresLimitExt.getWaresQuantity() > 50) { - throw new ServiceException("商品【" + waresLimitExt.getWaresName() + "】每月限购50件"); + && waresNum + waresLimitExt.getWaresQuantity() > limitNum) { + throw new ServiceException("商品【" + waresLimitExt.getWaresName() + "】每月限购 \" + limitNum + \" 件"); } } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/index/vo/CuMemberMyMarketDetailVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/index/vo/CuMemberMyMarketDetailVO.java deleted file mode 100644 index 223b5133..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/index/vo/CuMemberMyMarketDetailVO.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hzs.sale.index.vo; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * 我的市场一下详情VO - * - * @Description: - * @Author: ljc - * @Time: 2023/5/9 14:34 - * @Classname: CuMemberMyMarketVO - * @Package_name: com.hzs.member.base.vo - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class CuMemberMyMarketDetailVO implements Serializable { - private static final long serialVersionUID = -2715842187394176784L; - - /** - * 国家 - */ - private Integer pkCountry; - - /** - * 省 - */ - private Integer province; - /** - * 市 - */ - private Integer city; - - /** - * 县 - */ - private Integer county; - - /** - * 点亮名称 - */ - private String lightName; - - -} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/index/vo/CuMemberMyMarketVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/index/vo/CuMemberMyMarketVO.java deleted file mode 100644 index 00db08ef..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/index/vo/CuMemberMyMarketVO.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hzs.sale.index.vo; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; -import java.util.List; - -/** - * 我的市场VO - * - * @Description: - * @Author: ljc - * @Time: 2023/5/9 14:34 - * @Classname: CuMemberMyMarketVO - * @Package_name: com.hzs.member.base.vo - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class CuMemberMyMarketVO implements Serializable { - private static final long serialVersionUID = -2715842187394176784L; - - /** - * 国家数 - */ - private Integer countryNum; - /** - * 地区数 - */ - private Integer regionNum; - - /** - * 我的国家数 - */ - private Integer myCountryNum; - /** - * 我的地区数 - */ - private Integer myRegionNum; - - /** - * 国家点亮名称 - */ - private String countryLightName; - - /** - * 市场详情 - */ - private List myMarketDetailVOList; - - -} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java index 0541e671..271b084e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java @@ -5,8 +5,6 @@ import com.hzs.common.domain.sale.ext.SaDeliverItemsExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderItemsExt; import com.hzs.common.domain.sale.order.SaOrder; -import com.hzs.sale.index.vo.CuMemberMyMarketDetailVO; -import com.hzs.sale.index.vo.CuMemberMyMarketVO; import com.hzs.sale.order.param.*; import com.hzs.sale.order.vo.*; import org.apache.ibatis.annotations.Param; @@ -229,25 +227,6 @@ public interface SaOrderMapper extends BaseMapper { */ List queryOrderType(@Param("memberId") Long memberId, @Param("pkCountry") Integer pkCountry); - /** - * 会员首页我的市场 - * - * @param pkMember 用户ID - * @param pkCountry 国家ID - * @return - */ - CuMemberMyMarketVO selectMyMarket(@Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry); - - - /** - * 会员首页我的市场 - * - * @param pkMember 用户ID - * @param pkCountry 国家ID - * @return - */ - List selectMyMarketDetail(@Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry); - /** * 查询指定数量会员SEQ * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderWaresLimitMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderWaresLimitMapper.java index 77ce7f4b..76a72efd 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderWaresLimitMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderWaresLimitMapper.java @@ -10,9 +10,6 @@ import java.util.List; /** * 会员商品限购 Mapper 接口 - * - * @author hzs - * @since 2025-03-11 */ public interface SaOrderWaresLimitMapper extends BaseMapper { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index ced1d7e7..78ef2ccf 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -9,7 +9,6 @@ import com.hzs.common.domain.sale.ext.*; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrderItems; import com.hzs.common.domain.system.config.BdGrade; -import com.hzs.sale.index.vo.CuMemberMyMarketVO; import com.hzs.sale.order.param.*; import com.hzs.sale.order.vo.*; import com.hzs.system.config.dto.GradeDTO; @@ -536,16 +535,6 @@ public interface ISaOrderService extends IService { */ void waresSalesAccrual(List waresNumberParamList); - - /** - * 会员首页我的市场 - * - * @param pkMember 用户ID - * @param pkCountry 国家ID - * @return - */ - CuMemberMyMarketVO selectMyMarket(Long pkMember, Integer pkCountry); - /** * 查询指定数量会员SEQ * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 0e0406e8..38622be0 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -47,8 +47,6 @@ import com.hzs.member.base.IMemberServiceApi; import com.hzs.member.detail.ICuMemberDetailServiceApi; import com.hzs.member.detail.ICuMemberServiceLogServiceApi; import com.hzs.sale.deliver.service.ISaDeliverItemsService; -import com.hzs.sale.index.vo.CuMemberMyMarketDetailVO; -import com.hzs.sale.index.vo.CuMemberMyMarketVO; import com.hzs.sale.order.dto.OrderQueryChargeDTO; import com.hzs.sale.order.mapper.SaOrderMapper; import com.hzs.sale.order.param.*; @@ -60,7 +58,6 @@ import com.hzs.system.base.IAreaServiceApi; import com.hzs.system.base.ICountryServiceApi; import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.ISystemConfigServiceApi; -import com.hzs.system.base.dto.CountryDTO; import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.config.IAreaCurrencyServiceApi; import com.hzs.system.config.IAwardsServiceApi; @@ -1752,30 +1749,6 @@ public class SaOrderServiceImpl extends ServiceImpl impl } } - @Override - public CuMemberMyMarketVO selectMyMarket(Long pkMember, Integer pkCountry) { - //查询全国市场 - CuMemberMyMarketVO cuMemberMyMarketVO = baseMapper.selectMyMarket(null, pkCountry); - CountryDTO country = countryServiceApi.getCountry(pkCountry).getData(); - //查询市场分布 - List cuMemberMyMarketDetailVOList = baseMapper.selectMyMarketDetail(pkMember, pkCountry); - cuMemberMyMarketVO.setMyMarketDetailVOList(cuMemberMyMarketDetailVOList); - //查询我的市场 - if (CollectionUtil.isNotEmpty(cuMemberMyMarketDetailVOList)) { - List countryNmus = cuMemberMyMarketDetailVOList.stream().map(CuMemberMyMarketDetailVO::getPkCountry).distinct().collect(Collectors.toList()); - cuMemberMyMarketVO.setMyCountryNum(countryNmus.size()); - cuMemberMyMarketVO.setMyRegionNum(cuMemberMyMarketDetailVOList.size()); - } else { - cuMemberMyMarketVO.setMyCountryNum(1); - cuMemberMyMarketVO.setMyRegionNum(0); - } - //海外暂时点亮国家 - if (!pkCountry.equals(CountryConstants.CHINA_COUNTRY)) { - cuMemberMyMarketVO.setMyMarketDetailVOList(Collections.singletonList(CuMemberMyMarketDetailVO.builder().lightName(country.getLightName()).build())); - } - return cuMemberMyMarketVO; - } - @Override public List querySeqList(Integer param) { return baseMapper.querySeqList(param); @@ -2208,8 +2181,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 当前会员等级 BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(updateGradeMember.getPkSettleGrade())).findFirst().get(); - if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0) { - // 会员等级大于等于V3(卓越),不能通过升级进行购买了 + if (memberGrade.getGradeValue().compareTo(EGrade.BRANCH_COMPANY.getValue()) >= 0) { + // 会员等级大于等于分公司,不能通过升级进行购买了 throw new ServiceException("当前已经是可以购买的最高等级"); } @@ -2226,15 +2199,6 @@ public class SaOrderServiceImpl extends ServiceImpl impl return bdGrade; } - /** - * 根据盒数计算等级 - * - * @param boxTotal 总盒数 - * @param gradeList 等级列表(可为空) - * @param memberGrade 当前等级 -- 为空则为注册,不为空则为升级 - * @param checkUpgrade 校验升级 - * @return - */ @Override public BdGrade getGradeByBox(final Integer boxTotal, List gradeList, BdGrade memberGrade, boolean checkUpgrade) { if (CollectionUtil.isEmpty(gradeList)) { @@ -2243,9 +2207,11 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (null == memberGrade) { // 注册处理 - // 小于V4等级 并且 升级盒数小于购买盒数的最大一个等级为注册等级 + // 小于总公司等级 并且 排除高级店主 并且 升级盒数小于购买盒数的最大一个等级为注册等级 return gradeList.stream() - .filter(tmpGrade -> tmpGrade.getGradeValue() < EGrade.VIP.getValue() && tmpGrade.getBoxNumber() <= boxTotal) + .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() + && tmpGrade.getGradeValue() < EGrade.COMPANY.getValue() + && tmpGrade.getBoxNumber() <= boxTotal) .max(Comparator.comparingInt(BdGrade::getGradeValue)).get(); } else { // 非注册处理 @@ -2263,8 +2229,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl // } // } - // 查询等级比现在当前等级大的,然后倒序排序,再查询 购买盒数 <= 等级盒数 的第一个等级,就是当前升级的等级 - Optional gradeOptional = gradeList.stream().filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue()) + // 查询等级比现在当前等级大的 并且 排除高级店主,然后倒序排序,再查询 购买盒数 <= 等级盒数 的第一个等级,就是当前升级的等级 + Optional gradeOptional = gradeList.stream() + .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() > memberGrade.getGradeValue()) .sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()) .filter(tmpGrade -> tmpGrade.getBoxNumber() != 0) .filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst(); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderWaresLimitServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderWaresLimitServiceImpl.java index 94934179..27aa9435 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderWaresLimitServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderWaresLimitServiceImpl.java @@ -12,9 +12,6 @@ import java.util.List; /** * 会员商品限购 服务实现类 - * - * @author hzs - * @since 2025-03-11 */ @Service public class SaOrderWaresLimitServiceImpl extends ServiceImpl implements ISaOrderWaresLimitService { diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml index a5763c8c..83f66172 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml @@ -1159,57 +1159,6 @@ order by order_type - - - - + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailRegionTreeQueryConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailRegionTreeQueryConstants.java new file mode 100644 index 00000000..9a4736a5 --- /dev/null +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailRegionTreeQueryConstants.java @@ -0,0 +1,17 @@ +package com.hzs.common.core.constant; + +/** + * 用户绑定收益区域查询类型常量 + */ +public class RetailRegionTreeQueryConstants { + + /** + * 市级 + */ + public static final String CITY = "city"; + /** + * 区级 + */ + public static final String COUNTY = "county"; + +} From 9b65d2bc58e318bf5420b3bb7a87d6325fdd2b93 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 10 Jul 2025 13:53:22 +0800 Subject: [PATCH 13/89] =?UTF-8?q?##=20Feat=20-=20=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/RetailMemberController.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java index 2c2712f2..228540a8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java @@ -76,14 +76,14 @@ public class RetailMemberController extends BaseController { } return AjaxResult.success(retailMemberInfoVO); } - @GetMapping("/test") - public AjaxResult test() { - List> test1 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.CITY); - List> test2 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.COUNTY); - log.info("test1: {}", test1); - log.info("test2: {}", test2); - return AjaxResult.success(); - } +// @GetMapping("/test") +// public AjaxResult test() { +// List> test1 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.CITY); +// List> test2 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.COUNTY); +// log.info("test1: {}", test1); +// log.info("test2: {}", test2); +// return AjaxResult.success(); +// } // /** From 43fd4cb92bcaae10c6d6167a570b7012275cc068 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 10 Jul 2025 16:31:10 +0800 Subject: [PATCH 14/89] =?UTF-8?q?##=20Feat=20-=20=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=94=B6=E7=9B=8A=E5=8C=BA=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CuHandleBusinessServiceImpl.java | 41 +++++++++++++------ .../CuMemberRetailRegionController.java | 4 ++ .../member/param/RetailMemberRegionParam.java | 2 +- .../mapper/member/base/CuMemberMapper.xml | 2 +- 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java index 3692cef8..db949508 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java @@ -22,6 +22,7 @@ import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.member.handleBusiness.CuHandleBusiness; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.system.base.BdCountry; import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.security.utils.SecurityUtils; @@ -40,6 +41,7 @@ import com.hzs.member.handlebusiness.vo.BusinessMemberVO; import com.hzs.member.handlebusiness.vo.BusinessTypeValueVO; import com.hzs.member.handlebusiness.vo.HandleBusinessShowVO; import com.hzs.member.handlebusiness.vo.HandleBusinessVO; +import com.hzs.retail.member.service.ICuMemberRetailRegionService; import com.hzs.system.base.ICountryServiceApi; import com.hzs.system.config.IAwardsServiceApi; import com.hzs.system.config.IGradeServiceApi; @@ -93,6 +95,8 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl 0) { - throw new ServiceException("已存在结算等级为公司的用户,不允许重复添加!"); - } - } else if (EGrade.S_VIP.getValue() == gradesMap.get(updateGradeId).getGradeValue()) { - // 2025年6月20日 新等级 分公司验省唯一 - int count = cuMemberService.validateBranchOfficeCount(businessMemberVO.getAreaId(), businessMemberVO.getPkMember()); - if (count > 0) { - throw new ServiceException("已存在结算绑定省的分公司用户,不允许重复添加!"); - } - } +// if (EGrade.COMPANY.getValue() == gradesMap.get(updateGradeId).getGradeValue()) { +// // 2025年6月20日 新等级 公司验全唯一 +// int count = cuMemberService.validateCompanyCount(); +// if (count > 0) { +// throw new ServiceException("已存在结算等级为公司的用户,不允许重复添加!"); +// } +// } else if (EGrade.S_VIP.getValue() == gradesMap.get(updateGradeId).getGradeValue()) { +// // 2025年6月20日 新等级 分公司验省唯一 +// int count = cuMemberService.validateBranchOfficeCount(businessMemberVO.getAreaId(), businessMemberVO.getPkMember()); +// if (count > 0) { +// throw new ServiceException("已存在结算绑定省的分公司用户,不允许重复添加!"); +// } +// } // 记录升级历史 cuMemberLevel = CuMemberLevel.builder() .pkMember(businessMemberVO.getPkMember()) @@ -773,6 +777,17 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl delWrapper = new LambdaQueryWrapper<>(); + delWrapper.eq(CuMemberRetailRegion::getPkMember, businessMemberVO.getPkMember()); + cuMemberRetailRegionService.remove(delWrapper); + } cuMemberLevel.setPkCountry(handleBusinessVO.getPkCountry()); cuMemberLevel.setPkCreator(loginUser.getUserId()); cuMemberLevelList.add(cuMemberLevel); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java index 385b91f0..5cbe2cc2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java @@ -1,6 +1,7 @@ package com.hzs.retail.member.controller.manage; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.common.core.annotation.Log; @@ -152,6 +153,9 @@ public class CuMemberRetailRegionController extends BaseController { return AjaxResult.error(ConfigMsgConstants.MEMBER_RETAIL_REGION_REPEAT); } // 校验区域是否被占用 + if(ObjectUtil.isEmpty(mrrExt.getCounty())){ + mrrExt.setCounty(-1); + } int cuMemberRetailRegion = cuMemberRetailRegionService.count(Wrappers.lambdaQuery() .eq(CuMemberRetailRegion::getProvince, mrrExt.getProvince()) .eq(CuMemberRetailRegion::getCity, mrrExt.getCity()) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java index a4b04788..3af37f76 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java @@ -30,7 +30,7 @@ public class RetailMemberRegionParam implements Serializable { /** * 县 */ - @NotNull(message = "请选择收益区域") +// @NotNull(message = "请选择收益区域") private Integer county; /** diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index c8257b3a..b9d2940f 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -856,7 +856,7 @@ - pk_settle_grade = #{value}, pk_area_id = #{businessMemberList[${index}].areaId} + pk_settle_grade = #{value} From ae9c04361aa90514d2c1eae2e7f9ae0b65d90308 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 10 Jul 2025 17:03:07 +0800 Subject: [PATCH 15/89] =?UTF-8?q?##=20=E7=BB=93=E7=AE=97=E6=97=A5=E5=A5=96?= =?UTF-8?q?=EF=BC=9B=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9B=A2=E9=98=9F=E6=A0=A1=E9=AA=8C=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/ICuMemberDetailServiceApi.java | 9 - .../hzs/bonus/base/mapper/CuMemberMapper.java | 7 + .../bonus/base/service/ICuMemberService.java | 7 + .../service/impl/CuMemberServiceImpl.java | 7 + .../mapper/CuMemberBonusCoachMapper.java | 43 -- .../mapper/CuMemberBonusExpandMapper.java | 43 -- .../service/ICuMemberBonusCoachService.java | 27 - .../service/ICuMemberBonusExpandService.java | 28 -- .../bonus/service/impl/BonusSettleHandle.java | 17 + .../service/impl/BonusSettleRangeHandle.java | 476 ++++++++++++++++-- .../service/impl/BonusSettleServiceImpl.java | 90 +--- .../impl/CuMemberBonusCoachServiceImpl.java | 51 -- .../impl/CuMemberBonusExpandServiceImpl.java | 49 -- .../impl/CuMemberBonusServiceImpl.java | 72 +-- .../detail/mapper/CuMemberGradeMapper.java | 28 ++ .../detail/service/ICuMemberGradeService.java | 32 ++ .../impl/CuMemberGradeServiceImpl.java | 33 ++ .../achieve/CuMemberRetailRangeMapper.xml | 2 + .../mapper/bonus/base/CuMemberMapper.xml | 25 + .../bonus/bonus/CuMemberBonusCoachMapper.xml | 269 ---------- .../bonus/bonus/CuMemberBonusExpandMapper.xml | 279 ---------- .../bonus/detail/CuMemberGradeMapper.xml | 53 ++ .../mapper/bonus/order/BonusOrderMapper.xml | 7 +- .../achieve/mapper/CuMemberTreeMapper.java | 24 - .../achieve/service/ICuMemberTreeService.java | 18 - .../service/impl/CuMemberTreeServiceImpl.java | 10 - .../impl/CuMemberBusinessServiceImpl.java | 4 +- .../service/impl/CuMemberServiceImpl.java | 3 + .../detail/mapper/CuMemberAwardsMapper.java | 34 -- .../provider/CuMemberDetailProvider.java | 9 - .../service/ICuMemberAwardsService.java | 9 - .../impl/CuMemberAwardsServiceImpl.java | 163 ------ .../member/achieve/CuMemberTreeMapper.xml | 30 -- .../member/detail/CuMemberAwardsMapper.xml | 69 --- .../api/ApiRetailWaresController.java | 27 +- .../api/ApiBdStorehouseController.java | 13 +- .../base/mapper/BdStorehouseMapper.java | 10 +- .../service/impl/BdStorehouseServiceImpl.java | 60 +-- .../core/constant/MemberFieldConstants.java | 12 - .../common/core/constant/RetailConstants.java | 120 ++++- .../core/constant/msg/BonusMsgConstants.java | 5 + .../hzs/common/core/enums/EBonusItems.java | 33 +- .../com/hzs/common/core/enums/EGrade.java | 2 +- .../hzs/common/core/enums/EUpgradeType.java | 2 +- .../domain/member/bonus/CuMemberBonus.java | 4 +- .../member/detail/ext/CuMemberAwardsExt.java | 23 - .../common/domain/sale/ext/SaOrderExt.java | 31 -- .../domain/sale/ext/SaOrderSelfLogExt.java | 7 +- 48 files changed, 845 insertions(+), 1531 deletions(-) delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusExpandServiceImpl.java create mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java create mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java create mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java delete mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusCoachMapper.xml delete mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml create mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml delete mode 100644 bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/ext/CuMemberAwardsExt.java diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberDetailServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberDetailServiceApi.java index 81d8a032..69e0b516 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberDetailServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/detail/ICuMemberDetailServiceApi.java @@ -3,7 +3,6 @@ package com.hzs.member.detail; import com.hzs.common.core.domain.R; import com.hzs.common.domain.member.base.CuMemberRegister; import com.hzs.common.domain.member.detail.CuMemberLevel; -import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt; import java.util.List; @@ -29,14 +28,6 @@ public interface ICuMemberDetailServiceApi { */ R> getUpgradeList(Long pkMember); - /** - * 查询手动开通奖衔的最新一条 - * - * @param pkMember 会员ID - * @return - */ - R queryLastManualAwards(Long pkMember); - /** * 查询会员注册信息 * 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 50fae8e2..fd941ccc 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,8 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberExt; import org.apache.ibatis.annotations.Param; +import java.util.Date; + /** * 会员 Mapper 接口 */ @@ -19,4 +21,9 @@ public interface CuMemberMapper extends BaseMapper { */ CuMemberExt queryLoginMember(@Param("memberCode") String memberCode, @Param("pkMember") Long pkMember); + /** + * 更新会员等级 + */ + void updateCuMemberLevel(@Param("startDate") Date startDate, @Param("endDate") Date endDate); + } 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 8c823474..18306a32 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 @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberExt; +import java.util.Date; + /** * 会员 服务类 */ @@ -17,4 +19,9 @@ public interface ICuMemberService extends IService { */ CuMemberExt getMemberByCode(String memberCode); + /** + * 更新会员等级 + */ + void updateCuMemberLevel(Date startDate, Date endDate); + } 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 3c459067..f33cd392 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 @@ -7,6 +7,8 @@ import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.bonus.base.mapper.CuMemberMapper; import org.springframework.stereotype.Service; +import java.util.Date; + /** * 会员 服务实现类 */ @@ -18,4 +20,9 @@ public class CuMemberServiceImpl extends ServiceImpl i return baseMapper.queryLoginMember(memberCode, null); } + @Override + public void updateCuMemberLevel(Date startDate, Date endDate) { + baseMapper.updateCuMemberLevel(startDate, endDate); + } + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java deleted file mode 100644 index 3ce3c4d4..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hzs.bonus.bonus.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hzs.common.domain.member.bonus.CuMemberBonusCoach; -import com.hzs.common.domain.member.ext.CuMemberBonusCoachExt; -import com.hzs.bonus.bonus.param.BonusParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 会员奖金-辅导收益明细表 Mapper 接口 - */ -public interface CuMemberBonusCoachMapper extends BaseMapper { - - /** - * 删除会员奖金汇总表 - * - * @param period 结算期间 - */ - void deleteCuMemberBonusCoach(Integer period); - - /** - * 批量插入会员奖金主表 - * - * @param cuMemberBonusCoachList 会员奖金 - */ - void batchInsertCuMemberBonusCoach(@Param("cuMemberBonusCoachList") List cuMemberBonusCoachList); - - /** - * 根据查询条件查询固定的奖金明细 - * - * @param bonusParam 查询条件 - */ - List queryMemberBonusCoachByBonusItems(BonusParam bonusParam); - - /** - * 根据查询条件查询固定的奖金明细 - * - * @param bonusParam 查询条件 - */ - List queryMemberBonusCoachByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam); -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java deleted file mode 100644 index eff30d4b..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hzs.bonus.bonus.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hzs.common.domain.member.bonus.CuMemberBonusExpand; -import com.hzs.common.domain.member.ext.CuMemberBonusExpandExt; -import com.hzs.bonus.bonus.param.BonusParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 会员奖金-拓展收益明细表 Mapper 接口 - */ -public interface CuMemberBonusExpandMapper extends BaseMapper { - - /** - * 删除会员奖金汇总表 - * - * @param period 结算期间 - */ - void deleteCuMemberBonusExpand(Integer period); - - /** - * 批量插入会员奖金主表 - * - * @param cuMemberBonusExpandList 会员奖金 - */ - void batchInsertCuMemberBonusExpand(@Param("cuMemberBonusExpandList") List cuMemberBonusExpandList); - - /** - * 根据查询条件查询固定的奖金明细 - * - * @param bonusParam 查询条件 - */ - List queryMemberBonusExpandByBonusItems(BonusParam bonusParam); - - /** - * 根据查询条件查询固定的奖金明细 - * - * @param bonusParam 查询条件 - */ - List queryMemberBonusExpandByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam); -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java deleted file mode 100644 index 876debdf..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.hzs.bonus.bonus.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.hzs.common.domain.member.bonus.CuMemberBonusCoach; - -import java.util.List; -import java.util.Set; - -/** - * 会员奖金-辅导收益明细表 服务类 - */ -public interface ICuMemberBonusCoachService extends IService { - - /** - * 删除会员奖金汇总表 - * - * @param period 结算期间 - */ - void deleteCuMemberBonusCoach(Integer period); - - /** - * 批量插入会员奖金主表 - * - * @param cuMemberBonusCoachList 会员奖金 - */ - void batchInsertCuMemberBonusCoach(List cuMemberBonusCoachList, Set memberIdSet); -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java deleted file mode 100644 index 9143331f..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.hzs.bonus.bonus.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.hzs.common.domain.member.bonus.CuMemberBonusExpand; - -import java.util.List; -import java.util.Set; - -/** - * 会员奖金-拓展收益明细表 服务类 - */ -public interface ICuMemberBonusExpandService extends IService { - - /** - * 删除会员奖金汇总表 - * - * @param period 结算期间 - */ - void deleteCuMemberBonusExpand(Integer period); - - /** - * 批量插入会员奖金主表 - * - * @param cuMemberBonusExpandList 会员奖金 - */ - void batchInsertCuMemberBonusExpand(List cuMemberBonusExpandList, Set memberIdSet); - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java index d9c3b1a4..15135c09 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java @@ -53,6 +53,23 @@ public abstract class BonusSettleHandle { cuMemberBonusRange.setRemark(remark); } + /** + * 获得 复购级差收益的备注 + * + * @param saOrderExt 订单编号 + * @param cuMemberBonusRange 报单服务费 + * @param sourceMemberRangeExt 提供奖金的人 + * @param targetMemberRangeExt 获得奖金的人 + */ + protected void rangeRepurRetailRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt, + CuMemberRetailRangeExt targetMemberRangeExt) { + String remark = String.format(BonusMsgConstants.REPUR_RANGE, saOrderExt.getOrderCode(), + sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(), + targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(), + cuMemberBonusRange.getCalAchieve(), sourceMemberRangeExt.getGradeName(), targetMemberRangeExt.getGradeName()); + cuMemberBonusRange.setRemark(remark); + } + protected CuMemberBonus getCuMemberBonus(Integer period, Map cuMemberBonusMap, Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) { if (cuMemberBonusMap.containsKey(pkMember)) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index c39bcc5f..69034e1a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -2,6 +2,7 @@ package com.hzs.bonus.bonus.service.impl; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.bonus.vo.BonusRecordDetailVO; +import com.hzs.bonus.detail.service.ICuMemberGradeService; import com.hzs.bonus.order.service.IBonusOrderService; import com.hzs.common.core.constant.MagicNumberConstants; import com.hzs.common.core.constant.RetailConstants; @@ -12,10 +13,9 @@ import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.bonus.BdBonusDeduct; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.bonus.*; -import com.hzs.common.domain.member.detail.CuMemberAwards; +import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.domain.sale.ext.SaOrderWaresExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.BdGrade; import com.hzs.member.detail.ICuMemberServiceLogServiceApi; @@ -41,13 +41,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { private ICuMemberRetailRangeService iCuMemberRetailRangeService; @Autowired private IBonusOrderService iBonusOrderService; + @Autowired + private ICuMemberGradeService iCuMemberGradeService; @DubboReference ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; /** * 日结: - * 计算新零售团队的奖金,首购级差、复购级差 + * 计算新零售奖金,首购级差、复购级差 */ void calculateRetailBonusByDay(String settleDate, Map cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO, Integer period, Integer yesterdayPeriod, Boolean isSameMonth) { @@ -78,19 +80,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { Map activateMap = this.getActivateMap(settleStartDate); if (retailOrderList.size() > 0) { + // 会员购买升级记录 + Map memberLevelMap = new HashMap<>(); + List memberLevelList = iCuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName); + memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel)); + + // 会员的自动升级记录 + Map autoLevelMap = new HashMap<>(); + List autoLevelList = iCuMemberGradeService.listAutoLevel(settleStartDate, settleEndDate); + autoLevelList.forEach(tmpLevel -> autoLevelMap.put(tmpLevel.getPkOrder(), tmpLevel)); + // 按照血缘,查询该会员所有伞上会员 List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); // 会员结算map(key:会员ID,value:结算扩展) Map memberRangeExtMap = new HashMap<>(); - // 等级map(key:等级值,value:等级对象) - Map gradeMap = new HashMap<>(); // 等级map(key:等级ID,value:等级对象) Map gradeIdMap = new HashMap<>(); // 等级列表 List retaiGradeList = bonusConfigDTO.getRetaiGradeList(); for (BdGrade bdGrade : retaiGradeList) { - gradeMap.put(bdGrade.getGradeValue(), bdGrade); gradeIdMap.put(bdGrade.getPkId(), bdGrade); } // 结算会员map处理 @@ -100,14 +109,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } - // 平级收益 + // 级差收益 List cuMemberBonusRangeList = new ArrayList<>(); // 上面更新网体,按会员表是否激活进行处理 for (SaOrderExt saOrderExt : retailOrderList) { CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || - EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { + if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() + || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { // 注册、升级才能算激活状态 sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue()); } @@ -118,12 +127,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 订单指定产品盒数(计算等级使用) - int boxNum = 0; - for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { - if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) { - boxNum += saOrderItems.getWaresQuantity(); - } - } + int boxNum = saOrderExt.getBoxNum(); + // 个人累计消费pv BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); // 复购、重消,盒数、业绩算个人累计数据(盒数、业绩) @@ -147,13 +152,35 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { && boxNum > 0 ) { // 注册或升级订单并且存在盒数产品,才有 直推级差 - for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { - // 直推级差 - cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt)); - } - } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { - // TODO new 复购订单,计算复购级差 + cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt, gradeIdMap)); + // 订单存在升级记录 + if (memberLevelMap.containsKey(saOrderExt.getPkId())) { + CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId()); + if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) { + BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel()); + if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) { + sourceMemberRangeExt.setPkGrade(bdGrade.getPkId()); + sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue()); + sourceMemberRangeExt.setGradeName(bdGrade.getGradeName()); + } + } + } + // 订单存在自动升级记录(高级店主处理) + if (autoLevelMap.containsKey(saOrderExt.getPkId())) { + CuMemberLevel cuMemberLevel = autoLevelMap.get(saOrderExt.getPkId()); + if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) { + BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel()); + CuMemberRetailRangeExt tmpMemberRetailRange = memberRangeExtMap.get(cuMemberLevel.getPkMember()); + tmpMemberRetailRange.setPkGrade(bdGrade.getPkId()); + tmpMemberRetailRange.setGradeValue(bdGrade.getGradeValue()); + tmpMemberRetailRange.setGradeName(bdGrade.getGradeName()); + } + } + } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() + && boxNum > 0) { + // 复购订单,计算复购级差 + cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt)); } } if (cuMemberBonusRangeList.size() > 0) { @@ -171,10 +198,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { /** * 累计团队盒数、业绩等 */ - public List calculateRetailRangeGradeAwards(Map memberRangeExtMap, SaOrderExt saOrderExt, - Integer boxNum, Map activateMap) { - // 会员奖衔升级列表 - List cuMemberAwardsList = new ArrayList<>(); + public void calculateRetailRangeGradeAwards(Map memberRangeExtMap, SaOrderExt saOrderExt, + Integer boxNum, Map activateMap) { // 订单会员 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 订单会员的推荐人 @@ -207,15 +232,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent()); } - return cuMemberAwardsList; } /** * 计算直推级差收益 */ List calculateRetailRangeBonus(Map memberRangeExtMap, Map cuMemberBonusMap, - Map gradeMap, BonusConfigDTO bonusConfigDTO, Integer period, - SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) { + BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map gradeIdMap) { // 直推级差返回数据 List memberBonusRangeList = new ArrayList<>(); @@ -223,27 +246,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 推荐人 long pkParent = sourceMemberRangeExt.getPkParent(); + // 订单等级值 + Integer orderGradeValue = gradeIdMap.get(saOrderExt.getPkGrade()).getGradeValue(); - // 商品最终价格 - BigDecimal waresPrice = saOrderItems.getWaresPrice(); - // 商品数量 - BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity()); - - // 会员顺序 - int memberLevel = 0; // 前一个会员等级 int beforeGradeValue = 0; + // 前面累计奖金 + BigDecimal totalBonus = BigDecimal.ZERO; + // 平级合伙人数量 + int v3Count = 1; // 计算直推级差 while (true) { + // 上一次处理的是公司等级,则结束退出 + if (beforeGradeValue == EGrade.COMPANY.getValue()) { + break; + } // 推荐人 CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent); - if (targetMemberRangeExt == null) { + if (null == targetMemberRangeExt) { break; } // 推荐人的推荐人 pkParent = targetMemberRangeExt.getPkParent(); - // 会员顺序 - memberLevel += 1; if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() || ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() @@ -254,33 +278,252 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { continue; } // 当前会员等级值 - int calGradeValue = targetMemberRangeExt.getGradeValue(); + int targetGradeValue = targetMemberRangeExt.getGradeValue(); // 直推级差收益 BigDecimal rangeBonusIncome = BigDecimal.ZERO; - if (memberLevel == 1) { - // 直推,拿80 - rangeBonusIncome = rangeBonusIncome.add(RetailConstants.FIRST_DIRECT); - } else if (memberLevel == 2) { - // 间推,拿20 - rangeBonusIncome = rangeBonusIncome.add(RetailConstants.FIRST_INDIRECT); + if (EGrade.HAI_FAN.getValue() == orderGradeValue) { + // 订单等级是会员、VIP + if (targetGradeValue > beforeGradeValue) { + // 当前会员等级大于上一个会员等级 + if (EGrade.HAI_FAN.getValue() == targetGradeValue) { + // V1 推拿 60 + rangeBonusIncome = RetailConstants.V1_V1; + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V1_V1); + } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { + // V2 推拿 80,或者减去之前累计 + rangeBonusIncome = RetailConstants.V2_V1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V2_V1.subtract(totalBonus)); + } else if (EGrade.MAKER.getValue() == targetGradeValue) { + // V3 推拿 100,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V1.subtract(totalBonus)); + } else if (EGrade.VIP.getValue() == targetGradeValue) { + // V4 推拿 200,或者减去之前累计 + rangeBonusIncome = RetailConstants.V4_V1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V4_V1.subtract(totalBonus)); + } else if (EGrade.S_VIP.getValue() == targetGradeValue) { + // V5 推拿 208,或者减去之前累计 + rangeBonusIncome = RetailConstants.V5_V1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V5_V1.subtract(totalBonus)); + } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { + // V6 推拿 220 ,或者减去之前累计 + rangeBonusIncome = RetailConstants.V6_V1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V6_V1.subtract(totalBonus)); + } else if (EGrade.COMPANY.getValue() == targetGradeValue) { + // V7 推拿 240,或者减去之前累计 + rangeBonusIncome = RetailConstants.V7_V1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V7_V1.subtract(totalBonus)); + } + } + } else if (EGrade.YOU_KE.getValue() == orderGradeValue) { + // 订单等级是VIP + if (targetGradeValue > beforeGradeValue) { + // 当前会员等级大于上一个会员等级 + if (EGrade.HAI_FAN.getValue() == targetGradeValue) { + // V1 推拿 300 + rangeBonusIncome = RetailConstants.V1_V2; + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V1_V2); + } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { + // V2 推拿 400,或者减去之前累计 + rangeBonusIncome = RetailConstants.V2_V2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V2_V2.subtract(totalBonus)); + } else if (EGrade.MAKER.getValue() == targetGradeValue) { + // V3 推拿 500,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V2.subtract(totalBonus)); + } else if (EGrade.VIP.getValue() == targetGradeValue) { + // V4 推拿 1000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V4_V2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V4_V2.subtract(totalBonus)); + } else if (EGrade.S_VIP.getValue() == targetGradeValue) { + // V5 推拿 1040,或者减去之前累计 + rangeBonusIncome = RetailConstants.V5_V2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V5_V2.subtract(totalBonus)); + } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { + // V6 推拿 1100,或者减去之前累计 + rangeBonusIncome = RetailConstants.V6_V2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V6_V2.subtract(totalBonus)); + } else if (EGrade.COMPANY.getValue() == targetGradeValue) { + // V7 推拿 1200,或者减去之前累计 + rangeBonusIncome = RetailConstants.V7_V2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V7_V2.subtract(totalBonus)); + } + } + } else if (EGrade.MAKER.getValue() == orderGradeValue) { + // 订单是合伙人 + if (targetGradeValue > beforeGradeValue) { + // 当前等级大于之前等级 + if (EGrade.HAI_FAN.getValue() == targetGradeValue) { + // V1 推拿 600 + rangeBonusIncome = RetailConstants.V1_V3; + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V1_V3); + } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { + // V2 推拿 800,或者减去之前累计 + rangeBonusIncome = RetailConstants.V2_V3.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V2_V3.subtract(totalBonus)); + } else if (EGrade.MAKER.getValue() == targetGradeValue) { + // V3 推拿 1000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V3_1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V3_1.subtract(totalBonus)); + } else if (EGrade.VIP.getValue() == targetGradeValue) { + // V4 推拿 2000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V4_V3.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V4_V3.subtract(totalBonus)); + } else if (EGrade.S_VIP.getValue() == targetGradeValue) { + // V5 推拿 2080,或者减去之前累计 + rangeBonusIncome = RetailConstants.V5_V3.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V5_V3.subtract(totalBonus)); + } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { + // V6 推拿 2200,或者减去之前累计 + rangeBonusIncome = RetailConstants.V6_V3.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V6_V3.subtract(totalBonus)); + } else if (EGrade.COMPANY.getValue() == targetGradeValue) { + // V7 推拿 2400,或者减去之前累计 + rangeBonusIncome = RetailConstants.V7_V3.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V7_V3.subtract(totalBonus)); + } + } else if (EGrade.MAKER.getValue() == beforeGradeValue + && EGrade.MAKER.getValue() == targetGradeValue) { + // 之前和现在都是合伙人,处理平级 + if (v3Count == 1) { + // V3第一平级 推拿 1200,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V3_2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V3_2.subtract(totalBonus)); + v3Count++; + } else if (v3Count == 2) { + // V3第二平级 推拿 1300,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V3_3.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V3_3.subtract(totalBonus)); + v3Count++; + } + } + } else if (EGrade.VIP.getValue() == orderGradeValue) { + // 订单是合伙人 + if (targetGradeValue > beforeGradeValue) { + // 当前等级大于之前等级 + if (EGrade.HAI_FAN.getValue() == targetGradeValue) { + // V1 推拿 1200 + rangeBonusIncome = RetailConstants.V1_V4; + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V1_V4); + } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { + // V2 推拿 1600,或者减去之前累计 + rangeBonusIncome = RetailConstants.V2_V4.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V2_V4.subtract(totalBonus)); + } else if (EGrade.MAKER.getValue() == targetGradeValue) { + // V3 推拿 2000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V4_1.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V4_1.subtract(totalBonus)); + } else if (EGrade.VIP.getValue() == targetGradeValue) { + // V4 推拿 4000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V4_V4.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V4_V4.subtract(totalBonus)); + } else if (EGrade.S_VIP.getValue() == targetGradeValue) { + // V5 推拿 4160,或者减去之前累计 + rangeBonusIncome = RetailConstants.V5_V4.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V5_V4.subtract(totalBonus)); + } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { + // V6 推拿 4400,或者减去之前累计 + rangeBonusIncome = RetailConstants.V6_V4.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V6_V4.subtract(totalBonus)); + } else if (EGrade.COMPANY.getValue() == targetGradeValue) { + // V7 推拿 4800,或者减去之前累计 + rangeBonusIncome = RetailConstants.V7_V4.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V7_V4.subtract(totalBonus)); + } + } else if (EGrade.MAKER.getValue() == beforeGradeValue + && EGrade.MAKER.getValue() == targetGradeValue) { + // 之前和现在都是合伙人,处理平级 + if (v3Count == 1) { + // V3第一平级 推拿 2400,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V4_2.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V4_2.subtract(totalBonus)); + v3Count++; + } else if (v3Count == 2) { + // V3第二平级 推拿 2600,或者减去之前累计 + rangeBonusIncome = RetailConstants.V3_V4_3.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V3_V4_3.subtract(totalBonus)); + v3Count++; + } + } + } else if (EGrade.BRANCH_COMPANY.getValue() == orderGradeValue) { + // 订单是分公司 + if (targetGradeValue >= EGrade.VIP.getValue() && targetGradeValue > beforeGradeValue) { + // 博羚店主以上才有级差 并且 当前等级大于之前等级 + if (EGrade.VIP.getValue() == targetGradeValue) { + // 博羚店主拿 50000 + rangeBonusIncome = RetailConstants.V4_V6.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V4_V6.subtract(totalBonus)); + } else if (EGrade.S_VIP.getValue() == targetGradeValue) { + // 高级店主拿 52000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V5_V6.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V5_V6.subtract(totalBonus)); + } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { + // 分公司拿 55000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V6_V6.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V6_V6.subtract(totalBonus)); + } else if (EGrade.COMPANY.getValue() == targetGradeValue) { + // 总公司拿 60000,或者减去之前累计 + rangeBonusIncome = RetailConstants.V7_V6.subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.V7_V6.subtract(totalBonus)); + } + } } - // TODO new - + // 前一级会员等级 + beforeGradeValue = targetGradeValue; if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) { // 处理直推级差收益 + // 会员奖金 CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue()); + // 会员级差 CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); cuMemberBonusRange.setCalValue(BigDecimal.ZERO); - cuMemberBonusRange.setCalAchieve(waresPrice); + cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount()); cuMemberBonusRange.setPretaxIncome(rangeBonusIncome); cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade()); cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade()); - cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId()); + cuMemberBonusRange.setPkOrder(saOrderExt.getPkId()); + cuMemberBonusRange.setPkOrderItems(0L); rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { @@ -293,6 +536,141 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return memberBonusRangeList; } + /** + * 计算复购级差收益 + */ + List calculateRetailRepurRangeBonus(Map memberRangeExtMap, Map cuMemberBonusMap, + BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt) { + // 直推级差返回数据 + List memberBonusRangeList = new ArrayList<>(); + + // 订单下单人自己 + CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); + // 推荐人 + long pkParent = sourceMemberRangeExt.getPkParent(); + // 商品盒数 + BigDecimal boxNum = new BigDecimal(saOrderExt.getBoxNum()); + + // 前一个会员等级 + int beforeGradeValue = 0; + // 前面累计奖金 + BigDecimal totalBonus = BigDecimal.ZERO; + // 平级合伙人数量 + int v3Count = 1; + // 计算直推级差 + while (true) { + // 上一次处理的是公司等级,则结束退出 + if (beforeGradeValue == EGrade.COMPANY.getValue()) { + break; + } + // 推荐人 + CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent); + if (null == targetMemberRangeExt) { + break; + } + // 推荐人的推荐人 + pkParent = targetMemberRangeExt.getPkParent(); + + if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() + || ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() + || targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() + || targetMemberRangeExt.getGradeValue() == EGrade.START_UP.getValue() + || EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) { + // 停算收益、非正常会员、未激活、等级为顾客、停止收益,直接跳过 + continue; + } + // 当前会员等级值 + int targetGradeValue = targetMemberRangeExt.getGradeValue(); + + // 复购级差收益 + BigDecimal rangeBonusIncome = BigDecimal.ZERO; + + if (targetGradeValue > beforeGradeValue) { + // 当前等级大于之前等级 + if (EGrade.HAI_FAN.getValue() == targetGradeValue) { + // V1 拿 6 + rangeBonusIncome = RetailConstants.REPURCHASE_V1.multiply(boxNum); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V1).multiply(boxNum); + } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { + // V2 拿 8,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V2.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V2.subtract(totalBonus).multiply(boxNum)); + } else if (EGrade.MAKER.getValue() == targetGradeValue) { + // V3 拿 10,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V3_1.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_1.subtract(totalBonus).multiply(boxNum)); + } else if (EGrade.VIP.getValue() == targetGradeValue) { + // V4 拿 20,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V4.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V4.subtract(totalBonus).multiply(boxNum)); + } else if (EGrade.S_VIP.getValue() == targetGradeValue) { + // V5 拿 20.8,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V5.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V5.subtract(totalBonus).multiply(boxNum)); + } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { + // V6 拿 22,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V6.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V6.subtract(totalBonus).multiply(boxNum)); + } else if (EGrade.COMPANY.getValue() == targetGradeValue) { + // V7 拿 24,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V7.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V7.subtract(totalBonus).multiply(boxNum)); + } + } else if (EGrade.MAKER.getValue() == beforeGradeValue + && EGrade.MAKER.getValue() == targetGradeValue) { + // 之前和现在都是合伙人,处理平级 + if (v3Count == 1) { + // V3第一平级 推拿 12,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V3_2.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_2.subtract(totalBonus).multiply(boxNum)); + v3Count++; + } else if (v3Count == 2) { + // V3第二平级 推拿 13,或者减去之前累计 + rangeBonusIncome = RetailConstants.REPURCHASE_V3_3.multiply(boxNum).subtract(totalBonus); + // 前面累计的奖金 + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_3.subtract(totalBonus).multiply(boxNum)); + v3Count++; + } + } + + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + + if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) { + // 处理复购级差收益 + // 会员奖金 + CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), + targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); + int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_INCOME.getValue()); + // 会员级差 + CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); + cuMemberBonusRange.setCalValue(BigDecimal.ZERO); + cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount()); + cuMemberBonusRange.setPretaxIncome(rangeBonusIncome); + cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade()); + cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade()); + cuMemberBonusRange.setPkOrder(saOrderExt.getPkId()); + cuMemberBonusRange.setPkOrderItems(0L); + rangeRepurRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); + BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); + if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { + cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome())); + setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange); + } + memberBonusRangeList.add(cuMemberBonusRange); + } + } + return memberBonusRangeList; + } + private CuMemberBonusRange getCuMemberRetailBonusRange(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt, CuMemberBonus cuMemberBonus, Integer pkBonusItems) { CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder() 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 0a5b1c6d..5639af2f 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 @@ -31,50 +31,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService { @Autowired private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @Autowired + private ICuMemberBonusService iCuMemberBonusService; + @Autowired + private ICuMemberBonusPushService iCuMemberBonusPushService; + @Autowired + private ICuMemberBonusDetailService iCuMemberBonusDetailService; + @Autowired + private ICuMemberBonusRangeService iCuMemberBonusRangeService; + @Autowired private BonusSettleRangeHandle bonusSettleRangeHandle; - private ICuMemberBonusService cuMemberBonusService; - - private ICuMemberBonusPushService cuMemberBonusPushService; - - private ICuMemberBonusExpandService cuMemberBonusExpandService; - - private ICuMemberBonusCoachService cuMemberBonusCoachService; - - private ICuMemberBonusDetailService cuMemberBonusDetailService; - - private ICuMemberBonusRangeService cuMemberBonusRangeService; - - @Autowired - public void setCuMemberBonusPushService(ICuMemberBonusPushService cuMemberBonusPushService) { - this.cuMemberBonusPushService = cuMemberBonusPushService; - } - - @Autowired - public void setCuMemberBonusExpandService(ICuMemberBonusExpandService cuMemberBonusExpandService) { - this.cuMemberBonusExpandService = cuMemberBonusExpandService; - } - - @Autowired - public void setCuMemberBonusCoachService(ICuMemberBonusCoachService cuMemberBonusCoachService) { - this.cuMemberBonusCoachService = cuMemberBonusCoachService; - } - - @Autowired - public void setCuMemberBonusDetailService(ICuMemberBonusDetailService cuMemberBonusDetailService) { - this.cuMemberBonusDetailService = cuMemberBonusDetailService; - } - - @Autowired - public void setCuMemberBonusRangeService(ICuMemberBonusRangeService cuMemberBonusRangeService) { - this.cuMemberBonusRangeService = cuMemberBonusRangeService; - } - - @Autowired - public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) { - this.cuMemberBonusService = cuMemberBonusService; - } - @Override @Transactional(rollbackFor = Exception.class) public void calculateCuMemberBonus(String settleDate, List saOrderExtList) { @@ -96,7 +62,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 今天和昨天是否同月 Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday)); - // 计算新零售团队奖金 + // 计算新零售奖金 bonusSettleRangeHandle.calculateRetailBonusByDay(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO, period, yesterdayPeriod, isSameMonth); @@ -115,24 +81,18 @@ public class BonusSettleServiceImpl implements IBonusSettleService { * @param bonusRecordDetailVO 奖金明细表 */ void insertCuMemberBonus(String settleDate, Integer period, Map cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) { - cuMemberBonusPushService.deleteCuMemberBonusPush(period); - cuMemberBonusExpandService.deleteCuMemberBonusExpand(period); - cuMemberBonusCoachService.deleteCuMemberBonusCoach(period); - cuMemberBonusDetailService.deleteCuMemberBonusDetail(period); - cuMemberBonusRangeService.deleteCuMemberBonusRange(period); - cuMemberBonusService.deleteCuMemberBonus(period); + iCuMemberBonusPushService.deleteCuMemberBonusPush(period); + iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period); + iCuMemberBonusRangeService.deleteCuMemberBonusRange(period); + iCuMemberBonusService.deleteCuMemberBonus(period); if (cuMemberBonusMap.size() == 0) { return; } List batchMemberBonusPushList = new ArrayList<>(); - List batchMemberBonusExpandList = new ArrayList<>(); - List batchMemberBonusCoachList = new ArrayList<>(); List batchMemberBonusDetailList = new ArrayList<>(); List batchMemberBonusRangeList = new ArrayList<>(); List cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap); List cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList(); - List cuMemberBonusExpandList = bonusRecordDetailVO.getCuMemberBonusExpandList(); - List cuMemberBonusCoachList = bonusRecordDetailVO.getCuMemberBonusCoachList(); List cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList(); List cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList(); if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) { @@ -140,16 +100,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId())); batchMemberBonusPushList.addAll(cuMemberBonusPushList); } - if (cuMemberBonusExpandList != null && cuMemberBonusExpandList.size() > 0) { - cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> - cuMemberBonusExpand.setPkBonus(cuMemberBonusMap.get(cuMemberBonusExpand.getPkBonus()).getPkId())); - batchMemberBonusExpandList.addAll(cuMemberBonusExpandList); - } - if (cuMemberBonusCoachList != null && cuMemberBonusCoachList.size() > 0) { - cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> - cuMemberBonusCoach.setPkBonus(cuMemberBonusMap.get(cuMemberBonusCoach.getPkBonus()).getPkId())); - batchMemberBonusCoachList.addAll(cuMemberBonusCoachList); - } if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) { cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId())); @@ -161,17 +111,15 @@ public class BonusSettleServiceImpl implements IBonusSettleService { batchMemberBonusRangeList.addAll(cuMemberBonusRangeList); } // 插入奖金主表 - cuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList); - Set memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period); - cuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet); - cuMemberBonusExpandService.batchInsertCuMemberBonusExpand(batchMemberBonusExpandList, memberIdSet); - cuMemberBonusCoachService.batchInsertCuMemberBonusCoach(batchMemberBonusCoachList, memberIdSet); - cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet); - cuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet); + iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList); + Set memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period); + iCuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet); + iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet); + iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet); } private List setCuMemberBonusSeq(String settleDate, Map cuMemberBonusMap) { - List pkIdList = cuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size()); + List pkIdList = iCuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size()); int i = 0; // 判断时间,重算的时候直接是已公布 Integer grantStatus = EGrantStatus.SETTLED.getValue(); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java deleted file mode 100644 index 486a739d..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hzs.bonus.bonus.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle; -import com.hzs.bonus.bonus.service.ICuMemberBonusCoachService; -import com.hzs.common.domain.member.bonus.CuMemberBonusCoach; -import com.hzs.bonus.bonus.mapper.CuMemberBonusCoachMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -/** - * 会员奖金-辅导收益明细表 服务实现类 - */ -@Service -public class CuMemberBonusCoachServiceImpl extends ServiceImpl implements ICuMemberBonusCoachService { - - private CuMemberBonusSettle cuMemberBonusSettle; - - @Autowired - public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) { - this.cuMemberBonusSettle = cuMemberBonusSettle; - } - - @Override - public void deleteCuMemberBonusCoach(Integer period) { - baseMapper.deleteCuMemberBonusCoach(period); - } - - @Override - public void batchInsertCuMemberBonusCoach(List cuMemberBonusCoachList, Set memberIdSet) { - if (cuMemberBonusCoachList.size() == 0) { - return; - } - List cuMemberBonusCoaches = new ArrayList<>(); - for (CuMemberBonusCoach cuMemberBonusCoach : cuMemberBonusCoachList) { - if (memberIdSet.contains(cuMemberBonusCoach.getPkBonus())) { - cuMemberBonusCoaches.add(cuMemberBonusCoach); - } - } - if (cuMemberBonusCoaches.size() == 0) { - return; - } - List> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches); - lists.forEach(list -> - baseMapper.batchInsertCuMemberBonusCoach(list)); - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusExpandServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusExpandServiceImpl.java deleted file mode 100644 index a00e6621..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusExpandServiceImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.hzs.bonus.bonus.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle; -import com.hzs.bonus.bonus.service.ICuMemberBonusExpandService; -import com.hzs.common.domain.member.bonus.CuMemberBonusExpand; -import com.hzs.bonus.bonus.mapper.CuMemberBonusExpandMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -/** - * 会员奖金-拓展收益明细表 服务实现类 - */ -@Service -public class CuMemberBonusExpandServiceImpl extends ServiceImpl implements ICuMemberBonusExpandService { - - @Autowired - private CuMemberBonusSettle cuMemberBonusSettle; - - @Override - public void deleteCuMemberBonusExpand(Integer period) { - baseMapper.deleteCuMemberBonusExpand(period); - } - - @Override - public void batchInsertCuMemberBonusExpand(List cuMemberBonusExpandList, Set memberIdSet) { - if (cuMemberBonusExpandList.size() == 0) { - return; - } - List memberBonusExpands = new ArrayList<>(); - for (CuMemberBonusExpand cuMemberBonusExpand : cuMemberBonusExpandList) { - if (memberIdSet.contains(cuMemberBonusExpand.getPkBonus())) { - memberBonusExpands.add(cuMemberBonusExpand); - } - } - if (memberBonusExpands.size() == 0) { - return; - } - List> lists = cuMemberBonusSettle.handleCutList(memberBonusExpands); - lists.forEach(list -> - baseMapper.batchInsertCuMemberBonusExpand(list)); - } - -} - diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index 70984f98..5d159ced 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -56,10 +56,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusExpandList = cuMemberBonusExpandMapper.queryMemberBonusExpandByBonusItems(bonusParam); - dataTable = getDataTable(cuMemberBonusExpandList); - cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { - MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusExpand, MemberBonusDetailVO.class); - memberBonusDetailVO.setSourceMemberCode(cuMemberBonusExpand.getSourceMemberCode()); - memberBonusDetailVO.setSourceMemberName(cuMemberBonusExpand.getSourceMemberName()); - memberBonusDetailVOList.add(memberBonusDetailVO); - }); - } else if (EBonusItems.COACHING_INCOME.getValue() == bonusItemsValue) { - // 辅导收益 - // 拓展收益、复购拓展收益 - List cuMemberBonusCoachList = cuMemberBonusCoachMapper.queryMemberBonusCoachByBonusItems(bonusParam); - dataTable = getDataTable(cuMemberBonusCoachList); - cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { - MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusCoach, MemberBonusDetailVO.class); - memberBonusDetailVO.setSourceMemberCode(cuMemberBonusCoach.getSourceMemberCode()); - memberBonusDetailVO.setSourceMemberName(cuMemberBonusCoach.getSourceMemberName()); - memberBonusDetailVOList.add(memberBonusDetailVO); - }); - } else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue) { - // 复购极差 - // 拓展收益、复购拓展收益 + } else if (EBonusItems.RETAIL_RANGE_INCOME.getValue() == bonusItemsValue + || EBonusItems.RETAIL_REPURCHASE_INCOME.getValue() == bonusItemsValue) { + // 直推级差收益、复购级差收益 List cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItems(bonusParam); dataTable = getDataTable(cuMemberBonusRangeList); cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { @@ -355,8 +319,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusDetailList = cuMemberBonusDetailMapper.queryMemberBonusDetailByBonusItems(bonusParam); dataTable = getDataTable(cuMemberBonusDetailList); cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> { @@ -410,27 +373,9 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusExpandList = cuMemberBonusExpandMapper.queryMemberBonusExpandByBonusItemsForServer(bonusParam); - dataTable = getDataTable(cuMemberBonusExpandList); - cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { - MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusExpand, MemberBonusDetailSerVO.class); - memberBonusDetailSerVoS.add(memberBonusDetailVO); - }); - } else if (EBonusItems.COACHING_INCOME.getValue() == bonusItemsValue) { - // 辅导收益 - // 拓展收益、复购拓展收益 - List cuMemberBonusCoachList = cuMemberBonusCoachMapper.queryMemberBonusCoachByBonusItemsForServer(bonusParam); - dataTable = getDataTable(cuMemberBonusCoachList); - cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { - MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusCoach, MemberBonusDetailSerVO.class); - memberBonusDetailSerVoS.add(memberBonusDetailVO); - }); - } else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue || EBonusItems.RETAIL_RANGE_INCOME.getValue() == bonusItemsValue) { - // 复购极差 - // 拓展收益、复购拓展收益 + } else if (EBonusItems.RETAIL_RANGE_INCOME.getValue() == bonusItemsValue + || EBonusItems.RETAIL_REPURCHASE_INCOME.getValue() == bonusItemsValue) { + // 直推级差收益、复购级差收益 List cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItemsForServer(bonusParam); dataTable = getDataTable(cuMemberBonusRangeList); cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { @@ -438,8 +383,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusDetailList = cuMemberBonusDetailMapper.queryMemberBonusDetailByBonusItemsForServer(bonusParam); dataTable = getDataTable(cuMemberBonusDetailList); cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java new file mode 100644 index 00000000..e25446b0 --- /dev/null +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java @@ -0,0 +1,28 @@ +package com.hzs.bonus.detail.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.member.detail.CuMemberGrade; +import com.hzs.common.domain.member.detail.CuMemberLevel; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 会员信息-等级升级记录 Mapper 接口 + */ +public interface CuMemberGradeMapper extends BaseMapper { + + /** + * 回退会员等级 + */ + void updateCuMemberGrade(@Param("rangeTableName") String rangeTableName, @Param("period") Integer period); + + /** + * 查询会员等级 + */ + List queryCuMemberLevel(@Param("startDate") Date startDate, + @Param("endDate") Date endDate, + @Param("upType") Integer upType); + +} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java new file mode 100644 index 00000000..ecfdd9f5 --- /dev/null +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java @@ -0,0 +1,32 @@ +package com.hzs.bonus.detail.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.common.domain.member.detail.CuMemberGrade; +import com.hzs.common.domain.member.detail.CuMemberLevel; + +import java.util.Date; +import java.util.List; + +/** + * 会员信息-等级升级记录 服务类 + */ +public interface ICuMemberGradeService extends IService { + + /** + * 回退极差奖衔,每日重新结算,先把等级回退到前一天 + * + * @param period 结算期间 + * @param rangeTableName 结算表 + */ + List calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName); + + /** + * 自动升级列表 + * + * @param startDate + * @param endDate + * @return + */ + List listAutoLevel(Date startDate, Date endDate); + +} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java new file mode 100644 index 00000000..c5e9d8ae --- /dev/null +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java @@ -0,0 +1,33 @@ +package com.hzs.bonus.detail.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.bonus.detail.mapper.CuMemberGradeMapper; +import com.hzs.bonus.detail.service.ICuMemberGradeService; +import com.hzs.common.core.enums.EUpgradeType; +import com.hzs.common.domain.member.detail.CuMemberGrade; +import com.hzs.common.domain.member.detail.CuMemberLevel; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * 会员信息-等级升级记录 服务实现类 + */ +@Service +public class CuMemberGradeServiceImpl extends ServiceImpl implements ICuMemberGradeService { + + @Override + public List calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName) { + // 根据手动升级记录,更新日结表 + baseMapper.updateCuMemberGrade(rangeTableName, period); + // 购买升级记录列表 + return baseMapper.queryCuMemberLevel(startDate, endDate, EUpgradeType.BUY_UPGRADE.getValue()); + } + + @Override + public List listAutoLevel(Date startDate, Date endDate) { + // 自动升级记录列表 + return baseMapper.queryCuMemberLevel(startDate, endDate, EUpgradeType.AUTO_UPGRADE.getValue()); + } +} 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 07c4920e..81d1ef98 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 @@ -80,6 +80,7 @@ recommend_num = 0, team_num = 0, enable_status = 1, + pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20), region_address = 0, big_box_num = 0, small_box_num = 0, @@ -109,6 +110,7 @@ a.team_consume_pv = b.team_consume_pv, a.team_consume_amount = b.team_consume_amount, a.recommend_num = b.recommend_num, a.team_num = b.team_num, + a.pk_grade = b.pk_grade, a.enable_status = b.enable_status, a.big_box_num = b.big_box_num, a.small_box_num = b.small_box_num, a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv 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 5059160a..e808ce9b 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 @@ -98,4 +98,29 @@ + + merge into cu_member a + using ( + select cm.pk_id, m.new_level pk_grade + from cu_member cm + inner join( + select a.* + from cu_member_level a + inner join ( + select pk_member, max(pk_id) pk_id + from cu_member_level + where del_flag = 0 + and up_type = 4 + and upgrade_time >= #{startDate,jdbcType=DATE} + and upgrade_time < #{endDate,jdbcType=DATE} + group by pk_member) b + on a.pk_id = b.pk_id) m + on cm.pk_id = m.pk_member + where cm.pk_settle_grade < m.new_level + ) b + on (a.pk_id = b.pk_id) + when matched then + update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate + + diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusCoachMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusCoachMapper.xml deleted file mode 100644 index 24bb89ef..00000000 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusCoachMapper.xml +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - insert ALL - - into cu_member_bonus_coach(pk_bonus,pk_order,pk_bonus_items,income_status, - cal_type,cal_achieve,cal_value,pretax_income, - income_tax,real_income,current_generation,coach_generation,coach_no_capping, - coach_capping,coach_normal_half,coach_normal_real,remark, - income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator) - values - ( - #{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus}, - #{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome}, - #{item.incomeTax},#{item.realIncome},#{item.currentGeneration},#{item.coachGeneration}, - #{item.coachNoCapping},#{item.coachCapping},#{item.coachNormalHalf},#{item.coachNormalReal}, - #{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio}, - #{item.pkCountry},#{item.pkCreator} - ) - - SELECT 1 FROM dual - - - delete - from CU_MEMBER_BONUS_COACH - where PK_BONUS in ( - select pk_id - from cu_member_bonus - where period = #{period} - and grant_status <= 2) - - - - - - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml deleted file mode 100644 index fc896427..00000000 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - insert ALL - - into cu_member_bonus_expand(pk_bonus,pk_order,pk_bonus_items,income_status, - cal_type,cal_achieve,cal_value,pretax_income, - income_tax,real_income,current_touch,expand_touch,add_touch,expand_no_capping, - expand_capping,expand_normal_half,expand_normal_real,remark, - income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator) - values - ( - #{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus}, - #{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome}, - #{item.incomeTax},#{item.realIncome},#{item.currentTouch},#{item.expandTouch},#{item.addTouch,jdbcType=NUMERIC}, - #{item.expandNoCapping},#{item.expandCapping},#{item.expandNormalHalf},#{item.expandNormalReal}, - #{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio}, - #{item.pkCountry},#{item.pkCreator} - ) - - SELECT 1 FROM dual - - - - delete - from CU_MEMBER_BONUS_EXPAND - where PK_BONUS in ( - select pk_id - from cu_member_bonus - where period = #{period} and grant_status <= 2) - - - - - - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml new file mode 100644 index 00000000..198827f1 --- /dev/null +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + merge into ${rangeTableName} a + using ( + select a.pk_member, max(a.new_level) pk_grade + from cu_member_grade a + inner join( + select pk_member, max(nvl(modified_time, creation_time)) creation_time + from cu_member_grade + where period = #{period} + and del_flag = 0 + and up_type = 2 + group by pk_member) b + on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time + group by a.pk_member + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + a.pk_grade = b.pk_grade + + + + + diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml index 42c59106..90290135 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml @@ -50,9 +50,9 @@ - + @@ -106,6 +106,7 @@ so.pk_creator, so.consume_amount, so.box_num, + cml.new_level pk_grade, nvl(st.pk_id,0) items_id, nvl(st.pk_order,0) pk_order, nvl(st.pk_wares,0) pk_wares, @@ -114,6 +115,10 @@ nvl(st.wares_quantity,0) wares_quantity, nvl(bw.area_income, 0) area_income from sa_order so + left join cu_member_level cml + on cml.pk_member = so.pk_member + and cml.pk_order = so.pk_id + and cml.del_flag = 0 left join sa_order_wares st on so.pk_id = st.pk_order and st.wares_price > 0 left join bd_wares bw diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/mapper/CuMemberTreeMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/mapper/CuMemberTreeMapper.java index fe461480..0d949a2b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/mapper/CuMemberTreeMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/mapper/CuMemberTreeMapper.java @@ -21,30 +21,6 @@ public interface CuMemberTreeMapper extends BaseMapper { */ Integer queryExistOracleTable(String tableName); - /** - * 查询会员结算表,查询出结算表中会员伞下左右区满足等级 - * - * @param settleTableName 结算表 - * @param awardsValue 验证等级对应的值 - * @param placeDept 部门 - * @param pkMember 会员 - */ - Integer queryCuMemberSettlePlaceUnderUmbrella(@Param("settleTableName") String settleTableName, - @Param("awardsValue") Integer awardsValue, - @Param("placeDept") Integer placeDept, - @Param("pkMember") Long pkMember); - - /** - * 查询会员结算表,查询出结算表中会员血缘关系满足等级 - * - * @param settleTableName 结算表 - * @param pkMember 会员 - */ - Integer queryCuMemberSettleBloodUnderUmbrella(@Param("settleTableName") String settleTableName, - @Param("awardsValue") Integer awardsValue, - @Param("placeDept") Integer placeDept, - @Param("pkMember") Long pkMember); - /** * 根据pkmember查询 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberTreeService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberTreeService.java index 9e5bdc2b..b284918f 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberTreeService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberTreeService.java @@ -19,24 +19,6 @@ public interface ICuMemberTreeService extends IService { */ Integer queryExistOracleTable(String tableName); - /** - * 查询会员结算表,查询出结算表中会员伞下左右区满足等级 - * - * @param settleTableName 结算表 - * @param placeDept 部门 - * @param awardsValue 奖衔对应的值 - * @param pkMember 会员 - */ - Boolean queryCuMemberSettlePlaceUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember); - - /** - * 查询会员结算表,查询出结算表中会员血缘关系满足等级 - * - * @param settleTableName 结算表 - * @param pkMember 会员 - */ - Boolean queryCuMemberSettleBloodUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember); - /** * 根据pkmember查询 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberTreeServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberTreeServiceImpl.java index 862ffddf..a972a7e9 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberTreeServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberTreeServiceImpl.java @@ -26,16 +26,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl 0; - } - - @Override - public Boolean queryCuMemberSettleBloodUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember) { - return baseMapper.queryCuMemberSettleBloodUnderUmbrella(settleTableName, awardsValue, placeDept, pkMember) > 0; - } - @Override public CuMemberSettleExt queryCuMemberTreeByPkMemberTable(String settleTableName, Long pkMember) { return baseMapper.queryCuMemberTreeByPkMemberTable(settleTableName, pkMember); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index e17663c6..fbc7694c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -1500,7 +1500,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 保存会员等级变动 saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0); - // 判断推送MQ处理推荐人等级 + // 判断处理推荐人等级 handleParentUpgrade(cuMember, saOrder); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); @@ -1516,7 +1516,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 保存会员等级变动(如果旧等级和新等级相同,则不记录) saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld()); } - // 判断推送MQ处理推荐人等级 + // 判断处理推荐人等级 handleParentUpgrade(cuMember, saOrder); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index 68fc6094..bb04351a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -2494,6 +2494,9 @@ public class CuMemberServiceImpl extends ServiceImpl i // 指定会员可见 isShowWares = pkMemberList.contains(showWaresDTO.getLoginMember()); } + if (isShowWares) { + break; + } } resultMap.put(showWaresDTO.getPkWares(), isShowWares); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberAwardsMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberAwardsMapper.java index fe523df1..8e88c0db 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberAwardsMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberAwardsMapper.java @@ -2,44 +2,10 @@ package com.hzs.member.detail.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt; -import org.apache.ibatis.annotations.Param; - -import java.util.List; /** * 会员信息-奖衔升级记录 Mapper 接口 */ public interface CuMemberAwardsMapper extends BaseMapper { - /** - * 批量更新会员奖衔记录,此方法用于奖金结算,批量更新为删除状态,留存奖衔降级记录 - * - * @param cuMemberAwardsList 更新的人 - * @param period 期间 - */ - Integer updateBatchCuMemberAwards(@Param("cuMemberAwardsList") List cuMemberAwardsList, @Param("period") Integer period); - - /** - * 查询会员最后一条奖衔升级记录 - * - * @param cuMemberAwardsList 奖衔升级记录 - */ - List queryLastCuMemberAwards(@Param("cuMemberAwardsList") List cuMemberAwardsList); - - /** - * 批量插入奖衔记录 - * - * @param cuMemberAwardsList 需要插入的奖衔列表 - */ - Integer saveBatchCuMemberAwards(@Param("cuMemberAwardsList") List cuMemberAwardsList); - - /** - * 查询手动升级的最新一条 - * - * @param pkMember 会员ID - * @return - */ - CuMemberAwardsExt queryLastManualAwards(@Param("pkMember") Long pkMember); - } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberDetailProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberDetailProvider.java index e60f1eae..d60772c4 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberDetailProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/provider/CuMemberDetailProvider.java @@ -3,10 +3,8 @@ package com.hzs.member.detail.provider; import com.hzs.common.core.domain.R; import com.hzs.common.domain.member.base.CuMemberRegister; import com.hzs.common.domain.member.detail.CuMemberLevel; -import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt; import com.hzs.member.base.service.ICuMemberRegisterService; import com.hzs.member.detail.ICuMemberDetailServiceApi; -import com.hzs.member.detail.service.ICuMemberAwardsService; import com.hzs.member.detail.service.ICuMemberLevelService; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Autowired; @@ -22,8 +20,6 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi { @Autowired private ICuMemberLevelService iCuMemberLevelService; @Autowired - private ICuMemberAwardsService iCuMemberAwardsService; - @Autowired private ICuMemberRegisterService iCuMemberRegisterService; @Override @@ -36,11 +32,6 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi { return R.ok(iCuMemberLevelService.getUpgradeList(pkMember)); } - @Override - public R queryLastManualAwards(Long pkMember) { - return R.ok(iCuMemberAwardsService.queryLastManualAwards(pkMember)); - } - @Override public R getMemberRegister(Long pkMember) { return R.ok(iCuMemberRegisterService.queryCuMemberRegister(pkMember)); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberAwardsService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberAwardsService.java index a23abec2..ceb5ddae 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberAwardsService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberAwardsService.java @@ -2,7 +2,6 @@ package com.hzs.member.detail.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt; import java.util.Date; @@ -20,12 +19,4 @@ public interface ICuMemberAwardsService extends IService { */ void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime); - /** - * 查询手动开通的最新一条 - * - * @param pkMember 会员ID - * @return - */ - CuMemberAwardsExt queryLastManualAwards(Long pkMember); - } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberAwardsServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberAwardsServiceImpl.java index a3622b68..fbcff62b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberAwardsServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberAwardsServiceImpl.java @@ -1,20 +1,11 @@ package com.hzs.member.detail.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.common.core.constant.MagicNumberConstants; -import com.hzs.common.core.constant.MemberFieldConstants; import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt; -import com.hzs.common.domain.member.ext.CuMemberSettleExt; -import com.hzs.common.domain.system.config.BdAwards; -import com.hzs.member.achieve.service.ICuMemberTreeService; import com.hzs.member.detail.mapper.CuMemberAwardsMapper; import com.hzs.member.detail.service.ICuMemberAwardsService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; @@ -25,9 +16,6 @@ import java.util.*; @Service public class CuMemberAwardsServiceImpl extends ServiceImpl implements ICuMemberAwardsService { - @Autowired - private ICuMemberTreeService iCuMemberTreeService; - @Override public void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); @@ -38,155 +26,4 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl updateAwardsRecord(List enoughAwardsMemberList, Map originalCuMemberSettleMap, - Integer period) { - if (enoughAwardsMemberList.size() == 0) { - return null; - } - // 更新奖衔记录变动 - // 增加奖衔记录表 - // 更新升奖衔的会员,插入升衔记录 - return upgradeCuMemberAwards(enoughAwardsMemberList, originalCuMemberSettleMap, period); - - } - - /** - * 插入升级记录 - * - * @param enoughAwardsMemberList 足够升级的 - * @param originalCuMemberSettleMap 记录会员原等级的map - * @param period 期间 - */ - private List upgradeCuMemberAwards(List enoughAwardsMemberList, Map originalCuMemberSettleMap, - Integer period) { - List cuMemberAwardsList = new ArrayList<>(); - if (enoughAwardsMemberList.size() > 0) { - // 记录要入库的,为了验证是否首次晋升 - enoughAwardsMemberList.forEach(enoughAwardsMember -> getCuMemberAwards(originalCuMemberSettleMap, period, cuMemberAwardsList, enoughAwardsMember)); - // 验证满足的这群人是否是首次晋升,查询出值的不是首次晋升 - List originalCuMemberAwardsList = baseMapper.queryLastCuMemberAwards(cuMemberAwardsList); - // 是首次晋升的数据 - Map cuMemberAwardsMap = new HashMap<>(ComputeUtil.mapInitCapacity(originalCuMemberAwardsList.size())); - originalCuMemberAwardsList.forEach(cuMemberAwards -> cuMemberAwardsMap.put(cuMemberAwards.getPkMember(), cuMemberAwards)); - cuMemberAwardsList.forEach(cuMemberAwards -> { - CuMemberAwards memberAwards = cuMemberAwardsMap.get(cuMemberAwards.getPkMember()); - // 没有奖衔升级记录或者奖衔升级记录是会员的 算首次晋升 - if (memberAwards == null || memberAwards.getNewLevel() == EAwards.MEMBER.getValue()) { - cuMemberAwards.setPurchaseStatus(EYesNo.YES.getIntValue()); - } - }); - // 插入记录 - baseMapper.saveBatchCuMemberAwards(cuMemberAwardsList); - } - return cuMemberAwardsList; - } - - private void getCuMemberAwards(Map originalCuMemberSettleMap, Integer period, List cuMemberAwardsList, CuMemberSettleExt enoughAwardsMember) { - CuMemberAwards cuMemberAwards = CuMemberAwards.builder() - .pkMember(enoughAwardsMember.getPkMember()) - .period(period) - .upType(EUpgradeType.AUTO_UPGRADE.getValue()) - // 原等级 - .oldLevel(originalCuMemberSettleMap.get(enoughAwardsMember.getPkMember()).getPkOriAwards()) - .newLevel(enoughAwardsMember.getPkAwards()) - // 默认不免考 - .purchaseStatus(EYesNo.NO.getIntValue()) - .build(); - cuMemberAwards.setPkCreator(MagicNumberConstants.PK_ADMIN); - cuMemberAwards.setPkCountry(enoughAwardsMember.getPkSettleCountry()); - cuMemberAwardsList.add(cuMemberAwards); - } - - /** - * 更新降衔的会员,把升衔记录删除 - * - * @param period 期间 - * @param changeAwardsList 降低奖衔的人 - * @param cuMemberAwardsList 所有变动记录的数据 - */ - private void reduceCuMemberAwards(List changeAwardsList, Integer period, List cuMemberAwardsList) { - // 验证是否有降奖衔的,降奖衔的也要更新 - if (changeAwardsList.size() > 0) { - // 更新奖衔表,将奖衔升级记录修改为删除状态 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(MemberFieldConstants.PERIOD, period); - baseMapper.updateBatchCuMemberAwards(changeAwardsList, period); - // 根据 changeAwardsList 查找到这群人的历史奖衔升级记录 - List hisCuMemberAwardsList = baseMapper.queryLastCuMemberAwards(changeAwardsList); - Map cuMemberAwardsMap = new HashMap<>(); - hisCuMemberAwardsList.forEach(cuMemberAwards -> cuMemberAwardsMap.put(cuMemberAwards.getPkMember(), cuMemberAwards)); - // 用于更新网体,将原有奖衔还原 - changeAwardsList.forEach(cuMemberAwards -> { - if (cuMemberAwardsMap.containsKey(cuMemberAwards.getPkMember())) { - // 原有奖衔 - cuMemberAwards.setNewLevel(cuMemberAwardsMap.get(cuMemberAwards.getPkMember()).getNewLevel()); - } else { - // 没有值的变为会员 - cuMemberAwards.setNewLevel(EAwards.MEMBER.getValue()); - } - }); - cuMemberAwardsList.addAll(changeAwardsList); - } - } - - /** - * 查询某一期变动的奖衔 - * - * @param period 奖金期 - */ - private List queryCuMemberAwardsByPeriod(Integer period) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(MemberFieldConstants.PERIOD, period); - queryWrapper.eq(MemberFieldConstants.UP_TYPE, EUpgradeType.AUTO_UPGRADE.getValue()); - return baseMapper.selectList(queryWrapper); - } - - /** - * 验证血缘关系 - * - * @param settleTableName 结算表 - * @param cuMemberSettleExt 会员结算表 - * @param bdAwards 等级 - */ - private Boolean validateBloodRelation(String settleTableName, CuMemberSettleExt cuMemberSettleExt, BdAwards bdAwards) { - // 左区满足,且满足血缘 - if (iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), cuMemberSettleExt.getPkMember()) && - iCuMemberTreeService.queryCuMemberSettleBloodUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), cuMemberSettleExt.getPkMember())) { - // 验证血缘,左区存在血缘关系的 - // 右区满足,且满足血缘 - // 进行验证血缘验证 - return iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), cuMemberSettleExt.getPkMember()) && - iCuMemberTreeService.queryCuMemberSettleBloodUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), cuMemberSettleExt.getPkMember()); - } - return false; - } - - /** - * 验证左右区安置关系 - * - * @param settleTableName 结算表 - * @param bdAwards 等级 - * @param pkMember 会员 - */ - private Boolean validateCuMemberPlaceRelation(String settleTableName, BdAwards bdAwards, Long pkMember) { - // 验证左区 - if (iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), pkMember)) { - // 在验证右区 - return iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), pkMember); - } - return false; - } - - @Override - public CuMemberAwardsExt queryLastManualAwards(Long pkMember) { - return baseMapper.queryLastManualAwards(pkMember); - } - } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml index 8c198fc0..d569839c 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml @@ -105,36 +105,6 @@ where table_name = upper(#{tableName}) - - - - - select ca.pk_member,ba.awards_value new_level from cu_member_awards ca - inner join ( - select pk_member,max(pk_id) pk_id from cu_member_awards - where del_flag=0 and pk_member in - - #{item.pkMember} - - group by pk_member - ) cm - on ca.pk_id=cm.pk_id - inner join bd_awards ba - on ca.new_level = ba.pk_id - where ca.del_flag=0 and ba.del_flag=0 - - - - - diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/wares/controller/api/ApiRetailWaresController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/wares/controller/api/ApiRetailWaresController.java index 576f317d..fd09e7f5 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/wares/controller/api/ApiRetailWaresController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/wares/controller/api/ApiRetailWaresController.java @@ -17,14 +17,12 @@ import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.sale.ext.BdWaresExt; import com.hzs.common.domain.sale.ext.BdWaresSpecsSkuExt; -import com.hzs.common.domain.sale.wares.BdWares; -import com.hzs.common.domain.sale.wares.BdWaresLabel; -import com.hzs.common.domain.sale.wares.BdWaresRange; -import com.hzs.common.domain.sale.wares.BdWaresSpecsSku; +import com.hzs.common.domain.sale.wares.*; import com.hzs.common.domain.system.config.BdLabel; import com.hzs.common.domain.system.ext.BdLabelExt; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.base.IMemberServiceApi; +import com.hzs.member.base.dto.ShowWaresDTO; import com.hzs.retail.wares.param.RetailWaresDetailParam; import com.hzs.retail.wares.param.RetailWaresParam; import com.hzs.retail.wares.vo.RetailWaresDetailVO; @@ -174,6 +172,8 @@ public class ApiRetailWaresController extends BaseController { Integer pkGrade, boolean showLabel) { // 返回商品列表 List resultList = new ArrayList<>(); + // 当前会员ID + Long userId = SecurityUtils.getUserId(); // 汇率比例 R currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); @@ -205,7 +205,26 @@ public class ApiRetailWaresController extends BaseController { } } + // 检验商品团队信息 + Map> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList); + List showWaresList = bdWaresExtList.stream().map(tmpBdWares -> { + ShowWaresDTO showWaresDTO = new ShowWaresDTO(); + showWaresDTO.setPkWares(tmpBdWares.getPkId()); + showWaresDTO.setLoginMember(userId); + showWaresDTO.setWaresAuthorityList(waresAuthorityMap.get(tmpBdWares.getPkId())); + return showWaresDTO; + }).collect(Collectors.toList()); + R> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList); + Map waresShowMap = waresShowMapDto.getData(); + + for (BdWaresExt bdWaresExt : bdWaresExtList) { + // 校验团队信息 + Boolean isShowWares = waresShowMap.get(bdWaresExt.getPkId()); + if (null == isShowWares || !isShowWares) { + continue; + } + if (null != list) { // 商品标签处理 // 保证标签 diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiBdStorehouseController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiBdStorehouseController.java index 09c86d1f..9afa6b3e 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiBdStorehouseController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiBdStorehouseController.java @@ -18,12 +18,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** - *

* 仓库配置前端控制器 - *

- * - * @author hzs - * @since 2022-08-02 */ @Slf4j @RestController @@ -41,15 +36,15 @@ public class ApiBdStorehouseController extends BaseController { @Log(module = EOperationModule.STOREHOUSE, business = EOperationBusiness.STOREHOUSE, method = EOperationMethod.SELECT) @GetMapping("/list") public TableDataInfo list(BdStorehouseVO bdStorehouse) { - if(bdStorehouse.getPkCountry() == null){ + if (bdStorehouse.getPkCountry() == null) { bdStorehouse.setPkCountry(SecurityUtils.getPkCountry()); } List list = iBdStorehouseService.selectBdStorehouseList(bdStorehouse); - list.forEach( itm ->{ - BdStorehouseAreaMiddleVO sam=new BdStorehouseAreaMiddleVO(); + list.forEach(itm -> { + BdStorehouseAreaMiddleVO sam = new BdStorehouseAreaMiddleVO(); sam.setPkStorehouse(itm.getPkId()); sam.setPkCountry(bdStorehouse.getPkCountry()); - List samList=iBdStorehouseAreaMiddleService.getBdStorehouseAreaMiddleList(sam); + List samList = iBdStorehouseAreaMiddleService.getBdStorehouseAreaMiddleList(sam); itm.setSamList(samList); }); return getDataTable(list); diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdStorehouseMapper.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdStorehouseMapper.java index cf98f2aa..84f0c01d 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdStorehouseMapper.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdStorehouseMapper.java @@ -8,17 +8,13 @@ import com.hzs.system.base.vo.BdStorehouseVO; import java.util.List; /** - *

- * 仓库信息Mapper 接口 - *

- * - * @author hzs - * @since 2022-08-02 + * 仓库信息Mapper 接口 */ public interface BdStorehouseMapper extends BaseMapper { /** * 查询仓库列表信息 + * * @param bdStorehouse * @return */ @@ -26,6 +22,7 @@ public interface BdStorehouseMapper extends BaseMapper { /** * 获取单条仓库信息 + * * @param bdStorehouse * @return */ @@ -33,6 +30,7 @@ public interface BdStorehouseMapper extends BaseMapper { /** * 校验仓库信息是否重复 + * * @param bdStorehouse * @return */ diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdStorehouseServiceImpl.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdStorehouseServiceImpl.java index 60cc9628..ce273b80 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdStorehouseServiceImpl.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdStorehouseServiceImpl.java @@ -10,7 +10,6 @@ import com.hzs.common.core.enums.EDelFlag; import com.hzs.common.core.enums.EYesNo; import com.hzs.common.domain.system.base.BdStorehouse; import com.hzs.common.domain.system.base.BdStorehouseAreaMiddle; -import com.hzs.common.security.utils.SecurityUtils; import com.hzs.system.base.mapper.BdStorehouseMapper; import com.hzs.system.base.service.IBdStorehouseAreaMiddleService; import com.hzs.system.base.service.IBdStorehouseService; @@ -20,49 +19,30 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Set; /** - *

* 仓库信息服务实现类 - *

- * - * @author hzs - * @since 2022-08-02 */ @Service public class BdStorehouseServiceImpl extends ServiceImpl implements IBdStorehouseService { - @Autowired private IBdStorehouseAreaMiddleService iBdStorehouseAreaMiddleService; - /** - * 查询仓库列表信息 - * - * @param bdStorehouse - * @return - */ + @Override public List selectBdStorehouseList(BdStorehouseVO bdStorehouse) { return baseMapper.selectBdStorehouseList(bdStorehouse); } - /** - * 新增仓库信息 - * - * @param bdStorehouseVO - * @return - */ @Transactional(rollbackFor = Exception.class) @Override public boolean intBdStorehouse(BdStorehouseVO bdStorehouseVO) { - BdStorehouse bdStorehouse= BeanUtil.copyProperties(bdStorehouseVO, BdStorehouse.class); + BdStorehouse bdStorehouse = BeanUtil.copyProperties(bdStorehouseVO, BdStorehouse.class); baseMapper.insert(bdStorehouse); - if(CollectionUtil.isNotEmpty(bdStorehouseVO.getProvinceList())){ - BdStorehouseAreaMiddleVO sam=BeanUtil.copyProperties(bdStorehouseVO, BdStorehouseAreaMiddleVO.class); + if (CollectionUtil.isNotEmpty(bdStorehouseVO.getProvinceList())) { + BdStorehouseAreaMiddleVO sam = BeanUtil.copyProperties(bdStorehouseVO, BdStorehouseAreaMiddleVO.class); sam.setPkStorehouse(bdStorehouse.getPkId()); iBdStorehouseAreaMiddleService.intStoArMiddle(sam); } @@ -80,11 +60,6 @@ public class BdStorehouseServiceImpl extends ServiceImpl updateWrapper1=new UpdateWrapper<>(); - updateWrapper1.eq("PK_STOREHOUSE",bdStorehouse.getPkId()); - updateWrapper1.set("DEL_FLAG",EDelFlag.DELETE.getValue()); + UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); + updateWrapper1.eq("PK_STOREHOUSE", bdStorehouse.getPkId()); + updateWrapper1.set("DEL_FLAG", EDelFlag.DELETE.getValue()); iBdStorehouseAreaMiddleService.update(updateWrapper1); - if(CollectionUtil.isNotEmpty(bdStorehouse.getProvinceList())){ - for(Integer i:bdStorehouse.getProvinceList()){ - BdStorehouseAreaMiddle sa=new BdStorehouseAreaMiddle(); + if (CollectionUtil.isNotEmpty(bdStorehouse.getProvinceList())) { + for (Integer i : bdStorehouse.getProvinceList()) { + BdStorehouseAreaMiddle sa = new BdStorehouseAreaMiddle(); sa.setProvince(i); sa.setPkStorehouse(bdStorehouse.getPkId()); sa.setPkCountry(bdStorehouse.getPkCountry()); @@ -147,13 +122,6 @@ public class BdStorehouseServiceImpl extends ServiceImpl Date: Fri, 11 Jul 2025 14:42:52 +0800 Subject: [PATCH 16/89] =?UTF-8?q?##=20=E5=8E=BB=E6=8E=89=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=B8=8D=E7=94=A8=E7=9A=84=E4=B8=9A=E7=BB=A9=E3=80=81=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E8=80=83=E6=A0=B8=E7=AD=89=EF=BC=9B=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E5=8F=82=E6=95=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/bonus/detail/ICuRegionAssessApi.java | 29 -- .../base/ICuMemberRetailRegionServiceApi.java | 30 -- .../hzs/retail/member/IMemberRetailApi.java | 31 -- .../api/ApiCuRegionAssessController.java | 35 --- .../manage/CuRegionAssessController.java | 65 ---- .../mapper/CuRegionAssessDetailMapper.java | 85 ------ .../detail/mapper/CuRegionAssessMapper.java | 37 --- .../provider/CuRegionAssessProvider.java | 46 --- .../service/ICuRegionAssessDetailService.java | 52 ---- .../service/ICuRegionAssessService.java | 22 -- .../impl/CuRegionAssessDetailServiceImpl.java | 57 ---- .../impl/CuRegionAssessServiceImpl.java | 121 -------- .../detail/vo/CuRegionAssessDetailVO.java | 51 ---- .../hzs/bonus/detail/vo/CuRegionAssessVO.java | 56 ---- .../hzs/bonus/param/CuRegionAssessParam.java | 23 -- .../detail/CuRegionAssessDetailMapper.xml | 104 ------- .../bonus/detail/CuRegionAssessMapper.xml | 106 ------- .../CuMemberRetailRegionServiceProvider.java | 53 ---- .../api/ApiRetailHomePageController.java | 9 - .../api/RetailMemberController.java | 40 +-- .../mapper/CuMemberRetailRangeMapper.java | 95 +----- .../mapper/CuMemberRetailRegionMapper.java | 43 --- .../member/provider/MemberRetailProvider.java | 48 --- .../ICuMemberRetailAchieveService.java | 19 -- .../service/ICuMemberRetailRegionService.java | 37 +-- .../CuMemberRetailAchieveServiceImpl.java | 162 +--------- .../impl/CuMemberRetailRegionServiceImpl.java | 120 +------- .../achieve/CuMemberRetailRangeMapper.xml | 286 +++--------------- .../member/CuMemberRetailRegionMapper.xml | 73 ----- .../api/ApiRetailOrderController.java | 1 + .../retail/sale/vo/RetailerOrderLevelVO.java | 11 +- .../common/core/enums/EOperationBusiness.java | 23 -- .../common/core/enums/EOperationModule.java | 24 -- .../member/detail/CuRegionAssessDetail.java | 6 +- .../member/detail/ext/CuRegionAssessExt.java | 35 --- .../java/com/hzs/third/job/MemberJob.java | 38 --- 36 files changed, 79 insertions(+), 1994 deletions(-) delete mode 100644 bd-api/bd-api-member/src/main/java/com/hzs/bonus/detail/ICuRegionAssessApi.java delete mode 100644 bd-api/bd-api-member/src/main/java/com/hzs/member/base/ICuMemberRetailRegionServiceApi.java delete mode 100644 bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/api/ApiCuRegionAssessController.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/manage/CuRegionAssessController.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/provider/CuRegionAssessProvider.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessDetailVO.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessVO.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/param/CuRegionAssessParam.java delete mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/CuMemberRetailRegionServiceProvider.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java delete mode 100644 bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/ext/CuRegionAssessExt.java diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/bonus/detail/ICuRegionAssessApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/bonus/detail/ICuRegionAssessApi.java deleted file mode 100644 index ca2ad6d7..00000000 --- a/bd-api/bd-api-member/src/main/java/com/hzs/bonus/detail/ICuRegionAssessApi.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hzs.bonus.detail; - -import com.hzs.common.core.domain.R; - -import java.util.Date; -import java.util.List; - -/** - * @description: 新零售会员区域考核dubbo服务 - * @author: zhang jing - * @date: 2025/3/7 10:36 - * @param: - * @return: - **/ -public interface ICuRegionAssessApi { - - - /** - * @description: 定时处理会员收益区域(处理前三天) - * @author: zhang jing - * @date: 2025/3/7 10:45 - * @param: [startDate] - * @return: com.hzs.common.core.domain.R - **/ - R validateHandAreaAssess(Date startDate,Date endDate); - - - -} diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/ICuMemberRetailRegionServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/ICuMemberRetailRegionServiceApi.java deleted file mode 100644 index 61dc06e3..00000000 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/ICuMemberRetailRegionServiceApi.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hzs.member.base; - -import com.hzs.common.core.domain.R; - -/** - * @description: 会员收益区域服务接口 - * @author: zhang jing - * @date: 2024/12/30 15:01 - * @param: - * @return: - **/ -public interface ICuMemberRetailRegionServiceApi { - - /** - * @description: 批量修改已到期的会员收益区域 - * @author: zhang jing - * @date: 2024/12/30 15:22 - * @param: [] - * @return: com.hzs.common.core.domain.R - **/ - R batchUpdateRetailRegion(); - - /** - * 处理重复区域 - * - * @return - */ - R handleRepeatRegion(); - -} 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 deleted file mode 100644 index cf060659..00000000 --- a/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.hzs.retail.member; - -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 - */ -public interface IMemberRetailApi { - - /** - * 定时处理收益区域 - * - * @return - */ - R checkRegion(); - - - /** - * 取消收益区域 - * - * @param pkIdList 收益区域ID列表 - */ - R cancelRegion(List pkIdList); - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/api/ApiCuRegionAssessController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/api/ApiCuRegionAssessController.java deleted file mode 100644 index 7cf2b18f..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/api/ApiCuRegionAssessController.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.hzs.bonus.detail.controller.api; - -import com.hzs.bonus.detail.service.ICuRegionAssessService; -import com.hzs.bonus.param.CuRegionAssessParam; -import com.hzs.common.core.web.controller.BaseController; -import com.hzs.common.core.web.page.TableDataInfo; -import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt; -import com.hzs.common.security.utils.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 考核会员端 - */ -@RestController -@RequestMapping("/api/region") -public class ApiCuRegionAssessController extends BaseController { - - @Autowired - private ICuRegionAssessService regionAssessService; - - /** - * 查询会员昨天奖金的值 - */ - @GetMapping("/query") - public TableDataInfo listRegionAssess() { - CuRegionAssessParam cuRegionAssessParam = new CuRegionAssessParam(); - cuRegionAssessParam.setPkCountry(SecurityUtils.getPkCountry()); - cuRegionAssessParam.setPkMember(SecurityUtils.getUserId()); - List cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam); - return getDataTable(regionAssessService.getCuRegionAssessVoS(cuRegionAssessExtList)); - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/manage/CuRegionAssessController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/manage/CuRegionAssessController.java deleted file mode 100644 index 6d1b7a2b..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/controller/manage/CuRegionAssessController.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hzs.bonus.detail.controller.manage; - -import cn.hutool.core.bean.BeanUtil; -import com.hzs.bonus.detail.service.ICuRegionAssessService; -import com.hzs.bonus.detail.vo.CuRegionAssessExcelVO; -import com.hzs.bonus.detail.vo.CuRegionAssessVO; -import com.hzs.bonus.param.CuRegionAssessParam; -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.detail.CuRegionAssessDetail; -import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt; -import com.hzs.common.security.utils.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; - -/** - * 新零售会员区域考核 前端控制器 - */ -@RestController -@RequestMapping("/manage/region") -public class CuRegionAssessController extends BaseController { - - @Autowired - private ICuRegionAssessService regionAssessService; - - /** - * 查询会员昨天奖金的值 - */ - @PostMapping("/query") - public TableDataInfo listRegionAssess(@RequestBody CuRegionAssessParam cuRegionAssessParam) { - startPage(); - cuRegionAssessParam.setPkCountry(SecurityUtils.getPkCountry()); - List cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam); - List cuRegionAssessVoList = regionAssessService.getCuRegionAssessVoS(cuRegionAssessExtList); - TableDataInfo dataTable = getDataTable(cuRegionAssessExtList); - dataTable.setRows(cuRegionAssessVoList); - return dataTable; - } - - /** - * 分页查询会员某个时间段内的奖金汇总 - */ - @PostMapping("/export") - public void exportRegionAssess(HttpServletResponse response, CuRegionAssessParam cuRegionAssessParam) { - List cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam); - List cuRegionAssessVoList = new ArrayList<>(); - for (CuRegionAssessExt cuRegionAssessExt : cuRegionAssessExtList) { - for (CuRegionAssessDetail cuRegionAssessDetail : cuRegionAssessExt.getCuRegionAssessDetailList()) { - CuRegionAssessExcelVO regionAssessExcelVO = BeanUtil.copyProperties(cuRegionAssessExt, CuRegionAssessExcelVO.class); - regionAssessExcelVO.setAssessDate(cuRegionAssessDetail.getAssessDate()); - regionAssessExcelVO.setTeamMonthPv(cuRegionAssessDetail.getTeamMonthPv()); - regionAssessExcelVO.setSmallAreaPv(cuRegionAssessDetail.getSmallAreaPv()); - regionAssessExcelVO.setAssessStatus(cuRegionAssessDetail.getAssessStatus()); - cuRegionAssessVoList.add(regionAssessExcelVO); - } - } - ExcelUtil util = new ExcelUtil<>(CuRegionAssessExcelVO.class); - util.exportExcel(response, cuRegionAssessVoList, "区域考核导出"); - } -} 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 deleted file mode 100644 index c64e2b86..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hzs.bonus.detail.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hzs.common.domain.member.detail.CuRegionAssessDetail; -import org.apache.ibatis.annotations.Param; - -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); - - 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 - **/ - 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 94a71953..634a8a8a 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 @@ -1,49 +1,12 @@ package com.hzs.bonus.detail.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hzs.bonus.param.CuRegionAssessParam; import com.hzs.common.domain.member.detail.CuRegionAssess; -import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt; -import com.hzs.common.domain.retail.member.CuMemberRetailRegion; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; -import java.util.List; /** * 新零售会员区域考核 Mapper 接口 */ public interface CuRegionAssessMapper extends BaseMapper { - /* - * 查询考核结果 - **/ - List queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam); - /* - * 考核开始日期 - **/ - void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod); - - /** - * 批量获取cuMemberBonus主键 - * - * @param rowNum 数量 - */ - List batchQueryCuRegionAssessSeq(Integer rowNum); - - /* - * 批量插入区域考核数据 - **/ - void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List cuRegionAssessList); - - /* - * 查询到期日期是上个月的区域 - **/ - List queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate); - - /* - * 查询手动设置考核的近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/provider/CuRegionAssessProvider.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/provider/CuRegionAssessProvider.java deleted file mode 100644 index adb6dfd1..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/provider/CuRegionAssessProvider.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.hzs.bonus.detail.provider; - -import com.hzs.bonus.detail.ICuRegionAssessApi; -import com.hzs.bonus.detail.service.ICuRegionAssessService; -import com.hzs.common.core.domain.R; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboService; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.Date; - -/** - * @Description: 新零售会员dubbo服务 - * @Author: jiang chao - * @Time: 2024/12/31 13:40 - * @Classname: MemberRetailProvider - * @PackageName: com.hzs.retail.member.provider - */ -@Slf4j -@DubboService -public class CuRegionAssessProvider implements ICuRegionAssessApi { - - @Autowired - private ICuRegionAssessService iCuRegionAssessService; - - - /** - * @description: 定时处理会员收益区域(处理前三天) - * @author: zhang jing - * @date: 2025/3/7 10:45 - * @param: [startDate] - * @return: com.hzs.common.core.domain.R - **/ - @Override - public R validateHandAreaAssess(Date startDate,Date endDate) { - try { - iCuRegionAssessService.validateHandAreaAssess(startDate,endDate); - return R.ok(); - } catch (Exception e) { - log.error("定时任务处理前3天收益区域异常", e); - return R.fail(e.getMessage()); - } - } - - -} 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 deleted file mode 100644 index 168dbe0c..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hzs.bonus.detail.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.hzs.common.domain.member.detail.CuRegionAssessDetail; - -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 36b71e32..f1eabb4b 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 @@ -1,33 +1,11 @@ package com.hzs.bonus.detail.service; import com.baomidou.mybatisplus.extension.service.IService; -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 java.util.Date; -import java.util.List; /** * 新零售会员区域考核 服务类 */ public interface ICuRegionAssessService extends IService { - /** - * 定时处理会员收益区域(处理前三天) - **/ - void validateHandAreaAssess(Date startDate, Date endDate); - - /* - * 考核开始日期 - **/ - void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod); - - /* - * 查询考核结果 - **/ - List queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam); - - List getCuRegionAssessVoS(List cuRegionAssessExtList); } 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 deleted file mode 100644 index 2897177b..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hzs.bonus.detail.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.bonus.detail.mapper.CuRegionAssessDetailMapper; -import com.hzs.bonus.detail.service.ICuRegionAssessDetailService; -import com.hzs.common.domain.member.detail.CuRegionAssessDetail; -import org.springframework.stereotype.Service; - -import java.util.Date; -import java.util.List; - -/** - *

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

- * - * @author hzs - * @since 2025-01-13 - */ -@Service -public class CuRegionAssessDetailServiceImpl extends ServiceImpl implements ICuRegionAssessDetailService { - - @Override - public void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod) { - baseMapper.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod); - } - - @Override - public void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate) { - baseMapper.updateAssessRegionDetailByDate(assessStartDate, assessEndDate); - } - - @Override - public List batchQueryCuRegionAssessDetailSeq(Integer rowNum) { - return baseMapper.batchQueryCuRegionAssessDetailSeq(rowNum); - } - - @Override - public void batchInsertCuRegionAssessDetail(List cuRegionAssessDetailList) { - baseMapper.batchInsertCuRegionAssessDetail(cuRegionAssessDetailList); - } - - @Override - public void assessCuRegionAssessDetail(String rangeTableName, Date assessDate) { - // 处理考核明细的汇总值 - baseMapper.mergeCuRegionAssessDetailTeamPv(rangeTableName, assessDate); - // 处理考核明细的小区 - baseMapper.mergeCuRegionAssessDetailSmallAreaPv(rangeTableName, assessDate); - // 所有考核先变为考核失败 - baseMapper.updateCuRegionAssessDetailInit(assessDate); - // 验证汇总业绩和小区业绩是否满足条件,汇总业绩满足30000,小区满足100000,变更为考核通过 - baseMapper.updateCuRegionAssessDetailByPv(assessDate); - // 手动开区域由免考修改为正常考核。到期后,验证近6个月的考核结果,达标3次,继续有奖衔,否则没有 -// baseMapper.updateCuRegionAssessDetailByHand(assessDate); - // 更新主表,更新达标次数 - } -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessServiceImpl.java index cd7581ca..3b00e2ba 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessServiceImpl.java @@ -1,135 +1,14 @@ package com.hzs.bonus.detail.service.impl; -import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle; import com.hzs.bonus.detail.mapper.CuRegionAssessMapper; -import com.hzs.bonus.detail.service.ICuRegionAssessDetailService; import com.hzs.bonus.detail.service.ICuRegionAssessService; -import com.hzs.bonus.detail.vo.CuRegionAssessDetailVO; -import com.hzs.bonus.detail.vo.CuRegionAssessVO; -import com.hzs.bonus.param.CuRegionAssessParam; -import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.member.detail.CuRegionAssess; -import com.hzs.common.domain.member.detail.CuRegionAssessDetail; -import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt; -import com.hzs.common.domain.retail.member.CuMemberRetailRegion; -import com.hzs.retail.member.IMemberRetailApi; -import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; /** * 新零售会员区域考核 服务实现类 */ @Service public class CuRegionAssessServiceImpl extends ServiceImpl implements ICuRegionAssessService { - - @DubboReference - IMemberRetailApi iMemberRetailApi; - - @Autowired - private ICuRegionAssessDetailService iCuRegionAssessDetailService; - @Autowired - private CuMemberBonusSettle cuMemberBonusSettle; - - - @Override - public void validateHandAreaAssess(Date startDate, Date endDate) { - List cancelRegionList = new ArrayList<>(); - List dueRetailRegionList = baseMapper.queryDueCuMemberRetailRegion(startDate, endDate); - if (dueRetailRegionList.size() > 0) { - Date assessDate = DateUtils.currentMonthFirstDate(startDate); - // 查询期初日期 beforeMonthFirstDate startDate 考核期间结束日期 - Date assMonthStartDate = DateUtils.beforeMonthFirstDate(5, assessDate); - // assessDate assessDate 查询考核记录 - Map regionAssessExtMap = new HashMap<>(); - List cuRegionAssessExtList = baseMapper.queryRegionAssessByDate(dueRetailRegionList, assMonthStartDate, assessDate); - cuRegionAssessExtList.forEach(cuRegionAssessExt -> regionAssessExtMap.put(cuRegionAssessExt.getPkMember(), cuRegionAssessExt)); - for (CuMemberRetailRegion cuMemberRetailRegion : dueRetailRegionList) { - if (regionAssessExtMap.containsKey(cuMemberRetailRegion.getPkMember())) { - CuRegionAssessExt cuRegionAssessExt = regionAssessExtMap.get(cuMemberRetailRegion.getPkMember()); - if (cuRegionAssessExt.getPkId() >= 3) { - continue; - } - } - cancelRegionList.add(cuMemberRetailRegion.getPkId()); - } - } - if (cancelRegionList.size() > 0) { - if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) { - throw new RuntimeException("区域更新失败"); - } - } - } - - private void saveCuRegionAssess(Map regionAssessMap, List regionAssessDetailList) { - List longs = baseMapper.batchQueryCuRegionAssessSeq(regionAssessMap.size()); - int i = 0; - List cuRegionAssessList = new ArrayList<>(); - for (Long pkMember : regionAssessMap.keySet()) { - CuRegionAssess cuRegionAssess = regionAssessMap.get(pkMember); - cuRegionAssess.setPkId(longs.get(i)); - cuRegionAssessList.add(cuRegionAssess); - i++; - } - for (CuRegionAssessDetail cuRegionAssessDetail : regionAssessDetailList) { - if (regionAssessMap.containsKey(cuRegionAssessDetail.getPkRegionAssess())) { - CuRegionAssess cuRegionAssess = regionAssessMap.get(cuRegionAssessDetail.getPkRegionAssess()); - cuRegionAssessDetail.setPkRegionAssess(cuRegionAssess.getPkId()); - } - } - // 主表 - List> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList); - 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 -> - iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail)); - } - - List queryCuRegionAssessByEndDate(Date settleDate) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("ASSESS_END_DATE", settleDate); - return baseMapper.selectList(queryWrapper); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod) { - // 7天内重算 - iCuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod); - baseMapper.deleteAssessRegionByDate(assessStartDate, assessPeriod); - } - - @Override - public List queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam) { - regionAssessParam.setAssessDate(DateUtils.currentMonthFirstDate()); - return baseMapper.queryRegionAssessByCondition(regionAssessParam); - } - - @Override - public List getCuRegionAssessVoS(List cuRegionAssessExtList) { - List cuRegionAssessVoList = new ArrayList<>(); - for (CuRegionAssessExt cuRegionAssessExt : cuRegionAssessExtList) { - CuRegionAssessVO cuRegionAssessVO = BeanUtil.copyProperties(cuRegionAssessExt, CuRegionAssessVO.class); - List regionAssessDetailVoList = new ArrayList<>(); - for (CuRegionAssessDetail cuRegionAssessDetail : cuRegionAssessExt.getCuRegionAssessDetailList()) { - CuRegionAssessDetailVO cuRegionAssessDetailVO = BeanUtil.copyProperties(cuRegionAssessDetail, CuRegionAssessDetailVO.class); - regionAssessDetailVoList.add(cuRegionAssessDetailVO); - } - cuRegionAssessVO.setRegionAssessDetailVoList(regionAssessDetailVoList); - cuRegionAssessVoList.add(cuRegionAssessVO); - } - return cuRegionAssessVoList; - } } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessDetailVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessDetailVO.java deleted file mode 100644 index 95eca744..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessDetailVO.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hzs.bonus.detail.vo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.constant.EnumsPrefixConstants; -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - -/** - * 考核区域明细 - */ -@Data -public class CuRegionAssessDetailVO implements Serializable { - - /** - * 会员主键 - */ - private Long pkMember; - - /** - * 考核日期 - */ - @JsonFormat(pattern = "yyyy-MM-dd") - private Date assessDate; - - /** - * 会员等级 - */ - private Integer pkAwards; - - /** - * 团队月消费pv - */ - private BigDecimal teamMonthPv; - - /** - * 团队月消费pv - */ - private BigDecimal smallAreaPv; - - /** - * 考核状态 (0=考核通过,1=免考通过,2=考核不通过,3=不考核) - */ - @Transaction(transactionKey = EnumsPrefixConstants.ASSESS_STATUS) - private Integer assessStatus; - - private String assessStatusVal; -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessVO.java deleted file mode 100644 index 6d97bbe1..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/vo/CuRegionAssessVO.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.hzs.bonus.detail.vo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.hzs.common.core.annotation.Transaction; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; -import java.util.List; - -/** - * 区域考核结果 - */ -@Data -public class CuRegionAssessVO implements Serializable { - - /** - * 会员编号 - */ - private String memberCode; - - /** - * 会员姓名 - */ - private String memberName; - - /** - * 考核区域 省+市+县 - */ - private String assessAddress; - - /** - * 考核期 - */ - private Integer assessPeriod; - - /** - * 考核开始日期 - */ - @JsonFormat(pattern = "yyyy-MM-dd") - private Date assessStartDate; - - /** - * 考核期结束日期 - */ - @JsonFormat(pattern = "yyyy-MM-dd") - private Date assessEndDate; - - /** - * 达标次数 - */ - private Integer reachNum; - - @Transaction - private List regionAssessDetailVoList; -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/param/CuRegionAssessParam.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/param/CuRegionAssessParam.java deleted file mode 100644 index 9ba93847..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/param/CuRegionAssessParam.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.hzs.bonus.param; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 查询参数 - */ -@Data -public class CuRegionAssessParam implements Serializable { - - private Date assessDate; - - private Long pkMember; - - private Integer pkCountry; - - private String memberCode; - - private String memberName; -} diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml deleted file mode 100644 index e736e20b..00000000 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - 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} - ) - - 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} - ) b - 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 - - - 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} - ) - group by pk_id - ) b - 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 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 - 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 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} - - ) - - - - 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 638eae4e..d73e3edf 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 @@ -2,111 +2,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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} - ) - - SELECT 1 FROM dual - - - - delete 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-member/src/main/java/com/hzs/member/base/provider/CuMemberRetailRegionServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/CuMemberRetailRegionServiceProvider.java deleted file mode 100644 index 5e0e0166..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/CuMemberRetailRegionServiceProvider.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hzs.member.base.provider; - -import com.hzs.common.core.domain.R; -import com.hzs.member.base.ICuMemberRetailRegionServiceApi; -import com.hzs.retail.member.service.ICuMemberRetailRegionService; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboService; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * @description: 会员收益区域dubbo服务 - * @author: zhang jing - * @date: 2024/12/30 15:05 - * @param: - * @return: - **/ -@Slf4j -@DubboService -public class CuMemberRetailRegionServiceProvider implements ICuMemberRetailRegionServiceApi { - - @Autowired - private ICuMemberRetailRegionService iCuMemberRetailRegionService; - - /** - * @description: 批量修改已到期的会员收益区域 - * @author: zhang jing - * @date: 2024/12/30 15:20 - * @param: [] - * @return: com.hzs.common.core.domain.R - **/ - @Override - public R batchUpdateRetailRegion() { - try { - iCuMemberRetailRegionService.batchUpdateRetailRegion(); - } catch (Exception e) { - log.error("batchUpdateRetailRegion error:", e); - return R.fail(); - } - return R.ok(); - } - - @Override - public R handleRepeatRegion() { - try { - iCuMemberRetailRegionService.handleRepeatRegion(); - return R.ok(); - } catch (Exception e) { - log.error("handleRepeatRegion error:", e); - return R.fail(); - } - } - -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java index e0812932..f1c44ede 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java @@ -17,23 +17,15 @@ import java.util.List; /** * 会员首页 - * - * @Description: - * @Author: ljc - * @Time: 2023/5/4 21:06 - * @Classname: ApiHomePageController - * @Package_name: com.hzs.member.base.controller.api */ @Slf4j @RequestMapping("/api/retail-member") @RestController public class ApiRetailHomePageController extends BaseController { - @Autowired private ICuMemberRetailAchieveService retailAchieveService; - /** * 查询会员盒数 * @@ -54,7 +46,6 @@ public class ApiRetailHomePageController extends BaseController { .smallAreaPv(result.getSmallRangeTotalPv()) .build(); return AjaxResult.success(vo); -// return AjaxResult.success(retailAchieveService.selectMemberSmallBox(pkMember, pkCountry, systemType)); } /** diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java index 228540a8..4d55db31 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java @@ -2,44 +2,20 @@ package com.hzs.retail.member.controller.api; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.lang.tree.Tree; -import cn.hutool.core.lang.tree.TreeNodeConfig; -import cn.hutool.core.lang.tree.TreeUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hzs.common.core.annotation.RepeatSubmitSimple; -import com.hzs.common.core.constant.RetailRegionTreeQueryConstants; -import com.hzs.common.core.constant.SysConstants; -import com.hzs.common.core.constant.msg.AreaConstants; -import com.hzs.common.core.enums.EGrade; -import com.hzs.common.core.enums.ENoticeWebsiteType; -import com.hzs.common.core.enums.EYesNo; -import com.hzs.common.core.utils.PageUtils; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.ext.CuMemberExt; -import com.hzs.common.domain.retail.member.CuMemberRetailRegion; -import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; -import com.hzs.common.domain.system.base.BdArea; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.base.service.ICuMemberService; -import com.hzs.retail.member.param.RetailMemberRegionParam; -import com.hzs.retail.member.service.ICuMemberRetailAchieveService; import com.hzs.retail.member.service.ICuMemberRetailRegionService; import com.hzs.retail.member.service.IMemberRetailService; -import com.hzs.retail.member.vo.CuMemberRetailAchieveVO; import com.hzs.retail.member.vo.RecommendListVO; import com.hzs.retail.member.vo.RetailMemberInfoVO; -import com.hzs.retail.member.vo.RetailMemberRegionVO; -import com.hzs.system.base.IAreaServiceApi; 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.*; -import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -57,11 +33,6 @@ public class RetailMemberController extends BaseController { private IMemberRetailService iMemberRetailService; @Autowired private ICuMemberRetailRegionService iCuMemberRetailRegionService; - @Autowired - private ICuMemberRetailAchieveService iCuMemberRetailAchieveService; - - @DubboReference - IAreaServiceApi iAreaServiceApi; /** * 获取登录会员信息 @@ -310,4 +281,15 @@ public class RetailMemberController extends BaseController { return tableDataInfo; } + /** + * 查询选择区域 + * + * @param type -- city:省市,county:省市区 + * @return + */ + @GetMapping("/query-region") + public AjaxResult queryRegion(@RequestParam("type") String type) { + return AjaxResult.success(iCuMemberRetailRegionService.getRegionTreeList(type, SecurityUtils.getUserId())); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java index 451389fe..b72b6eed 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java @@ -14,6 +14,7 @@ import java.util.List; * Mapper 接口 */ public interface CuMemberRetailRangeMapper extends BaseMapper { + /** * 查询会员直推会员 * @@ -22,65 +23,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper selectDirectPushByPkMember(@Param("pkMember") Long pkMember, @Param("systemType") Integer systemType); - /** - * 查询大区用户信息 - * - * @param cuMemberAchieveVO - * @return - */ - CuMemberRetailAchieveVO selectBigAreaByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO); - - /** - * 查询表名是否存在 - * - * @param tableNames 表名 - * @return List - */ - List selectTableNameIsExist(@Param("tableNames") List tableNames); - - /** - * 查询会员当天是否下订单 - * - * @param pkMember 会员 - * @return Integer - */ - CuMemberRetailAchieveVO selectMemberOrderByPkMember(@Param("pkMember") Long pkMember); - - - /** - * 查询会员的极差业绩 - * - * @param cuMemberAchieveVO 入参 - * @return CuMemberAchieveVO - */ - List selectMemberParentByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO); - - /** - * 查询会员没有注水的大区盒数 - * - * @param cuMemberAchieveVO 入参 - * @return CuMemberRetailAchieveVO - */ - Integer selectMemberBoxNoWaterInjection(CuMemberRetailAchieveVO cuMemberAchieveVO); - - - /** - * 查询会员注水的大区盒数 - * - * @param cuMemberAchieveVO 入参 - * @return CuMemberRetailAchieveVO - */ - Integer selectMemberBoxWaterInjection(CuMemberRetailAchieveVO cuMemberAchieveVO); - - - /** - * 查询会员最大盒数 - * - * @param cuMemberAchieveVO 入参 - * @return CuMemberRetailAchieveVO - */ - Integer selectMemberTotalBox(CuMemberRetailAchieveVO cuMemberAchieveVO); - /** * 查询会员业绩 * @@ -129,22 +71,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper - */ - List selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO); - /** * 获取会员结算明细 + * * @param cuMemberAchieveVO * @return */ @@ -194,7 +105,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper selectMemberSmallBoxList(CuMemberRetailAchieveVO param); - List selectSubMemberIdByRootMember(@Param("pkMember") Long pkMember, @Param("systemType") Integer systemType); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java index 7e2350a7..555bae8d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java @@ -26,14 +26,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper listChooseRegion(@Param("systemType") Integer systemType); - /** * 插入收益区域 * @@ -53,18 +45,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper memberretailRegList(CuMemberRetailRegionExt mrrExt); - /** - * 批量修改已到期的会员收益区域 - **/ - void batchUpdateRetailRegion(); - - /** - * 重新判断收益区域数据 - * - * @return - */ - List listCheckRegionMember(); - /** * 会员购买订单数量 * @@ -77,28 +57,5 @@ public interface CuMemberRetailRegionMapper extends BaseMapper waresCodeList); - /** - * 获取重复数据 - * - * @param systemType 系统类型 - * @return - */ - List listRepeatData(@Param("systemType") Integer systemType); - - /** - * 更新非最新区域其它数据 - * - * @param province 省 - * @param city 市 - * @param county 区 - * @param systemType 系统类型 - * @return - */ - int updateRepeatDate(@Param("province") Integer province, - @Param("city") Integer city, - @Param("county") Integer county, - @Param("systemType") Integer systemType); - - List getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId); } 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 deleted file mode 100644 index dddd4b2e..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hzs.retail.member.provider; - -import com.hzs.common.core.domain.R; -import com.hzs.retail.member.IMemberRetailApi; -import com.hzs.retail.member.service.ICuMemberRetailRegionService; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboService; -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 - */ -@Slf4j -@DubboService -public class MemberRetailProvider implements IMemberRetailApi { - - @Autowired - private ICuMemberRetailRegionService iCuMemberRetailRegionService; - - @Override - public R checkRegion() { - try { - iCuMemberRetailRegionService.checkRegion(); - return R.ok(); - } catch (Exception e) { - log.error("定时任务处理收益区域异常", e); - return R.fail(e.getMessage()); - } - } - - @Override - public R cancelRegion(List pkIdList) { - try { - iCuMemberRetailRegionService.cancelRegion(pkIdList); - return R.ok(); - } catch (Exception e) { - log.error("区域失效操作异常,pkIdList:{}", pkIdList, e); - return R.fail(e.getMessage()); - } - } - -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailAchieveService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailAchieveService.java index 9f369375..e14c104d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailAchieveService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailAchieveService.java @@ -5,23 +5,13 @@ import com.hzs.common.domain.member.achieve.CuMemberRetailRange; import com.hzs.retail.member.param.MarketDynamicsQueryDateParam; import com.hzs.retail.member.utils.PageResult; import com.hzs.retail.member.vo.CuMemberRetailAchieveVO; -import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO; import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO; import com.hzs.retail.member.vo.MarketDynamicsDetailVO; import java.util.List; -import java.util.Map; public interface ICuMemberRetailAchieveService extends IService { - /** - * 查询会员盒数 - * - * @param pkMember 会员ID - * @return CuMemberRetailAchieveVO - */ - CuMemberRetailAchieveVO selectMemberSmallBox(Long pkMember, Integer pkCountry, Integer systemType); - /** * 查询会员大小区业绩 * @@ -81,15 +71,6 @@ public interface ICuMemberRetailAchieveService extends IService listChooseRegion(Integer systemType); - /** * 未绑定收益区域 **/ @@ -51,23 +42,6 @@ public interface ICuMemberRetailRegionService extends IService memberretailRegList(CuMemberRetailRegionExt mrrExt); - /** - * 批量修改已到期的会员收益区域 - **/ - void batchUpdateRetailRegion(); - - /** - * 定时处理收益区域 - */ - void checkRegion(); - - /** - * 取消收益区域 - * - * @param pkIdList 收益区域ID - */ - void cancelRegion(List pkIdList); - /** * 会员购买订单数量 * @@ -78,17 +52,12 @@ public interface ICuMemberRetailRegionService extends IService waresCodeList); - /** - * 处理重复区域 - * - * @return - */ - void handleRepeatRegion(); - /** * 查询可选收益区域树结构 入参常量为 RetailRegionTreeQueryConstants + * * @param queryType + * @param pkMember * @return */ - List> getRegionTreeList(String queryType); + List> getRegionTreeList(String queryType, Long pkMember); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java index 50d4a9ce..eb5b8c31 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java @@ -5,7 +5,6 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.constant.TableNameConstants; -import com.hzs.common.core.enums.EGrade; import com.hzs.common.core.enums.EYesNo; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.member.achieve.CuMemberRetailRange; @@ -24,10 +23,7 @@ import com.hzs.retail.member.vo.CuMemberRetailAchieveVO; import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO; import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO; import com.hzs.retail.member.vo.MarketDynamicsDetailVO; -import com.hzs.system.config.IGradeServiceApi; -import com.hzs.system.config.dto.GradeDTO; import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -52,62 +48,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType); - CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRetailTable) - .memberRetailSTable(getTableSName()).memberCode(cuMember.getMemberCode()) - .pkMember(pkMember).pkMemberList(pkMemberList).build(); - - //查询会员是否激活 - // Integer enableStatus = baseMapper.selectMemberActiveState(memberAchieveVO); - Integer enableStatus = cuMember.getIsActivate(); - if (null != enableStatus && enableStatus.equals(EYesNo.YES.getIntValue())) { - //查询总盒数 - Integer totalBox = baseMapper.selectMemberTotalBox(memberAchieveVO); - if (null != totalBox) { - Integer maxBox = 0; - //查询是否配置注水 - Integer total = baseMapper.selectWaterInjection(cuMember.getMemberCode()); - if (null != total && total > 0) { - //查询注水最大盒数 - maxBox = baseMapper.selectMemberBoxWaterInjection(memberAchieveVO); - } else { - //查询无注水最大盒数 - maxBox = baseMapper.selectMemberBoxNoWaterInjection(memberAchieveVO); - } - memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(totalBox).smallAreaBox(totalBox - maxBox).build(); - //总盒数大于2800的时候显示2800 - GradeDTO lastGrate = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData(); - //配置中的总盒数 - Integer totalBoxConfig = lastGrate.getBoxTotal(); - Integer totalBoxMax = memberRetailAchieveVO.getTotalBox() > totalBoxConfig ? totalBoxConfig : memberRetailAchieveVO.getTotalBox(); - memberRetailAchieveVO.setTotalBox(totalBoxMax); - } else { - memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(0).smallAreaBox(0).build(); - } - } else { - memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(0).smallAreaBox(0).build(); - } - return memberRetailAchieveVO; - } - - @Override public CuMemberRetailAchieveVO selectMemberAchieve(Long pkMember, Integer pkCountry, Integer systemType) { //查询会员昨日业绩 @@ -142,18 +82,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl pkMemberList, String memberRangeTable) { - CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRangeTable).pkMemberList(pkMemberList).build(); - return baseMapper.selectBigAreaByPkMember(memberAchieveVO); - } - - /** * 查询会员直推业绩 * @@ -308,17 +221,18 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl selectTableNameIsExist(List tableNames) { - return baseMapper.selectTableNameIsExist(tableNames); - } - - /** * 转化万单位、汇率换算 * @@ -393,63 +302,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType); - // 2025年6月11日 取伞下 + 自己的ID -// List pkMemberList = baseMapper.selectSubMemberIdByRootMember(pkMember, systemType); - //根据国家查汇率 - BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate(); - //查询自己业绩 - List memberSelfAchieveList = new ArrayList<>(); - - //会员业绩 - CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRetailTable).pkMember(pkMember).systemType(systemType).build(); - CuMemberRetailAchieveVO orderAchieveVO = baseMapper.selectMemberOrderSumAchieveByPkMember(memberAchieveVO); - if (null != orderAchieveVO && orderAchieveVO.getArealPv().compareTo(BigDecimal.ZERO) > 0) { - orderAchieveVO.setPkMember(pkMember); - memberSelfAchieveList.add(orderAchieveVO); - } - //查询伞下业绩 - if (CollUtil.isNotEmpty(pkMemberList)) { - List memberPushAchieveList = getMemberPushSumAchieve(pkMemberList, memberRetailTable, memberSecondTable, systemType); - if (CollUtil.isNotEmpty(memberPushAchieveList)) { - memberSelfAchieveList.addAll(memberPushAchieveList); - } - } - if (CollUtil.isEmpty(memberSelfAchieveList)) { - return CuMemberRetailAchieveVO.builder().smallAreaPv(BigDecimal.ZERO).bigArealPv(BigDecimal.ZERO).build(); - } - return getMemberBigAndSmallAchieve(memberSelfAchieveList, rate); - } - - - /** - * 查询会员直推业绩(累计) - * - * @param pkMemberList 直推会员ID - * @return CuMemberAchieveVO - */ - private List getMemberPushSumAchieve(List pkMemberList, String memberRangeTable,String memberSecondTable, Integer systemType) { - CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder() - .memberRetailTable(memberRangeTable) - .memberRetailSTable(memberSecondTable) - .pkMemberList(pkMemberList).systemType(systemType).build(); - return baseMapper.selectMemberSumAchieve(memberAchieveVO); - } - - /** * 查询不前时间是否是本月第一天 * @@ -505,7 +357,7 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl implements ICuMemberRetailRegionService { - @Autowired - private ICuMemberRetailAchieveService iCuMemberRetailAchieveService; - @Autowired private RedisService redisService; @@ -88,11 +81,6 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl listChooseRegion(Integer systemType) { - return baseMapper.listChooseRegion(systemType); - } - @Override public List unboundAreaList(Integer pkCountry, Integer systemType) { return baseMapper.unboundAreaList(pkCountry, systemType); @@ -103,122 +91,20 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl memberList = baseMapper.listCheckRegionMember(); - - if (CollectionUtil.isNotEmpty(memberList)) { - memberList.parallelStream().forEach(tmpMember -> { - if (ENoticeWebsiteType.ADMIN.getValue() == tmpMember.getSource()) { - log.info("定时任务区域有效, 会员 {} 后台配置,不取消收益区域", tmpMember.getPkId()); - return; - } - - // 当前时间 - Date nowDate = new Date(); - - if (tmpMember.getGradeValue() < EGrade.S_VIP.getValue()) { - // 会员等级不足V5,需要关掉收益区域 - log.info("定时任务区域有效, 会员 {} 等级 {} 不足取消收益区域", tmpMember.getPkId(), tmpMember.getGradeValue()); - this.update(Wrappers.lambdaUpdate() - .eq(CuMemberRetailRegion::getPkMember, tmpMember.getPkId()) - .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) - .set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue()) - .set(CuMemberRetailRegion::getPkModified, tmpMember.getPkId()) - .set(CuMemberRetailRegion::getModifiedTime, nowDate) - ); - } else { -// // 获取小市场业绩 -// CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(tmpMember.getPkId(), CountryConstants.CHINA_COUNTRY, tmpMember.getSystemType()); -// if (retailAchieve.getSmallAreaPv().compareTo(BigDecimal.ZERO) <= 0) { -// // 正常有区域业绩肯定达标,由2万突然变0基本不可能,此处暂时不处理 -// log.info("定时任务区域有效, 会员 {} 小市场业绩归0,暂时不取消收益区域", tmpMember.getPkId()); -// return; -// } -// // 2025.02.07 确认需求,如果是历史已经升上去的,还是走老逻辑只校验小市场 -// String checkDate = "2025-02-10 00:00:00"; -// if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())) { -// checkDate = "2025-02-07 00:00:00"; -// } -// if (tmpMember.getCreationTime().compareTo(DateUtils.parseDateOne(checkDate, DateUtils.YYYY_MM_DD_HH_MM_SS)) > 0) { -// if (retailAchieve.getSmallAreaPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0 -// || retailAchieve.getBigArealPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0 -// ) { -// // 大市场、小市场业绩小于2万,需要取消收益区域 -// log.info("2.定时任务区域有效, 会员 {} 小市场业绩 {} 取消收益区域", tmpMember.getPkId(), retailAchieve.getSmallAreaPv()); -// if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())) { -// this.update(Wrappers.lambdaUpdate() -// .eq(CuMemberRetailRegion::getPkMember, tmpMember.getPkId()) -// .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) -// .set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue()) -// .set(CuMemberRetailRegion::getPkModified, tmpMember.getPkId()) -// .set(CuMemberRetailRegion::getModifiedTime, nowDate) -// ); -// } -// } -// } else { -// if (retailAchieve.getSmallAreaPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0) { -// // 小市场业绩小于2万,需要取消收益区域 -// log.info("1.定时任务区域有效, 会员 {} 小市场业绩 {} 取消收益区域", tmpMember.getPkId(), retailAchieve.getSmallAreaPv()); -// if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())) { -// this.update(Wrappers.lambdaUpdate() -// .eq(CuMemberRetailRegion::getPkMember, tmpMember.getPkId()) -// .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) -// .set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue()) -// .set(CuMemberRetailRegion::getPkModified, tmpMember.getPkId()) -// .set(CuMemberRetailRegion::getModifiedTime, nowDate) -// ); -// } -// } -// } - } - }); - } - } - - @Override - public void cancelRegion(List pkIdList) { - this.update(Wrappers.lambdaUpdate() - .in(CuMemberRetailRegion::getPkId, pkIdList) - .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) - .set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue()) - .set(CuMemberRetailRegion::getPkModified, MagicNumberConstants.PK_ADMIN) - .set(CuMemberRetailRegion::getModifiedTime, new Date()) - ); - } - @Override public int getOrderCount(Long pkMember, Integer systemType, List waresCodeList) { return baseMapper.getOrderCount(pkMember, systemType, waresCodeList); } @Override - public void handleRepeatRegion() { - for (ESystemType eSystemType : ESystemType.getEnableList()) { - List retailRegionList = baseMapper.listRepeatData(eSystemType.getValue()); - if (CollectionUtil.isNotEmpty(retailRegionList)) { - retailRegionList.parallelStream().forEach(retailRegion -> { - baseMapper.updateRepeatDate(retailRegion.getProvince(), retailRegion.getCity(), retailRegion.getCounty(), eSystemType.getValue()); - }); - } - } - } - - @Override - public List> getRegionTreeList(String queryType) { - List areaList = baseMapper.getRegionTreeList(queryType, SecurityUtils.getUserId()); + public List> getRegionTreeList(String queryType, Long pkMember) { + List areaList = baseMapper.getRegionTreeList(queryType, pkMember); if (CollectionUtil.isEmpty(areaList)) { return null; } TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); treeNodeConfig.setDeep(3); - if(RetailRegionTreeQueryConstants.CITY.equals(queryType)){ + if (RetailRegionTreeQueryConstants.CITY.equals(queryType)) { treeNodeConfig.setDeep(2); } return TreeUtil.build(areaList, "0", treeNodeConfig, diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml index 3a10d092..1256f056 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml @@ -10,14 +10,6 @@ AND m.pk_parent = #{pkMember} - - SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember @@ -68,138 +60,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember @@ -510,14 +330,6 @@ - - - - - - - - - - - insert into cu_member_retail_region cmrr ( @@ -184,28 +167,6 @@ order by CRR.CREATION_TIME desc - - - UPDATE CU_MEMBER_RETAIL_REGION - SET EFFECTIVE=1, - MODIFIED_TIME=sysdate - WHERE EFFECTIVE = 0 - AND DEL_FLAG = 0 - AND EFFECTIVE_END_DATE < = sysdate - - - - - - - - - - update cu_member_retail_region cmrr - set cmrr.effective = 1, - cmrr.modified_time = sysdate - where cmrr.del_flag = 0 - and cmrr.effective = 0 - and cmrr.province = #{province} - and cmrr.city = #{city} - and cmrr.county = #{county} - and cmrr.system_type = #{systemType} - and cmrr.pk_id not in (select pk_id - from (select cmrr.pk_id - from cu_member_retail_region cmrr - where cmrr.del_flag = 0 - and cmrr.effective = 0 - and cmrr.province = #{province} - and cmrr.city = #{city} - and cmrr.county = #{county} - and cmrr.system_type = #{systemType} - order by cmrr.creation_time) - where rownum = 1) - - diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 49dc0815..c1b97395 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -99,6 +99,7 @@ public class ApiRetailOrderController { if (null != bdGrade) { orderLevelVO.setIsEnough(true); orderLevelVO.setPkGradeVal(bdGrade.getGradeName()); + orderLevelVO.setGradeValue(bdGrade.getGradeValue()); } else { orderLevelVO.setMsg("会员不满足升级条件"); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailerOrderLevelVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailerOrderLevelVO.java index c26e6e5d..89e5d06f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailerOrderLevelVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailerOrderLevelVO.java @@ -8,11 +8,7 @@ import lombok.NoArgsConstructor; import java.io.Serializable; /** - * @Description: 新零售订单等级返回VO - * @Author: jiang chao - * @Time: 2024/12/12 17:31 - * @Classname: RetailerOrderLevelVO - * @PackageName: com.hzs.retail.sale.vo + * 新零售订单等级返回VO */ @Builder @AllArgsConstructor @@ -30,6 +26,11 @@ public class RetailerOrderLevelVO implements Serializable { */ private String pkGradeVal; + /** + * 等级值 + */ + private Integer gradeValue; + /** * 返回信息 */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java index 8e2c89c4..e651c9b8 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java @@ -292,7 +292,6 @@ public enum EOperationBusiness { PRODUCT_GIVE("商品赠送"), CONSUME_GIVE("消费赠送"), - PLANTING_PUBLIC_WELFARE("种植公益配置"), RECHARGE_PICK("充值提货卡"), @@ -350,27 +349,6 @@ public enum EOperationBusiness { STOREHOUSE_AREA_MIDDLE("地区仓库"), PRODUCT_STOREHOUSE("产品绑定仓库配置"), - //////////////////// 站点配置 //////////////////// - - INDEX_BACKGROUND("首页背景"), - - CORPORATE_MISSION("企业使命"), - COMPANY_NEWS("公司新闻"), - - COMPANY_SHOW("公司风采"), - - VR_ZONE("VR专区"), - - HONOR("荣誉资质"), - - DEVELOP("发展历程"), - - GLOBAL_DISTRIBUTION("全球分布"), - - WEBSITE_BANNER("官网Banner"), - - PRODUCT_CONFIG("商品配置"), - //////////////////// 自助服务 //////////////////// DOMICILE_CHANGE("户籍变更"), MODIFY_ADDRESS("修改地址"), @@ -423,7 +401,6 @@ public enum EOperationBusiness { PRODUCT_SHIPPING_DETAILS_LIST("出货明细汇总统计"), PRODUCT_SHIPPING_DETAILS_INFO_LIST("出货明细汇总统计详情"), REPORT_SUMMARY_LIST("报单汇总"), - PLACE_PEG("安置反查"), PARENT_PEG("推荐反查"), PRODUCT_DETAIL_QUERY_LIST("产品明细查询"), MONTHLY_JOB_LEVEL("月度职级名单查询"), diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java index 5dd93026..99d59953 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java @@ -232,26 +232,6 @@ public enum EOperationModule { WHITE_LIST("白名单"), - //////////////////// 站点配置 //////////////////// - - INDEX_BACKGROUND("首页背景"), - - CORPORATE_MISSION("企业使命"), - - COMPANY_NEWS("公司新闻"), - COMPANY_SHOW("公司风采"), - VR_ZONE("VR专区"), - - MEMORABILIA("大事记"), - - GLOBAL_DISTRIBUTION("全球分布"), - - WEBSITE_BANNER("官网Banner"), - - PRODUCT_CONFIG("商品配置"), - COMPANY_STYLE("公司风采"), - DEVELOP("发展历程"), - //////////////////// 公用 //////////////////// COMMON_FILE("文件操作"), @@ -412,8 +392,6 @@ public enum EOperationModule { CU_MEMBER_TEAM("隶属团队"), - HO_GLOBAL_COMPANY("全球分布"), - BONUS_DETAIL("奖金明细"), AC_RECOMMEEND_CONFIG("直推赠送"), @@ -428,8 +406,6 @@ public enum EOperationModule { ///////////////////////////统计分析//////////////////////////// STATISTIC_ANALYSIS("统计分析"), - SUPPLIER_GOODS("供应商商品"), - ; /** 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..bd150a1f 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) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/ext/CuRegionAssessExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/ext/CuRegionAssessExt.java deleted file mode 100644 index c5e73e47..00000000 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/ext/CuRegionAssessExt.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.hzs.common.domain.member.detail.ext; - -import com.hzs.common.domain.member.detail.CuRegionAssess; -import com.hzs.common.domain.member.detail.CuRegionAssessDetail; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -/** - * @description: 区域考核结果 - * @author: sui q - * @time: 2025/1/15 17:14 - * @classname: CuRegionAssessExt - * @package_name: com.hzs.common.domain.member.detail.ext - * version 1.0.0 - */ -@EqualsAndHashCode(callSuper = true) -@Data -public class CuRegionAssessExt extends CuRegionAssess { - - private String memberCode; - - private String memberName; - - private String provinceName; - - private String cityName; - - private String countyName; - - private String assessAddress; - - private List cuRegionAssessDetailList; -} diff --git a/bd-third/src/main/java/com/hzs/third/job/MemberJob.java b/bd-third/src/main/java/com/hzs/third/job/MemberJob.java index ec526c21..5d60866e 100644 --- a/bd-third/src/main/java/com/hzs/third/job/MemberJob.java +++ b/bd-third/src/main/java/com/hzs/third/job/MemberJob.java @@ -1,15 +1,12 @@ package com.hzs.third.job; import com.hzs.activity.pick.IAcRetailPickLogServiceApi; -import com.hzs.bonus.detail.ICuRegionAssessApi; import com.hzs.common.core.domain.R; import com.hzs.common.core.utils.DateUtils; -import com.hzs.member.base.ICuMemberRetailRegionServiceApi; import com.hzs.member.base.IMemberServiceApi; import com.hzs.member.statis.ICuBonusStatisServiceApi; import com.hzs.member.statis.ICuBonusVertexStatisServiceApi; import com.hzs.report.stat.IMemberReportServiceApi; -import com.hzs.retail.member.IMemberRetailApi; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -27,19 +24,13 @@ public class MemberJob { @DubboReference IMemberServiceApi iMemberServiceApi; @DubboReference - IMemberRetailApi iMemberRetailApi; - @DubboReference ICuBonusStatisServiceApi iCuBonusStatisServiceApi; @DubboReference ICuBonusVertexStatisServiceApi iCuBonusVertexStatisServiceApi; @DubboReference - ICuMemberRetailRegionServiceApi iCuMemberRetailRegionServiceApi; - @DubboReference IAcRetailPickLogServiceApi iAcRetailPickLogServiceApi; @DubboReference IMemberReportServiceApi iMemberReportServiceApi; - @DubboReference - ICuRegionAssessApi iCuRegionAssessApi; /** * 定时统计奖金拨比 @@ -125,35 +116,6 @@ public class MemberJob { log.info("clear-member-empty-code 开始结束! 共处理:{}", dataCount); } - /** - * 定时修改到期的零售区域 - **/ - @XxlJob("retail-region") - public void retailRegion() { - Date date = new Date(); - Date startDate = DateUtils.beforeDate(2, ChronoUnit.DAYS, date); - Date endDate = DateUtils.afterDate(1, ChronoUnit.DAYS, date); - //批量修改已到期的会员收益区域 - iCuRegionAssessApi.validateHandAreaAssess(startDate, endDate); - } - - /** - * 定时校验会员收益区域 - */ - @XxlJob("checkRegion") - public void checkRegion() { - // 定时校验会员收益区域 - iMemberRetailApi.checkRegion(); - } - - /** - * 定时任务重复收益区域数据 - */ - @XxlJob("handleRepeatRegion") - public void handleRepeatRegion() { - iCuMemberRetailRegionServiceApi.handleRepeatRegion(); - } - /** * 每月10号处理上个月提货赠送活动满足活动规则的数据 **/ From 0bc5b3fc56b3f122eba410ebd086dca88e381939 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 11 Jul 2025 16:36:13 +0800 Subject: [PATCH 17/89] =?UTF-8?q?##=20=E6=B3=A8=E5=86=8C=E3=80=81=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E8=AE=A2=E5=8D=95=E6=B7=BB=E5=8A=A0=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CuMemberBusinessServiceImpl.java | 69 ++++++++++++++----- .../mapper/CuMemberRetailRegionMapper.java | 9 +++ .../service/ICuMemberRetailRegionService.java | 9 +++ .../impl/CuMemberRetailRegionServiceImpl.java | 5 ++ .../member/CuMemberRetailRegionMapper.xml | 31 +++++++++ .../api/ApiRetailOrderController.java | 51 ++++++++++++++ .../service/impl/RetailOrderServiceImpl.java | 18 ++++- .../retail/sale/param/RetailOrderParam.java | 13 ++++ .../manager/SaOrderBusinessController.java | 12 ---- .../hzs/sale/order/mapper/SaOrderMapper.java | 11 +++ .../order/service/IOrderBusinessService.java | 8 --- .../sale/order/service/ISaOrderService.java | 12 ++++ .../impl/OrderBusinessServiceImpl.java | 28 -------- .../service/impl/SaOrderServiceImpl.java | 28 +++----- .../wares/mapper/BdWaresAuthorityMapper.java | 9 --- .../service/IBdWaresAuthorityService.java | 9 --- .../sale/wares/service/IBdWaresService.java | 8 --- .../impl/BdWaresAuthorityServiceImpl.java | 9 --- .../service/impl/BdWaresServiceImpl.java | 5 -- .../mapper/sale/order/SaOrderMapper.xml | 22 ++++++ .../sale/wares/BdWaresAuthorityMapper.xml | 25 ------- .../member/ext/CuMemberRetailRegionExt.java | 16 +++-- .../common/domain/sale/ext/SaOrderExt.java | 13 ++++ .../domain/sale/wares/BdWaresAuthority.java | 8 --- 24 files changed, 266 insertions(+), 162 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index fbc7694c..61c53433 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -26,12 +26,12 @@ import com.hzs.common.domain.member.detail.CuMemberChangeLog; import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.BdAccount; import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.domain.system.config.BdGrade; -import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; import com.hzs.member.account.dto.BusinessCommissionDTO; import com.hzs.member.account.service.ICuMemberAccountService; @@ -45,6 +45,7 @@ import com.hzs.member.detail.service.ICuMemberAwardsService; import com.hzs.member.detail.service.ICuMemberChangeLogService; import com.hzs.member.detail.service.ICuMemberLevelService; import com.hzs.member.pub.tool.MemberToolsHandler; +import com.hzs.retail.member.service.ICuMemberRetailRegionService; import com.hzs.sale.order.ISaOrderServiceApi; import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.dto.CurrencyDTO; @@ -92,8 +93,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private RedisService redisService; @Autowired private ICuMemberService iCuMemberService; - - private ICuMemberRegisterService cuMemberRegisterService; + @Autowired + private ICuMemberRegisterService iCuMemberRegisterService; + @Autowired + private ICuMemberRetailRegionService iCuMemberRetailRegionService; private ICuMemberAccountService cuMemberAccountService; @@ -146,10 +149,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { this.cuMemberAccountService = cuMemberAccountService; } - @Autowired - public void setCuMemberRegisterService(ICuMemberRegisterService cuMemberRegisterService) { - this.cuMemberRegisterService = cuMemberRegisterService; - } @Autowired public void setCuMemberChangeLogService(ICuMemberChangeLogService cuMemberChangeLogService) { @@ -290,7 +289,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 用户注册信息 CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); cuMemberRegister.setPkMember(cuMember.getPkId()); - cuMemberRegisterService.save(cuMemberRegister); + iCuMemberRegisterService.save(cuMemberRegister); } /** @@ -319,7 +318,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 用户注册信息 CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); cuMemberRegister.setPkMember(cuMember.getPkId()); - cuMemberRegisterService.save(cuMemberRegister); + iCuMemberRegisterService.save(cuMemberRegister); } @Override @@ -611,7 +610,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberRegister.setPkMember(member.getPkId()); cuMemberRegister.setPkCountry(saOrder.getPkCountry()); cuMemberRegister.setPkModified(saOrder.getPkCreator()); - cuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); + iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); } cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); @@ -643,7 +642,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { updateWrapperRegister.set(CuMemberRegister::getModifiedTime, DateUtils.currentDateTime()); updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified()); updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId()); - cuMemberRegisterService.update(updateWrapperRegister); + iCuMemberRegisterService.update(updateWrapperRegister); } cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); @@ -874,7 +873,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberRegister.setPkMember(pkMember); cuMemberRegister.setPkCountry(saOrder.getPkCountry()); cuMemberRegister.setPkModified(saOrder.getPkCreator()); - cuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); + iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); CuMemberAccount payMemberAccount = cuMemberAccountMap.get(saOrder.getPkCreator()); cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); } @@ -1496,12 +1495,29 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 保存会员注册信息 CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); cuMemberRegister.setPkMember(cuMember.getPkId()); - cuMemberRegisterService.save(cuMemberRegister); + iCuMemberRegisterService.save(cuMemberRegister); + // 会员等级 + GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); // 保存会员等级变动 saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0); + + if (EGrade.VIP.getValue() == gradeDTO.getGradeValue() + || EGrade.BRANCH_COMPANY.getValue() == gradeDTO.getGradeValue()) { + // 店主、分公司级别,判断处理区域 + if (null != saOrder.getRegionProvince() + && null != saOrder.getRegionCity()) { + iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder() + .pkMember(cuMember.getPkId()) + .province(saOrder.getRegionProvince()) + .city(saOrder.getRegionCity()) + .county(saOrder.getRegionCounty()) + .build()); + } + } + // 判断处理推荐人等级 - handleParentUpgrade(cuMember, saOrder); + handleParentUpgrade(cuMember, saOrder, gradeDTO); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); } @@ -1512,12 +1528,29 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 更新会员信息 updateCuMember(cuMember); + // 会员等级 + GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) { // 保存会员等级变动(如果旧等级和新等级相同,则不记录) saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld()); + + if (EGrade.VIP.getValue() == gradeDTO.getGradeValue() + || EGrade.BRANCH_COMPANY.getValue() == gradeDTO.getGradeValue()) { + // 店主、分公司级别,判断处理区域 + if (null != saOrder.getRegionProvince() + && null != saOrder.getRegionCity()) { + iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder() + .pkMember(cuMember.getPkId()) + .province(saOrder.getRegionProvince()) + .city(saOrder.getRegionCity()) + .county(saOrder.getRegionCounty()) + .build()); + } + } } + // 判断处理推荐人等级 - handleParentUpgrade(cuMember, saOrder); + handleParentUpgrade(cuMember, saOrder, gradeDTO); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); } @@ -1580,8 +1613,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { * * @param cuMember */ - private void handleParentUpgrade(CuMember cuMember, SaOrderExt saOrder) { - GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); + private void handleParentUpgrade(CuMember cuMember, SaOrderExt saOrder, GradeDTO gradeDTO) { + if (null == gradeDTO) { + gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); + } if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()) { // 会员等级为 博羚店主,推荐人如果也是博羚店主,需要升级为高级店主 CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent()); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java index 555bae8d..e3de6003 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java @@ -58,4 +58,13 @@ public interface CuMemberRetailRegionMapper extends BaseMapper waresCodeList); List getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId); + + /** + * 插入或更新区域选择 + * + * @param retailRegion + * @return + */ + int mergeMemberRetailRegion(@Param("retailRegion") CuMemberRetailRegion retailRegion); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java index b01940d0..04982a8d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java @@ -60,4 +60,13 @@ public interface ICuMemberRetailRegionService extends IService> getRegionTreeList(String queryType, Long pkMember); + + /** + * 插入或更新区域选择 + * + * @param retailRegion + * @return + */ + int mergeMemberRetailRegion(CuMemberRetailRegion retailRegion); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index 9d9e157d..0740d616 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -115,4 +115,9 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl + + + merge into CU_MEMBER_RETAIL_REGION cmrr + using ( + select + #{retailRegion.pkMember} pk_member, + #{retailRegion.province} province, + #{retailRegion.city} city, + #{retailRegion.county} county + from dual + ) tmp + on (tmp.pk_member = cmrr.pk_member and cmrr.del_flag = 0) + WHEN MATCHED THEN + update + set cmrr.province = tmp.province, + cmrr.city = tmp.city, + cmrr.county = tmp.county, + cmrr.pk_modified = tmp.pk_member, + cmrr.modified_time = sysdate + WHEN NOT MATCHED THEN + insert + (pk_id, pk_member, province, city, county, pk_creator) + values + (cu_member_retail_region_seq.Nextval, + tmp.pk_member, + tmp.province, + tmp.city, + tmp.county, + tmp.pk_member) + + diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index c1b97395..94a8bad6 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -15,6 +15,7 @@ import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberAccountExt; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.security.utils.SecurityUtils; @@ -220,6 +221,12 @@ public class ApiRetailOrderController { return AjaxResult.error(checkStr); } + // 校验会员选择区域是否已经被占用 + checkStr = this.checkRegionNum(registerParam); + if (null != checkStr) { + return AjaxResult.error(checkStr); + } + // 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断 // // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一 // String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData(); @@ -264,6 +271,12 @@ public class ApiRetailOrderController { return AjaxResult.error(checkStr); } + // 校验会员选择区域是否已经被占用 + checkStr = this.checkRegionNum(registerParam); + if (null != checkStr) { + return AjaxResult.error(checkStr); + } + // 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断 // // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一 // String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData(); @@ -291,6 +304,9 @@ public class ApiRetailOrderController { if (memberAccountExt.getIsPayment()) { // 进行支付 saOrderExt.setSpecialArea(registerParam.getSpecialArea()); + saOrderExt.setRegionProvince(registerParam.getRegionProvince()); + saOrderExt.setRegionCity(registerParam.getRegionCity()); + saOrderExt.setRegionCounty(registerParam.getRegionCounty()); String payStr = iRetailOrderService.payRegOrder(saOrderExt, newMember, memberAccountExt); if (null != payStr) { return AjaxResult.error(payStr); @@ -345,6 +361,12 @@ public class ApiRetailOrderController { } upgradeParam.setUpgradeMember(updateGradeMember); + // 校验会员选择区域是否已经被占用 + otherCheckStr = this.checkRegionNum(upgradeParam); + if (null != otherCheckStr) { + return AjaxResult.error(otherCheckStr); + } + // 购物车中获取商品信息 upgradeParam.setOrderItemsParams(convertShoppingCarToSku(upgradeParam.getPkCreator(), upgradeParam.getShopList())); @@ -381,6 +403,12 @@ public class ApiRetailOrderController { return AjaxResult.error(otherCheckStr); } + // 校验会员选择区域是否已经被占用 + otherCheckStr = this.checkRegionNum(upgradeParam); + if (null != otherCheckStr) { + return AjaxResult.error(otherCheckStr); + } + // 支付入参 upgradeParam.setIsPay(EYesNo.YES.getIntValue()); @@ -399,6 +427,9 @@ public class ApiRetailOrderController { if (memberAccountExt.getIsPayment()) { // 进行支付 saOrderExt.setSpecialArea(upgradeParam.getSpecialArea()); + saOrderExt.setRegionProvince(upgradeParam.getRegionProvince()); + saOrderExt.setRegionCity(upgradeParam.getRegionCity()); + saOrderExt.setRegionCounty(upgradeParam.getRegionCounty()); String payStr = iRetailOrderService.payUpgOrder(saOrderExt, updateGradeMember, memberAccountExt); if (null != payStr) { return AjaxResult.error(payStr); @@ -729,4 +760,24 @@ public class ApiRetailOrderController { return null; } + /** + * 校验会员选择区域是否已经被占用 + * + * @param orderParam + * @return + */ + private String checkRegionNum(RetailOrderParam orderParam) { + if (null != orderParam.getRegionProvince() + && null != orderParam.getRegionCity()) { + // 区域省、市不为空,则进行判断 + CuMemberRetailRegionExt cuMemberRetailRegion = iSaOrderService.getRegionBindNum(orderParam.getRegionProvince(), orderParam.getRegionCity(), orderParam.getRegionCounty()); + if (null != cuMemberRetailRegion) { + if (cuMemberRetailRegion.getRegionNum() >= cuMemberRetailRegion.getBindNum()) { + return "当前区域已经达到绑定上限,请重新选择"; + } + } + } + return null; + } + } 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 ffdebdde..79311850 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 @@ -589,6 +589,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService { newMember.setPkAwards(registerParam.getPkAwards()); saOrderExt.setPkMember(newMember.getPkId()); + saOrderExt.setRegionProvince(registerParam.getRegionProvince()); + saOrderExt.setRegionCity(registerParam.getRegionCity()); + saOrderExt.setRegionCounty(registerParam.getRegionCounty()); resultStr = this.payRegOrder(saOrderExt, newMember, null); } else { @@ -599,8 +602,19 @@ public class RetailOrderServiceImpl implements IRetailOrderService { return "会员信息不存在"; } if (EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { + // 获取缓存参数 + RetailOrderUpgradeParam upgradeParam = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_UPG_PARAM + pkMember + orderCode); + if (null == upgradeParam) { + return "在线支付升级会员不存在"; + } + // 升级订单 cuMember.setPkSettleGrade(saOrderExt.getPkGrade()); + + saOrderExt.setRegionProvince(upgradeParam.getRegionProvince()); + saOrderExt.setRegionCity(upgradeParam.getRegionCity()); + saOrderExt.setRegionCounty(upgradeParam.getRegionCounty()); + resultStr = this.payUpgOrder(saOrderExt, cuMember, null); } else { // 其它订单 @@ -640,7 +654,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { Map waresLimitMap = new HashMap<>(); // 盒数商品 - List boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType()); + List boxWaresList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType()); for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { saOrderItems.setPkOrder(saOrderExt.getPkId()); @@ -649,7 +663,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { saOrderItems.setCreationTime(saOrderExt.getCreationTime()); // 指定商品拆分 并且 非赠品 - if (boxProductList.contains(saOrderItems.getWareCode()) + if (boxWaresList.contains(saOrderItems.getWareCode()) && EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { // key: 商品ID-商品价格(产品价格*产品数量) String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity()))); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java index a5587c9a..c6d21f80 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java @@ -166,4 +166,17 @@ public class RetailOrderParam implements Serializable { */ private Integer isPay; + /** + * 选择区域省 + */ + private Integer regionProvince; + /** + * 选择区域市 + */ + private Integer regionCity; + /** + * 选择区域县 + */ + private Integer regionCounty; + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java index 401f32db..3c563929 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java @@ -671,12 +671,6 @@ public class SaOrderBusinessController extends BaseController { return AjaxResult.error(checkStr); } - // 校验盒数商品与非盒数商品不能互换 - checkStr = iOrderBusinessService.checkOrderRetailProduct(param); - if (null != checkStr) { - return AjaxResult.error(checkStr); - } - // 确认调换货物并发起审批 String str = iOrderBusinessService.changeProductApprovalSubmit(param, userTokenService.getLoginUser()); if (null == str) { @@ -722,12 +716,6 @@ public class SaOrderBusinessController extends BaseController { return AjaxResult.error(checkStr); } - // 校验盒数商品与非盒数商品不能互换 - checkStr = iOrderBusinessService.checkOrderRetailProduct(param); - if (null != checkStr) { - return AjaxResult.error(checkStr); - } - // 调换货物不走签呈 String str = iOrderBusinessService.changeProductApprovalFreeSign(param, userTokenService.getLoginUser()); if (null == str) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java index 271b084e..9450ee98 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java @@ -1,6 +1,7 @@ package com.hzs.sale.order.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.SaDeliverItemsExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderItemsExt; @@ -277,4 +278,14 @@ public interface SaOrderMapper extends BaseMapper { */ Date getFirstPayTime(@Param("pkMember") Long pkMember); + /** + * 查询省、市、区绑定次数 + * + * @param province + * @param city + * @param county + * @return + */ + CuMemberRetailRegionExt getRegionBindNum(@Param("province") Integer province, @Param("city") Integer city, @Param("county") Integer county); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java index 256ec76a..32e3562f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java @@ -42,14 +42,6 @@ public interface IOrderBusinessService { */ String checkOrderDeliver(List orderCodeList, Integer pkCountry); - /** - * 校验新零售盒数产品是否可以换货 - * - * @param param 请求入参 - * @return - */ - String checkOrderRetailProduct(OrderProductParam param); - /** * 本次业务修改费用 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index 78ef2ccf..c1b7e54d 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -5,6 +5,7 @@ import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.*; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrderItems; @@ -628,4 +629,15 @@ public interface ISaOrderService extends IService { */ int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxProductList, Integer systemType); + /** + * 查询省、市、区绑定次数 + * + * @param province + * @param city + * @param county + * @return + */ + CuMemberRetailRegionExt getRegionBindNum(Integer province, Integer city, Integer county); + + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java index b0a8f124..041cda78 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java @@ -151,34 +151,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return null; } - @Override - public String checkOrderRetailProduct(OrderProductParam param) { - // 盒数商品对应的产品列表 - List pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxProductListBySystemType(null)); - // 换货产品列表 - List paramProductList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList()); - - SaOrder saOrder = iSaOrderService.getOne(Wrappers.lambdaQuery() - .eq(SaOrder::getOrderCode, param.getOrderCode()) - ); - if (saOrder.getBoxNum() > 0) { - // 盒数商品订单,换货的产品是否都是盒数商品下的,如果是则可以进行更换,如果不是则不能更换 - for (Integer pkProduct : paramProductList) { - if (!pkProductList.contains(pkProduct)) { - return "盒数商品与普通商品不能互相换货"; - } - } - } else { - // 非盒数商品订单 - for (Integer pkProduct : paramProductList) { - if (pkProductList.contains(pkProduct)) { - return "普通商品与盒数商品不能互相换货"; - } - } - } - return null; - } - @Override public Map queryChargeLog(List saOrderList, EApprovalBusiness eApprovalBusiness, Integer pkCountry) { // key 订单编号, value 扣款实体 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 38622be0..4200bd96 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -26,6 +26,7 @@ import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.*; import com.hzs.common.domain.sale.order.*; import com.hzs.common.domain.sale.wares.BdWares; @@ -2155,13 +2156,13 @@ public class SaOrderServiceImpl extends ServiceImpl impl } // 盒数产品 - List boxProductList = BoxProductUtil.getBoxProductListBySystemType(systemType); + List boxWaresList = BoxProductUtil.getBoxProductListBySystemType(systemType); // 当前产品盒数 int boxNum = 0; // 判断订单明细中指定产品数量,校验等级 for (OrderItemsParam orderItemsParam : orderItemsParams) { - if (boxProductList.contains(orderItemsParam.getWaresCode())) { + if (boxWaresList.contains(orderItemsParam.getWaresCode())) { // 存在指定商品,需要累计盒数 boxNum += orderItemsParam.getQuantity(); } @@ -2187,7 +2188,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl } // 获取升级盒数基数 - int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxProductList, systemType); + int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxWaresList, systemType); // 计算等级 bdGrade = this.getGradeByBox(boxNum + baseBoxNum, gradeList, memberGrade, true); @@ -2246,13 +2247,13 @@ public class SaOrderServiceImpl extends ServiceImpl impl * @param cuMember 会员信息 * @param memberGrade 会员等级信息 * @param gradeList 等级列表 - * @param boxProductList 盒数商品列表 + * @param boxWaresList 盒数商品列表 * @param systemType 所属系统 * @return */ @Override public int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, - List gradeList, List boxProductList, + List gradeList, List boxWaresList, Integer systemType) { // 升级盒数基数 int baseBoxNum = 0; @@ -2266,25 +2267,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); // 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数 baseBoxNum = lastUpdateGrade.getBoxNumber() - + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); + + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); } else { // 没有手动升级记录 - baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); + baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); } } return baseBoxNum; } - /** - * 获取等级(没有则返回V0) - * - * @param eGrade 等级枚举 - * @param gradeList 等级列表 - * @return - */ - private BdGrade getGrade(EGrade eGrade, List gradeList) { - Optional gradeOptional = gradeList.stream().filter(tmp -> tmp.getGradeValue().equals(eGrade.getValue())).findFirst(); - return gradeOptional.orElseGet(() -> this.getGrade(EGrade.START_UP, gradeList)); + @Override + public CuMemberRetailRegionExt getRegionBindNum(Integer province, Integer city, Integer county) { + return baseMapper.getRegionBindNum(province, city, county); } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java index 99dab3ee..8049c86a 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java @@ -1,17 +1,8 @@ package com.hzs.sale.wares.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.sale.wares.BdWaresAuthority; -/** - *

- * Mapper 接口 - *

- * - * @author hzs - * @since 2022-09-09 - */ public interface BdWaresAuthorityMapper extends BaseMapper { } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java index 6505f175..2010f281 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java @@ -1,17 +1,8 @@ package com.hzs.sale.wares.service; - import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.sale.wares.BdWaresAuthority; -/** - *

- * 服务类 - *

- * - * @author hzs - * @since 2022-09-09 - */ public interface IBdWaresAuthorityService extends IService { } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java index aebe0a18..fbd9f3da 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java @@ -190,14 +190,6 @@ public interface IBdWaresService extends IService { */ List listRetailWaresByCondition(RetailWaresParam param); - /** - * 查询盒数商品对应产品列表 - * - * @param boxWaresList 盒数商品列表 - * @return - */ - List listBoxProduct(List boxWaresList); - /** * 查询盒数商品列表 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java index b5d3e177..87252b22 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java @@ -1,20 +1,11 @@ package com.hzs.sale.wares.service.impl; - import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.domain.sale.wares.BdWaresAuthority; import com.hzs.sale.wares.mapper.BdWaresAuthorityMapper; import com.hzs.sale.wares.service.IBdWaresAuthorityService; import org.springframework.stereotype.Service; -/** - *

- * 服务实现类 - *

- * - * @author hzs - * @since 2022-09-09 - */ @Service public class BdWaresAuthorityServiceImpl extends ServiceImpl implements IBdWaresAuthorityService { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java index 060a3019..3189c5fa 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java @@ -1173,11 +1173,6 @@ public class BdWaresServiceImpl extends ServiceImpl impl return baseMapper.listRetailWaresByCondition(param); } - @Override - public List listBoxProduct(List boxWaresList) { - return baseMapper.listBoxProduct(boxWaresList, null, null).stream().map(BdWaresDetail::getPkProduct).collect(Collectors.toList()); - } - @Override public List listBoxProductAndWares(List boxWaresList, Integer pkProduct, Integer specialArea) { return baseMapper.listBoxProduct(boxWaresList, pkProduct, specialArea); diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml index 83f66172..f5ebffce 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml @@ -1392,4 +1392,26 @@ and so.box_num != 0 + + + diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml index a2739eb1..522ee914 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml @@ -2,30 +2,5 @@ - - - - - - - - - - - - - - - - - - PK_CREATOR, - CREATION_TIME, - PK_MODIFIED, - MODIFIED_TIME, - DEL_FLAG, - PK_COUNTRY, - PK_ID, PK_WARES, AUTHORITY_TYPE, PK_MEMBER,MEMBER_CODE - diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java index d6471e44..a895aa2c 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java @@ -8,11 +8,7 @@ import lombok.EqualsAndHashCode; import java.util.Date; /** - * @Description: 新零售会员区域配置扩展类 - * @Author: jiang chao - * @Time: 2024/12/10 14:58 - * @Classname: CuMemberRetailRegionExt - * @PackageName: com.hzs.common.domain.retail.member.ext + * 新零售会员区域配置扩展类 */ @EqualsAndHashCode(callSuper = true) @Data @@ -102,4 +98,14 @@ public class CuMemberRetailRegionExt extends CuMemberRetailRegion { * 2025年6月11日 是否激活 (0-是, 1-否) */ private Integer isActivate; + + /** + * 已绑定地区数量 + */ + private Integer regionNum; + /** + * 地区可绑定数量 + */ + private Integer bindNum; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java index b3d1d024..d15fa03b 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java @@ -176,4 +176,17 @@ public class SaOrderExt extends SaOrder { private List deleteLevelList; + /** + * 选择区域省 + */ + private Integer regionProvince; + /** + * 选择区域市 + */ + private Integer regionCity; + /** + * 选择区域县 + */ + private Integer regionCounty; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java index 597c98f9..5e468997 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java @@ -9,14 +9,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -/** - *

- * - *

- * - * @author hzs - * @since 2022-09-09 - */ @Data @EqualsAndHashCode(callSuper = true) @Accessors(chain = true) From c1cbe71ba617573859cc82cab85d3df2604fc534 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 11 Jul 2025 18:01:55 +0800 Subject: [PATCH 18/89] =?UTF-8?q?##=20=E5=90=8E=E5=8F=B0=E5=A5=96=E9=87=91?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/mapper/CuMemberBonusMapper.java | 12 -- .../bonus/service/ICuMemberBonusService.java | 17 --- .../impl/CuMemberBonusServiceImpl.java | 70 ++---------- .../com/hzs/bonus/bonus/vo/BonusTotalVO.java | 64 +++-------- .../hzs/bonus/bonus/vo/CuMemberBonusVO.java | 24 ++-- .../bonus/bonus/CuMemberBonusMapper.xml | 108 +----------------- .../hzs/common/core/enums/EOrderPrefix.java | 2 +- .../domain/member/ext/CuMemberBonusExt.java | 7 -- 8 files changed, 41 insertions(+), 263 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java index 45cdb0f8..eb1b53c5 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java @@ -60,13 +60,6 @@ public interface CuMemberBonusMapper extends BaseMapper { */ void batchInsertCuMemberBonus(@Param("cuMemberBonusList") List cuMemberBonusList); - /** - * 批量插入会员奖金主表 - * - * @param cuMemberBonusList 会员奖金 - */ - void insertOrUpdateCuMemberBonus(@Param("cuMemberBonusList") List cuMemberBonusList); - /** * 更新奖金状态 * @@ -77,9 +70,4 @@ public interface CuMemberBonusMapper extends BaseMapper { @Param("oldGrantStatus") Integer oldGrantStatus, @Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod); - /** - * 回退极差奖金 - */ - void mergeBackRangeBonusIncome(@Param("pkOrder") Long pkOrder, @Param("bonusValue") Integer bonusValue); - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java index f686a25d..1bb5a4d2 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java @@ -90,18 +90,6 @@ public interface ICuMemberBonusService extends IService { */ void batchInsertCuMemberBonus(List cuMemberBonusList); - /** - * 批量插入会员奖金主表 - * - * @param cuMemberBonusList 会员奖金 - */ - void insertOrUpdateCuMemberBonus(List cuMemberBonusList); - - /** - * 查询会员奖金 - */ - List queryCuMemberBonus(int period, List cuMemberBonusList); - /** * 更新奖金状态 * @@ -135,11 +123,6 @@ public interface ICuMemberBonusService extends IService { */ Set queryMemberBonusByPeriod(Integer period); - /** - * 新零售撤单,回退奖金 - */ - void mergeBackMemberBonusIncome(Long pkOrder); - void calculateBonusTotal(CuMemberBonusExt cuMemberBonusExt, CuMemberBonusExt memberBonusExt); CuMemberBonusExt initCuMemberBonus(); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index 5d159ced..fb70ef85 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageInfo; -import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService; import com.hzs.bonus.achieve.service.ICuMemberTreeService; import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle; import com.hzs.bonus.bonus.mapper.*; @@ -33,8 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -52,49 +49,22 @@ public class CuMemberBonusServiceImpl extends ServiceImpl batchQueryCuMemberBonusSeq(Integer rowNum) { return baseMapper.batchQueryCuMemberBonusSeq(rowNum); } - @Override public List queryMemberBonusVoByCondition(BonusParam bonusParam) { return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam), bonusParam); @@ -228,6 +198,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusList) { - baseMapper.insertOrUpdateCuMemberBonus(cuMemberBonusList); - } - - @Override - public List queryCuMemberBonus(int period, List cuMemberBonusList) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - List memberList = cuMemberBonusList.stream().map(CuMemberBonus::getPkMember).collect(Collectors.toList()); - queryWrapper.eq(MemberFieldConstants.PERIOD, period); - queryWrapper.in(MemberFieldConstants.PK_MEMBER, memberList); - return baseMapper.selectList(queryWrapper); - } - @Override public Boolean updateCuMemberBonusStatus(Integer pkCountry, Integer grantStatus, Integer oldGrantStatus, Integer startPeriod, Integer endPeriod) { return baseMapper.updateCuMemberBonusStatus(pkCountry, grantStatus, oldGrantStatus, startPeriod, endPeriod) > 0 ? Boolean.TRUE : Boolean.FALSE; @@ -488,16 +446,16 @@ public class CuMemberBonusServiceImpl extends ServiceImpl
- - merge into cu_member_bonus a - using( - select b.* from bd_bonus_items bt - inner join( - select pk_bonus,pk_bonus_items, sum(pretax_income) pretax_income, - sum(income_tax) income_tax, sum(real_income) real_income from - - cu_member_bonus_detail - cu_member_bonus_range - - where del_flag=0 and pk_order= #{pkOrder} - group by pk_bonus, pk_bonus_items) b - on bt.pk_id = b.pk_bonus_items - where bt.bonus_value = #{bonusValue}) b - on (a.pk_id = b.pk_bonus) - when matched then - update set a.retail_real_subtotal=a.retail_real_subtotal-b.real_income, - a.back_points=a.back_points-b.income_tax, - a.real_income_total=a.real_income_total-b.real_income - - ,a.retail_range_income = a.retail_range_income - b.pretax_income - - - ,a.retail_same_level_income = a.retail_same_level_income - b.pretax_income - - - ,a.retail_area_income = a.retail_area_income - b.pretax_income - - - delete from cu_member_bonus @@ -168,76 +137,6 @@ b.retail_area_income,b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income, b.retail_real_subtotal) - - merge into cu_member_bonus a - using( - select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, - expand_capping,coach_income,share_income,service_income,back_points,service_spend, - pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal, - cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal, - repur_coupon,repur_coupon_subtotal,global_points, - car_award_points,hi_fun_income,hai_fun_income,retail_range_income,retail_same_level_income,retail_area_income, - retail_benefit_range_income,retail_benefit_avg_income, - retail_benefit_income,retail_real_subtotal, - maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total, - pk_country,pk_creator,grant_status,income_status from( - - select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate} pk_rate, - #{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping, - #{item.expandCapping} expand_capping,#{item.coachIncome} coach_income,#{item.shareIncome} share_income, - #{item.serviceIncome} service_income,#{item.backPoints} back_points,#{item.serviceSpend} service_spend, - #{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income, - #{item.repurRangeIncome} repur_range_income,#{item.repurExpandIncome} repur_expand_income, - #{item.repurRealSubtotal} repur_real_subtotal,#{item.cloudDirectIncome} cloud_direct_income, - #{item.cloudPurIncome} cloud_pur_income,#{item.cloudRepurIncome} cloud_repur_income, - #{item.cloudRealSubtotal} cloud_real_subtotal,#{item.repurCoupon} repur_coupon, - #{item.repurCouponSubtotal} repur_coupon_subtotal,#{item.globalPoints} global_points, - #{item.carAwardPoints} car_award_points,#{item.hiFunIncome} hi_fun_income, - #{item.haiFunIncome} hai_fun_income,#{item.makerDirectIncome} maker_direct_income, - #{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal} maker_real_subtotal, - #{item.realIncomeTotal} real_income_total,#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator, - #{item.grantStatus} grant_status,#{item.incomeStatus} income_status, - #{item.retailRangeIncome} retail_range_income,#{item.retailSameLevelIncome} retail_same_level_income, - #{item.retailAreaIncome} retail_area_income,#{item.retailBenefitRangeIncome} retail_benefit_range_income, - #{item.retailBenefitAvgIncome} retail_benefit_avg_income,#{item.retailBenefitIncome} retail_benefit_income, - #{item.retailRealSubtotal} retail_real_subtotal from dual - ) - ) b - on (a.pk_member = b.pk_member and a.period = b.period) - when matched then - update set - a.direct_income = a.direct_income + b.direct_income,a.expand_income=a.expand_income+b.expand_income, - a.expand_no_capping=a.expand_no_capping+b.expand_no_capping,a.expand_capping=a.expand_capping+b.expand_capping, - a.coach_income=a.coach_income+b.coach_income,a.share_income=a.share_income+b.share_income, - a.service_income=a.service_income+b.service_income,a.back_points=a.back_points+b.back_points,a.service_spend=a.service_spend+b.service_spend, - a.pur_real_subtotal=a.pur_real_subtotal+b.pur_real_subtotal,a.repur_push_income=a.repur_push_income+b.repur_push_income, - a.repur_range_income=a.repur_range_income+b.repur_range_income,a.repur_expand_income=a.repur_expand_income+b.repur_expand_income, - a.repur_real_subtotal=a.repur_real_subtotal+b.repur_real_subtotal,a.cloud_direct_income=a.cloud_direct_income+b.cloud_direct_income, - a.cloud_pur_income=a.cloud_pur_income+b.cloud_pur_income,a.cloud_repur_income=a.cloud_repur_income+b.cloud_repur_income, - a.cloud_real_subtotal=a.cloud_real_subtotal+b.cloud_real_subtotal,a.repur_coupon=a.repur_coupon+b.repur_coupon, - a.global_points=a.global_points+b.global_points,a.car_award_points=a.car_award_points+b.car_award_points, - a.hi_fun_income=a.hi_fun_income+b.hi_fun_income,a.real_income_total=a.real_income_total+b.real_income_total, - a.retail_range_income=a.retail_range_income+b.retail_range_income,a.retail_same_level_income=a.retail_same_level_income+b.retail_same_level_income, - a.retail_area_income=a.retail_area_income+b.retail_area_income,a.retail_benefit_range_income=a.retail_benefit_range_income+b.retail_benefit_range_income, - a.retail_benefit_avg_income=a.retail_benefit_avg_income+b.retail_benefit_avg_income,a.retail_benefit_income=a.retail_benefit_income+b.retail_benefit_income, - a.retail_real_subtotal=a.retail_real_subtotal+b.retail_real_subtotal - when not matched then - insert (pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, - expand_capping,coach_income,share_income,service_income,back_points,service_spend, - pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal, - cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal, - repur_coupon,global_points,car_award_points,hi_fun_income,real_income_total, - pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income, - retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income,retail_real_subtotal) - values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping, - b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend, - b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal, - b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal, - b.repur_coupon,b.global_points,b.car_award_points,b.hi_fun_income,b.real_income_total, - b.pk_country,b.pk_creator,b.grant_status,b.income_status,b.retail_range_income,b.retail_same_level_income, - b.retail_area_income,b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income, - b.retail_real_subtotal) - - select bl.pk_id,bonus_type,first_order,second_order,third_order,fourth_order,bl.pk_country, - cal_type,bd.pk_grade from bd_bonus_direct_loop bl - inner join BD_LOOP_DETAILS bd - on bl.pk_id = bd.pk_bonus_direct - where bl.del_flag=0 and bd.del_flag=0 + select bl.pk_id, + bonus_type, + first_order, + second_order, + third_order, + fourth_order, + bl.pk_country, + cal_type, + bd.pk_grade + from bd_bonus_direct_loop bl + inner join BD_LOOP_DETAILS bd + on bl.pk_id = bd.pk_bonus_direct + where bl.del_flag = 0 + and bd.del_flag = 0 - diff --git a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusExpandMapper.xml b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusExpandMapper.xml index 0b2016ae..54c69ddb 100644 --- a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusExpandMapper.xml +++ b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusExpandMapper.xml @@ -2,28 +2,5 @@ - - - - - - - - - - - - - - - - DEL_FLAG, - PK_COUNTRY, - CREATION_TIME, - MODIFIED_TIME, - PK_CREATOR, - PK_MODIFIED, - PK_ID, EXPAND_NUMBER, EXPAND_RATIO - diff --git a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusHiPinkMapper.xml b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusHiPinkMapper.xml index ce73c5f6..67c655d0 100644 --- a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusHiPinkMapper.xml +++ b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdBonusHiPinkMapper.xml @@ -2,29 +2,4 @@ - - - - - - - - - - - - - - - - - DEL_FLAG, - PK_COUNTRY, - CREATION_TIME, - MODIFIED_TIME, - PK_CREATOR, - PK_MODIFIED, - PK_ID, RANGE_TYPE, PK_LEVEL, BONUS_VALUE - - diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusCloud.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusCloud.java index 690ab987..b5c84320 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusCloud.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusCloud.java @@ -14,13 +14,7 @@ import lombok.experimental.Accessors; import java.math.BigDecimal; /** - *

- * 云代配置 - - *

- * - * @author zhangjing - * @since 2022-11-01 + * 云代配置 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java index 2902e6ed..928387bf 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java @@ -12,12 +12,7 @@ import lombok.experimental.Accessors; import java.math.BigDecimal; /** - *

* 直推循环配置 - *

- * - * @author zhangjing - * @since 2022-11-03 */ @Data @EqualsAndHashCode(callSuper = true) @@ -77,5 +72,4 @@ public class BdBonusDirectLoop extends BaseEntity { private Integer takeValueType; - } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusHiPink.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusHiPink.java index 2fe0418e..14bcce27 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusHiPink.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusHiPink.java @@ -12,12 +12,7 @@ import lombok.experimental.Accessors; import java.math.BigDecimal; /** - *

* 嗨粉直推奖励配置 - *

- * - * @author zhangjing - * @since 2022-11-03 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java index b0230d3b..bb00bcc1 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java @@ -17,9 +17,6 @@ import java.math.BigDecimal; /** * 等级配置表 - * - * @author zhangjing - * @since 2022-09-08 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java index fa9f80f6..bf5d3345 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java @@ -2,16 +2,14 @@ package com.hzs.common.domain.system.config.ext; import com.hzs.common.domain.system.config.*; import lombok.Data; +import lombok.EqualsAndHashCode; + import java.util.List; /** - *

* 直推循环配置 - *

- * - * @author zhangjing - * @since 2022-11-03 */ +@EqualsAndHashCode(callSuper = true) @Data public class BdBonusDirectLoopExt extends BdBonusDirectLoop { From 8ba98c511865ea59e1031660bbf29557233b031d Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 09:38:03 +0800 Subject: [PATCH 21/89] =?UTF-8?q?##=20=E7=A9=BA=E5=8D=95=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=AD=89=E7=BA=A7=E5=A4=84=E7=90=86=EF=BC=88?= =?UTF-8?q?257=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/system/config/controller/manage/BdMenuController.java | 2 +- .../java/com/hzs/system/enums/controller/EnumsController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdMenuController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdMenuController.java index c82270c8..f0396896 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdMenuController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdMenuController.java @@ -68,7 +68,7 @@ public class BdMenuController extends BaseController { if (CollectionUtil.isNotEmpty(list)) { // 等级列表 - List gradeTmpList = iBdGradeService.queryGradeConfigByCondition(pkCountry); + List gradeTmpList = iBdGradeService.selectGradeAll(pkCountry); Map gradeMap = new HashMap<>(gradeTmpList.size()); for (BdGrade bdGrade : gradeTmpList) { gradeMap.put(bdGrade.getPkId(), bdGrade); diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java index ee0f7181..dc1fa8e2 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java @@ -1704,7 +1704,7 @@ public class EnumsController extends BaseController { pkCountry = SecurityUtils.getPkCountry(); } // 查询国家等级列表 - List gradeList = iBdGradeService.queryGradeConfigByCondition(pkCountry); + List gradeList = iBdGradeService.selectGradeAll(pkCountry); gradeList.sort(Comparator.comparing(BdGrade::getGradeValue)); List enumEntityList = new ArrayList<>(); From e1943603deab32fed095854b4207b5402ce40c1a Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 09:49:22 +0800 Subject: [PATCH 22/89] =?UTF-8?q?##=20=E4=BC=9A=E5=91=98=E7=AB=AF=E5=A5=96?= =?UTF-8?q?=E9=87=91=E6=98=BE=E7=A4=BA=E5=AD=97=E6=AE=B5=E8=B0=83=E6=95=B4?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/controller/api/ApiCuMemberBonusController.java | 2 +- .../java/com/hzs/bonus/bonus/vo/PubMemberBonusVO.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java index da0c4f92..2ade8ae3 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java @@ -109,7 +109,7 @@ public class ApiCuMemberBonusController extends BaseController { pubMemberBonusVO.setSettleDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getSettleDate()) + "-" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getEndSettleDate())); } - pubMemberBonusVO.setServiceSpend(BigDecimal.ZERO); +// pubMemberBonusVO.setServiceSpend(BigDecimal.ZERO); } private void setBonusParam(@RequestBody BonusParam bonusParam) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/PubMemberBonusVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/PubMemberBonusVO.java index f6b77787..85afb586 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/PubMemberBonusVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/PubMemberBonusVO.java @@ -16,9 +16,9 @@ public class PubMemberBonusVO implements Serializable { */ private String settleDate; - /** - * 平台服务费 - */ - private BigDecimal serviceSpend; +// /** +// * 平台服务费 +// */ +// private BigDecimal serviceSpend; } From 3ebcfca6f78d5e5898d32bc8f873f97fd60b4b9d Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 10:41:37 +0800 Subject: [PATCH 23/89] =?UTF-8?q?##=20=E5=8E=BB=E6=8E=89=E5=A4=8D=E8=B4=AD?= =?UTF-8?q?=E4=B8=93=E5=8C=BA=E9=99=90=E8=B4=AD=E5=92=8C=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=92=A4=E5=8D=95=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RetailOrderServiceImpl.java | 2 +- .../manager/SaOrderBusinessController.java | 90 +++++++-------- .../impl/OrderBusinessServiceImpl.java | 63 +++++------ .../service/impl/SaOrderServiceImpl.java | 104 +++++++++--------- .../common/core/enums/ECancelOrderType.java | 8 +- 5 files changed, 134 insertions(+), 133 deletions(-) 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 09ab93bf..e8edc52a 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 @@ -245,7 +245,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { int boxNum = 0; // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件 - this.checkWaresLimit(cuMember, orderParam.getSpecialArea(), waresDetailExtList, boxWaresList, gradeList); +// this.checkWaresLimit(cuMember, orderParam.getSpecialArea(), waresDetailExtList, boxWaresList, gradeList); // 遍历生成订单明细数据 for (BdWaresDetailExt waresDetailExt : waresDetailExtList) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java index 3c563929..c52233ba 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java @@ -911,9 +911,9 @@ public class SaOrderBusinessController extends BaseController { SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt(); saOrderExtList.add(saOrderExt); EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL; - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; +// } Map queryChargeMap = iOrderBusinessService.queryChargeLog(saOrderExtList, approveBusiness, SecurityUtils.getPkCountry()); OrderQueryChargeDTO dto = queryChargeMap.get(saOrderExt.getPkId()); // 撤销订单,撤销产品,撤销除升级订单 @@ -932,20 +932,20 @@ public class SaOrderBusinessController extends BaseController { .orderCode(saOrderExt.getOrderCode()) .build(); List orderCancelDetailVOList = new ArrayList<>(); - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - saOrderExt.getOrderItemsList().forEach(saOrderItems -> { - String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); - OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder() - .pkId(saOrderItems.getPkId()) - .productName(productName) - .orderAmount(saOrderItems.getPrice()) - .number(saOrderItems.getQuantity()) - .achievement(saOrderItems.getAchievement()) - .assAchievement(saOrderItems.getAssAchievement()) - .build(); - orderCancelDetailVOList.add(orderCancelDetailVO); - }); - } else { +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// saOrderExt.getOrderItemsList().forEach(saOrderItems -> { +// String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); +// OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder() +// .pkId(saOrderItems.getPkId()) +// .productName(productName) +// .orderAmount(saOrderItems.getPrice()) +// .number(saOrderItems.getQuantity()) +// .achievement(saOrderItems.getAchievement()) +// .assAchievement(saOrderItems.getAssAchievement()) +// .build(); +// orderCancelDetailVOList.add(orderCancelDetailVO); +// }); +// } else { saOrderExt.getOrderItemsExtList().forEach(saOrderItems -> { OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder() .pkId(saOrderItems.getPkId()) @@ -957,7 +957,7 @@ public class SaOrderBusinessController extends BaseController { .build(); orderCancelDetailVOList.add(orderCancelDetailVO); }); - } +// } orderCancelVO.setOrderCancelDetailVOList(orderCancelDetailVOList); orderCancelVO.setMemberCode(saOrderExt.getMemberCode()); orderCancelVO.setMemberName(saOrderExt.getMemberName()); @@ -978,11 +978,11 @@ public class SaOrderBusinessController extends BaseController { @Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT) public AjaxResult cancelOrder(@RequestBody OrderCancelParam orderCancelParam) { orderCancelParam.setPkCountry(SecurityUtils.getPkCountry()); - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) { - return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY)); - } - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) { +// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY)); +// } +// } ValidateCancelOrderVO validateCancelOrderVO = iOrderBusinessService.validateCancelOrder(orderCancelParam); AjaxResult validateCancelOrder = validateCancelOrderVO(orderCancelParam, validateCancelOrderVO); if (validateCancelOrder != null) { @@ -1001,11 +1001,11 @@ public class SaOrderBusinessController extends BaseController { @Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT) public AjaxResult freeCostCancelOrder(@RequestBody OrderCancelParam orderCancelParam) { orderCancelParam.setPkCountry(SecurityUtils.getPkCountry()); - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) { - return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY)); - } - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) { +// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY)); +// } +// } if (orderCancelParam.getCancelRoad() == null || (orderCancelParam.getCancelRoad() != 1 && orderCancelParam.getCancelRoad() != 3)) { return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY)); } @@ -1014,7 +1014,7 @@ public class SaOrderBusinessController extends BaseController { if (validateCancelOrder != null) { return validateCancelOrder; } - // 2023.11.22 不走签呈也需要添加中间操作表,用于区分部分撤单和调换货物 + // 不走签呈也需要添加中间操作表,用于区分部分撤单和调换货物 iOrderBusinessService.revokeSaOrderByOrderCode(SecurityUtils.getUserId(), orderCancelParam, validateCancelOrderVO); return AjaxResult.success(); } @@ -1023,22 +1023,22 @@ public class SaOrderBusinessController extends BaseController { if (validateCancelOrderVO.getSaOrderExt() == null) { return AjaxResult.error(validateCancelOrderVO.getMsg()); } - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt(); - if (saOrderExt.getOrderItemsList() == null) { - return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY)); - } - Map productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size())); - saOrderExt.getOrderItemsList().forEach(saOrderItems -> { - String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); - productMap.put(saOrderItems.getPkId(), productName); - }); - orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> { - if (productMap.containsKey(orderCancelDetailParam.getPkId())) { - orderCancelDetailParam.setProductName(productMap.get(orderCancelDetailParam.getPkId())); - } - }); - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt(); +// if (saOrderExt.getOrderItemsList() == null) { +// return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY)); +// } +// Map productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size())); +// saOrderExt.getOrderItemsList().forEach(saOrderItems -> { +// String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); +// productMap.put(saOrderItems.getPkId(), productName); +// }); +// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> { +// if (productMap.containsKey(orderCancelDetailParam.getPkId())) { +// orderCancelDetailParam.setProductName(productMap.get(orderCancelDetailParam.getPkId())); +// } +// }); +// } return null; } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java index 041cda78..c0d2fdd6 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java @@ -1250,30 +1250,31 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { } int approveBusiness = EApprovalBusiness.ORDER_CANCEL.getValue(); SaOrderExt saOrderExt; - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT.getValue(); - SaOrder orderQuery = SaOrder.builder().orderStatus(EOrderStatus.PAY.getValue()).orderCode(orderCancelParam.getOrderCode()).build(); - orderQuery.setPkCountry(orderCancelParam.getPkCountry()); -// List itemIdList = new ArrayList<>(); -// if (orderCancelParam.getOrderCancelDetailParamList() != null && orderCancelParam.getOrderCancelDetailParamList().size() > 0) { -// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> -// itemIdList.add(orderCancelDetailParam.getPkId())); -// } - saOrderExt = iSaOrderService.querySaleOrderExtByOrderCode(orderQuery, new ArrayList<>()); - CuMember cuMember = iSaOrderService.getCuMemberByKey(saOrderExt.getPkMember()); - saOrderExt.setMemberCode(cuMember.getMemberCode()); - saOrderExt.setMemberName(cuMember.getMemberName()); - } else { - saOrderExt = iSaOrderService.queryOrderByCode(orderCancelParam.getOrderCode(), orderCancelParam.getPkCountry()); - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT.getValue(); +// SaOrder orderQuery = SaOrder.builder().orderStatus(EOrderStatus.PAY.getValue()).orderCode(orderCancelParam.getOrderCode()).build(); +// orderQuery.setPkCountry(orderCancelParam.getPkCountry()); +//// List itemIdList = new ArrayList<>(); +//// if (orderCancelParam.getOrderCancelDetailParamList() != null && orderCancelParam.getOrderCancelDetailParamList().size() > 0) { +//// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> +//// itemIdList.add(orderCancelDetailParam.getPkId())); +//// } +// saOrderExt = iSaOrderService.querySaleOrderExtByOrderCode(orderQuery, new ArrayList<>()); +// CuMember cuMember = iSaOrderService.getCuMemberByKey(saOrderExt.getPkMember()); +// saOrderExt.setMemberCode(cuMember.getMemberCode()); +// saOrderExt.setMemberName(cuMember.getMemberName()); +// } else { + saOrderExt = iSaOrderService.queryOrderByCode(orderCancelParam.getOrderCode(), orderCancelParam.getPkCountry()); +// } if (saOrderExt == null || EOrderStatus.WAIT_PAY.getValue() == saOrderExt.getOrderStatus()) { validateCancelOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY)); return validateCancelOrderVO; } - if (orderCancelParam.getCancelType().equals(ECancelOrderType.SINGLE_CANCEL_ORDER.getValue()) || - orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue()) || - orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_ORDER.getValue()) || - orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())) { + if (orderCancelParam.getCancelType().equals(ECancelOrderType.SINGLE_CANCEL_ORDER.getValue()) + || orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue()) + || orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_ORDER.getValue()) +// || orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue()) + ) { // 验证订单时间,只能撤销7天以内的支付订单 // 周结只能撤销当前期间的订单,不能撤销上个期间的订单 String settleCycle = systemConfigServiceApi.getBonusSystemConfig(orderCancelParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData(); @@ -1460,14 +1461,14 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { String businessCode = CommonUtil.createSerialNumber(EOrderPrefix.DEFAULT); // 修改类型 EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL; - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; +// } // 封装修改地址业务日志 List dtoList = new ArrayList<>(); - // 2023.11.22 不走签呈也需要添加中间操作表,用于区分部分撤单和调换货物 + // 不走签呈也需要添加中间操作表,用于区分部分撤单和调换货物 // 撤单日志列表 List saOrderChargeLogList = new ArrayList<>(); Map saOrderMap = validateCancelOrderVO.getSaOrderMap(); @@ -1549,13 +1550,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { orderCancelParam.setMemberCode(cuMember.getMemberCode()); orderCancelParam.setMemberName(cuMember.getMemberName()); EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL; - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; -// List orderCancelDetailParamList = new ArrayList<>(); -// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> -// orderCancelDetailParamList.add(BeanUtil.copyProperties(orderCancelDetailParam, OrderCancelDetailParam.class))); -// orderCancelParam.setOrderCancelDetailParamList(orderCancelDetailParamList); - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; +//// List orderCancelDetailParamList = new ArrayList<>(); +//// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> +//// orderCancelDetailParamList.add(BeanUtil.copyProperties(orderCancelDetailParam, OrderCancelDetailParam.class))); +//// orderCancelParam.setOrderCancelDetailParamList(orderCancelDetailParamList); +// } // 本次业务修改费用 Map queryChargeMap = null; if (orderCancelParam.getCancelRoad() == null || orderCancelParam.getCancelRoad() != 2) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 4200bd96..a9b2d2af 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -1258,9 +1258,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl BusinessCommissionDTO businessCommissionDTO = null; if (orderCancelParam.getCancelRoad() == 1) { EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL; - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; - } +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; +// } Map queryChargeMap = orderBusinessService.queryChargeLog(Collections.singletonList(validateCancelOrderVO.getSaOrderExt()), approveBusiness, orderCancelParam.getPkCountry()); if (queryChargeMap != null && queryChargeMap.containsKey(saOrderExt.getPkId())) { @@ -1289,47 +1289,47 @@ public class SaOrderServiceImpl extends ServiceImpl impl } } - if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { - List orderCancelDetailParamList = orderCancelParam.getOrderCancelDetailParamList(); - List pkOrderItemList = orderCancelDetailParamList.stream().map(OrderCancelDetailParam::getPkId).collect(Collectors.toList()); - // 第二次封装订单,根据明细表计算订单主表金额、业绩 - saOrderExt.setOrderAmount(BigDecimal.ZERO); - saOrderExt.setOrderAchieve(BigDecimal.ZERO); - saOrderExt.setOrderAssAchieve(BigDecimal.ZERO); - saOrderExt.setBackOrderAmount(BigDecimal.ZERO); - List saOrderItemsList = new ArrayList<>(); - saOrderExt.getOrderItemsList().forEach(saOrderItems -> { - if (pkOrderItemList.contains(saOrderItems.getPkId())) { - saOrderExt.setBackOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getBackOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity())); - return; - } - // 总价; - saOrderExt.setOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity())); - // 总业绩 - saOrderExt.setOrderAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAchieve(), saOrderItems.getAchievement(), saOrderItems.getQuantity())); - // 总考核业绩 - saOrderExt.setOrderAssAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAssAchieve(), saOrderItems.getAssAchievement(), saOrderItems.getQuantity())); - saOrderItemsList.add(saOrderItems); - }); - saOrderExt.setUploadAchieve(saOrderExt.getOrderAchieve()); - if (saOrderItemsList.size() == 0) { - saOrderExt.setDelFlag(EDelFlag.DELETE.getValue()); - } else { - saOrderExt.setOrderItemsList(saOrderItemsList); - } - // 修改订单 - Date currentDateTime = DateUtils.currentDateTime(); - // 删除发货单 - saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), pkOrderItemList); - updateSaOrder(pkApprove, saOrderExt, currentDateTime); - // 删除订单明细 - if (!saOrderItemsService.updateOrderItemsById(pkOrderItemList, pkApprove, currentDateTime)) { - throw new ServiceException("更新订单失败"); - } - if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, null, businessCommissionDTO).getData()) { - throw new ServiceException("撤单失败"); - } - } else { +// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { +// List orderCancelDetailParamList = orderCancelParam.getOrderCancelDetailParamList(); +// List pkOrderItemList = orderCancelDetailParamList.stream().map(OrderCancelDetailParam::getPkId).collect(Collectors.toList()); +// // 第二次封装订单,根据明细表计算订单主表金额、业绩 +// saOrderExt.setOrderAmount(BigDecimal.ZERO); +// saOrderExt.setOrderAchieve(BigDecimal.ZERO); +// saOrderExt.setOrderAssAchieve(BigDecimal.ZERO); +// saOrderExt.setBackOrderAmount(BigDecimal.ZERO); +// List saOrderItemsList = new ArrayList<>(); +// saOrderExt.getOrderItemsList().forEach(saOrderItems -> { +// if (pkOrderItemList.contains(saOrderItems.getPkId())) { +// saOrderExt.setBackOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getBackOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity())); +// return; +// } +// // 总价; +// saOrderExt.setOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity())); +// // 总业绩 +// saOrderExt.setOrderAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAchieve(), saOrderItems.getAchievement(), saOrderItems.getQuantity())); +// // 总考核业绩 +// saOrderExt.setOrderAssAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAssAchieve(), saOrderItems.getAssAchievement(), saOrderItems.getQuantity())); +// saOrderItemsList.add(saOrderItems); +// }); +// saOrderExt.setUploadAchieve(saOrderExt.getOrderAchieve()); +// if (saOrderItemsList.size() == 0) { +// saOrderExt.setDelFlag(EDelFlag.DELETE.getValue()); +// } else { +// saOrderExt.setOrderItemsList(saOrderItemsList); +// } +// // 修改订单 +// Date currentDateTime = DateUtils.currentDateTime(); +// // 删除发货单 +// saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), pkOrderItemList); +// updateSaOrder(pkApprove, saOrderExt, currentDateTime); +// // 删除订单明细 +// if (!saOrderItemsService.updateOrderItemsById(pkOrderItemList, pkApprove, currentDateTime)) { +// throw new ServiceException("更新订单失败"); +// } +// if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, null, businessCommissionDTO).getData()) { +// throw new ServiceException("撤单失败"); +// } +// } else { // 删除订单 saOrderExt.setDelFlag(EDelFlag.DELETE.getValue()); Date currentDate = DateUtils.currentDateTime(); @@ -1367,7 +1367,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 其他撤单 this.handleCancelUpgradeOrder(saOrderExt, validateCancelOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO); } - } +// } try { // 推送MQ的列表 @@ -2134,13 +2134,13 @@ public class SaOrderServiceImpl extends ServiceImpl impl } } - if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() || - EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()) { - // 需要查询盒数商品 - List boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType()); - // 复购、重消订单处理限购 - iSaOrderWaresLimitService.updateCancelOrder(saOrderExt.getPkId(), saOrderExt.getPkMember(), saOrderExt.getModifiedTime(), boxProductList); - } +// if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() || +// EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()) { +// // 需要查询盒数商品 +// List boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType()); +// // 复购、重消订单处理限购 +// iSaOrderWaresLimitService.updateCancelOrder(saOrderExt.getPkId(), saOrderExt.getPkMember(), saOrderExt.getModifiedTime(), boxProductList); +// } if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, businessCommissionDTO).getData()) { throw new ServiceException("撤单处理会员失败"); diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java index f7690572..09fb0c6a 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java @@ -28,10 +28,10 @@ public enum ECancelOrderType { */ OTHER_CANCEL_ORDER(3, "其他整单撤单", 0), - /** - * 其他部分撤单 - */ - OTHER_CANCEL_PART_ORDER(4, "其他部分撤单", 0), +// /** +// * 其他部分撤单 +// */ +// OTHER_CANCEL_PART_ORDER(4, "其他部分撤单", 0), /** * 单点退单 From d0781ce37afe9f5ef986d14628b7a97f9a2b5527 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 11:54:50 +0800 Subject: [PATCH 24/89] =?UTF-8?q?##=20=E5=A4=8D=E8=B4=AD=E7=BA=A7=E5=B7=AE?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=85=88=E4=B9=98=E5=86=8D=E5=87=8F=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 16 ++++++++-------- .../common/core/constant/RetailConstants.java | 18 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 69034e1a..aede97b0 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -596,32 +596,32 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // V2 拿 8,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V2.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V2.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V2.multiply(boxNum).subtract(totalBonus)); } else if (EGrade.MAKER.getValue() == targetGradeValue) { // V3 拿 10,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V3_1.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_1.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_1.multiply(boxNum).subtract(totalBonus)); } else if (EGrade.VIP.getValue() == targetGradeValue) { // V4 拿 20,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V4.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V4.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V4.multiply(boxNum).subtract(totalBonus)); } else if (EGrade.S_VIP.getValue() == targetGradeValue) { // V5 拿 20.8,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V5.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V5.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V5.multiply(boxNum).subtract(totalBonus)); } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { // V6 拿 22,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V6.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V6.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V6.multiply(boxNum).subtract(totalBonus)); } else if (EGrade.COMPANY.getValue() == targetGradeValue) { // V7 拿 24,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V7.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V7.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V7.multiply(boxNum).subtract(totalBonus)); } } else if (EGrade.MAKER.getValue() == beforeGradeValue && EGrade.MAKER.getValue() == targetGradeValue) { @@ -630,13 +630,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // V3第一平级 推拿 12,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V3_2.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_2.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_2.multiply(boxNum).subtract(totalBonus)); v3Count++; } else if (v3Count == 2) { // V3第二平级 推拿 13,或者减去之前累计 rangeBonusIncome = RetailConstants.REPURCHASE_V3_3.multiply(boxNum).subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_3.subtract(totalBonus).multiply(boxNum)); + totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_3.multiply(boxNum).subtract(totalBonus)); v3Count++; } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java index ae53c1d0..9c053ac2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java @@ -65,15 +65,15 @@ public class RetailConstants { public static final BigDecimal V7_V3 = new BigDecimal("2400"); /** - * 会员 推 合伙人 1200 - * VIP 推 合伙人 1600 - * 合伙人1 推 合伙人 2000 - * 合伙人2 推 合伙人 2400 - * 合伙人3 推 合伙人 2600 - * 博羚店主 推 合伙人 4000 - * 高级店主 推 合伙人 4160 - * 分公司 推 合伙人 4400 - * 总公司 推 合伙人 4800 + * 会员 推 博羚店主 1200 + * VIP 推 博羚店主 1600 + * 合伙人1 推 博羚店主 2000 + * 合伙人2 推 博羚店主 2400 + * 合伙人3 推 博羚店主 2600 + * 博羚店主 推 博羚店主 4000 + * 高级店主 推 博羚店主 4160 + * 分公司 推 博羚店主 4400 + * 总公司 推 博羚店主 4800 */ public static final BigDecimal V1_V4 = new BigDecimal("1200"); public static final BigDecimal V2_V4 = new BigDecimal("1600"); From f4ef2a932615a5ac8a48dac82e2f2300122c8897 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 14:17:38 +0800 Subject: [PATCH 25/89] =?UTF-8?q?##=20=E9=A6=96=E8=B4=AD=E7=BA=A7=E5=B7=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 91 ++++++++++--------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index aede97b0..eec50afe 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -291,38 +291,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // V1 推拿 60 rangeBonusIncome = RetailConstants.V1_V1; // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V1_V1); + totalBonus = RetailConstants.V1_V1; } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { // V2 推拿 80,或者减去之前累计 rangeBonusIncome = RetailConstants.V2_V1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V2_V1.subtract(totalBonus)); + totalBonus = RetailConstants.V2_V1; } else if (EGrade.MAKER.getValue() == targetGradeValue) { // V3 推拿 100,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V1.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V1; } else if (EGrade.VIP.getValue() == targetGradeValue) { // V4 推拿 200,或者减去之前累计 rangeBonusIncome = RetailConstants.V4_V1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V4_V1.subtract(totalBonus)); + totalBonus = RetailConstants.V4_V1; } else if (EGrade.S_VIP.getValue() == targetGradeValue) { // V5 推拿 208,或者减去之前累计 rangeBonusIncome = RetailConstants.V5_V1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V5_V1.subtract(totalBonus)); + totalBonus = RetailConstants.V5_V1; } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { // V6 推拿 220 ,或者减去之前累计 rangeBonusIncome = RetailConstants.V6_V1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V6_V1.subtract(totalBonus)); + totalBonus = RetailConstants.V6_V1; } else if (EGrade.COMPANY.getValue() == targetGradeValue) { // V7 推拿 240,或者减去之前累计 rangeBonusIncome = RetailConstants.V7_V1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V7_V1.subtract(totalBonus)); + totalBonus = RetailConstants.V7_V1; } + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } } else if (EGrade.YOU_KE.getValue() == orderGradeValue) { // 订单等级是VIP @@ -332,38 +334,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // V1 推拿 300 rangeBonusIncome = RetailConstants.V1_V2; // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V1_V2); + totalBonus = RetailConstants.V1_V2; } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { // V2 推拿 400,或者减去之前累计 rangeBonusIncome = RetailConstants.V2_V2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V2_V2.subtract(totalBonus)); + totalBonus = RetailConstants.V2_V2; } else if (EGrade.MAKER.getValue() == targetGradeValue) { // V3 推拿 500,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V2.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V2; } else if (EGrade.VIP.getValue() == targetGradeValue) { // V4 推拿 1000,或者减去之前累计 rangeBonusIncome = RetailConstants.V4_V2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V4_V2.subtract(totalBonus)); + totalBonus = RetailConstants.V4_V2; } else if (EGrade.S_VIP.getValue() == targetGradeValue) { // V5 推拿 1040,或者减去之前累计 rangeBonusIncome = RetailConstants.V5_V2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V5_V2.subtract(totalBonus)); + totalBonus = RetailConstants.V5_V2; } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { // V6 推拿 1100,或者减去之前累计 rangeBonusIncome = RetailConstants.V6_V2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V6_V2.subtract(totalBonus)); + totalBonus = RetailConstants.V6_V2; } else if (EGrade.COMPANY.getValue() == targetGradeValue) { // V7 推拿 1200,或者减去之前累计 rangeBonusIncome = RetailConstants.V7_V2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V7_V2.subtract(totalBonus)); + totalBonus = RetailConstants.V7_V2; } + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } } else if (EGrade.MAKER.getValue() == orderGradeValue) { // 订单是合伙人 @@ -373,38 +377,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // V1 推拿 600 rangeBonusIncome = RetailConstants.V1_V3; // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V1_V3); + totalBonus = RetailConstants.V1_V3; } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { // V2 推拿 800,或者减去之前累计 rangeBonusIncome = RetailConstants.V2_V3.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V2_V3.subtract(totalBonus)); + totalBonus = RetailConstants.V2_V3; } else if (EGrade.MAKER.getValue() == targetGradeValue) { // V3 推拿 1000,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V3_1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V3_1.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V3_1; } else if (EGrade.VIP.getValue() == targetGradeValue) { // V4 推拿 2000,或者减去之前累计 rangeBonusIncome = RetailConstants.V4_V3.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V4_V3.subtract(totalBonus)); + totalBonus = RetailConstants.V4_V3; } else if (EGrade.S_VIP.getValue() == targetGradeValue) { // V5 推拿 2080,或者减去之前累计 rangeBonusIncome = RetailConstants.V5_V3.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V5_V3.subtract(totalBonus)); + totalBonus = RetailConstants.V5_V3; } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { // V6 推拿 2200,或者减去之前累计 rangeBonusIncome = RetailConstants.V6_V3.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V6_V3.subtract(totalBonus)); + totalBonus = RetailConstants.V6_V3; } else if (EGrade.COMPANY.getValue() == targetGradeValue) { // V7 推拿 2400,或者减去之前累计 rangeBonusIncome = RetailConstants.V7_V3.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V7_V3.subtract(totalBonus)); + totalBonus = RetailConstants.V7_V3; } + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } else if (EGrade.MAKER.getValue() == beforeGradeValue && EGrade.MAKER.getValue() == targetGradeValue) { // 之前和现在都是合伙人,处理平级 @@ -412,56 +418,58 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // V3第一平级 推拿 1200,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V3_2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V3_2.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V3_2; v3Count++; } else if (v3Count == 2) { // V3第二平级 推拿 1300,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V3_3.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V3_3.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V3_3; v3Count++; } } } else if (EGrade.VIP.getValue() == orderGradeValue) { - // 订单是合伙人 + // 订单是博羚店主 if (targetGradeValue > beforeGradeValue) { // 当前等级大于之前等级 if (EGrade.HAI_FAN.getValue() == targetGradeValue) { // V1 推拿 1200 rangeBonusIncome = RetailConstants.V1_V4; // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V1_V4); + totalBonus = RetailConstants.V1_V4; } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { // V2 推拿 1600,或者减去之前累计 rangeBonusIncome = RetailConstants.V2_V4.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V2_V4.subtract(totalBonus)); + totalBonus = RetailConstants.V2_V4; } else if (EGrade.MAKER.getValue() == targetGradeValue) { // V3 推拿 2000,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V4_1.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V4_1.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V4_1; } else if (EGrade.VIP.getValue() == targetGradeValue) { // V4 推拿 4000,或者减去之前累计 rangeBonusIncome = RetailConstants.V4_V4.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V4_V4.subtract(totalBonus)); + totalBonus = RetailConstants.V4_V4; } else if (EGrade.S_VIP.getValue() == targetGradeValue) { // V5 推拿 4160,或者减去之前累计 rangeBonusIncome = RetailConstants.V5_V4.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V5_V4.subtract(totalBonus)); + totalBonus = RetailConstants.V5_V4; } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { // V6 推拿 4400,或者减去之前累计 rangeBonusIncome = RetailConstants.V6_V4.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V6_V4.subtract(totalBonus)); + totalBonus = RetailConstants.V6_V4; } else if (EGrade.COMPANY.getValue() == targetGradeValue) { // V7 推拿 4800,或者减去之前累计 rangeBonusIncome = RetailConstants.V7_V4.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V7_V4.subtract(totalBonus)); + totalBonus = RetailConstants.V7_V4; } + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } else if (EGrade.MAKER.getValue() == beforeGradeValue && EGrade.MAKER.getValue() == targetGradeValue) { // 之前和现在都是合伙人,处理平级 @@ -469,13 +477,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // V3第一平级 推拿 2400,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V4_2.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V4_2.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V4_2; v3Count++; } else if (v3Count == 2) { // V3第二平级 推拿 2600,或者减去之前累计 rangeBonusIncome = RetailConstants.V3_V4_3.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V3_V4_3.subtract(totalBonus)); + totalBonus = RetailConstants.V3_V4_3; v3Count++; } } @@ -487,27 +495,27 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 博羚店主拿 50000 rangeBonusIncome = RetailConstants.V4_V6.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V4_V6.subtract(totalBonus)); + totalBonus = RetailConstants.V4_V6; } else if (EGrade.S_VIP.getValue() == targetGradeValue) { // 高级店主拿 52000,或者减去之前累计 rangeBonusIncome = RetailConstants.V5_V6.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V5_V6.subtract(totalBonus)); + totalBonus = RetailConstants.V5_V6; } else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) { // 分公司拿 55000,或者减去之前累计 rangeBonusIncome = RetailConstants.V6_V6.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V6_V6.subtract(totalBonus)); + totalBonus = RetailConstants.V6_V6; } else if (EGrade.COMPANY.getValue() == targetGradeValue) { // 总公司拿 60000,或者减去之前累计 rangeBonusIncome = RetailConstants.V7_V6.subtract(totalBonus); // 前面累计的奖金 - totalBonus = totalBonus.add(RetailConstants.V7_V6.subtract(totalBonus)); + totalBonus = RetailConstants.V7_V6; } + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } } - // 前一级会员等级 - beforeGradeValue = targetGradeValue; if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) { // 处理直推级差收益 @@ -623,6 +631,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 前面累计的奖金 totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V7.multiply(boxNum).subtract(totalBonus)); } + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } else if (EGrade.MAKER.getValue() == beforeGradeValue && EGrade.MAKER.getValue() == targetGradeValue) { // 之前和现在都是合伙人,处理平级 @@ -641,9 +651,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } - // 前一级会员等级 - beforeGradeValue = targetGradeValue; - if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) { // 处理复购级差收益 // 会员奖金 From 8b9f461c20a72bb8d0505441490a52c8c3f0ef49 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 15:16:30 +0800 Subject: [PATCH 26/89] =?UTF-8?q?##=20=E6=92=A4=E5=8D=95=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E4=BA=BA=E7=AD=89=E7=BA=A7=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/base/mapper/CuMemberMapper.java | 18 ++++ .../member/base/service/ICuMemberService.java | 18 ++++ .../impl/CuMemberBusinessServiceImpl.java | 91 ++++++++++++------- .../service/impl/CuMemberServiceImpl.java | 11 +++ .../detail/service/ICuMemberLevelService.java | 2 +- .../impl/CuMemberLevelServiceImpl.java | 3 + .../mapper/member/base/CuMemberMapper.xml | 38 ++++++++ .../service/impl/SaOrderServiceImpl.java | 47 +--------- .../common/domain/sale/ext/SaOrderExt.java | 10 -- 9 files changed, 150 insertions(+), 88 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index 2f1c30f1..dd00aec6 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.BdTradeWhiteConfig; import com.hzs.member.base.dto.MemberCountDTO; import com.hzs.member.base.param.*; @@ -625,4 +626,21 @@ public interface CuMemberMapper extends BaseMapper { */ CuMember getShopkeeperMember(@Param("pkMember") Long pkMember); + /** + * 查询高级店主 + * + * @param pkMember + * @return + */ + CuMember getGradeSvipMember(@Param("pkMember") Long pkMember); + + /** + * 查询会员直推大于博羚店主的注册、升级订单查询会员直推大于博羚店主的注册、升级订单 + * + * @param pkMember + * @param orderCode + * @return + */ + SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index ec8d484f..2540521c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -6,6 +6,7 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.BdTradeWhiteConfig; import com.hzs.member.base.param.UpdatePlaceParentPetitionParam; import com.hzs.member.base.dto.ShowWaresDTO; @@ -894,4 +895,21 @@ public interface ICuMemberService extends IService { */ CuMember getShopkeeperMember(Long pkMember); + /** + * 查询高级店主 + * + * @param pkMember + * @return + */ + CuMember getGradeSvipMember(Long pkMember); + + /** + * 查询会员直推大于博羚店主的注册、升级订单查询会员直推大于博羚店主的注册、升级订单 + * + * @param pkMember + * @param orderCode + * @return + */ + SaOrder listRecommendVipOrder(Long pkMember, String orderCode); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 61c53433..c9564aa8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -2,8 +2,8 @@ package com.hzs.member.base.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.domain.R; @@ -97,13 +97,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private ICuMemberRegisterService iCuMemberRegisterService; @Autowired private ICuMemberRetailRegionService iCuMemberRetailRegionService; + @Autowired + private ICuMemberLevelService iCuMemberLevelService; private ICuMemberAccountService cuMemberAccountService; private ICuMemberTradeService cuMemberTradeService; - private ICuMemberLevelService cuMemberLevelService; - private ICuMemberAwardsService cuMemberAwardsService; private ICuMemberChangeLogService cuMemberChangeLogService; @@ -134,11 +134,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { this.cuMemberAwardsService = cuMemberAwardsService; } - @Autowired - public void setCuMemberLevelService(ICuMemberLevelService cuMemberLevelService) { - this.cuMemberLevelService = cuMemberLevelService; - } - @Autowired public void setCuMemberTradeService(ICuMemberTradeService cuMemberTradeService) { this.cuMemberTradeService = cuMemberTradeService; @@ -219,7 +214,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { .build(); cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry()); cuMemberLevel.setPkCreator(cuMember.getPkId()); - return cuMemberLevelService.save(cuMemberLevel); + return iCuMemberLevelService.save(cuMemberLevel); } /** @@ -863,7 +858,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { Long pkMember = memberList.get(i); SaOrderExt saOrder = saOrderMap.get(pkMember); // 删除等级 - cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); + iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); // 回退奖衔,根据订单从 cu_member_awards查询 cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime); @@ -897,7 +892,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { if (EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) { // 升级订单 // 回退等级 - cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); + iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) { // 复购订单 // 会员等级发生变化,新等级需要处理 @@ -906,26 +901,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 更新会员等级 cuMember.setPkSettleGrade(newGrade.getPkId()); } - - // 处理升级记录(添加、删除) - List deleteLevelList = saOrder.getDeleteLevelList(); - if (CollectionUtil.isNotEmpty(deleteLevelList)) { - cuMemberLevelService.update(Wrappers.lambdaUpdate() - .set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue()) - .set(CuMemberLevel::getModifiedTime, new Date()) - .set(CuMemberLevel::getPkModified, pkApprove) - .in(CuMemberLevel::getPkId, deleteLevelList.stream().map(CuMemberLevel::getPkId).collect(Collectors.toList())) - ); - } - List createLevelList = saOrder.getCreateLevelList(); - if (CollectionUtil.isNotEmpty(createLevelList)) { - // 校验插入的升级时间要小于V4、V5的升级时间 - CuMemberLevel tmpLevel = cuMemberLevelService.getLevelByGradeValue(saOrder.getPkMember(), EGrade.VIP.getValue(), saOrder.getPayTime(), saOrder.getPkCountry()); - if (null != tmpLevel) { - createLevelList = createLevelList.stream().filter(tmp -> tmp.getUpgradeTime().compareTo(tmpLevel.getUpgradeTime()) < 0).collect(Collectors.toList()); - } - cuMemberLevelService.insertBatch(createLevelList); - } } // 更新会员标记,如果是则更新会员信息 @@ -936,6 +911,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } } + this.handleParentLevel(saOrder, currentDateTime); + // 部分撤单 todo 发货后邮费不退,未发货退邮费 if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) { cancelPartOrderBackAmount(pkApprove, saOrder); @@ -1633,7 +1610,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { .build(); cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry()); cuMemberLevel.setPkCreator(cuMember.getPkId()); - cuMemberLevelService.save(cuMemberLevel); + iCuMemberLevelService.save(cuMemberLevel); LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(CuMember::getPkSettleGrade, upgradeDTO.getPkId()); @@ -1645,4 +1622,54 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } } + /** + * 处理推荐人等级 + * + * @param saOrder + * @param currentDateTime + */ + private void handleParentLevel(SaOrderExt saOrder, Date currentDateTime) { + // 注册、升级订单,需要判断是否有推荐人升级的 + if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() + || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) { + // 查询订单是否带有自动升级记录 + LambdaQueryWrapper memberLevelQuery = new LambdaQueryWrapper<>(); + memberLevelQuery.eq(CuMemberLevel::getPkOrder, saOrder.getPkId()); + memberLevelQuery.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue()); + CuMemberLevel parentLevel = iCuMemberLevelService.getOne(memberLevelQuery); + if (null != parentLevel) { + // 查询推荐人信息(必须是高级店主) + CuMember parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember()); + if (null != parentMember) { + // 推荐是高级店主,查询直推博羚店主以上订单 + SaOrder parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode()); + if (null != parentOrder) { + // 存在其它博羚店主订单,重新处理升级记录 + CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class); + parentNewLevel.setPkId(null); + parentNewLevel.setPkOrder(parentOrder.getPkId()); + parentNewLevel.setUpgradeTime(parentOrder.getPayTime()); + parentNewLevel.setModifiedTime(parentOrder.getPayTime()); + parentNewLevel.setPkModified(parentOrder.getPkMember()); + iCuMemberLevelService.save(parentNewLevel); + } else { + // 不存在其它博羚店主订单,会员需要降级处理 + LambdaUpdateWrapper parentMemberUpdate = new LambdaUpdateWrapper<>(); + parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId()); + parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel()); + parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime); + iCuMemberService.update(parentMemberUpdate); + } + // 删除原来升级记录 + LambdaUpdateWrapper updateMemberLevel = new LambdaUpdateWrapper<>(); + updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId()); + updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue()); + updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime); + iCuMemberLevelService.update(updateMemberLevel); + } + } + } + + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index bb04351a..e1808173 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -26,6 +26,7 @@ import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.member.empty.CuMemberEmptyCode; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.wares.BdWaresAuthority; import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.domain.system.config.BdTradeWhiteConfig; @@ -3161,4 +3162,14 @@ public class CuMemberServiceImpl extends ServiceImpl i return baseMapper.getShopkeeperMember(pkMember); } + @Override + public CuMember getGradeSvipMember(Long pkMember) { + return baseMapper.getGradeSvipMember(pkMember); + } + + @Override + public SaOrder listRecommendVipOrder(Long pkMember, String orderCode) { + return baseMapper.listRecommendVipOrder(pkMember, orderCode); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberLevelService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberLevelService.java index 68239812..4fc787d0 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberLevelService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberLevelService.java @@ -13,7 +13,7 @@ import java.util.List; public interface ICuMemberLevelService extends IService { /** - * 删除会员等级升级记录 + * 删除会员等级升级记录(订单购买升级的) * * @param pkOrder 订单 * @param pkApprove 审核人 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberLevelServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberLevelServiceImpl.java index cbb74e76..58f2e239 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberLevelServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberLevelServiceImpl.java @@ -2,6 +2,7 @@ package com.hzs.member.detail.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.core.enums.EUpgradeType; import com.hzs.common.core.enums.EYesNo; import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.detail.CuMemberLevel; @@ -25,6 +26,8 @@ public class CuMemberLevelServiceImpl extends ServiceImpl + + + + + + diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index a9b2d2af..7df2228f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -2030,7 +2030,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl * @return */ private GradeDTO calculateRetailCancelGrade(CuMember cuMember, SaOrder saOrder) { - // 查询会员升级记录表最终数据 + // 查询会员最新升级记录 CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrder.getPkId()).getData(); if (null != cuMemberLevel) { return gradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData(); @@ -2065,10 +2065,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl cuMember.setConsumeMoney(BigDecimal.ZERO); cuMember.setConsumeAchieve(cuMemberRegister.getConsumeAchieve()); - // 查询会员升级记录表最终数据 + // 查询会员最新升级记录 CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrderExt.getPkId()).getData(); if (null != cuMemberLevel) { - // 存在手动升级 cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel()); } } else { @@ -2085,48 +2084,6 @@ public class SaOrderServiceImpl extends ServiceImpl impl cuMember.setIsActivate(EYesNo.NO.getIntValue()); } saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue()); - } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { - // 复购订单存在盒数商品撤单,需要处理降级操作 - if (saOrderExt.getBoxNum() > 0) { - // TODO 目前只有注册、升级才能激活,复购不进行处理 -// Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId()); -// if (null == firstDate) { -// // 盒数商品订单最早的时间为空,则会员未激活 -// cuMember.setPayTime(null); -// cuMember.setPayStatus(EPayStatus.UNPAID.getValue()); -// cuMember.setIsActivate(EYesNo.NO.getIntValue()); -// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue()); -// } - - // TODO 恢复升级专区,复购专区不需要处理等级问题 -// // 如果复购订单后面还有升级订单,不需要处理等级问题; 复购订单后面没有升级订单,走新逻辑校验 -// if (this.count(Wrappers.lambdaQuery() -// .eq(SaOrder::getPkMember, saOrderExt.getPkMember()) -// .eq(SaOrder::getOrderType, EOrderType.RETAIL_UPGRADE.getValue()) -// .ge(SaOrder::getPayTime, saOrderExt.getPayTime()) -// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue()) -// ) == 0) { -// // 带有盒数商品的订单,需要校验等级 -// List gradeList = iGradeServiceApi.getRetailGradeList().getData(); -// // 当前会员等级 -// BdGrade memberGrade = this.getGrade(cuMember.getPkSettleGrade(), gradeList); -// -// // 需要添加的升级记录列表 -// List createLevelList = new ArrayList<>(); -// // 需要删除的升级记录列表 -// List deleteLevelList = new ArrayList<>(); -// // 新等级计算 -// BdGrade newGrade = this.handleNewGrade(cuMember, memberGrade, gradeList, saOrderExt, createLevelList, deleteLevelList); -// -// if (memberGrade.getGradeValue() < EGrade.VIP.getValue() && newGrade.getGradeValue() < memberGrade.getGradeValue()) { -// // 当前会员等级不是V4或者V5 并且 新等级小于当前等级需要进行处理 -// saOrderExt.setNewGrade(newGrade); -// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue()); -// } -// saOrderExt.setCreateLevelList(createLevelList); -// saOrderExt.setDeleteLevelList(deleteLevelList); -// } - } } else if (EOrderType.RETAIL_PICK.getValue() == saOrderExt.getOrderType()) { // 新提货订单 if (!iAcRetailPickService.cancelRetailPickOrder(saOrderExt.getPkId(), pkApprove)) { diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java index d15fa03b..e7909233 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java @@ -3,7 +3,6 @@ package com.hzs.common.domain.sale.ext; import com.hzs.common.core.annotation.Transaction; import com.hzs.common.core.constant.EnumsPrefixConstants; import com.hzs.common.domain.member.account.CuMemberTrade; -import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.sale.order.*; import com.hzs.common.domain.system.config.BdGrade; import lombok.Data; @@ -166,15 +165,6 @@ public class SaOrderExt extends SaOrder { */ private BdGrade newGrade; - /** - * 需要添加的升级记录列表 - */ - private List createLevelList; - /** - * 需要删除的升级记录列表 - */ - private List deleteLevelList; - /** * 选择区域省 From 1814abf5f94364af70181b8abe860dc32926b0f3 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 15:21:32 +0800 Subject: [PATCH 27/89] =?UTF-8?q?##=20=E5=A4=8D=E8=B4=AD=E7=BA=A7=E5=B7=AE?= =?UTF-8?q?=E5=A5=96=E9=87=91=E6=98=BE=E7=A4=BA=E8=B0=83=E6=95=B4=EF=BC=88?= =?UTF-8?q?269=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index eec50afe..3cb18d14 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -669,7 +669,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { rangeRepurRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { - cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome())); + cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cuMemberBonusRange.getPretaxIncome())); setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange); } memberBonusRangeList.add(cuMemberBonusRange); From 9b225459a0a5073f30391188aa61b0fa3ee2315d Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 16:02:59 +0800 Subject: [PATCH 28/89] =?UTF-8?q?##=20=E6=B3=A8=E5=86=8C=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=92=A4=E5=8D=95=E5=A4=84=E7=90=86=E6=8E=A8=E8=8D=90=E4=BA=BA?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/service/impl/CuMemberBusinessServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index c9564aa8..fff0f175 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -588,6 +588,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @Transactional(rollbackFor = Exception.class) public Boolean singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) { deductCancelOrderCost(businessCommissionDTO); + Date currentDateTime = DateUtils.currentDateTime(); CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); @@ -608,6 +609,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); } + // 处理推荐人等级 + handleParentLevel(saOrder, currentDateTime); + cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); return true; } @@ -911,6 +915,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } } + // 处理推荐人等级 this.handleParentLevel(saOrder, currentDateTime); // 部分撤单 todo 发货后邮费不退,未发货退邮费 From 4e813f17b970c3c026eaf6d872938121fe7e77f5 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 12 Jul 2025 16:24:23 +0800 Subject: [PATCH 29/89] =?UTF-8?q?##=20=E8=87=AA=E5=8A=A9=E6=92=A4=E5=8D=95?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=8E=A8=E8=8D=90=E4=BA=BA=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=EF=BC=9B=E5=8E=BB=E6=8E=89=E6=9D=A1=E7=A0=81=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/member/base/IMemberServiceApi.java | 16 --------- .../member/base/mapper/CuMemberMapper.java | 16 --------- .../base/provider/MemberServiceProvider.java | 10 ------ .../member/base/service/ICuMemberService.java | 16 --------- .../impl/CuMemberBusinessServiceImpl.java | 8 ----- .../service/impl/CuMemberServiceImpl.java | 10 ------ .../mapper/member/base/CuMemberMapper.xml | 20 ----------- .../deliver/mapper/SaDeliverItemsMapper.java | 12 ------- .../service/ISaDeliverItemsService.java | 16 +-------- .../impl/SaDeliverItemsServiceImpl.java | 13 ------- .../controller/api/ApiOrderController.java | 34 +++---------------- .../manager/SaOrderBusinessController.java | 31 +++++++---------- .../impl/OrderBusinessServiceImpl.java | 8 ----- .../sale/deliver/SaDeliverItemsMapper.xml | 16 --------- .../common/core/enums/ECancelOrderType.java | 3 -- .../domain/sale/deliver/SaDeliverItems.java | 3 -- 16 files changed, 18 insertions(+), 214 deletions(-) diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java index f37bd20a..8c73f2c0 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java @@ -96,13 +96,6 @@ public interface IMemberServiceApi { */ R> querySponsorOnUmbrella(Long memberId, String memberCode, String phone); - /** - * 查找安置人伞上会员信息 - * - * @param memberId 编号、安置人 - */ - R> querySponsorOnUmbrella(Long memberId, List memberCodeList); - /** * 查找安置人伞下 * @@ -268,15 +261,6 @@ public interface IMemberServiceApi { */ R updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel); - /** - * 校验是否血缘关系(返回true则有血缘关系) - * - * @param topCode 顶点编号 - * @param userId 当前会员 - * @return - */ - R checkParent(String topCode, Long userId); - /** * 获取奖衔的翻译KEY值 **/ diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index dd00aec6..4cae502a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -50,13 +50,6 @@ public interface CuMemberMapper extends BaseMapper { @Param("memberCode") String memberCode, @Param("phone") String phone); - /** - * 查找安置人伞上会员信息 - * - * @param memberId 编号、安置人 - */ - List querySponsorOnUmbrella(@Param("memberId") Long memberId, @Param("memberCodeList") List memberCodeList); - /** * 查找安置人伞下 * @@ -277,15 +270,6 @@ public interface CuMemberMapper extends BaseMapper { */ List parentList(@Param("pkParent") Long pkParent, @Param("memberCode") String memberCode, @Param("memberName") String memberName, @Param("startCreateTime") Date startCreateTime, @Param("endCreateTime") Date endCreateTime, @Param("memberInfo") String memberInfo); - /** - * 校验是否血缘关系 - * - * @param topCode 顶点编号 - * @param pkMember 当前会员 - * @return - */ - int checkParent(@Param("topCode") String topCode, @Param("pkMember") Long pkMember); - /** * 校验会员编号是否存在 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java index 1f454eb5..23fc9763 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java @@ -130,11 +130,6 @@ public class MemberServiceProvider implements IMemberServiceApi { return R.ok(iCuMemberService.queryPlaceSponsorOnUmbrella(memberId, memberCode, phone)); } - @Override - public R> querySponsorOnUmbrella(Long memberId, List memberCodeList) { - return R.ok(iCuMemberService.querySponsorOnUmbrella(memberId, memberCodeList)); - } - @Override public R> selectPlaceSponsorUnderUmbrellaByCondition(Long memberId, List cuMemberExtList) { return R.ok(iCuMemberService.selectPlaceSponsorUnderUmbrellaByCondition(memberId, cuMemberExtList)); @@ -273,11 +268,6 @@ public class MemberServiceProvider implements IMemberServiceApi { return R.ok(iCuMemberBusinessService.updateMemberLevel(cuMember, saOrder, pkOldLevel)); } - @Override - public R checkParent(String topCode, Long userId) { - return R.ok(iCuMemberService.checkParent(topCode, userId) > 0); - } - @Override public Integer getAwardsTranslateValue(Integer pkCountry, Integer pkId) { return iCuMemberService.getAwardsTranslateValue(pkCountry, pkId); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index 2540521c..1ae584cd 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -108,13 +108,6 @@ public interface ICuMemberService extends IService { */ List queryPlaceSponsorOnUmbrella(Long memberId, String memberCode, String phone); - /** - * 查找安置人伞上会员信息 - * - * @param memberId 编号、安置人 - */ - List querySponsorOnUmbrella(Long memberId, List memberCodeList); - /** * 查找安置人伞下 * @@ -483,15 +476,6 @@ public interface ICuMemberService extends IService { */ List parentList(Long pkParent, String memberCode, String memberName, Date startCreateTime, Date endCreateTime, String memberInfo); - /** - * 校验是否血缘关系 - * - * @param topCode 顶点编号 - * @param pkMember 当前会员 - * @return - */ - int checkParent(String topCode, Long pkMember); - /** * 校验会员编号是否存在 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index fff0f175..f16bdcbc 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -648,14 +648,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { return true; } - - /** - * @description: 自助服务-生成订单 - * @author: zhang jing - * @date: 2023/4/18 17:13 - * @param: [pkApprove, saOrder, payMemberAccount] - * @return: void - **/ @Transactional(rollbackFor = Exception.class) @Override public void selfInsertMemberTrade(SaOrder saOrder, CuMemberAccount cuMemberAccount) { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index e1808173..4a519ae5 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -202,11 +202,6 @@ public class CuMemberServiceImpl extends ServiceImpl i return baseMapper.selectPlaceSponsorOnUmbrella(memberId, memberCode, phone); } - @Override - public List querySponsorOnUmbrella(Long memberId, List memberCodeList) { - return baseMapper.querySponsorOnUmbrella(memberId, memberCodeList); - } - @Override public List selectPlaceSponsorUnderUmbrellaByCondition(Long memberId, List cuMemberExtList) { return baseMapper.selectPlaceSponsorUnderUmbrellaByCondition(memberId, cuMemberExtList); @@ -2390,11 +2385,6 @@ public class CuMemberServiceImpl extends ServiceImpl i return baseMapper.selectRegList(marketNewsParam); } - @Override - public int checkParent(String topCode, Long pkMember) { - return baseMapper.checkParent(topCode, pkMember); - } - @Override public Map checkMemberCodeExist(Collection codeList, Boolean checkEmpty, Long excludeMemberEmpty) { Map resultMap = new HashMap<>(); diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index 5483a80e..fe0f02b6 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -1528,15 +1528,6 @@ - - - - - - diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java index 09fb0c6a..1acf9c44 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECancelOrderType.java @@ -1,13 +1,10 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; /** * 撤销订单类型 - * - * @author: hzs */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/deliver/SaDeliverItems.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/deliver/SaDeliverItems.java index 7e7dab59..1e769293 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/deliver/SaDeliverItems.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/deliver/SaDeliverItems.java @@ -10,9 +10,6 @@ import lombok.experimental.Accessors; /** * 发货单明细表 - * - * @author hzs - * @since 2022-08-31 */ @Data @EqualsAndHashCode(callSuper = true) From 1ee7f13ca1bd36d5c95914f369e6df313c29969f Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 14 Jul 2025 09:12:44 +0800 Subject: [PATCH 30/89] =?UTF-8?q?##=20Opt=20-=20=E5=B9=B3=E9=93=BA?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RetailMemberController.java | 9 +++- .../service/ICuMemberRetailRegionService.java | 2 + .../impl/CuMemberRetailRegionServiceImpl.java | 52 ++++++++++++++++++- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java index 4d55db31..956c7a5e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java @@ -2,6 +2,7 @@ package com.hzs.retail.member.controller.api; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.TableDataInfo; @@ -288,8 +289,12 @@ public class RetailMemberController extends BaseController { * @return */ @GetMapping("/query-region") - public AjaxResult queryRegion(@RequestParam("type") String type) { - return AjaxResult.success(iCuMemberRetailRegionService.getRegionTreeList(type, SecurityUtils.getUserId())); + public AjaxResult queryRegion(@RequestParam("type") String type, @RequestParam(value = "useTree", required = false) boolean useTree) { + if(ObjectUtil.isNotEmpty(useTree) && useTree){ + return AjaxResult.success(iCuMemberRetailRegionService.getRegionTreeList(type, SecurityUtils.getUserId())); + }else{ + return AjaxResult.success(iCuMemberRetailRegionService.getRegionList(type, SecurityUtils.getUserId())); + } } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java index b01940d0..4b1977bd 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java @@ -4,6 +4,7 @@ import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; +import com.hzs.common.domain.system.base.BdArea; import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.vo.UnboundAreaVO; @@ -60,4 +61,5 @@ public interface ICuMemberRetailRegionService extends IService> getRegionTreeList(String queryType, Long pkMember); + List getRegionList(String queryType, Long pkMember); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index 9d9e157d..217aae24 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.constant.*; @@ -13,6 +14,7 @@ import com.hzs.common.core.service.RedisService; import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.system.base.BdArea; +import com.hzs.common.domain.system.base.ext.AreaCache; import com.hzs.retail.member.mapper.CuMemberRetailRegionMapper; import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.service.ICuMemberRetailRegionService; @@ -22,8 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 新零售会员区域配置 服务实现类 @@ -115,4 +116,51 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl getRegionList(String queryType, Long pkMember) { + List allList = baseMapper.getRegionTreeList(queryType, pkMember); + /* + List provinceList = new ArrayList<>(); + List cityList = new ArrayList<>(); + List countyList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(allList)) { + //省 + for (BdArea ac : allList) { + // 上级为0,则为省一级 + if (ac.getParent().equals(0)) { + provinceList.add(ac); + } + } + } + //市 + for (BdArea ac : provinceList) { + for (BdArea ct : allList) { + if (ct.getParent().intValue() == ac.getPkId()) { + cityList.add(ct); + } + } + } + Set idSet = new HashSet<>(); + for (BdArea cache : cityList) { + for (BdArea ac : allList) { + if (ac.getParent().intValue() == cache.getPkId().intValue()) { + idSet.add(ac.getPkId()); + } + } + } + for (BdArea cache : allList) { + for (Integer integer : idSet) { + if (cache.getPkId().equals(integer)) { + countyList.add(cache); + } + } + } + JSONObject result = new JSONObject(); + result.put("provinceList", provinceList); + result.put("cityList", cityList); + result.put("countyList", countyList); + */ + return allList; + } + } From 443dbbe4b8e795d830462588cbe6e23fa0093113 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 14 Jul 2025 09:40:48 +0800 Subject: [PATCH 31/89] =?UTF-8?q?##=20=E8=87=AA=E5=8A=A9=E6=92=A4=E5=8D=95?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=8E=A8=E8=8D=90=E4=BA=BA=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CuMemberBusinessServiceImpl.java | 147 +++++++----------- 1 file changed, 57 insertions(+), 90 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index f16bdcbc..ac408130 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -90,8 +90,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @Autowired private ICuMemberAchieveService iCuMemberAchieveService; @Autowired - private RedisService redisService; - @Autowired private ICuMemberService iCuMemberService; @Autowired private ICuMemberRegisterService iCuMemberRegisterService; @@ -99,56 +97,23 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private ICuMemberRetailRegionService iCuMemberRetailRegionService; @Autowired private ICuMemberLevelService iCuMemberLevelService; - - private ICuMemberAccountService cuMemberAccountService; - - private ICuMemberTradeService cuMemberTradeService; - - private ICuMemberAwardsService cuMemberAwardsService; - - private ICuMemberChangeLogService cuMemberChangeLogService; - - private ICuMemberTradeDetailService cuMemberTradeDetailService; - - private ICuMemberTradeBonusService cuMemberTradeBonusService; - - private ICuMemberSettlePeriodService cuMemberSettlePeriodService; - @Autowired - public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) { - this.cuMemberSettlePeriodService = cuMemberSettlePeriodService; - } - + private ICuMemberAccountService iCuMemberAccountService; @Autowired - public void setCuMemberTradeBonusService(ICuMemberTradeBonusService cuMemberTradeBonusService) { - this.cuMemberTradeBonusService = cuMemberTradeBonusService; - } - + private ICuMemberTradeService iCuMemberTradeService; @Autowired - public void setCuMemberTradeDetailService(ICuMemberTradeDetailService cuMemberTradeDetailService) { - this.cuMemberTradeDetailService = cuMemberTradeDetailService; - } - + private ICuMemberAwardsService iCuMemberAwardsService; @Autowired - public void setCuMemberAwardsService(ICuMemberAwardsService cuMemberAwardsService) { - this.cuMemberAwardsService = cuMemberAwardsService; - } - + private ICuMemberChangeLogService iCuMemberChangeLogService; @Autowired - public void setCuMemberTradeService(ICuMemberTradeService cuMemberTradeService) { - this.cuMemberTradeService = cuMemberTradeService; - } - + private ICuMemberTradeDetailService iCuMemberTradeDetailService; @Autowired - public void setCuMemberAccountService(ICuMemberAccountService cuMemberAccountService) { - this.cuMemberAccountService = cuMemberAccountService; - } - - + private ICuMemberTradeBonusService iCuMemberTradeBonusService; @Autowired - public void setCuMemberChangeLogService(ICuMemberChangeLogService cuMemberChangeLogService) { - this.cuMemberChangeLogService = cuMemberChangeLogService; - } + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; + @Autowired + private RedisService redisService; + @Override @Transactional(rollbackFor = Exception.class) @@ -227,7 +192,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { */ private void saveAwardsUpgrade(CuMember cuMember, Integer levelType, SaOrder saOrder, Integer pkOldAwards) { // 记录奖衔升级历史 - CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrder.getPayTime())); + CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrder.getPayTime())); CuMemberAwards cuMemberAwards = CuMemberAwards.builder() .period(cuMemberSettlePeriod.getPkId()) .pkMember(cuMember.getPkId()) @@ -240,7 +205,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { .build(); cuMemberAwards.setPkCountry(cuMember.getPkSettleCountry()); cuMemberAwards.setPkCreator(cuMember.getPkId()); - cuMemberAwardsService.save(cuMemberAwards); + iCuMemberAwardsService.save(cuMemberAwards); } @Override @@ -299,7 +264,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { .build(); cuMemberAccount.setPkCreator(cuMember.getPkCreator()); cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry()); - cuMemberAccountService.save(cuMemberAccount); + iCuMemberAccountService.save(cuMemberAccount); } private void saveMemberRecords(CuMember cuMember, SaOrder saOrder) { @@ -363,7 +328,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } CuMemberAccount cuMemberAccount = CuMemberAccount.builder().pkMember(pkMember).build(); cuMemberAccount.setPkCountry(pkCountry); - List cuMemberAccountExtList = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount); + List cuMemberAccountExtList = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount); if (cuMemberAccountExtList.size() == 0) { throw new RuntimeException("没有找到会员账户"); } @@ -373,7 +338,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { BigDecimal originalMoney = ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue()); CuMemberTrade cuMemberTrade = packageMemberTrade(saOrder, pkCountry, bdAccount.getPkId(), originalMoney, tradeMoney, ETradeClassify.RECHARGE.getValue()); cuMemberTrade.setRemarks("在线充值"); - cuMemberTradeService.save(cuMemberTrade); + iCuMemberTradeService.save(cuMemberTrade); BigDecimal afterAccount = ComputeUtil.computeAdd(ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue()), tradeMoney); ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue(), afterAccount); ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.PAY_ACCOUNT + bdAccount.getFieldValue(), tradeMoney); @@ -456,7 +421,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberTradeBonusList.add(cuMemberTradeBonus); } // 查询会员的发放明细 - List cuMemberTradeDetailList = cuMemberTradeDetailService.queryCuMemberTradeDetail(cuMemberAccount.getPkMember()); + List cuMemberTradeDetailList = iCuMemberTradeDetailService.queryCuMemberTradeDetail(cuMemberAccount.getPkMember()); if (cuMemberTradeDetailList.size() > 0 && ComputeUtil.compareValue(bonusTradeMoney)) { // 会员发放交易明细 List updMemberTradeDetailList = new ArrayList<>(); @@ -490,11 +455,11 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { updateMemberAccount.setConsumeAccount4(consumeMoney.negate()); } // 更新会员发放交易流水表 - cuMemberTradeDetailService.updateCuMemberTradeDetail(updMemberTradeDetailList); + iCuMemberTradeDetailService.updateCuMemberTradeDetail(updMemberTradeDetailList); } if (cuMemberTradeBonusList.size() > 0) { // 新增会员奖金交易流水表 - cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(cuMemberTradeBonusList); + iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(cuMemberTradeBonusList); } } } @@ -514,7 +479,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private void saveAndUpdateCuMember(List cuMemberTradeList, CuMemberAccount updateMemberAccount) { if (cuMemberTradeList.size() > 0) { - cuMemberTradeService.saveBatch(cuMemberTradeList); + iCuMemberTradeService.saveBatch(cuMemberTradeList); } if (null != updateMemberAccount) { updateCuMemberAccount(updateMemberAccount); @@ -534,7 +499,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } // 更新账户余额 try { - if (!cuMemberAccountService.updateMemberAccount(updateMemberAccount, pkMember)) { + if (!iCuMemberAccountService.updateMemberAccount(updateMemberAccount, pkMember)) { throw new RuntimeException("用户付款失败,请重试!"); } } finally { @@ -590,8 +555,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { deductCancelOrderCost(businessCommissionDTO); Date currentDateTime = DateUtils.currentDateTime(); - CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); - + CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) { // 会员账号 验证会员账户是否存在金额 CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember()); @@ -620,12 +584,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @Transactional(rollbackFor = Exception.class) public Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) { deductCancelOrderCost(businessCommissionDTO); + Date currentDateTime = DateUtils.currentDateTime(); // 回退给创建人 - CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); + CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) { // 会员账号 验证会员账户是否存在金额 CuMember member = iCuMemberService.getMember(saOrder.getPkMember()); - //删除会员 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode())); @@ -644,6 +608,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { iCuMemberRegisterService.update(updateWrapperRegister); } + // 处理推荐人等级 + handleParentLevel(saOrder, currentDateTime); + cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); return true; } @@ -660,7 +627,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { public Boolean updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney) { CuMemberAccount cuMemberAccountParam = CuMemberAccount.builder().pkMember(pkMember).build(); cuMemberAccountParam.setPkCountry(pkCountry); - List cuMemberAccountExtList = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccountParam); + List cuMemberAccountExtList = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccountParam); if (CollectionUtil.isEmpty(cuMemberAccountExtList)) { return Boolean.FALSE; } @@ -692,7 +659,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { .build(); cuMemberTrade.setPkCountry(pkCountry); cuMemberTrade.setPkCreator(pkMember); - cuMemberTradeService.save(cuMemberTrade); + iCuMemberTradeService.save(cuMemberTrade); } @Override @@ -723,10 +690,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { CuMemberAccount updateMemberAccount = new CuMemberAccount(); List cuMemberTradeList = packageCancelOrderCuMemberTrades(pkApprove, saOrder, payMemberAccount, newCuMemberTradeBonusList, cuMemberTradeDetailList, updateMemberAccount); if (newCuMemberTradeBonusList.size() > 0) { - cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList); + iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList); } // 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail - cuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList); + iCuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList); saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount); } @@ -748,7 +715,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 返回的流水明细 List cuMemberTradeList = new ArrayList<>(); - List cuMemberTrades = cuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); + List cuMemberTrades = iCuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); // 如果有订单支付流水明细 if (CollectionUtil.isNotEmpty(cuMemberTrades)) { // 订单所属国家和订单支付流水国家不相同则为跨国,需要以订单支付流水中的国家为准进行退款 @@ -787,7 +754,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { updateMemberAccount.setConsumeAccount4(BigDecimal.ZERO); BigDecimal bonusTradeMoney = tradeMoney; List consumeTypeList = Arrays.asList(EConsumeType.ORDER.getValue(), EConsumeType.BACK_ORDER.getValue()); - List cuMemberTradeBonusList = cuMemberTradeBonusService.queryCuMemberTradeBonus(consumeTypeList, saOrder.getPkId()); + List cuMemberTradeBonusList = iCuMemberTradeBonusService.queryCuMemberTradeBonus(consumeTypeList, saOrder.getPkId()); for (CuMemberTradeBonus cuMemberTradeBonus : cuMemberTradeBonusList) { if (!ComputeUtil.compareValue(bonusTradeMoney)) { break; @@ -846,7 +813,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 按照memberList 倒叙往后删除 Date currentDateTime = DateUtils.currentDateTime(); List centerIdList = saOrderMap.values().stream().map(BaseEntity::getPkCreator).distinct().collect(Collectors.toList()); - List cuMemberAccountList = cuMemberAccountService.queryCuMemberAccountByPkMembers(centerIdList); + List cuMemberAccountList = iCuMemberAccountService.queryCuMemberAccountByPkMembers(centerIdList); Map cuMemberAccountMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberAccountList.size())); cuMemberAccountList.forEach(cuMemberAccount -> cuMemberAccountMap.put(cuMemberAccount.getPkMember(), cuMemberAccount)); @@ -856,9 +823,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 删除等级 iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); // 回退奖衔,根据订单从 cu_member_awards查询 - cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); + iCuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime); - cuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime); + iCuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime); // 撤销正常订单,修改 cu_member_register 账户状态为死点 CuMemberRegister cuMemberRegister = new CuMemberRegister(); cuMemberRegister.setPkMember(pkMember); @@ -873,7 +840,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private void deductCancelOrderCost(BusinessCommissionDTO businessCommissionDTO) { if (businessCommissionDTO != null) { - if (!cuMemberTradeService.businessCommissionSubmit(businessCommissionDTO)) { + if (!iCuMemberTradeService.businessCommissionSubmit(businessCommissionDTO)) { throw new RuntimeException("撤销订单扣除业务手续费失败"); } } @@ -914,7 +881,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) { cancelPartOrderBackAmount(pkApprove, saOrder); } else { - CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); + CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); // 回退账号余额 cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); } @@ -924,7 +891,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @Override @Transactional(rollbackFor = Exception.class) public Boolean cancelMemberAccount(Long pkMember, SaOrder saOrder) { - CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); + CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); // 回退账号余额 cancelOrderBackAccount(pkMember, saOrder, payMemberAccount); return Boolean.TRUE; @@ -932,7 +899,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @Override public void cancelPartOrderBackAmount(Long pkApprove, SaOrderExt saOrder) { - CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); + CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); BigDecimal backOrderAmount = saOrder.getBackOrderAmount(); // 考虑部分撤单 // 部分退,回退金额按照 币种扣除的倒叙扣除 现金->消费->奖金 奖金->消费->现金 @@ -952,7 +919,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { mustPayMoneyMap.put(areaCurrencyDTO.getPkAccount(), mustPayMoney); } } - List cuMemberTrades = cuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); + List cuMemberTrades = iCuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); Map cuMemberTradeMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberTrades.size())); cuMemberTrades.forEach(cuMemberTrade -> cuMemberTradeMap.put(cuMemberTrade.getPkAccount(), cuMemberTrade)); @@ -997,10 +964,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } } if (newCuMemberTradeBonusList.size() > 0) { - cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList); + iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList); } // 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail - cuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList); + iCuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList); saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount); } @@ -1008,13 +975,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @Override public String orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder) { // 查询会员订单支付币种 - List cuMemberTrades = cuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); + List cuMemberTrades = iCuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); // 查询会员当前余额 CuMemberAccount cuMemberAccount = new CuMemberAccount(); cuMemberAccount.setPkCountry(saOrder.getPkCountry()); cuMemberAccount.setPkMember(saOrder.getPkCreator()); - CuMemberAccountExt tmpCuMemberAccount = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0); + CuMemberAccountExt tmpCuMemberAccount = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0); if (CollectionUtil.isNotEmpty(cuMemberTrades)) { List currencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyByPkCountry(saOrder.getPkCountry()).getData(); @@ -1053,13 +1020,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { public void orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) { if (null != saOrder && null != updateOrder) { // 撤销订单 - this.cancelOrderBackAccount(userId, saOrder, cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator())); + this.cancelOrderBackAccount(userId, saOrder, iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator())); // 查询会员当前余额 CuMemberAccount cuMemberAccount = new CuMemberAccount(); cuMemberAccount.setPkCountry(saOrder.getPkCountry()); cuMemberAccount.setPkMember(saOrder.getPkCreator()); - CuMemberAccountExt tmpCuMemberAccount = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0); + CuMemberAccountExt tmpCuMemberAccount = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0); // 获取需要扣除各币种金额 R resultR = iSaOrderServiceApi.queryOrderSpendDetails(tmpCuMemberAccount, updateOrder, null); @@ -1091,7 +1058,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 追加业务实体不为null,需要处理 if (obj instanceof BusinessCommissionDTO) { // 业务办理扣款逻辑 - if (!cuMemberTradeService.businessCommissionSubmit((BusinessCommissionDTO) obj)) { + if (!iCuMemberTradeService.businessCommissionSubmit((BusinessCommissionDTO) obj)) { throw new ServiceException("业务手续费扣款失败"); } } @@ -1118,7 +1085,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { List saveMemberTradeList = new ArrayList<>(); // 查询订单创建人账户 - CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); + CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); // 订单所属专区扣币的第一位配置 AreaCurrencyDTO areaCurrencyDTO = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrder.getOrderType(), pkCountry).getData().get(0); // 专区扣币的第一位配置所用字段 @@ -1127,7 +1094,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { if (EOrderPayType.WALLET.getValue() == saOrder.getPayType()) { // 钱包支付 // 查询之前订单的支付明细 - List memberTradeList = cuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null); + List memberTradeList = iCuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null); // 获取所有账户配置ID List pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList()); @@ -1191,7 +1158,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } // 批量插入会员明细 - cuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList); + iCuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList); // 奖金账户有变化,需要同步处理 可提现奖金账户 BigDecimal bonusBigDecimal = ReflectUtils.invokeGetter(updateMemberAccount, MemberFieldConstants.ACCOUNT + 4); @@ -1200,7 +1167,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { ReflectUtils.invokeSetter(updateMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + 4, bonusBigDecimal); } // 更新会员余额 - cuMemberAccountService.updateMemberAccount(updateMemberAccount, userId); + iCuMemberAccountService.updateMemberAccount(updateMemberAccount, userId); // 更新创建人账号(根据订单类型不同,进行处理) switch (EOrderType.getEnumByValue(saOrder.getOrderType())) { @@ -1217,7 +1184,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberChangeLog.setPkMember(saOrder.getPkMember()); cuMemberChangeLog.setChangeType(EMemberChangeType.ORDER_RETURN.getValue()); cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel()); - cuMemberChangeLogService.save(cuMemberChangeLog); + iCuMemberChangeLogService.save(cuMemberChangeLog); } } @@ -1241,7 +1208,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel()); cuMemberChangeLogList.add(cuMemberChangeLog); } - cuMemberChangeLogService.saveBatch(cuMemberChangeLogList); + iCuMemberChangeLogService.saveBatch(cuMemberChangeLogList); } @@ -1327,7 +1294,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { Date nowDate = new Date(); // 会员账户 - CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); + CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); // 会员更新账户 CuMemberAccount updateMemberAccount = new CuMemberAccount(); updateMemberAccount.setPkMember(pkMember); @@ -1354,9 +1321,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberTrade.setCreationTime(nowDate); // 保存会员交易明细 - cuMemberTradeService.save(cuMemberTrade); + iCuMemberTradeService.save(cuMemberTrade); // 更新会员账户 - cuMemberAccountService.updateMemberAccount(updateMemberAccount, userId); + iCuMemberAccountService.updateMemberAccount(updateMemberAccount, userId); return null; } @@ -1464,7 +1431,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { .build(); cuMemberAccount.setPkCreator(cuMember.getPkCreator()); cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry()); - cuMemberAccountService.save(cuMemberAccount); + iCuMemberAccountService.save(cuMemberAccount); // 保存会员注册信息 CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); From b9472479cc4138e2576757cc1ccf9965b7bf9d83 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 14 Jul 2025 10:14:55 +0800 Subject: [PATCH 32/89] =?UTF-8?q?##=20=E6=92=A4=E5=8D=95=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=8C=BA=E5=9F=9F=E9=85=8D=E7=BD=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CuMemberBusinessServiceImpl.java | 31 +++++++++++++------ .../controller/api/ApiOrderController.java | 2 +- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index ac408130..1a249790 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.domain.R; @@ -575,6 +576,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 处理推荐人等级 handleParentLevel(saOrder, currentDateTime); + // 删除会员区域 + iCuMemberRetailRegionService.update(Wrappers.lambdaUpdate() + .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember()) + .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue()) + .set(CuMemberRetailRegion::getModifiedTime, currentDateTime) + ); cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); return true; @@ -594,7 +601,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode())); updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue()); - updateWrapper.set(CuMember::getModifiedTime, DateUtils.currentDateTime()); + updateWrapper.set(CuMember::getModifiedTime, currentDateTime); updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified()); updateWrapper.eq(CuMember::getPkId, member.getPkId()); iCuMemberService.update(updateWrapper); @@ -602,7 +609,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 删除会员注册表 LambdaUpdateWrapper updateWrapperRegister = new LambdaUpdateWrapper<>(); updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue()); - updateWrapperRegister.set(CuMemberRegister::getModifiedTime, DateUtils.currentDateTime()); + updateWrapperRegister.set(CuMemberRegister::getModifiedTime, currentDateTime); updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified()); updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId()); iCuMemberRegisterService.update(updateWrapperRegister); @@ -610,6 +617,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 处理推荐人等级 handleParentLevel(saOrder, currentDateTime); + // 删除会员区域 + iCuMemberRetailRegionService.update(Wrappers.lambdaUpdate() + .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember()) + .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue()) + .set(CuMemberRetailRegion::getModifiedTime, currentDateTime) + ); cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); return true; @@ -856,14 +869,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 升级订单 // 回退等级 iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); - } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) { - // 复购订单 - // 会员等级发生变化,新等级需要处理 - BdGrade newGrade = saOrder.getNewGrade(); - if (null != cuMember && null != newGrade) { - // 更新会员等级 - cuMember.setPkSettleGrade(newGrade.getPkId()); - } + // 删除会员区域 + iCuMemberRetailRegionService.update(Wrappers.lambdaUpdate() + .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember()) + .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue()) + .set(CuMemberRetailRegion::getModifiedTime, currentDateTime) + ); } // 更新会员标记,如果是则更新会员信息 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java index eff4b707..0cd6786c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java @@ -556,7 +556,7 @@ public class ApiOrderController extends BaseController { } /** - * 自助撤单w + * 自助撤单 **/ @PostMapping("/self-revoke-order") public AjaxResult selfRevokeOrder(@RequestBody MyOrderVO myOrderVO, HttpServletRequest request) { From c902b720c205a4ed94bcb0f86306de900243c48a Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 14 Jul 2025 11:08:29 +0800 Subject: [PATCH 33/89] =?UTF-8?q?##=20Opt=20-=20=E6=97=A0=E9=9C=80?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/retail/member/CuMemberRetailRegionMapper.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index c2d2e2bf..86318fa7 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -220,7 +220,6 @@ FROM cu_member_retail_region WHERE del_flag = 0 - AND PK_MEMBER != #{userId} GROUP BY city From 7c267b24442b9a5af26c1e6b572e6e0249471146 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 14 Jul 2025 11:52:58 +0800 Subject: [PATCH 34/89] =?UTF-8?q?##=20Feat=20-=20=E4=BA=AC=E4=B8=9C?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pom.xml b/pom.xml index 2da6fb6b..e6cae5ad 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,7 @@ 2.3.0 3.0.19 4.40.33.ALL + 1.60 @@ -308,6 +309,17 @@ ${huifu-new.version} + + org.bouncycastle + bcprov-jdk15on + ${bouncycastle.version} + + + org.bouncycastle + bcpkix-jdk15on + ${bouncycastle.version} + + From 712fda3fdf80365d69e128386ef6655ccda68d6f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 14 Jul 2025 16:05:30 +0800 Subject: [PATCH 35/89] =?UTF-8?q?##=20=E5=A5=96=E9=87=91=E5=8F=91=E6=94=BE?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/mapper/CuMemberTradeMapper.java | 1 - .../impl/CuMemberTradeServiceImpl.java | 1 - .../manage/CuMemberSettleController.java | 79 ++++-- .../mapper/CuMemberSettlePeriodMapper.java | 10 +- .../service/ICuMemberSettlePeriodService.java | 10 + .../impl/CuMemberSettlePeriodServiceImpl.java | 5 + .../api/ApiCuMemberBonusController.java | 59 ++--- .../bonus/mapper/CuMemberBonusMapper.java | 8 + .../bonus/service/IBonusGrantService.java | 16 +- .../bonus/service/ICuMemberBonusService.java | 7 +- .../service/impl/BonusGrantServiceImpl.java | 233 +++++++++--------- .../impl/CuMemberBonusServiceImpl.java | 83 +------ .../bonus/vo/MemberBonusFirstPurchaseVO.java | 2 +- .../bonus/account/CuMemberTradeMapper.xml | 79 ------ .../achieve/CuMemberSettlePeriodMapper.xml | 14 ++ .../bonus/bonus/CuMemberBonusMapper.xml | 39 +++ .../core/constant/msg/BonusMsgConstants.java | 4 +- .../com/hzs/common/core/utils/DateUtils.java | 2 +- 18 files changed, 307 insertions(+), 345 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/mapper/CuMemberTradeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/mapper/CuMemberTradeMapper.java index b0af0d6f..d188b4c4 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/mapper/CuMemberTradeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/mapper/CuMemberTradeMapper.java @@ -25,5 +25,4 @@ public interface CuMemberTradeMapper extends BaseMapper { */ void batchInsertCuMemberTrade(@Param("cuMemberTradeList") List cuMemberTradeList); - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/service/impl/CuMemberTradeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/service/impl/CuMemberTradeServiceImpl.java index d19f2872..dca33ec1 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/service/impl/CuMemberTradeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/account/service/impl/CuMemberTradeServiceImpl.java @@ -19,7 +19,6 @@ public class CuMemberTradeServiceImpl extends ServiceImpl batchQueryCuMemberTradeSeq(Integer rowNum) { return baseMapper.batchQueryCuMemberTradeSeq(rowNum); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java index f0ae7401..a95c698e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java @@ -5,7 +5,6 @@ import com.hzs.bonus.achieve.param.MemberPeriodParam; import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService; import com.hzs.bonus.achieve.service.ICuMemberTreeService; import com.hzs.bonus.bonus.service.IBonusGrantService; -import com.hzs.bonus.bonus.service.IBonusSettleService; import com.hzs.bonus.bonus.service.ICuMemberBonusService; import com.hzs.bonus.bonus.vo.MemberSettlePeriodVO; import com.hzs.common.core.annotation.AccessPermissions; @@ -15,7 +14,6 @@ import com.hzs.common.core.enums.EOperationBusiness; import com.hzs.common.core.enums.EOperationMethod; import com.hzs.common.core.enums.EOperationModule; 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.core.web.page.TableDataInfo; @@ -37,8 +35,6 @@ public class CuMemberSettleController extends BaseController { @Autowired private ICuMemberBonusService iCuMemberBonusService; @Autowired - private IBonusSettleService iBonusSettleService; - @Autowired private ICuMemberTreeService iCuMemberTreeService; @Autowired private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @@ -75,7 +71,6 @@ public class CuMemberSettleController extends BaseController { @GetMapping("/settle-bonus") @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.INSERT) public AjaxResult settleBonus(String settleDate) { -// initTable(settleDate); Date startDate = DateUtils.parseStringToDate(settleDate); if (DateUtils.compareDateAfter(DateUtils.beforeDate(6, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) { return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.SETTLE_VALIDATE_DATE)); @@ -85,9 +80,7 @@ public class CuMemberSettleController extends BaseController { } /** - * 公布奖金 - * - * @return AjaxResult + * 公布奖金 -- 页面使用 */ @GetMapping("/publish-bonus") @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.PUBLISH) @@ -101,9 +94,7 @@ public class CuMemberSettleController extends BaseController { } /** - * 不公布奖金 - * - * @return AjaxResult + * 不公布奖金 -- 页面使用 */ @GetMapping("/no-publish-bonus") @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.NO_PUBLISH) @@ -117,25 +108,44 @@ public class CuMemberSettleController extends BaseController { } /** - * 发放奖金 - * - * @return AjaxResult + * 发放奖金 -- 页面使用 */ @GetMapping("/grant-bonus") @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.GRANT) public AjaxResult grantBonus(String settleDate) { Date startDate = DateUtils.parseStringToDate(settleDate); if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) { + // 只能发放7天以外的奖金! return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.GRANT_VALIDATE_DATE)); } - iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), settleDate); + + // 发放开始时间 + String startSettleDate = null; + // 发放结束时间 + String endSettleDate = null; + // 发放日期的天 + int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, startDate)); + // 发放最后一天 + int monthLast = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, DateUtils.currentMonthLastDate(startDate))); + if (dateDD == 15) { + // 15号,发 上月24号 到 本月7号 + startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(startDate, -1), 24)); + endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 24)); + } else if (dateDD == monthLast) { + // 最后一天,发 8号 到 23号 + startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 8)); + endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 23)); + } + if (null == startSettleDate) { + return AjaxResult.error("每月15号和每月最后一天才能发放"); + } + + iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate, endSettleDate); return AjaxResult.success(); } /** - * 发放奖金 - * - * @return AjaxResult + * 发放奖金,指定期数 -- 页面未使用 */ @GetMapping("/grant-temp-bonus") public AjaxResult grantTempBonus(Integer pkCountry, String settleDate) { @@ -144,9 +154,7 @@ public class CuMemberSettleController extends BaseController { } /** - * 发放奖金 - * - * @return AjaxResult + * 发放奖金,定时任务 -- 页面未使用 */ @GetMapping("/grant-bonus_all") public AjaxResult grantBonusAll() { @@ -155,18 +163,39 @@ public class CuMemberSettleController extends BaseController { } /** - * 奖金提现 - * - * @return AjaxResult + * 奖金提现 -- 页面使用 */ @GetMapping("/withdrawal-bonus") @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.WITHDRAWAL) public AjaxResult withdrawalBonus(String settleDate) { Date startDate = DateUtils.parseStringToDate(settleDate); if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) { + // 只能提现7天以外的奖金! return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.WITHDRAW_VALIDATE_DATE)); } - iBonusGrantService.withdrawalBonusByPeriod(SecurityUtils.getPkCountry(), settleDate); + + // 发放开始时间 + String startSettleDate = null; + // 发放结束时间 + String endSettleDate = null; + // 发放日期的天 + int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, startDate)); + // 发放最后一天 + int monthLast = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, DateUtils.currentMonthLastDate(startDate))); + if (dateDD == 15) { + // 15号,发 上月24号 到 本月7号 + startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(startDate, -1), 24)); + endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 24)); + } else if (dateDD == monthLast) { + // 最后一天,发 8号 到 23号 + startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 8)); + endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 23)); + } + if (null == startSettleDate) { + return AjaxResult.error("每月15号和每月最后一天才能发放"); + } + + iBonusGrantService.withdrawalBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate, endSettleDate); return AjaxResult.success(); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodMapper.java index a8a53753..37ce3df0 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodMapper.java @@ -17,7 +17,15 @@ public interface CuMemberSettlePeriodMapper extends BaseMapper listMemberSettlePeriod(@Param("pkCountry") Integer pkCountry, + @Param("settleDate") Date settleDate, + @Param("endSettleDate") Date endSettleDate); /** * 查询期间 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberSettlePeriodService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberSettlePeriodService.java index c8e67462..30197dcc 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberSettlePeriodService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberSettlePeriodService.java @@ -29,6 +29,16 @@ public interface ICuMemberSettlePeriodService extends IService listCuMemberSettlePeriod(Integer pkCountry, Date date, Date endDate); + /** * 根据国家查询奖金期数返回到前台 */ diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java index 876efb8e..96a6a6d0 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java @@ -204,6 +204,11 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl listCuMemberSettlePeriod(Integer pkCountry, Date date, Date endDate) { + return baseMapper.listMemberSettlePeriod(pkCountry, date, endDate); + } + private CuMemberSettlePeriod getCuMemberSettlePeriod(String date) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(CuMemberSettlePeriod::getSettleDate, DateUtils.parseStringToDate(date)); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java index 2ade8ae3..361eddf4 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java @@ -5,8 +5,6 @@ import cn.hutool.core.collection.CollectionUtil; import com.hzs.bonus.bonus.param.BonusParam; import com.hzs.bonus.bonus.service.ICuMemberBonusService; import com.hzs.bonus.bonus.vo.*; -import com.hzs.common.core.enums.EGrantStatus; -import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.page.TableDataInfo; @@ -34,34 +32,6 @@ public class ApiCuMemberBonusController extends BaseController { @Autowired private ICuMemberBonusService iCuMemberBonusService; - /** - * 新零售实时奖金:查询会员实时奖金,当日的奖金 - */ - @PostMapping("/query-current-bonus") - public TableDataInfo listCurrentBonus(@RequestBody BonusParam bonusParam) { - bonusParam.setPkCountry(SecurityUtils.getPkCountry()); - bonusParam.setPkMember(SecurityUtils.getUserId()); - bonusParam.setStartDate(DateUtils.currentDate()); - bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate())); - bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue()); - - List cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam); - List memberBonusVOList = new ArrayList<>(); - cuMemberBonusList.forEach(cuMemberBonus -> { - if (ComputeUtil.compareValue(cuMemberBonus.getRealIncomeTotal())) { - MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class, "settleDate"); - memberBonusVO.setServiceSpend(BigDecimal.ZERO); - memberBonusVO.setSettleDate(DateUtils.currentDate()); - BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(), - cuMemberBonus.getRetailAreaIncome()), - cuMemberBonus.getRetailRealSubtotal()); - memberBonusVO.setBackPoints(serviceSpend); - memberBonusVOList.add(memberBonusVO); - } - }); - return getDataTable(memberBonusVOList); - } - /** * 新零售实时奖金:查询会员奖金列表 */ @@ -69,7 +39,18 @@ public class ApiCuMemberBonusController extends BaseController { public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) { setBonusParam(bonusParam); - List cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam); + // 当前日期的天 + int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, bonusParam.getEndDate())); + if (dateDD < 15) { + // 今天日期小于15号,查询上月23号之前的 + bonusParam.setEndDate(DateUtils.setDays(DateUtils.addMonths(bonusParam.getEndDate(), -1), 23)); + } else { + // 今天日期大于等于15号,查询本月7号之前的 + bonusParam.setEndDate(DateUtils.setDays(bonusParam.getEndDate(), 7)); + } + + // 新查询奖金明细 + List cuMemberBonusList = iCuMemberBonusService.listMemberBonus(bonusParam); List firstPurchaseVOList = new ArrayList<>(); cuMemberBonusList.forEach(cuMemberBonus -> { @@ -85,17 +66,15 @@ public class ApiCuMemberBonusController extends BaseController { */ @PostMapping("/query-bonus-total") public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) { - bonusParam.setPkCountry(SecurityUtils.getPkCountry()); - bonusParam.setPkMember(SecurityUtils.getUserId()); - bonusParam.setEndDate(DateUtils.currentDate()); - bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate())); + setBonusParam(bonusParam); + + // 新查询奖金明细 + List cuMemberBonusList = iCuMemberBonusService.listMemberBonus(bonusParam); - List cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam); MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO(); if (CollectionUtil.isEmpty(cuMemberBonusList)) { memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO); } else { -// memberRealIncomeVO.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusList.get(0).getRealIncomeTotal(), cuMemberBonusList.get(0).getBackPoints())); memberRealIncomeVO.setRealIncomeTotal(cuMemberBonusList.get(0).getRealIncomeTotal()); } return getDataTable(Collections.singletonList(memberRealIncomeVO)); @@ -116,7 +95,8 @@ public class ApiCuMemberBonusController extends BaseController { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); bonusParam.setPkMember(SecurityUtils.getUserId()); - Date startDate = DateUtils.beforeDate(15, ChronoUnit.DAYS, DateUtils.currentDate()); + // 默认查询90天之内的 + Date startDate = DateUtils.beforeDate(60, ChronoUnit.DAYS, DateUtils.currentDate()); if (bonusParam.getStartDate() == null) { bonusParam.setStartDate(startDate); } else if (DateUtils.compareDateBefore(bonusParam.getStartDate(), startDate)) { @@ -136,8 +116,7 @@ public class ApiCuMemberBonusController extends BaseController { public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) { setBonusParam(bonusParam); startPage(); - TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam); - return tableDataInfo; + return iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam); } } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java index eb1b53c5..e0dd7f21 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java @@ -27,6 +27,14 @@ public interface CuMemberBonusMapper extends BaseMapper { */ List queryMemberBonusByCondition(BonusParam bonusParam); + /** + * 查询会员奖金明细 + * + * @param bonusParam + * @return + */ + List listMemberBonus(BonusParam bonusParam); + /** * 根据查询条件查询会员奖金 * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java index bc4e5ad2..4ddeb100 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java @@ -10,6 +10,9 @@ public interface IBonusGrantService { */ void publishBonusByPeriodEveryDay(); + /** + * 每天公放奖金,定时任务 + */ void grantWithdrawBonusByPeriodEveryDay(); /** @@ -22,10 +25,17 @@ public interface IBonusGrantService { /** * 每天发放奖金 * - * @param settleDate 日期 + * @param settleDate 发放开始日期 + * @param endSettleDate 发放结束日期 */ - Boolean grantBonusByPeriod(Integer pkCountry, String settleDate); + Boolean grantBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate); + /** + * 指定期数发放奖金 + * + * @param pkCountry + * @param settleDate + */ void grantBonusByTempPeriod(Integer pkCountry, String settleDate); /** @@ -33,6 +43,6 @@ public interface IBonusGrantService { * * @param settleDate 日期 */ - void withdrawalBonusByPeriod(Integer pkCountry, String settleDate); + void withdrawalBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java index 1bb5a4d2..bfba25ca 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java @@ -30,11 +30,12 @@ public interface ICuMemberBonusService extends IService { List queryMemberBonusVoByCondition(BonusParam bonusParam); /** - * 根据查询条件查询会员秒接奖金 + * 查询会员奖金明细 * - * @param bonusParam 查询条件 + * @param bonusParam + * @return */ - List queryMemberSecondBonusVoByCondition(BonusParam bonusParam); + List listMemberBonus(BonusParam bonusParam); /** * 根据查询条件查询会员奖金 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java index 2b9ca498..a615ba52 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java @@ -28,7 +28,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.time.DayOfWeek; import java.time.temporal.ChronoUnit; import java.util.*; @@ -47,13 +46,13 @@ public class BonusGrantServiceImpl implements IBonusGrantService { @Autowired private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @Autowired - private MemberToolsHandler memberToolsHandler; - @Autowired private ICuMemberTradeService iCuMemberTradeService; @Autowired private ICuMemberTradeDetailService iCuMemberTradeDetailService; @Autowired private ICuMemberAccountService iCuMemberAccountService; + @Autowired + private MemberToolsHandler memberToolsHandler; @DubboReference ICountryServiceApi iCountryServiceApi; @@ -82,23 +81,41 @@ public class BonusGrantServiceImpl implements IBonusGrantService { @Override @Transactional(rollbackFor = Exception.class) public void grantWithdrawBonusByPeriodEveryDay() { + // 会员只15、30号发: + // 24-7 : 15号发 + // 8-23 : 30号发 (每月最后一天) + + // 当前日期 + Date nowDate = DateUtils.currentDate(); + // 当前日期的天 + int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, nowDate)); + // 当月最后一天 + int monthLast = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, DateUtils.currentMonthLastDate(nowDate))); + // 发放开始时间 + String settleDate = null; + // 发放结束时间 + String endSettleDate = null; + Map integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData(); if (integerBdCountryMap.size() > 0) { for (Integer pkCountry : integerBdCountryMap.keySet()) { - // 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现 - Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()); - String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay); - grantBonusByPeriod(pkCountry, settleDate); - // 设置奖金可以提现 - withdrawalBonusByPeriod(pkCountry, settleDate); + if (dateDD == 15) { + // 15号,发 上月24号 到 本月7号 + settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(nowDate, -1), 24)); + endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 24)); + } else if (dateDD == monthLast) { + // 当月最后一天,发 本月8号 到 本月23号 + settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 8)); + endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 23)); + } - // 周奖发放上周的奖金 -// CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); -// Date withdrawDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, grantDay); -// if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle() || -// !CountryConstants.CHINA_COUNTRY.equals(pkCountry)) { -// withdrawDay = grantDay; -// } + if (null != settleDate) { + // 开始结束时间都有值,才进行发放 + // 发放奖金 + grantBonusByPeriod(pkCountry, settleDate, endSettleDate); + // 奖金可以提现 + withdrawalBonusByPeriod(pkCountry, settleDate, endSettleDate); + } } } } @@ -135,81 +152,76 @@ public class BonusGrantServiceImpl implements IBonusGrantService { return cuMemberSettlePeriodByDate; } + private List getCuMemberSettlePeriod(Integer pkCountry, String settleDate, String endSettleDate) { + Date nowDate = DateUtils.currentDateTime(); + List cuMemberSettlePeriodList = iCuMemberSettlePeriodService.listCuMemberSettlePeriod(pkCountry, DateUtils.parseStringToDate(settleDate), DateUtils.parseStringToDate(endSettleDate)); + for (CuMemberSettlePeriodExt cuMemberSettlePeriodExt : cuMemberSettlePeriodList) { + cuMemberSettlePeriodExt.setPkModified(MagicNumberConstants.PK_ADMIN); + cuMemberSettlePeriodExt.setModifiedTime(nowDate); + } + return cuMemberSettlePeriodList; + } + @Override @Transactional(rollbackFor = Exception.class) - public Boolean grantBonusByPeriod(Integer pkCountry, String settleDate) { - // 奖金发放 - CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); - if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsGrant()) { - return Boolean.FALSE; - } - // 验证是否周奖,周奖只能周三发放 - if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle()) { - if (DateUtils.getRecentlyDay(DateUtils.parseStringToDate(settleDate)) != DayOfWeek.WEDNESDAY.getValue()) { - return Boolean.FALSE; - } - } else { - Date startDate = DateUtils.parseStringToDate(settleDate); - if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) { - return Boolean.FALSE; - } - } - Map bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData(); - Date currentDateTime = DateUtils.currentDateTime(); + public Boolean grantBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate) { + // 奖金发放范围期间 + List cuMemberSettlePeriodList = getCuMemberSettlePeriod(pkCountry, settleDate, endSettleDate); - // 查询奖金表,查询未发放的奖金明细 - List cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); - if (cuMemberBonusList.size() > 0) { - // 新增交易流水 - List cuMemberTradeList = new ArrayList<>(); - cuMemberBonusList.forEach(cuMemberBonus -> { - CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData(); - // 奖金币(首购+复购+云代+海粉+嗨粉+店铺) - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate); - // 重销币(商城重消+平台服务费) -// BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend()); - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate); - // 复购券 - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate); - // 环球积分 -// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.GLOBAL_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getGlobalPoints(), currencyDTO.getOutExchangeRate()), settleDate); - // 车奖积分 -// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate); - }); - List seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); - // 新增流水明细,记录奖金明细的发放状态、消费明细 - List cuMemberTradeDetailList = new ArrayList<>(); - Map bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData(); - for (int i = 0; i < cuMemberTradeList.size(); i++) { - CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); - cuMemberTrade.setPkId(seqList.get(i)); - if (bdAccountMap.containsKey(cuMemberTrade.getPkAccount()) && EAccount.BONUS.getValue() == bdAccountMap.get(cuMemberTrade.getPkAccount()).getFieldValue()) { - // 验证有奖金币的记录发放记录 - CuMemberTradeDetail cuMemberTradeDetail = CuMemberTradeDetail.builder() - .period(cuMemberSettlePeriod.getPkId()) - .pkMemberTrade(cuMemberTrade.getPkId()) - .grantMoney(cuMemberTrade.getTradeAmount()) - .consumeMoney(cuMemberTrade.getTradeAmount()) - .build(); - cuMemberTradeDetail.setPkCountry(cuMemberTrade.getPkCountry()); - cuMemberTradeDetail.setPkCreator(cuMemberTrade.getPkCreator()); - cuMemberTradeDetail.setCreationTime(cuMemberTrade.getCreationTime()); - cuMemberTradeDetailList.add(cuMemberTradeDetail); - } + Date currentDateTime = DateUtils.currentDateTime(); + Map bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData(); + + for (CuMemberSettlePeriodExt cuMemberSettlePeriod : cuMemberSettlePeriodList) { + if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsGrant()) { + // 已经发放,则跳过 + continue; } - // 批量保存交易流水,交易流水明细 - iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); - iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); - // 批量更新会员账户,更新余额 - iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); - // 更新奖金表发放状态 - iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(), - cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + String settleDateStr = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, cuMemberSettlePeriod.getSettleDate()); + + // 查询奖金表,查询未发放的奖金明细 + List cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + if (cuMemberBonusList.size() > 0) { + // 新增交易流水 + List cuMemberTradeList = new ArrayList<>(); + cuMemberBonusList.forEach(cuMemberBonus -> { + // 奖金币(首购+复购+云代+海粉+嗨粉+店铺) + packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, cuMemberBonus.getRealIncomeTotal(), settleDateStr); + }); + List seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); + // 新增流水明细,记录奖金明细的发放状态、消费明细 + List cuMemberTradeDetailList = new ArrayList<>(); + Map bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData(); + for (int i = 0; i < cuMemberTradeList.size(); i++) { + CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); + cuMemberTrade.setPkId(seqList.get(i)); + if (bdAccountMap.containsKey(cuMemberTrade.getPkAccount()) && EAccount.BONUS.getValue() == bdAccountMap.get(cuMemberTrade.getPkAccount()).getFieldValue()) { + // 验证有奖金币的记录发放记录 + CuMemberTradeDetail cuMemberTradeDetail = CuMemberTradeDetail.builder() + .period(cuMemberSettlePeriod.getPkId()) + .pkMemberTrade(cuMemberTrade.getPkId()) + .grantMoney(cuMemberTrade.getTradeAmount()) + .consumeMoney(cuMemberTrade.getTradeAmount()) + .build(); + cuMemberTradeDetail.setPkCountry(cuMemberTrade.getPkCountry()); + cuMemberTradeDetail.setPkCreator(cuMemberTrade.getPkCreator()); + cuMemberTradeDetail.setCreationTime(cuMemberTrade.getCreationTime()); + cuMemberTradeDetailList.add(cuMemberTradeDetail); + } + } + // 批量保存交易流水,交易流水明细 + iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); + iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); + // 批量更新会员账户,更新余额 + iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + // 更新奖金表发放状态 + iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(), + cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + } + // 更新期间表状态 + cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue()); + cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime()); + iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); } - // 更新期间表状态 - cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue()); - cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime()); - iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); return Boolean.TRUE; } @@ -219,20 +231,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService { CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); // 查询奖金表,查询未发放的奖金明细 List cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + Map bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData(); Date currentDateTime = DateUtils.currentDateTime(); + CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(pkCountry).getData(); if (cuMemberBonusList.size() > 0) { // 新增交易流水 List cuMemberTradeList = new ArrayList<>(); cuMemberBonusList.forEach(cuMemberBonus -> { - CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData(); // 奖金币(首购+复购+云代+海粉+嗨粉+店铺) packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate); - // 重销币(商城重消+平台服务费) -// BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend()); - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate); - // 复购券 - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate); }); List seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); // 新增流水明细,记录奖金明细的发放状态、消费明细 @@ -266,8 +274,8 @@ public class BonusGrantServiceImpl implements IBonusGrantService { } } - private void packAccountTrade(List cuMemberTradeList, Map bdAccountMap, int accountValue, Date currentDateTime, CuMemberBonus cuMemberBonus, BigDecimal grantValue, - String settleDate) { + private void packAccountTrade(List cuMemberTradeList, Map bdAccountMap, int accountValue, Date currentDateTime, + CuMemberBonus cuMemberBonus, BigDecimal grantValue, String settleDate) { if (ComputeUtil.compareValue(grantValue) && bdAccountMap.containsKey(accountValue)) { cuMemberTradeList.add(packageMemberTrade(cuMemberBonus, bdAccountMap.get(accountValue).getPkId(), grantValue, currentDateTime, settleDate)); } @@ -275,28 +283,27 @@ public class BonusGrantServiceImpl implements IBonusGrantService { @Override @Transactional(rollbackFor = Exception.class) - public void withdrawalBonusByPeriod(Integer pkCountry, String settleDate) { + public void withdrawalBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate) { // 奖金可提现 - CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); - if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsWithdrawal()) { - return; - } - // 验证是否周奖,周奖只能周四提现 - if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle()) { - if (DateUtils.getRecentlyDay(DateUtils.parseStringToDate(settleDate)) != DayOfWeek.THURSDAY.getValue()) { - return; + List cuMemberSettlePeriodList = getCuMemberSettlePeriod(pkCountry, settleDate, endSettleDate); + + for (CuMemberSettlePeriodExt cuMemberSettlePeriod : cuMemberSettlePeriodList) { + if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsWithdrawal()) { + // 已经提现,则跳过 + continue; } + // 批量更新会员账户,更新余额(cu_member_account) + iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); + // 更新交易明细表状态(cu_member_trade_detail) + iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); + // 更新奖金表发放状态(cu_member_bonus) + iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + // 更新期间表状态(cu_member_settle_period_detail) + cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue()); + cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime()); + iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); } - // 批量更新会员账户,更新余额 - iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); - // 更新交易明细表状态 cu_member_trade_detail - iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); - // 更新奖金表发放状态 - iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); - // 更新期间表状态 - cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue()); - cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime()); - iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); + } /** diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index fb70ef85..b2619511 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -14,7 +14,6 @@ import com.hzs.bonus.bonus.service.ICuMemberBonusService; import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO; import com.hzs.bonus.bonus.vo.MemberBonusDetailVO; import com.hzs.common.core.constant.*; -import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.DateUtils; @@ -70,6 +69,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl listMemberBonus(BonusParam bonusParam) { + return baseMapper.listMemberBonus(bonusParam); + } + private List handleMemberBonusPurchase(List cuMemberBonusExtList, BonusParam bonusParam) { List memberBonusExtList = new ArrayList<>(); Map cuMemberBonusExtMap = new HashMap<>(); @@ -86,36 +90,10 @@ public class CuMemberBonusServiceImpl extends ServiceImpl queryMemberSecondBonusVoByCondition(BonusParam bonusParam) { - return getCuMemberBonusExtList(bonusParam); - } - private List getCuMemberBonusExtList(BonusParam bonusParam) { if (bonusParam.getGrantStatus() == null) { bonusParam.setGrantStatus(EGrantStatus.PUBLISHED.getValue()); } - List cuMemberBonusExtList = baseMapper.queryMemberBonusByCondition(bonusParam); - R currency = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry()); - // 汇率比例 - BigDecimal inExchangeRate = currency.getData().getInExchangeRate(); - for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) { - cuMemberBonusExt.setDirectIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getDirectIncome(), inExchangeRate)); - cuMemberBonusExt.setExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getExpandIncome(), inExchangeRate)); - cuMemberBonusExt.setCoachIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getCoachIncome(), inExchangeRate)); - cuMemberBonusExt.setShareIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getShareIncome(), inExchangeRate)); - cuMemberBonusExt.setServiceIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getServiceIncome(), inExchangeRate)); - cuMemberBonusExt.setBackPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getBackPoints(), inExchangeRate)); - cuMemberBonusExt.setServiceSpend(ComputeUtil.computeMultiply(cuMemberBonusExt.getServiceSpend(), inExchangeRate)); - cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getPurRealSubtotal(), inExchangeRate)); - cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurPushIncome(), inExchangeRate)); - cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRangeIncome(), inExchangeRate)); - cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurExpandIncome(), inExchangeRate)); - cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRealSubtotal(), inExchangeRate)); - cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCoupon(), inExchangeRate)); - cuMemberBonusExt.setRepurCouponShare(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCouponShare(), inExchangeRate)); - cuMemberBonusExt.setRepurCouponSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCouponSubtotal(), inExchangeRate)); - cuMemberBonusExt.setGlobalPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getGlobalPoints(), inExchangeRate)); - cuMemberBonusExt.setCarAwardPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getCarAwardPoints(), inExchangeRate)); - cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRealIncomeTotal(), inExchangeRate)); - cuMemberBonusExt.setStoreIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getStoreIncome(), inExchangeRate)); - cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRangeIncome(), inExchangeRate)); - cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailSameLevelIncome(), inExchangeRate)); - cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailAreaIncome(), inExchangeRate)); - cuMemberBonusExt.setRetailBenefitRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailBenefitRangeIncome(), inExchangeRate)); - cuMemberBonusExt.setRetailBenefitAvgIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailBenefitAvgIncome(), inExchangeRate)); - cuMemberBonusExt.setRetailBenefitIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailBenefitIncome(), inExchangeRate)); - cuMemberBonusExt.setRetailRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRealSubtotal(), inExchangeRate)); - } - return cuMemberBonusExtList; + return baseMapper.queryMemberBonusByCondition(bonusParam); } @Override @@ -424,15 +365,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("pk_member,pk_rate,pk_country,sum(direct_income) direct_income,sum(expand_income) expand_income,sum(expand_no_capping) expand_no_capping," + - "sum(expand_capping) expand_capping,sum(coach_income) coach_income,sum(share_income) share_income," + - "sum(service_income) service_income,sum(back_points) back_points,sum(service_spend) service_spend," + - "sum(pur_real_subtotal) pur_real_subtotal,sum(repur_range_income) repur_range_income,sum(repur_expand_income) repur_expand_income," + - "sum(repur_real_subtotal) repur_real_subtotal,sum(cloud_direct_income) cloud_direct_income,sum(cloud_pur_income) cloud_pur_income," + - "sum(cloud_repur_income) cloud_repur_income,sum(cloud_real_subtotal) cloud_real_subtotal,sum(repur_coupon) repur_coupon," + - "sum(REPUR_COUPON_SHARE) REPUR_COUPON_SHARE,sum(REPUR_COUPON_SUBTOTAL) REPUR_COUPON_SUBTOTAL," + - "sum(global_points) global_points,sum(car_award_points) car_award_points,sum(hi_fun_income) hi_fun_income," + - "sum(real_income_total) real_income_total"); + queryWrapper.select("pk_member,pk_rate,pk_country,sum(real_income_total) real_income_total"); queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry); queryWrapper.eq(MemberBonusFieldConstants.GRANT_STATUS, grantStatus); queryWrapper.eq(MemberBonusFieldConstants.INCOME_STATUS, ENormalDisable.NORMAL.getValue()); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java index 1d2183ed..17481b7a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java @@ -73,7 +73,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO { // private BigDecimal repurRealSubtotal; /** - * 新零售直推收益 + * 直推级差收益 */ @BigDecimalFormat private BigDecimal retailRangeIncome; diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/account/CuMemberTradeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/account/CuMemberTradeMapper.xml index 5f66ad9e..3895edff 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/account/CuMemberTradeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/account/CuMemberTradeMapper.xml @@ -2,85 +2,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - select t.*, m.member_code as memberCode, m.member_name as memberName - from cu_member_trade t - left join cu_member m - on t.pk_member = m.pk_id - - - - - t.del_flag='0' - and t.pk_id in - - #{item} - - - - - - - t.del_flag='0' - - and m.member_name like #{memberName} || '%' - - - and m.member_code like #{memberCode} || '%' - - - and t.TRADE_AMOUNT = #{tradeAmount} - - - and m.REMARKS like #{remarks} || '%' - - - and t.PK_ACCOUNT = #{pkAccount} - - - and t.TRADE_TYPE = #{tradeType} - - - and t.SOURCE_CODE = #{sourceCode} - - - and t.pk_country = #{pkCountry} - - - and t.TRADE_CLASSIFY = #{tradeClassify} - - - and t.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd') - - - and t.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss') - - - - merge into cu_member_trade a using ( diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml index f3cbc3aa..66e58ff4 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml @@ -51,6 +51,20 @@ and cp.settle_date = #{settleDate, jdbcType=DATE} + + + + + + + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/CacheConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/CacheConstants.java index ffd9fd59..d0721ef2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/CacheConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/CacheConstants.java @@ -321,6 +321,11 @@ public class CacheConstants { */ public static final String RETAIL_TEMP_OTHER_PARAM = CACHE_PREFIX + "retail:temp_other:param:"; + /** + * 在线支付回调上锁 + */ + public final static String ONLINE_PAY_KEY = CACHE_PREFIX + "online:payment:"; + /** * 手机每天获取短信缓存 -- Hash(sms:count: 年月日, 登录名) */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java index b48ad574..9664e332 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java @@ -27,6 +27,12 @@ public class SysConstants { */ public static final String PAY_PASSWORD = "222222"; + /** + * 特殊处理编号(对外开放使用,主要用于支付接入审核) + */ + public static final String SPECIAL_CODE = "BD68880628"; + + /** * 开放使用会员编号(用于支付登录查看数据) */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java index 092f3405..2a8848a2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java @@ -121,6 +121,15 @@ public enum EOrderType { resultList.add(EOrderType.REPURCHASE_ORDER); return resultList; } - - + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (EOrderType enums : EOrderType.values()) { + if (enums.getValue() == value) { + return enums.getLabel(); + } + } + return ""; + } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayChannel.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayChannel.java index d10056e1..18121421 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayChannel.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayChannel.java @@ -13,6 +13,11 @@ import lombok.Getter; @Getter public enum EPayChannel { + /** + * 通联 + */ + ALLIN(3, "通联", 0, EnumsPrefixConstants.PAY_CHANNEL + "3"), + /** * 京东 */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayType.java index d427c241..6e508663 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPayType.java @@ -27,6 +27,12 @@ public enum EPayType { * 银行卡 */ BANK_CARD(3, "银行卡", 0, EnumsPrefixConstants.PAY_TYPE + "3"), + // , 5=(京东)小金库, 6=(京东)白条, 7=(京东)超级白条, 8=(京东)钱包余额), 9=(京东)云闪付 + MINI_TREASURY(5, "小金库", 0, EnumsPrefixConstants.PAY_TYPE + "5"), + CREDIT_LINE(6, "白条", 0, EnumsPrefixConstants.PAY_TYPE + "6"), + SUPER_CREDIT_LINE(7, "超级白条", 0, EnumsPrefixConstants.PAY_TYPE + "7"), + WALLET_BALANCE(8, "钱包余额", 0, EnumsPrefixConstants.PAY_TYPE + "8"), + CLOUD_PAY(9, "云闪付", 0, EnumsPrefixConstants.PAY_TYPE + "9"), ; diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePayment.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePayment.java index e44244d8..fc0fa83b 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePayment.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePayment.java @@ -15,9 +15,6 @@ import org.apache.ibatis.type.JdbcType; /** * 在线支付信息 - * - * @author hzs - * @since 2022-07-28 */ @Data @EqualsAndHashCode(callSuper = false) @@ -59,7 +56,7 @@ public class TOnlinePayment extends BaseEntity { private BigDecimal businessMoney; /** - * 支付渠道(5=宝付,6=汇付,8=新汇付) + * 支付渠道(0=杉德,1=支付宝,2=微信,3=通联,4=京东,5=宝付,6=汇付) */ @TableField("PAY_CHANNEL") private Integer payChannel; @@ -125,4 +122,21 @@ public class TOnlinePayment extends BaseEntity { @TableField("PAY_SOURCE") private Integer paySource; + /** + * 主账户金额 + */ + @TableField("MAIN_ACCOUNT_MONEY") + private BigDecimal mainAccountMoney; + + /** + * 子账户金额 + */ + @TableField("SUB_ACCOUNT_MONEY") + private BigDecimal subAccountMoney; + + /** + * 支付-前端回调页面的扩展参数 + */ + @TableField(exist = false) + private String extParam; } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePaymentSepAcc.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePaymentSepAcc.java new file mode 100644 index 00000000..f3af986e --- /dev/null +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePaymentSepAcc.java @@ -0,0 +1,75 @@ +package com.hzs.common.domain.third.pay; + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.hzs.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.util.List; + +/** + *

+ * 支付请求主表 + *

+ * + * @author bd + * @since 2025-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@TableName("T_ONLINE_PAYMENT_SEP_ACC") +@KeySequence("T_ONLINE_PAYMENT_SEP_ACC_SEQ") +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TOnlinePaymentSepAcc extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @TableId("PK_ID") + private Long pkId; + + /** + * 在线支付信息ID + */ + @TableField("PK_PAYMENT") + private Long pkPayment; + + /** + * 版本号 + */ + @TableField("VERSION") + private String version; + + /** + * 支付请求信息 + */ + @TableField("REQ_CONTENT") + private String reqContent; + + /** + * 分账请求信息 + */ + @TableField("REQ_CONTENT_SEP_ACC") + private String reqContentSepAcc; + + /** + * 支付响应信息 + */ + @TableField("RESP_CONTENT") + private String respContent; + + @TableField("TRADE_AMOUNT") + private BigDecimal tradeAmount; + + @TableField("OUT_TRADE_NO") + private String outTradeNo; + + @TableField(exist = false) + private List sepAccDList; +} diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePaymentSepAccD.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePaymentSepAccD.java new file mode 100644 index 00000000..266a26d5 --- /dev/null +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/TOnlinePaymentSepAccD.java @@ -0,0 +1,59 @@ +package com.hzs.common.domain.third.pay; + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.hzs.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + +/** + *

+ * 支付请求子表(分账) + *

+ * + * @author bd + * @since 2025-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@TableName("T_ONLINE_PAYMENT_SEP_ACC_D") +@KeySequence("T_ONLINE_PAYMENT_SEP_ACC_D_SEQ") +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TOnlinePaymentSepAccD extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @TableId("PK_ID") + private Long pkId; + + /** + * 支付请求主表ID + */ + @TableField("PK_SEP_ACC") + private Long pkSepAcc; + + /** + * 分账账号 + */ + @TableField("ACCOUNT") + private String account; + + /** + * 分账比例 + */ + @TableField("PROPORTION") + private BigDecimal proportion; + + @TableField("TRADE_AMOUNT") + private BigDecimal tradeAmount; + + @TableField("OUT_TRADE_NO") + private String outTradeNo; +} diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/ext/TOnlinePaymentExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/ext/TOnlinePaymentExt.java index 1a1a5523..d735cc0f 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/ext/TOnlinePaymentExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/third/pay/ext/TOnlinePaymentExt.java @@ -1,5 +1,7 @@ package com.hzs.common.domain.third.pay.ext; +import com.hzs.common.core.annotation.Transaction; +import com.hzs.common.core.constant.EnumsPrefixConstants; import com.hzs.common.domain.third.pay.TOnlinePayment; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,4 +34,8 @@ public class TOnlinePaymentExt extends TOnlinePayment { */ private String phone; + + private Integer orderType; + private String orderTypeVal; + } diff --git a/bd-third/src/main/java/com/hzs/third/mqcall/listener/PayRefundListener.java b/bd-third/src/main/java/com/hzs/third/mqcall/listener/PayRefundListener.java index 3592490c..825a30cc 100644 --- a/bd-third/src/main/java/com/hzs/third/mqcall/listener/PayRefundListener.java +++ b/bd-third/src/main/java/com/hzs/third/mqcall/listener/PayRefundListener.java @@ -148,7 +148,7 @@ public class PayRefundListener { switch (EPayChannel.getEnumByValue(tOnlinePayment.getPayChannel())) { case HUIFU: // 新汇付 - str = iRefundService.huifuRefundHandle(tOnlinePayment); +// str = iRefundService.huifuRefundHandle(tOnlinePayment); break; default: } diff --git a/bd-third/src/main/java/com/hzs/third/mqcall/listener/RefundOrderListener.java b/bd-third/src/main/java/com/hzs/third/mqcall/listener/RefundOrderListener.java new file mode 100644 index 00000000..fb78f68b --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/mqcall/listener/RefundOrderListener.java @@ -0,0 +1,191 @@ +package com.hzs.third.mqcall.listener; + +import com.hzs.common.core.constant.RabbitMqConstants; +import com.hzs.common.core.enums.ECallbackStatus; +import com.hzs.common.core.enums.EPayBusinessType; +import com.hzs.common.core.enums.EPayChannel; +import com.hzs.common.core.enums.EPayStatus; +import com.hzs.common.domain.sale.ext.SaOrderExt; +import com.hzs.common.domain.third.pay.TOnlinePayment; +import com.hzs.common.security.utils.SecurityUtils; +import com.hzs.sale.order.ISaOrderServiceApi; +import com.hzs.third.mq.dto.RefundOrderDTO; +import com.hzs.third.pay.dto.RefundDTO; +import com.hzs.third.pay.service.IPayService; +import com.hzs.third.pay.service.IRefundService; +import com.hzs.third.pay.service.ITOnlinePaymentService; +import com.rabbitmq.client.Channel; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.amqp.rabbit.annotation.*; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.messaging.Message; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * 订单退款处理监听 + */ +@Slf4j +@Component +public class RefundOrderListener { + + @Autowired + private ITOnlinePaymentService itOnlinePaymentService; + @Autowired + private IRefundService iRefundService; + @Autowired + private IPayService iPayService; + + @Autowired + private RabbitTemplate rabbitTemplate; + + @DubboReference + ISaOrderServiceApi iSaOrderServiceApi; + + /** + * 此监听只处理在线支付,支付成功,但是订单未成功的处理 + * + * @param message + * @param channel + * @throws Exception + */ + @RabbitListener(bindings = @QueueBinding( + exchange = @Exchange(value = RabbitMqConstants.REFUND_ORDER_EXCHANGE, type = "topic"), + value = @Queue(value = RabbitMqConstants.REFUND_ORDER_QUEUE, durable = "true", autoDelete = "false"), + key = RabbitMqConstants.REFUND_ORDER_KEY)) + @RabbitHandler + public void onMessage(Message message, Channel channel) throws Exception { + // 手动应答 + Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); + channel.basicAck(deliveryTag, false); + + RefundOrderDTO refundOrderDTO = message.getPayload(); + log.info("订单退款MQ处理. 参数:{}", refundOrderDTO); + + // 防止MQ推送比实际更新数据库快,此处停1.5秒再处理 + Thread.sleep(1500); + + // 重试次数 + int retryNum = null != refundOrderDTO.getRetryNum() ? refundOrderDTO.getRetryNum() : 0; + if (retryNum > 2) { + log.error("订单退款MQ处理. 订单退款已重试3次,仍未成功,不进行再次重试"); + return; + } + // 支付会员ID + Long pkMember = refundOrderDTO.getPkMember(); + // 支付订单编号 + String orderCode = refundOrderDTO.getOrderCode(); + // 支付业务类型 + Integer payBusinessType = refundOrderDTO.getPayBusinessType(); + + // 业务类型(默认为直销订单) + EPayBusinessType eBusinessType = EPayBusinessType.MEMBER_ORDER; + if (null != payBusinessType) { + // 传入支付业务类型不为空,则进行转换 + EPayBusinessType ePayBusinessType = EPayBusinessType.getEnumByValue(payBusinessType); + if (null != ePayBusinessType) { + eBusinessType = ePayBusinessType; + } + } + + // 校验在线支付信息是否可以进行退款 + TOnlinePayment tOnlinePayment = itOnlinePaymentService.queryByBusiness(eBusinessType.getValue(), orderCode, null); + if (null == tOnlinePayment) { + // 在线支付信息不存在 + log.error("订单退款MQ处理. 在线支付信息不存在"); + return; + } + if (EPayStatus.PAID.getValue() == tOnlinePayment.getPayStatus() + && ECallbackStatus.FAIL.getValue() == tOnlinePayment.getCallbackStatus()) { + // 已支付 并且 回调业务失败,可以进行退款 + + // 业务重试次数 + int businessRetryNum = null != refundOrderDTO.getBusinessRetryNum() ? refundOrderDTO.getBusinessRetryNum() : 0; + if (businessRetryNum > 2) { + log.error("订单退款MQ处理. 直销订单业务已重试3次,仍未成功,不进行再次重试。开始进行退款"); + + if (EPayBusinessType.MEMBER_ORDER.equals(eBusinessType)) { + // 直销订单 + // 业务处理重试三次都失败,则进行退款流程,进行退款处理 + SaOrderExt saOrderExt = iSaOrderServiceApi.queryOrderByCode(orderCode, pkMember).getData(); + if (null == saOrderExt) { + log.error("订单退款MQ处理. 直销订单不存在"); + return; + } + log.info("订单退款MQ处理,订单数据:{}", saOrderExt); + if (null != saOrderExt.getOrderStatus() && EPayStatus.PAID.getValue() == saOrderExt.getOrderStatus()) { + log.error("订单退款MQ处理. 直销订单已支付成功,不能进行退款"); + return; + } + } + + // 退款处理 + String str = this.handleRefund(tOnlinePayment, eBusinessType, orderCode, pkMember); + if (null == str) { + log.info("订单退款MQ处理. 申请三方支付退款成功"); + return; + } else { + log.error("订单退款MQ处理. 申请三方支付退款失败:{}", str); + } + + // 退款失败,重试次数+1,推送MQ + refundOrderDTO.setRetryNum(++retryNum); + rabbitTemplate.convertAndSend(RabbitMqConstants.REFUND_ORDER_EXCHANGE, RabbitMqConstants.REFUND_ORDER_KEY, refundOrderDTO); + return; + } + + // 直销订单,缓冲5秒后,进行重试 + Thread.sleep(5000); + + tOnlinePayment.setPkModified(SecurityUtils.getUserId()); + tOnlinePayment.setModifiedTime(new Date()); + // 业务处理重试 + if (iPayService.retryHandle(tOnlinePayment, false)) { + // 业务处理重试成功,直接结束 + return; + } + + // 业务处理重试失败,次数+1,继续推送MQ + refundOrderDTO.setBusinessRetryNum(++businessRetryNum); + rabbitTemplate.convertAndSend(RabbitMqConstants.REFUND_ORDER_EXCHANGE, RabbitMqConstants.REFUND_ORDER_KEY, refundOrderDTO); + return; + } + log.info("订单退款MQ处理. 订单未支付或业务已经处理成功"); + } + + /** + * 处理退款 + * + * @param tOnlinePayment 支付信息 + * @param eBusinessType 支付业务类型 + * @param orderCode 订单编号 + * @param pkMember 会员ID + * @return + */ + private String handleRefund(TOnlinePayment tOnlinePayment, EPayBusinessType eBusinessType, String orderCode, Long pkMember) { + String str = null; + + RefundDTO refundDTO = RefundDTO.builder() + .businessType(eBusinessType.getValue()) + .businessCode(orderCode) + .refundAmount(tOnlinePayment.getPayMoney()) + .userId(pkMember) + .pkCountry(tOnlinePayment.getPkCountry()) + .build(); + + // 订单存在并且没有支付成功,代表着钱收到了,但是单没有下成,所以需要进行退款 + switch (EPayChannel.getEnumByValue(tOnlinePayment.getPayChannel())) { + case JD: + // 京东 + str = iRefundService.jdRefundDivision(tOnlinePayment.getBusinessCode(), tOnlinePayment.getPkCreator()); + break; + default: + } + return str; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/config/JdPayBankProperties.java b/bd-third/src/main/java/com/hzs/third/pay/config/JdPayBankProperties.java new file mode 100644 index 00000000..e04fda30 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/config/JdPayBankProperties.java @@ -0,0 +1,27 @@ +package com.hzs.third.pay.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Setter +@Getter +@Component +@ConfigurationProperties(prefix = "jd.bank") // 绑定jd.pay前缀的配置 +public class JdPayBankProperties { + + private String merchantNo; + private String signKey; + private String priCertPwd; + private String priCert; + private String pubCert; + private String apiDomain; + private String pageBackUrl; + private String notifyUrl; + private String refundNotifyUrl; + + private List separateAccounts; +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/config/JdPayConfig.java b/bd-third/src/main/java/com/hzs/third/pay/config/JdPayConfig.java new file mode 100644 index 00000000..995a9f80 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/config/JdPayConfig.java @@ -0,0 +1,50 @@ +package com.hzs.third.pay.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * 京东支付配置 + */ +@Data +@Component +@ConfigurationProperties(prefix = "jdpay") +public class JdPayConfig { + + /** + * 商户编号 + */ + private String customerNum; + + /** + * 店铺编号 + */ + private String shopNum; + + /** + * 公钥 + */ + private String accessKey; + + /** + * 私钥 + */ + private String secretKey; + + /** + * 回调地址 + */ + private String callbackUrl; + + /** + * 代付回调地址 + */ + private String agentCallbackUrl; + + /** + * 退款回调地址 + */ + private String refundCallbackUrl; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/config/JdPaySeparateAccountConfig.java b/bd-third/src/main/java/com/hzs/third/pay/config/JdPaySeparateAccountConfig.java new file mode 100644 index 00000000..d4d05f2f --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/config/JdPaySeparateAccountConfig.java @@ -0,0 +1,14 @@ +package com.hzs.third.pay.config; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class JdPaySeparateAccountConfig implements Serializable { + private String account; + @JsonFormat(shape = JsonFormat.Shape.STRING) + private BigDecimal proportion; +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/config/JdPayWechatAlipayProperties.java b/bd-third/src/main/java/com/hzs/third/pay/config/JdPayWechatAlipayProperties.java new file mode 100644 index 00000000..94c814d3 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/config/JdPayWechatAlipayProperties.java @@ -0,0 +1,27 @@ +package com.hzs.third.pay.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Setter +@Getter +@Component +@ConfigurationProperties(prefix = "jd.wechat-alipay") // 绑定jd.pay前缀的配置 +public class JdPayWechatAlipayProperties { + + private String merchantNo; + private String signKey; + private String priCertPwd; + private String priCert; + private String pubCert; + private String apiDomain; + private String pageBackUrl; + private String notifyUrl; + private String refundNotifyUrl; + + private List separateAccounts; +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/constants/JdPayConstants.java b/bd-third/src/main/java/com/hzs/third/pay/constants/JdPayConstants.java new file mode 100644 index 00000000..e2223623 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/constants/JdPayConstants.java @@ -0,0 +1,154 @@ +package com.hzs.third.pay.constants; + +/** + * 京东支付常量类 + */ +public class JdPayConstants { + + /** + * 终端标记(暂用京东注册手机号) + */ + public static final String TERMINAL_ID = "18246334501"; + /** + * 用户注册账号(暂用京东注册手机号) + */ + public static final String USER_ACCOUNT = "18246334501"; + /** + * 应用名称 + */ + public static final String APP_NAME = "盛美源"; + + // TODO 上面3项考试动态化配置 + + /** + * 订单状态 - 交易处理中 + */ + public static final String ORDER_INT = "INT"; + /** + * 订单状态 - 成功 + */ + public static final String ORDER_SUCCESS = "SUCCESS"; + + /** + * 查询状态 - 交易处理中 + */ + public static final String QUERY_INIT = "INIT"; + /** + * 查询状态 - 成功 + */ + public static final String QUERY_SUCCESS = "SUCCESS"; + /** + * 查询状态 - 失败 + */ + public static final String QUERY_FAIL = "FAIL"; + + /** + * 处理成功 + */ + public static final String RESULT_SUCCESS = "success"; + + /** + * 处理成功业务响应码 + */ + public static final String RESULT_SUCCESS_CODE = "C000000"; + + /** + * 银行卡交易不支持错误编码 + */ + public static final String RESULT_FAIL_CODE_6 = "C000006"; + + /** + * 请求成功 + */ + public static final String SUCCESS = "true"; + + /** + * 返回成功 + */ + public static final String RETURN_SUCCESS = "200"; + /** + * 返回失败 + */ + public static final String RETURN_FAIL = "500"; + + /** + * 支付接口版本 + */ + public static final String PAY_VERSION = "V4.0"; + + /** + * 绑卡类型: 身份证 + */ + public static final String ID_CARD_TYPE = "IDCARD"; + + /** + * 快捷支付标准业务场景 + */ + public static final String FAST_TRADESCENE_QUICKPAY = "QUICKPAY"; + + /** + * 代付业务类型 + */ + public static final String AGENT_BUSINESS_TYPE = "DEFY"; + + /** + * 代付支付方式 + */ + public static final String AGENT_BANK_TYPE = "DEFY"; + + /** + * 支付地址 + */ + public static final String PAY_URL = "https://openapi.duolabao.com"; + + /** + * 扫码支付调用方法 + */ + public static final String METHOD_SCAN = "/v3/order/payurl/create"; + + /** + * 快捷支付绑卡方法 + */ + public static final String METHOD_BIND_CARD = "/api/applyBindCard"; + + /** + * 快捷支付绑卡确认方法 + */ + public static final String METHOD_CONFIRM_BIND = "/api/confirmBindCard"; + + /** + * 快捷支付解绑方法 + */ + public static final String METHOD_UNBIND = "/api/unBindCard"; + + /** + * 快捷支付预下单 + */ + public static final String METHOD_PRE_ORDER = "/api/applyQuickPayWithCheck"; + + /** + * 快捷支付确认订单 + */ + public static final String METHOD_CONFIRM_ORDER = "/api/confirmQuickPay"; + + /** + * 京东代付余额查询方法 + */ + public static final String METHOD_QUERY_BALANCE = "/api/queryBalance"; + + /** + * 京东代付调用方法 + */ + public static final String METHOD_AGENT = "/api/payWithCheck"; + + /** + * 京东查询订单路径 + */ + public static final String QUERY_ORDER = "/v3/order/query"; + + /** + * 京东退款路径 + */ + public static final String REFUND_ORDER = "/v3/order/refund/part"; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/constants/PayConfigConstants.java b/bd-third/src/main/java/com/hzs/third/pay/constants/PayConfigConstants.java index a29c4357..fc75d39f 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/constants/PayConfigConstants.java +++ b/bd-third/src/main/java/com/hzs/third/pay/constants/PayConfigConstants.java @@ -5,13 +5,19 @@ package com.hzs.third.pay.constants; */ public class PayConfigConstants { - // 新汇付PC微信扫码支付 + // 京东收银台(H5) + public static final String PAY_CONFIG_5 = "PAY:CONFIG:%s:5"; + // 京东收银台(PC) + public static final String PAY_CONFIG_6 = "PAY:CONFIG:%s:6"; + + // 通联微信 + public static final String PAY_CONFIG_32 = "PAY:CONFIG:%s:32"; + // 通联银行卡 + public static final String PAY_CONFIG_33 = "PAY:CONFIG:%s:33"; + + // 新汇付PC微信扫码 public static final String PAY_CONFIG_81 = "PAY:CONFIG:%s:81"; - // 新汇付PC支付宝扫码支付 + // 新汇付PC支付宝扫码 public static final String PAY_CONFIG_82 = "PAY:CONFIG:%s:82"; - // 新汇付H5微信支付 - public static final String PAY_CONFIG_83 = "PAY:CONFIG:%s:83"; - // 新汇付H5支付宝支付 - public static final String PAY_CONFIG_84 = "PAY:CONFIG:%s:84"; } diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/api/JdRefundController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/api/JdRefundController.java new file mode 100644 index 00000000..d634df91 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/api/JdRefundController.java @@ -0,0 +1,100 @@ +package com.hzs.third.pay.controller.api; + +import com.hzs.common.core.enums.EPayChannel; +import com.hzs.common.core.enums.EPayStatus; +import com.hzs.common.core.utils.StringUtils; +import com.hzs.common.core.web.domain.AjaxResult; +import com.hzs.common.domain.third.pay.TOnlinePayment; +import com.hzs.common.security.utils.SecurityUtils; +import com.hzs.third.pay.controller.base.PayBaseController; +import com.hzs.third.pay.dto.RefundDTO; +import com.hzs.third.pay.param.PayParam; +import com.hzs.third.pay.service.IRefundService; +import com.hzs.third.pay.service.ITOnlinePaymentService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Description: 京东退款控制器 + * @Author: jiang chao + * @Time: 2023/8/17 15:11 + * @Classname: JdRefundController + * @PackageName: com.hzs.third.pay.controller.api + */ +@Slf4j +@RestController +@RequestMapping("/jd-refund") +public class JdRefundController extends PayBaseController { + + @Autowired + private IRefundService iRefundService; + @Autowired + private ITOnlinePaymentService itOnlinePaymentService; + + @GetMapping("/test/{orderCode}") + public AjaxResult test(@PathVariable String orderCode) { + iRefundService.jdRefundDivision(orderCode, SecurityUtils.getUserId()); + return AjaxResult.success(); + } + + @GetMapping("/test2") + public AjaxResult test2() { + iRefundService.jdQueryEnterpriseWalletBalance(); + return AjaxResult.success(); + } + + /** + * 京东退款接口 + * + * @param param + * @return + */ + @PostMapping("/refund") + public AjaxResult refund(@RequestBody PayParam param) { + if (null == param.getBusinessType() || StringUtils.isEmpty(param.getBusinessCode())) { + // 缺少参数 + return AjaxResult.error("缺少参数"); + } + // 查询在线支付明细 + TOnlinePayment tOnlinePayment = itOnlinePaymentService.queryByBusiness(param.getBusinessType(), param.getBusinessCode(), SecurityUtils.getPkCountry()); + if (null == tOnlinePayment || EPayStatus.UNPAID.getValue() == tOnlinePayment.getPayStatus()) { + // 在线支付明细为空 或者 未支付成功,则不能进行退款 + return AjaxResult.error("订单不存在或未支付成功,不能进行退款"); + } + // 获取支付渠道 + EPayChannel ePayChannel = EPayChannel.getEnumByValue(tOnlinePayment.getPayChannel()); + if (null == ePayChannel) { + return AjaxResult.error("订单支付信息有误,不能进行退款"); + } + + try { + // 京东收银台退款处理 + String str = iRefundService.jdCashRefundHandle(RefundDTO.builder() + .businessType(param.getBusinessType()) + .businessCode(param.getBusinessCode()) + .refundAmount(tOnlinePayment.getPayMoney()) + .userId(SecurityUtils.getUserId()) + .pkCountry(SecurityUtils.getPkCountry()) + .build(), + tOnlinePayment); + // 京东银行卡退款处理 -- 旧 +// String str = iRefundService.jdRefundHandle(RefundDTO.builder() +// .businessType(param.getBusinessType()) +// .businessCode(param.getBusinessCode()) +// .refundAmount(tOnlinePayment.getPayMoney()) +// .userId(SecurityUtils.getUserId()) +// .pkCountry(SecurityUtils.getPkCountry()) +// .build(), +// tOnlinePayment); + if (null == str) { + return AjaxResult.success(); + } + return AjaxResult.error("退款失败:" + str); + } catch (Exception e) { + log.error("调用京东退款处理返回异常!", e); + return AjaxResult.error("退款异常,请刷新后重试"); + } + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java index 522792f2..7d6a3de8 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java @@ -1,10 +1,13 @@ package com.hzs.third.pay.controller.api; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.hzs.activity.base.IActivityServiceApi; import com.hzs.common.core.annotation.RepeatSubmitSimple; +import com.hzs.common.core.constant.SysConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; import com.hzs.common.core.utils.CommonUtil; +import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.member.account.CuMemberRecharge; import com.hzs.common.domain.third.pay.TOnlinePayment; @@ -13,9 +16,11 @@ import com.hzs.member.account.IMemberTradeServiceApi; import com.hzs.sale.order.ISaOrderServiceApi; import com.hzs.sale.ticket.ITicketServiceApi; import com.hzs.third.pay.constants.PayConfigConstants; -import com.hzs.third.pay.param.StatusParam; +import com.hzs.third.pay.param.PayParam; import com.hzs.third.pay.param.UnifiedOrderParam; -import com.hzs.third.pay.service.*; +import com.hzs.third.pay.service.IHuiFuPayService; +import com.hzs.third.pay.service.IJdPayService; +import com.hzs.third.pay.service.ITOnlinePaymentService; import com.hzs.third.pay.util.PayUtil; import com.hzs.third.pay.vo.OnlinePayConfigVO; import lombok.extern.slf4j.Slf4j; @@ -24,7 +29,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; import java.math.BigDecimal; import java.util.Date; @@ -39,9 +43,9 @@ public class PayController { @Autowired private ITOnlinePaymentService itOnlinePaymentService; @Autowired - private IHuiFuPayService iHuiFuPayService; - @Autowired private IJdPayService iJdPayService; + @Autowired + private IHuiFuPayService iHuiFuPayService; @Autowired private RedisTemplate redisTemplate; @@ -52,18 +56,24 @@ public class PayController { IMemberTradeServiceApi iMemberTradeServiceApi; @DubboReference ITicketServiceApi iTicketServiceApi; + @DubboReference + IActivityServiceApi iActivityServiceApi; /** * 统一下单 * - * @param source 请求来源(EDataSource) + * @param source 请求来源(EDataSource) * @param param * @return */ @RepeatSubmitSimple @PostMapping("/unifiedorder") public AjaxResult unifiedOrder(@RequestHeader("Source") String source, - @Valid @RequestBody UnifiedOrderParam param) { + @RequestBody UnifiedOrderParam param) { + if (null == param.getBusinessType() || StringUtils.isEmpty(param.getBusinessCode()) + || null == param.getPayChannel() || null == param.getPayType()) { + return AjaxResult.error("缺少参数"); + } EPayBusinessType payBusinessType = EPayBusinessType.getEnumByValue(param.getBusinessType()); if (null == payBusinessType) { return AjaxResult.error("业务类型不存在"); @@ -85,6 +95,8 @@ public class PayController { Long userId = SecurityUtils.getUserId(); // 登录用户国家 Integer pkCountry = SecurityUtils.getPkCountry(); + // 微信 openId(用于微信小程序支付) + String openId = null; // 1. 根据业务类型、业务单号进行校验。如果已经支付成功,直接返回;其它情况则继续执行 TOnlinePayment onlinePayment = itOnlinePaymentService.queryByBusiness(payBusinessType.getValue(), param.getBusinessCode(), pkCountry); @@ -116,9 +128,12 @@ public class PayController { onlinePayment.setOriginalOrder(onlinePayment.getBusinessCode()); onlinePayment.setPaySource(dataSource.getValue()); } + onlinePayment.setExtParam(param.getExtParam()); // 业务金额 BigDecimal businessMoney = null; + // 实际支付金额(随机立减之后) + BigDecimal amount = null; // 部分业务金额随机立减 switch (payBusinessType) { @@ -151,17 +166,11 @@ public class PayController { break; default: } - if (null == businessMoney) { - return AjaxResult.error("当前支付金额有误"); - } - if (businessMoney.compareTo(new BigDecimal("10000")) >= 0) { - return AjaxResult.error("当前支付方式单笔金额不能超过10000元"); - } - // 更新业务金额 onlinePayment.setBusinessMoney(businessMoney); - // 暂存于实际支付金额(业务进行随机立减后的) - onlinePayment.setPayMoney(PayUtil.handleAmountRandom(businessMoney)); + amount = PayUtil.handleAmountRandom(businessMoney); + // 暂存于实际支付金额(部分业务进行随机立减) + onlinePayment.setPayMoney(amount); // 结果实体 R payResult = null; @@ -171,53 +180,14 @@ public class PayController { // 京东 switch (payType) { case WECHAT: - // 微信 - break; case ALIPAY: - // 支付宝 + // 微信、支付宝 扫码支付 +// payResult = iJdPayService.scanPay(onlinePayment); + payResult = iJdPayService.cashRegister(onlinePayment, dataSource); break; default: - // 默认京东收银台 - payResult = iJdPayService.cashDeskPay(onlinePayment); } break; - case HUIFU: - // 新汇付 - switch (payType) { - case WECHAT: - // 微信 - switch (dataSource) { - case H5: - // H5浏览器使用微信小程序支付 - if (null != param.getAppletFlag() && EYesNo.YES.getIntValue() == param.getAppletFlag()) { - // 小程序支付 - payResult = iHuiFuPayService.wechatPrePayUrl(onlinePayment, false); - break; - } - default: - // PC以及默认按扫码支付 - // 非小程序支付(微信内置浏览器) - payResult = iHuiFuPayService.wechatPrePayUrl(onlinePayment, true); - break; - } - break; - case ALIPAY: - // 支付宝 - switch (dataSource) { - case H5: - case APP: - // H5浏览器 或者 APP - payResult = iHuiFuPayService.aliPrePayUrl(onlinePayment); - default: - // PC以及默认按扫码支付 - - } - break; - case BANK_CARD: - // 银行卡 - - default: - } default: } @@ -225,8 +195,8 @@ public class PayController { if (null != payResult) { if (payResult.isSuccess()) { // 实际支付金额在支付之前不需要入库,实际以取支付回调为准 - onlinePayment.setPayMoney(null); - itOnlinePaymentService.saveOrUpdate(onlinePayment); +// onlinePayment.setPayMoney(null); +// itOnlinePaymentService.saveOrUpdate(onlinePayment); return AjaxResult.success(payResult.getData()); } @@ -242,16 +212,23 @@ public class PayController { * @return */ @GetMapping("/status") - public AjaxResult status(@Valid StatusParam param) { - // 业务类型(校验业务类型) - EPayBusinessType ePayBusinessType = EPayBusinessType.getEnumByValue(param.getBusinessType()); - if (null == ePayBusinessType) { - return AjaxResult.success("支付业务类型错误", 0); + public AjaxResult status(PayParam param) { +// if (null == param.getBusinessType() || StringUtils.isEmpty(param.getBusinessCode())) { +// return AjaxResult.success("缺少参数"); +// } + if (StringUtils.isEmpty(param.getBusinessCode())) { + return AjaxResult.success("缺少参数"); } - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(TOnlinePayment::getBusinessType, param.getBusinessType()); - queryWrapper.eq(TOnlinePayment::getBusinessCode, param.getBusinessCode()); + // 业务类型(校验业务类型) +// EPayBusinessType ePayBusinessType = EPayBusinessType.getEnumByValue(param.getBusinessType()); +// if (null == ePayBusinessType) { +// return AjaxResult.success("支付业务类型错误", 0); +// } + + QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("BUSINESS_TYPE", param.getBusinessType()); + queryWrapper.eq("BUSINESS_CODE", param.getBusinessCode()); TOnlinePayment onlinePayment = itOnlinePaymentService.getOne(queryWrapper); if (null == onlinePayment) { return AjaxResult.success("支付信息不存在", 0); @@ -277,6 +254,28 @@ public class PayController { // 各支付方式: true=显示,false=隐藏 + // 京东收银台(H5) + String pay5 = String.format(PayConfigConstants.PAY_CONFIG_5, pkCountry); + if (redisTemplate.hasKey(pay5)) { + payConfigVO.setPay5((Boolean) redisTemplate.opsForValue().get(pay5)); + } + // 京东收银台(PC) + String pay6 = String.format(PayConfigConstants.PAY_CONFIG_6, pkCountry); + if (redisTemplate.hasKey(pay6)) { + payConfigVO.setPay6((Boolean) redisTemplate.opsForValue().get(pay6)); + } + + // 通联微信 + String pay32 = String.format(PayConfigConstants.PAY_CONFIG_32, pkCountry); + if (redisTemplate.hasKey(pay32)) { + payConfigVO.setPay32((Boolean) redisTemplate.opsForValue().get(pay32)); + } + // 通联银行卡 + String pay33 = String.format(PayConfigConstants.PAY_CONFIG_33, pkCountry); + if (redisTemplate.hasKey(pay33)) { + payConfigVO.setPay33((Boolean) redisTemplate.opsForValue().get(pay33)); + } + // 新汇付PC微信扫码支付 String pay81 = String.format(PayConfigConstants.PAY_CONFIG_81, pkCountry); if (redisTemplate.hasKey(pay81)) { @@ -287,16 +286,12 @@ public class PayController { if (redisTemplate.hasKey(pay82)) { payConfigVO.setPay82((Boolean) redisTemplate.opsForValue().get(pay82)); } - // 新汇付H5微信支付 - String pay83 = String.format(PayConfigConstants.PAY_CONFIG_83, pkCountry); - if (redisTemplate.hasKey(pay83)) { - payConfigVO.setPay83((Boolean) redisTemplate.opsForValue().get(pay83)); - } - // 新汇付H5支付宝支付 - String pay84 = String.format(PayConfigConstants.PAY_CONFIG_84, pkCountry); - if (redisTemplate.hasKey(pay84)) { - payConfigVO.setPay84((Boolean) redisTemplate.opsForValue().get(pay84)); + + if (SysConstants.SPECIAL_CODE.equals(SecurityUtils.getMemberCode())) { + // 在线支付测试账号,强制显示支付方式 + payConfigVO.setPay5(true); } + return AjaxResult.success(payConfigVO); } diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/base/JdBaseController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/base/JdBaseController.java new file mode 100644 index 00000000..a339dbe4 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/base/JdBaseController.java @@ -0,0 +1,64 @@ +package com.hzs.third.pay.controller.base; + +import cn.hutool.crypto.SecureUtil; + +import javax.servlet.http.HttpServletRequest; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +/** + * @Description: 京东基础控制器 + * @Author: jiang chao + * @Time: 2022/12/27 17:47 + * @Classname: JdBaseController + * @PackageName: com.hzs.third.pay.controller.base + */ +public class JdBaseController { + + /** + * 获取请求体 + * + * @param request + * @return + * @throws Exception + */ + protected String getRequestBody(HttpServletRequest request) throws IOException { + BufferedReader br = null; + try { + br = new BufferedReader(new InputStreamReader(request.getInputStream())); + String line; + StringBuilder sb = new StringBuilder(); + while ((line = br.readLine()) != null) { + sb.append(line); + } + return sb.toString(); + } finally { + if (null != br) { + try { + br.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + /** + * 校验token + * + * @param request + * @param reqBody + * @param secretKey + * @return + */ + protected boolean checkToken(HttpServletRequest request, String reqBody, String secretKey) { + // SHA1 加密串 + String shaStr = "secretKey=" + secretKey + + "×tamp=" + request.getHeader("timestamp") + + "&body=" + reqBody; + String tokenCheck = SecureUtil.sha1(shaStr).toUpperCase(); + return tokenCheck.equals(request.getHeader("token")); + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePayConfigController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePayConfigController.java index 554efca0..3c8b17d1 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePayConfigController.java +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePayConfigController.java @@ -52,15 +52,15 @@ public class OnlinePayConfigController { payConfigVO.setPay82((Boolean) redisTemplate.opsForValue().get(pay82)); } // 新汇付H5微信支付 - String pay83 = String.format(PayConfigConstants.PAY_CONFIG_83, pkCountry); - if (redisTemplate.hasKey(pay83)) { - payConfigVO.setPay83((Boolean) redisTemplate.opsForValue().get(pay83)); - } - // 新汇付H5支付宝支付 - String pay84 = String.format(PayConfigConstants.PAY_CONFIG_84, pkCountry); - if (redisTemplate.hasKey(pay84)) { - payConfigVO.setPay84((Boolean) redisTemplate.opsForValue().get(pay84)); - } +// String pay83 = String.format(PayConfigConstants.PAY_CONFIG_83, pkCountry); +// if (redisTemplate.hasKey(pay83)) { +// payConfigVO.setPay83((Boolean) redisTemplate.opsForValue().get(pay83)); +// } +// // 新汇付H5支付宝支付 +// String pay84 = String.format(PayConfigConstants.PAY_CONFIG_84, pkCountry); +// if (redisTemplate.hasKey(pay84)) { +// payConfigVO.setPay84((Boolean) redisTemplate.opsForValue().get(pay84)); +// } return AjaxResult.success(payConfigVO); } @@ -76,10 +76,16 @@ public class OnlinePayConfigController { public AjaxResult saveConfig(@RequestBody OnlinePayConfigParam param) { Integer pkCountry = SecurityUtils.getPkCountry(); + redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_5, pkCountry), param.getPay5()); + redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_6, pkCountry), param.getPay6()); + + redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_32, pkCountry), param.getPay32()); + redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_33, pkCountry), param.getPay33()); + redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_81, pkCountry), param.getPay81()); redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_82, pkCountry), param.getPay82()); - redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_83, pkCountry), param.getPay83()); - redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_84, pkCountry), param.getPay84()); +// redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_83, pkCountry), param.getPay83()); +// redisTemplate.opsForValue().set(String.format(PayConfigConstants.PAY_CONFIG_84, pkCountry), param.getPay84()); return AjaxResult.success(); } diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlineRefundController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlineRefundController.java index cf9ab3a3..32e16b43 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlineRefundController.java +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlineRefundController.java @@ -102,27 +102,27 @@ public class OnlineRefundController extends BaseController { * @param pkId 退款ID * @return */ - @GetMapping("/query-status") - public AjaxResult queryStatus(@RequestParam Long pkId) { - TOnlineRefund tOnlineRefund = itOnlineRefundService.getById(pkId); - if (ERefundStatus.REFUNDED.getValue() == tOnlineRefund.getRefundStatus()) { - // 已经退款成功 - return AjaxResult.error("当前数据已退款"); - } - - String str; - - if (EPayChannel.HUIFU.getValue() == tOnlineRefund.getRefundChannel()) { - // 新汇付退款 - str = iRefundService.queryHuifuRefundHandle(tOnlineRefund); - } else { - return AjaxResult.error("暂不支持该数据查询"); - } - - if (null == str) { - return AjaxResult.success(); - } - return AjaxResult.error(str); - } +// @GetMapping("/query-status") +// public AjaxResult queryStatus(@RequestParam Long pkId) { +// TOnlineRefund tOnlineRefund = itOnlineRefundService.getById(pkId); +// if (ERefundStatus.REFUNDED.getValue() == tOnlineRefund.getRefundStatus()) { +// // 已经退款成功 +// return AjaxResult.error("当前数据已退款"); +// } +// +// String str; +// +// if (EPayChannel.HUIFU.getValue() == tOnlineRefund.getRefundChannel()) { +// // 新汇付退款 +// str = iRefundService.queryHuifuRefundHandle(tOnlineRefund); +// } else { +// return AjaxResult.error("暂不支持该数据查询"); +// } +// +// if (null == str) { +// return AjaxResult.success(); +// } +// return AjaxResult.error(str); +// } } diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdPayNotifyController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdPayNotifyController.java new file mode 100644 index 00000000..3489878b --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdPayNotifyController.java @@ -0,0 +1,243 @@ +package com.hzs.third.pay.controller.notify; + +import cn.hutool.json.JSONUtil; +import com.hzs.common.core.enums.EPayChannel; +import com.hzs.common.core.enums.EPayType; +import com.hzs.common.core.utils.DateUtils; +import com.hzs.third.pay.config.JdPayConfig; +import com.hzs.third.pay.constants.JdPayConstants; +import com.hzs.third.pay.controller.base.JdBaseController; +import com.hzs.third.pay.dto.jd.JdPayNotifyBody; +import com.hzs.third.pay.jdpay.dto.JdPayTradeSuccessNotify; +import com.hzs.third.pay.jdpay.sdk.JdPay; +import com.hzs.third.pay.jdpay.util.GsonUtil; +import com.hzs.third.pay.service.IPayService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; + +/** + * 京东支付回调控制器 + */ +@Slf4j +@RestController +@RequestMapping("/jd") +public class JdPayNotifyController extends JdBaseController { + + @Autowired + private JdPayConfig jdPayConfig; + @Autowired + private IPayService iPayService; + + /** + * 京东支付回调 + * + * @param request + */ + @PostMapping("/notify") + public String notify(HttpServletRequest request) { + try { + String reqBody = this.getRequestBody(request); + log.info("京东支付回调! body: {}", reqBody); + + if (this.checkToken(request, reqBody, jdPayConfig.getSecretKey())) { + // 签名校验通过 + JdPayNotifyBody notifyBody = JSONUtil.toBean(reqBody, JdPayNotifyBody.class); + + // 支付流水号 + String payNumber = notifyBody.getOrderNum(); + // 支付时间 + Date payTime = DateUtils.parseDate(notifyBody.getCompleteTime(), DateUtils.YYYY_MM_DD_HH_MM_SS); + // 支付金额 + BigDecimal payMoney = new BigDecimal(notifyBody.getOrderAmount()); + + // 支付扩展类型 + String type = notifyBody.getExtraInfo(); + + // 回调订单编号 + String thirdOrderCode = notifyBody.getRequestNum(); + // 支付信息编号 + String orderCode = thirdOrderCode; + // 处理订单号以及扩展类型 + if (orderCode.indexOf("-") > 0) { + // 带有分隔,需要处理 + orderCode = orderCode.split("-")[0]; + } + + // 支付后续业务处理 + if (iPayService.notifyHandle(type, orderCode, thirdOrderCode, payNumber, payTime, payMoney, EPayChannel.JD, "")) { + return JdPayConstants.RETURN_SUCCESS; + } + } else { + log.error("京东支付回调签名校验失败!"); + } + } catch (Exception e) { + log.error("京东支付回调处理异常", e); + } + return JdPayConstants.RETURN_FAIL; + } + + + @Resource(name = "jdPayBank") + private JdPay jdPay; + + /** + * 京东收银台处理成功返回 + */ + private static final String SUCCESS = "SUCCESS"; + /** + * 京东收银台处理失败返回 + */ + private static final String ERROR = "ERROR"; + + /** + * 京东收银台异步支付回调 + * + * @param reqText + * @return 成功返回"SUCCESS", 失败返回"ERROR",京东支付会再次发起通知,通知频次见接口文档。 + */ + @PostMapping("/trade-notify") + public String tradeNotify(@RequestBody String reqText) { + log.info("京东收银台支付异步回调! reqText: {}", reqText); + try { + // 验证签名与解密 + String interData = jdPay.verifyResponse(reqText); + JdPayTradeSuccessNotify successNotify = GsonUtil.fromJson(interData, JdPayTradeSuccessNotify.class); + if (null != successNotify) { + if ("FINI".equals(successNotify.getTradeStatus())) { + // 支付成功处理 + + // 商户订单号 + String payNumber = successNotify.getTradeNo(); + // 渠道流水号 + String channelNumber = ""; + // 支付完成时间 + Date payTime = DateUtils.parseDateOne(successNotify.getFinishDate(), DateUtils.YAMMERERS); + // 支付扩展类型 + String type = successNotify.getReturnParams(); + + // 回调订单编号 + String thirdOrderCode = successNotify.getOutTradeNo(); + // 订单编号 + String orderCode = thirdOrderCode; + String acqOrderId = successNotify.getAcqOrderId(); + + // 订单金额 + int tradeAmount = Integer.parseInt(successNotify.getTradeAmount()); + BigDecimal payMoney = new BigDecimal(tradeAmount).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); + Integer payType = convertPayType(successNotify.getPayTool()); + // 支付后续业务处理 + if (iPayService.notifyHandle(type, orderCode, thirdOrderCode, payNumber, payTime, payMoney, EPayChannel.JD, channelNumber, payType, acqOrderId)) { + return SUCCESS; + } + } else { + log.error("京东收银台支付异步回调失败,resultDesc: {}", successNotify.getResultDesc()); + } + } else { + log.error("京东收银台支付异步回调解密为空"); + } + } catch (Exception e) { + log.error("京东收银台支付异步回调异常", e); + } + return ERROR; + } + private Integer convertPayType(String payName){ + Integer result = EPayType.WECHAT.getValue(); + switch (payName){ + case "XJK": + result = EPayType.MINI_TREASURY.getValue(); + break; + case "JIOU": + result = EPayType.CREDIT_LINE.getValue(); + break; + case "SJIOU": + result = EPayType.SUPER_CREDIT_LINE.getValue(); + break; + case "ACCT": + result = EPayType.WALLET_BALANCE.getValue(); + break; + case "EXPR": + result = EPayType.BANK_CARD.getValue(); + break; + case "WX": + result = EPayType.WECHAT.getValue(); + break; + case "ALIPAY": + result = EPayType.ALIPAY.getValue(); + break; + case "YSF": + result = EPayType.CLOUD_PAY.getValue(); + break; + + } + return result; + } + + + /** + * 京东收银台页面回调 + * + * @param request + * @return + */ + @PostMapping("/sync-notify") + public String syncNotify(HttpServletRequest request) { + // 签名验证逻辑,需要支持添加通知字段不影响结果 + Map respMap = getAllRequestParam(request); + log.info("京东收银台支付页面回调! request: {}", respMap); + + try { + if (jdPay.verifyPageCallBack(respMap)) { + if ("FINI".equals(respMap.get("status"))) { + // todo 支付成功 + + return SUCCESS; + } else if ("WPAR".equals(respMap.get("status"))) { + // todo 支付处理中 + log.error("京东支付页面回调,支付处理中"); + } else { + // todo 支付失败 + log.error("京东支付页面回调,支付失败"); + } + } else { + // 签名异常,报错 + log.error("京东收银台支付页面回调!签名异常!"); + } + } catch (Exception e) { + log.error("京东支付页面回调参数", e); + } + return ERROR; + } + + /** + * 获取客户端请求参数中所有的信息 + */ + private Map getAllRequestParam(final HttpServletRequest request) { + Map respMap = new HashMap<>(); + Enumeration temp = request.getParameterNames(); + if (null != temp) { + while (temp.hasMoreElements()) { + String en = (String) temp.nextElement(); + String value = request.getParameter(en); + respMap.put(en, value); + //如果字段的值为空,判断若值为空,则删除这个字段> + if (null == respMap.get(en) || "".equals(respMap.get(en))) { + respMap.remove(en); + } + } + } + return respMap; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdRefundNotifyController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdRefundNotifyController.java new file mode 100644 index 00000000..63ce6814 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdRefundNotifyController.java @@ -0,0 +1,148 @@ +package com.hzs.third.pay.controller.notify; + +import cn.hutool.json.JSONUtil; +import com.hzs.common.core.enums.EPayChannel; +import com.hzs.common.core.utils.DateUtils; +import com.hzs.third.pay.config.JdPayConfig; +import com.hzs.third.pay.constants.JdPayConstants; +import com.hzs.third.pay.controller.base.JdBaseController; +import com.hzs.third.pay.jdpay.dto.JdPayRefundSuccessNotify; +import com.hzs.third.pay.jdpay.sdk.JdPay; +import com.hzs.third.pay.jdpay.util.GsonUtil; +import com.hzs.third.pay.service.IRefundService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * @Description: 京东退填回调控制器 + * @Author: jiang chao + * @Time: 2023/8/17 15:50 + * @Classname: JdRefundNotifyController + * @PackageName: com.hzs.third.pay.controller.notify + */ +@Slf4j +@RestController +@RequestMapping("/jd-refund") +public class JdRefundNotifyController extends JdBaseController { + + @Autowired + private JdPayConfig jdPayConfig; + @Autowired + private IRefundService iRefundService; + + /** + * 京东退款回调 + * + * @param request + * @return + * @throws Exception + */ + @PostMapping("/notify") + public String refundNotify(HttpServletRequest request) { + try { + String reqBody = this.getRequestBody(request); + log.info("京东退款回调! body: {}", reqBody); + + if (this.checkToken(request, reqBody, jdPayConfig.getSecretKey())) { + // 签名校验通过 + Map dataMap = JSONUtil.toBean(reqBody, HashMap.class); + + // 退款编号 + String refundCode = dataMap.get("refundRequestNum"); + // 京东交易流水号 + String refundNumber = dataMap.get("orderNum"); + // 退款完成时间 + Date finishTime = DateUtils.parseDate(dataMap.get("refundSuccessTime"), DateUtils.YYYY_MM_DD_HH_MM_SS); + // 退款金额 + BigDecimal finishMoney = new BigDecimal(dataMap.get("refundAmount")); + + if (JdPayConstants.ORDER_SUCCESS.equals(dataMap.get("refundStatus"))) { + // 退款成功 + // 退款后续业务处理 + if (iRefundService.notifyHandle(EPayChannel.JD, refundCode, refundNumber, finishTime, finishMoney)) { + return JdPayConstants.RETURN_SUCCESS; + } + } else { + // 退款失败 + log.error("京东退款失败: {}", dataMap.get("failReason")); + + if (iRefundService.notifyErrorHandle(EPayChannel.JD, refundCode, refundNumber, dataMap.get("failReason"))) { + return JdPayConstants.RETURN_SUCCESS; + } + } + } else { + log.error("京东支付回调签名校验失败!"); + } + } catch (Exception e) { + log.error("京东支付回调处理异常", e); + } + return JdPayConstants.RETURN_FAIL; + } + + + @Resource(name = "jdPayBank") + private JdPay jdPay; + + /** + * 京东收银台处理成功返回 + */ + private static final String SUCCESS = "SUCCESS"; + /** + * 京东收银台处理失败返回 + */ + private static final String ERROR = "ERROR"; + + /** + * 京东收银台退款异步支付回调 + * + * @param reqText + * @return 成功返回"SUCCESS", 失败返回"ERROR",退款通知会再次发起通知,通知频次见接口文档。 + */ + @PostMapping("/trade-notify") + public String tradeNotify(@RequestBody String reqText) { + log.info("京东收银台退款异步回调! reqText: {}", reqText); + try { + // 验证签名与解密 + String interData = jdPay.verifyResponse(reqText); + JdPayRefundSuccessNotify successNotify = GsonUtil.fromJson(interData, JdPayRefundSuccessNotify.class); + if (null != successNotify) { + if ("FINI".equals(successNotify.getTradeStatus())) { + + // 退款编号 + String refundCode = successNotify.getOutTradeNo(); + // 京东交易流水号 + String refundNumber = successNotify.getTradeNo(); + // 退款完成时间 + Date finishTime = DateUtils.parseDate(successNotify.getFinishDate(), DateUtils.YAMMERERS); + // 退款金额 + int tradeAmount = Integer.parseInt(successNotify.getTradeAmount()); + BigDecimal finishMoney = new BigDecimal(tradeAmount).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); + + // 退款后续业务处理 + if (iRefundService.notifyHandle(EPayChannel.JD, refundCode, refundNumber, finishTime, finishMoney)) { + return SUCCESS; + } + } else { + log.error("京东收银台退款异步回调失败,resultDesc: {}", successNotify.getResultDesc()); + } + } else { + log.error("京东收银台退款异步回调解密为空"); + } + } catch (Exception e) { + log.error("京东收银台退款异步回调异常", e); + } + return ERROR; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/dto/jd/JdPayNotifyBody.java b/bd-third/src/main/java/com/hzs/third/pay/dto/jd/JdPayNotifyBody.java new file mode 100644 index 00000000..cbbc5bc7 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/dto/jd/JdPayNotifyBody.java @@ -0,0 +1,68 @@ +package com.hzs.third.pay.dto.jd; + +import lombok.Data; + +/** + * 京东支付回调body体 + */ +@Data +public class JdPayNotifyBody { + + /** + * 处理状态 + */ + private String status; + + /** + * 商户订单编号 + */ + private String requestNum; + /** + * 订单金额(元) + */ + private String orderAmount; + /** + * 订单完成时间 + */ + private String completeTime; + /** + * 支付类型(支付宝、微信等) + */ + private String payWay; + /** + * 扩展内容 + */ + private String extraInfo; + + /** + * 订单编号(京东系统订单号) + */ + private String orderNum; + + /** + * 银行订单号(银行流水号) + */ + private String bankOutTradeNum; + /** + * 银行流水号(渠道订单流水号) + */ + private String bankRequestNum; + + /** + * 订单类型 + */ + private String orderType; + /** + * 订单子类型 + */ + private String subOrderType; + /** + * 订单失败原因 + */ + private String failReason; + /** + * 订单失败编码 + */ + private String faiCode; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/enums/EJdAppType.java b/bd-third/src/main/java/com/hzs/third/pay/enums/EJdAppType.java new file mode 100644 index 00000000..7006e175 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/enums/EJdAppType.java @@ -0,0 +1,28 @@ +package com.hzs.third.pay.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 京东应用类型 + */ +@AllArgsConstructor +@Getter +public enum EJdAppType { + + IOS("IOS", "IOS"), + + AND("AND", "AND"), + + H5("H5", "H5"), + + WX("WX", "WX"), + + OTHER("OTHER", "OTHER"), + + ; + + private final String value; + private final String label; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/enums/EJdFastBankCode.java b/bd-third/src/main/java/com/hzs/third/pay/enums/EJdFastBankCode.java new file mode 100644 index 00000000..881e2831 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/enums/EJdFastBankCode.java @@ -0,0 +1,52 @@ +package com.hzs.third.pay.enums; + +import lombok.Getter; + +/** + * 京东快捷支付银行 + */ +@Getter +public enum EJdFastBankCode { + + ICBC("ICBC", "工商银行"), + BOC("BOC", "中国银行"), + CCB("CCB", "建设银行"), + CMBCHINA("CMBCHINA", "招商银行"), + POST("POST", "邮政储蓄银行"), + ECITIC("ECITIC", "中信银行"), + CEB("CEB", "光大银行"), + BOCO("BOCO", "交通银行"), + CIB("CIB", "兴业银行"), + CMBC("CMBC", "民生银行"), + SZCB("SZCB", "平安银行"), + CGB("CGB", "广发银行"), + BCCB("BCCB", "北京银行"), + HXB("HXB", "华夏银行"), + SPDB("SPDB", "浦发银行"), + SHB("SHB", "上海银行"), + ; + + private final String value; + private final String label; + + EJdFastBankCode(String value, String label) { + this.value = value; + this.label = label; + } + + /** + * 根据value获取label + * + * @param value + * @return + */ + public static EJdFastBankCode getEnumByValue(String value) { + for (EJdFastBankCode eJdFastBankCode : EJdFastBankCode.values()) { + if (eJdFastBankCode.getValue().equals(value)) { + return eJdFastBankCode; + } + } + return null; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/enums/EJdTerminalType.java b/bd-third/src/main/java/com/hzs/third/pay/enums/EJdTerminalType.java new file mode 100644 index 00000000..6e5bb6ca --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/enums/EJdTerminalType.java @@ -0,0 +1,27 @@ +package com.hzs.third.pay.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 京东终端类型 + */ +@AllArgsConstructor +@Getter +public enum EJdTerminalType { + + IMEI("IMEI", "IMEI"), + + MAC("MAC", "MAC"), + + // 针对IOS系统 + UUID("UUID", "UUID"), + + OTHER("OTHER", "OTHER"), + + ; + + private final String value; + private final String label; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/config/JdPayAutoConfiguration.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/config/JdPayAutoConfiguration.java new file mode 100644 index 00000000..ac1f60d4 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/config/JdPayAutoConfiguration.java @@ -0,0 +1,58 @@ +package com.hzs.third.pay.jdpay.config; + +import com.hzs.third.pay.config.JdPayBankProperties; +import com.hzs.third.pay.config.JdPayWechatAlipayProperties; +import com.hzs.third.pay.jdpay.sdk.JdPay; +import com.hzs.third.pay.jdpay.sdk.JdPayDefaultNewConfig; +import com.hzs.third.pay.jdpay.sdk.JdPayNewConfig; +import com.hzs.third.pay.jdpay.util.FileUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/************************************************* + * + * 京东支付sdk初始化 + * + *************************************************/ +@Configuration +public class JdPayAutoConfiguration { + @Autowired + private JdPayBankProperties jdPayBankProperties; + @Autowired + private JdPayWechatAlipayProperties jdPayWechatAlipayProperties; + + + + @Bean(name = "jdPayBank") + public JdPay initJdBankPay() { + // 加载商户私钥证书 +// byte[] privateCert = FileUtil.readFile(priCert); + byte[] privateCert = FileUtil.readFile(jdPayBankProperties.getPriCert()); + // 加载商户公钥证书 +// byte[] publicCert = FileUtil.readFile(pubCert); + byte[] publicCert = FileUtil.readFile(jdPayBankProperties.getPubCert()); + // 检查商户证书 + checkCert(privateCert, publicCert); + // 初始化京东支付配置对象 +// JdPayNewConfig myConfig = new JdPayDefaultNewConfig(merchantNo, signKey, privateCert, priCertPwd, publicCert, apiDomain); + JdPayNewConfig myConfig = new JdPayDefaultNewConfig(jdPayBankProperties.getMerchantNo() + , jdPayBankProperties.getSignKey() + , privateCert + , jdPayBankProperties.getPriCertPwd() + , publicCert + , jdPayBankProperties.getApiDomain()); + return new JdPay(myConfig); + } + + private void checkCert(byte[] privateCert, byte[] publicCert) { + if (privateCert == null) { + throw new RuntimeException("读取京东支付商户私钥证书为空"); + } + if (publicCert == null) { + throw new RuntimeException("读取京东支付商户公钥证书为空"); + } + } + +} + diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayAggregateCreateOrderRequest.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayAggregateCreateOrderRequest.java new file mode 100644 index 00000000..3ff50551 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayAggregateCreateOrderRequest.java @@ -0,0 +1,133 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 京东聚合下单请求 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayAggregateCreateOrderRequest implements Serializable { + /** + * 商户订单号 + */ + private String outTradeNo; + /** + * 订单总金额 + */ + private String tradeAmount; + /** + * 订单创建时间 + */ + private String createDate; + /** + * 订单时效时间 分钟 + */ + private String tradeExpiryTime; + /** + * 交易名称 + */ + private String tradeSubject; + /** + * 交易类型 + */ + private String tradeType; + /** + * 交易描述 + */ + private String tradeRemark; + /** + * 币种 + */ + private String currency; + /** + * 用户ip + */ + private String userIp; + /** + * 回传字段 + */ + private String returnParams; + /** + * 商品信息list-- json串 + */ + private String goodsInfo; + /** + * 商户用户标识 + */ + private String userId; + + /** + * 交易异步通知url + */ + private String notifyUrl; + /** + * 同步通知页面url + */ + private String pageBackUrl; + + /** + * 点击完成按钮后跳转页面 + */ + private String callbackUrl; + /** + * 风控信息map-- json串 + */ + private String riskInfo; + /** + * 行业分类码 + */ + private String categoryCode; + /** + * 业务类型 + */ + private String bizTp; + /** + * 订单类型 + */ + private String orderType; + /** + * 报文格式 + */ + private String messageFormat; + /** + * 收货信息 + */ + private String receiverInfo; + /** + * 交易场景 + */ + private String sceneType; + /** + * 指定支付信息 + */ + private String identity; + /** + * 接入方式 + */ + private String accessType; + /** + * openId + */ + private String subOpenId; + /** + * appId + */ + private String subAppId; + /** + * 分帐信息 + */ + private String divisionAccount; + /** + * 门店号 + */ + private String storeNum; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayAggregateCreateOrderResponse.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayAggregateCreateOrderResponse.java new file mode 100644 index 00000000..d42a1ed8 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayAggregateCreateOrderResponse.java @@ -0,0 +1,52 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 京东聚合下单响应 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayAggregateCreateOrderResponse implements Serializable { + + /** + * 业务结果 + */ + private String resultCode; + /** + * 响应描述 + */ + private String resultDesc; + /** + * 商户号 + */ + private String merchantNo; + /** + * 京东交易订单号 + */ + private String tradeNo; + /** + * 商户订单号 + */ + private String outTradeNo; + /** + * 跳转收银台链接 + */ + private String webUrl; + /** + * PC扫码支付 + */ + private String qrCode; + /** + * 唤起通道参数 + */ + private String payInfo; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccount.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccount.java new file mode 100644 index 00000000..d7f51f69 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccount.java @@ -0,0 +1,45 @@ +package com.hzs.third.pay.jdpay.dto; + + +import java.io.Serializable; +import java.util.List; + +/** + * 分账业务字段 + */ +public class JdPayDivisionAccount implements Serializable { + + /** + * 版本号 + */ + private String version = "v2"; +// private String version; + /** + * 分账交易信息 + */ + private List divisionAccountTradeInfoList; + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public List getDivisionAccountTradeInfoList() { + return divisionAccountTradeInfoList; + } + + public void setDivisionAccountTradeInfoList(List divisionAccountTradeInfoList) { + this.divisionAccountTradeInfoList = divisionAccountTradeInfoList; + } + + @Override + public String toString() { + return "{\"JdPayDivisionAccount\":{" + + "\"version\":\"" + version + "\"" + + ", \"divisionAccountTradeInfoList\":" + divisionAccountTradeInfoList + + "}}"; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountRefund.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountRefund.java new file mode 100644 index 00000000..9c9767c9 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountRefund.java @@ -0,0 +1,46 @@ +package com.hzs.third.pay.jdpay.dto; + + +import java.io.Serializable; +import java.util.List; + +/** + * 分账业务字段 + * @author liulian115 + */ +public class JdPayDivisionAccountRefund implements Serializable { + + /** + * 版本号 + */ + private String version="V2"; + /** + * 分账交易信息 + * @see JdPayDivisionAccountRefundInfo + */ + private List divisionAccountRefundInfoList; + + @Override + public String toString() { + return "{\"JdPayDivisionAccountRefund\":{" + + "\"version\":\"" + version + "\"" + + ", \"divisionAccountRefundInfoList\":" + divisionAccountRefundInfoList + + "}}"; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public List getDivisionAccountRefundInfoList() { + return divisionAccountRefundInfoList; + } + + public void setDivisionAccountRefundInfoList(List divisionAccountRefundInfoList) { + this.divisionAccountRefundInfoList = divisionAccountRefundInfoList; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountRefundInfo.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountRefundInfo.java new file mode 100644 index 00000000..b38de727 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountRefundInfo.java @@ -0,0 +1,80 @@ +package com.hzs.third.pay.jdpay.dto; + +import java.io.Serializable; + +/** + * 分账交易信息 + */ +public class JdPayDivisionAccountRefundInfo implements Serializable { + /** + * 分账子商户号 + */ + private String merchantNo; + /** + * 分账子商户订单号 + */ + private String outTradeNo; + /** + * 分账子商户业务单号 + */ + private String bizTradeNo; + /** + * 分账子单金额 + */ + private String tradeAmount; + /** + * 原商户订单号 + */ + private String originalOutTradeNo; + + public String getOriginalOutTradeNo() { + return originalOutTradeNo; + } + + public void setOriginalOutTradeNo(String originalOutTradeNo) { + this.originalOutTradeNo = originalOutTradeNo; + } + + public String getMerchantNo() { + return merchantNo; + } + + public void setMerchantNo(String merchantNo) { + this.merchantNo = merchantNo; + } + + public String getOutTradeNo() { + return outTradeNo; + } + + public void setOutTradeNo(String outTradeNo) { + this.outTradeNo = outTradeNo; + } + + public String getBizTradeNo() { + return bizTradeNo; + } + + public void setBizTradeNo(String bizTradeNo) { + this.bizTradeNo = bizTradeNo; + } + + public String getTradeAmount() { + return tradeAmount; + } + + public void setTradeAmount(String tradeAmount) { + this.tradeAmount = tradeAmount; + } + + @Override + public String toString() { + return "{\"JdPayDivisionAccountRefundInfo\":{" + + "\"merchantNo\":\"" + merchantNo + "\"" + + ", \"outTradeNo\":\"" + outTradeNo + "\"" + + ", \"bizTradeNo\":\"" + bizTradeNo + "\"" + + ", \"tradeAmount\":\"" + tradeAmount + "\"" + + ", \"originalOutTradeNo\":\"" + originalOutTradeNo + "\"" + + "}}"; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountTradeInfo.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountTradeInfo.java new file mode 100644 index 00000000..d56c960f --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayDivisionAccountTradeInfo.java @@ -0,0 +1,67 @@ +package com.hzs.third.pay.jdpay.dto; + +import java.io.Serializable; + +/** + * 分账交易信息 + */ +public class JdPayDivisionAccountTradeInfo implements Serializable { + /** + * 分账子商户号 + */ + private String merchantNo; + /** + * 分账子商户订单号 + */ + private String outTradeNo; + /** + * 分账子商户业务单号 + */ + private String bizTradeNo; + /** + * 分账子单金额 + */ + private String tradeAmount; + + public String getMerchantNo() { + return merchantNo; + } + + public void setMerchantNo(String merchantNo) { + this.merchantNo = merchantNo; + } + + public String getOutTradeNo() { + return outTradeNo; + } + + public void setOutTradeNo(String outTradeNo) { + this.outTradeNo = outTradeNo; + } + + public String getBizTradeNo() { + return bizTradeNo; + } + + public void setBizTradeNo(String bizTradeNo) { + this.bizTradeNo = bizTradeNo; + } + + public String getTradeAmount() { + return tradeAmount; + } + + public void setTradeAmount(String tradeAmount) { + this.tradeAmount = tradeAmount; + } + + @Override + public String toString() { + return "{\"JdPayDivisionAccountTradeInfo\":{" + + "\"merchantNo\":\"" + merchantNo + "\"" + + ", \"outTradeNo\":\"" + outTradeNo + "\"" + + ", \"bizTradeNo\":\"" + bizTradeNo + "\"" + + ", \"tradeAmount\":\"" + tradeAmount + "\"" + + "}}"; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryEnterpriseWalletBalanceRequest.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryEnterpriseWalletBalanceRequest.java new file mode 100644 index 00000000..dc6b5f38 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryEnterpriseWalletBalanceRequest.java @@ -0,0 +1,16 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayQueryEnterpriseWalletBalanceRequest implements Serializable { + private String accountNo; +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryEnterpriseWalletBalanceResponse.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryEnterpriseWalletBalanceResponse.java new file mode 100644 index 00000000..7d60d58b --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryEnterpriseWalletBalanceResponse.java @@ -0,0 +1,25 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayQueryEnterpriseWalletBalanceResponse implements Serializable { + + /** + * 业务结果 + */ + private String resultCode; + /** + * 响应描述 + */ + private String resultDesc; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundRequest.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundRequest.java new file mode 100644 index 00000000..801ce0bd --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundRequest.java @@ -0,0 +1,54 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 京东退款响应 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayRefundRequest implements Serializable { + + /** + * 商户原交易号 + */ + private String originalOutTradeNo; + /** + * 商户退款单号 + */ + private String outTradeNo; + /** + * 退款金额 + */ + private String tradeAmount; + /** + * 异步通知URL + */ + private String notifyUrl; + /** + * 回传字段 + */ + private String returnParams; + /** + * 币种 + */ + private String currency; + /** + * 交易时间 + */ + private String tradeDate; + /** + * 退款分账信息 + * + * @see + */ + private String divisionAccountRefund; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundResponse.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundResponse.java new file mode 100644 index 00000000..3a95f02a --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundResponse.java @@ -0,0 +1,58 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 京东退款请求 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayRefundResponse implements Serializable { + + /** + * 业务结果 + */ + private String resultCode; + /** + * 响应描述 + */ + private String resultDesc; + + /** + * 京东退款订单号 + */ + private String tradeNo; + /** + * 商户退款订单号 + */ + private String outTradeNo; + /** + * 商户原正单订单号 + */ + private String originalOutTradeNo; + /** + * 订单总金额 + */ + private String tradeAmount; + + /** + * 交易状态 + */ + private String tradeStatus; + /** + * 币种 + */ + private String currency; + /** + * 退款完成时间 + */ + private String finishDate; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundSuccessNotify.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundSuccessNotify.java new file mode 100644 index 00000000..e3b25444 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayRefundSuccessNotify.java @@ -0,0 +1,66 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description: 退款成功通知 + * @Author: jiang chao + * @Time: 2025/3/21 10:24 + * @Classname: JdPayRefundSuccessNotify + * @PackageName: com.hzs.third.pay.jdpay.dto + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayRefundSuccessNotify implements Serializable { + + /** + * 业务结果 + */ + private String resultCode; + /** + * 响应描述 + */ + private String resultDesc; + + /** + * 京东退款订单号 + */ + private String tradeNo; + + /** + * 商户退款订单号 + */ + private String outTradeNo; + /** + * 商户原正单订单号 + */ + private String originalOutTradeNo; + /** + * 订单总金额 + */ + private String tradeAmount; + /** + * 退款完成时间 + */ + private String finishDate; + /** + * 交易状态 + */ + private String tradeStatus; + /** + * 回传字段 + */ + private String returnParams; + /** + * 币种 + */ + private String currency; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayTradeSuccessNotify.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayTradeSuccessNotify.java new file mode 100644 index 00000000..c22e3ee2 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayTradeSuccessNotify.java @@ -0,0 +1,99 @@ +package com.hzs.third.pay.jdpay.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description: 交易成功通知 + * @Author: jiang chao + * @Time: 2025/3/21 10:24 + * @Classname: JdPayRefundSuccessNotify + * @PackageName: com.hzs.third.pay.jdpay.dto + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class JdPayTradeSuccessNotify implements Serializable { + + /** + * 业务结果 + */ + private String resultCode; + /** + * 响应描述 + */ + private String resultDesc; + + /** + * 京东交易订单号 + */ + private String tradeNo; + + /** + * 商户订单号 + */ + private String outTradeNo; + /** + * 订单总金额 + */ + private String tradeAmount; + /** + * 币种 + */ + private String currency; + /** + * 支付完成时间 + */ + private String finishDate; + /** + * 交易类型 + */ + private String tradeType; + /** + * 交易状态 + */ + private String tradeStatus; + /** + * 回传字段 + */ + private String returnParams; + /** + * 请求的端 + */ + private String clientType; + /** + * 商户用户标识 + */ + private String userId; + /** + * 优惠金额 + */ + private String discountAmount; + /** + * 支付工具 + */ + private String payTool; + /** + * 掩码卡号 + */ + private String maskCardNo; + /** + * 卡类型 + */ + private String cardType; + /** + * 银行编码 + */ + private String bankCode; + /** + * 白条分期数 + */ + private String installmentNum; + + private String acqOrderId; +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPay.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPay.java new file mode 100644 index 00000000..f5898780 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPay.java @@ -0,0 +1,177 @@ +package com.hzs.third.pay.jdpay.sdk; + +import com.hzs.third.pay.jdpay.dto.*; +import com.hzs.third.pay.jdpay.util.GsonUtil; +import com.hzs.third.pay.jdpay.util.JdPayApiUtil; +import com.hzs.third.pay.jdpay.util.SignUtil; +import lombok.extern.slf4j.Slf4j; + +import java.util.Map; + +/************************************************* + * + * 京东支付api实现类 + * + *************************************************/ +@Slf4j +public class JdPay { + + private JdPayNewConfig jdPayNewConfig; + + private JdPayHttpClientProxy jdPayHttpClientProxy; + + public JdPay(JdPayNewConfig jdPayNewConfig) { + this.jdPayNewConfig = jdPayNewConfig; + this.jdPayHttpClientProxy = new JdPayHttpClientProxy(jdPayNewConfig, new JdPayHttpClient()); + } + +// /** +// * 作用:统一下单 +// * 场景:京东支付 +// * +// * @param request 向jdPay post的请求数据 +// * @return JdPayCreateOrderResponse 返回数据 +// * @throws Exception +// */ +// public JdPayCreateOrderResponse createOrder(JdPayCreateOrderRequest request) throws Exception { +// return this.baseExecute(JdPayConstant.CREATE_ORDER_URL, request, JdPayCreateOrderResponse.class); +// } + + /** + * 作用:三方聚合统一下单 + * 场景:三方聚合 + * + * @param request 向jdPay post的请求数据 + * @return JdPayAggregateCreateOrderResponse 返回数据 + * @throws Exception + */ + public JdPayAggregateCreateOrderResponse aggregateCreateOrder(JdPayAggregateCreateOrderRequest request) throws Exception { + return this.baseExecute(JdPayConstant.AGGREGATE_CREATE_ORDER_URL, request, JdPayAggregateCreateOrderResponse.class); + } +// /** +// * 作用:订单查询 +// * 场景:查询订单信息 - 包括首次支付订单与代扣订单 +// * +// * @param request 向jdPay post的请求数据 +// * @return JdPayQueryOrderResponse 返回数据 +// * @throws Exception +// */ +// public JdPayQueryOrderResponse queryOrder(JdPayQueryOrderRequest request) throws Exception { +// return this.baseExecute(JdPayConstant.TRADE_QUERY_URL, request, JdPayQueryOrderResponse.class); +// } +// +// /** +// * 作用:代扣 +// * 场景:代扣交易场景 +// * +// * @param request 向jdPay post的请求数据 +// * @return JdPayAgreementPayResponse 返回数据 +// * @throws Exception +// */ +// public JdPayAgreementPayResponse agreementPay(JdPayAgreementPayRequest request) throws Exception { +// return this.baseExecute(JdPayConstant.AGREEMENT_PAY_URL, request, JdPayAgreementPayResponse.class); +// } + + /** + * 作用:申请退款 + * 场景:退款 + * + * @param request 向jdPay post的请求数据 + * @return JdPayRefundResponse 返回数据 + * @throws Exception + */ + public JdPayRefundResponse refund(JdPayRefundRequest request) throws Exception { + return this.baseExecute(JdPayConstant.REFUND_URL, request, JdPayRefundResponse.class); + } + +// /** +// * 作用:退款查询 +// * 场景:查询退款信息 +// * +// * @param request 向jdPay post的请求数据 +// * @return JdPayQueryOrderResponse 返回数据 +// * @throws Exception +// */ +// public JdPayRefundQueryResponse refundQuery(JdPayRefundQueryRequest request) throws Exception { +// return this.baseExecute(JdPayConstant.REFUND_QUERY_URL, request, JdPayRefundQueryResponse.class); +// } +// +// /** +// * 作用:解约 +// * 场景:接触签约关系 +// * +// * @param request 向jdPay post的请求数据 +// * @return JdPayAgreementCancelRequest 返回数据 +// * @throws Exception +// */ +// public JdPayAgreementCancelResponse agreementCancel(JdPayAgreementCancelRequest request) throws Exception { +// return this.baseExecute(JdPayConstant.AGREEMENT_CANCEL_URL, request, JdPayAgreementCancelResponse.class); +// } +// +// +// /** +// * 作用:解约查询 +// * 场景:查询签约关系 +// * +// * @param request 向jdPay post的请求数据 +// * @return JdPayAgreementCancelRequest 返回数据 +// * @throws Exception +// */ +// public JdPayAgreementQueryResponse agreementQuery(JdPayAgreementQueryRequest request) throws Exception { +// return this.baseExecute(JdPayConstant.AGREEMENT_QUERY_URL, request, JdPayAgreementQueryResponse.class); +// } +// +// public JdPayAgreementSignResponse agreementNewSign(JdPayAgreementSignRequest request) throws Exception{ +// return this.baseExecute(JdPayConstant.AGREEMENT_NEW_SIGN_URL, request, JdPayAgreementSignResponse.class); +// } + + /** + * 验证接口参数签名 + * 场景:api接口返回参数,异步回调请求参数 + */ + public String verifyResponse(String respText) throws Exception { + String interData = JdPayApiUtil.decryptAndVerifySign(jdPayNewConfig, respText); + log.info("京东支付异步通知-解析数据:{}", interData); + return interData; + } + + /** + * 验证页面回调参数 + * + * @param respMap 页面回调参数 + * @return 验证结果 + * @throws Exception 异常 + */ + public boolean verifyPageCallBack(Map respMap) throws Exception { + return SignUtil.verifyPageCallBackSign(respMap, jdPayNewConfig.getSignKey()); + } + + /** + * 执行接口调用 + * + * @param request 请求对象 + * @param clazz 返回对象类型 + * @return 返回对象 + * @throws Exception 异常 + */ + public RES baseExecute(String urlSuffix, REQ request, Class clazz) throws Exception { + String reqJson = GsonUtil.toJson(request); + String respJson = jdPayHttpClientProxy.execute(urlSuffix, reqJson); + return GsonUtil.fromJson(respJson, clazz); + } + +// /** +// * 账户签约 +// * @param request +// * @return +// * @throws Exception +// */ +// public JdPayAgreementSignApplyResponse agreementSignApply(JdPayAgreementSignApplyRequest request) throws Exception{ +// return this.baseExecute(JdPayConstant.AGREEMENT_SIGN_APPLY_URL, request, JdPayAgreementSignApplyResponse.class); +// } + + + public JdPayQueryEnterpriseWalletBalanceResponse queryEnterpriseWalletBalance(JdPayQueryEnterpriseWalletBalanceRequest request) throws Exception{ + return this.baseExecute(JdPayConstant.QUERY_ENTERPRISE_WALLET_BALANCE_URL, request, JdPayQueryEnterpriseWalletBalanceResponse.class); + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayConstant.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayConstant.java new file mode 100644 index 00000000..420673c7 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayConstant.java @@ -0,0 +1,98 @@ +package com.hzs.third.pay.jdpay.sdk; + +import org.apache.http.client.HttpClient; + +public class JdPayConstant { + + /** + * 京东支付统一收单 url + **/ + public static final String CREATE_ORDER_URL = "/api/createOrder"; + /** + * 三方聚合统一收单 url + **/ +// public static final String AGGREGATE_CREATE_ORDER_URL = "/api/createAggregateOrder"; + public static final String AGGREGATE_CREATE_ORDER_URL = "/api/createIndustryOrder"; + /** + * 交易查询 url + **/ + public static final String TRADE_QUERY_URL = "/api/queryOrder"; + /** + * 退款申请 url + **/ + public static final String REFUND_URL = "/api/refund"; + /** + * 退款查询 url + **/ + public static final String REFUND_QUERY_URL = "/api/refundQuery"; + /** + * 代扣 url + **/ + public static final String AGREEMENT_PAY_URL = "/api/agreementPay"; + /** + * 签约关系查询 url + **/ + public static final String AGREEMENT_QUERY_URL = "/api/agreementQuery"; + /** + * 解约申请 url + **/ + public static final String AGREEMENT_CANCEL_URL = "/api/agreementCancel"; + + /** + * 无卡号签约 + */ + public static final String AGREEMENT_NEW_SIGN_URL = "/api/agreementNewSign"; + + /** + * 账户签约 + */ + public static final String AGREEMENT_SIGN_APPLY_URL = "/api/agreementSignApply"; + public static final String QUERY_ENTERPRISE_WALLET_BALANCE_URL = "/api/queryEnterpriseWalletBalance"; + + /** + * 随机字符常量 + */ + public static final String SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + /** + * 公共字段常量 start + **/ + public static final String CCM = "CCM"; + public static final String MERCHANT_NO = "merchantNo"; + public static final String REQ_NO = "reqNo"; + public static final String CHARSET = "charset"; + public static final String FORMAT_TYPE = "formatType"; + public static final String SIGN_TYPE = "signType"; + public static final String ENC_TYPE = "encType"; + public static final String UTF8 = "UTF-8"; + public static final String JSON = "JSON"; + public static final String SHA256 = "SHA-256"; + public static final String AP7 = "AP7"; + public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + public static final String SIGN_DATA = "signData"; + public static final String ENC_DATA = "encData"; + public static final String RESP_DATA = "respData"; + public static final String CODE = "code"; + public static final String DESC = "desc"; + public static final String SUCCESS_CODE = "00000"; + /* 公共字段常量 end */ + + + /** + * http请求常量 start + **/ + public static final String HTTP = "http"; + public static final String HTTPS = "https"; + public static final String CONTENT_TYPE = "Content-Type"; + public static final String UA = "User-Agent"; + public static final String PKCS12 = "PKCS12"; + public static final String TLS = "TLS"; + public static final String APPLICATION_JSON = "application/json"; + public static final String USER_AGENT = "jdPay" + + " (" + System.getProperty("os.arch") + " " + System.getProperty("os.name") + " " + System.getProperty("os.version") + + ") Java/" + System.getProperty("java.version") + " HttpClient/" + HttpClient.class.getPackage().getImplementationVersion(); + /* http请求常量 end */ + + public static final String URL_PATH = "/api/"; + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayDefaultNewConfig.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayDefaultNewConfig.java new file mode 100644 index 00000000..960aab09 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayDefaultNewConfig.java @@ -0,0 +1,73 @@ +package com.hzs.third.pay.jdpay.sdk; + +import com.hzs.third.pay.jdpay.util.FileUtil; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; + +/************************************************* + * + * 商户默认配置类 + * 商户也可以自行实现JdPayConfig,调整配置属性 + * + *************************************************/ +public class JdPayDefaultNewConfig extends JdPayNewConfig { + + private String merchantNo; + private String signKey; + private byte[] priCert; + private String priCertPwd; + private byte[] pubCert; + private String apiDomain; + + public JdPayDefaultNewConfig(String merchantNo, String signKey, byte[] priCert, String priCertPwd, byte[] pubCert, String apiDomain) { + this.merchantNo = merchantNo; + this.signKey = signKey; + this.priCert = priCert; + this.priCertPwd = priCertPwd; + this.pubCert = pubCert; + this.apiDomain = apiDomain; + } + + public JdPayDefaultNewConfig(String merchantNo, String signKey, String priCertPwd, String apiDomain, String priCertPath, String pubCertPath) { + this.merchantNo = merchantNo; + this.signKey = signKey; + this.priCertPwd = priCertPwd; + this.apiDomain = apiDomain; + + //加载商户私钥证书 + this.priCert = FileUtil.readFile(priCertPath); + //加载商户公钥证书 + this.pubCert = FileUtil.readFile(pubCertPath); + } + + @Override + public String getMerchantNo() { + return this.merchantNo; + } + + @Override + public String getSignKey() { + return this.signKey; + } + + @Override + public InputStream getPriCert() { + return new ByteArrayInputStream(this.priCert); + } + + @Override + public String getPriCertPwd() { + return this.priCertPwd; + } + + @Override + public InputStream getPubCert() { + return new ByteArrayInputStream(this.pubCert); + } + + @Override + public String getApiDomain() { + return this.apiDomain; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpClient.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpClient.java new file mode 100644 index 00000000..2d4be9b5 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpClient.java @@ -0,0 +1,173 @@ +package com.hzs.third.pay.jdpay.sdk; + +import com.hzs.common.core.exception.ServiceException; +import lombok.extern.slf4j.Slf4j; +import org.apache.http.*; +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.ConnectionKeepAliveStrategy; +import org.apache.http.conn.HttpClientConnectionManager; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.BasicHttpClientConnectionManager; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.message.BasicHeaderElementIterator; +import org.apache.http.protocol.HTTP; +import org.apache.http.protocol.HttpContext; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; + +@Slf4j +public class JdPayHttpClient { + + private CloseableHttpClient httpClient = null; + + public JdPayHttpClient() { + } + + /** + * 远程调用 + * + * @param jdPayNewConfig 京东支付配置 + * @param urlSuffix 接口url后缀 + * @param request 请求参数 + * @return 返回参数看 + * @throws Exception 远程调用异常信息 + */ + public String execute(JdPayNewConfig jdPayNewConfig, String urlSuffix, String request) { + HttpClient httpClient = buildHttpClient(jdPayNewConfig); + String url = jdPayNewConfig.getApiDomain() + urlSuffix; + int connectTimeoutMs = jdPayNewConfig.getHttpConnectTimeoutMs(); + int readTimeoutMs = jdPayNewConfig.getHttpReadTimeoutMs(urlSuffix); + try { + return this.sendRequest(httpClient, url, request, connectTimeoutMs, readTimeoutMs); + } catch (IOException e) { + throw new ServiceException("HTTP read timeout"); + } + } + + /** + * 获取httpClient + * + * @param jdPayNewConfig 京东支付配置 + * @return httpClient + */ + private HttpClient buildHttpClient(JdPayNewConfig jdPayNewConfig) { + if (jdPayNewConfig.useHttpConnectPool()) { + return getHttpClientByPoolingConnectionManager(jdPayNewConfig); + } else { + return getHttpClientByBasicConnectionManager(); + } + } + + /** + * 发送请求 + * + * @param httpClient httpClient + * @param url 请求地址 + * @param data 请求数据 + * @param connectTimeoutMs 连接超时时间,单位是毫秒 + * @param readTimeoutMs 读超时时间,单位是毫秒 + * @return api接口返回参数 + */ + private String sendRequest(HttpClient httpClient, String url, String data, int connectTimeoutMs, int readTimeoutMs) throws IOException { + HttpPost httpPost = new HttpPost(url); + RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(readTimeoutMs).setConnectTimeout(connectTimeoutMs).build(); + httpPost.setConfig(requestConfig); + + StringEntity postEntity = new StringEntity(data, JdPayConstant.UTF8); + httpPost.addHeader(JdPayConstant.CONTENT_TYPE, JdPayConstant.APPLICATION_JSON); + httpPost.addHeader(JdPayConstant.UA, JdPayConstant.USER_AGENT); + httpPost.setEntity(postEntity); + HttpResponse httpResponse = httpClient.execute(httpPost); + int statusCode = httpResponse.getStatusLine().getStatusCode(); + if (HttpStatus.SC_OK != statusCode) { + throw new ServiceException(String.format("httpStatusCode: %s", statusCode)); + } + HttpEntity httpEntity = httpResponse.getEntity(); + return EntityUtils.toString(httpEntity, JdPayConstant.UTF8); + } + + private HttpClient getHttpClientByBasicConnectionManager() { + HttpClientConnectionManager connManager = new BasicHttpClientConnectionManager( + RegistryBuilder.create() + .register(JdPayConstant.HTTP, PlainConnectionSocketFactory.getSocketFactory()) + .register(JdPayConstant.HTTPS, SSLConnectionSocketFactory.getSocketFactory()) + .build(), + null, + null, + null + ); + return HttpClientBuilder.create() + // 连接池 + .setConnectionManager(connManager) + // 重试策略 + .setRetryHandler(new DefaultHttpRequestRetryHandler(0, false)).build(); + } + + private HttpClient getHttpClientByPoolingConnectionManager(JdPayNewConfig jdPayNewConfig) { + if (httpClient != null) { + return httpClient; + } + synchronized (this) { + if (httpClient == null) { + long start = System.currentTimeMillis(); + PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager( + RegistryBuilder.create() + .register(JdPayConstant.HTTP, PlainConnectionSocketFactory.getSocketFactory()) + .register(JdPayConstant.HTTPS, SSLConnectionSocketFactory.getSocketFactory()) + .build() + ); + // 设置最大连接数 + httpClientConnectionManager.setMaxTotal(jdPayNewConfig.getHttpConnectMaxTotal()); + // 将每个路由默认最大连接数 + httpClientConnectionManager.setDefaultMaxPerRoute(jdPayNewConfig.getHttpConnectDefaultTotal()); + httpClient = HttpClients.custom() + // 设置连接池 + .setConnectionManager(httpClientConnectionManager) + // 连接存活策略 + .setKeepAliveStrategy(getConnectionKeepAliveStrategy()) + // 重试策略 + .setRetryHandler(new DefaultHttpRequestRetryHandler(0, false)).build(); + // 连接回收策略 + JdPayHttpConnectionMonitor idleConnectionMonitor = new JdPayHttpConnectionMonitor(httpClientConnectionManager, jdPayNewConfig.getHttpConnectIdleAliveMs()); + idleConnectionMonitor.start(); + log.info("初始化http连接池耗时:{}", System.currentTimeMillis() - start); + } + } + return httpClient; + } + + private ConnectionKeepAliveStrategy getConnectionKeepAliveStrategy() { + return new ConnectionKeepAliveStrategy() { + @Override + public long getKeepAliveDuration(HttpResponse response, HttpContext context) { + // Honor 'keep-alive' header + HeaderElementIterator it = new BasicHeaderElementIterator(response.headerIterator(HTTP.CONN_KEEP_ALIVE)); + while (it.hasNext()) { + HeaderElement he = it.nextElement(); + String param = he.getName(); + String value = he.getValue(); + if (value != null && "timeout".equalsIgnoreCase(param)) { + try { + log.info("Keep-Alive指定时长:{}", value); + return Long.parseLong(value) * 1000; + } catch (NumberFormatException ignore) { + } + } + } + // Keep alive for 300 seconds only + return 300 * 1000; + } + }; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpClientProxy.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpClientProxy.java new file mode 100644 index 00000000..23863944 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpClientProxy.java @@ -0,0 +1,58 @@ +package com.hzs.third.pay.jdpay.sdk; + +import com.hzs.third.pay.jdpay.util.JdPayApiUtil; +import lombok.extern.slf4j.Slf4j; + +import java.security.SecureRandom; +import java.util.Random; + +@Slf4j +public class JdPayHttpClientProxy { + + private static final Random RANDOM = new SecureRandom(); + + private final JdPayNewConfig jdPayNewConfig; + + private final JdPayHttpClient jdPayHttpClient; + + public JdPayHttpClientProxy(JdPayNewConfig jdPayNewConfig, JdPayHttpClient jdPayHttpClient) { + this.jdPayNewConfig = jdPayNewConfig; + this.jdPayHttpClient = jdPayHttpClient; + } + + /** + * 获取随机字符串,含数字和大小写英文字母 + */ + private static String genNonceStr() { + char[] nonceChars = new char[32]; + for (int index = 0; index < nonceChars.length; ++index) { + nonceChars[index] = JdPayConstant.SYMBOLS.charAt(RANDOM.nextInt(JdPayConstant.SYMBOLS.length())); + } + return new String(nonceChars); + } + + public String execute(String urlSuffix, String request) throws Exception { + long startTimestampMs = System.currentTimeMillis(); + String response; + // 接口名称 + String apiName = urlSuffix.replaceFirst(JdPayConstant.URL_PATH, ""); + // 唯一请求号 + String reqNo = genNonceStr(); + try { + log.info("1.{}接口请求参数:{}", apiName, request); + // 请求参数加密和签名 + String httpRequest = JdPayApiUtil.encryptAndSignature(jdPayNewConfig, reqNo, request); + log.info("2.{}远程调用请求参数:{}", apiName, httpRequest); + String httpResponse = jdPayHttpClient.execute(jdPayNewConfig, urlSuffix, httpRequest); + log.info("3.{}远程调用返回参数:{}", apiName, httpResponse); + // 验证和解析返回参数 + response = JdPayApiUtil.decryptAndVerifySign(jdPayNewConfig, httpResponse); + log.info("4.{}耗时:{},接口返回参数:{}", apiName, (System.currentTimeMillis() - startTimestampMs), response); + } catch (Exception e) { + log.error("{}远程调用异常,接口参数:{}", apiName, request, e); + throw e; + } + return response; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpConnectionMonitor.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpConnectionMonitor.java new file mode 100644 index 00000000..8d5ea29c --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayHttpConnectionMonitor.java @@ -0,0 +1,55 @@ +package com.hzs.third.pay.jdpay.sdk; + +import lombok.extern.slf4j.Slf4j; +import org.apache.http.conn.HttpClientConnectionManager; + +import java.util.concurrent.TimeUnit; + +/** + * 用于监控空闲的连接池连接 + */ +@Slf4j +public class JdPayHttpConnectionMonitor extends Thread { + + // 轮询检查时间间隔,单位毫秒 + private static final int MONITOR_INTERVAL_MS = 5000; + // 连接最大空闲时间,单位毫秒 + private static int IDLE_ALIVE_MS = 20000; + + private final HttpClientConnectionManager httpClientConnectionManager; + + private volatile boolean shutdown; + + JdPayHttpConnectionMonitor(HttpClientConnectionManager httpClientConnectionManager, int idleAliveMs) { + super(); + this.httpClientConnectionManager = httpClientConnectionManager; + IDLE_ALIVE_MS = idleAliveMs; + this.shutdown = false; + } + + @Override + public void run() { + try { + while (!shutdown) { + synchronized (this) { + wait(MONITOR_INTERVAL_MS); + // 关闭无效的连接 + httpClientConnectionManager.closeExpiredConnections(); + // 关闭空闲时间超过IDLE_ALIVE_MS的连接 + httpClientConnectionManager.closeIdleConnections(IDLE_ALIVE_MS, TimeUnit.MILLISECONDS); + } + } + } catch (InterruptedException e) { + log.error("连接池管理任务异常:", e); + } + } + + // 关闭后台连接 + public void shutdown() { + shutdown = true; + synchronized (this) { + notifyAll(); + } + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayNewConfig.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayNewConfig.java new file mode 100644 index 00000000..b97f01fa --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPayNewConfig.java @@ -0,0 +1,154 @@ +package com.hzs.third.pay.jdpay.sdk; + +import java.io.InputStream; +import java.util.HashMap; + +/** + * 京东支付配置类 + */ +public abstract class JdPayNewConfig { + + /** + * 接口超时时间全局配置 + */ + private static final HashMap HTTP_READ_TIMEOUT_CONFIG = new HashMap() {{ + put(JdPayConstant.CREATE_ORDER_URL, 15000); + put(JdPayConstant.TRADE_QUERY_URL, 5000); + put(JdPayConstant.REFUND_URL, 5000); + put(JdPayConstant.REFUND_QUERY_URL, 5000); + put(JdPayConstant.AGREEMENT_PAY_URL, 10000); + put(JdPayConstant.AGREEMENT_QUERY_URL, 5000); + put(JdPayConstant.AGREEMENT_CANCEL_URL, 5000); + }}; + + /** + * 获取merchantNo + * + * @return merchantNo + */ + public abstract String getMerchantNo(); + + /** + * 获取signKey + * + * @return signKey + */ + public abstract String getSignKey(); + + /** + * 获取 私钥证书 + * + * @return 私钥证书 + */ + public abstract InputStream getPriCert(); + + /** + * 获取 私钥证书密钥 + * + * @return 私钥证书密钥 + */ + public abstract String getPriCertPwd(); + + /** + * 获取 公钥证书 + * + * @return 公钥证书 + */ + public abstract InputStream getPubCert(); + + /** + * 获取域名-新api接口 + * + * @return 域名-新api接口 + */ + public abstract String getApiDomain(); + + /** + * HTTP(S) 连接超时时间,单位毫秒 + * + * @return 连接时间 + */ + public int getHttpConnectTimeoutMs() { + return 6 * 1000; + } + + /** + * 设置HTTP(S) 读数据超时时间,单位毫秒 + * + * @param urlSuffix api地址除去域名后的路径 + * @param httpReadTimeoutMs 读超时时间,单位毫秒 + */ + public void setHttpReadTimeoutMs(String urlSuffix, int httpReadTimeoutMs) { + HTTP_READ_TIMEOUT_CONFIG.put(urlSuffix, httpReadTimeoutMs); + } + + /** + * 查询HTTP(S) 读数据超时时间,单位毫秒 + * + * @return 读超时时间,单位毫秒 + */ + public int getHttpReadTimeoutMs(String requestPath) { + if (!HTTP_READ_TIMEOUT_CONFIG.containsKey(requestPath)) { + return 15000; + } + return HTTP_READ_TIMEOUT_CONFIG.get(requestPath); + } + + /** + * 是否自动上报异常请求。默认为 true + * 若要关闭,子类中实现该函数返回 false 即可。 + */ + public boolean shouldAutoReport() { + return true; + } + + /** + * 进行异常上报的线程的数量 + */ + public int getReportWorkerNum() { + return 1; + } + + /** + * 批量上报,一次报多条异常数据 + */ + public int getReportBatchSize() { + return 5; + } + + /** + * 异常上报缓存消息队列最大数量。 + * 队列满后,不会上报新增的异常信息 + */ + public int getReportQueueMaxSize() { + return 50; + } + + /** + * 是否使用http连接池 + */ + public boolean useHttpConnectPool() { + return false; + } + + /** + * http连接池最大连接数量 + */ + public int getHttpConnectMaxTotal() { + return 800; + } + + /** + * http连接池默认连接数量 + */ + public int getHttpConnectDefaultTotal() { + return 100; + } + + /** + * http连接最大闲置时长,单位毫秒 + */ + public int getHttpConnectIdleAliveMs() { + return 20000; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPaySecurity.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPaySecurity.java new file mode 100644 index 00000000..c2972306 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPaySecurity.java @@ -0,0 +1,19 @@ +package com.hzs.third.pay.jdpay.sdk; + +import org.bouncycastle.util.encoders.Base64; + +import java.io.InputStream; + +public class JdPaySecurity { + + public String signEnvelop(InputStream signCert, String password, InputStream envelopCert, byte[] orgData) { + byte[] signData = JdPaySign.getInstance().attachSign(signCert, password, orgData); + byte[] envelop = JdPaySign.getInstance().encryptEnvelop(envelopCert, signData); + return new String(Base64.encode(envelop)); + } + + public byte[] verifyEnvelop(InputStream envelopCert, String password, byte[] envelopData) { + byte[] signData = JdPaySign.getInstance().decryptEnvelop(envelopCert, password, envelopData); + return JdPaySign.getInstance().verifyAttachSign(signData); + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPaySign.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPaySign.java new file mode 100644 index 00000000..488ae041 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPaySign.java @@ -0,0 +1,200 @@ +package com.hzs.third.pay.jdpay.sdk; + +import com.hzs.common.core.exception.ServiceException; +import com.hzs.third.pay.jdpay.util.CertUtil; +import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.asn1.DEROutputStream; +import org.bouncycastle.cert.X509CertificateHolder; +import org.bouncycastle.cert.jcajce.JcaCertStore; +import org.bouncycastle.cms.*; +import org.bouncycastle.cms.jcajce.*; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.operator.ContentSigner; +import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; +import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder; +import org.bouncycastle.util.Store; + +import javax.security.auth.x500.X500PrivateCredential; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.PrivateKey; +import java.security.Security; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +@Slf4j +public class JdPaySign { + + private static final String SIGN_ALGORITHMS = "SHA1WITHRSA"; + private static final String BC = "BC"; + + private static JdPaySign INSTANCE = null; + + static { + BouncyCastleProvider provider = new BouncyCastleProvider(); + Security.addProvider(provider); + } + + private JdPaySign() { + } + + /** + * 单例,双重校验 + */ + public static JdPaySign getInstance() { + if (INSTANCE == null) { + synchronized (JdPaySign.class) { + if (INSTANCE == null) { + INSTANCE = new JdPaySign(); + } + } + } + return INSTANCE; + } + + + public byte[] attachSign(InputStream priCert, String password, byte[] data) { + return this.sign(priCert, password, data, true); + } + + public byte[] detachSign(InputStream priCert, String password, byte[] data) { + return this.sign(priCert, password, data, false); + } + + private byte[] sign(InputStream priCert, String password, byte[] data, boolean isDetach) { + try { + X500PrivateCredential privateCert = CertUtil.getPrivateCert(priCert, password.toCharArray()); + X509Certificate x509Certificate = privateCert.getCertificate(); + PrivateKey privateKey = privateCert.getPrivateKey(); + + List certList = new ArrayList<>(); + certList.add(x509Certificate); + Store certs = new JcaCertStore(certList); + + CMSSignedDataGenerator generator = new CMSSignedDataGenerator(); + ContentSigner sha1Signer = new JcaContentSignerBuilder(SIGN_ALGORITHMS).setProvider(BC).build(privateKey); + generator.addSignerInfoGenerator(new JcaSignerInfoGeneratorBuilder(new JcaDigestCalculatorProviderBuilder().setProvider(BC).build()).build(sha1Signer, x509Certificate)); + generator.addCertificates(certs); + + CMSTypedData msg = new CMSProcessableByteArray(data); + return generator.generate(msg, isDetach).getEncoded(); + } catch (CertificateException e) { + log.error("=====", e); + log.error(e.getMessage()); + throw new ServiceException(e.getMessage()); + } catch (Exception e) { + log.error("-----", e); + log.error(e.getMessage()); + throw new ServiceException("签名异常"); + } + } + + @SuppressWarnings("rawtypes") + public int verifyDetachSign(byte[] data, byte[] signData) { + try { + CMSProcessable content = new CMSProcessableByteArray(data); + CMSSignedData s = new CMSSignedData(content, signData); + Store certStore = s.getCertificates(); + SignerInformationStore signers = s.getSignerInfos(); + Collection c = signers.getSigners(); + Iterator it = c.iterator(); + int verified = 0, size = 0; + while (it.hasNext()) { + size++; + SignerInformation signer = (SignerInformation) it.next(); + Collection certCollection = certStore.getMatches(signer.getSID()); + Iterator certIt = certCollection.iterator(); + X509CertificateHolder cert = (X509CertificateHolder) certIt.next(); + if (signer.verify(new JcaSimpleSignerInfoVerifierBuilder().setProvider("BC").build(cert))) { + verified++; + } + } + if (size == verified) { + return 1; + } + } catch (Exception e) { + return 0; + } + return 0; + } + + @SuppressWarnings({"rawtypes"}) + public byte[] verifyAttachSign(byte[] signData) { + try { + byte[] data = null; + CMSSignedData s = new CMSSignedData(signData); + Store certStore = s.getCertificates(); + SignerInformationStore signers = s.getSignerInfos(); + Collection c = signers.getSigners(); + Iterator it = c.iterator(); + int verified = 0, size = 0; + + while (it.hasNext()) { + size++; + SignerInformation signer = (SignerInformation) it.next(); + Collection certCollection = certStore.getMatches(signer.getSID()); + Iterator certIt = certCollection.iterator(); + X509CertificateHolder cert = (X509CertificateHolder) certIt.next(); + + if (signer.verify(new JcaSimpleSignerInfoVerifierBuilder().setProvider("BC").build(cert))) { + verified++; + CMSTypedData cmsData = s.getSignedContent(); + data = (byte[]) cmsData.getContent(); + } + } + if (size == verified) { + return data; + } + } catch (Exception e) { + return null; + } + return null; + } + + public byte[] encryptEnvelop(InputStream pubCert, byte[] bOrgData) { + try { + X509Certificate publicCert = CertUtil.getPublicCert(pubCert); + CMSEnvelopedDataGenerator generator = new CMSEnvelopedDataGenerator(); + generator.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(publicCert).setProvider(BC)); + CMSEnvelopedData enveloped = generator.generate(new CMSProcessableByteArray(bOrgData), new JceCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC).setProvider(BC).build()); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + new DEROutputStream(out).writeObject(enveloped.toASN1Structure()); + byte[] result = out.toByteArray(); + out.close(); + return result; + } catch (CertificateException | CMSException | IOException e) { + log.error("加密异常:{}", e.getMessage()); + throw new ServiceException("加密异常"); + } + } + + public byte[] decryptEnvelop(InputStream priCert, String privateKeyPassword, byte[] bEnvelop) { + try { + CMSEnvelopedData enveloped = new CMSEnvelopedData(bEnvelop); + RecipientInformationStore ris = enveloped.getRecipientInfos(); + if (ris == null) { + log.error("数字信封格式不对:{}", new String(bEnvelop)); + throw new ServiceException("验签异常"); + } + + X500PrivateCredential privateCert = CertUtil.getPrivateCert(priCert, privateKeyPassword.toCharArray()); + PrivateKey privateKey = privateCert.getPrivateKey(); + + byte[] sign = null; + Collection recipients = ris.getRecipients(); + for (Object object : recipients) { + RecipientInformation recipient = (RecipientInformation) object; + sign = recipient.getContent(new JceKeyTransEnvelopedRecipient(privateKey).setProvider(BC)); + } + return sign; + } catch (CMSException | CertificateException e) { + log.error("验签异常:{}", e.getMessage()); + throw new ServiceException("验签异常"); + } + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/CertUtil.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/CertUtil.java new file mode 100644 index 00000000..36fd0ff5 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/CertUtil.java @@ -0,0 +1,110 @@ +package com.hzs.third.pay.jdpay.util; + +import lombok.extern.slf4j.Slf4j; + +import javax.security.auth.x500.X500PrivateCredential; +import java.io.IOException; +import java.io.InputStream; +import java.security.*; +import java.security.cert.Certificate; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.util.Enumeration; + +@Slf4j +public class CertUtil { + + private static final String PKCS12 = "PKCS12"; + + public static X500PrivateCredential getPrivateCert(InputStream pfxCert, char[] privateKeyPassword) throws CertificateException { + KeyStore keyStore; + String keyStoreAlias = null; + + /* Load KeyStore contents from file */ + try { + keyStore = KeyStore.getInstance(CertUtil.PKCS12); + keyStore.load(pfxCert, privateKeyPassword); + + /* Get aliases */ + Enumeration aliases = keyStore.aliases(); + if (aliases != null) { + while (aliases.hasMoreElements()) { + keyStoreAlias = (String) aliases.nextElement(); + Certificate[] certs = keyStore.getCertificateChain(keyStoreAlias); + if (certs == null || certs.length == 0) { + continue; + } + X509Certificate cert = (X509Certificate) certs[0]; + if (matchUsage(cert.getKeyUsage(), 1)) { + try { + cert.checkValidity(); + } catch (CertificateException e) { + continue; + } + break; + } + } + } + } catch (GeneralSecurityException | IOException e) { + log.error("===============", e); + throw new CertificateException("Error initializing keystore"); + } + + if (keyStoreAlias == null) { + throw new CertificateException("None certificate for sign in this keystore"); + } + + /* Get certificate chain and create a certificate path */ + Certificate[] fromKeyStore; + try { + fromKeyStore = keyStore.getCertificateChain(keyStoreAlias); + if (fromKeyStore == null + || fromKeyStore.length == 0 + || !(fromKeyStore[0] instanceof X509Certificate)) { + throw new CertificateException("Unable to find X.509 certificate chain in keystore"); + } + } catch (KeyStoreException e) { + throw new CertificateException("Error using keystore"); + } + + /* Get PrivateKey */ + Key privateKey; + try { + privateKey = keyStore.getKey(keyStoreAlias, privateKeyPassword); + if (!(privateKey instanceof PrivateKey)) { + throw new CertificateException("Unable to recover key from keystore"); + } + } catch (KeyStoreException | NoSuchAlgorithmException e) { + throw new CertificateException("Error using keystore"); + } catch (UnrecoverableKeyException e) { + throw new CertificateException("Unable to recover key from keystore"); + } + + X509Certificate certificate = (X509Certificate) fromKeyStore[0]; + return new X500PrivateCredential(certificate, (PrivateKey) privateKey, keyStoreAlias); + } + + public static X509Certificate getPublicCert(InputStream publicCert) throws CertificateException { + try { + CertificateFactory cf = CertificateFactory.getInstance("X509"); + Certificate certificate = cf.generateCertificate(publicCert); + return (X509Certificate) certificate; + } catch (CertificateException e) { + throw new CertificateException("Error loading public key certificate"); + } + } + + private static boolean matchUsage(boolean[] keyUsage, int usage) { + if (usage == 0 || keyUsage == null) { + return true; + } + for (int i = 0; i < Math.min(keyUsage.length, 32); i++) { + if ((usage & (1 << i)) != 0 && !keyUsage[i]) { + return false; + } + } + return true; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/FileUtil.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/FileUtil.java new file mode 100644 index 00000000..a07020fc --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/FileUtil.java @@ -0,0 +1,45 @@ +package com.hzs.third.pay.jdpay.util; + +import org.springframework.core.io.ClassPathResource; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +public class FileUtil { + + public FileUtil() { + } + + public static byte[] readFile(String filename) { + ClassPathResource classPathResource = new ClassPathResource(filename); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + BufferedInputStream in = null; + try { + in = new BufferedInputStream(classPathResource.getInputStream()); + byte[] buffer = new byte[1024]; + int len; + while (-1 != (len = in.read(buffer, 0, 1024))) { + bos.write(buffer, 0, len); + } + return bos.toByteArray(); + } catch (IOException var21) { + var21.printStackTrace(); + } finally { + try { + if (null != in) { + in.close(); + } + } catch (IOException var20) { + var20.printStackTrace(); + } + try { + bos.close(); + } catch (IOException var19) { + var19.printStackTrace(); + } + } + return null; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/GsonUtil.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/GsonUtil.java new file mode 100644 index 00000000..e54c13df --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/GsonUtil.java @@ -0,0 +1,171 @@ +package com.hzs.third.pay.jdpay.util; + +import com.google.gson.ExclusionStrategy; +import com.google.gson.FieldAttributes; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.internal.Primitives; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.Collection; +import java.util.Enumeration; +import java.util.Iterator; +import java.util.List; + +/************************************************* + * + * Gson工具类,对Google的gson工具进行封装 + * (1)日期格式yyyyMMddHHmmss + * (2)toJson时支持掩码 + * (3)toJson时支持跳过指定属性 + *************************************************/ +public class GsonUtil { + private static final String EMPTY_JSON = "{}"; + private static final String EMPTY_JSON_ARRAY = "[]"; + private static final String DEFAULT_DATE_PATTERN = "yyyyMMddHHmmss"; + private static final Gson DEFAULT_GSON; + + static { + GsonBuilder builder = new GsonBuilder(); + builder.setDateFormat(DEFAULT_DATE_PATTERN); + DEFAULT_GSON = builder.create(); + DEFAULT_GSON.toJson(null); + } + + public static String toJson(Object target) { + return toJson(target, null, null, null); + } + + public static String toJson(Object target, Type targetType) { + return toJson(target, targetType, null, null); + } + + public static String toMaskJson(Object target) { + return toJson(target, null, null, null); + } + + public static String toMaskJson(Object target, List excludeFields) { + return toJson(target, null, null, excludeFields); + } + + /** + * 打印目标对象的json串 + * + * @param target 目标对象 + * @param targetType 对象类型,可为null + * @param datePattern 日期格式,可为null,若为null则按 DEFAULT_DATE_PATTERN格式输出 + * @param excludeFields 不打印的字段,可为null + * @return 目标对象的标准json串 + */ + public static String toJson(Object target, Type targetType, String datePattern, final List excludeFields) { + if (target == null) { + return EMPTY_JSON; + } + + Gson gson = DEFAULT_GSON; + if (null != datePattern && !"".equals(datePattern)) { + gson = getGson(datePattern); + } + if (isNotEmpty(excludeFields)) { + gson = getStrategyGson(excludeFields); + } + + String result = emptyResult(target); + try { + if (targetType == null) { + targetType = target.getClass(); + } + result = gson.toJson(target, targetType); + } catch (Exception ignore) { + } + return result; + } + + public static T fromJson(String json, TypeToken token) { + return fromJson(json, token, null); + } + + public static T fromJson(String json, TypeToken token, String datePattern) { + return fromJson(json, token.getType(), datePattern); + } + + public static T fromJson(String json, Class classOfT) { + Object object = fromJson(json, (Type) classOfT, null); + return Primitives.wrap(classOfT).cast(object); + } + + public static T fromJson(String json, Class classOfT, String datePattern) { + Object object = fromJson(json, (Type) classOfT, datePattern); + return Primitives.wrap(classOfT).cast(object); + } + + /** + * 将json串转化为目标对象 + * + * @param json json串 + * @param type 目标对象类型 + * @param datePattern json串中日期格式,若为null,则按两个标准日期尝试解析:DEFAULT_DATE_PATTERN和DEFAULT_DATE_PATTERN_1 + * @param + * @return 目标对象 + */ + public static T fromJson(String json, Type type, String datePattern) { + if (null == json || "".equals(json)) { + return null; + } + + if (null == datePattern || "".equals(datePattern)) { + try { + return DEFAULT_GSON.fromJson(json, type); + } catch (Exception ignore) { + } + return null; + } + + try { + Gson gson = getGson(datePattern); + return gson.fromJson(json, type); + } catch (Exception ignore) { + } + return null; + } + + private static Gson getGson(String datePattern) { + GsonBuilder builder = new GsonBuilder(); + builder.setDateFormat(datePattern); + return builder.create(); + } + + private static Gson getStrategyGson(final List excludeFields) { + ExclusionStrategy myExclusionStrategy = new ExclusionStrategy() { + @Override + public boolean shouldSkipField(FieldAttributes fa) { + return excludeFields != null && excludeFields.contains(fa.getName()); + } + + @Override + public boolean shouldSkipClass(Class clazz) { + return false; + } + + }; + return new GsonBuilder().setExclusionStrategies(myExclusionStrategy).create(); + } + + private static boolean isNotEmpty(final List fieldNames) { + return fieldNames != null && !fieldNames.isEmpty(); + } + + private static String emptyResult(Object target) { + if (target == null) { + return EMPTY_JSON; + } + if (target instanceof Collection + || target instanceof Iterator + || target instanceof Enumeration + || target.getClass().isArray()) { + return EMPTY_JSON_ARRAY; + } + return EMPTY_JSON; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/JdPayApiUtil.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/JdPayApiUtil.java new file mode 100644 index 00000000..05487f57 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/JdPayApiUtil.java @@ -0,0 +1,81 @@ +package com.hzs.third.pay.jdpay.util; + +import com.google.gson.reflect.TypeToken; +import com.hzs.third.pay.jdpay.sdk.JdPayConstant; +import com.hzs.third.pay.jdpay.sdk.JdPayNewConfig; +import com.hzs.third.pay.jdpay.sdk.JdPaySecurity; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; + +/************************************************* + * + * 京东支付接口工具类 + * + *************************************************/ +public class JdPayApiUtil { + + /** + * 加密和签名 + */ + public static String encryptAndSignature(JdPayNewConfig jdPayNewConfig, String reqNo, String jsonParam) throws IOException { + // 组装公共请求参数 + Map commonParam = fillCommonParam(jdPayNewConfig.getMerchantNo(), reqNo); + // 加密 + byte[] dataBytes = jsonParam.getBytes(StandardCharsets.UTF_8); + JdPaySecurity se = new JdPaySecurity(); + String encData = se.signEnvelop(jdPayNewConfig.getPriCert(), jdPayNewConfig.getPriCertPwd(), jdPayNewConfig.getPubCert(), dataBytes); + commonParam.put(JdPayConstant.ENC_DATA, encData); + // 签名 + String sign = SignUtil.sign(commonParam, JdPayConstant.SHA256, jdPayNewConfig.getSignKey(), JdPayConstant.UTF8); + commonParam.put(JdPayConstant.SIGN_DATA, sign); + return GsonUtil.toJson(commonParam); + } + + /** + * 解密和验签 + */ + public static String decryptAndVerifySign(JdPayNewConfig jdPayNewConfig, String respText) throws Exception { + Map respMap = GsonUtil.fromJson(respText, new TypeToken>() { + }); + String code = respMap.get(JdPayConstant.CODE); + if (!JdPayConstant.SUCCESS_CODE.equals(code)) { + return respText; + } + if (!respMap.containsKey(JdPayConstant.SIGN_DATA)) { + throw new Exception(String.format("No sign field in response: %s", respText)); + } + String sign = respMap.remove(JdPayConstant.SIGN_DATA); + String signType = respMap.get(JdPayConstant.SIGN_TYPE); + String charset = respMap.get(JdPayConstant.CHARSET); + boolean isRespSignValid = SignUtil.verify(sign, respMap, signType, jdPayNewConfig.getSignKey(), charset); + if (!isRespSignValid) { + throw new Exception(String.format("Invalid sign value in response: %s", respText)); + } + return SignUtil.decodeBase64(respMap.get(JdPayConstant.RESP_DATA), respMap.get(JdPayConstant.CHARSET), false, false); + } + + /** + * 组装api公共参数赋值 + */ + private static Map fillCommonParam(String merchantNo, String reqNo) { + + Map reqMap = new HashMap<>(); + // 二级商户号 + reqMap.put(JdPayConstant.MERCHANT_NO, merchantNo); + //商户生成的唯一标识,可以与outTradeNo一致 + reqMap.put(JdPayConstant.REQ_NO, reqNo); + //字符集 + reqMap.put(JdPayConstant.CHARSET, JdPayConstant.UTF8); + //固定值 + reqMap.put(JdPayConstant.FORMAT_TYPE, JdPayConstant.JSON); + //签名类型 + reqMap.put(JdPayConstant.SIGN_TYPE, JdPayConstant.SHA256); + //固定值,证书加密 + reqMap.put(JdPayConstant.ENC_TYPE, JdPayConstant.AP7); + return reqMap; + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/SignUtil.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/SignUtil.java new file mode 100644 index 00000000..ef3b0ec1 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/util/SignUtil.java @@ -0,0 +1,147 @@ +package com.hzs.third.pay.jdpay.util; + +import com.hzs.third.pay.jdpay.sdk.JdPayConstant; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.codec.binary.BaseNCodec; +import org.apache.commons.codec.digest.DigestUtils; + +import java.io.UnsupportedEncodingException; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Map; + +public class SignUtil { + + private static final String[] HEX_STRINGS; + + static { + HEX_STRINGS = new String[256]; + for (int i = 0; i < 256; i++) { + StringBuilder d = new StringBuilder(2); + char ch = Character.forDigit(((byte) i >> 4) & 0x0F, 16); + d.append(Character.toUpperCase(ch)); + ch = Character.forDigit((byte) i & 0x0F, 16); + d.append(Character.toUpperCase(ch)); + HEX_STRINGS[i] = d.toString(); + } + } + + /** + * 计算签名 + * + * @param map 有key和value的map,使用=和&拼接所有参数, + * "sign_type", "sign_data", "encrypt_type", "encrypt_data"不参加计算 + * @param algorithm 签名算法 MD5, SHA-1, SHA-256 + * @param salt 签名密钥 + * @param charset 字符串编码 + * @return 签名 + */ + public static String sign(Map map, String algorithm, String salt, String charset) throws UnsupportedEncodingException { + String linkString = map2LinkString(map); + String data = linkString + salt; + return digestHex(algorithm, data, charset); + } + + /** + * 验证签名正确性。 + * + * @param sign 签名数据 + * @param map 数据 + * @param algorithm 签名算法 MD5, SHA-1, SHA-256 + * @param salt 签名密钥 + * @param charset 字符串 + * @return 验证结果 + */ + public static boolean verify(String sign, + Map map, + String algorithm, + String salt, + String charset) throws UnsupportedEncodingException { + if (sign == null || "".equals(sign.trim()) || map.size() == 0) { + return false; + } + String newSign = sign(map, algorithm, salt, charset); + return newSign.equals(sign); + } + + /** + * 验证页面回调 + * + * @param respMap 页面回调参数 + * @param signKey signKey + * @return 验证结果 + * @throws NoSuchAlgorithmException + */ + public static boolean verifyPageCallBackSign(Map respMap, String signKey) throws UnsupportedEncodingException { + String sign = respMap.remove("sign"); + String newSign = sign(respMap, JdPayConstant.SHA256, signKey, JdPayConstant.UTF8); + return newSign.equals(sign); + } + + /** + * 将MAP数据用=和&拼接成String + * + * @param map 数据 + * @return 字符串 + */ + public static String map2LinkString(Map map) { + ArrayList mapKeys = new ArrayList(map.keySet()); + Collections.sort(mapKeys); + StringBuilder link = new StringBuilder(2048); + for (String key : mapKeys) { + String value = map.get(key); + // 属性为空不参与签名 + if (value == null || "".equals(value.trim())) { + continue; + } + link.append(key).append("=").append(value).append("&"); + } + // 删除末尾的& + link.deleteCharAt(link.length() - 1); + return link.toString(); + } + + /** + * 对数据进行指定算法的数据摘要 + * + * @param algorithm 算法名,如MD2, MD5, SHA-1, SHA-256, SHA-512 + * @param data 待计算的数据 + * @param charset 字符串的编码 + * @return 摘要结果 + */ + public static String digestHex(String algorithm, String data, String charset) throws UnsupportedEncodingException { + byte[] digest = DigestUtils.getDigest(algorithm).digest(data.getBytes(charset)); + return hexString(digest); + } + + /** + * 将字节数组转换成HEX String + * + * @param b + * @return HEX String + */ + public static String hexString(byte[] b) { + StringBuilder d = new StringBuilder(b.length * 2); + for (byte aB : b) { + d.append(HEX_STRINGS[(int) aB & 0xFF]); + } + return d.toString(); + } + + /** + * 对数据进行BASE64解码 + * + * @param base64Data Base64数据 + * @param charset 解码的编码格式 + * @param urlSafe 是否是URL安全的,如果为true,则将会被URL编码的'+', '/'转成'-', '_' + * @param oneLine 是否是一行 + * @return 解码后数据 + */ + public static String decodeBase64(String base64Data, String charset, boolean urlSafe, boolean oneLine) throws UnsupportedEncodingException { + Base64 base64 = oneLine ? new Base64(BaseNCodec.MIME_CHUNK_SIZE, null, urlSafe) : new Base64(urlSafe); + byte[] binaryData = base64.decode(base64Data); + return new String(binaryData, charset); + } + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/mapper/TOnlinePaymentSepAccDMapper.java b/bd-third/src/main/java/com/hzs/third/pay/mapper/TOnlinePaymentSepAccDMapper.java new file mode 100644 index 00000000..2d355e24 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/mapper/TOnlinePaymentSepAccDMapper.java @@ -0,0 +1,16 @@ +package com.hzs.third.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAccD; + +/** + *

+ * 支付请求子表(分账) Mapper 接口 + *

+ * + * @author bd + * @since 2025-07-01 + */ +public interface TOnlinePaymentSepAccDMapper extends BaseMapper { + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/mapper/TOnlinePaymentSepAccMapper.java b/bd-third/src/main/java/com/hzs/third/pay/mapper/TOnlinePaymentSepAccMapper.java new file mode 100644 index 00000000..3a4f9d63 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/mapper/TOnlinePaymentSepAccMapper.java @@ -0,0 +1,17 @@ +package com.hzs.third.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAcc; +import org.apache.ibatis.annotations.Param; + +/** + *

+ * 支付请求主表 Mapper 接口 + *

+ * + * @author bd + * @since 2025-07-01 + */ +public interface TOnlinePaymentSepAccMapper extends BaseMapper { + TOnlinePaymentSepAcc getSepAccByOrderCode(@Param("orderCode") String orderCode); +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePayConfigParam.java b/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePayConfigParam.java index 04a8a728..e253b9a7 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePayConfigParam.java +++ b/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePayConfigParam.java @@ -12,23 +12,34 @@ import lombok.Data; @Data public class OnlinePayConfigParam { - /** - * 宝付微信 - */ - private Boolean pay11 = Boolean.FALSE; - /** - * 宝付微信扫码 - */ - private Boolean pay12 = Boolean.FALSE; +// /** +// * 京东银行卡 +// */ +// private Boolean pay4 = Boolean.FALSE; /** - * 汇付微信 + * 京东收银台(H5) */ - private Boolean pay13 = Boolean.FALSE; + private Boolean pay5 = Boolean.FALSE; + /** - * 汇付银行卡 + * 京东收银台(PC) */ - private Boolean pay15 = Boolean.FALSE; + private Boolean pay6 = Boolean.FALSE; + +// /** +// * 微信APP +// */ +// private Boolean pay20 = Boolean.FALSE; + + /** + * 通联微信 + */ + private Boolean pay32 = Boolean.FALSE; + /** + * 通联银行卡 + */ + private Boolean pay33 = Boolean.FALSE; /** * 新汇付PC微信扫码支付 @@ -38,13 +49,5 @@ public class OnlinePayConfigParam { * 新汇付PC支付宝扫码支付 */ private Boolean pay82 = Boolean.FALSE; - /** - * 新汇付H5微信支付 - */ - private Boolean pay83 = Boolean.FALSE; - /** - * 新汇付H5支付宝支付 - */ - private Boolean pay84 = Boolean.FALSE; } diff --git a/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePaymentParam.java b/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePaymentParam.java index 3cc8d64d..14bfcde1 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePaymentParam.java +++ b/bd-third/src/main/java/com/hzs/third/pay/param/OnlinePaymentParam.java @@ -75,4 +75,10 @@ public class OnlinePaymentParam { private Integer systemType; + /** + * 订单类型 EOrderType + * -1为充值 + */ + private Integer orderType; + } diff --git a/bd-third/src/main/java/com/hzs/third/pay/param/PayParam.java b/bd-third/src/main/java/com/hzs/third/pay/param/PayParam.java new file mode 100644 index 00000000..547156cb --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/param/PayParam.java @@ -0,0 +1,43 @@ +package com.hzs.third.pay.param; + +import lombok.Data; + +/** + * 支付入参 + */ +@Data +public class PayParam { + + /** + * 业务类型(EPayBusinessType) + */ + private Integer businessType; + /** + * 业务单号 + */ + private String businessCode; + + /** + * 支付渠道(EPayChannel) + */ + private Integer payChannel; + /** + * 支付类型(EPayType) + */ + private Integer payType; + + /** + * 绑卡编号(银行卡支付使用) + */ + private String bindCode; + + /** + * 小程序支付标记(为0则小程序支付) + */ + private Integer appletFlag; + + /** + * 支付-前端回调页面的扩展参数 + */ + private String extParam; +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/param/UnifiedOrderParam.java b/bd-third/src/main/java/com/hzs/third/pay/param/UnifiedOrderParam.java index 72aaef01..4c9bc23f 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/param/UnifiedOrderParam.java +++ b/bd-third/src/main/java/com/hzs/third/pay/param/UnifiedOrderParam.java @@ -47,4 +47,9 @@ public class UnifiedOrderParam implements Serializable { */ private Integer appletFlag; + /** + * 支付-前端回调页面的扩展参数 + */ + private String extParam; + } diff --git a/bd-third/src/main/java/com/hzs/third/pay/provider/ITOnlinePaymentServiceProvider.java b/bd-third/src/main/java/com/hzs/third/pay/provider/ITOnlinePaymentServiceProvider.java new file mode 100644 index 00000000..d1b2744c --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/provider/ITOnlinePaymentServiceProvider.java @@ -0,0 +1,41 @@ +package com.hzs.third.pay.provider; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.hzs.common.core.domain.R; +import com.hzs.common.core.enums.EPayChannel; +import com.hzs.common.domain.third.pay.TOnlinePayment; +import com.hzs.third.pay.ITOnlinePaymentServiceApi; +import com.hzs.third.pay.service.IRefundService; +import com.hzs.third.pay.service.ITOnlinePaymentService; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Objects; + +@DubboService +public class ITOnlinePaymentServiceProvider implements ITOnlinePaymentServiceApi { + @Autowired + private ITOnlinePaymentService itOnlinePaymentService; + @Autowired + private IRefundService iRefundService; + @Override + public R getOnlinePayment(String orderNo) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(TOnlinePayment::getBusinessCode, orderNo); + return R.ok(itOnlinePaymentService.getOne(queryWrapper, false)); + } + + @Override + public R refund(String orderNo, Long userId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(TOnlinePayment::getBusinessCode, orderNo); + TOnlinePayment tOnlinePayment = itOnlinePaymentService.getOne(queryWrapper, false); + if(ObjectUtil.isNotEmpty(tOnlinePayment)){ + if (Objects.requireNonNull(EPayChannel.getEnumByValue(tOnlinePayment.getPayChannel())) == EPayChannel.JD) { + return R.ok(iRefundService.jdRefundDivision(orderNo, userId)); + } + } + return R.fail(); + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java b/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java index 41d1445f..ccd9a9d1 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java @@ -1,23 +1,21 @@ package com.hzs.third.pay.service; import com.hzs.common.core.domain.R; +import com.hzs.common.core.enums.EDataSource; import com.hzs.common.domain.third.pay.TOnlinePayment; /** - * @Description: 京东支付服务 - * @Author: jiang chao - * @Time: 2025/2/6 9:57 - * @Classname: IJdPayService - * @PackageName: com.hzs.third.pay.service + * 京东支付服务 */ public interface IJdPayService { /** - * 京东收银台支付 + * 收银台支付 * - * @param tOnlinePayment 在线支付信息 + * @param onlinePayment + * @param dataSource * @return */ - R cashDeskPay(TOnlinePayment tOnlinePayment); + R cashRegister(TOnlinePayment onlinePayment, EDataSource dataSource); } diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java b/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java index 7bf20566..00ebce12 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java @@ -27,6 +27,10 @@ public interface IPayService { boolean notifyHandle(String businessType, String businessCode, String originalOrder, String payNumber, Date payTime, BigDecimal payMoney, EPayChannel ePayChannel, String channelNumber); + boolean notifyHandle(String businessType, String businessCode, String originalOrder, + String payNumber, Date payTime, BigDecimal payMoney, + EPayChannel ePayChannel, String channelNumber, Integer payType, String acqOrderId); + /** * 业务处理重试 diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/IRefundService.java b/bd-third/src/main/java/com/hzs/third/pay/service/IRefundService.java index e2dc4dc2..54ab541a 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/IRefundService.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/IRefundService.java @@ -2,36 +2,24 @@ package com.hzs.third.pay.service; import com.hzs.common.core.enums.EPayChannel; import com.hzs.common.domain.third.pay.TOnlinePayment; -import com.hzs.common.domain.third.pay.TOnlineRefund; +import com.hzs.third.pay.dto.RefundDTO; import java.math.BigDecimal; import java.util.Date; /** - * @Description: 基础退款服务 - * @Author: jiang chao - * @Time: 2023/8/16 17:00 - * @Classname: IRefundService - * @PackageName: com.hzs.third.pay.service + * 基础退款服务 */ public interface IRefundService { /** - * 新汇付退款处理 + * 通联退款处理 * - * @param tOnlinePayment 在线支付信息 + * @param refundDTO 业务类型 + * @param tOnlinePayment 退款对应支付信息 * @return */ - String huifuRefundHandle(TOnlinePayment tOnlinePayment); - - /** - * 新汇付退款查询 - * - * @param tOnlineRefund 退款信息 - * @return - */ - String queryHuifuRefundHandle(TOnlineRefund tOnlineRefund); - + String allInRefundHandle(RefundDTO refundDTO, TOnlinePayment tOnlinePayment); /** * 退款回调成功处理 @@ -56,4 +44,25 @@ public interface IRefundService { */ boolean notifyErrorHandle(EPayChannel ePayChannel, String refundCode, String refundNumber, String errorMsg); + + /** + * 京东退款处理 + * + * @param refundDTO 业务类型 + * @param tOnlinePayment 退款对应支付信息 + * @return + */ + String jdRefundHandle(RefundDTO refundDTO, TOnlinePayment tOnlinePayment); + + /** + * 京东收银台退款处理 + * + * @param refundDTO 业务类型 + * @param tOnlinePayment 退款对应支付信息 + * @return + */ + String jdCashRefundHandle(RefundDTO refundDTO, TOnlinePayment tOnlinePayment); + + String jdRefundDivision(String orderCode, Long userId); + String jdQueryEnterpriseWalletBalance(); } diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentSepAccDService.java b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentSepAccDService.java new file mode 100644 index 00000000..4cf631ee --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentSepAccDService.java @@ -0,0 +1,16 @@ +package com.hzs.third.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAccD; + +/** + *

+ * 支付请求子表(分账) 服务类 + *

+ * + * @author bd + * @since 2025-07-01 + */ +public interface ITOnlinePaymentSepAccDService extends IService { + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentSepAccService.java b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentSepAccService.java new file mode 100644 index 00000000..8f48f38a --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentSepAccService.java @@ -0,0 +1,18 @@ +package com.hzs.third.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAcc; + +/** + *

+ * 支付请求主表 服务类 + *

+ * + * @author bd + * @since 2025-07-01 + */ +public interface ITOnlinePaymentSepAccService extends IService { + void saveOrUpdateReq(TOnlinePaymentSepAcc tOnlinePaymentSepAcc); + + TOnlinePaymentSepAcc getSepAccByOrderCode(String code); +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentService.java b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentService.java index 5507fdbc..8bc0bb88 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentService.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlinePaymentService.java @@ -9,9 +9,6 @@ import java.util.List; /** * 在线支付信息 服务类 - * - * @author hzs - * @since 2022-07-28 */ public interface ITOnlinePaymentService extends IService { diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlineRefundService.java b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlineRefundService.java index f246c48c..adf43df1 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlineRefundService.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/ITOnlineRefundService.java @@ -9,9 +9,6 @@ import java.util.List; /** * 在线退款信息 服务类 - * - * @author hzs - * @since 2023-08-16 */ public interface ITOnlineRefundService extends IService { diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java index 3d4329c8..9708e4d7 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java @@ -1,23 +1,199 @@ package com.hzs.third.pay.service.impl; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.domain.R; +import com.hzs.common.core.enums.EDataSource; +import com.hzs.common.core.enums.EEnv; +import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.third.pay.TOnlinePayment; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAcc; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAccD; +import com.hzs.common.security.utils.SecurityUtils; +import com.hzs.third.pay.config.JdPayBankProperties; +import com.hzs.third.pay.config.JdPayConfig; +import com.hzs.third.pay.config.JdPaySeparateAccountConfig; +import com.hzs.third.pay.config.JdPayWechatAlipayProperties; +import com.hzs.third.pay.jdpay.dto.JdPayAggregateCreateOrderRequest; +import com.hzs.third.pay.jdpay.dto.JdPayAggregateCreateOrderResponse; +import com.hzs.third.pay.jdpay.dto.JdPayDivisionAccount; +import com.hzs.third.pay.jdpay.dto.JdPayDivisionAccountTradeInfo; +import com.hzs.third.pay.jdpay.sdk.JdPay; +import com.hzs.third.pay.jdpay.util.GsonUtil; import com.hzs.third.pay.service.IJdPayService; +import com.hzs.third.pay.service.ITOnlineCardService; +import com.hzs.third.pay.service.ITOnlinePaymentSepAccService; +import com.hzs.third.pay.service.ITOnlinePaymentService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + /** - * @Description: 京东支付服务 - * @Author: jiang chao - * @Time: 2025/2/6 9:57 - * @Classname: JdPayServiceImpl - * @PackageName: com.hzs.third.pay.service.impl + * 京东支付服务 */ +@Slf4j @Service public class JdPayServiceImpl implements IJdPayService { + @Autowired + private JdPayConfig jdPayConfig; + @Autowired + private ITOnlineCardService itOnlineCardService; + @Resource(name = "jdPayBank") + private JdPay jdPay; + @Autowired + private JdPayBankProperties jdPayBankProperties; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private ITOnlinePaymentSepAccService itOnlinePaymentSepAccService; + + @Autowired + private ITOnlinePaymentService itOnlinePaymentService; + + @Resource + private JdPayWechatAlipayProperties jdPayWechatAlipayProperties; + @Override - public R cashDeskPay(TOnlinePayment tOnlinePayment) { - return null; + public R cashRegister(TOnlinePayment onlinePayment, EDataSource dataSource) { + try { + // 交易场景(ONLINE_APP:线上移动端 ONLINE_PC:线上PC) + String sceneType = "ONLINE_APP"; + // 交易类型(AGGRE:聚合收银台 AGGRE_QR:PC扫码) + String tradeType = "AGGRE"; + if (null != dataSource && EDataSource.PC.getValue().equals(dataSource.getValue())) { + sceneType = "ONLINE_PC"; + tradeType = "AGGRE_QR"; + } + +// String userId = onlinePayment.getPkCreator().toString(); + String userId = SecurityUtils.getMemberCode(); + if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) { + userId = "T_" + userId; + } + + JdPayAggregateCreateOrderRequest request = JdPayAggregateCreateOrderRequest.builder() + // 商户订单号(最大32位) + .outTradeNo(onlinePayment.getBusinessCode()) + // 订单总金额(单位:分) + .tradeAmount(onlinePayment.getPayMoney().multiply(new BigDecimal("100")).intValue() + "") + // 订单创建时间(最大14位:yyyyMMddHHmmss) + .createDate(DateUtils.parseDateToFormat(DateUtils.YAMMERERS, onlinePayment.getCreationTime())) + // 订单有效时长(分钟) + .tradeExpiryTime("1440") + // 交易名称 + .tradeSubject("支付:" + onlinePayment.getBusinessCode()) + // 交易描述 + .tradeRemark("支付:" + onlinePayment.getBusinessCode()) + // 币种 + .currency("CNY") + // 用户IP + .userIp(InetAddress.getLocalHost().getHostAddress()) + // 通道业务类型 + .bizTp("100001") + // 回传字段 + .returnParams(onlinePayment.getBusinessType().toString()) + // 用户标识(收银台必传) + .userId(userId) + // 同步通知URL(收银台必传,页面回调地址) + .pageBackUrl(jdPayBankProperties.getPageBackUrl() + "?extParam=" + onlinePayment.getExtParam()) + .callbackUrl(jdPayBankProperties.getPageBackUrl() + "?extParam=" + onlinePayment.getExtParam()) + // 支付回调地址 + .notifyUrl(jdPayBankProperties.getNotifyUrl()) + // 交易类型 + .tradeType(tradeType) + // 交易场景(ONLINE_APP:线上移动端 ONLINE_PC:线上PC) + .sceneType(sceneType) + .accessType("MINIAPP") + .build(); + + + JdPayDivisionAccount divisionAccount = new JdPayDivisionAccount(); + List divisionAccountTradeInfoList = new ArrayList(); + List sepAccDList = new ArrayList<>(); + if(ObjectUtil.isNotEmpty(jdPayBankProperties)){ + List separateAccounts = jdPayBankProperties.getSeparateAccounts(); + separateAccounts.sort(Comparator.comparing(JdPaySeparateAccountConfig::getProportion).reversed()); + if(ObjectUtil.isNotEmpty(separateAccounts)){ + BigDecimal tradeAmount = onlinePayment.getPayMoney(); + BigDecimal remaining = onlinePayment.getPayMoney(); + for (int i = 0; i < separateAccounts.size(); i++) { + JdPaySeparateAccountConfig separateAccount = separateAccounts.get(i); + BigDecimal subTradeAmount; + if(i == separateAccounts.size() - 1){ + subTradeAmount = remaining; + log.info("分账 最后一个账户( 总 - 已分账 ) : {}, {}", subTradeAmount, remaining); + onlinePayment.setSubAccountMoney(subTradeAmount); + }else{ + subTradeAmount = tradeAmount.subtract(tradeAmount.multiply(separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN)).setScale(2, BigDecimal.ROUND_DOWN)); + remaining = remaining.subtract(subTradeAmount).setScale(2, BigDecimal.ROUND_DOWN); + onlinePayment.setMainAccountMoney(subTradeAmount); + log.info("分账 过程 : {}, {}, {}", subTradeAmount, remaining, separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN)); + } + JdPayDivisionAccountTradeInfo divisionAccountTradeInfo = new JdPayDivisionAccountTradeInfo(); + divisionAccountTradeInfo.setMerchantNo(separateAccount.getAccount()); + divisionAccountTradeInfo.setOutTradeNo(onlinePayment.getBusinessCode() + "_" + (i + 1)); + divisionAccountTradeInfo.setTradeAmount(subTradeAmount.multiply(new BigDecimal(100)).intValue() + ""); + divisionAccountTradeInfoList.add(divisionAccountTradeInfo); + sepAccDList.add( + TOnlinePaymentSepAccD.builder() + .account(separateAccount.getAccount()) + .proportion(separateAccount.getProportion()) + .tradeAmount(subTradeAmount) + .outTradeNo(divisionAccountTradeInfo.getOutTradeNo()) + .build() + ); + } + } + } + + divisionAccount.setVersion( "V2" ); + divisionAccount.setDivisionAccountTradeInfoList(divisionAccountTradeInfoList); + request.setDivisionAccount(GsonUtil.toJson(divisionAccount)); + + // 请求京东支付接口 + JdPayAggregateCreateOrderResponse response = jdPay.aggregateCreateOrder(request); + TOnlinePaymentSepAcc sepAcc = TOnlinePaymentSepAcc.builder() + .sepAccDList(sepAccDList) + .reqContent(request.getDivisionAccount()) + .reqContentSepAcc(JSONUtil.toJsonStr(divisionAccountTradeInfoList)) + .version(divisionAccount.getVersion()) + .respContent(JSONUtil.toJsonStr(response)) + .tradeAmount(onlinePayment.getPayMoney()) + .outTradeNo(request.getOutTradeNo()) + .build(); + if ("00000".equals(response.getResultCode())) { + // 请求响应成功 + // 京东唯一订单号 + onlinePayment.setPayNumber(response.getTradeNo()); + // 将controller内入库逻辑移至此为止 + onlinePayment.setPayMoney(null); + itOnlinePaymentService.saveOrUpdate(onlinePayment); + // 2025年7月1日 保存分账主表&子表 + sepAcc.setPkPayment(onlinePayment.getPkId()); + itOnlinePaymentSepAccService.saveOrUpdateReq(sepAcc); + if ("AGGRE_QR".equals(tradeType)) { + return R.ok(response.getQrCode()); + } + return R.ok(response.getWebUrl()); + } else { + log.error("京东收银台返回失败,resultDesc: {}", response.getResultDesc()); + return R.fail("调用京东收银台返回失败"); + } + } catch (Exception e) { + log.error("京东收银台处理异常!", e); + return R.fail("京东收银台处理异常"); + } } + } diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java index 9e5268a2..b6ea67f3 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java @@ -1,5 +1,6 @@ package com.hzs.third.pay.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.common.core.constant.MagicNumberConstants; import com.hzs.common.core.constant.RabbitMqConstants; @@ -10,7 +11,8 @@ import com.hzs.member.account.IMemberTradeServiceApi; import com.hzs.retail.sale.IRetailOrderServiceApi; import com.hzs.sale.ticket.ITicketServiceApi; import com.hzs.third.mq.dto.RefundOrderDTO; -import com.hzs.third.pay.service.*; +import com.hzs.third.pay.service.IPayService; +import com.hzs.third.pay.service.ITOnlinePaymentService; import com.hzs.third.pay.util.PayUtil; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -58,7 +60,9 @@ public class PayServiceImpl implements IPayService { String payNumber, Date payTime, BigDecimal payMoney, EPayChannel ePayChannel, String channelNumber) { // 校验支付信息状态、业务与支付金额是否一致等 - TOnlinePayment onlinePayment = itOnlinePaymentService.queryByBusiness(Integer.valueOf(businessType), businessCode, null); + TOnlinePayment onlinePayment = itOnlinePaymentService.queryByBusiness( + ObjectUtil.isNotEmpty(businessType) ? Integer.valueOf(businessType) : null + , businessCode, null); if (null == onlinePayment || EPayStatus.PAID.getValue() == onlinePayment.getPayStatus()) { log.error("支付信息不存在或已支付"); return false; @@ -103,6 +107,60 @@ public class PayServiceImpl implements IPayService { return false; } + @Override + public boolean notifyHandle(String businessType, String businessCode, String originalOrder, String payNumber, + Date payTime, BigDecimal payMoney, EPayChannel ePayChannel, String channelNumber, + Integer payType, String acqOrderId) { + // 校验支付信息状态、业务与支付金额是否一致等 + TOnlinePayment onlinePayment = itOnlinePaymentService.queryByBusiness( + ObjectUtil.isNotEmpty(businessType) ? Integer.valueOf(businessType) : null + , businessCode, null); + if (null == onlinePayment || EPayStatus.PAID.getValue() == onlinePayment.getPayStatus()) { + log.error("支付信息不存在或已支付"); + return false; + } + + try { + if (!PayUtil.checkAmount(onlinePayment.getBusinessMoney(), payMoney)) { + // 业务金额 大于 实际支付金额 + log.error("业务金额大于实际支付金额,支付编号:{}, 支付金额:{}", onlinePayment.getPaymentCode(), payMoney); + } + + onlinePayment.setPayStatus(EPayStatus.PAID.getValue()); + onlinePayment.setPayNumber(payNumber); + onlinePayment.setPayTime(payTime); + onlinePayment.setPayMoney(payMoney); + onlinePayment.setOriginalOrder(originalOrder); + onlinePayment.setChannelNumber(channelNumber); + onlinePayment.setPkModified(MagicNumberConstants.PK_ADMIN); + onlinePayment.setModifiedTime(new Date()); + onlinePayment.setPayType(payType); + onlinePayment.setChannelNumber(acqOrderId); + if (null != ePayChannel) { + onlinePayment.setPayChannel(ePayChannel.getValue()); + } + // 更新支付相关信息 + if (itOnlinePaymentService.updateById(onlinePayment)) { + // 进行支付业务处理 + this.handleBusiness(onlinePayment, true); + // 更新业务处理信息 + itOnlinePaymentService.updateById(onlinePayment); + + return true; + } + } catch (Exception e) { + log.error("在线支付信息回调处理异常", e); + + // 更新业务处理信息 + itOnlinePaymentService.update(Wrappers.lambdaUpdate() + .eq(TOnlinePayment::getPkId, onlinePayment.getPkId()) + .set(TOnlinePayment::getCallbackStatus, ECallbackStatus.FAIL.getValue()) + .set(TOnlinePayment::getCallbackInfo, e.getMessage()) + ); + } + return false; + } + @Override public boolean retryHandle(TOnlinePayment tOnlinePayment, boolean mqPush) { // 支付业务处理 diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/RefundServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/RefundServiceImpl.java index e9f0a57d..08a5a5be 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/RefundServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/RefundServiceImpl.java @@ -1,165 +1,66 @@ package com.hzs.third.pay.service.impl; import cn.hutool.json.JSONUtil; -import com.huifu.bspay.sdk.opps.client.BasePayClient; -import com.huifu.bspay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest; -import com.huifu.bspay.sdk.opps.core.request.V2TradePaymentScanpayRefundqueryRequest; -import com.huifu.bspay.sdk.opps.core.utils.DateTools; -import com.hzs.common.core.constant.MagicNumberConstants; -import com.hzs.common.core.domain.R; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.*; +import com.hzs.common.core.utils.CommonUtil; +import com.hzs.common.core.utils.DateUtils; +import com.hzs.common.core.utils.StringUtils; import com.hzs.common.domain.third.pay.TOnlinePayment; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAcc; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAccD; import com.hzs.common.domain.third.pay.TOnlineRefund; import com.hzs.common.domain.third.pay.ext.TOnlineRefundExt; import com.hzs.sale.refund.ISaRefundServiceApi; -import com.hzs.third.pay.config.HuiFuConfig; -import com.hzs.third.pay.constants.HuiFuPayConstants; -import com.hzs.third.pay.service.IRefundService; -import com.hzs.third.pay.service.ITOnlineRefundService; +import com.hzs.third.pay.config.JdPayBankProperties; +import com.hzs.third.pay.config.JdPayConfig; +import com.hzs.third.pay.dto.RefundDTO; +import com.hzs.third.pay.jdpay.dto.*; +import com.hzs.third.pay.jdpay.sdk.JdPay; +import com.hzs.third.pay.jdpay.util.GsonUtil; +import com.hzs.third.pay.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.math.BigDecimal; -import java.text.DecimalFormat; -import java.util.*; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; /** - * @Description: 基础退款服务 - * @Author: jiang chao - * @Time: 2023/8/16 17:00 - * @Classname: RefundServiceImpl - * @PackageName: com.hzs.third.pay.service.impl + * 基础退款服务 */ @Slf4j @Service public class RefundServiceImpl implements IRefundService { - - @Autowired - private HuiFuConfig huiFuConfig; @Autowired private ITOnlineRefundService itOnlineRefundService; + @Autowired + private JdPayConfig jdPayConfig; @DubboReference ISaRefundServiceApi iSaRefundServiceApi; - @Override - public String huifuRefundHandle(TOnlinePayment tOnlinePayment) { - // 返回信息 - String returnStr = null; - try { - // 退款单号 - String refundCode = CommonUtil.createSerialNumber(EOrderPrefix.REFUND_CODE); - // 保存退款信息 - TOnlineRefund tOnlineRefund = TOnlineRefund.builder() - .refundCode(refundCode) - .businessCode(tOnlinePayment.getBusinessCode()) - .refundStatus(ERefundStatus.REFUND_REQUEST.getValue()) - .refundMoney(tOnlinePayment.getPayMoney()) - .refundChannel(tOnlinePayment.getPayChannel()) - .pkOnlinePayment(tOnlinePayment.getPkId()) - .build(); - tOnlineRefund.setPkCreator(MagicNumberConstants.PK_ADMIN); - tOnlineRefund.setPkCountry(tOnlinePayment.getPkCountry()); - itOnlineRefundService.save(tOnlineRefund); + @Resource(name = "jdPayBank") + private JdPay jdPay; + @Resource + private JdPayBankProperties jdPayBankProperties; - // 组装交易参数 - V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest(); - // 请求日期 - request.setReqDate(DateTools.getCurrentDateYYYYMMDD()); - // 请求流水号(保证唯一) - request.setReqSeqId(refundCode); - // 商户号 - request.setHuifuId(huiFuConfig.getSysId()); - // 申请退款金额 - request.setOrdAmt(new DecimalFormat("#0.00").format(tOnlinePayment.getPayMoney())); - // 原交易请求日期 - request.setOrgReqDate(DateTools.dateToDateString(tOnlinePayment.getCreationTime(), DateTools.DATE_YYYYMMDD)); - // 设置非必填字段 - Map extendInfoMap = new HashMap<>(); - // 原交易流水号 - extendInfoMap.put("org_hf_seq_id", tOnlinePayment.getPayNumber()); - // 追加参数 - request.setExtendInfo(extendInfoMap); + @Autowired + private ITOnlinePaymentService itOnlinePaymentService; + @Autowired + private ITOnlinePaymentSepAccService sepAccService; + @Autowired + private ITOnlinePaymentSepAccDService sepAccDService; - log.info("新汇付退款调用参数:{}", JSONUtil.toJsonStr(request)); - - Map response = BasePayClient.request(request); - - log.info("新汇付退款调用返回:{}", JSONUtil.toJsonStr(response)); - - tOnlineRefund.setRefundNumber(response.get("hf_seq_id").toString()); - if (HuiFuPayConstants.TRANS_SUCCESS.equals(response.get("trans_stat").toString())) { - // 处理成功 - tOnlineRefund.setRefundStatus(ERefundStatus.REFUNDED.getValue()); - tOnlineRefund.setFinishTime(DateUtils.parseDateOne(response.get("trans_finish_time"), DateUtils.YAMMERERS)); - if (null != response.get("actual_ref_amt")) { - tOnlineRefund.setFinishMoney(new BigDecimal(response.get("actual_ref_amt").toString())); - } - } else if (HuiFuPayConstants.TRANS_PROCESSING.equals(response.get("trans_stat").toString())) { - // 处理中 - tOnlineRefund.setRefundStatus(ERefundStatus.REFUNDING.getValue()); - } else { - // 退款失败 - tOnlineRefund.setRefundStatus(ERefundStatus.REFUND_FAILED.getValue()); - tOnlineRefund.setErrorMsg(response.get("resp_desc").toString()); - - log.error("新汇付退款交易失败! resp_desc: {}, bank_message: {}, hf_seq_id: {}", response.get("resp_desc"), response.get("bank_message"), response.get("hf_seq_id")); - returnStr = "新汇付退款交易失败"; - } - - // 更新接口返回状态 - itOnlineRefundService.updateById(tOnlineRefund); - } catch (Exception e) { - log.error("新汇付退款处理异常", e); - returnStr = "新汇付退款处理异常:" + e.getMessage(); - } - return returnStr; - } @Override - public String queryHuifuRefundHandle(TOnlineRefund tOnlineRefund) { - try { - V2TradePaymentScanpayRefundqueryRequest request = new V2TradePaymentScanpayRefundqueryRequest(); - - // 商户号 - request.setHuifuId(huiFuConfig.getSysId()); - // 退款请求日期 - request.setOrgReqDate(DateTools.dateToDateString(tOnlineRefund.getCreationTime(), DateTools.DATE_YYYYMMDD)); - // 退款全局流水号退款请求流水号,退款全局流水号,终端订单号三选一不能都为空 - request.setOrgHfSeqId(tOnlineRefund.getRefundNumber()); - - log.info("新汇付退款查询调用参数:{}", JSONUtil.toJsonStr(request)); - - Map response = BasePayClient.request(request); - - log.info("新汇付退款查询调用返回:{}", JSONUtil.toJsonStr(response)); - - if (HuiFuPayConstants.TRANS_SUCCESS.equals(response.get("trans_stat").toString())) { - // 处理成功 - tOnlineRefund.setRefundStatus(ERefundStatus.REFUNDED.getValue()); - tOnlineRefund.setFinishTime(DateUtils.parseDateOne(response.get("trans_finish_time"), DateUtils.YAMMERERS)); - if (null != response.get("actual_ref_amt")) { - tOnlineRefund.setFinishMoney(new BigDecimal(response.get("actual_ref_amt").toString())); - } - } else if (HuiFuPayConstants.TRANS_PROCESSING.equals(response.get("trans_stat").toString())) { - // 处理中 - tOnlineRefund.setRefundStatus(ERefundStatus.REFUNDING.getValue()); - } else if (HuiFuPayConstants.TRANS_FAIL.equals(response.get("trans_stat").toString())) { - // 退款失败 - tOnlineRefund.setRefundStatus(ERefundStatus.REFUND_FAILED.getValue()); - tOnlineRefund.setErrorMsg(response.get("resp_desc").toString()); - } else { - return "新汇付退款查询状态:初始化,需要联系汇付技术人员处理"; - } - - return null; - } catch (Exception e) { - log.error("新汇付退款查询处理异常", e); - return "新汇付退款查询处理异常:" + e.getMessage(); - } + public String allInRefundHandle(RefundDTO refundDTO, TOnlinePayment tOnlinePayment) { + return null; } @Override @@ -189,7 +90,6 @@ public class RefundServiceImpl implements IRefundService { // 退款业务处理 if (StringUtils.isNotEmpty(onlineRefund.getPayBusinessCode())) { // 如果退款业务单号存在则进行业务回调处理,如果不存在则表示直接根据支付信息进行退款,不需要进行业务回调 - if (this.handleBusiness(onlineRefund)) { // 更新业务处理信息 if (itOnlineRefundService.updateById(onlineRefund)) { @@ -270,19 +170,19 @@ public class RefundServiceImpl implements IRefundService { // 服务调用返回信息 String resultMsg = ""; // 根据业务类型调用具体业务处理 dubbo 服务 - switch (businessType) { - case MEMBER_ORDER: - // 会员订单 - R saRefundR = iSaRefundServiceApi.onlinePayRefundCallback(onlineRefund.getPayBusinessCode(), onlineRefund.getBusinessCode(), onlineRefund.getRefundStatus(), onlineRefund.getErrorMsg()); - if (saRefundR.isSuccess()) { - resultBool = true; - } else { - resultBool = false; - resultMsg = saRefundR.getMsg(); - } - break; - default: - } +// switch (businessType) { +// case DIRECT_SELLING: +// // 直销订单 +// R saRefundR = iSaRefundServiceApi.onlinePayRefundCallback(onlineRefund.getPayBusinessCode(), onlineRefund.getRefundCode(), onlineRefund.getRefundStatus(), onlineRefund.getErrorMsg()); +// if (saRefundR.isSuccess()) { +// resultBool = true; +// } else { +// resultBool = false; +// resultMsg = saRefundR.getMsg(); +// } +// break; +// default: +// } if (null != resultBool) { if (resultBool) { @@ -304,4 +204,152 @@ public class RefundServiceImpl implements IRefundService { return false; } + + @Override + public String jdRefundHandle(RefundDTO refundDTO, TOnlinePayment tOnlinePayment) { + return null; + } + + @Override + public String jdCashRefundHandle(RefundDTO refundDTO, TOnlinePayment tOnlinePayment) { + try { + // 退款金额(默认按全款退) + BigDecimal amount = tOnlinePayment.getPayMoney(); + if (null != refundDTO.getRefundAmount()) { + // 如果传入实际退款金额,则按实际退款金额处理 + amount = refundDTO.getRefundAmount(); + } + + // 退款编号 + String refundCode = CommonUtil.createSerialNumber(EOrderPrefix.REFUND_CODE); + // 当前时间 + Date nowDate = new Date(); + + JdPayRefundRequest request = JdPayRefundRequest.builder() + // 退款订单号 + .outTradeNo(refundCode) + // 原订单号(需要退款的订单号) + .originalOutTradeNo(tOnlinePayment.getBusinessCode()) + // 退款时间 + .tradeDate(DateUtils.parseDateToFormat(DateUtils.YAMMERERS, nowDate)) + // 退款金额 + .tradeAmount(amount.multiply(new BigDecimal("100")).intValue() + "") + // 货币种类 + .currency("CNY") + // 退款回调地址 + .notifyUrl(jdPayBankProperties.getRefundNotifyUrl()) + // 回传信息 +// .returnParams("") + .build(); + + // 请求京东退款接口 + JdPayRefundResponse response = jdPay.refund(request); + + if ("0000".equals(response.getResultCode())) { + // 请求响应成功 + // 申请退款成功,保存退款 + TOnlineRefund tOnlineRefund = new TOnlineRefund(); + tOnlineRefund.setRefundCode(refundCode); + tOnlineRefund.setPkOnlinePayment(tOnlinePayment.getPkId()); + tOnlineRefund.setBusinessCode(refundDTO.getRefundBusinessCode()); + tOnlineRefund.setRefundMoney(amount); + tOnlineRefund.setRefundChannel(tOnlinePayment.getPayChannel()); + tOnlineRefund.setRefundNumber(response.getTradeNo()); + tOnlineRefund.setPkCountry(refundDTO.getPkCountry()); + tOnlineRefund.setPkCreator(refundDTO.getUserId()); + if (itOnlineRefundService.save(tOnlineRefund)) { + return null; + } else { + log.error("调用京东收银台退款入库处理失败,desc: {}", response.getResultDesc()); + return "退款失败,请联系系统管理员处理"; + } + } + log.error("调用京东收银台退款处理失败,desc: {}", response.getResultDesc()); + return "退款失败,请重试"; + } catch (Exception e) { + log.error("调用京东收银台退款处理返回异常!", e); + return "退款异常,请重试"; + } + } + + @Override + public String jdRefundDivision(String orderCode, Long userId) { + TOnlinePaymentSepAcc sepAcc = sepAccService.getSepAccByOrderCode(orderCode); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(TOnlinePaymentSepAccD::getPkSepAcc, sepAcc.getPkId()); + queryWrapper.eq(TOnlinePaymentSepAccD::getDelFlag, EDelFlag.UN_DELETE.getValue()); + queryWrapper.orderByAsc(TOnlinePaymentSepAccD::getPkId); + LambdaQueryWrapper paymentQueryWrapper = new LambdaQueryWrapper<>(); + paymentQueryWrapper.eq(TOnlinePayment::getBusinessCode, orderCode); + TOnlinePayment tOnlinePayment = itOnlinePaymentService.getOne(paymentQueryWrapper, false); + List sepAccDList = sepAccDService.list(queryWrapper); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + String now = sdf.format(new Date()); + String refundCode = "R_" + orderCode; + JdPayRefundRequest request = JdPayRefundRequest.builder() + .outTradeNo("R_" + orderCode) + .originalOutTradeNo(orderCode) + .tradeAmount(sepAcc.getTradeAmount().multiply(new BigDecimal("100")).intValue() + "") + .currency("CNY") + .tradeDate(now) + .returnParams("") + .notifyUrl(jdPayBankProperties.getRefundNotifyUrl()) + .build(); + + JdPayDivisionAccountRefund divisionAccountRefund = new JdPayDivisionAccountRefund(); + List divisionAccountTradeInfoList = new ArrayList<>(); + for (int i = 0; i < sepAccDList.size(); i++) { + TOnlinePaymentSepAccD sepAccD = sepAccDList.get(i); + JdPayDivisionAccountRefundInfo divisionAccountTradeInfo = new JdPayDivisionAccountRefundInfo(); + divisionAccountTradeInfo.setMerchantNo(sepAccD.getAccount()); + divisionAccountTradeInfo.setOutTradeNo("R_" + orderCode + "_" + ( i + 1 )); + divisionAccountTradeInfo.setOriginalOutTradeNo(sepAccD.getOutTradeNo()); + divisionAccountTradeInfo.setTradeAmount(sepAccD.getTradeAmount().multiply(new BigDecimal("100")).intValue() + ""); + divisionAccountTradeInfoList.add(divisionAccountTradeInfo); + } + divisionAccountRefund.setDivisionAccountRefundInfoList(divisionAccountTradeInfoList); + request.setDivisionAccountRefund(GsonUtil.toJson(divisionAccountRefund)); + try { + JdPayRefundResponse response = jdPay.refund(request); + log.info("JdPayRefundResponse -> {}", JSONUtil.toJsonStr(response)); + if ("0000".equals(response.getResultCode())) { + log.info("提交退款成功"); + TOnlineRefund tOnlineRefund = new TOnlineRefund(); + tOnlineRefund.setRefundCode(refundCode); + tOnlineRefund.setPkOnlinePayment(tOnlinePayment.getPkId()); + tOnlineRefund.setBusinessCode(tOnlinePayment.getBusinessCode()); + tOnlineRefund.setRefundMoney(tOnlinePayment.getPayMoney()); + tOnlineRefund.setRefundChannel(tOnlinePayment.getPayChannel()); + tOnlineRefund.setRefundNumber(response.getTradeNo()); + tOnlineRefund.setPkCountry(1); + tOnlineRefund.setPkCreator(userId); + itOnlineRefundService.save(tOnlineRefund); + return "提交退款成功"; + } else { + log.info("提交退款失败"); + return "提交退款失败!["+response.getResultDesc()+"]"; + } + } catch (Exception e) { + return "提交退款异常! ["+e.getMessage()+"]"; + } + } + + @Override + public String jdQueryEnterpriseWalletBalance() { + JdPayQueryEnterpriseWalletBalanceRequest request1 = JdPayQueryEnterpriseWalletBalanceRequest.builder() + .accountNo("153428607005") + .build(); + JdPayQueryEnterpriseWalletBalanceRequest request2 = JdPayQueryEnterpriseWalletBalanceRequest.builder() + .accountNo("153428607007") + .build(); + try { + JdPayQueryEnterpriseWalletBalanceResponse response1 = jdPay.queryEnterpriseWalletBalance(request1); + log.info("response1 -> {}", JSONUtil.toJsonStr(response1)); + JdPayQueryEnterpriseWalletBalanceResponse response2 = jdPay.queryEnterpriseWalletBalance(request2); + log.info("response2 -> {}", JSONUtil.toJsonStr(response2)); + } catch (Exception e) { + throw new RuntimeException(e); + } + return ""; + } } diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentSepAccDServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentSepAccDServiceImpl.java new file mode 100644 index 00000000..58929229 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentSepAccDServiceImpl.java @@ -0,0 +1,20 @@ +package com.hzs.third.pay.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAccD; +import com.hzs.third.pay.mapper.TOnlinePaymentSepAccDMapper; +import com.hzs.third.pay.service.ITOnlinePaymentSepAccDService; +import org.springframework.stereotype.Service; + +/** + *

+ * 支付请求子表(分账) 服务实现类 + *

+ * + * @author bd + * @since 2025-07-01 + */ +@Service +public class TOnlinePaymentSepAccDServiceImpl extends ServiceImpl implements ITOnlinePaymentSepAccDService { + +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentSepAccServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentSepAccServiceImpl.java new file mode 100644 index 00000000..dc014c05 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentSepAccServiceImpl.java @@ -0,0 +1,67 @@ +package com.hzs.third.pay.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.core.enums.EDelFlag; +import com.hzs.common.core.utils.DateUtils; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAcc; +import com.hzs.common.domain.third.pay.TOnlinePaymentSepAccD; +import com.hzs.common.security.utils.SecurityUtils; +import com.hzs.third.pay.mapper.TOnlinePaymentSepAccMapper; +import com.hzs.third.pay.service.ITOnlinePaymentSepAccDService; +import com.hzs.third.pay.service.ITOnlinePaymentSepAccService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + *

+ * 支付请求主表 服务实现类 + *

+ * + * @author bd + * @since 2025-07-01 + */ +@Service +public class TOnlinePaymentSepAccServiceImpl extends ServiceImpl implements ITOnlinePaymentSepAccService { + + @Autowired + private ITOnlinePaymentSepAccDService itOnlinePaymentSepAccDService; + @Override + public void saveOrUpdateReq(TOnlinePaymentSepAcc tOnlinePaymentSepAcc) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TOnlinePaymentSepAcc::getPkPayment, tOnlinePaymentSepAcc.getPkPayment()); + TOnlinePaymentSepAcc source = this.getOne(wrapper, false); + if(ObjectUtil.isNotEmpty(source)){ + tOnlinePaymentSepAcc.setPkId(source.getPkId()); + }else{ + tOnlinePaymentSepAcc.setCreationTime(DateUtils.currentDateTime()); + tOnlinePaymentSepAcc.setPkCreator(SecurityUtils.getUserId()); + } + tOnlinePaymentSepAcc.setDelFlag(EDelFlag.UN_DELETE.getValue()); + tOnlinePaymentSepAcc.setModifiedTime(DateUtils.currentDateTime()); + tOnlinePaymentSepAcc.setPkModified(SecurityUtils.getUserId()); + this.saveOrUpdate(tOnlinePaymentSepAcc); + LambdaQueryWrapper wrapperD = new LambdaQueryWrapper<>(); + wrapperD.eq(TOnlinePaymentSepAccD::getPkSepAcc, tOnlinePaymentSepAcc.getPkId()); + itOnlinePaymentSepAccDService.remove(wrapperD); + if(CollUtil.isNotEmpty(tOnlinePaymentSepAcc.getSepAccDList())){ + for (TOnlinePaymentSepAccD tOnlinePaymentSepAccD : tOnlinePaymentSepAcc.getSepAccDList()) { + tOnlinePaymentSepAccD.setPkSepAcc(tOnlinePaymentSepAcc.getPkId()); + tOnlinePaymentSepAccD.setCreationTime(DateUtils.currentDateTime()); + tOnlinePaymentSepAccD.setPkCreator(SecurityUtils.getUserId()); + tOnlinePaymentSepAccD.setModifiedTime(DateUtils.currentDateTime()); + tOnlinePaymentSepAccD.setPkModified(SecurityUtils.getUserId()); + tOnlinePaymentSepAccD.setDelFlag(EDelFlag.UN_DELETE.getValue()); + } + itOnlinePaymentSepAccDService.saveBatch(tOnlinePaymentSepAcc.getSepAccDList()); + } + + } + + @Override + public TOnlinePaymentSepAcc getSepAccByOrderCode(String code) { + return baseMapper.getSepAccByOrderCode(code); + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentServiceImpl.java index 49649f82..db5c6cbc 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/TOnlinePaymentServiceImpl.java @@ -1,7 +1,9 @@ package com.hzs.third.pay.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.core.enums.EOrderType; import com.hzs.common.domain.third.pay.TOnlinePayment; import com.hzs.common.domain.third.pay.ext.TOnlinePaymentExt; import com.hzs.third.pay.mapper.TOnlinePaymentMapper; @@ -36,7 +38,9 @@ public class TOnlinePaymentServiceImpl extends ServiceImpl queryList(OnlinePaymentParam param, Integer pkCountry) { - return baseMapper.queryList(param, pkCountry); + List result = baseMapper.queryList(param, pkCountry); + for (TOnlinePaymentExt tOnlinePaymentExt : result) { + if(ObjectUtil.isNotEmpty(tOnlinePaymentExt.getOrderType())){ + tOnlinePaymentExt.setOrderTypeVal(EOrderType.getLabelByValue(tOnlinePaymentExt.getOrderType())); + }else{ + tOnlinePaymentExt.setOrderTypeVal("充值订单"); + } + } + return result; } } diff --git a/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePayConfigVO.java b/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePayConfigVO.java index 6529c161..26c9fab7 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePayConfigVO.java +++ b/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePayConfigVO.java @@ -12,6 +12,52 @@ import lombok.Data; @Data public class OnlinePayConfigVO { + /** + * 京东银行卡 + */ + private Boolean pay4 = Boolean.FALSE; + + /** + * 京东收银台(H5) + */ + private Boolean pay5 = Boolean.FALSE; + /** + * 京东收银台(PC) + */ + private Boolean pay6 = Boolean.FALSE; + + /** + * 宝付微信 + */ + private Boolean pay11 = Boolean.FALSE; + /** + * 宝付微信扫码 + */ + private Boolean pay12 = Boolean.FALSE; + + /** + * 汇付微信 + */ + private Boolean pay13 = Boolean.FALSE; + /** + * 汇付银行卡 + */ + private Boolean pay15 = Boolean.FALSE; + + /** + * 微信APP + */ + private Boolean pay20 = Boolean.FALSE; + + /** + * 通联微信 + */ + private Boolean pay32 = Boolean.FALSE; + /** + * 通联银行卡 + */ + private Boolean pay33 = Boolean.FALSE; + /** * 新汇付PC微信扫码支付 */ @@ -20,13 +66,5 @@ public class OnlinePayConfigVO { * 新汇付PC支付宝扫码支付 */ private Boolean pay82 = Boolean.FALSE; - /** - * 新汇付H5微信支付 - */ - private Boolean pay83 = Boolean.FALSE; - /** - * 新汇付H5支付宝支付 - */ - private Boolean pay84 = Boolean.FALSE; } diff --git a/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java b/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java index 1f868f11..06593401 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java +++ b/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java @@ -1,7 +1,9 @@ package com.hzs.third.pay.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.hzs.common.core.annotation.BigDecimalFormat; import com.hzs.common.core.annotation.Excel; import com.hzs.common.core.annotation.Transaction; import com.hzs.common.core.constant.EnumsPrefixConstants; @@ -144,4 +146,22 @@ public class OnlinePaymentVO { */ private String callbackInfo; + /** + * 主账户金额 + */ + @Excel(name = "主账户金额") + @BigDecimalFormat + private BigDecimal mainAccountMoney; + + /** + * 子账户金额 + */ + @Excel(name = "子账户金额") + @BigDecimalFormat + private BigDecimal subAccountMoney; + + private Integer orderType; + + @Excel(name = "订单类型") + private String orderTypeVal; } diff --git a/bd-third/src/main/resources/jd/merchantCert011.pfx b/bd-third/src/main/resources/jd/merchantCert011.pfx new file mode 100644 index 0000000000000000000000000000000000000000..76e35682e9c8c1682d5a25a776f2f8b3ae2f3e8f GIT binary patch literal 3042 zcmcImc~}$I7N1Fmu!N-SDj3WYLBIktAt4EBDuy7N6j2coga8R(*%|_Zh>);V7NG*7 z1~m#=P(ct#-2ep_5Y(cASQHBqP~6x=W$ncFS>N})f8HPOyWhRv`Tfp4%bhuM?!aPv zF9yWIV*Fv8s(HF&`Ue823`)iLEJ%#cKDy3JDSZN5QpQG~`4*$26x*CX) zilI4J3{Am{accjjQRhTR<(c{ZA4axS-@{;(e}lwO_s>o@OzNv$iR?3it5``&O?lUy z+@x&Xxzm-w)wvblK3puU7YJze-l_OpZp^+(|ir z1Kr4@t^xlF*~QSdF1(BGs4~FPWxK*Gcs+f*>XzQwOgd4A9v#DDb*6rWxOHz()OLc@7wh% zG*5Dj0~TL4@*$;;WtNM1)vPtFZx-&qaxMRaX+5VEhtn~xvY(VBH(8Dyjh7`~aV>nG zmD=Xr$KqcNAXUo4Z7xPo7~1r>yBwb(_->21Y~ov9nvhF-BUqhbPWlCQ_`%PZ#L?Xh>zS5a&l_>3ytO=)#Njm$8_VjY2KG<73`|t z>*@38HtE;+&e?kZPm4JZ=*3NCt~w*Um2bHIv)vJ9C&%$s$NaK%8gkm}IyI&p1y6#{ zowK>*Vi;DT(aIx4SADfNt+qpuVfrjgYxcE<_CTb0O_f!fH9(6yO-mTNwZEzA;g|=( z|J}18{U9D@w7;T%^(Twr_E4hA6^i?4e$MSf$&H_cJ>k^h*RNZuf9)Ai?=iv08f<@% z>!7DaxlXnTZng0H6nq|D)RbbNjQmj)<{djEDolg><|rd8Fi^je=>UPC?r=`r_Bio8>k0J+bkYM?ss&taZ}~ zMve{Lg*mq#tSDXM08azsHK)zz|zw$vG$_{H9s{yv%WNdJzMxP2#Fs`QBk zyxP1aiwc|rJHOvLwJ~H$T~DKjAUOsZ9V22-HE_~jEnU`D7=BK)InHC*CZ^6p6O5#?2Sa1Rn-GQ~gv`bZ81P4JN008io ze@Gp~+0YT-0(`&*U6}w3(11X|0+khmhDuZbK^cXl&@w(tFc5%RP|?9h2N&R>IvzlW zeQ~NQa3BPV>6#$oZs-QA2SQO}0T2m9qmvH^0Wz==T@_3O5R4)=D#rs+C>M!h0qQIY z2>EP92HZdIi$zfo>Ry1hc+r>46&Hh&0PX$}D7^!n{I9z|7FDuP()LU5SJhJ(n4<qGgH@;eukP7)u;Bs% zg$C1MDom#!)^u+a+I$6JQ97axYyOpk+71C3O(2RJ5s#?DYJZ&x>uhh2aACi{Qtn?5{02aIHH;Vpfxc6u`x<#kQKr_bB5IC} zxJhkU3rsc?5p8`vR;6=YBAqXcrL{yocC-1BTGdPPa4pM?LZAW97~t{!!qgUaC0 z!@51g^s7-1E8D_cs#6>>Ha(IFZg_1-Mq_IIMTdzEPYA(j?zum`=$~wrIfqLVp0PV5 zOoAWnx?RWeO>|4$z&ggQcwz0uD+N39NV@z|Q%(9{04x!MT=a?fey%=}HiUrz z7>~Xg(l-!<#XwasPXR2U?XVB*E%lOmrf&)n3ZrbTta!13T+2|QASPN-W0rvtR#7nl zVWELmpSeIm*mrEZ)pQQWnhCFEGMLsJ2Rf6*!K)qZ*le_T=!gSsZAV{=zzE%r!(>pHY`e8I z4wY$bZ^K}6*oYmPJ-kGboDsAT)=SoTw{Hp{kBBf9&X7A@2HeLkTh=j$>=KXaRgJ< zgPPoo37Un0rGME$y~3MMZGKDgZ(EmSr}nPv3g(mM@_6^H%Z4RTeBl>F?8kHn#d9Yve9=FWI4={V`A&>~Jycg)4eiq-C2nwi87Z0;HEOiKt4 zA*IF&vdwPdhP};a2U&Hu*Ow~aPW0nyzBP<`R2$iIs>|8{`_qzOpUa&^KtNvp;YfE; ztop=0*OsS)Ckn1mknHY)55@Jdvp%|s9f4ja3<8yMR{I>#GQtX(cP<(wb&rro=HwlRL>iGkv8`%kUs;$r{+ literal 0 HcmV?d00001 diff --git a/bd-third/src/main/resources/jd/npp_11_API2_pro.cer b/bd-third/src/main/resources/jd/npp_11_API2_pro.cer new file mode 100644 index 0000000000000000000000000000000000000000..51bca055decc358c13e9f9778429bba0fb9f0aaf GIT binary patch literal 1018 zcmXqLV*X~(#B^@~GZP~dlL%{>^}38p0SBMi$ZDUnx*4$Iv)V}mUN%mxHjlRNyo`*j ztPBQmh7ty1Y|No7%sl+ziFxUfnRyDK#i>OK&W?ui2C^U-ZXPk1OmJ#)X;EfLrE_Xt zNotXyh=CAD0T&N9RDoV{ey$<60Vhb5O_<5q&p=L`*U;3!+{nPd!qmjTAPUGeGcY%_ zgmMkS40#Q>A-1rTq!yPLiW`VR%;YNvI;S!-uPQOKA~P}1P|838?sQH@F>a7*hpZH^ zl>!EQAWh6X?0x|Ojsc!V290x(eagtnz}(o)V9?mk)Y!-{|B8m-$3&j`=vf<+9iz;< zwtvvdcD;D8vQJ7#xspA_K-lNjHOZ(4caaO63V(*}w_c&6z_^-`l5V z&fi$sHQ{vB>dd{zCvgBq!|7#SIu&fU%sZ}q*){@8f)&e;K+9aCpZKN1$*=v*kRv+UbP zuc_J*2Mt5CmgVhA-0s_ZS8TD)&49_w&F%&rvpkG!vj6{dOOo`H`oaIb)zj(Z^zGZ{ zFedwkFZx#9b=K!s=eddI4X=3a9jX>Gs;){mS|6>Yy)azdQoM{%an~b3R(S diff --git a/bd-third/src/main/resources/mapper/third/pay/TOnlinePaymentSepAccDMapper.xml b/bd-third/src/main/resources/mapper/third/pay/TOnlinePaymentSepAccDMapper.xml new file mode 100644 index 00000000..140ebcb1 --- /dev/null +++ b/bd-third/src/main/resources/mapper/third/pay/TOnlinePaymentSepAccDMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + DEL_FLAG, + CREATION_TIME, + MODIFIED_TIME, + PK_CREATOR, + PK_MODIFIED, + PK_ID, PK_SEP_ACC, ACCOUNT, PROPORTION + + + diff --git a/bd-third/src/main/resources/mapper/third/pay/TOnlinePaymentSepAccMapper.xml b/bd-third/src/main/resources/mapper/third/pay/TOnlinePaymentSepAccMapper.xml new file mode 100644 index 00000000..e3890570 --- /dev/null +++ b/bd-third/src/main/resources/mapper/third/pay/TOnlinePaymentSepAccMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + DEL_FLAG, + CREATION_TIME, + MODIFIED_TIME, + PK_CREATOR, + PK_MODIFIED, + PK_ID, PK_PAYMENT, VERSION, REQ_CONTENT, REQ_CONTENT_SEP_ACC, RESP_CONTENT + + + + From 121dbc52ba4ad8b0e51c85ad2b98250da6fac77a Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Fri, 18 Jul 2025 11:26:51 +0800 Subject: [PATCH 40/89] =?UTF-8?q?##=20Fix=20-=20=E5=88=86=E8=B4=A6?= =?UTF-8?q?=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java index 9708e4d7..a2c6b4ac 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java @@ -134,7 +134,7 @@ public class JdPayServiceImpl implements IJdPayService { log.info("分账 最后一个账户( 总 - 已分账 ) : {}, {}", subTradeAmount, remaining); onlinePayment.setSubAccountMoney(subTradeAmount); }else{ - subTradeAmount = tradeAmount.subtract(tradeAmount.multiply(separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN)).setScale(2, BigDecimal.ROUND_DOWN)); + subTradeAmount = tradeAmount.multiply(separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN)).setScale(2, BigDecimal.ROUND_DOWN); remaining = remaining.subtract(subTradeAmount).setScale(2, BigDecimal.ROUND_DOWN); onlinePayment.setMainAccountMoney(subTradeAmount); log.info("分账 过程 : {}, {}, {}", subTradeAmount, remaining, separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN)); From 972d18549eca9180d48e90bbd12e5e6a59e5121f Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 21 Jul 2025 09:27:12 +0800 Subject: [PATCH 41/89] =?UTF-8?q?##=20Opt=20-=20=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wares/controller/manage/BdWaresController.java | 8 ++++++-- .../com/hzs/sale/wares/service/IBdWaresService.java | 5 +++++ .../sale/wares/service/impl/BdWaresServiceImpl.java | 10 ++++++++++ .../main/resources/mapper/sale/wares/BdWaresMapper.xml | 4 ++-- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java index 33361086..acc4280c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java @@ -327,7 +327,7 @@ public class BdWaresController extends BaseController { if (!isPutOn) { return AjaxResult.error("产品规格至少有一个上架"); } - wares.setSort(0); +// wares.setSort(0); waresService.saveWares(wares, userTokenService.getLoginUser()); return AjaxResult.success(wares.getWaresCode()); } @@ -458,7 +458,7 @@ public class BdWaresController extends BaseController { } } - waresParams.setSort(0); +// waresParams.setSort(0); waresService.updateWares(waresParams, userTokenService.getLoginUser()); return AjaxResult.success(waresParams.getWaresCode()); } @@ -825,6 +825,10 @@ public class BdWaresController extends BaseController { String waresCode = CreateNormsCodeUtils.createWaresCode(waresService.getLastWaresCode()); return AjaxResult.success(waresCode); } + @GetMapping("/getMaxSortNum") + public AjaxResult getMaxSortNum() { + return AjaxResult.success("请求成功!", iBdWaresService.getMaxSortNum()); + } /** * 商品序号创建 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java index fbd9f3da..75ceaa62 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java @@ -23,6 +23,11 @@ import java.util.Map; */ public interface IBdWaresService extends IService { + /** + * 获取最大排序值 + * @return + */ + int getMaxSortNum(); /** * 新增商品基础信息 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java index 3189c5fa..aa40b32b 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java @@ -1,6 +1,7 @@ package com.hzs.sale.wares.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -95,6 +96,15 @@ public class BdWaresServiceImpl extends ServiceImpl impl @DubboReference ITransactionServiceApi transactionServiceApi; + @Override + public int getMaxSortNum() { + Integer maxSort = this.getMaxSort(SecurityUtils.getPkCountry()); + if(ObjectUtil.isNotEmpty(maxSort)){ + return maxSort + 1; + } + return 1; + } + @Override @Transactional(rollbackFor = Exception.class) public BdWares saveWares(WaresParams waresParams, LoginUser user) { diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml index 10ef5e7d..12191f58 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml @@ -228,7 +228,7 @@ and bw.WARES_STATUS <= #{waresStatus} - order by bw.SORT_STATUS desc , bw.WARES_PRICE ,bw.CREATION_TIME desc + order by bw.sort desc, bw.CREATION_TIME desc From 6263f4e9ab1d6e9a9811a7d403b687584c2a2bb8 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Wed, 23 Jul 2025 14:08:46 +0800 Subject: [PATCH 42/89] =?UTF-8?q?##=20Opt=20-=20=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E5=8D=95,=E4=BF=9D=E6=8C=81=E4=B8=8A=E6=AC=A1?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E4=B8=8D=E9=9A=8F=E6=9C=BA=E5=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/controller/api/PayController.java | 81 ++++++++++--------- 1 file changed, 42 insertions(+), 39 deletions(-) diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java index 7d6a3de8..6af4c408 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/api/PayController.java @@ -1,5 +1,6 @@ package com.hzs.third.pay.controller.api; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.hzs.activity.base.IActivityServiceApi; import com.hzs.common.core.annotation.RepeatSubmitSimple; @@ -130,47 +131,49 @@ public class PayController { } onlinePayment.setExtParam(param.getExtParam()); - // 业务金额 - BigDecimal businessMoney = null; - // 实际支付金额(随机立减之后) - BigDecimal amount = null; + if(ObjectUtil.isEmpty(onlinePayment.getPkId())) { + // 业务金额 + BigDecimal businessMoney = null; + // 实际支付金额(随机立减之后) + BigDecimal amount = null; - // 部分业务金额随机立减 - switch (payBusinessType) { - case MEMBER_ORDER: - // 会员订单 - R orderResult = iSaOrderServiceApi.getRetailPayOrder(userId, param.getBusinessCode()); - if (orderResult.isSuccess()) { - businessMoney = orderResult.getData().setScale(2, BigDecimal.ROUND_HALF_UP); - } else { - return AjaxResult.error(orderResult.getMsg()); - } - break; - case RECHARGE: - // 充值 - R rechargeResult = iMemberTradeServiceApi.selectMemberRechargeByCodeAndPkMember(param.getBusinessCode(), userId); - if (rechargeResult.isSuccess()) { - businessMoney = rechargeResult.getData().getRechargeAmount().setScale(2, BigDecimal.ROUND_HALF_UP); - } else { - return AjaxResult.error(rechargeResult.getMsg()); - } - break; - case TICKET: - // 购票 - R ticketResult = iTicketServiceApi.getTicketPayOrder(userId, param.getBusinessCode()); - if (ticketResult.isSuccess()) { - businessMoney = ticketResult.getData(); - } else { - return AjaxResult.error(ticketResult.getMsg()); - } - break; - default: + // 部分业务金额随机立减 + switch (payBusinessType) { + case MEMBER_ORDER: + // 会员订单 + R orderResult = iSaOrderServiceApi.getRetailPayOrder(userId, param.getBusinessCode()); + if (orderResult.isSuccess()) { + businessMoney = orderResult.getData().setScale(2, BigDecimal.ROUND_HALF_UP); + } else { + return AjaxResult.error(orderResult.getMsg()); + } + break; + case RECHARGE: + // 充值 + R rechargeResult = iMemberTradeServiceApi.selectMemberRechargeByCodeAndPkMember(param.getBusinessCode(), userId); + if (rechargeResult.isSuccess()) { + businessMoney = rechargeResult.getData().getRechargeAmount().setScale(2, BigDecimal.ROUND_HALF_UP); + } else { + return AjaxResult.error(rechargeResult.getMsg()); + } + break; + case TICKET: + // 购票 + R ticketResult = iTicketServiceApi.getTicketPayOrder(userId, param.getBusinessCode()); + if (ticketResult.isSuccess()) { + businessMoney = ticketResult.getData(); + } else { + return AjaxResult.error(ticketResult.getMsg()); + } + break; + default: + } + // 更新业务金额 + onlinePayment.setBusinessMoney(businessMoney); + amount = PayUtil.handleAmountRandom(businessMoney); + // 暂存于实际支付金额(部分业务进行随机立减) + onlinePayment.setPayMoney(amount); } - // 更新业务金额 - onlinePayment.setBusinessMoney(businessMoney); - amount = PayUtil.handleAmountRandom(businessMoney); - // 暂存于实际支付金额(部分业务进行随机立减) - onlinePayment.setPayMoney(amount); // 结果实体 R payResult = null; From 6e047194ce01a9a32466b98cb2cf2bd4f4b80e6e Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 4 Aug 2025 15:38:47 +0800 Subject: [PATCH 43/89] =?UTF-8?q?##=20=E5=88=86=E5=85=AC=E5=8F=B8=E7=AD=89?= =?UTF-8?q?=E7=BA=A7=E6=B3=A8=E5=86=8C=E3=80=81=E5=8D=87=E7=BA=A7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=B8=8D=E9=9C=80=E8=A6=81=E5=8F=91=E8=B4=A7=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=8D=95=E7=8B=AC=E5=A4=84=E7=90=86=EF=BC=8C=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E8=BF=9B=E5=85=A5=E5=88=B0=E6=8F=90=E8=B4=A7=E4=B8=93?= =?UTF-8?q?=E5=8C=BA=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/activity/base/vo/BaseConfigVo.java | 7 +- .../activity/pick/mapper/AcPickMapper.java | 12 +- .../activity/pick/service/IAcPickService.java | 8 + .../pick/service/impl/AcPickServiceImpl.java | 4 + .../activity/pick/vo/AcPickMemberLogVO.java | 6 +- .../service/impl/RetailOrderServiceImpl.java | 45 +++- .../retail/sale/vo/RetailQueryOrderVO.java | 7 +- .../manage/SaDeliverController.java | 5 +- .../manage/SaDeliverHandledController.java | 6 +- .../manage/SaDeliverUnhandledController.java | 13 +- .../controller/api/ApiOrderController.java | 1 + .../manager/SaOrderBusinessController.java | 21 +- .../manager/SaOrderChargeLogController.java | 48 ++--- .../controller/manager/SaOrderController.java | 89 +++----- .../service/impl/SaOrderServiceImpl.java | 116 +++++++---- .../java/com/hzs/sale/order/vo/MyOrderVO.java | 7 +- .../hzs/sale/order/vo/OrderSelfPickupVO.java | 6 +- .../hzs/sale/order/vo/SaTOrderQueryVO.java | 184 ---------------- .../controller/manage/BdWaresController.java | 67 +++--- .../sale/wares/param/ComputeWaresPrice.java | 8 - .../hzs/sale/wares/param/CuWaresParams.java | 8 +- .../sale/wares/param/TransportPostage.java | 9 +- .../hzs/sale/wares/vo/SaTWaresQueryVO.java | 196 ------------------ .../com/hzs/sale/wares/vo/SaTWaresSkuVo.java | 18 +- .../com/hzs/sale/wares/vo/TWaresQueryVO.java | 136 ------------ .../mapper/activity/pick/AcPickMapper.xml | 44 +++- .../manage/BdDeliveryController.java | 7 +- .../com/hzs/system/config/vo/DeliveryVO.java | 9 +- .../enums/controller/EnumsController.java | 75 +------ .../enums/controller/EnumsInitController.java | 17 -- .../common/core/constant/RetailConstants.java | 5 + .../com/hzs/common/core/enums/EActType.java | 16 +- .../com/hzs/common/core/enums/EDelivery.java | 39 +++- .../hzs/common/core/enums/EOrderStatus.java | 61 ++---- .../com/hzs/common/core/enums/EPickType.java | 24 +-- .../domain/activity/base/AcBaseConfig.java | 3 - .../common/domain/activity/pick/AcPick.java | 6 +- .../activity/pick/AcRetailPickMemberLog.java | 5 - .../activity/pick/ext/AcPickLogExt.java | 6 +- .../domain/system/config/BdDelivery.java | 3 - 40 files changed, 368 insertions(+), 979 deletions(-) delete mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaTOrderQueryVO.java delete mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresQueryVO.java delete mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/TWaresQueryVO.java diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/vo/BaseConfigVo.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/vo/BaseConfigVo.java index b55f1caf..c60f10b8 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/vo/BaseConfigVo.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/vo/BaseConfigVo.java @@ -13,12 +13,7 @@ import java.util.Date; import java.util.List; /** - * @BelongsProject: hzs_cloud - * @BelongsPackage: com.hzs.activity.controller.vo - * @Author: yh - * @CreateTime: 2023-04-20 15:13 - * @Description: 活动列表 - * @Version: 1.0 + * 活动列表 */ @Data public class BaseConfigVo implements Serializable { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java index 1ad71326..48497b7e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.activity.pick.param.AcPickQueryParam; import com.hzs.activity.pick.vo.ApiPickListVO; import com.hzs.common.domain.activity.pick.AcPick; -import com.hzs.common.domain.activity.pick.AcPickMemberLog; import com.hzs.common.domain.activity.pick.ext.AcPickExt; import org.apache.ibatis.annotations.Param; @@ -13,9 +12,6 @@ import java.util.List; /** * 提货基础表 Mapper 接口 - * - * @author hzs - * @since 2023-04-21 */ public interface AcPickMapper extends BaseMapper { @@ -103,4 +99,12 @@ public interface AcPickMapper extends BaseMapper { */ List pickList(@Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry); + /** + * 批量处理提货数据 + * + * @param pickList + * @return + */ + int batchSaveOrUpdatePick(@Param("pickList") List pickList); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java index f3e02b06..eeb59222 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java @@ -127,4 +127,12 @@ public interface IAcPickService extends IService { */ BigDecimal postageHandle(AcPick acPick, Integer quantity, Integer recProvince, Integer recCity, Integer pkCountry); + /** + * 批量处理提货数据 + * + * @param pickList + * @return + */ + int batchSaveOrUpdatePick(List pickList); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java index bfb440f0..33f9913e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java @@ -601,4 +601,8 @@ public class AcPickServiceImpl extends ServiceImpl impleme throw new ServiceException(postageR.getMsg()); } + @Override + public int batchSaveOrUpdatePick(List pickList) { + return baseMapper.batchSaveOrUpdatePick(pickList); + } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/AcPickMemberLogVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/AcPickMemberLogVO.java index eb4aef71..d13d1e4e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/AcPickMemberLogVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/AcPickMemberLogVO.java @@ -8,11 +8,7 @@ import lombok.Data; import java.util.Date; /** - * @Description: 会员提货日志 - * @Author: jiang chao - * @Time: 2023/5/15 14:00 - * @Classname: AcPickMemberLogVO - * @PackageName: com.hzs.activity.pick.vo + * 会员提货日志 */ @Data public class AcPickMemberLogVO { 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 e8edc52a..97aa17c0 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 @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Validator; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.hzs.activity.pick.service.IAcPickService; import com.hzs.common.core.constant.*; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; @@ -11,6 +12,7 @@ import com.hzs.common.core.enums.retail.ERetailWaresPrice; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.*; +import com.hzs.common.domain.activity.pick.AcPick; import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberAccountExt; @@ -79,6 +81,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { private ISaOrderTempService iSaOrderTempService; @Autowired private ISaOrderWaresLimitService iSaOrderWaresLimitService; + @Autowired + private IAcPickService iAcPickService; @Autowired private RedisService redisService; @@ -217,6 +221,19 @@ public class RetailOrderServiceImpl implements IRetailOrderService { cuMember.setPkAwards(newGrade.getPkAwards()); } } + + // TODO 2025.08.04 注册、升级专区,下单支付会员如果是分公司,订单不需要发货,直接放入提货中心 + CuMember createMember = orderParam.getCreatorMember(); + if (null == createMember) { + createMember = iMemberServiceApi.getMember(orderParam.getPkCreator()).getData(); + } + Integer createPkGrade = createMember.getPkSettleGrade(); + BdGrade createGrade = gradeList.stream().filter(tmpData -> tmpData.getPkId().equals(createPkGrade)).findFirst().get(); + if (EGrade.BRANCH_COMPANY.getValue() == createGrade.getGradeValue()) { + // 发货方式:提货中心 + saOrderExt.setDeliveryWay(EDelivery.PICK.getValue()); + } + } return saOrderExt; @@ -661,6 +678,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService { saOrderItems.setOrderStatus(EOrderStatus.PAY.getValue()); saOrderItems.setPkCreator(saOrderExt.getPkCreator()); saOrderItems.setCreationTime(saOrderExt.getCreationTime()); + if (EDelivery.PICK.getValue() == saOrderExt.getDeliveryWay()) { + // 主订单是提货中心,明细状态也是提货中心 + saOrderItems.setOrderStatus(EOrderStatus.PICK.getValue()); + } // 指定商品拆分 并且 非赠品 if (boxWaresList.contains(saOrderItems.getWareCode()) @@ -699,8 +720,30 @@ public class RetailOrderServiceImpl implements IRetailOrderService { .build()); } } - if (ESpecialArea.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() + if (ESpecialArea.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() + || ESpecialArea.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { + // 注册、升级 + if (EDelivery.PICK.getValue() == saOrderExt.getDeliveryWay()) { + // 2025.08.04 分公司,注册、升级订单,全部进入提货中心 + List pickList = new ArrayList<>(); + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { + AcPick acPick = AcPick.builder() + .pkMember(saOrderExt.getPkCreator()) + .pickType(EPickType.COMPANY_PRODUCT.getValue()) + .pkDataId(saOrderItems.getPkProduct().longValue()) + .specsName(saOrderItems.getSpecsName()) + .specsNameId(saOrderItems.getSpecsNameId()) + .usableQuantity(saOrderItems.getQuantity()) + .baseQuantity(RetailConstants.PICK_BASE) + .build(); + acPick.setPkCreator(saOrderExt.getPkCreator()); + pickList.add(acPick); + } + iAcPickService.batchSaveOrUpdatePick(pickList); + } + } else if (ESpecialArea.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() || ESpecialArea.RETAIL_RESCISSION.getValue() == saOrderExt.getOrderType()) { + // 复购、重消 if (waresLimitMap.size() > 0) { String limitDate = DateUtils.parseDateToFormat(DateUtils.YYYYMM, new Date()); for (Integer key : waresLimitMap.keySet()) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailQueryOrderVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailQueryOrderVO.java index 5318768d..52ef78c3 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailQueryOrderVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailQueryOrderVO.java @@ -9,16 +9,11 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.Size; import java.io.Serializable; import java.math.BigDecimal; /** - * @Description: 新零售查询订单返回VO - * @Author: jiang chao - * @Time: 2024/12/13 10:50 - * @Classname: RetailQueryOrderVO - * @PackageName: com.hzs.retail.sale.vo + * 新零售查询订单返回VO */ @Builder @AllArgsConstructor diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverController.java index 328e1ae6..ebc05c24 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverController.java @@ -36,7 +36,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.*; -import java.util.stream.Collectors; /** * 发货清单立即发货控制器 @@ -135,7 +134,7 @@ public class SaDeliverController extends BaseController { Map areaMap = iAreaServiceApi.getAreaMap(pkCountry).getData(); // 获取需要翻译的枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(EDeliveryStatus.values(), EDelivery.values(), + Map transactionMap = iTransactionCommonService.exportEnumTransaction(EDeliveryStatus.values(), ESupplyWay.values(), ETransportType.values(), EOrderType.values(), EDealerYesNo.values(), EShippingChannel.values()); for (DeliverVO deliver : resultList) { @@ -143,7 +142,7 @@ public class SaDeliverController extends BaseController { OrderUtil.handleOrderAddress(areaMap, deliver); deliver.setDeliverStatusVal(transactionMap.get(EnumsPrefixConstants.DELIVERY_STATUS + deliver.getDeliverStatus())); - deliver.setDeliveryWayVal(transactionMap.get(EnumsPrefixConstants.DELIVERY + deliver.getDeliveryWay())); + deliver.setDeliveryWayVal(EDelivery.getLabelByValue(deliver.getDeliveryWay())); deliver.setOperateScopeVal(transactionMap.get(EnumsPrefixConstants.SUPPLY_WAY + deliver.getOperateScope())); deliver.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + deliver.getOrderType())); deliver.setTranTypeVal(transactionMap.get(EnumsPrefixConstants.ENU_TRA + deliver.getTranType())); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java index 2334a220..3cd39037 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java @@ -133,7 +133,7 @@ public class SaDeliverHandledController extends BaseController { Map areaMap = iAreaServiceApi.getAreaMap(pkCountry).getData(); // 获取需要翻译的枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), EOrderStatus.values(), + Map transactionMap = iTransactionCommonService.exportEnumTransaction( EOrderType.values(), EDeliveryStatus.values(), ESupplyWay.values(), ETransportType.values(), EPresaleStatus.values(), EPrintStatus.values(), EShippingChannel.values()); @@ -141,9 +141,9 @@ public class SaDeliverHandledController extends BaseController { // 省市区处理 OrderUtil.handleOrderAddress(areaMap, deliverHandled); - deliverHandled.setOrderStatusVal(transactionMap.get(EnumsPrefixConstants.ORDER_STATUS + deliverHandled.getOrderStatus())); + deliverHandled.setOrderStatusVal(EOrderStatus.getLabelByValue(deliverHandled.getOrderStatus())); deliverHandled.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + deliverHandled.getOrderType())); - deliverHandled.setDeliveryWayVal(transactionMap.get(EnumsPrefixConstants.DELIVERY + deliverHandled.getDeliveryWay())); + deliverHandled.setDeliveryWayVal(EDelivery.getLabelByValue(deliverHandled.getDeliveryWay())); deliverHandled.setOperateScopeVal(transactionMap.get(EnumsPrefixConstants.SUPPLY_WAY + deliverHandled.getOperateScope())); deliverHandled.setPreSaleStatusVal(transactionMap.get(EnumsPrefixConstants.PRESALE_STATUS + deliverHandled.getPreSaleStatus())); deliverHandled.setPrintStatusVal(transactionMap.get(EnumsPrefixConstants.E_PRINT_STATUS + deliverHandled.getPrintStatus())); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java index 3a6a034e..8af6cae3 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java @@ -50,11 +50,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * @Description: 发货清单未合单控制器 - * @Author: jiang chao - * @Time: 2022/10/28 11:24 - * @Classname: SaDeliverOrderController - * @PackageName: com.hzs.sale.deliver.controller.manage + * 发货清单未合单控制器 */ @RestController @RequestMapping("/manage/deliver-unhandled") @@ -189,20 +185,21 @@ public class SaDeliverUnhandledController extends BaseController { Map areaMap = iAreaServiceApi.getAreaMap(pkCountry).getData(); // 获取需要翻译的枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), ESupplyWay.values(), ETransportType.values(), EPresaleStatus.values(), EOrderType.values(), EOrderStatus.values(), ESaleType.values(), EShippingChannel.values()); + Map transactionMap = iTransactionCommonService.exportEnumTransaction(ESupplyWay.values(), + ETransportType.values(), EPresaleStatus.values(), EOrderType.values(), ESaleType.values(), EShippingChannel.values()); for (DeliverUnhandledVO deliverUnhandled : resultList) { // 省市区处理 OrderUtil.handleOrderAddress(areaMap, deliverUnhandled); deliverUnhandled.setIsGiftVal(transactionMap.get(EnumsPrefixConstants.E_SALE_TYPE + deliverUnhandled.getIsGift())); - deliverUnhandled.setDeliveryWayVal(transactionMap.get(EnumsPrefixConstants.DELIVERY + deliverUnhandled.getDeliveryWay())); + deliverUnhandled.setDeliveryWayVal(EDelivery.getLabelByValue(deliverUnhandled.getDeliveryWay())); deliverUnhandled.setOperateScopeVal(transactionMap.get(EnumsPrefixConstants.SUPPLY_WAY + deliverUnhandled.getOperateScope())); deliverUnhandled.setShippingChannelVal(transactionMap.get(EnumsPrefixConstants.E_SHIPPING_CHANNEL + deliverUnhandled.getShippingChannel())); deliverUnhandled.setTranTypeVal(transactionMap.get(EnumsPrefixConstants.ENU_TRA + deliverUnhandled.getTranType())); deliverUnhandled.setPreSaleStatusVal(transactionMap.get(EnumsPrefixConstants.PRESALE_STATUS + deliverUnhandled.getPreSaleStatus())); deliverUnhandled.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + deliverUnhandled.getOrderType())); - deliverUnhandled.setOrderStatusVal(transactionMap.get(EnumsPrefixConstants.ORDER_STATUS + deliverUnhandled.getOrderStatus())); + deliverUnhandled.setOrderStatusVal(EOrderStatus.getLabelByValue(deliverUnhandled.getOrderStatus())); } } ExcelUtil util = new ExcelUtil<>(DeliverUnhandledVO.class); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java index 502c3771..44bc2863 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java @@ -666,6 +666,7 @@ public class ApiOrderController extends BaseController { } myOrder.setAddress(saOrder.getRecAddress()); myOrder.setOrderTypeVal(EOrderType.getEnumLabelByValue(myOrder.getOrderType())); + myOrder.setOrderStatusVal(EOrderStatus.getLabelByValue(saOrderItems.getOrderStatus())); // 处理订单明细 myOrderItemsList = new ArrayList<>(); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java index 20701059..954c816f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java @@ -10,7 +10,6 @@ import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.constant.msg.SaOrderMsgConstants; import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.poi.ExcelUtil; @@ -32,7 +31,6 @@ import com.hzs.member.account.dto.BusinessCommissionDTO; import com.hzs.member.account.dto.MemberAmountDTO; import com.hzs.member.account.dto.MemberBalanceDTO; import com.hzs.member.base.IMemberServiceApi; -import com.hzs.sale.deliver.service.ISaDeliverItemsService; import com.hzs.sale.deliver.vo.SelfDataBarCodeVO; import com.hzs.sale.deliver.vo.SelfDataProductVO; import com.hzs.sale.deliver.vo.SelfDataVO; @@ -43,7 +41,6 @@ import com.hzs.sale.order.service.IOrderBusinessService; import com.hzs.sale.order.service.ISaOrderSelfLogService; import com.hzs.sale.order.service.ISaOrderService; import com.hzs.sale.order.vo.*; -import com.hzs.sale.product.IProductServiceApi; import com.hzs.sale.util.OrderUtil; import com.hzs.system.base.IAreaServiceApi; import com.hzs.system.base.ICurrencyServiceApi; @@ -78,7 +75,7 @@ public class SaOrderBusinessController extends BaseController { @Autowired private IOrderBusinessService iOrderBusinessService; @Autowired - private ISaOrderSelfLogService saOrderSelfLogService; + private ISaOrderSelfLogService iSaOrderSelfLogService; @Autowired private UserTokenService userTokenService; @@ -88,8 +85,6 @@ public class SaOrderBusinessController extends BaseController { @DubboReference IBusinessCommission iBusinessCommission; @DubboReference - IProductServiceApi productServiceApi; - @DubboReference IUserServiceApi iUserServiceApi; @DubboReference IMemberServiceApi iMemberServiceApi; @@ -100,12 +95,6 @@ public class SaOrderBusinessController extends BaseController { @DubboReference ISystemConfigServiceApi systemConfigServiceApi; - private ISaDeliverItemsService saDeliverItemsService; - - @Autowired - public void setSaDeliverItemsService(ISaDeliverItemsService saDeliverItemsService) { - this.saDeliverItemsService = saDeliverItemsService; - } /** * 订单业务列表 @@ -1059,7 +1048,7 @@ public class SaOrderBusinessController extends BaseController { if (selfPickUpParam.getEndDate() != null) { selfPickUpParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, selfPickUpParam.getEndDate())); } - List orderSelfLogList = saOrderSelfLogService.querySaOrderSelfLog(selfPickUpParam); + List orderSelfLogList = iSaOrderSelfLogService.querySaOrderSelfLog(selfPickUpParam); return getDataTable(orderSelfLogList); } @@ -1080,7 +1069,7 @@ public class SaOrderBusinessController extends BaseController { } } - SaOrderSelfLog saOrderSelfLog = saOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId()); + SaOrderSelfLog saOrderSelfLog = iSaOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId()); if (saOrderSelfLog == null || selfPickUpParam.getApproveStatus() <= saOrderSelfLog.getApproveStatus()) { return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY)); } @@ -1098,7 +1087,7 @@ public class SaOrderBusinessController extends BaseController { return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_CURRENT_DATE)); } selfPickUpParam.setPkCreator(SecurityUtils.getUserId()); - saOrderSelfLogService.updateSaOrderSelfLog(selfPickUpParam, selfPickUpParam.getPkId()); + iSaOrderSelfLogService.updateSaOrderSelfLog(selfPickUpParam, selfPickUpParam.getPkId()); return AjaxResult.success(selfPickUpParam); } } @@ -1114,7 +1103,7 @@ public class SaOrderBusinessController extends BaseController { if (selfPickUpParam.getPkId() == null) { return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY)); } - SaOrderSelfLog saOrderSelfLog = saOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId()); + SaOrderSelfLog saOrderSelfLog = iSaOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId()); if (saOrderSelfLog == null || EApproveRechargeStatus.WAIT.getValue() != saOrderSelfLog.getApproveStatus()) { return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY)); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderChargeLogController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderChargeLogController.java index 80fdec48..c890b599 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderChargeLogController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderChargeLogController.java @@ -34,27 +34,19 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -/** - * @BelongsProject: hzs_cloud - * @BelongsPackage: com.hzs.sale.order.controller.manage - * @Author: yh - * @CreateTime: 2023-04-11 10:22 - * @Description: - * @Version: 1.0 - */ @RestController @RequestMapping("/manage/order-charge-log") public class SaOrderChargeLogController extends BaseController { @Autowired - private ITransactionCommonService transactionCommonService; + private ITransactionCommonService iTransactionCommonService; @Autowired - private ISaOrderChargeLogService orderChargeLogService; + private ISaOrderChargeLogService iSaOrderChargeLogService; @DubboReference - IVertexServiceApi vertexServiceApi; + IVertexServiceApi iVertexServiceApi; @DubboReference - IAreaServiceApi areaServiceApi; + IAreaServiceApi iAreaServiceApi; /** * 撤单信息列表 @@ -96,18 +88,18 @@ public class SaOrderChargeLogController extends BaseController { } startPage(); - List list = orderChargeLogService.cancellationList(orderChargeLogParam); + List list = iSaOrderChargeLogService.cancellationList(orderChargeLogParam); List resultList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(list)) { // 地区 - R> areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()); + R> areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()); // 体系 - R> vertexAll = vertexServiceApi.findAll(); + R> vertexAll = iVertexServiceApi.findAll(); Map vertexMap = vertexAll.getData().stream().collect(Collectors.toMap(VertexDTO::getPkId, Function.identity())); - Map transactionMap = transactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(), EPresaleStatus.values(), - ESupplyWay.values(), EDelivery.values(), EOrderStatus.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(), + Map transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(), EPresaleStatus.values(), + ESupplyWay.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(), EOrderType.values(), ETransportType.values(), EYesNo.values(), EShippingChannel.values(), EUnit.values(), ESignSource.values(), EOrderSource.values()); for (SaOrderChargeLogExt orderChargeLogExt : list) { @@ -187,7 +179,7 @@ public class SaOrderChargeLogController extends BaseController { // 订单总额(美金) orderChargeLogVo.setOrderTotalAmountDollar(orderChargeLogExt.getOrderAmount().multiply(orderChargeLogExt.getInExchangeRate())); // 订单状态 - orderChargeLogVo.setOrderStatusStr(transactionMap.get(EOrderStatus.getEOrderStatus(orderChargeLogExt.getOrderStatus()).getKey())); + orderChargeLogVo.setOrderStatusStr(EOrderStatus.getLabelByValue(orderChargeLogExt.getOrderStatus())); //物流单号 orderChargeLogVo.setLogisticsCodes(orderChargeLogExt.getLogisticsCode()); // 物流公司 @@ -195,9 +187,7 @@ public class SaOrderChargeLogController extends BaseController { // 发货时间 orderChargeLogVo.setDeliveryTime(orderChargeLogExt.getDeliveryTime()); // 发货方式 - if (orderChargeLogExt.getDeliveryWay() != null) { - orderChargeLogVo.setDeliveryWayStr(transactionMap.get(EDelivery.getDelivery(orderChargeLogExt.getDeliveryWay()).getKey())); - } + orderChargeLogVo.setDeliveryWayStr(EDelivery.getLabelByValue(orderChargeLogExt.getDeliveryWay())); //销售方式 if (orderChargeLogExt.getOperateScope() != null && ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()) != null) { orderChargeLogVo.setOperateScopeStr(transactionMap.get(ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()).getKey())); @@ -278,18 +268,18 @@ public class SaOrderChargeLogController extends BaseController { orderChargeLogParam.setEndCancelOrderTime(DateUtils.getEndTime(orderChargeLogParam.getEndCancelOrderTime())); } - List list = orderChargeLogService.cancellationList(orderChargeLogParam); + List list = iSaOrderChargeLogService.cancellationList(orderChargeLogParam); List resultList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(list)) { // 地区 - R> areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()); + R> areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()); // 体系 - R> vertexAll = vertexServiceApi.findAll(); + R> vertexAll = iVertexServiceApi.findAll(); Map vertexMap = vertexAll.getData().stream().collect(Collectors.toMap(VertexDTO::getPkId, Function.identity())); - Map transactionMap = transactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(), EPresaleStatus.values(), - ESupplyWay.values(), EDelivery.values(), EOrderStatus.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(), + Map transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(), EPresaleStatus.values(), + ESupplyWay.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(), EOrderType.values(), ETransportType.values(), EYesNo.values(), EShippingChannel.values(), EUnit.values(), ESignSource.values(), EOrderSource.values()); for (SaOrderChargeLogExt orderChargeLogExt : list) { @@ -369,7 +359,7 @@ public class SaOrderChargeLogController extends BaseController { orderChargeLogVo.setPostageDollar(orderChargeLogExt.getPostage().divide(orderChargeLogExt.getInExchangeRate(), 2, BigDecimal.ROUND_HALF_UP)); orderChargeLogVo.setOrderTotalAmountDollar(orderChargeLogVo.getOrderAmountDollar()); // 订单状态 - orderChargeLogVo.setOrderStatusStr(transactionMap.get(EOrderStatus.getEOrderStatus(orderChargeLogExt.getOrderStatus()).getKey())); + orderChargeLogVo.setOrderStatusStr(EOrderStatus.getLabelByValue(orderChargeLogExt.getOrderStatus())); //物流单号 orderChargeLogVo.setLogisticsCodes(orderChargeLogExt.getLogisticsCode()); // 物流公司 @@ -377,9 +367,7 @@ public class SaOrderChargeLogController extends BaseController { // 发货时间 orderChargeLogVo.setDeliveryTime(orderChargeLogExt.getDeliveryTime()); // 发货方式 - if (orderChargeLogExt.getDeliveryWay() != null) { - orderChargeLogVo.setDeliveryWayStr(transactionMap.get(EDelivery.getDelivery(orderChargeLogExt.getDeliveryWay()).getKey())); - } + orderChargeLogVo.setDeliveryWayStr(EDelivery.getLabelByValue(orderChargeLogExt.getDeliveryWay())); //销售方式 if (orderChargeLogExt.getOperateScope() != null && ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()) != null) { orderChargeLogVo.setOperateScopeStr(transactionMap.get(ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()).getKey())); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java index 9e4947f1..611a4360 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java @@ -41,12 +41,6 @@ import java.util.stream.Collectors; /** * 订单控制类 - * - * @author: sui q - * @time: 2022/8/27 16:20 - * @description: - * @classname: OrderController - * @package_name: com.hzs.sale.order.controller */ @RestController @RequestMapping("/manage/order") @@ -56,14 +50,14 @@ public class SaOrderController extends ParentOrderController { @Autowired private ITransactionCommonService iTransactionCommonService; @Autowired - private ISaOrderService orderService; + private ISaOrderService iSaOrderService; @Autowired - private ISaOrderItemsService orderItemsService; + private ISaOrderItemsService iSaOrderItemsService; @Autowired - private ISaOrderRemarksService orderRemarksService; + private ISaOrderRemarksService iSaOrderRemarksService; @DubboReference - IAreaServiceApi areaServiceApi; + IAreaServiceApi iAreaServiceApi; @DubboReference IUserServiceApi iUserServiceApi; @DubboReference @@ -90,7 +84,7 @@ public class SaOrderController extends ParentOrderController { if (waresOrderParam.getEndPayDate() != null) { waresOrderParam.setEndPayDate(DateUtils.getEndTime(waresOrderParam.getEndPayDate())); } - Map areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); + Map areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); waresOrderParam.setPkCountry(SecurityUtils.getPkCountry()); waresOrderParam.setSystemType(SecurityUtils.getSystemType()); @@ -101,7 +95,7 @@ public class SaOrderController extends ParentOrderController { waresOrderParam.setTeamList(userAuthorityDTO.getUserTeamList()); startPage(); - List resultList = orderService.selectByOrderInfoList(waresOrderParam); + List resultList = iSaOrderService.selectByOrderInfoList(waresOrderParam); for (WaresOrderVo waresOrderVo : resultList) { // 省 @@ -132,12 +126,7 @@ public class SaOrderController extends ParentOrderController { waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus()).getLabel()); } // 订单状态 - if (waresOrderVo.getOrderStatus() != null) { - EOrderStatus orderStatusEnum = EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus()); - if (orderStatusEnum != null) { - waresOrderVo.setOrderStatusStr(orderStatusEnum.getLabel()); - } - } + waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus())); // 支付方式 if (waresOrderVo.getPayType() != null) { EOrderPayType eOrderPayType = EOrderPayType.getEnumByValue(waresOrderVo.getPayType()); @@ -183,7 +172,7 @@ public class SaOrderController extends ParentOrderController { if (waresOrderParam.getEndPayDate() != null) { waresOrderParam.setEndPayDate(DateUtils.getEndTime(waresOrderParam.getEndPayDate())); } - Map areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); + Map areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); waresOrderParam.setPkCountry(SecurityUtils.getPkCountry()); waresOrderParam.setSystemType(SecurityUtils.getSystemType()); @@ -193,9 +182,9 @@ public class SaOrderController extends ParentOrderController { waresOrderParam.setVertexIdList(userAuthorityDTO.getVertexIdList()); waresOrderParam.setTeamList(userAuthorityDTO.getUserTeamList()); // startPage(); - List resultList = orderService.selectByOrderInfoList(waresOrderParam); + List resultList = iSaOrderService.selectByOrderInfoList(waresOrderParam); // 获取需要翻译的枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), ESupplyWay.values(), ETransportType.values(), EPresaleStatus.values(), EOrderType.values(), EOrderStatus.values(), EOrderPayType.values(), ESaleType.values(), EShippingChannel.values()); + Map transactionMap = iTransactionCommonService.exportEnumTransaction(ESupplyWay.values(), ETransportType.values(), EPresaleStatus.values(), EOrderType.values(), EOrderPayType.values(), ESaleType.values(), EShippingChannel.values()); for (WaresOrderVo waresOrderVo : resultList) { // 省 if (waresOrderVo.getRecProvince() != null) { @@ -220,12 +209,7 @@ public class SaOrderController extends ParentOrderController { waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus()).getLabel()); } // 订单状态 - if (waresOrderVo.getOrderStatus() != null) { - EOrderStatus orderStatusEnum = EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus()); - if (orderStatusEnum != null) { - waresOrderVo.setOrderStatusStr(orderStatusEnum.getLabel()); - } - } + waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus())); // 支付方式 if (waresOrderVo.getPayType() != null) { waresOrderVo.setPayTypeStr(EOrderPayType.getEnumByValue(waresOrderVo.getPayType()).getLabel()); @@ -271,11 +255,9 @@ public class SaOrderController extends ParentOrderController { } startPage(); - List resultList = orderItemsService.selectByInvestmentList(waresOrderParam); + List resultList = iSaOrderItemsService.selectByInvestmentList(waresOrderParam); - // 获取需要翻译的枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), ESupplyWay.values()); - Map areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); + Map areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); for (WaresOrderVo waresOrderVo : resultList) { // 省 if (waresOrderVo.getRecProvince() != null) { @@ -290,9 +272,7 @@ public class SaOrderController extends ParentOrderController { waresOrderVo.setRecCountryName(areaMap.get(waresOrderVo.getRecCountry())); } // 发货方式 - if (null != waresOrderVo.getDeliveryWay()) { - waresOrderVo.setDeliveryWayStr(transactionMap.get(EnumsPrefixConstants.DELIVERY + waresOrderVo.getDeliveryWay())); - } + waresOrderVo.setDeliveryWayStr(EDelivery.getLabelByValue(waresOrderVo.getDeliveryWay())); // 运输方式 if (waresOrderVo.getTranType() != null) { waresOrderVo.setTranTypeStr(ETransportType.getETransportType(waresOrderVo.getTranType()).getLabel()); @@ -302,9 +282,7 @@ public class SaOrderController extends ParentOrderController { waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus()).getLabel()); } // 订单状态 - if (waresOrderVo.getOrderStatus() != null) { - waresOrderVo.setOrderStatusStr(EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus()).getLabel()); - } + waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus())); // 支付方式 if (waresOrderVo.getPayType() != null) { waresOrderVo.setPayTypeStr(EOrderPayType.getEnumByValue(waresOrderVo.getPayType()).getLabel()); @@ -357,11 +335,9 @@ public class SaOrderController extends ParentOrderController { waresOrderParam.setEndCreateDate(DateUtils.getEndTime(waresOrderParam.getEndCreateDate())); } - List resultList = orderItemsService.selectByInvestmentList(waresOrderParam); + List resultList = iSaOrderItemsService.selectByInvestmentList(waresOrderParam); - Map areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); - // 获取需要翻译的枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), ESupplyWay.values()); + Map areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); for (WaresOrderVo waresOrderVo : resultList) { // 省 @@ -377,9 +353,7 @@ public class SaOrderController extends ParentOrderController { waresOrderVo.setRecCountryName(areaMap.get(waresOrderVo.getRecCountry())); } // 发货方式 - if (waresOrderVo.getDeliveryWay() != null) { - waresOrderVo.setDeliveryWayStr(transactionMap.get(EnumsPrefixConstants.DELIVERY + waresOrderVo.getDeliveryWay())); - } + waresOrderVo.setDeliveryWayStr(EDelivery.getLabelByValue(waresOrderVo.getDeliveryWay())); // 运输方式 if (waresOrderVo.getTranType() != null) { @@ -397,12 +371,7 @@ public class SaOrderController extends ParentOrderController { } } // 订单状态 - if (waresOrderVo.getOrderStatus() != null) { - EOrderStatus orderStatus = EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus()); - if (orderStatus != null) { - waresOrderVo.setOrderStatusStr(orderStatus.getLabel()); - } - } + waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus())); // 支付方式 if (waresOrderVo.getPayType() != null) { EOrderPayType orderPayType = EOrderPayType.getEnumByValue(waresOrderVo.getPayType()); @@ -498,11 +467,11 @@ public class SaOrderController extends ParentOrderController { * @param param */ private void handleOrderSelect(List resultList, OrderSelectParam param) { - List saOrderItemsExtList = orderService.queryOrderSelect(param, SecurityUtils.getPkCountry()); + List saOrderItemsExtList = iSaOrderService.queryOrderSelect(param, SecurityUtils.getPkCountry()); if (CollectionUtil.isNotEmpty(saOrderItemsExtList)) { // 调用system服务,获取地址 - Map areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); + Map areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); for (SaOrderItemsExt saOrderItemsExt : saOrderItemsExtList) { OrderSelectVO orderSelectVO = BeanUtil.copyProperties(saOrderItemsExt, OrderSelectVO.class); @@ -518,18 +487,18 @@ public class SaOrderController extends ParentOrderController { */ @PostMapping("/update-order-remarks") public AjaxResult updateOrderRemarks(@RequestBody SaOrderRemarks saOrderRemarks) { - SaOrderRemarks orderRemarks = orderRemarksService.getOne(new LambdaQueryWrapper().eq(SaOrderRemarks::getPkOrder, saOrderRemarks.getPkOrder())); + SaOrderRemarks orderRemarks = iSaOrderRemarksService.getOne(new LambdaQueryWrapper().eq(SaOrderRemarks::getPkOrder, saOrderRemarks.getPkOrder())); if (orderRemarks == null) { saOrderRemarks.setCreationTime(DateUtils.currentDateTime()); saOrderRemarks.setPkCountry(SecurityUtils.getPkCountry()); saOrderRemarks.setPkCreator(SecurityUtils.getUserId()); saOrderRemarks.setStatus(EYesNo.NO.getIntValue()); - orderRemarksService.save(saOrderRemarks); + iSaOrderRemarksService.save(saOrderRemarks); } else { orderRemarks.setModifiedTime(DateUtils.currentDateTime()); orderRemarks.setPkModified(SecurityUtils.getUserId()); orderRemarks.setRemarks(saOrderRemarks.getRemarks()); - orderRemarksService.update(orderRemarks, new LambdaQueryWrapper().eq(SaOrderRemarks::getPkOrder, saOrderRemarks.getPkOrder())); + iSaOrderRemarksService.update(orderRemarks, new LambdaQueryWrapper().eq(SaOrderRemarks::getPkOrder, saOrderRemarks.getPkOrder())); } return AjaxResult.success(); } @@ -565,7 +534,7 @@ public class SaOrderController extends ParentOrderController { singleItemStatParam.setEndPayDateStr(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getEndTime(DateUtils.addDate(nowDate, 1)))); } startPage(); - List singleItemStatList = orderService.singleItemStat(singleItemStatParam); + List singleItemStatList = iSaOrderService.singleItemStat(singleItemStatParam); for (SingleItemStatVo singleItemStat : singleItemStatList) { singleItemStat.setTotal(singleItemStat.getGiftQuantity() + singleItemStat.getProductQuantity()); } @@ -614,7 +583,7 @@ public class SaOrderController extends ParentOrderController { // 总计 Integer total = 0; // 查询计算总计 - List siList = orderService.singleItemStat(singleItemStatParam); + List siList = iSaOrderService.singleItemStat(singleItemStatParam); for (SingleItemStatVo singleItemStatVo : siList) { singleItemStatVo.setTotal(singleItemStatVo.getGiftQuantity() + singleItemStatVo.getProductQuantity()); waresQuantity += singleItemStatVo.getWaresQuantity(); @@ -665,7 +634,7 @@ public class SaOrderController extends ParentOrderController { singleItemStatParam.setEndPayDateStr(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getEndTime(DateUtils.addDate(nowDate, 1)))); } - List singleItemStatList = orderService.singleItemStat(singleItemStatParam); + List singleItemStatList = iSaOrderService.singleItemStat(singleItemStatParam); int waresQuantity = 0; // 产品数量 @@ -728,9 +697,9 @@ public class SaOrderController extends ParentOrderController { param.setTeamList(userAuthorityDTO.getUserTeamList()); startPage(); - List resultList = orderService.listOrderInvoicing(param); + List resultList = iSaOrderService.listOrderInvoicing(param); - Map areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); + Map areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); for (OrderInvoicingVO vo : resultList) { // 地区处理 if (vo.getRecProvince() != null) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 1818482a..ba28ce8c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.activity.pick.service.IAcPickService; import com.hzs.activity.pick.service.IAcRetailPickService; import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.msg.ConfigMsgConstants; @@ -137,8 +138,6 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Autowired private IBdProductExtendService iBdProductExtendService; @Autowired - private RabbitTemplate rabbitTemplate; - @Autowired private IBdWaresSpecsRelationService waresSpecsRelationService; @Autowired private ISaDeliverItemsService saDeliverItemsService; @@ -146,13 +145,17 @@ public class SaOrderServiceImpl extends ServiceImpl impl private IAcRetailPickService iAcRetailPickService; @Autowired private ISaOrderWaresLimitService iSaOrderWaresLimitService; + @Autowired + private IAcPickService iAcPickService; @Autowired - private IOrderBusinessService orderBusinessService; + private IOrderBusinessService iOrderBusinessService; @Autowired - private ISaOrderChargeLogService saOrderChargeLogService; + private ISaOrderChargeLogService iSaOrderChargeLogService; @Autowired private RedisService redisService; + @Autowired + private RabbitTemplate rabbitTemplate; @Override public List queryMemberExtByCondition(CuMember cuMember) { @@ -1262,7 +1265,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { // approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT; // } - Map queryChargeMap = orderBusinessService.queryChargeLog(Collections.singletonList(validateCancelOrderVO.getSaOrderExt()), + Map queryChargeMap = iOrderBusinessService.queryChargeLog(Collections.singletonList(validateCancelOrderVO.getSaOrderExt()), approveBusiness, orderCancelParam.getPkCountry()); if (queryChargeMap != null && queryChargeMap.containsKey(saOrderExt.getPkId())) { List memberAmountDTOList = new ArrayList<>(); @@ -1331,43 +1334,46 @@ public class SaOrderServiceImpl extends ServiceImpl impl // throw new ServiceException("撤单失败"); // } // } else { - // 删除订单 - saOrderExt.setDelFlag(EDelFlag.DELETE.getValue()); - Date currentDate = DateUtils.currentDateTime(); - // 删除发货单 - saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), null); - // 修改订单 - updateSaOrder(pkApprove, saOrderExt, currentDate); - // 删除订单明细 - if (!saOrderItemsService.updateOrderItems(saOrderExt)) { - throw new ServiceException("更新订单失败"); + // 删除订单 + saOrderExt.setDelFlag(EDelFlag.DELETE.getValue()); + Date currentDate = DateUtils.currentDateTime(); + // 删除发货单 + saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), null); + // 修改订单 + updateSaOrder(pkApprove, saOrderExt, currentDate); + // 删除订单明细 + if (!saOrderItemsService.updateOrderItems(saOrderExt)) { + throw new ServiceException("更新订单失败"); + } + + // 2025.08.04 分公司下的注册、升级订单不直接发货,进入提货中心,撤单需要单独处理提货中心数据 + this.handleCompanyProduct(saOrderExt, pkApprove); + + // 撤销注册订单 单点撤单 + if (ECancelOrderType.SINGLE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) { + // 单点撤单,变死点 + R tmpR = memberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO); + if (!tmpR.isSuccess()) { + throw new ServiceException("撤单失败 " + tmpR.getMsg()); + } + } else if (ECancelOrderType.MERGE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) { + // 合并撤单,撤下面所有 + List memberList = validateCancelOrderVO.getMemberList().stream().map(OrderCancelRegisterMemberVO::getPkMember).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(memberList)) { + // 撤销所有订单明细表 + saOrderItemsService.updateOrderItemsByMemberList(memberList, pkApprove, currentDate); + // 撤销所有订单主表 + baseMapper.updateSaOrderByMember(memberList, pkApprove, currentDate); } - // 撤销注册订单 单点撤单 - if (ECancelOrderType.SINGLE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) { - // 单点撤单,变死点 - R tmpR = memberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO); - if (!tmpR.isSuccess()) { - throw new ServiceException("撤单失败 " + tmpR.getMsg()); - } - } else if (ECancelOrderType.MERGE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) { - // 合并撤单,撤下面所有 - List memberList = validateCancelOrderVO.getMemberList().stream().map(OrderCancelRegisterMemberVO::getPkMember).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(memberList)) { - // 撤销所有订单明细表 - saOrderItemsService.updateOrderItemsByMemberList(memberList, pkApprove, currentDate); - // 撤销所有订单主表 - baseMapper.updateSaOrderByMember(memberList, pkApprove, currentDate); - } - - R tmpR = memberServiceApi.mergeRevokeMemberByRegisterOrder(pkApprove, memberList, validateCancelOrderVO.getSaOrderMap(), businessCommissionDTO); - if (!tmpR.isSuccess()) { - throw new ServiceException("撤单失败 " + tmpR.getMsg()); - } - } else { - // 其他撤单 - this.handleCancelUpgradeOrder(saOrderExt, validateCancelOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO); + R tmpR = memberServiceApi.mergeRevokeMemberByRegisterOrder(pkApprove, memberList, validateCancelOrderVO.getSaOrderMap(), businessCommissionDTO); + if (!tmpR.isSuccess()) { + throw new ServiceException("撤单失败 " + tmpR.getMsg()); } + } else { + // 其他撤单 + this.handleCancelUpgradeOrder(saOrderExt, validateCancelOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO); + } // } try { @@ -1804,6 +1810,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl throw new ServiceException("更新订单失败"); } + // 2025.08.04 分公司下的注册、升级订单不直接发货,进入提货中心,撤单需要单独处理提货中心数据 + this.handleCompanyProduct(saOrderExt, pkApprove); + // 本批订单修改记录编号 String businessCode = CommonUtil.createSerialNumber(EOrderPrefix.DEFAULT); SaOrderChargeLog saOrderChargeLog = this.packageSaOrderChargeLog(currentDate, pkApprove, @@ -1814,7 +1823,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl mo.setPkCreator(pkApprove); saOrderChargeLog.setAfterData(JSONUtil.toJsonStr(mo)); saOrderChargeLog.setSource(ESignSource.MEMBER.getValue()); - saOrderChargeLogService.save(saOrderChargeLog); + iSaOrderChargeLogService.save(saOrderChargeLog); // 撤销注册订单 if (myOrderVO.getOrderType() == EOrderType.RETAIL_REGISTER.getValue()) { @@ -2207,11 +2216,11 @@ public class SaOrderServiceImpl extends ServiceImpl impl /** * 处理升级盒数基数 * - * @param cuMember 会员信息 - * @param memberGrade 会员等级信息 - * @param gradeList 等级列表 + * @param cuMember 会员信息 + * @param memberGrade 会员等级信息 + * @param gradeList 等级列表 * @param boxWaresList 盒数商品列表 - * @param systemType 所属系统 + * @param systemType 所属系统 * @return */ @Override @@ -2244,4 +2253,23 @@ public class SaOrderServiceImpl extends ServiceImpl impl return baseMapper.getRegionBindNum(province, city, county); } + /** + * 分公司注册、升级提货中心处理 + * + * @param saOrderExt + * @param pkMember + */ + private void handleCompanyProduct(SaOrderExt saOrderExt, Long pkMember) { + if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() + || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) + && EDelivery.PICK.getValue() == saOrderExt.getDeliveryWay()) { + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsExtList()) { + if (iAcPickService.updatePickUsableByMemberAndActivityType(saOrderExt.getPkCreator(), EPickType.COMPANY_PRODUCT.getValue(), + null, saOrderItems.getPkProduct().longValue(), saOrderItems.getQuantity(), pkMember) == 0) { + throw new ServiceException("订单对应提货产品数量不足,不能撤单"); + } + } + } + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/MyOrderVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/MyOrderVO.java index 0fda2a26..85284494 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/MyOrderVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/MyOrderVO.java @@ -19,11 +19,7 @@ import java.util.Date; import java.util.List; /** - * @Description: 我的订单返回VO - * @Author: jiang chao - * @Time: 2023/1/13 16:13 - * @Classname: MyOrderVO - * @PackageName: com.hzs.sale.order.vo + * 我的订单返回VO */ @NoArgsConstructor @AllArgsConstructor @@ -105,7 +101,6 @@ public class MyOrderVO implements Serializable { /** * 订单状态(EOrderStatus) */ - @Transaction(transactionKey = EnumsPrefixConstants.ORDER_STATUS) private Integer orderStatus; /** * 订单状态显示 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderSelfPickupVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderSelfPickupVO.java index a49f01bb..8adc9356 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderSelfPickupVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderSelfPickupVO.java @@ -14,11 +14,7 @@ import java.util.Date; import java.util.List; /** - * @description: 订单自提VO - * @author: zhang jing - * @date: 2023/5/29 14:56 - * @param: - * @return: + * 订单自提VO **/ @NoArgsConstructor @AllArgsConstructor diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaTOrderQueryVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaTOrderQueryVO.java deleted file mode 100644 index 1158b2c8..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaTOrderQueryVO.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.hzs.sale.order.vo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.hzs.common.core.annotation.Excel; -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.constant.EnumsPrefixConstants; -import lombok.Data; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * @Description: 查询商品订单VO - * @Author: jiang chao - * @Time: 2023/5/29 17:48 - * @Classname: SaTOrderQueryVO - * @PackageName: com.hzs.sale.order.vo - */ -@Data -public class SaTOrderQueryVO { - - /** - * 订单ID - */ - private Long pkOrder; - /** - * 订单明细ID - */ - private Long pkOrderItems; - - /** - * 产品名称 - */ - @Excel(name = "产品名称") - private String productName; - /** - * 产品规格 - */ - @Excel(name = "产品规格") - private String specsName; - /** - * 产品单价 - */ - @Excel(name = "产品单价(¥)") - private BigDecimal price; - /** - * 产品业绩 - */ - @Excel(name = "产品业绩($)") - private BigDecimal achievement; - - /** - * 订单状态 (0=待付款,1=已付款,2=已合单,3=待收货,4=已撤单,5=已收货) - */ - @Transaction(transactionKey = EnumsPrefixConstants.ORDER_STATUS) - private Integer orderStatus; - /** - * 订单状态显示 - */ - @Excel(name = "发货状态") - private String orderStatusVal; - - /** - * 物流单号 - */ - @Excel(name = "物流单号") - private String logisticsCode; - /** - * 物流公司 - */ - @Excel(name = "物流公司") - private String logisticsCompany; - /** - * 产品数量 - */ - @Excel(name = "产品数量") - private Integer quantity; - - /** - * 订单编号 - */ - @Excel(name = "订单编号") - private String orderCode; - - /** - * 会员编号 - */ - @Excel(name = "会员编号") - private String memberCode; - - /** - * 会员名称 - */ - @Excel(name = "会员姓名") - private String memberName; - - /** - * 收货人 - */ - @Excel(name = "收货人") - private String recName; - - /** - * 收货电话 - */ - @Excel(name = "联系方式") - private String recPhone; - - /** - * 省 - */ - private Integer recProvince; - /** - * 省显示 - */ - @Excel(name = "省") - private String recProvinceVal; - - /** - * 市 - */ - private Integer recCity; - /** - * 市显示 - */ - @Excel(name = "市") - private String recCityVal; - - /** - * 县 - */ - private Integer recCounty; - /** - * 县显示 - */ - @Excel(name = "区/县") - private String recCountyVal; - - /** - * 收货地址 - */ - @Excel(name = "详细地址") - private String recAddress; - - /** - * 订单金额 - */ - @Excel(name = "订单金额(¥)") - private BigDecimal orderAmount; - - /** - * 订单业绩 - */ - @Excel(name = "订单业绩($)") - private BigDecimal orderAchieve; - - /** - * 邮费 - */ - @Excel(name = "邮费(¥)") - private BigDecimal postage; - - /** - * 备注 - */ - @Excel(name = "备注") - private String remark; - - /** - * 创建时间 - */ - @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date creationTime; - - /** - * 支付时间 - */ - @Excel(name = "支付时间", dateFormat = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date payTime; - - -} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java index acc4280c..f66165d3 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java @@ -52,22 +52,15 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -/** - * @Description: - * @Author: yuhui - * @Time: 2022/9/8 17:04 - * @Classname: BdWaresController - * @PackageName: com.hzs.sale.wares.controller.manage - */ @Slf4j @RestController @RequestMapping("/manage/wares") public class BdWaresController extends BaseController { @DubboReference - ICurrencyServiceApi currencyServiceApi; + ICurrencyServiceApi iCurrencyServiceApi; @DubboReference - IRangeServiceApi rangeServiceApi; + IRangeServiceApi iRangeServiceApi; @Autowired private IBdWaresAuthorizeService waresAuthorizeService; @@ -84,11 +77,11 @@ public class BdWaresController extends BaseController { @Autowired private IBdWaresRangeService waresRangeService; @Autowired - private IBdProductService productService; + private IBdProductService iBdProductService; @Autowired private IBdWaresSpecsPackService waresSpecsPackService; @Autowired - private IBdWaresService waresService; + private IBdWaresService iBdWaresService; @Autowired private IBdWaresLabelService waresLabelService; @Autowired @@ -121,12 +114,12 @@ public class BdWaresController extends BaseController { waresParams.setSystemType(SecurityUtils.getSystemType()); startPage(); - List resultList = waresService.selectByWaresInfo(waresParams); + List resultList = iBdWaresService.selectByWaresInfo(waresParams); if (CollectionUtil.isNotEmpty(resultList)) { - R currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); + R currencyDto = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); resultList.parallelStream().forEach(waresVo -> { - WaresAuthorityVo waresAuthorityVo = waresService.getWaresAuthorityFirst(waresVo.getPkWares()); + WaresAuthorityVo waresAuthorityVo = iBdWaresService.getWaresAuthorityFirst(waresVo.getPkWares()); if (waresAuthorityVo != null) { waresVo.setAuthorityType(waresAuthorityVo.getAuthorityType()); waresVo.setAuthorityTypeVal(EWaresPermissionType.getEnumByValue(waresAuthorityVo.getAuthorityType()).getLabel()); @@ -156,9 +149,9 @@ public class BdWaresController extends BaseController { waresParams.setPkCountry(SecurityUtils.getPkCountry()); waresParams.setSystemType(SecurityUtils.getSystemType()); - List resultList = waresService.selectByWaresInfo(waresParams); + List resultList = iBdWaresService.selectByWaresInfo(waresParams); if (CollectionUtil.isNotEmpty(resultList)) { - R currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); + R currencyDto = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); // 获取需要翻译的枚举翻译 Map transactionMap = iTransactionCommonService.exportEnumTransaction(ESpecialArea.values(), EYesNo.values(), ESupplyWay.values(), EPresaleStatus.values()); @@ -170,7 +163,7 @@ public class BdWaresController extends BaseController { // 预售状态 waresVo.setPreSaleStatusVal(transactionMap.get(EnumsPrefixConstants.PRESALE_STATUS + waresVo.getPreSaleStatus())); - WaresAuthorityVo waresAuthorityVo = waresService.getWaresAuthorityFirst(waresVo.getPkWares()); + WaresAuthorityVo waresAuthorityVo = iBdWaresService.getWaresAuthorityFirst(waresVo.getPkWares()); if (waresAuthorityVo != null) { waresVo.setAuthorityType(waresAuthorityVo.getAuthorityType()); waresVo.setAuthorityTypeVal(EWaresPermissionType.getEnumByValue(waresAuthorityVo.getAuthorityType()).getLabel()); @@ -227,7 +220,7 @@ public class BdWaresController extends BaseController { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(BdWares::getWaresCode, wares.getWaresCode()); queryWrapper.eq(BdWares::getSpecialArea, wares.getSpecialArea()); - if (waresService.count(queryWrapper) > 0) { + if (iBdWaresService.count(queryWrapper) > 0) { return AjaxResult.error("商品编号重复"); } } @@ -328,7 +321,7 @@ public class BdWaresController extends BaseController { return AjaxResult.error("产品规格至少有一个上架"); } // wares.setSort(0); - waresService.saveWares(wares, userTokenService.getLoginUser()); + iBdWaresService.saveWares(wares, userTokenService.getLoginUser()); return AjaxResult.success(wares.getWaresCode()); } @@ -356,7 +349,7 @@ public class BdWaresController extends BaseController { queryWrapper.eq(BdWares::getWaresCode, waresParams.getWaresCode()); queryWrapper.eq(BdWares::getSpecialArea, waresParams.getSpecialArea()); queryWrapper.notIn(BdWares::getPkId, waresParams.getWaresId()); - if (waresService.count(queryWrapper) > 0) { + if (iBdWaresService.count(queryWrapper) > 0) { return AjaxResult.error("商品编号重复"); } } @@ -459,7 +452,7 @@ public class BdWaresController extends BaseController { } // waresParams.setSort(0); - waresService.updateWares(waresParams, userTokenService.getLoginUser()); + iBdWaresService.updateWares(waresParams, userTokenService.getLoginUser()); return AjaxResult.success(waresParams.getWaresCode()); } @@ -472,7 +465,7 @@ public class BdWaresController extends BaseController { @DeleteMapping("/{pkId}") @Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.THIRD_WARES_LIST, method = EOperationMethod.DELETE) public AjaxResult remove(@PathVariable Integer pkId) { - waresService.removeWares(pkId, userTokenService.getLoginUser()); + iBdWaresService.removeWares(pkId, userTokenService.getLoginUser()); return AjaxResult.success(); } @@ -484,11 +477,11 @@ public class BdWaresController extends BaseController { */ @GetMapping("/detail") public AjaxResult detail(Long pkId) { - R> rangeDto = rangeServiceApi.queryRange(SecurityUtils.getPkCountry()); + R> rangeDto = iRangeServiceApi.queryRange(SecurityUtils.getPkCountry()); List rsList = rangeDto.getData(); Map rangeMap = rsList.stream().collect(Collectors.toMap(BdRangeExt::getPkId, Function.identity())); - BdWares wares = waresService.getById(pkId); + BdWares wares = iBdWaresService.getById(pkId); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(BdWaresExtend::getPkWares, pkId); BdWaresExtend waresExtend = waresExtendService.getOne(queryWrapper); @@ -543,7 +536,7 @@ public class BdWaresController extends BaseController { waresParams.setSystemType(waresExtend.getSystemType()); waresParams.setAreaIncome(wares.getAreaIncome()); if (waresExtend.getMakerIncome() != null) { - R currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); + R currencyDto = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); waresParams.setMakerIncome(waresExtend.getMakerIncome().multiply(currencyDto.getData().getInExchangeRate())); } @@ -605,7 +598,7 @@ public class BdWaresController extends BaseController { List waresSpecsSkuList = new ArrayList<>(); for (BdWaresDetail bd : waresDetailList) { WaresDetailParams waresDetailParams = BeanUtil.copyProperties(bd, WaresDetailParams.class); - BdProduct product = productService.getProduct(bd.getPkProduct()); + BdProduct product = iBdProductService.getProduct(bd.getPkProduct()); if (product != null) { waresDetailParams.setProductCode(product.getProductCode()); waresDetailParams.setProductName(product.getProductName()); @@ -691,7 +684,7 @@ public class BdWaresController extends BaseController { } else { waresRangeParams.setRangeName(null); } - BdProduct product = productService.getProduct(bdWaresRange.getPkProduct()); + BdProduct product = iBdProductService.getProduct(bdWaresRange.getPkProduct()); waresRangeParams.setProductCode(product.getProductCode()); waresRangeParams.setProductName(product.getProductName()); waresRangeParams.setProductCover(product.getCover()); @@ -711,7 +704,7 @@ public class BdWaresController extends BaseController { for (BdWaresDetail bdWaresDetail : waresDetailList) { WaresRangeParams waresRangeParams = new WaresRangeParams(); waresRangeParams.setPkRange(rg); - BdProduct product = productService.getProduct(bdWaresDetail.getPkProduct()); + BdProduct product = iBdProductService.getProduct(bdWaresDetail.getPkProduct()); waresRangeParams.setPkProduct(product.getPkId()); waresRangeParams.setProductCode(product.getProductCode()); waresRangeParams.setProductName(product.getProductName()); @@ -784,7 +777,7 @@ public class BdWaresController extends BaseController { @Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.THIRD_WARES_LIST, method = EOperationMethod.UP_MOVE) public AjaxResult move(Integer waresId, Integer waresMoveType, Integer specialArea) { LoginUser loginUser = userTokenService.getLoginUser(); - waresService.waresMove(waresId, waresMoveType, loginUser, specialArea); + iBdWaresService.waresMove(waresId, waresMoveType, loginUser, specialArea); return AjaxResult.success(); } @@ -799,7 +792,7 @@ public class BdWaresController extends BaseController { @Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.THIRD_WARES_LIST, method = EOperationMethod.TOP) public AjaxResult floatingRoof(Integer waresId) { LoginUser loginUser = userTokenService.getLoginUser(); - waresService.floatingRoof(waresId, loginUser); + iBdWaresService.floatingRoof(waresId, loginUser); return AjaxResult.success(); } @@ -811,7 +804,7 @@ public class BdWaresController extends BaseController { @GetMapping("/botton-up") public AjaxResult bottomUp(Integer waresId) { LoginUser loginUser = userTokenService.getLoginUser(); - waresService.bottomUp(waresId, loginUser); + iBdWaresService.bottomUp(waresId, loginUser); return AjaxResult.success(); } @@ -822,7 +815,7 @@ public class BdWaresController extends BaseController { */ @GetMapping("/create-wares-code") public AjaxResult createWaresCode() { - String waresCode = CreateNormsCodeUtils.createWaresCode(waresService.getLastWaresCode()); + String waresCode = CreateNormsCodeUtils.createWaresCode(iBdWaresService.getLastWaresCode()); return AjaxResult.success(waresCode); } @GetMapping("/getMaxSortNum") @@ -838,7 +831,7 @@ public class BdWaresController extends BaseController { @GetMapping("/create-wares-sort") public AjaxResult createWaresSort() { Integer pkCountry = SecurityUtils.getPkCountry(); - Integer maxSort = waresService.getMaxSort(pkCountry); + Integer maxSort = iBdWaresService.getMaxSort(pkCountry); if (maxSort == null) { maxSort = 0; } @@ -855,7 +848,7 @@ public class BdWaresController extends BaseController { queryWrapper.eq(BdWares::getWaresName, waresName); } queryWrapper.eq(BdWares::getPkCountry, SecurityUtils.getPkCountry()); - List list = waresService.list(queryWrapper); + List list = iBdWaresService.list(queryWrapper); List resultList = new ArrayList<>(); for (BdWares bdWares : list) { WaresEntnyOrderVo waresEntnyOrderVo = new WaresEntnyOrderVo(); @@ -957,7 +950,7 @@ public class BdWaresController extends BaseController { } queryWrapper.eq(BdWares::getPkCountry, SecurityUtils.getPkCountry()); queryWrapper.eq(BdWares::getSystemType, SecurityUtils.getSystemType()); - List list = waresService.list(queryWrapper); + List list = iBdWaresService.list(queryWrapper); return AjaxResult.success(list); } @@ -969,7 +962,7 @@ public class BdWaresController extends BaseController { for (ComputeWaresPrice computeWaresPrice : computhParams.getComputeWaresPriceList()) { computeWaresPrice.setPkWares(computhParams.getPkWares()); } - return AjaxResult.success(waresService.computeWaresPrice(computhParams.getComputeWaresPriceList(), computhParams.getSpecialArea())); + return AjaxResult.success(iBdWaresService.computeWaresPrice(computhParams.getComputeWaresPriceList(), computhParams.getSpecialArea())); } /** @@ -981,7 +974,7 @@ public class BdWaresController extends BaseController { @Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.WARES_LIST, method = EOperationMethod.APPROVAL, remark = "商品新増审批") @PostMapping("/wares-approve") public AjaxResult waresApprove(@Valid @RequestBody WaresApproveParam param) { - waresService.update(Wrappers.lambdaUpdate() + iBdWaresService.update(Wrappers.lambdaUpdate() .eq(BdWares::getPkId, param.getPkWares()) .eq(BdWares::getWaresStatus, EApproveStatus.ALREADY_SUBMIT.getValue()) .set(BdWares::getWaresStatus, EApproveStatus.FINISH.getValue()) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/ComputeWaresPrice.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/ComputeWaresPrice.java index f156f33c..a2440534 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/ComputeWaresPrice.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/ComputeWaresPrice.java @@ -7,14 +7,6 @@ import lombok.Data; import java.math.BigDecimal; import java.util.List; -/** - * @BelongsProject: hzs_cloud - * @BelongsPackage: com.hzs.sale.wares.param - * @Author: yh - * @CreateTime: 2023-06-29 09:39 - * @Description: TODO - * @Version: 1.0 - */ @Data public class ComputeWaresPrice { /** diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java index af6a2524..5ec3d4d2 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java @@ -15,11 +15,7 @@ import java.util.Date; import java.util.List; /** - * @Description: 返回到前台的商品信息 - * @Author: sui q - * @Time: 2022/9/19 9:25 - * @Classname: CuWaresParams - * @PackageName: com.hzs.sale.wares.param + * 返回到前台的商品信息 */ @Data @Builder @@ -264,7 +260,7 @@ public class CuWaresParams implements Serializable { */ private String description; /** - *商品分类(三级分类) + * 商品分类(三级分类) */ private Long pkCategoryThree; diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/TransportPostage.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/TransportPostage.java index ef07ffac..17f40830 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/TransportPostage.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/TransportPostage.java @@ -2,13 +2,6 @@ package com.hzs.sale.wares.param; import lombok.Data; -/** - * @Description: - * @Author: yuhui - * @Time: 2022/11/2 16:25 - * @Classname: TransportPostage - * @PackageName: com.hzs.sale.wares.param - */ @Data public class TransportPostage { /** @@ -17,7 +10,7 @@ public class TransportPostage { private Integer transportType; /** - * 邮费外键 + * 邮费外键 */ private Integer pkPostage; } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresQueryVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresQueryVO.java deleted file mode 100644 index 4d2424f4..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresQueryVO.java +++ /dev/null @@ -1,196 +0,0 @@ -package com.hzs.sale.wares.vo; - -import com.hzs.common.core.annotation.Excel; -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.constant.EnumsPrefixConstants; -import com.hzs.common.core.utils.StringUtils; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; - -/** - * @Description: 三方商品列表VO - * @Author: jiang chao - * @Time: 2023/5/24 15:57 - * @Classname: SaTWaresQueryVO - * @PackageName: com.hzs.sale.wares.vo - */ -@AllArgsConstructor -@NoArgsConstructor -@Builder -@Data -public class SaTWaresQueryVO { - - /** - * 主键 - */ - private Long pkId; - /** - * 三方商品表ID - */ - private Long pkTWares; - - /** - * 三方商品SKU表ID - */ - @Excel(name = "直供序号") - private Long pkTWaresSku; - - /** - * 商品名称 - */ - @Excel(name = "商品名称") - private String productName; - - /** - * 分类显示 - */ - @Excel(name = "商品分类") - private String titleCategory; - - public String getTitleCategory() { - if (StringUtils.isNotEmpty(this.titleCategoryOne)) { - titleCategory = this.titleCategoryOne; - } - if (StringUtils.isNotEmpty(this.titleCategoryTwo)) { - titleCategory += "-" + this.titleCategoryTwo; - } - if (StringUtils.isNotEmpty(this.titleCategoryThree)) { - titleCategory += "-" + this.titleCategoryThree; - } - return titleCategory; - } - - /** - * 商品图片 - */ - private String cover; - - /** - * 品牌名称 - */ - private String brandName; - /** - * 规格值冗余 - */ - @Excel(name = "商品规格") - private String specValueNames; - - /** - * 来源渠道 - */ - private Integer source; - /** - * 来源渠道显示 - */ - @Excel(name = "平台") - private String sourceVal; - - /** - * 协议价(供应价) - */ - @Excel(name = "供应价(¥)") - private BigDecimal agreementPrice; - /** - * 商品售价 - */ - @Excel(name = "售价(¥)") - private BigDecimal price; - /** - * 商品pv - */ - @Excel(name = "业绩(¥)") - private BigDecimal achieve; - - /** - * 商品PV(美元) - */ - @Excel(name = "业绩($)") - private BigDecimal achievementDollar; - /** - * 分享pv - */ - private BigDecimal shareAchieve; - - /** - * 毛利润 - */ - @Excel(name = "毛利润(¥)") - private BigDecimal grossProfit; - /** - * 净利润 - */ - @Excel(name = "纯利润(¥)") - private BigDecimal netProfit; - - /** - * 是否上架(0=上架,1=下架) - */ - private Integer isPutOn; - - /** - * 是否推荐(0=推荐,1=不推荐) - */ - @Transaction(transactionKey = EnumsPrefixConstants.RECOMMEND_TYPE) - private Integer isRecommend; - /** - * 是否推荐 - */ - private String isRecommendVal; - - /** - * 商品分类(一级分类) - */ - private Long pkCategoryOne; - /** - * 一级分类名称 - */ - private String titleCategoryOne; - - /** - * 商品分类(二级分类) - */ - private Long pkCategoryTwo; - /** - * 一级分类名称 - */ - private String titleCategoryTwo; - - /** - * 商品分类(三级分类) - */ - private Long pkCategoryThree; - /** - * 一级分类名称 - */ - private String titleCategoryThree; - - - /** - * 虚拟销量 - */ - @Excel(name = "虚拟销量") - private Integer sale; - - /** - * 实际销量 - */ - @Excel(name = "实际销量") - private Integer realSale; - - /** - * 销量 - */ - @Excel(name = "销量") - private Integer allSale; - - /** - * 下架备注 - */ - @Excel(name = "下架说明") - private String putOnRemark; - -} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresSkuVo.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresSkuVo.java index cb29525a..c783ea6f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresSkuVo.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/SaTWaresSkuVo.java @@ -1,26 +1,10 @@ -package com.hzs.sale.wares.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2023/5/19 17:13 - * @Classname: SaTWaresSkuVo - * @PackageName: com.hzs.sale.wares.vo - */ +package com.hzs.sale.wares.vo; import com.alibaba.fastjson2.JSONArray; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import java.math.BigDecimal; -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.sale.wares.vo - *@Author: yh - *@CreateTime: 2023-05-19 17:13 - *@Description: TODO - *@Version: 1.0 - */ @Data public class SaTWaresSkuVo { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/TWaresQueryVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/TWaresQueryVO.java deleted file mode 100644 index 3fd39086..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/vo/TWaresQueryVO.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.hzs.sale.wares.vo; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; - -/** - * @Description: 三方商品定价查询VO - * @Author: jiang chao - * @Time: 2023/5/18 10:57 - * @Classname: TWaresQueryVO - * @PackageName: com.hzs.sale.wares.vo - */ -@NoArgsConstructor -@AllArgsConstructor -@Builder -@Data -public class TWaresQueryVO { - - /** - * 产品主键 - */ - private Long pkId; - /** - * 商品主键 - */ - private Long pkTWares; - - /** - * skuId - */ - private Long tId; - /** - * 商品ID - */ - private Long pkThWares; - - /** - * 商品名称 - */ - private String title; - /** - * 商品图片 - */ - private String cover; - /** - * 商品分类(全部级别,需要处理后返回) - */ - private String thirdCategoryName; - - /** - * 商品分类(一级分类) - */ - private String category; - /** - * 商品类目(二级分类) - */ - private String classify; - - /** - * 品牌名称 - */ - private String thirdBrandName; - - /** - * 规格值组合 - */ - private String specValueNames; - - /** - * 来源平台 - */ - private Integer source; - /** - * 来源平台显示 - */ - private String sourceVal; - - /** - * 规格协议价(单位:分) 供应价 - */ - private BigDecimal agreementPrice; - /** - * 规格指导价(单位:分) - */ - private BigDecimal guidePrice; - - /** - * 上下架状态(0=下架,1=上架) -- 三方状态,需要转换成系统状态 - */ - private Integer status; - - /** - * 是否定价(0=是,1=否) - */ - private Integer confirmPrice; - - /** - * 是否显示(0=显示,1=隐藏) - */ - private Integer showFlag; - - /** - * 售价 - */ - private BigDecimal price; - - /** - * 业绩 - */ - private BigDecimal achievement; - - /** - * 业绩(美元) - */ - private BigDecimal achievementDollar; - - /** - * 分享业绩 - */ - private BigDecimal shareAchieve; - - /** - * 毛利润 - */ - private BigDecimal grossProfit; - - /** - * 净利润 - */ - private BigDecimal netProfit; - -} diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml index f573cfe9..d57a71cc 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml @@ -35,7 +35,7 @@ update ac_pick ap set ap.modified_time = sysdate, ap.pk_modified = #{pkModified}, - ap.usable_quantity = ap.usable_quantity - #{quantity}, + ap.usable_quantity = ap.usable_quantity - #{quantity} where ap.del_flag = 0 and ap.pk_member = #{pkMember} and ap.pick_type = #{pickType} @@ -221,4 +221,46 @@ order by creation_time + + + merge into AC_PICK ap + using ( + + select #{items.pkMember} pk_member, + #{items.pickType} pick_type, + #{items.pkDataId} pk_data_id, + #{items.specsName} specs_name, + #{items.specsNameId} specs_name_id, + #{items.usableQuantity} usable_quantity, + #{items.baseQuantity} base_quantity, + #{items.pkCreator} pk_creator + from dual + + ) tmp + on (tmp.pk_member = ap.pk_member and tmp.pick_type = ap.pick_type and tmp.pk_data_id = ap.pk_data_id + and tmp.specs_name = ap.specs_name and ap.specs_name_id = ap.specs_name_id and tmp.base_quantity = ap.base_quantity) + WHEN NOT MATCHED THEN + insert + (pk_id, + pk_member, + pick_type, + pk_data_id, + specs_name, + specs_name_id, + usable_quantity, + pk_creator, + base_quantity) + values (ac_pick_seq.nextval, + tmp.pk_member, + tmp.pick_type, + tmp.pk_data_id, + tmp.specs_name, + tmp.specs_name_id, + tmp.usable_quantity, + tmp.pk_creator, + tmp.base_quantity) + WHEN MATCHED THEN + update set ap.usable_quantity = ap.usable_quantity + tmp.usable_quantity + + diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdDeliveryController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdDeliveryController.java index 4d602b7c..e5cc0c0e 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdDeliveryController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/controller/manage/BdDeliveryController.java @@ -19,11 +19,7 @@ import java.util.ArrayList; import java.util.List; /** - * Description: 发货方式 控制器 - * Author: jiang chao - * Time: 2022/10/11 13:52 - * Classname: BdDeliveryController - * PackageName: com.hzs.system.config.controller.manage + * 发货方式 控制器 */ @Slf4j @RestController @@ -50,6 +46,7 @@ public class BdDeliveryController extends BaseController { // 创建最终返回内容 DeliveryVO tmpDelivery = DeliveryVO.builder() .deliveryValue(value.getValue()) + .deliveryValueVal(EDelivery.getLabelByValue(value.getValue())) .build(); resultList.add(tmpDelivery); diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/vo/DeliveryVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/vo/DeliveryVO.java index fecec75e..acd85148 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/vo/DeliveryVO.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/vo/DeliveryVO.java @@ -1,18 +1,12 @@ package com.hzs.system.config.vo; -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; /** - * @Description: 发货方式VO - * @Author: jiang chao - * @Time: 2022/11/11 18:06 - * @Classname: DeliveryVO - * @PackageName: com.hzs.system.config.vo + * 发货方式VO */ @AllArgsConstructor @NoArgsConstructor @@ -28,7 +22,6 @@ public class DeliveryVO { /** * 值 */ - @Transaction(transactionKey = EnumsPrefixConstants.DELIVERY) private Integer deliveryValue; /** diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java index dc1fa8e2..81d45fe5 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsController.java @@ -584,7 +584,7 @@ public class EnumsController extends BaseController { List enumEntityList = new ArrayList<>(); for (EActType value : EActType.values()) { if (EYesNo.YES.getIntValue() == value.getEnable()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ACT_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } return AjaxResult.success(enumEntityList); @@ -617,11 +617,6 @@ public class EnumsController extends BaseController { /** * 发货方式 - * - * @author: zhang jing - * @date: 2022/9/30 16:28 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/delivery-list") public AjaxResult deliveryList(Integer pkCountry) { @@ -634,19 +629,15 @@ public class EnumsController extends BaseController { for (BdDelivery delivery : deliveryList) { EDelivery value = EDelivery.getDelivery(delivery.getValue()); if (null != value) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.DELIVERY)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } } + enumEntityList.add(new EnumEntity(EDelivery.PICK.getValue(), EDelivery.PICK.getLabel())); return AjaxResult.success(enumEntityList); } /** * 发货状态 - * - * @author: zhang jing - * @date: 2022/9/30 16:30 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/delivery-status") public AjaxResult deliveryStatus() { @@ -659,11 +650,6 @@ public class EnumsController extends BaseController { /** * 首页banner类型枚举类 - * - * @author: zhang jing - * @date: 2022/10/13 11:27 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/getEHomeBannerTypeList") public AjaxResult getEHomeBannerTypeList() { @@ -676,11 +662,6 @@ public class EnumsController extends BaseController { /** * 转账特殊设置枚举 - * - * @author: zhang jing - * @date: 2022/10/21 9:58 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/getETransferSpecialList") public AjaxResult getETransferSpecialList() { @@ -693,11 +674,6 @@ public class EnumsController extends BaseController { /** * 用户状态枚举 - * - * @author: zhang jing - * @date: 2022/10/21 17:39 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/getEUserStatusList") public AjaxResult getEUserStatusList() { @@ -710,11 +686,6 @@ public class EnumsController extends BaseController { /** * 钱包状态枚举 - * - * @author: zhang jing - * @date: 2022/10/21 17:41 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/get-sallet-status") public AjaxResult getEWalletStatusList() { @@ -739,11 +710,6 @@ public class EnumsController extends BaseController { /** * 是否经销商枚举类 - * - * @author: zhang jing - * @date: 2022/10/21 17:46 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/dealer-yes-no") public AjaxResult dealerYesNo() { @@ -756,11 +722,6 @@ public class EnumsController extends BaseController { /** * 系统是否枚举类 - * - * @author: zhang jing - * @date: 2022/10/21 17:46 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/yes-no") public AjaxResult yesNo() { @@ -1120,37 +1081,13 @@ public class EnumsController extends BaseController { public AjaxResult orderStatus() { List enumEntityList = new ArrayList<>(); for (EOrderStatus value : EOrderStatus.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ORDER_STATUS)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } - /** - * 订单状态(会员端) - * - * @return - */ - /* 2025年6月10日 删除获取订单状态接口 - @GetMapping("/order-status-api") - public AjaxResult orderStatusApi() { - List enumEntityList = new ArrayList<>(); - for (EOrderStatus value : EOrderStatus.values()) { - if (value.getValue() != EOrderStatus.SHIPPING.getValue() && value.getValue() != EOrderStatus.CANCEL.getValue()) { - // 会员端使用 已合单和已撤单 不显示 - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ORDER_STATUS)); - } - } - return AjaxResult.success(enumEntityList); - } - */ - /** * 奖项枚举类 - * - * @author: zhang jing - * @date: 2022/11/9 19:54 - * @param: [] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/bonus-items") public AjaxResult bonusItems() { @@ -1829,7 +1766,7 @@ public class EnumsController extends BaseController { public AjaxResult actTypeAll() { List enumEntityList = new ArrayList<>(); for (EActType value : EActType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ACT_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } @@ -2383,7 +2320,7 @@ public class EnumsController extends BaseController { public AjaxResult pickType() { List enumEntityList = new ArrayList<>(); for (EPickType value : EPickType.values()) { - enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ACT_TYPE)); + enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel())); } return AjaxResult.success(enumEntityList); } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java index d2a77a14..56d6619f 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java @@ -240,11 +240,6 @@ public class EnumsInitController { initList.add(this.createData(value.getKey(), value.getLabel())); } - //活动类型 - for (EActType value : EActType.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - //条码状态 for (EBarcodeStatus value : EBarcodeStatus.values()) { initList.add(this.createData(value.getKey(), value.getLabel())); @@ -255,11 +250,6 @@ public class EnumsInitController { initList.add(this.createData(value.getKey(), value.getLabel())); } - //发货方式 - for (EDelivery value : EDelivery.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - //发货状态 for (EDeliveryStatus value : EDeliveryStatus.values()) { initList.add(this.createData(value.getKey(), value.getLabel())); @@ -387,13 +377,6 @@ public class EnumsInitController { initList.add(this.createData(value.getKey(), value.getLabel())); } - /** - * 订单状态 - */ - for (EOrderStatus value : EOrderStatus.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - /** * 预售状态 */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java index 9c053ac2..7002b09e 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java @@ -9,6 +9,11 @@ import java.util.List; */ public class RetailConstants { + /** + * 分公司提货产品基数 + */ + public static final Integer PICK_BASE = 4; + /** * 会员 推 会员 60 * VIP 推 会员 80 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EActType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EActType.java index 54745b31..c5ae752a 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EActType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EActType.java @@ -14,32 +14,32 @@ public enum EActType { /** * 商品赠品 */ - PRODUCT_GIFT(11, "商品赠品", 0, EnumsPrefixConstants.ACT_TYPE + "11"), + PRODUCT_GIFT(11, "商品赠品", 0), /** * 消费赠送 */ - CONSUMPTION_GIFT(12, "消费赠送", 0, EnumsPrefixConstants.ACT_TYPE + "12"), + CONSUMPTION_GIFT(12, "消费赠送", 0), /** * 直推赠送 */ - DIRECT_PUSH_GIFT(13, "直推赠送", 0, EnumsPrefixConstants.ACT_TYPE + "13"), + DIRECT_PUSH_GIFT(13, "直推赠送", 0), /** * 抽奖 */ - LOTTERY_DRAW(17, "抽奖", 0, EnumsPrefixConstants.ACT_TYPE + "17"), + LOTTERY_DRAW(17, "抽奖", 0), /** * 会员消费赠送 活动 */ - MEMBER_CONSUMPTION(25, "会员消费赠送", 0, EnumsPrefixConstants.ACT_TYPE + "25"), + MEMBER_CONSUMPTION(25, "会员消费赠送", 0), /** * 提货赠送活动 */ - PICK_GIFT(30, "提货赠送活动", 0, EnumsPrefixConstants.ACT_TYPE + "30"), + PICK_GIFT(30, "提货赠送活动", 0), ; @@ -55,8 +55,4 @@ public enum EActType { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java index fcc7e7dc..099f8d94 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -14,27 +13,32 @@ public enum EDelivery { /** * */ - EMPTY(0, "未知", 1, EnumsPrefixConstants.DELIVERY + "0"), + EMPTY(0, "未知", 1), /** * 快递发货 */ - FAST_MAIL(1, "快递发货", 0, EnumsPrefixConstants.DELIVERY + "1"), + FAST_MAIL(1, "快递发货", 0), /** * 公司自提 */ - COMPANY_PICKED_UP(2, "公司自提", 0, EnumsPrefixConstants.DELIVERY + "2"), + COMPANY_PICKED_UP(2, "公司自提", 0), /** * 店铺自提 */ - SHOP_PICKED_UP(3, "店铺自提", 0, EnumsPrefixConstants.DELIVERY + "3"), + SHOP_PICKED_UP(3, "店铺自提", 0), /** * 店铺配送 */ - SHOP_DELIVERY(4, "店铺配送", 0, EnumsPrefixConstants.DELIVERY + "4"), + SHOP_DELIVERY(4, "店铺配送", 0), + + /** + * 提货中心 + */ + PICK(6, "提货中心", 0), ; @@ -50,10 +54,6 @@ public enum EDelivery { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; public static EDelivery getDelivery(int value) { for (EDelivery eDelivery : EDelivery.values()) { @@ -63,4 +63,23 @@ public enum EDelivery { } return EDelivery.EMPTY; } + + /** + * 根据值返回显示内容 + * + * @param value + * @return + */ + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (EDelivery enums : EDelivery.values()) { + if (enums.getValue() == value) { + return enums.getLabel(); + } + } + return ""; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderStatus.java index e95c5764..957923f4 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderStatus.java @@ -1,18 +1,10 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; -import java.util.ArrayList; -import java.util.List; - /** - * @Description: 订单状态 - * @Author: sui q - * @Time: 2022/8/31 9:14 - * @Classname: EOrderStatus - * @PackageName: com.hzs.common.core.enums + * 订单状态 */ @AllArgsConstructor @Getter @@ -21,32 +13,37 @@ public enum EOrderStatus { /** * 0=待付款 */ - WAIT_PAY(0, "待付款", 0, EnumsPrefixConstants.ORDER_STATUS + "0"), + WAIT_PAY(0, "待付款", 0), /** * 1=待发货 */ - PAY(1, "待发货", 0, EnumsPrefixConstants.ORDER_STATUS + "1"), + PAY(1, "待发货", 0), /** * 2=已合单 */ - SHIPPING(2, "已合单", 0, EnumsPrefixConstants.ORDER_STATUS + "2"), + SHIPPING(2, "已合单", 0), /** * 3=待收货 */ - DELIVERED(3, "待收货", 0, EnumsPrefixConstants.ORDER_STATUS + "3"), + DELIVERED(3, "待收货", 0), /** * 4=已关闭 */ - CANCEL(4, "已关闭", 0, EnumsPrefixConstants.ORDER_STATUS + "4"), + CANCEL(4, "已关闭", 0), /** * 5=已收货 */ - RECEIVED(5, "已收货", 0, EnumsPrefixConstants.ORDER_STATUS + "5"), + RECEIVED(5, "已收货", 0), + + /** + * 6=提货中心 + */ + PICK(6, "提货中心", 0), ; @@ -62,39 +59,23 @@ public enum EOrderStatus { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; /** - * 会员前端列表 - */ - private static List apiList; - - /** - * 获取会员前端列表 + * 根据值获取显示内容 * + * @param value * @return */ - public static List getApiList() { - if (null == apiList) { - apiList = new ArrayList<>(); - apiList.add(WAIT_PAY); - apiList.add(PAY); - apiList.add(DELIVERED); - apiList.add(RECEIVED); + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; } - return apiList; - } - - public static EOrderStatus getEOrderStatus(int value){ - for (EOrderStatus eOrderStatus : EOrderStatus.values()) { - if (eOrderStatus.value == value){ - return eOrderStatus; + for (EOrderStatus enums : EOrderStatus.values()) { + if (enums.value == value) { + return enums.getLabel(); } } - return null; + return ""; } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java index e45a1026..d5762c72 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -12,29 +11,34 @@ import lombok.Getter; public enum EPickType { /** - * 关联 BS_PRODUCT 表 + * 关联 BD_PRODUCT 表 */ - PICK_PRODUCT(0, "提货产品", EnumsPrefixConstants.ACT_TYPE + "0"), + PICK_PRODUCT(0, "提货产品"), /** - * 关联 BS_PRODUCT 表(一次全部提走) + * 关联 BD_PRODUCT 表(一次全部提走) */ - PRIZE(1, "抽奖", EnumsPrefixConstants.ACT_TYPE + "1"), + PRIZE(1, "抽奖"), /** * 关联 AC_GIFT_CONFIG 表 */ - CONSUMPTION_GIFT(12, "消费赠送", EnumsPrefixConstants.ACT_TYPE + "12"), + CONSUMPTION_GIFT(12, "消费赠送"), /** * 关联 AC_GIFT_CONFIG 表 */ - DIRECT_PUSH_GIFT(13, "直推赠送", EnumsPrefixConstants.ACT_TYPE + "13"), + DIRECT_PUSH_GIFT(13, "直推赠送"), /** * 关联 AC_GIFT_CONFIG 表 */ - LOTTERY_DRAW(17, "抽奖", EnumsPrefixConstants.ACT_TYPE + "17"), + LOTTERY_DRAW(17, "抽奖"), + + /** + * 关联 BD_PRODUCT 表 + */ + COMPANY_PRODUCT(20, "分公司产品"), ; @@ -46,10 +50,6 @@ public enum EPickType { * 显示标签 */ private final String label; - /** - * 国际化翻译key值 - */ - private final String key; /** * 根据枚举值查询枚举 diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseConfig.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseConfig.java index 733cc007..7fd5e815 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseConfig.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseConfig.java @@ -18,9 +18,6 @@ import lombok.experimental.Accessors; /** * 活动基本配置表 - * - * @author hzs - * @since 2023-04-20 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcPick.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcPick.java index 15f00352..4978203e 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcPick.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcPick.java @@ -8,13 +8,15 @@ import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.hzs.common.core.web.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.*; import lombok.experimental.Accessors; /** * 提货基础表 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data @EqualsAndHashCode(callSuper = true) @Accessors(chain = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcRetailPickMemberLog.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcRetailPickMemberLog.java index fe577bcc..31ad0d34 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcRetailPickMemberLog.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/AcRetailPickMemberLog.java @@ -14,12 +14,7 @@ import lombok.*; import lombok.experimental.Accessors; /** - *

* 新零售会员提货日志 - *

- * - * @author hzs - * @since 2025-01-09 */ @Builder @AllArgsConstructor diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/ext/AcPickLogExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/ext/AcPickLogExt.java index 2cf58882..e0290afc 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/ext/AcPickLogExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/pick/ext/AcPickLogExt.java @@ -7,11 +7,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * @Description: 提货操作日志扩展表 - * @Author: jiang chao - * @Time: 2023/4/24 17:11 - * @Classname: AcPickLogExt - * @PackageName: com.hzs.common.domain.activity.pick.ext + * 提货操作日志扩展表 */ @EqualsAndHashCode(callSuper = true) @Data diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdDelivery.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdDelivery.java index 422665f1..623b3906 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdDelivery.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdDelivery.java @@ -11,9 +11,6 @@ import lombok.experimental.Accessors; /** * 发货方式表 - * - * @author hzs - * @since 2022-10-10 */ @Data @EqualsAndHashCode(callSuper = false) From 8f1c7c8c1478ccce42f2b2e64f5d2a353048e3f1 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 5 Aug 2025 09:23:01 +0800 Subject: [PATCH 44/89] =?UTF-8?q?##=20=E6=8F=90=E8=B4=A7=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=B5=81=E7=A8=8B=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/sale/postage/IPostageServiceApi.java | 29 -- .../sale/postage/dto/PostageProductDTO.java | 6 +- .../com/hzs/common/util/TransactionUtils.java | 27 -- .../controller/api/ApiPickController.java | 333 ++++++++++-------- .../activity/pick/mapper/AcPickMapper.java | 18 +- .../pick/mapper/AcPickMemberLogMapper.java | 12 + .../pick/service/IAcPickMemberLogService.java | 10 + .../activity/pick/service/IAcPickService.java | 11 + .../impl/AcPickMemberLogServiceImpl.java | 5 + .../pick/service/impl/AcPickServiceImpl.java | 20 +- .../hzs/activity/pick/vo/ApiPickListVO.java | 6 +- .../api/ApiRetailOrderController.java | 13 +- .../service/impl/RetailOrderServiceImpl.java | 75 ++-- .../sale/param/RetailOrderOtherParam.java | 3 +- .../sale/order/param/WaresNumberParam.java | 8 - .../service/impl/SaOrderServiceImpl.java | 271 +++++++------- .../sale/postage/mapper/BdPostageMapper.java | 7 +- .../provider/IPostageServiceProvider.java | 42 --- .../postage/service/IBdPostageService.java | 3 - .../service/IPostageBusinessService.java | 6 +- .../service/impl/BdPostageServiceImpl.java | 3 - .../impl/PostageBusinessServiceImpl.java | 6 +- .../impl/BdWaresExtendServiceImpl.java | 3 - .../mapper/activity/pick/AcPickMapper.xml | 18 +- .../activity/pick/AcPickMemberLogMapper.xml | 20 +- .../provider/AreaCurrencyServiceProvider.java | 27 +- .../constant/msg/ActivityMsgConstants.java | 21 +- .../com/hzs/common/core/enums/EActType.java | 1 - .../com/hzs/common/core/enums/EDelFlag.java | 2 - .../com/hzs/common/core/enums/EOrderType.java | 7 +- .../hzs/common/core/enums/ESpecialArea.java | 5 + .../domain/activity/pick/AcPickMemberLog.java | 6 +- 32 files changed, 515 insertions(+), 509 deletions(-) delete mode 100644 bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/IPostageServiceApi.java delete mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/provider/IPostageServiceProvider.java diff --git a/bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/IPostageServiceApi.java b/bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/IPostageServiceApi.java deleted file mode 100644 index 77916c01..00000000 --- a/bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/IPostageServiceApi.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hzs.sale.postage; - -import com.hzs.common.core.domain.R; -import com.hzs.sale.postage.dto.PostageProductDTO; - -import java.math.BigDecimal; -import java.util.List; - -/** - * @Description: 邮费服务API - * @Author: jiang chao - * @Time: 2023/4/25 14:40 - * @Classname: IPostageServiceApi - * @PackageName: com.hzs.sale.postage - */ -public interface IPostageServiceApi { - - /** - * 查询邮费 - * - * @param pkId 邮费模板ID - * @param productList 产品列表 - * @param province 省 - * @param recCity 市 - * @return - */ - R queryPostage(Integer pkId, List productList, Integer province, Integer recCity); - -} diff --git a/bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/dto/PostageProductDTO.java b/bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/dto/PostageProductDTO.java index 90519341..f195d087 100644 --- a/bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/dto/PostageProductDTO.java +++ b/bd-api/bd-api-sale/src/main/java/com/hzs/sale/postage/dto/PostageProductDTO.java @@ -8,11 +8,7 @@ import lombok.NoArgsConstructor; import java.io.Serializable; /** - * @Description: 邮费产品DOT - * @Author: jiang chao - * @Time: 2023/4/25 16:05 - * @Classname: PostageProductDTO - * @PackageName: com.hzs.sale.postage.dto + * 邮费产品DOT */ @NoArgsConstructor @AllArgsConstructor diff --git a/bd-business/bd-business-common/src/main/java/com/hzs/common/util/TransactionUtils.java b/bd-business/bd-business-common/src/main/java/com/hzs/common/util/TransactionUtils.java index ae05e202..ce0c6eac 100644 --- a/bd-business/bd-business-common/src/main/java/com/hzs/common/util/TransactionUtils.java +++ b/bd-business/bd-business-common/src/main/java/com/hzs/common/util/TransactionUtils.java @@ -1,26 +1,16 @@ package com.hzs.common.util; -import com.hzs.common.core.constant.CacheConstants; -import com.hzs.common.core.enums.ELanguages; -import com.hzs.common.core.service.RedisService; -import com.hzs.common.core.utils.SpringUtils; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.InitializingBean; -import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Component; /** * 国际化翻译工具 - * - * @author hzs */ @Component @Slf4j public class TransactionUtils implements InitializingBean { -// private static RedisService redisService; - /** * 获取国际化翻译内容 * @@ -29,22 +19,6 @@ public class TransactionUtils implements InitializingBean { * @return */ public static String getContent(String key, Object... args) { -// try { -// // 获取对应语言 -// ELanguages language = ELanguages.getLanguagesByLocal(LocaleContextHolder.getLocale().toLanguageTag()); -// if (null != language) { -// String str = redisService.getCacheMapValue(CacheConstants.LANGUAGE_KEY + language.getLocal(), key); -// if (StringUtils.isNotEmpty(str)) { -// if (args.length != 0) { -// str = String.format(str, args); -// } -// return str; -// } -// } -// log.warn("国际化翻译工具: 翻译键不存在或缓存不存在! key: {}", key); -// } catch (Exception e) { -// log.error("国际化翻译工具异常! key: {}", key, e); -// } if (args.length != 0) { return String.format(key, args); } @@ -53,7 +27,6 @@ public class TransactionUtils implements InitializingBean { @Override public void afterPropertiesSet() { -// redisService = SpringUtils.getBean(RedisService.class); } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/api/ApiPickController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/api/ApiPickController.java index b4ae5362..294431d6 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/api/ApiPickController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/api/ApiPickController.java @@ -9,33 +9,43 @@ import com.hzs.activity.pick.vo.ApiPickDetailVO; import com.hzs.activity.pick.vo.ApiPickVO; import com.hzs.activity.wares.service.IAcGiftConfigService; import com.hzs.common.core.annotation.RepeatSubmitSimple; +import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.constant.msg.ActivityMsgConstants; import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.enums.*; +import com.hzs.common.core.service.RedisService; +import com.hzs.common.core.utils.CommonUtil; 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.core.web.page.TableDataInfo; import com.hzs.common.domain.activity.base.ext.AcGiftConfigExt; import com.hzs.common.domain.activity.pick.AcPick; +import com.hzs.common.domain.activity.pick.AcPickMemberLog; +import com.hzs.common.domain.member.base.CuMember; +import com.hzs.common.domain.sale.ext.SaOrderExt; +import com.hzs.common.domain.sale.order.SaOrderItems; +import com.hzs.common.domain.system.base.BdStorehouse; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; +import com.hzs.member.base.IMemberServiceApi; +import com.hzs.retail.sale.param.RetailOrderOtherParam; import com.hzs.sale.product.IProductServiceApi; import com.hzs.sale.product.dto.ProductDTO; +import com.hzs.system.base.ICurrencyServiceApi; +import com.hzs.system.base.dto.CurrencyDTO; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; /** - * @Description: 会员端提货处理控制器 - * @Author: jiang chao - * @Time: 2023/4/24 13:55 - * @Classname: ApiPickController - * @PackageName: com.hzs.activity.pick.controller.api + * 会员端提货处理控制器 */ @RequestMapping("/api/pick") @RestController @@ -47,9 +57,15 @@ public class ApiPickController extends BaseController { private IAcPickMemberLogService iAcPickMemberLogService; @Autowired private IAcGiftConfigService iAcGiftConfigService; + @Autowired + private RedisService redisService; @DubboReference IProductServiceApi iProductServiceApi; + @DubboReference + IMemberServiceApi iMemberServiceApi; + @DubboReference + ICurrencyServiceApi iCurrencyServiceApi; /** * 查询提货列表 @@ -86,6 +102,9 @@ public class ApiPickController extends BaseController { // 会员提货商品数量不足 return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_QUANTITY_NOT_ENOUGH)); } + if (quantity % acPick.getBaseQuantity() != 0) { + return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_QUANTITY_BASE, acPick.getBaseQuantity())); + } // 提货详情VO ApiPickVO apiPickVO = new ApiPickVO(); @@ -96,7 +115,8 @@ public class ApiPickController extends BaseController { switch (EPickType.getEnumByValue(acPick.getPickType())) { case PICK_PRODUCT: case PRIZE: - // 提货产品处理、迁移抽奖处理 + case COMPANY_PRODUCT: + // 提货产品处理、迁移抽奖处理、分公司产品 // 查询产品 ProductDTO productDTO = iProductServiceApi.getProduct(acPick.getPkDataId().intValue()).getData(); // 处理提货产品明细 @@ -175,154 +195,159 @@ public class ApiPickController extends BaseController { @RepeatSubmitSimple @PostMapping("/order") public AjaxResult order(@RequestBody PickOrderParam param) { -// if (null == param.getPkId() || null == param.getQuantity() || null == param.getRecProvince() || null == param.getRecCity() -// || StringUtils.isAnyEmpty(param.getRecName(), param.getRecPhone(), param.getRecAddress())) { -// // 缺少参数 -// return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM)); -// } -// -// // 所属国家 -// Integer pkCountry = SecurityUtils.getPkCountry(); -// // 当前用户 -// Long userId = SecurityUtils.getUserId(); -// // 当前时间 -// Date nowDate = new Date(); -// -// QueryWrapper pickQueryWrapper = new QueryWrapper<>(); -// pickQueryWrapper.eq(SystemFieldConstants.PK_ID, param.getPkId()); -// pickQueryWrapper.eq("PK_MEMBER", userId); -// pickQueryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry); -// AcPick acPick = iAcPickService.getOne(pickQueryWrapper); -// if (null == acPick) { -// // 会员提货商品不存在 -// return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_PRODUCT_NOT_EXIST)); -// } -// if (!acPick.getUsableQuantity().equals(param.getQuantity()) && param.getQuantity() % acPick.getBaseQuantity() != 0) { -// // 提货数量等于可提数量 或 提货数量是提货基数的倍数才能进行处理 -// return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_QUANTITY_BASE, acPick.getBaseQuantity())); -// } -// -// // 邮费 -// BigDecimal postage = iAcPickService.postageHandle(acPick, param.getQuantity(), param.getRecProvince(), param.getRecCity(), pkCountry); -// if (null == postage) { -// // 提货邮费计算错误 -// return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_POSTAGE_ERROR)); -// } -// -// // 查询会员信息 -// CuMember cuMember = iMemberServiceApi.getMember(userId).getData(); -// // 查询汇率 -// CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(pkCountry).getData(); -// // 生成订单编号 -// String orderCode = CommonUtil.createSerialNumber(EOrderPrefix.ORDER_CODE); -// -// // 根据收货省获取仓库 -// BdStorehouse storehouse = iCurrencyServiceApi.queryBdStorehouseByProvince(param.getRecProvince()).getData(); -// -// // 生成订单信息 -// SaOrderExt saOrder = new SaOrderExt(); -// saOrder.setOrderCode(orderCode); -// saOrder.setOrderType(EOrderType.PICK_ORDER.getValue()); -// saOrder.setPkRate(currencyDTO.getPkId()); -// saOrder.setOrderAmount(BigDecimal.ZERO); -// saOrder.setPostage(postage); -// saOrder.setRecName(param.getRecName()); -// saOrder.setRecPhone(param.getRecPhone()); -// saOrder.setRecProvince(param.getRecProvince()); -// saOrder.setRecCity(param.getRecCity()); -// saOrder.setRecCounty(param.getRecCounty()); -// saOrder.setRecAddress(param.getRecAddress()); -// saOrder.setRemark(param.getRemark()); -// saOrder.setPkMember(userId); -// saOrder.setPkReference(cuMember.getPkParent()); -// saOrder.setTranType(ETransportType.LAND.getValue()); -// saOrder.setPkVertex(cuMember.getPkVertex()); -// if (null != storehouse) { -// saOrder.setPkStorehouse(storehouse.getPkId()); -// } -// saOrder.setPkCreator(userId); -// saOrder.setCreationTime(nowDate); -// saOrder.setPkCountry(pkCountry); -// -// // 生成订单明细信息 -// List orderItemsList = new ArrayList<>(); -// -// // 根据各种提货不同进行处理 -// switch (EPickType.getEnumByValue(acPick.getPickType())) { -// case PICK_PRODUCT: -// case PRIZE: -// // 提货产品处理、迁移抽奖处理 -// // 查询产品信息 -// ProductDTO productDTO = iProductServiceApi.getProduct(acPick.getPkDataId().intValue()).getData(); -// -// // 处理提货产品明细 -// SaOrderItems productOrderItems = new SaOrderItems(); -// productOrderItems.setPkProduct(acPick.getPkDataId().intValue()); -// productOrderItems.setPkRate(currencyDTO.getPkId()); -// productOrderItems.setQuantity(param.getQuantity()); -// productOrderItems.setPkGrade(cuMember.getPkSettleGrade()); -// productOrderItems.setPkAwards(cuMember.getPkAwards()); -// productOrderItems.setOrderStatus(EOrderStatus.PAY.getValue()); -// productOrderItems.setPkCreator(userId); -// productOrderItems.setCreationTime(nowDate); -// productOrderItems.setSpecsName(acPick.getSpecsName()); -// productOrderItems.setSpecsNameId(acPick.getSpecsNameId()); -// productOrderItems.setPkCountry(pkCountry); -// productOrderItems.setWaresQuantity(param.getQuantity()); -// productOrderItems.setSkuCode(CommonUtil.createSkuCode(productDTO.getProductCode(), acPick.getSpecsNameId())); -// productOrderItems.setPkStorehouse(saOrder.getPkStorehouse()); -// orderItemsList.add(productOrderItems); -// break; -// case LOTTERY_DRAW: -// case CONSUMPTION_GIFT: -// case DIRECT_PUSH_GIFT: -// // 抽奖活动、商品赠品活动、消费赠送活动、直推赠送活动 -// -// // 处理提货产品明细 -// List giftConfigList = iAcGiftConfigService.queryListByRuleIdList(acPick.getPkDataId(), pkCountry); -// for (AcGiftConfigExt acGiftConfigExt : giftConfigList) { -// // 查询产品信息 -// ProductDTO giftProductDTO = iProductServiceApi.getProduct(acGiftConfigExt.getPkProduct()).getData(); -// if (null == giftProductDTO) { -// return AjaxResult.error("提货产品不存在,请联系客服处理"); -// } -// -// SaOrderItems giftOrderItems = new SaOrderItems(); -// giftOrderItems.setPkProduct(acGiftConfigExt.getPkProduct()); -// giftOrderItems.setPkRate(currencyDTO.getPkId()); -// giftOrderItems.setQuantity(param.getQuantity() * acGiftConfigExt.getQuantity()); -// giftOrderItems.setPkGrade(cuMember.getPkSettleGrade()); -// giftOrderItems.setPkAwards(cuMember.getPkAwards()); -// giftOrderItems.setOrderStatus(EOrderStatus.PAY.getValue()); -// giftOrderItems.setPkCreator(userId); -// giftOrderItems.setCreationTime(nowDate); -// giftOrderItems.setSpecsName(acPick.getSpecsName()); -// giftOrderItems.setSpecsNameId(acPick.getSpecsNameId()); -// giftOrderItems.setPkCountry(pkCountry); -// giftOrderItems.setWaresQuantity(param.getQuantity()); -// giftOrderItems.setSkuCode(CommonUtil.createSkuCode(giftProductDTO.getProductCode(), acPick.getSpecsNameId())); -// orderItemsList.add(giftOrderItems); -// } -// break; -// default: -// } -// saOrder.setOrderItemsList(orderItemsList); -// -// // 添加提货日志 -// AcPickMemberLog acPickMemberLog = new AcPickMemberLog(); -// acPickMemberLog.setPkMember(userId); -// acPickMemberLog.setPkPick(acPick.getPkId()); -// acPickMemberLog.setPickQuantity(param.getQuantity()); -// acPickMemberLog.setPickTime(nowDate); -// acPickMemberLog.setPickOrder(orderCode); -// acPickMemberLog.setPkCountry(pkCountry); -// iAcPickMemberLogService.save(acPickMemberLog); -// -// // 临时订单直接放入缓存 -// redisService.setCacheObject(CacheConstants.TEMP_ORDER + userId + orderCode, saOrder, CacheConstants.MEMBER_REFRESH_TIME, TimeUnit.MINUTES); -// -// return AjaxResult.success("", orderCode); - return AjaxResult.error(); + if (null == param.getPkId() || null == param.getQuantity() || null == param.getRecProvince() || null == param.getRecCity() + || StringUtils.isAnyEmpty(param.getRecName(), param.getRecPhone(), param.getRecAddress())) { + // 缺少参数 + return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM)); + } + + // 所属国家 + Integer pkCountry = SecurityUtils.getPkCountry(); + // 当前用户 + Long userId = SecurityUtils.getUserId(); + // 当前时间 + Date nowDate = new Date(); + + LambdaQueryWrapper pickQueryWrapper = new LambdaQueryWrapper<>(); + pickQueryWrapper.eq(AcPick::getPkId, param.getPkId()); + pickQueryWrapper.eq(AcPick::getPkMember, userId); + pickQueryWrapper.eq(AcPick::getPkCountry, pkCountry); + AcPick acPick = iAcPickService.getOne(pickQueryWrapper); + if (null == acPick) { + // 会员提货商品不存在 + return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_PRODUCT_NOT_EXIST)); + } + if (!acPick.getUsableQuantity().equals(param.getQuantity()) && param.getQuantity() % acPick.getBaseQuantity() != 0) { + // 提货数量等于可提数量 或 提货数量是提货基数的倍数才能进行处理 + return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_QUANTITY_BASE, acPick.getBaseQuantity())); + } + + // 邮费 + BigDecimal postage = iAcPickService.postageHandle(acPick, param.getQuantity(), param.getRecProvince(), param.getRecCity(), pkCountry); + if (null == postage) { + // 提货邮费计算错误 + return AjaxResult.error(TransactionUtils.getContent(ActivityMsgConstants.PICK_POSTAGE_ERROR)); + } + + // 查询会员信息 + CuMember cuMember = iMemberServiceApi.getMember(userId).getData(); + // 查询汇率 + CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(pkCountry).getData(); + // 生成订单编号 + String orderCode = CommonUtil.createSerialNumber(EOrderPrefix.ORDER_CODE); + + // 根据收货省获取仓库 + BdStorehouse storehouse = iCurrencyServiceApi.queryBdStorehouseByProvince(param.getRecProvince()).getData(); + + // 生成订单信息 + SaOrderExt saOrder = new SaOrderExt(); + saOrder.setOrderCode(orderCode); + saOrder.setOrderType(EOrderType.PICK_ORDER.getValue()); + saOrder.setPkRate(currencyDTO.getPkId()); + saOrder.setOrderAmount(BigDecimal.ZERO); + saOrder.setPostage(postage); + saOrder.setRecName(param.getRecName()); + saOrder.setRecPhone(param.getRecPhone()); + saOrder.setRecProvince(param.getRecProvince()); + saOrder.setRecCity(param.getRecCity()); + saOrder.setRecCounty(param.getRecCounty()); + saOrder.setRecAddress(param.getRecAddress()); + saOrder.setRemark(param.getRemark()); + saOrder.setPkMember(userId); + saOrder.setPkReference(cuMember.getPkParent()); + saOrder.setTranType(ETransportType.LAND.getValue()); + saOrder.setDeliveryWay(EDelivery.FAST_MAIL.getValue()); + saOrder.setPkVertex(cuMember.getPkVertex()); + if (null != storehouse) { + saOrder.setPkStorehouse(storehouse.getPkId()); + } + saOrder.setPkCreator(userId); + saOrder.setCreationTime(nowDate); + saOrder.setPkCountry(pkCountry); + + // 生成订单明细信息 + List orderItemsList = new ArrayList<>(); + + // 根据各种提货不同进行处理 + switch (EPickType.getEnumByValue(acPick.getPickType())) { + case PICK_PRODUCT: + case PRIZE: + case COMPANY_PRODUCT: + // 提货产品处理、迁移抽奖处理、分公司产品 + // 查询产品信息 + ProductDTO productDTO = iProductServiceApi.getProduct(acPick.getPkDataId().intValue()).getData(); + // 处理提货产品明细 + SaOrderItems productOrderItems = new SaOrderItems(); + productOrderItems.setPkProduct(acPick.getPkDataId().intValue()); + productOrderItems.setQuantity(param.getQuantity()); + productOrderItems.setPkRate(currencyDTO.getPkId()); + productOrderItems.setPkWares(0); + productOrderItems.setWaresQuantity(param.getQuantity()); + productOrderItems.setPkGrade(cuMember.getPkSettleGrade()); + productOrderItems.setPkAwards(cuMember.getPkAwards()); + productOrderItems.setOrderStatus(EOrderStatus.PAY.getValue()); + productOrderItems.setPkCreator(userId); + productOrderItems.setCreationTime(nowDate); + productOrderItems.setSpecsName(acPick.getSpecsName()); + productOrderItems.setSpecsNameId(acPick.getSpecsNameId()); + productOrderItems.setPkCountry(pkCountry); + productOrderItems.setSkuCode(CommonUtil.createSkuCode(productDTO.getProductCode(), acPick.getSpecsNameId())); + productOrderItems.setPkStorehouse(saOrder.getPkStorehouse()); + orderItemsList.add(productOrderItems); + break; + case LOTTERY_DRAW: + case CONSUMPTION_GIFT: + case DIRECT_PUSH_GIFT: + // 抽奖活动、商品赠品活动、消费赠送活动、直推赠送活动 + // 处理提货产品明细 + List giftConfigList = iAcGiftConfigService.queryListByRuleIdList(acPick.getPkDataId(), pkCountry); + for (AcGiftConfigExt acGiftConfigExt : giftConfigList) { + // 查询产品信息 + ProductDTO giftProductDTO = iProductServiceApi.getProduct(acGiftConfigExt.getPkProduct()).getData(); + if (null == giftProductDTO) { + return AjaxResult.error("提货产品不存在,请联系客服处理"); + } + SaOrderItems giftOrderItems = new SaOrderItems(); + giftOrderItems.setPkProduct(acGiftConfigExt.getPkProduct()); + giftOrderItems.setPkRate(currencyDTO.getPkId()); + giftOrderItems.setQuantity(param.getQuantity() * acGiftConfigExt.getQuantity()); + giftOrderItems.setPkGrade(cuMember.getPkSettleGrade()); + giftOrderItems.setPkAwards(cuMember.getPkAwards()); + giftOrderItems.setOrderStatus(EOrderStatus.PAY.getValue()); + giftOrderItems.setPkCreator(userId); + giftOrderItems.setCreationTime(nowDate); + giftOrderItems.setSpecsName(acPick.getSpecsName()); + giftOrderItems.setSpecsNameId(acPick.getSpecsNameId()); + giftOrderItems.setPkCountry(pkCountry); + giftOrderItems.setWaresQuantity(param.getQuantity()); + giftOrderItems.setSkuCode(CommonUtil.createSkuCode(giftProductDTO.getProductCode(), acPick.getSpecsNameId())); + orderItemsList.add(giftOrderItems); + } + break; + default: + } + saOrder.setOrderItemsList(orderItemsList); + + // 添加提货日志 + AcPickMemberLog acPickMemberLog = new AcPickMemberLog(); + acPickMemberLog.setPkMember(userId); + acPickMemberLog.setPkPick(acPick.getPkId()); + acPickMemberLog.setPickQuantity(param.getQuantity()); + acPickMemberLog.setPickTime(nowDate); + acPickMemberLog.setPickOrder(orderCode); + acPickMemberLog.setPkCountry(pkCountry); + iAcPickMemberLogService.save(acPickMemberLog); + + RetailOrderOtherParam orderParam = new RetailOrderOtherParam(); + orderParam.setBuyMemberCode(cuMember.getMemberCode()); + orderParam.setSpecialArea(ESpecialArea.PICK_AREA.getValue()); + + // 订单缓存(60分钟有效,防止在线支付回调慢) + redisService.setCacheObject(CacheConstants.RETAIL_TEMP_ORDER + userId + orderCode, saOrder, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES); + // 缓存订单参数(30分钟有效) + redisService.setCacheObject(CacheConstants.RETAIL_TEMP_OTHER_PARAM + userId + orderCode, orderParam, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES); + + return AjaxResult.success("", orderCode); } /** diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java index 48497b7e..b18775c1 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMapper.java @@ -64,11 +64,7 @@ public interface AcPickMapper extends BaseMapper { int updatePickByPkId(@Param("acPick") AcPick acPick); /** - * @description: 删除充值提货卡 - * @author: zhang jing - * @date: 2023/10/26 13:45 - * @param: [acPick] - * @return: boolean + * 删除充值提货卡 **/ boolean removePickByPkId(@Param("acPick") AcPick acPick); @@ -107,4 +103,16 @@ public interface AcPickMapper extends BaseMapper { */ int batchSaveOrUpdatePick(@Param("pickList") List pickList); + /** + * 根据ID更新会员提货数据 + * + * @param pkId + * @param quantity + * @param pkMember 会员ID,可为null + * @return + */ + int updateMemberPickById(@Param("pkId") Long pkId, + @Param("quantity") Integer quantity, + @Param("pkMember") Long pkMember); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMemberLogMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMemberLogMapper.java index 928586cc..a468702f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMemberLogMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/mapper/AcPickMemberLogMapper.java @@ -13,6 +13,18 @@ import java.util.List; */ public interface AcPickMemberLogMapper extends BaseMapper { + /** + * 查询会员订单数据 + * + * @param pkMember + * @param orderCode + * @param delFlag + * @return + */ + List listPickMemberLog(@Param("pkMember") Long pkMember, + @Param("orderCode") String orderCode, + @Param("delFlag") Integer delFlag); + /** * 查询提货日志 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickMemberLogService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickMemberLogService.java index e9eb4927..6a26d6e8 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickMemberLogService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickMemberLogService.java @@ -12,6 +12,16 @@ import java.util.List; */ public interface IAcPickMemberLogService extends IService { + /** + * 查询会员订单数据 + * + * @param pkMember + * @param orderCode + * @param delFlag + * @return + */ + List listPickMemberLog(Long pkMember, String orderCode, Integer delFlag); + /** * 查询提货日志 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java index eeb59222..c99f0a7c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/IAcPickService.java @@ -135,4 +135,15 @@ public interface IAcPickService extends IService { */ int batchSaveOrUpdatePick(List pickList); + + /** + * 根据ID更新会员提货数据 + * + * @param pkId + * @param quantity + * @param pkMember 会员ID,可为null + * @return + */ + int updateMemberPickById(Long pkId, Integer quantity, Long pkMember); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickMemberLogServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickMemberLogServiceImpl.java index b6f5d58f..f8eced1d 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickMemberLogServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickMemberLogServiceImpl.java @@ -16,6 +16,11 @@ import java.util.*; @Service public class AcPickMemberLogServiceImpl extends ServiceImpl implements IAcPickMemberLogService { + @Override + public List listPickMemberLog(Long pkMember, String orderCode, Integer delFlag) { + return baseMapper.listPickMemberLog(pkMember, orderCode, delFlag); + } + @Override public List queryMemberLog(Long pkMember) { return baseMapper.queryMemberLog(pkMember); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java index 33f9913e..32b97e56 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/service/impl/AcPickServiceImpl.java @@ -18,7 +18,6 @@ import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.constant.msg.DocumentMsgConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; -import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.exception.base.BaseException; import com.hzs.common.core.utils.CommonUtil; import com.hzs.common.core.utils.DateUtils; @@ -32,8 +31,8 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.sale.product.BdProduct; import com.hzs.common.util.TransactionUtils; import com.hzs.member.base.IMemberServiceApi; -import com.hzs.sale.postage.IPostageServiceApi; import com.hzs.sale.postage.dto.PostageProductDTO; +import com.hzs.sale.postage.service.IPostageBusinessService; import com.hzs.sale.product.service.IBdProductService; import com.hzs.system.sys.IApprovalServiceApi; import com.hzs.system.sys.dto.ApprovalBusinessResultDTO; @@ -70,13 +69,13 @@ public class AcPickServiceImpl extends ServiceImpl impleme private RabbitTemplate rabbitTemplate; @Autowired private IBdProductService iBdProductService; + @Autowired + private IPostageBusinessService iPostageBusinessService; @DubboReference IApprovalServiceApi iApprovalServiceApi; @DubboReference IMemberServiceApi iMemberServiceApi; - @DubboReference - IPostageServiceApi iPostageServiceApi; @Override public boolean addPickByActivity(Long pkMember, Integer pickType, Long pkBaseConfig, Long pkDataId, @@ -571,6 +570,7 @@ public class AcPickServiceImpl extends ServiceImpl impleme switch (EPickType.getEnumByValue(acPick.getPickType())) { case PICK_PRODUCT: case PRIZE: + case COMPANY_PRODUCT: // 提货产品处理、迁移抽奖处理 // 封装邮费查询产品数据列表 productList.add(PostageProductDTO.builder() @@ -594,15 +594,17 @@ public class AcPickServiceImpl extends ServiceImpl impleme default: } - R postageR = iPostageServiceApi.queryPostage(acPick.getPkPostage(), productList, recProvince, recCity); - if (postageR.isSuccess()) { - return postageR.getData(); - } - throw new ServiceException(postageR.getMsg()); + return iPostageBusinessService.queryPostage(acPick.getPkPostage(), productList, recProvince, recCity); } @Override public int batchSaveOrUpdatePick(List pickList) { return baseMapper.batchSaveOrUpdatePick(pickList); } + + @Override + public int updateMemberPickById(Long pkId, Integer quantity, Long pkMember) { + return baseMapper.updateMemberPickById(pkId, quantity, pkMember); + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/ApiPickListVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/ApiPickListVO.java index ab35c188..fb382f05 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/ApiPickListVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/vo/ApiPickListVO.java @@ -6,11 +6,7 @@ import lombok.Data; import java.util.Date; /** - * @Description: 会员提货列表VO - * @Author: jiang chao - * @Time: 2023/4/24 16:15 - * @Classname: ApiPickVO - * @PackageName: com.hzs.activity.pick.vo + * 会员提货列表VO */ @Data public class ApiPickListVO { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 94a8bad6..2c05d91f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -485,7 +485,7 @@ public class ApiRetailOrderController { * @param payParam 支付订单入参 * @return */ - @RepeatSubmit +// @RepeatSubmit @PostMapping("/pay-other-order") public AjaxResult payOtherOrder(@Valid @RequestBody RetailOrderPayParam payParam) { // 当前会员ID @@ -505,7 +505,16 @@ public class ApiRetailOrderController { } // 封装订单信息 - SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(otherParam, null, buyMember); + SaOrderExt saOrderExt; + if (ESpecialArea.PICK_AREA.getValue() == otherParam.getSpecialArea()) { + // 提货专区,获取缓存订单 + saOrderExt = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_ORDER + pkMember + payParam.getOrderCode()); + if (null == saOrderExt) { + return AjaxResult.error("订单已不存在"); + } + } else { + saOrderExt = iRetailOrderService.createSaOrder(otherParam, null, buyMember); + } // 校验会员账户状态等 R accountResult = iRetailOrderService.validMemberAccount(pkMember, payParam.getPayPwd()); 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 97aa17c0..8ea37c25 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 @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Validator; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.hzs.activity.pick.service.IAcPickMemberLogService; import com.hzs.activity.pick.service.IAcPickService; import com.hzs.common.core.constant.*; import com.hzs.common.core.domain.R; @@ -13,6 +14,7 @@ import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.*; import com.hzs.common.domain.activity.pick.AcPick; +import com.hzs.common.domain.activity.pick.AcPickMemberLog; import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberAccountExt; @@ -33,7 +35,6 @@ import com.hzs.retail.sale.param.RetailOrderParam; import com.hzs.retail.sale.param.RetailOrderRegisterParam; import com.hzs.retail.sale.param.RetailOrderUpgradeParam; import com.hzs.sale.order.param.OrderItemsParam; -import com.hzs.sale.order.param.WaresNumberParam; import com.hzs.sale.order.service.*; import com.hzs.sale.order.service.impl.SaOrderHandle; import com.hzs.sale.wares.service.IBdWaresDetailService; @@ -83,6 +84,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { private ISaOrderWaresLimitService iSaOrderWaresLimitService; @Autowired private IAcPickService iAcPickService; + @Autowired + private IAcPickMemberLogService iAcPickMemberLogService; @Autowired private RedisService redisService; @@ -661,15 +664,14 @@ public class RetailOrderServiceImpl implements IRetailOrderService { List orderWaresList = new ArrayList<>(); // 订单商品map(key:商品主键-商品价格,value:商品数量) Map orderWaresMap = new HashMap<>(); - // 商品销量数据 - List waresNumberList = new ArrayList<>(); - // 商品销量map(key:商品主键,value:商品数量) - Map waresNumberMap = new HashMap<>(); +// // 商品销量数据 +// List waresNumberList = new ArrayList<>(); +// // 商品销量map(key:商品主键,value:商品数量) +// Map waresNumberMap = new HashMap<>(); // 商品限购列表 List waresLimitList = new ArrayList<>(); // 商品限购map(key:商品主键,value:商品数量) Map waresLimitMap = new HashMap<>(); - // 盒数商品 List boxWaresList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType()); @@ -678,10 +680,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService { saOrderItems.setOrderStatus(EOrderStatus.PAY.getValue()); saOrderItems.setPkCreator(saOrderExt.getPkCreator()); saOrderItems.setCreationTime(saOrderExt.getCreationTime()); - if (EDelivery.PICK.getValue() == saOrderExt.getDeliveryWay()) { - // 主订单是提货中心,明细状态也是提货中心 - saOrderItems.setOrderStatus(EOrderStatus.PICK.getValue()); - } // 指定商品拆分 并且 非赠品 if (boxWaresList.contains(saOrderItems.getWareCode()) @@ -692,11 +690,35 @@ public class RetailOrderServiceImpl implements IRetailOrderService { waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum); } - // 商品销量累计 - waresNumberMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum); +// // 商品销量累计 +// waresNumberMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum); + + if (null != saOrderExt.getDeliveryWay() + && EDelivery.PICK.getValue() == saOrderExt.getDeliveryWay()) { + // 主订单发货方式是提货中心,明细状态也是提货中心 + saOrderItems.setOrderStatus(EOrderStatus.PICK.getValue()); + } } iSaOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); + if (EOrderType.PICK_ORDER.getValue() == saOrderExt.getOrderType()) { + // 提货订单处理 + // 提货日志列表 + List pickMemberLogList = iAcPickMemberLogService.listPickMemberLog(saOrderExt.getPkMember(), saOrderExt.getOrderCode(), EDelFlag.DELETE.getValue()); + if (CollectionUtil.isNotEmpty(pickMemberLogList)) { + for (AcPickMemberLog acPickMemberLog : pickMemberLogList) { + // 更新会员提货表 + iAcPickService.updateMemberPickById(acPickMemberLog.getPkPick(), acPickMemberLog.getPickQuantity() * -1, acPickMemberLog.getPkMember()); + // 更新会员提货日志表 + iAcPickMemberLogService.update(Wrappers.lambdaUpdate() + .eq(AcPickMemberLog::getPkId, acPickMemberLog.getPkId()) + .eq(AcPickMemberLog::getDelFlag, EDelFlag.DELETE.getValue()) + .set(AcPickMemberLog::getDelFlag, EDelFlag.UN_DELETE.getValue()) + ); + } + } + } + if (orderWaresMap.size() > 0) { // 处理订单商品拆分数据 for (String key : orderWaresMap.keySet()) { @@ -711,15 +733,15 @@ public class RetailOrderServiceImpl implements IRetailOrderService { orderWaresList.add(saOrderWares); } } - if (waresNumberMap.size() > 0) { - // 处理订单商品销量、会员商品限购 - for (Integer key : waresNumberMap.keySet()) { - waresNumberList.add(WaresNumberParam.builder() - .pkWares(key) - .number(waresNumberMap.get(key)) - .build()); - } - } +// if (waresNumberMap.size() > 0) { +// // 处理订单商品销量、会员商品限购 +// for (Integer key : waresNumberMap.keySet()) { +// waresNumberList.add(WaresNumberParam.builder() +// .pkWares(key) +// .number(waresNumberMap.get(key)) +// .build()); +// } +// } if (ESpecialArea.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || ESpecialArea.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { // 注册、升级 @@ -766,10 +788,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 订单商品拆分表 iSaOrderWaresService.saveBatch(orderWaresList); } - if (waresNumberList.size() > 0) { - // 更新商品销量表 - iBdWaresExtendService.updateWaresSalesAccrual(waresNumberList); - } +// if (waresNumberList.size() > 0) { +// // 更新商品销量表 +// iBdWaresExtendService.updateWaresSalesAccrual(waresNumberList); +// } if (waresLimitList.size() > 0) { // 更新会员商品限购 iSaOrderWaresLimitService.saveBatchLimit(waresLimitList); @@ -820,7 +842,8 @@ 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_UPGRADE.getValue() == saOrder.getOrderType()) + && (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() + || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) ) { // 会员激活状态为空 或 未激活,并且是 注册、升级 订单,判断会员是否激活 if (saOrder.getBoxNum() > 0) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderOtherParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderOtherParam.java index 6a582a1a..2f584499 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderOtherParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderOtherParam.java @@ -1,8 +1,7 @@ package com.hzs.retail.sale.param; import com.hzs.common.domain.member.base.CuMember; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.*; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size; diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/WaresNumberParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/WaresNumberParam.java index ba6b24e2..9539f300 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/WaresNumberParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/WaresNumberParam.java @@ -5,14 +5,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -/** - * @BelongsProject: hzs_cloud - * @BelongsPackage: com.hzs.sale.order.param - * @Author: yh - * @CreateTime: 2023-05-05 17:33 - * @Description: TODO - * @Version: 1.0 - */ @Data @Builder @AllArgsConstructor diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index ba28ce8c..56d5d282 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -7,7 +7,9 @@ import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.activity.pick.service.IAcPickMemberLogService; import com.hzs.activity.pick.service.IAcPickService; import com.hzs.activity.pick.service.IAcRetailPickService; import com.hzs.common.core.constant.*; @@ -19,6 +21,7 @@ import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.*; import com.hzs.common.core.utils.reflect.ReflectUtils; +import com.hzs.common.domain.activity.pick.AcPickMemberLog; import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.base.CuMemberRegister; @@ -93,65 +96,65 @@ import java.util.stream.Collectors; public class SaOrderServiceImpl extends ServiceImpl implements ISaOrderService { @DubboReference - IMemberServiceApi memberServiceApi; - @DubboReference - IGradeServiceApi gradeServiceApi; - @DubboReference - IAwardsServiceApi awardsServiceApi; - @DubboReference - IAreaServiceApi areaServiceApi; - @DubboReference - IMemberBankServiceApi memberBankServiceApi; - @DubboReference - IMemberAccountServiceApi memberAccountServiceApi; - @DubboReference - IAreaCurrencyServiceApi areaCurrencyServiceApi; - @DubboReference - ICountryServiceApi countryServiceApi; - @DubboReference - ICurrencyServiceApi currencyServiceApi; - @DubboReference - IApprovalServiceApi approvalServiceApi; - @DubboReference - IMemberAchieveServiceApi memberAchieveServiceApi; - @DubboReference - ISystemConfigServiceApi systemConfigServiceApi; - @DubboReference - ICuMemberServiceLogServiceApi cuMemberServiceLogServiceApi; - @DubboReference - IMemberTradeServiceApi memberTradeServiceApi; - @DubboReference - ICuMemberDetailServiceApi iCuMemberDetailServiceApi; + IMemberServiceApi iMemberServiceApi; @DubboReference IGradeServiceApi iGradeServiceApi; + @DubboReference + IAwardsServiceApi iAwardsServiceApi; + @DubboReference + IAreaServiceApi iAreaServiceApi; + @DubboReference + IMemberBankServiceApi iMemberBankServiceApi; + @DubboReference + IMemberAccountServiceApi iMemberAccountServiceApi; + @DubboReference + IAreaCurrencyServiceApi iAreaCurrencyServiceApi; + @DubboReference + ICountryServiceApi iCountryServiceApi; + @DubboReference + ICurrencyServiceApi iCurrencyServiceApi; + @DubboReference + IApprovalServiceApi iApprovalServiceApi; + @DubboReference + IMemberAchieveServiceApi iMemberAchieveServiceApi; + @DubboReference + ISystemConfigServiceApi iSystemConfigServiceApi; + @DubboReference + ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; + @DubboReference + IMemberTradeServiceApi iMemberTradeServiceApi; + @DubboReference + ICuMemberDetailServiceApi iCuMemberDetailServiceApi; - @Autowired - private IBdWaresService waresService; - @Autowired - private IBdWaresExtendService waresExtendService; - @Autowired - private SaOrderHandle saOrderHandle; - @Autowired - private ISaOrderItemsService saOrderItemsService; @Autowired private UserTokenService userTokenService; @Autowired + private SaOrderHandle saOrderHandle; + @Autowired + private IBdWaresService iBdWaresService; + @Autowired + private IBdWaresExtendService iBdWaresExtendService; + @Autowired private IBdProductExtendService iBdProductExtendService; @Autowired - private IBdWaresSpecsRelationService waresSpecsRelationService; + private IBdWaresSpecsRelationService iBdWaresSpecsRelationService; @Autowired - private ISaDeliverItemsService saDeliverItemsService; - @Autowired - private IAcRetailPickService iAcRetailPickService; + private ISaOrderItemsService iSaOrderItemsService; @Autowired private ISaOrderWaresLimitService iSaOrderWaresLimitService; @Autowired - private IAcPickService iAcPickService; - + private ISaDeliverItemsService iSaDeliverItemsService; + @Autowired + private ISaOrderChargeLogService iSaOrderChargeLogService; @Autowired private IOrderBusinessService iOrderBusinessService; @Autowired - private ISaOrderChargeLogService iSaOrderChargeLogService; + private IAcPickService iAcPickService; + @Autowired + private IAcRetailPickService iAcRetailPickService; + @Autowired + private IAcPickMemberLogService iAcPickMemberLogService; + @Autowired private RedisService redisService; @Autowired @@ -159,27 +162,27 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public List queryMemberExtByCondition(CuMember cuMember) { - return memberServiceApi.getMemberInfo(cuMember).getData(); + return iMemberServiceApi.getMemberInfo(cuMember).getData(); } @Override public List querySponsorOnUmbrella(Long placeParentId, String phone) { - return memberServiceApi.querySponsorOnUmbrella(placeParentId, null, phone).getData(); + return iMemberServiceApi.querySponsorOnUmbrella(placeParentId, null, phone).getData(); } @Override public List selectPlaceSponsorUnderUmbrellaByCondition(Long memberId, List cuMemberExtList) { - return memberServiceApi.selectPlaceSponsorUnderUmbrellaByCondition(memberId, cuMemberExtList).getData(); + return iMemberServiceApi.selectPlaceSponsorUnderUmbrellaByCondition(memberId, cuMemberExtList).getData(); } @Override public List queryPlaceSponsorUnderUmbrella(Long memberId, String placeParent) { - return memberServiceApi.queryPlaceSponsorUnderUmbrella(memberId, placeParent).getData(); + return iMemberServiceApi.queryPlaceSponsorUnderUmbrella(memberId, placeParent).getData(); } @Override public CuMemberExt queryPlaceSponsorLastLeft(Long memberId, Integer placeDept) { - return memberServiceApi.queryPlaceSponsorLastLeft(memberId, placeDept).getData(); + return iMemberServiceApi.queryPlaceSponsorLastLeft(memberId, placeDept).getData(); } @Override @@ -208,7 +211,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (CollectionUtil.isNotEmpty(itemIdList)) { orderItemsQueryWrapper.in(SaOrderItems::getPkId, itemIdList); } - saOrderExt.setOrderItemsList(saOrderItemsService.list(orderItemsQueryWrapper)); + saOrderExt.setOrderItemsList(iSaOrderItemsService.list(orderItemsQueryWrapper)); return saOrderExt; } @@ -243,7 +246,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public Integer queryCuMemberByPkMember(Long pkReference) { - return memberServiceApi.queryCuMemberByPkMember(pkReference).getData(); + return iMemberServiceApi.queryCuMemberByPkMember(pkReference).getData(); } @Override @@ -258,12 +261,12 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public CuMember getCuMemberByKey(Long pkId) { - return memberServiceApi.getMemberById(pkId).getData(); + return iMemberServiceApi.getMemberById(pkId).getData(); } @Override public CuMember getCuMemberByCode(String code) { - return memberServiceApi.getMemberByCode(code).getData(); + return iMemberServiceApi.getMemberByCode(code).getData(); } @Override @@ -273,7 +276,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public List queryMemberAccountByCondition(CuMemberAccount cuMemberAccount) { - return memberAccountServiceApi.queryMemberAccountByCondition(cuMemberAccount).getData(); + return iMemberAccountServiceApi.queryMemberAccountByCondition(cuMemberAccount).getData(); } @Override @@ -301,7 +304,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl cuMemberAccount.setMemberCode(creator.getMemberCode()); // 查询专区所属币种 - List areaCurrencyDTOList = areaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrder.getOrderType(), cuMemberAccount.getPkCountry()).getData(); + List areaCurrencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrder.getOrderType(), cuMemberAccount.getPkCountry()).getData(); BigDecimal postage = saOrder.getPostage(); @@ -311,7 +314,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (saOrderItems.getPkSpecialCurrency() != null) { BigDecimal orderItemPayMoney = ComputeUtil.computeMultiply(saOrderItems.getPrice(), saOrderItems.getQuantity()); payMoney = ComputeUtil.computeSubtract(payMoney, orderItemPayMoney); - List areaCurrencyDtoList = areaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrderItems.getPkSpecialCurrency()).getData(); + List areaCurrencyDtoList = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrderItems.getPkSpecialCurrency()).getData(); if (!handleSaOrderAmount(saOrder, orderItemList, cuMemberAccount, orderItemPayMoney, BigDecimal.ZERO, areaCurrencyDtoList)) { return null; } @@ -348,7 +351,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl || EOrderType.UPGRADE_ORDER.getValue() == saOrder.getOrderType()) { if (cuMemberAccount.getPayAccount3Flag()) { // 验证是否有政策币权限 - List cuMemberServiceLogs = cuMemberServiceLogServiceApi.queryMaxCuMemberServiceLog(cuMemberAccount.getPkMember(), Collections.singletonList(EApprovalBusiness.POLICY_CURRENCY_YES_NO.getValue())); + List cuMemberServiceLogs = iCuMemberServiceLogServiceApi.queryMaxCuMemberServiceLog(cuMemberAccount.getPkMember(), Collections.singletonList(EApprovalBusiness.POLICY_CURRENCY_YES_NO.getValue())); if (CollectionUtil.isNotEmpty(cuMemberServiceLogs)) { Map cuMemberServiceLogMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberServiceLogs.size())); cuMemberServiceLogs.forEach(serviceLog -> cuMemberServiceLogMap.put(serviceLog.getEditType(), serviceLog)); @@ -454,13 +457,13 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Transactional(rollbackFor = Exception.class) public Boolean confirmRegSaOrderByOrderParam(OrderParam orderParam) { boolean isToBePay = getIsToBePayByOrderType(orderParam.getPkSettleCountry(), orderParam.getSpecialArea()); - CuMember cuMember = saOrderHandle.packageSaveUser(orderParam, memberServiceApi.queryMember(orderParam.getCenterCodeId()).getData()); + CuMember cuMember = saOrderHandle.packageSaveUser(orderParam, iMemberServiceApi.queryMember(orderParam.getCenterCodeId()).getData()); // 获取会员编号、会员主键 if (isToBePay) { - cuMember = memberServiceApi.createMemberIdAndCode(cuMember).getData(); + cuMember = iMemberServiceApi.createMemberIdAndCode(cuMember).getData(); } else if (EOrderType.REGISTER_ORDER.getValue() == orderParam.getSpecialArea()) { // 2023.10.16按最新需求,注册订单需要在支付前需要显示会员编号 - cuMember = memberServiceApi.createRegisterMemberCode(cuMember).getData(); + cuMember = iMemberServiceApi.createRegisterMemberCode(cuMember).getData(); } SaOrderExt saOrderExt = packageWholeSaOrder(orderParam, cuMember); @@ -472,7 +475,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (isToBePay && !orderParam.getIsHaiFun()) { processOrder(saOrderExt); // 调用其他服务保存会员信息、会员注册信息 - R saveResult = memberServiceApi.saveMember(cuMember); + R saveResult = iMemberServiceApi.saveMember(cuMember); if (saveResult.isSuccess()) { if (!saveResult.getData()) { log.error("confirmRegSaOrderByOrderParam 保存会员失败."); @@ -535,9 +538,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl orderParam.setPlaceParentId(placeMember.getPkId()); } } - CuMember cuMember = saOrderHandle.packageSaveUser(orderParam, memberServiceApi.queryMember(orderParam.getCenterCodeId()).getData()); + CuMember cuMember = saOrderHandle.packageSaveUser(orderParam, iMemberServiceApi.queryMember(orderParam.getCenterCodeId()).getData()); // 获取会员编号、会员主键 - cuMember = memberServiceApi.createMemberIdAndCode(cuMember).getData(); + cuMember = iMemberServiceApi.createMemberIdAndCode(cuMember).getData(); return cuMember; } @@ -579,8 +582,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl cuMember.setPkSettleGradeValue(gradeDTO.getGradeValue()); // 判断奖衔,原会员有奖衔的话判断哪个大,使用大的 if (pkAwards != null && gradeDTO.getGradeValue() != null) { - BdAwards bdAwards = awardsServiceApi.getAwardsOne(pkAwards).getData(); - BdAwards newAwards = awardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData(); + BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(pkAwards).getData(); + BdAwards newAwards = iAwardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData(); if (bdAwards.getAwardsValue() < newAwards.getAwardsValue()) { cuMember.setPkAwards(gradeDTO.getPkAwards()); } @@ -621,7 +624,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl List waresNumberList = waresNumberParamList.stream().filter(DeduplicationUtil.distinctByKey(WaresNumberParam::getPkWares)).collect(Collectors.toList()); waresSalesAccrual(waresNumberList); // 保存订单明细 - saOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); + iSaOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); } @Override @@ -744,7 +747,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl newCuMember.setStopDate(DateUtils.addMonths(newCuMember.getExpireDate(), 6)); // 调用其他服务保存会员信息、会员注册信息 - R saveResult = memberServiceApi.saveMember(newCuMember, saOrderExt, isToBePay, cuMemberAccountExt); + R saveResult = iMemberServiceApi.saveMember(newCuMember, saOrderExt, isToBePay, cuMemberAccountExt); if (saveResult.isSuccess()) { if (!saveResult.getData()) { log.error("payRegSaOrder 保存会员失败!."); @@ -790,7 +793,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl redisService.lockKeyMany(CacheConstants.MEMBER_ORDER + saOrderExt.getOrderCode()); try { updateById(saOrderExt); - saOrderItemsService.updateBatchById(saOrderExt.getOrderItemsList()); + iSaOrderItemsService.updateBatchById(saOrderExt.getOrderItemsList()); } finally { redisService.unlock(CacheConstants.MEMBER_ORDER + saOrderExt.getOrderCode()); } @@ -817,7 +820,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Transactional(rollbackFor = Exception.class) public Boolean payUpgradeSaOrder(SaOrderExt saOrderExt, CuMemberAccountExt cuMemberAccountExt) { CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember()); - GradeDTO oldGradeDTO = gradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); + GradeDTO oldGradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); // 封装等级,重新计算会员等级 if (setLastCuMemberGrade(cuMember, saOrderExt)) { return false; @@ -833,7 +836,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 更新订单信息 updateSaOrder(saOrderExt); // 处理会员信息,更新会员等级,扣款 - R saveResult = memberServiceApi.saveMember(cuMember, saOrderExt, cuMemberAccountExt); + R saveResult = iMemberServiceApi.saveMember(cuMember, saOrderExt, cuMemberAccountExt); if (saveResult.isSuccess()) { if (!saveResult.getData()) { log.error("payUpgradeSaOrder 保存会员失败!!!"); @@ -907,7 +910,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl CuMember member = getCuMemberByKey(saOrderExt.getPkMember()); CuMember cuMember = calculateHaFunMemberGrade(saOrderExt, member); - R saveResult = memberServiceApi.saveMember(cuMember, saOrderExt, cuMemberAccountExt); + R saveResult = iMemberServiceApi.saveMember(cuMember, saOrderExt, cuMemberAccountExt); if (saveResult.isSuccess()) { if (!saveResult.getData()) { log.error("payRepurchaseSaOrder 保存订单失败!"); @@ -959,7 +962,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (productIdList.size() > 0 && saOrderExt.getRecProvince() != null) { // 根据产品,先查看是否由仓库,有仓库的话修改仓库 - List bdProductStorehouseList = areaServiceApi.queryBdProductStorehouseByCondition(productIdList, saOrderExt.getRecProvince()).getData(); + List bdProductStorehouseList = iAreaServiceApi.queryBdProductStorehouseByCondition(productIdList, saOrderExt.getRecProvince()).getData(); Map bdProductStorehouseMap = new HashMap<>(); if (CollectionUtil.isNotEmpty(bdProductStorehouseList)) { bdProductStorehouseList.forEach(bdProductStorehouse -> bdProductStorehouseMap.put(bdProductStorehouse.getPkProduct(), bdProductStorehouse)); @@ -997,7 +1000,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (orderParam.getIsEnough() != null && orderParam.getIsEnough()) { orderReturn.setIsEnough(Boolean.TRUE); CuMember member = getCuMemberByKey(orderParam.getCenterCodeId()); - GradeDTO grade = gradeServiceApi.getGrade(member.getPkSettleGrade()).getData(); + GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData(); orderReturn.setPkGrade(grade.getPkTransaction()); return orderReturn; } @@ -1009,7 +1012,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl } else { member = getCuMemberByKey(orderParam.getCenterCodeId()); } - GradeDTO grade = gradeServiceApi.getGrade(member.getPkSettleGrade()).getData(); + GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData(); if (grade.getGradeValue() < gradeDTO.getGradeValue()) { orderReturn.setIsEnough(Boolean.TRUE); } else { @@ -1069,12 +1072,12 @@ public class SaOrderServiceImpl extends ServiceImpl impl || orderBlankRegParams.getProcessType() == EProcessType.DOUBLEAVOID.getValue()) { //添加修改记录表数据 memberLog.setApproveStatus(EApproveStatus.FINISH.getValue()); - cuMemberServiceLogServiceApi.insert(memberLog); + iCuMemberServiceLogServiceApi.insert(memberLog); // 主要业务 //创建用户 CuMemberExt memberExt = createMember(orderBlankRegParams); - R member = memberServiceApi.createEmptyOrderMember(memberExt); + R member = iMemberServiceApi.createEmptyOrderMember(memberExt); if (member.getData() == null) { throw new ServiceException("保存会员失败"); } @@ -1090,12 +1093,12 @@ public class SaOrderServiceImpl extends ServiceImpl impl Set memberSet = new HashSet<>(); memberSet.add(loginUser.getUserId()); memberLog.setApproveStatus(EApproveStatus.ALREADY_SUBMIT.getValue()); - cuMemberServiceLogServiceApi.insert(memberLog); + iCuMemberServiceLogServiceApi.insert(memberLog); ApprovalSubmitDTO approvalSubmitDTO = ApprovalSubmitDTO.builder().eApprovalBusiness(EApprovalBusiness.EMPTY_ORDER) .businessCode(code) .signType(ESignType.getEnumByValue(orderBlankRegParams.getSignType())) .remark(orderBlankRegParams.getRemark()).pkMemberList(memberSet).build(); - R submit = approvalServiceApi.submit(approvalSubmitDTO, loginUser); + R submit = iApprovalServiceApi.submit(approvalSubmitDTO, loginUser); if (!submit.isSuccess()) { log.error("====" + submit.getData()); throw new ServiceException(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_UPDATE_PETITION)); @@ -1108,7 +1111,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl businessCommissionDTO.setPkCountry(pkCountry); businessCommissionDTO.setMemberAmountDTOList(orderBlankRegParams.getMemberAmountDTOList()); businessCommissionDTO.setTradeType(EApprovalBusiness.EMPTY_ORDER.getValue()); - R b = memberTradeServiceApi.businessCommissionSubmit(businessCommissionDTO); + R b = iMemberTradeServiceApi.businessCommissionSubmit(businessCommissionDTO); if (!b.getData()) { throw new ServiceException(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_UPDATE_CODE_MONEY)); } @@ -1128,7 +1131,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl saOrder.setOrderCode(orderCode); // 虚拟订单 saOrder.setOrderType(EOrderType.FICTITIOUS_ORDER.getValue()); - R currency = currencyServiceApi.getCurrency(orderBlankRegParams.getPkSettleCountry()); + R currency = iCurrencyServiceApi.getCurrency(orderBlankRegParams.getPkSettleCountry()); saOrder.setPkRate(currency.getData().getPkId()); saOrder.setOrderAmount(orderBlankRegParams.getRegisterPrice()); saOrder.setOrderAchieve(orderBlankRegParams.getRegisterPv()); @@ -1160,7 +1163,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl List orderItems = orderBlankRegParams.getOrderItems(); for (SaOrderItems orderItem : orderItems) { orderItem.setPkOrder(saOrder.getPkId()); - BdWares wares = waresService.getWares(orderItem.getPkWares()); + BdWares wares = iBdWaresService.getWares(orderItem.getPkWares()); BdProductExtendExt productExtend = iBdProductExtendService.queryExtendAndProduct(orderItem.getPkProduct()); orderItem.setPkWares(wares.getPkId()); orderItem.setPrice(wares.getWaresPrice().multiply(new BigDecimal(orderItem.getQuantity()))); @@ -1172,7 +1175,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl orderItem.setOrderStatus(EOrderStatus.PAY.getValue()); orderItem.setCreationTime(DateUtils.currentDateTime()); // 填充冗余产品规格 - List waresSpecsRelationList = waresSpecsRelationService.selectByWaresSpecsSku(orderItem.getPkWaresSpecsSku()); + List waresSpecsRelationList = iBdWaresSpecsRelationService.selectByWaresSpecsSku(orderItem.getPkWaresSpecsSku()); // 规格名称 List specsNames = new ArrayList<>(); // 规格id @@ -1187,7 +1190,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl orderItem.setPkCreator(SecurityUtils.getUserId()); orderItem.setSkuCode(CommonUtil.createSkuCode(productExtend.getProductCode(), orderItem.getSpecsNameId())); } - saOrderItemsService.saveBatch(orderItems); + iSaOrderItemsService.saveBatch(orderItems); // 设置用户银行卡信息 国内页面隐藏 if (loginUser.getDataCountry() != 1) { CuMemberBankParam memberBank = new CuMemberBankParam(); @@ -1200,7 +1203,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl memberBank.setPhone(orderBlankRegParams.getReservedPhone()); memberBank.setIdCard(orderBlankRegParams.getIdCard()); memberBank.setPkMember(member.getPkId()); - memberBankServiceApi.addBankInfo(memberBank); + iMemberBankServiceApi.addBankInfo(memberBank); } return saOrder; } @@ -1324,13 +1327,13 @@ public class SaOrderServiceImpl extends ServiceImpl impl // // 修改订单 // Date currentDateTime = DateUtils.currentDateTime(); // // 删除发货单 -// saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), pkOrderItemList); +// iSaDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), pkOrderItemList); // updateSaOrder(pkApprove, saOrderExt, currentDateTime); // // 删除订单明细 -// if (!saOrderItemsService.updateOrderItemsById(pkOrderItemList, pkApprove, currentDateTime)) { +// if (!iSaOrderItemsService.updateOrderItemsById(pkOrderItemList, pkApprove, currentDateTime)) { // throw new ServiceException("更新订单失败"); // } -// if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, null, businessCommissionDTO).getData()) { +// if (!iMemberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, null, businessCommissionDTO).getData()) { // throw new ServiceException("撤单失败"); // } // } else { @@ -1338,11 +1341,11 @@ public class SaOrderServiceImpl extends ServiceImpl impl saOrderExt.setDelFlag(EDelFlag.DELETE.getValue()); Date currentDate = DateUtils.currentDateTime(); // 删除发货单 - saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), null); + iSaDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), null); // 修改订单 updateSaOrder(pkApprove, saOrderExt, currentDate); // 删除订单明细 - if (!saOrderItemsService.updateOrderItems(saOrderExt)) { + if (!iSaOrderItemsService.updateOrderItems(saOrderExt)) { throw new ServiceException("更新订单失败"); } @@ -1352,7 +1355,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 撤销注册订单 单点撤单 if (ECancelOrderType.SINGLE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) { // 单点撤单,变死点 - R tmpR = memberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO); + R tmpR = iMemberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO); if (!tmpR.isSuccess()) { throw new ServiceException("撤单失败 " + tmpR.getMsg()); } @@ -1361,12 +1364,12 @@ public class SaOrderServiceImpl extends ServiceImpl impl List memberList = validateCancelOrderVO.getMemberList().stream().map(OrderCancelRegisterMemberVO::getPkMember).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(memberList)) { // 撤销所有订单明细表 - saOrderItemsService.updateOrderItemsByMemberList(memberList, pkApprove, currentDate); + iSaOrderItemsService.updateOrderItemsByMemberList(memberList, pkApprove, currentDate); // 撤销所有订单主表 baseMapper.updateSaOrderByMember(memberList, pkApprove, currentDate); } - R tmpR = memberServiceApi.mergeRevokeMemberByRegisterOrder(pkApprove, memberList, validateCancelOrderVO.getSaOrderMap(), businessCommissionDTO); + R tmpR = iMemberServiceApi.mergeRevokeMemberByRegisterOrder(pkApprove, memberList, validateCancelOrderVO.getSaOrderMap(), businessCommissionDTO); if (!tmpR.isSuccess()) { throw new ServiceException("撤单失败 " + tmpR.getMsg()); } @@ -1426,7 +1429,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (isFirst == null) { isFirst = validateFirstOrder(cuMember.getPkParent(), cuMember.getPkSettleCountry()); } - cuMember = memberAchieveServiceApi.queryCuMemberAchieveByPkMember(cuMember, isFirst, isFirstAchieve).getData(); + cuMember = iMemberAchieveServiceApi.queryCuMemberAchieveByPkMember(cuMember, isFirst, isFirstAchieve).getData(); // 验证是否推荐过人,没有推荐只能放入极左极下 return cuMember; } @@ -1475,7 +1478,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public String querySystemConfigByKey(Integer pkCountry, String key) { - return systemConfigServiceApi.getBonusSystemConfig(pkCountry, key).getData(); + return iSystemConfigServiceApi.getBonusSystemConfig(pkCountry, key).getData(); } @Override @@ -1547,7 +1550,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl updateWrapper.set(SaOrderItems::getOrderStatus, EOrderStatus.RECEIVED.getValue()); updateWrapper.set(SaOrderItems::getPkModified, memberId); updateWrapper.set(SaOrderItems::getModifiedTime, new Date()); - return saOrderItemsService.update(updateWrapper); + return iSaOrderItemsService.update(updateWrapper); } @Transactional(rollbackFor = Exception.class) @@ -1558,7 +1561,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 如果是注册订单,需要校验下面是否有会员 if (EOrderType.REGISTER_ORDER.getValue() == saOrder.getOrderType()) { // 注册类订单,需要校验是否推荐过人或者安置过人,如果有则不允许进行取消 - if (memberServiceApi.checkLowerMember(saOrder.getPkMember()).getData()) { + if (iMemberServiceApi.checkLowerMember(saOrder.getPkMember()).getData()) { // 订单所属会员下存在用户不能取消 return TransactionUtils.getContent(MemberMsgConstants.EXIST_MEMBER_NOT_CANCEL); } @@ -1572,7 +1575,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl updateItemsWrapper.set(SaOrderItems::getDelFlag, EDelFlag.DELETE.getValue()); updateItemsWrapper.set(SaOrderItems::getPkModified, memberId); updateItemsWrapper.set(SaOrderItems::getModifiedTime, nowDate); - saOrderItemsService.update(updateItemsWrapper); + iSaOrderItemsService.update(updateItemsWrapper); // 删除订单 LambdaUpdateWrapper updateOrderWrapper = new LambdaUpdateWrapper<>(); @@ -1584,7 +1587,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 如果是注册订单,需要取消点位 if (EOrderType.REGISTER_ORDER.getValue() == saOrder.getOrderType()) { - if (!memberServiceApi.cancelMember(saOrder.getPkMember()).getData()) { + if (!iMemberServiceApi.cancelMember(saOrder.getPkMember()).getData()) { throw new ServiceException("取消订单失败"); } } @@ -1621,7 +1624,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl orderItemsUpdateWrapper.set(SaOrderItems::getDelFlag, EDelFlag.DELETE.getValue()); orderItemsUpdateWrapper.set(SaOrderItems::getPkModified, userId); orderItemsUpdateWrapper.set(SaOrderItems::getModifiedTime, nowDate); - saOrderItemsService.update(orderItemsUpdateWrapper); + iSaOrderItemsService.update(orderItemsUpdateWrapper); } @Override @@ -1661,7 +1664,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public Boolean regEmptyOrderApproved(ApprovalBusinessResultDTO approvalBusinessResultDTO) { - R cuMemberServiceLogR = cuMemberServiceLogServiceApi.selectByBusinessNo(approvalBusinessResultDTO.getBusinessCode()); + R cuMemberServiceLogR = iCuMemberServiceLogServiceApi.selectByBusinessNo(approvalBusinessResultDTO.getBusinessCode()); OrderBlankRegParams orderBlankRegParams = JSONUtil.toBean(cuMemberServiceLogR.getData().getNewValue(), OrderBlankRegParams.class); // 调用空单注册方法 this.registerEmptyOrder(orderBlankRegParams); @@ -1670,14 +1673,14 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public Boolean regEmptyOrderReject(ApprovalBusinessResultDTO approvalBusinessResultDTO) { - R cuMemberServiceLogR = cuMemberServiceLogServiceApi.selectByBusinessNo(approvalBusinessResultDTO.getBusinessCode()); + R cuMemberServiceLogR = iCuMemberServiceLogServiceApi.selectByBusinessNo(approvalBusinessResultDTO.getBusinessCode()); OrderBlankRegParams orderBlankRegParams = JSONUtil.toBean(cuMemberServiceLogR.getData().getNewValue(), OrderBlankRegParams.class); CuMemberServiceLog memberLog = new CuMemberServiceLog(); memberLog.setBusinessNo(approvalBusinessResultDTO.getBusinessCode()); memberLog.setPkModified(approvalBusinessResultDTO.getLoginUser().getUserId()); memberLog.setModifiedTime(DateUtils.currentDateTime()); memberLog.setApproveStatus(EApproveStatus.REJECTED.getValue()); - cuMemberServiceLogServiceApi.updateByBusinessNo(memberLog); + iCuMemberServiceLogServiceApi.updateByBusinessNo(memberLog); List memberAmountDTOList = new ArrayList<>(); MemberAmountDTO memberAmountDTO = new MemberAmountDTO(); memberAmountDTO.setPkMember(approvalBusinessResultDTO.getLoginUser().getUserId()); @@ -1692,7 +1695,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl businessCommissionDTO.setPkCountry(orderBlankRegParams.getPkCountry()); businessCommissionDTO.setMemberAmountDTOList(memberAmountDTOList); businessCommissionDTO.setTradeType(EApprovalBusiness.UPDATE_SETTLE_COUNTRY.getValue()); - R b = memberTradeServiceApi.businessCommissionSubmit(businessCommissionDTO); + R b = iMemberTradeServiceApi.businessCommissionSubmit(businessCommissionDTO); if (!b.getData()) { throw new ServiceException(ConfigMsgConstants.MEMBER_UPDATE_CODE_MONEY); } @@ -1701,9 +1704,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public void closeOrder() { - R> configMap = systemConfigServiceApi.getSystemConfig(); + R> configMap = iSystemConfigServiceApi.getSystemConfig(); Map configDate = configMap.getData(); - R> all = countryServiceApi.getAllCountryMap(); + R> all = iCountryServiceApi.getAllCountryMap(); Set> entries = all.getData().entrySet(); for (Map.Entry entry : entries) { @@ -1727,7 +1730,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl ESpecialAreaTime specialAreaTime = ESpecialAreaTime.getSpecialAreaTime(date); if (orderType != null && specialAreaTime != null) { if (baseMapper.closeOrder(country.getPkId(), specialAreaTime.getAttributeValue(), orderType) > 0) { - saOrderItemsService.closeOrder(country.getPkId(), specialAreaTime.getAttributeValue(), orderType); + iSaOrderItemsService.closeOrder(country.getPkId(), specialAreaTime.getAttributeValue(), orderType); } } } @@ -1756,7 +1759,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public void waresSalesAccrual(List waresNumberParamList) { try { - waresExtendService.updateWaresSalesAccrual(waresNumberParamList); + iBdWaresExtendService.updateWaresSalesAccrual(waresNumberParamList); } catch (Exception e) { e.printStackTrace(); } @@ -1772,7 +1775,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl public int insertBach(List orderList, List orderItemsList) { int i = baseMapper.insertBach(orderList); if (i > 0 && CollectionUtil.isNotEmpty(orderItemsList)) { - saOrderItemsService.insertBach(orderItemsList); + iSaOrderItemsService.insertBach(orderItemsList); } return i; } @@ -1784,7 +1787,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { saOrderItems.setPkOrder(saOrderExt.getPkId()); } - saOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); + iSaOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); } @Override @@ -1802,11 +1805,11 @@ public class SaOrderServiceImpl extends ServiceImpl impl saOrderExt.setDelFlag(EDelFlag.DELETE.getValue()); Date currentDate = DateUtils.currentDateTime(); // 删除发货单 - saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), null); + iSaDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), null); // 修改订单 updateSaOrder(pkApprove, saOrderExt, currentDate); // 删除订单明细 - if (!saOrderItemsService.updateOrderItems(saOrderExt)) { + if (!iSaOrderItemsService.updateOrderItems(saOrderExt)) { throw new ServiceException("更新订单失败"); } @@ -1828,7 +1831,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 撤销注册订单 if (myOrderVO.getOrderType() == EOrderType.RETAIL_REGISTER.getValue()) { // 逻辑删除会员 - if (!memberServiceApi.singleRevokeMemberBySelfRevokeOrder(pkApprove, saOrderExt, businessCommissionDTO).getData()) { + if (!iMemberServiceApi.singleRevokeMemberBySelfRevokeOrder(pkApprove, saOrderExt, businessCommissionDTO).getData()) { throw new ServiceException("撤单失败"); } } else { @@ -1877,15 +1880,21 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 订单邮费 BigDecimal postage = saOrder.getPostage(); + if (payMoney.add(postage).compareTo(BigDecimal.ZERO) == 0) { + // 订单金额 + 邮费 = 0,直接返回跑 + cuMemberAccount.setIsPayment(Boolean.TRUE); + return cuMemberAccount; + } + // 订单创建人 CuMember creator = getCuMemberByKey(saOrder.getPkCreator()); cuMemberAccount.setMemberCode(creator.getMemberCode()); // 查询专区所属币种 - List areaCurrencyDTOList = areaCurrencyServiceApi.queryAreaCurrencyByCondition(ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()), cuMemberAccount.getPkCountry()).getData(); + List areaCurrencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()), cuMemberAccount.getPkCountry()).getData(); // 验证会员是否存在特殊消费配置 - List memberCurrencyDTOList = areaCurrencyServiceApi.queryMemberCurrency(ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()), cuMemberAccount.getPkMember()).getData(); + List memberCurrencyDTOList = iAreaCurrencyServiceApi.queryMemberCurrency(ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()), cuMemberAccount.getPkMember()).getData(); if (CollectionUtil.isNotEmpty(memberCurrencyDTOList)) { areaCurrencyDTOList = memberCurrencyDTOList; } else { @@ -1895,7 +1904,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (saOrderItems.getPkSpecialCurrency() != null) { BigDecimal orderItemPayMoney = ComputeUtil.computeMultiply(saOrderItems.getPrice(), saOrderItems.getQuantity()); payMoney = ComputeUtil.computeSubtract(payMoney, orderItemPayMoney); - List areaCurrencyDtoList = areaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrderItems.getPkSpecialCurrency()).getData(); + List areaCurrencyDtoList = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrderItems.getPkSpecialCurrency()).getData(); if (!handleRetailSaOrderAmount(saOrder, cuMemberAccount, orderItemPayMoney, BigDecimal.ZERO, areaCurrencyDtoList)) { return null; @@ -1943,7 +1952,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) { if (cuMemberAccount.getPayAccount3Flag()) { // 验证是否有政策币权限 - List cuMemberServiceLogs = cuMemberServiceLogServiceApi.queryMaxCuMemberServiceLog(cuMemberAccount.getPkMember(), Collections.singletonList(EApprovalBusiness.POLICY_CURRENCY_YES_NO.getValue())); + List cuMemberServiceLogs = iCuMemberServiceLogServiceApi.queryMaxCuMemberServiceLog(cuMemberAccount.getPkMember(), Collections.singletonList(EApprovalBusiness.POLICY_CURRENCY_YES_NO.getValue())); if (CollectionUtil.isNotEmpty(cuMemberServiceLogs)) { Map cuMemberServiceLogMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberServiceLogs.size())); cuMemberServiceLogs.forEach(serviceLog -> cuMemberServiceLogMap.put(serviceLog.getEditType(), serviceLog)); @@ -2048,7 +2057,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 查询会员最新升级记录 CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrder.getPkId()).getData(); if (null != cuMemberLevel) { - return gradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData(); + return iGradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData(); } // 没有升级记录,直接查会员注册信息表 @@ -2056,11 +2065,11 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (null == cuMemberRegister) { throw new ServiceException("没有会员注册信息"); } - return gradeServiceApi.getGrade(cuMemberRegister.getPkRegisterGrade()).getData(); + return iGradeServiceApi.getGrade(cuMemberRegister.getPkRegisterGrade()).getData(); } /** - * 处理撤销升级订单 + * 处理撤销订单 * * @param saOrderExt 订单信息 * @param updSaOrder 升级订单 @@ -2074,7 +2083,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 计算等级 // 空单注册,从cu_member_register中获取 if (updSaOrder == null) { - CuMemberRegister cuMemberRegister = memberServiceApi.queryCuMemberRegister(saOrderExt.getPkMember()).getData(); + CuMemberRegister cuMemberRegister = iMemberServiceApi.queryCuMemberRegister(saOrderExt.getPkMember()).getData(); cuMember.setPkRegisterGrade(cuMemberRegister.getPkRegisterGrade()); cuMember.setPkSettleGrade(cuMemberRegister.getPkRegisterGrade()); cuMember.setConsumeMoney(BigDecimal.ZERO); @@ -2099,6 +2108,22 @@ public class SaOrderServiceImpl extends ServiceImpl impl cuMember.setIsActivate(EYesNo.NO.getIntValue()); } saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue()); + } else if (EOrderType.PICK_ORDER.getValue() == saOrderExt.getOrderType()) { + // 提货订单 + // 提货日志列表 + List pickMemberLogList = iAcPickMemberLogService.listPickMemberLog(saOrderExt.getPkMember(), saOrderExt.getOrderCode(), EDelFlag.UN_DELETE.getValue()); + if (CollectionUtil.isNotEmpty(pickMemberLogList)) { + for (AcPickMemberLog acPickMemberLog : pickMemberLogList) { + // 更新会员提货表 + iAcPickService.updateMemberPickById(acPickMemberLog.getPkPick(), acPickMemberLog.getPickQuantity(), acPickMemberLog.getPkMember()); + // 更新会员提货日志表 + iAcPickMemberLogService.update(Wrappers.lambdaUpdate() + .eq(AcPickMemberLog::getPkId, acPickMemberLog.getPkId()) + .eq(AcPickMemberLog::getDelFlag, EDelFlag.UN_DELETE.getValue()) + .set(AcPickMemberLog::getDelFlag, EDelFlag.DELETE.getValue()) + ); + } + } } else if (EOrderType.RETAIL_PICK.getValue() == saOrderExt.getOrderType()) { // 新提货订单 if (!iAcRetailPickService.cancelRetailPickOrder(saOrderExt.getPkId(), pkApprove)) { @@ -2114,7 +2139,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // iSaOrderWaresLimitService.updateCancelOrder(saOrderExt.getPkId(), saOrderExt.getPkMember(), saOrderExt.getModifiedTime(), boxProductList); // } - if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, businessCommissionDTO).getData()) { + if (!iMemberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, businessCommissionDTO).getData()) { throw new ServiceException("撤单处理会员失败"); } } @@ -2239,10 +2264,10 @@ public class SaOrderServiceImpl extends ServiceImpl impl BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); // 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数 baseBoxNum = lastUpdateGrade.getBoxNumber() - + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); + + iSaOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); } else { // 没有手动升级记录 - baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); + baseBoxNum = iSaOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); } } return baseBoxNum; diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageMapper.java index 910a833c..1c6f854f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageMapper.java @@ -8,16 +8,13 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - *

* 邮费设置 Mapper 接口 - *

- * - * @author hzs - * @since 2022-08-27 */ public interface BdPostageMapper extends BaseMapper { + /** * 查询邮费列表 + * * @return */ List selectByList(@Param("pkCountry") Integer pkCountry); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/provider/IPostageServiceProvider.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/provider/IPostageServiceProvider.java deleted file mode 100644 index 2e22549f..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/provider/IPostageServiceProvider.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hzs.sale.postage.provider; - -import com.hzs.common.core.domain.R; -import com.hzs.common.core.exception.ServiceException; -import com.hzs.sale.postage.IPostageServiceApi; -import com.hzs.sale.postage.dto.PostageProductDTO; -import com.hzs.sale.postage.service.IPostageBusinessService; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboService; -import org.springframework.beans.factory.annotation.Autowired; - -import java.math.BigDecimal; -import java.util.List; - -/** - * @Description: 邮费服务API - * @Author: jiang chao - * @Time: 2023/4/25 14:41 - * @Classname: IPostageServiceProvider - * @PackageName: com.hzs.sale.postage.provider - */ -@Slf4j -@DubboService -public class IPostageServiceProvider implements IPostageServiceApi { - - @Autowired - private IPostageBusinessService iPostageBusinessService; - - @Override - public R queryPostage(Integer pkId, List productList, Integer province, Integer recCity) { - try { - return R.ok(iPostageBusinessService.queryPostage(pkId, productList, province, recCity)); - } catch (ServiceException se) { - log.error("查询邮费模板数据异常, 模板ID: {}", pkId, se); - return R.fail(se.getMessage()); - } catch (Exception e) { - log.error("查询邮费模板异常, 模板ID: {}", pkId, e); - } - return R.fail(); - } - -} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageService.java index 69a12eb2..6dbb498b 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageService.java @@ -9,9 +9,6 @@ import java.util.List; /** * 邮费设置 服务类 - * - * @author hzs - * @since 2022-08-27 */ public interface IBdPostageService extends IService { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IPostageBusinessService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IPostageBusinessService.java index 35bc3b92..66d7dccc 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IPostageBusinessService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IPostageBusinessService.java @@ -6,11 +6,7 @@ import java.math.BigDecimal; import java.util.List; /** - * @Description: 邮费业务服务 - * @Author: jiang chao - * @Time: 2023/4/25 16:20 - * @Classname: IPostageBusinessService - * @PackageName: com.hzs.sale.postage.service + * 邮费业务服务 */ public interface IPostageBusinessService { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageServiceImpl.java index b8942608..9e02832b 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageServiceImpl.java @@ -35,9 +35,6 @@ import java.util.List; /** * 邮费设置 服务实现类 - * - * @author hzs - * @since 2022-08-27 */ @Service public class BdPostageServiceImpl extends ServiceImpl implements IBdPostageService { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/PostageBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/PostageBusinessServiceImpl.java index 24abad01..9879690e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/PostageBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/PostageBusinessServiceImpl.java @@ -25,11 +25,7 @@ import java.util.Map; import java.util.stream.Collectors; /** - * @Description: 邮费业务服务 - * @Author: jiang chao - * @Time: 2023/4/25 16:20 - * @Classname: PostageBusinessServiceImpl - * @PackageName: com.hzs.sale.postage.service.impl + * 邮费业务服务 */ @Service public class PostageBusinessServiceImpl implements IPostageBusinessService { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java index 6ba6a437..4d2293c8 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java @@ -15,9 +15,6 @@ import java.util.List; /** * 商品发布扩展表 服务实现类 - * - * @author hzs - * @since 2022-09-09 */ @Service public class BdWaresExtendServiceImpl extends ServiceImpl implements IBdWaresExtendService { diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml index d57a71cc..507f528b 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/pick/AcPickMapper.xml @@ -149,7 +149,7 @@ + select * + from AC_PICK_MEMBER_LOG t + where t.pk_member = #{pkMember} + and t.pick_order = #{orderCode} + and t.del_flag = #{delFlag} + - select nvl(sum(soi.wares_quantity), 0) wares_quantity + select nvl(sum(soi.wares_quantity * bw.box_num), 0) wares_quantity from sa_order so left join sa_order_items soi on soi.pk_order = so.pk_id From 5b13979b08b57a466b6ce7d621df4eb7970e0fa5 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 5 Aug 2025 13:52:37 +0800 Subject: [PATCH 52/89] =?UTF-8?q?##=20=E8=B0=83=E6=95=B4=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E7=9B=92=E6=95=B0=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml index 477dcfc7..d83e7c78 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml @@ -54,7 +54,7 @@ bp.product_code, bp.product_name, bp.shipping_channel, - bp.wms_code,, + bp.wms_code, sdi.SPECS_NAME, sdi.quantity, soi.order_status, From f017daaf645266cb7ef54f4c76713cbf8fe3a6f4 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 5 Aug 2025 14:44:48 +0800 Subject: [PATCH 53/89] =?UTF-8?q?##=20=E6=8F=90=E8=B4=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=8D=E9=9C=80=E8=A6=81=E5=A4=84=E7=90=86=E4=B8=9A=E7=BB=A9?= =?UTF-8?q?=E3=80=81=E5=A5=96=E9=87=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 3cb18d14..1294b643 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -62,6 +62,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 新零售订单 List orderList = iBonusOrderService.queryRetailSaOrderByDay(settleStartDate, settleEndDate, null); for (SaOrderExt saOrderExt : orderList) { + if (EOrderType.PICK_ORDER.getValue() == saOrderExt.getOrderType()) { + // 提货订单不需要处理奖金相关 + continue; + } if (saOrderExt.getDelFlag() == EYesNo.YES.getIntValue()) { retailOrderList.add(saOrderExt); } From e1cc436284909ce2926ce12463a7d0f0fd0ff832 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 7 Aug 2025 12:04:19 +0800 Subject: [PATCH 54/89] =?UTF-8?q?##=20Opt=20-=20=E4=B8=8D=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E5=B7=B2=E9=80=89=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/retail/member/CuMemberRetailRegionMapper.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index 86318fa7..d51aebf7 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -228,10 +228,12 @@ county
) region ON pr.PK_ID = region.id + From 8b5da3c0104e7ec4652796c5d206a1094d4b66b3 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 12 Aug 2025 09:39:33 +0800 Subject: [PATCH 55/89] =?UTF-8?q?##=20=E4=BD=99=E9=A2=9D=E6=B1=87=E6=80=BB?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E4=BF=AE=E6=94=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/member/account/CuMemberAccountDetailMapper.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountDetailMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountDetailMapper.xml index cde1ebbd..6a589679 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountDetailMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountDetailMapper.xml @@ -254,8 +254,7 @@ create_time, pk_rate, del_flag, - pk_country, - system_type) + pk_country) select cu_member_account_detail_seq.nextval, a.pk_member, a.account1, From 975b419cf93931c830e38c012634788f7c660f80 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Tue, 12 Aug 2025 14:26:34 +0800 Subject: [PATCH 56/89] =?UTF-8?q?##=20Feat=20-=20=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F&=E9=85=8D=E9=80=81=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/CuMemberRetailRegionController.java | 3 +++ .../member/param/RetailMemberRegionParam.java | 5 +++++ .../retail/member/CuMemberRetailRegionMapper.xml | 14 +++++++++++--- .../controller/api/ApiRetailOrderController.java | 8 ++++---- .../domain/retail/member/CuMemberRetailRegion.java | 6 ++++++ sql/2025年8月12日_选择区域&配送中心.sql | 5 +++++ 6 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 sql/2025年8月12日_选择区域&配送中心.sql diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java index 5cbe2cc2..524210be 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java @@ -148,6 +148,7 @@ public class CuMemberRetailRegionController extends BaseController { checkMrrExt.setEffective(EDealerYesNo.YES.getValue()); checkMrrExt.setPkCountry(pkCountry); checkMrrExt.setSystemType(systemType); + checkMrrExt.setBusinessType(2); List list = cuMemberRetailRegionService.memberretailRegList(checkMrrExt); if (CollectionUtil.isNotEmpty(list)) { return AjaxResult.error(ConfigMsgConstants.MEMBER_RETAIL_REGION_REPEAT); @@ -162,6 +163,7 @@ public class CuMemberRetailRegionController extends BaseController { .eq(CuMemberRetailRegion::getCounty, mrrExt.getCounty()) .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) .eq(CuMemberRetailRegion::getSystemType, systemType) + .eq(CuMemberRetailRegion::getBusinessType, 2) ); if (cuMemberRetailRegion > 0) { return AjaxResult.error("当前区域已经被占用"); @@ -205,6 +207,7 @@ public class CuMemberRetailRegionController extends BaseController { .eq(CuMemberRetailRegion::getCounty, mrrExt.getCounty()) .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) .eq(CuMemberRetailRegion::getSystemType, SecurityUtils.getSystemType()) + .eq(CuMemberRetailRegion::getBusinessType, 2) .ne(CuMemberRetailRegion::getPkId, mrrExt.getPkId()) ); if (cuMemberRetailRegion > 0) { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java index 3af37f76..82550369 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java @@ -63,4 +63,9 @@ public class RetailMemberRegionParam implements Serializable { */ private Integer systemType; + /** + * 业务类型(1-区域选择,2-配送中心) + */ + private Integer businessType; + } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index d51aebf7..4996b727 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -45,7 +45,9 @@ source, creation_time, pk_creator, - system_type) + system_type, + business_type + ) select cu_member_retail_region_seq.nextval, #{retailRegion.pkMember}, #{retailRegion.province}, @@ -54,7 +56,8 @@ #{retailRegion.source}, sysdate, #{retailRegion.pkCreator}, - #{retailRegion.systemType} + #{retailRegion.systemType}, + 2 from dual where not exists(select 1 from cu_member_retail_region cmrr @@ -63,7 +66,9 @@ and cmrr.county = #{retailRegion.county} and cmrr.del_flag = 0 and cmrr.effective = 0 - and cmrr.system_type = #{retailRegion.systemType}) + and cmrr.system_type = #{retailRegion.systemType} + and cmrr.business_type = 2 + ) @@ -164,6 +169,9 @@ and CRR.source=#{source} + + and CRR.BUSINESS_TYPE = #{businessType} + order by CRR.CREATION_TIME desc diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 1b9cd61e..68479bf3 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -222,10 +222,10 @@ public class ApiRetailOrderController { } // 校验会员选择区域是否已经被占用 - checkStr = this.checkRegionNum(registerParam); - if (null != checkStr) { - return AjaxResult.error(checkStr); - } +// checkStr = this.checkRegionNum(registerParam); +// if (null != checkStr) { +// return AjaxResult.error(checkStr); +// } // 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断 // // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一 diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/CuMemberRetailRegion.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/CuMemberRetailRegion.java index 04ad0fe3..85d2c1df 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/CuMemberRetailRegion.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/CuMemberRetailRegion.java @@ -83,4 +83,10 @@ public class CuMemberRetailRegion extends BaseEntity { @TableField("SYSTEM_TYPE") private Integer systemType; + /** + * 业务类型(1-区域选择,2-配送中心) + */ + @TableField("BUSINESS_TYPE") + private Integer businessType; + } diff --git a/sql/2025年8月12日_选择区域&配送中心.sql b/sql/2025年8月12日_选择区域&配送中心.sql new file mode 100644 index 00000000..379a6743 --- /dev/null +++ b/sql/2025年8月12日_选择区域&配送中心.sql @@ -0,0 +1,5 @@ +ALTER TABLE "CU_MEMBER_RETAIL_REGION" + MODIFY ("EFFECTIVE_END_DATE" DEFAULT TO_DATE('2099-01-01', 'YYYY-MM-DD')) + ADD ("BUSINESS_TYPE" NUMBER(1,0) DEFAULT 1 NOT NULL); + +COMMENT ON COLUMN "CU_MEMBER_RETAIL_REGION"."BUSINESS_TYPE" IS '业务类型(1-区域选择,2-配送中心)' From a43f571940c29eadeb0ec51c074c195d3743fca3 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Tue, 12 Aug 2025 15:50:59 +0800 Subject: [PATCH 57/89] =?UTF-8?q?##=20Feat=20-=20=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F&=E9=85=8D=E9=80=81=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RetailMemberController.java | 74 ++++++++++--------- .../mapper/CuMemberRetailRegionMapper.java | 4 +- .../service/ICuMemberRetailRegionService.java | 1 + .../impl/CuMemberRetailRegionServiceImpl.java | 6 ++ .../member/CuMemberRetailRegionMapper.xml | 32 ++++++++ .../api/ApiRetailOrderController.java | 8 +- 6 files changed, 84 insertions(+), 41 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java index 956c7a5e..3c93e553 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java @@ -3,10 +3,12 @@ package com.hzs.retail.member.controller.api; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import com.hzs.common.core.enums.EGrade; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.base.service.ICuMemberService; import com.hzs.retail.member.service.ICuMemberRetailRegionService; @@ -58,18 +60,18 @@ public class RetailMemberController extends BaseController { // } -// /** -// * 获取会员收益区域 -// * -// * @return -// */ -// @GetMapping("/get-region") -// public AjaxResult getRegion() { -// Long userId = SecurityUtils.getUserId(); -// Integer systemType = SecurityUtils.getSystemType(); -// Integer pkCountry = SecurityUtils.getPkCountry(); -// -// CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType); + /** + * 获取会员收益区域 + * + * @return + */ + @GetMapping("/get-region") + public AjaxResult getRegion() { + Long userId = SecurityUtils.getUserId(); + Integer systemType = SecurityUtils.getSystemType(); + Integer pkCountry = SecurityUtils.getPkCountry(); + List cuMemberRetailRegionExtList = iCuMemberRetailRegionService.getRegionByMemberList(userId, EGrade.S_VIP.getValue(), systemType); + return AjaxResult.success(cuMemberRetailRegionExtList); // log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt)); // if (null != cuMemberRetailRegionExt) { // // 已自选区域或者已后台指定 @@ -103,34 +105,34 @@ public class RetailMemberController extends BaseController { // .build()); // } // } -// // 达到条件,但是没有选择区域,需要弹窗选择区域 -// // 验证伞下业绩+自己是否累计30W -// -// /* -// 2025年6月11日 取消其他验证 -// // 2025.01.11 调整需求,当前会员必须有效(至少下过一单) -// if (iCuMemberRetailRegionService.getOrderCount(userId, systemType, BoxProductUtil.getBoxProductListBySystemType(systemType)) == 0) { -// return AjaxResult.success(RetailMemberRegionVO.builder() -// .regionStatus(EYesNo.NO.getIntValue()) -// .build()); -// } -// -// // 2025.02.21 需求,2025.03.21 按正式规则执行(V5实单非注水盒数达标 或 月大区30万+小区10万,可选择区域) -// R checkResult = iMemberSettleBonusApi.queryValidateBoxOrAchieve(userId); -// if (checkResult.isSuccess()) { -// if (checkResult.getData().getValidateFlag()) { -// return AjaxResult.success(RetailMemberRegionVO.builder() -// .regionStatus(EYesNo.YES.getIntValue()) -// .build()); -// } -// } -// */ + // 达到条件,但是没有选择区域,需要弹窗选择区域 + // 验证伞下业绩+自己是否累计30W + + /* + 2025年6月11日 取消其他验证 + // 2025.01.11 调整需求,当前会员必须有效(至少下过一单) + if (iCuMemberRetailRegionService.getOrderCount(userId, systemType, BoxProductUtil.getBoxProductListBySystemType(systemType)) == 0) { + return AjaxResult.success(RetailMemberRegionVO.builder() + .regionStatus(EYesNo.NO.getIntValue()) + .build()); + } + + // 2025.02.21 需求,2025.03.21 按正式规则执行(V5实单非注水盒数达标 或 月大区30万+小区10万,可选择区域) + R checkResult = iMemberSettleBonusApi.queryValidateBoxOrAchieve(userId); + if (checkResult.isSuccess()) { + if (checkResult.getData().getValidateFlag()) { + return AjaxResult.success(RetailMemberRegionVO.builder() + .regionStatus(EYesNo.YES.getIntValue()) + .build()); + } + } + */ // } -// // 没达到条件,不需要显示区域 + // 没达到条件,不需要显示区域 // return AjaxResult.success(RetailMemberRegionVO.builder() // .regionStatus(EYesNo.NO.getIntValue()) // .build()); -// } + } // // /** // * 设置会员收益区域 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java index e3de6003..b74ddead 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java @@ -25,7 +25,9 @@ public interface CuMemberRetailRegionMapper extends BaseMapper getRegionByMemberList(@Param("pkMember") Long pkMember, + @Param("gradeValue") Integer gradeValue, + @Param("systemType") Integer systemType); /** * 插入收益区域 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java index 7ddb19a2..76dfb8cf 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java @@ -24,6 +24,7 @@ public interface ICuMemberRetailRegionService extends IService getRegionByMemberList(Long pkMember, Integer gradeValue, Integer systemType); /** * 设置会员收益区域 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index 2ff7dfd2..ff14e84e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -40,6 +41,11 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl getRegionByMemberList(Long pkMember, Integer gradeValue, Integer systemType) { + return baseMapper.getRegionByMemberList(pkMember, gradeValue, systemType); + } + @Transactional(rollbackFor = Exception.class) @Override public String setRegion(RetailMemberRegionParam param) { diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index 4996b727..1716d7ae 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -243,6 +243,38 @@ nvl( region.num, 0 ) DESC --> + diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 68479bf3..6807331c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -272,10 +272,10 @@ public class ApiRetailOrderController { } // 校验会员选择区域是否已经被占用 - checkStr = this.checkRegionNum(registerParam); - if (null != checkStr) { - return AjaxResult.error(checkStr); - } +// checkStr = this.checkRegionNum(registerParam); +// if (null != checkStr) { +// return AjaxResult.error(checkStr); +// } // 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断 // // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一 From 1bdedf3e0df1f83780c284138cc9d743795bef91 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 12 Aug 2025 16:44:19 +0800 Subject: [PATCH 58/89] =?UTF-8?q?##=20=E5=85=A8=E7=BD=91=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=90=8C=E6=AD=A5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RetailOrderServiceImpl.java | 71 +++++++++++++++++++ .../sale/order/mapper/SaOrderSyncMapper.java | 11 +++ .../order/service/ISaOrderSyncService.java | 11 +++ .../service/impl/SaOrderSyncServiceImpl.java | 15 ++++ .../mapper/sale/order/SaOrderSyncMapper.xml | 5 ++ .../com/hzs/common/core/config/BdConfig.java | 39 +++++++--- .../com/hzs/common/core/enums/EDefault.java | 8 +-- .../com/hzs/common/core/enums/ESysName.java | 53 ++++++++++++++ .../common/domain/sale/order/SaOrderSync.java | 57 +++++++++++++++ 9 files changed, 254 insertions(+), 16 deletions(-) create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java create mode 100644 bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml create mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESysName.java create mode 100644 bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java 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 36a92481..a886a04a 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 @@ -1,11 +1,15 @@ package com.hzs.retail.sale.controller.service.impl; +import cn.hutool.core.codec.Base64Encoder; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Validator; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.activity.pick.service.IAcPickMemberLogService; import com.hzs.activity.pick.service.IAcPickService; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.*; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; @@ -13,6 +17,7 @@ import com.hzs.common.core.enums.retail.ERetailWaresPrice; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.*; +import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.activity.pick.AcPick; import com.hzs.common.domain.activity.pick.AcPickMemberLog; import com.hzs.common.domain.member.account.CuMemberAccount; @@ -22,6 +27,7 @@ import com.hzs.common.domain.sale.ext.BdWaresDetailExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt; import com.hzs.common.domain.sale.order.*; +import com.hzs.common.domain.sale.product.BdProduct; import com.hzs.common.domain.sale.wares.BdWaresRange; import com.hzs.common.domain.system.base.BdStorehouse; import com.hzs.common.domain.system.config.BdGrade; @@ -37,6 +43,7 @@ import com.hzs.retail.sale.param.RetailOrderUpgradeParam; import com.hzs.sale.order.param.OrderItemsParam; import com.hzs.sale.order.service.*; import com.hzs.sale.order.service.impl.SaOrderHandle; +import com.hzs.sale.product.service.IBdProductService; import com.hzs.sale.wares.service.IBdWaresDetailService; import com.hzs.sale.wares.service.IBdWaresExtendService; import com.hzs.sale.wares.service.IBdWaresRangeService; @@ -71,6 +78,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { @Autowired private ISaOrderWaresService iSaOrderWaresService; @Autowired + private IBdProductService iBdProductService; + @Autowired private IBdWaresExtendService iBdWaresExtendService; @Autowired private IBdWaresDetailService iBdWaresDetailService; @@ -86,6 +95,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { private IAcPickService iAcPickService; @Autowired private IAcPickMemberLogService iAcPickMemberLogService; + @Autowired + private ISaOrderSyncService iSaOrderSyncService; @Autowired private RedisService redisService; @@ -537,6 +548,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { log.error("新零售 payRegSaOrder 会员注册失败,{}", saveResult.getMsg()); throw new RuntimeException("会员注册失败"); } + // 同步全网产品库存 + this.allProductSync(saOrderExt); return null; } @@ -559,6 +572,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { log.error("新零售 payUpgOrder 会员升级失败,{}", saveResult.getMsg()); throw new RuntimeException("会员升级失败"); } + // 同步全网产品库存 + this.allProductSync(saOrderExt); return null; } @@ -578,6 +593,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { log.error("新零售 payOtherOrder 会员其它订单失败,{}", saveResult.getMsg()); throw new RuntimeException("下单支付失败"); } + // 同步全网产品库存 + this.allProductSync(saOrderExt); return null; } @@ -929,4 +946,58 @@ public class RetailOrderServiceImpl implements IRetailOrderService { } } + /** + * 同步全网产品库存 + * + * @param saOrderExt + */ + private void allProductSync(SaOrderExt saOrderExt) { + if (EYesNo.NO.getIntValue() == BdConfig.getProductSync()) { + return; + } + Map productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null); + // 开启线程调用全网产品库存 + // 请求参数 + Map bodyMap = new HashMap<>(); + bodyMap.put("source", BdConfig.getSysName()); + bodyMap.put("orderCode", saOrderExt.getOrderCode()); + List> bodyDetailList = new ArrayList<>(); + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { + Map detailMap = new HashMap<>(); + detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode()); + detailMap.put("changeNum", saOrderItems.getQuantity()); + bodyDetailList.add(detailMap); + } + bodyMap.put("detailList", bodyDetailList); + // 请求头 + String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode()); + ThreadUtils.threadPoolExecutor.submit(() -> { + log.info("同步产品,header: {}", header); + log.info("同步产品,bodyMap: {}", bodyMap); + HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl()); + httpRequest.header("authorization", header); + httpRequest.body(JSONUtil.toJsonStr(bodyMap)); + httpRequest.setReadTimeout(5000); + try { + // 同步产品接口返回 + String resultStr = httpRequest.execute().body(); + AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class); + log.info("同步产品,resultStr: {}", resultStr); + if (!ajaxResult.isSuccess()) { + // 同步产品失败,250毫秒后重试 + Thread.sleep(250); + resultStr = httpRequest.execute().body(); + log.info("同步产品失败重试,resultStr: {}", resultStr); + } + } catch (Exception e) { + log.error("同步产品库存异常", e); + // 保存订单产品同步记录 + iSaOrderSyncService.save(SaOrderSync.builder() + .orderCode(saOrderExt.getOrderCode()) + .bodyDetail(JSONUtil.toJsonStr(bodyDetailList)) + .build()); + } + }); + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java new file mode 100644 index 00000000..ff8dfead --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java @@ -0,0 +1,11 @@ +package com.hzs.sale.order.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.sale.order.SaOrderSync; + +/** + * 订单产品同步记录 Mapper 接口 + */ +public interface SaOrderSyncMapper extends BaseMapper { + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java new file mode 100644 index 00000000..ce5897bc --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java @@ -0,0 +1,11 @@ +package com.hzs.sale.order.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.common.domain.sale.order.SaOrderSync; + +/** + * 订单产品同步记录 服务类 + */ +public interface ISaOrderSyncService extends IService { + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java new file mode 100644 index 00000000..bce905ad --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java @@ -0,0 +1,15 @@ +package com.hzs.sale.order.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.domain.sale.order.SaOrderSync; +import com.hzs.sale.order.mapper.SaOrderSyncMapper; +import com.hzs.sale.order.service.ISaOrderSyncService; +import org.springframework.stereotype.Service; + +/** + * 订单产品同步记录 服务实现类 + */ +@Service +public class SaOrderSyncServiceImpl extends ServiceImpl implements ISaOrderSyncService { + +} diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml new file mode 100644 index 00000000..f4ef63e1 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BdConfig.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BdConfig.java index 06279ca0..f27f626f 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BdConfig.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BdConfig.java @@ -10,6 +10,11 @@ import org.springframework.stereotype.Component; @ConfigurationProperties(prefix = "bd") public class BdConfig { + /** + * 系统名称(ESysName) + */ + private static String sysName; + /** * 当前环境 */ @@ -32,14 +37,21 @@ public class BdConfig { // */ // private static String android; - private static Integer enable; + /** + * 商品同步是否开启(0=开启,1=不开启) + */ + private static Integer productSync; + /** + * 商品同步地址 + */ + private static String productSyncUrl; - public static String getEnv() { - return env; + public static String getSysName() { + return sysName; } - public void setEnv(String env) { - BdConfig.env = env; + public void setSysName(String sysName) { + BdConfig.sysName = sysName; } public static String getPc() { @@ -74,11 +86,20 @@ public class BdConfig { // HzsConfig.android = android; // } - public static Integer getEnable() { - return enable; + public static Integer getProductSync() { + return productSync; } - public void setEnable(Integer enable) { - BdConfig.enable = enable; + public void setProductSync(Integer productSync) { + BdConfig.productSync = productSync; } + + public static String getProductSyncUrl() { + return productSyncUrl; + } + + public void setProductSyncUrl(String productSyncUrl) { + BdConfig.productSyncUrl = productSyncUrl; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDefault.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDefault.java index a2fd6969..d1606575 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDefault.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDefault.java @@ -4,13 +4,8 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 是否默认 - * @Author: ljc - * @Time: 2022/9/27 10:31 - * @Classname: EDefault - * @Package_name: com.hzs.common.core.enums + * 是否默认 */ - @AllArgsConstructor @Getter public enum EDefault { @@ -36,5 +31,4 @@ public enum EDefault { */ private final String label; - } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESysName.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESysName.java new file mode 100644 index 00000000..709b4e5c --- /dev/null +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESysName.java @@ -0,0 +1,53 @@ +package com.hzs.common.core.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 系统名称 + */ +@AllArgsConstructor +@Getter +public enum ESysName { + + MANAGE("manage", "后台管理"), + + /** + * 新零售 + */ + BF("bf", "新零售BF"), + /** + * 新零售店铺 + */ + BL("bl", "新零售店铺BL"), + + ; + + /** + * 实际值 + */ + private final String value; + /** + * 显示标签 + */ + private final String label; + + public static ESysName getEnumByValue(String value) { + for (ESysName enums : ESysName.values()) { + if (enums.getValue().equals(value)) { + return enums; + } + } + return null; + } + + public static String getLabelByValue(String value) { + for (ESysName enums : ESysName.values()) { + if (enums.getValue().equals(value)) { + return enums.getLabel(); + } + } + return ""; + } + +} diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java new file mode 100644 index 00000000..0285fb73 --- /dev/null +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java @@ -0,0 +1,57 @@ +package com.hzs.common.domain.sale.order; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 订单产品同步记录 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("SA_ORDER_SYNC") +public class SaOrderSync implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId("PK_ID") + private Long pkId; + + /** + * 订单编号 + */ + @TableField("ORDER_CODE") + private String orderCode; + + /** + * 产品明细列表 + */ + @TableField("BODY_DETAIL") + private String bodyDetail; + + /** + * 创建时间 + */ + @TableField("CREATION_TIME") + private Date creationTime; + + /** + * 同步状态(1=失败) + */ + @TableField("STATUS") + private Integer status; + + +} From bd50d74fb59646956389c10dc83ddaf8d85dd35b Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Tue, 12 Aug 2025 17:11:36 +0800 Subject: [PATCH 59/89] =?UTF-8?q?##=20Opt=20-=20=E5=8F=AF=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=80=89=E6=8B=A9=E5=8C=BA=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiRetailOrderController.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 6807331c..4837a0d9 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -362,10 +362,10 @@ public class ApiRetailOrderController { upgradeParam.setUpgradeMember(updateGradeMember); // 校验会员选择区域是否已经被占用 - otherCheckStr = this.checkRegionNum(upgradeParam); - if (null != otherCheckStr) { - return AjaxResult.error(otherCheckStr); - } +// otherCheckStr = this.checkRegionNum(upgradeParam); +// if (null != otherCheckStr) { +// return AjaxResult.error(otherCheckStr); +// } // 购物车中获取商品信息 upgradeParam.setOrderItemsParams(convertShoppingCarToSku(upgradeParam.getPkCreator(), upgradeParam.getShopList())); @@ -404,10 +404,10 @@ public class ApiRetailOrderController { } // 校验会员选择区域是否已经被占用 - otherCheckStr = this.checkRegionNum(upgradeParam); - if (null != otherCheckStr) { - return AjaxResult.error(otherCheckStr); - } +// otherCheckStr = this.checkRegionNum(upgradeParam); +// if (null != otherCheckStr) { +// return AjaxResult.error(otherCheckStr); +// } // 支付入参 upgradeParam.setIsPay(EYesNo.YES.getIntValue()); From bc845181a5adeb9ccd320fc79e57371f9b0ef821 Mon Sep 17 00:00:00 2001 From: woody Date: Tue, 12 Aug 2025 18:08:41 +0800 Subject: [PATCH 60/89] =?UTF-8?q?feat(CuMemberWithdrawVO):=20=E6=8F=90?= =?UTF-8?q?=E7=8E=B0=E6=98=8E=E7=BB=86=E5=AF=BC=E5=87=BA=E7=A8=8E=E8=B4=B9?= =?UTF-8?q?=E6=94=B9=E6=9C=8D=E5=8A=A1=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzs/member/account/vo/CuMemberWithdrawVO.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java index 10b5cefd..cc3cc670 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java @@ -79,7 +79,7 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO { /** * 个人所得税 */ - @Excel(name = "个税", scale = 2) + @Excel(name = "服务费", scale = 2) @BigDecimalFormat() private BigDecimal incomeTax; @@ -93,28 +93,28 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO { /** * 提现金额 */ - @Excel(name = "本次提现($)", scale = 2) +// @Excel(name = "本次提现($)", scale = 2) @BigDecimalFormat() private BigDecimal settleCashAmount; /** * 手续费 */ - @Excel(name = "手续费($)", scale = 2) +// @Excel(name = "手续费($)", scale = 2) @BigDecimalFormat() private BigDecimal settleServiceCharge; /** * 个人所得税 */ - @Excel(name = "个税($)", scale = 2) +// @Excel(name = "个税($)", scale = 2) @BigDecimalFormat() private BigDecimal settleIncomeTax; /** * 实发金额 */ - @Excel(name = "实发金额($)", scale = 2) +// @Excel(name = "实发金额($)", scale = 2) @BigDecimalFormat() private BigDecimal settleIssuedAmount; From 7fe6c4998e594762b6ebc1c715bffe646656360c Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 12 Aug 2025 18:37:58 +0800 Subject: [PATCH 61/89] =?UTF-8?q?##=20=E5=8E=BB=E6=8E=89=E6=97=A7=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=EF=BC=9B=E9=83=A8=E5=88=86=E6=9E=9A=E4=B8=BE=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/self/ICuSelfServiceServiceApi.java | 6 - .../hzs/sale/order/ISaOrderServiceApi.java | 23 - .../config/IServiceChargeServiceApi.java | 12 +- .../system/config/ITradeConfigServiceApi.java | 10 - .../hzs/system/config/dto/TradeConfigDTO.java | 6 - .../com/hzs/third/sms/ISmsServiceApi.java | 2 - .../bonus/base/param/MemberRealInfoParam.java | 144 ------- .../bonus/base/param/MemberTeamInfoParam.java | 81 ---- .../ApiCuMemberAuthenticationController.java | 152 +++---- .../api/ApiCuMemberBankController.java | 16 +- .../ICuMemberAuthenticationService.java | 8 - .../account/service/ICuMemberBankService.java | 9 +- .../service/ICuMemberTransferService.java | 2 +- .../service/ICuMemberWithdrawService.java | 1 + .../CuMemberAuthenticationServiceImpl.java | 22 +- .../service/impl/CuMemberBankServiceImpl.java | 5 - .../impl/CuMemberTransferServiceImpl.java | 58 ++- .../account/vo/CuMemberAuthenticationVO.java | 13 +- .../api/ApiCuMemberAchieveDisController.java | 24 -- .../controller/vo/ParentAchieveVO.java | 5 - .../service/ICuMemberMonthAchieveService.java | 9 - .../impl/CuMemberMonthAchieveServiceImpl.java | 54 +-- .../controller/api/ApiMemberController.java | 57 +-- .../controller/manage/CuMemberController.java | 395 +++--------------- .../base/mapper/CuMemberTeamMapper.java | 19 - .../base/param/MemberRealInfoParam.java | 19 +- .../base/param/MemberTeamInfoParam.java | 18 +- .../base/service/ICuMemberTeamService.java | 18 - .../service/impl/CuMemberServiceImpl.java | 15 +- .../service/impl/CuMemberTeamServiceImpl.java | 12 - .../hzs/member/base/vo/AccountPointOutVO.java | 32 -- .../hzs/member/base/vo/AgreementExpireVO.java | 36 -- .../com/hzs/member/base/vo/CuHonorWallVo.java | 63 --- .../base/vo/CuMemberAchieveLogParentVO.java | 103 ----- .../hzs/member/base/vo/DirectPushNewVo.java | 77 ---- .../hzs/member/base/vo/MemberChargingVo.java | 65 --- .../member/base/vo/MemberDirectPushVO.java | 83 ---- .../hzs/member/base/vo/MemberRealInfoVO.java | 44 -- .../hzs/member/base/vo/MemberTeamInfoVo.java | 8 - .../com/hzs/member/base/vo/MemberTeamVo.java | 32 +- .../com/hzs/member/base/vo/TheLableVO.java | 40 -- .../base/vo/WaresAuthorityParentVo.java | 31 -- .../api/ApiDomicileChangeController.java | 137 ++---- .../controller/api/ApiSelfController.java | 32 +- .../manage/DomicileChangeController.java | 49 --- .../self/mapper/CuSelfServiceLogMapper.java | 51 +-- .../ICuSelfServiceServiceProvider.java | 57 +-- .../service/ICuSelfServiceLogService.java | 50 --- .../impl/CuSelfServiceLogServiceImpl.java | 272 +++--------- .../java/com/hzs/member/self/vo/SelfVO.java | 9 - .../controller/api/ApiShareController.java | 14 +- .../sms/controller/api/ApiSmsController.java | 20 +- .../member/sms/service/IApiAliSmsService.java | 12 +- .../member/sms/service/IApiCodeService.java | 79 ---- .../service/impl/ApiAliSmsServiceImpl.java | 37 +- .../sms/service/impl/ApiCodeServiceImpl.java | 59 --- .../mapper/member/base/CuMemberMapper.xml | 53 +-- .../mapper/member/base/CuMemberTeamMapper.xml | 80 ---- .../member/self/CuSelfServiceLogMapper.xml | 86 +--- .../hzs/report/member/vo/DirectPushNewVo.java | 47 +-- .../hzs/sale/order/mapper/SaOrderMapper.java | 11 - .../provider/SaOrderServiceProvider.java | 30 -- .../sale/order/service/ISaOrderService.java | 15 - .../service/impl/SaOrderServiceImpl.java | 20 - .../hzs/sale/order/vo/DirectPushNewVo.java | 72 ---- .../mapper/sale/order/SaOrderMapper.xml | 53 --- .../config/mapper/BdTradeConfigMapper.java | 9 - .../mapper/BdTradeWhiteConfigMapper.java | 6 - .../provider/ITradeConfigServiceProvider.java | 28 +- .../ServiceChargeServiceProvider.java | 13 +- .../config/service/IBdTradeConfigService.java | 8 +- .../service/IBdTradeWhiteConfigService.java | 11 - .../impl/BdTradeConfigServiceImpl.java | 73 +--- .../impl/BdTradeWhiteConfigServiceImpl.java | 49 +-- .../enums/controller/EnumsController.java | 25 -- .../enums/controller/EnumsInitController.java | 20 - .../system/config/BdTradeConfigMapper.xml | 47 +-- .../config/BdTradeWhiteConfigMapper.xml | 16 - .../com/hzs/common/core/config/BdConfig.java | 8 + .../core/constant/EnumsPrefixConstants.java | 5 - .../core/constant/MagicNumberConstants.java | 22 +- .../common/core/constant/RetailConstants.java | 40 +- .../core/constant/SystemFieldConstants.java | 5 - .../constant/msg/FinanceMsgConstants.java | 27 -- .../core/enums/EAgreementWhiteType.java | 18 +- .../core/enums/EApproveRechargeStatus.java | 12 +- .../com/hzs/common/core/enums/ECardType.java | 39 +- .../hzs/common/core/enums/EExemptType.java | 6 +- .../hzs/common/core/enums/EFrameworkType.java | 18 +- .../com/hzs/common/core/enums/EGrantWay.java | 49 --- .../com/hzs/common/core/enums/EIdType.java | 25 +- .../common/core/enums/EInfusingWaterType.java | 6 +- .../core/enums/EInternalMessageType.java | 6 - .../common/core/enums/EPayBusinessType.java | 2 - .../hzs/common/core/enums/EPayChannel.java | 2 - .../com/hzs/common/core/enums/EPopupType.java | 6 - .../com/hzs/common/core/enums/EResetBank.java | 7 +- .../java/com/hzs/common/core/enums/ESex.java | 21 +- .../com/hzs/common/core/enums/EShareType.java | 6 +- .../com/hzs/common/core/enums/ESheetType.java | 16 +- .../hzs/common/core/enums/EShowStatus.java | 6 +- .../hzs/common/core/enums/ESignInState.java | 8 +- .../com/hzs/common/core/enums/ESignType.java | 6 +- .../java/com/hzs/common/core/enums/ESkin.java | 6 +- .../hzs/common/core/enums/ESmsSendResult.java | 6 +- .../hzs/common/core/enums/ESmsSendScope.java | 6 +- .../hzs/common/core/enums/ESmsSendStatus.java | 6 +- .../hzs/common/core/enums/ESmsSendType.java | 6 +- .../hzs/common/core/enums/ESmsTemplate.java | 44 -- .../hzs/common/core/enums/ESortStatus.java | 11 +- .../common/core/enums/ESpecialAreaTime.java | 18 +- .../common/core/enums/EStatisticalValue.java | 6 +- .../common/core/enums/EStatisticsScope.java | 6 +- .../com/hzs/common/core/enums/EStatus.java | 2 - .../hzs/common/core/enums/EStructureType.java | 45 -- .../hzs/common/core/enums/ESupplierType.java | 10 +- .../hzs/common/core/enums/ETakeValueType.java | 12 +- .../hzs/common/core/enums/EThirdBindType.java | 22 - .../com/hzs/common/core/enums/ETransType.java | 40 -- .../common/core/enums/ETransferSpecial.java | 6 - .../common/core/enums/EUpgradeIncomeType.java | 41 -- .../hzs/common/core/enums/EUpgradeWay.java | 6 +- .../hzs/common/core/enums/EUserStatus.java | 2 - .../core/enums/EVerificationModule.java | 8 - .../common/core/enums/EWalletFreezeState.java | 2 - .../hzs/common/core/enums/EWalletStatus.java | 2 - .../common/core/enums/EWithdrawStatus.java | 4 +- .../hzs/common/core/enums/HonorWallType.java | 82 ---- .../domain/member/account/CuMemberBank.java | 5 - .../common/domain/member/ext/CuMemberExt.java | 6 +- .../domain/sale/ext/SaDeliverItemsExt.java | 6 +- .../domain/system/config/BdTradeConfig.java | 5 - .../system/config/BdTradeWhiteConfig.java | 5 - .../common/domain/third/sms/TSmsTemplate.java | 3 - .../service/impl/IdCardServiceImpl.java | 6 +- .../manage/SmsRecordController.java | 28 -- .../third/sms/mapper/TSmsTemplateMapper.java | 3 - .../hzs/third/sms/param/SmsCreateParam.java | 59 --- .../sms/provider/SmsServiceProvider.java | 2 - .../hzs/third/sms/service/ISmsService.java | 22 - .../third/sms/service/ITSmsRecordService.java | 11 - .../sms/service/ITSmsTemplateService.java | 3 - .../sms/service/impl/SmsServiceImpl.java | 99 ----- .../service/impl/TSmsRecordServiceImpl.java | 222 ---------- .../service/impl/TSmsTemplateServiceImpl.java | 3 - .../java/com/hzs/third/sms/util/SmsUtil.java | 87 +--- 146 files changed, 537 insertions(+), 4282 deletions(-) delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberRealInfoParam.java delete mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberTeamInfoParam.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AccountPointOutVO.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AgreementExpireVO.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuHonorWallVo.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuMemberAchieveLogParentVO.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/DirectPushNewVo.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberChargingVo.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberDirectPushVO.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/TheLableVO.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/WaresAuthorityParentVo.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiCodeService.java delete mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiCodeServiceImpl.java delete mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/DirectPushNewVo.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EGrantWay.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EStructureType.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EThirdBindType.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETransType.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeIncomeType.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/HonorWallType.java delete mode 100644 bd-third/src/main/java/com/hzs/third/sms/param/SmsCreateParam.java delete mode 100644 bd-third/src/main/java/com/hzs/third/sms/service/ISmsService.java delete mode 100644 bd-third/src/main/java/com/hzs/third/sms/service/impl/SmsServiceImpl.java diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/self/ICuSelfServiceServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/self/ICuSelfServiceServiceApi.java index c6927720..a365c3b8 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/self/ICuSelfServiceServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/self/ICuSelfServiceServiceApi.java @@ -6,12 +6,6 @@ import com.hzs.system.sys.dto.ApprovalBusinessResultDTO; /** * 自助服务 - * - * @Description: - * @Author: ljc - * @Time: 2023/4/19 16:09 - * @Classname: ICuSelfServiceServiceApi - * @Package_name: com.hzs.member.self */ public interface ICuSelfServiceServiceApi { diff --git a/bd-api/bd-api-sale/src/main/java/com/hzs/sale/order/ISaOrderServiceApi.java b/bd-api/bd-api-sale/src/main/java/com/hzs/sale/order/ISaOrderServiceApi.java index 3116e5aa..d97fde30 100644 --- a/bd-api/bd-api-sale/src/main/java/com/hzs/sale/order/ISaOrderServiceApi.java +++ b/bd-api/bd-api-sale/src/main/java/com/hzs/sale/order/ISaOrderServiceApi.java @@ -27,25 +27,6 @@ public interface ISaOrderServiceApi { */ R> queryRetailSaOrderByDay(Date startDate, Date endDate, String orderCode); - /* - * 根据主键查询订单,需要查询del_flag=1的,存在先撤单在退货 - **/ - R querySaOrderExtByPkId(Long pkId); - - /* - * 根据发货单查询销售订单 - **/ - R> querySaOrderByDeliverList(List deliverItemExtList); - - /** - * 根据订单ID查询订单详细列表 - * - * @param pkOrderList 订单ID列表 -- 必传 - * @param pkCountry 国家ID -- 非必传 - * @return - */ - R> queryOrderItemsListByOrderId(List pkOrderList, Integer pkCountry); - /** * 空单注册审核通过 * @@ -103,10 +84,6 @@ public interface ISaOrderServiceApi { */ R saveOrderBatch(List orderList, List orderItemsList); - /* 保存销售订单 - **/ - R saveOrder(SaOrderExt saOrderExt); - /** * 查询注册订单数量 * diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/IServiceChargeServiceApi.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/IServiceChargeServiceApi.java index 805319c0..dc08e82a 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/IServiceChargeServiceApi.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/IServiceChargeServiceApi.java @@ -6,20 +6,12 @@ import com.hzs.system.config.dto.ServiceChargeDTO; import java.util.List; /** - * @Description: 办理业务手续费api - * @Author: zhangjing - * @Time: 2022/9/9 14:07 - * @Classname: IGradeServiceApi - * @PackageName: com.hzs.system.config + * 办理业务手续费api */ public interface IServiceChargeServiceApi { /** - * @description: 根据业务类型查询扣款 - * @author: zhang jing - * @date: 2023/1/7 15:01 - * @param: [type, quantity] - * @return: com.hzs.common.core.domain.R + * 根据业务类型查询扣款 **/ R getServiceChargeByType(ServiceChargeDTO serviceChargeDTO); diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/ITradeConfigServiceApi.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/ITradeConfigServiceApi.java index c173adc1..9f694946 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/ITradeConfigServiceApi.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/ITradeConfigServiceApi.java @@ -7,13 +7,6 @@ import com.hzs.system.config.dto.TradeConfigDTO; import java.util.List; -/** - * @Description: - * @Author: ljc - * @Time: 2023/8/21 15:05 - * @Classname: ITradeConfigApi - * @Package_name: com.hzs.system.config - */ public interface ITradeConfigServiceApi { /** @@ -32,7 +25,6 @@ public interface ITradeConfigServiceApi { */ R selectTradeWhiteConfigByCondition(TradeConfigDTO tradeConfigDTO); - /** * 根据会员ID查询账户白名单 * @@ -42,7 +34,6 @@ public interface ITradeConfigServiceApi { */ R> selectTransferWhiteByPkMember(Long pkMember, Integer pkCountry); - /** * 查询配置伞下白名单的会员 * @@ -51,5 +42,4 @@ public interface ITradeConfigServiceApi { */ R> selectTradeWhiteConfigByUnderBlood(TradeConfigDTO tradeConfigDTO); - } diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/TradeConfigDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/TradeConfigDTO.java index 63d94cb5..bfcaa5c9 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/TradeConfigDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/TradeConfigDTO.java @@ -9,12 +9,6 @@ import java.io.Serializable; /** * 交易配置DTO - * - * @Description: - * @Author: ljc - * @Time: 2023/8/21 15:30 - * @Classname: TradeConfigDTO - * @Package_name: com.hzs.system.config.dto */ @Data @Builder diff --git a/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java b/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java index b3c388d5..b407c772 100644 --- a/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java +++ b/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java @@ -6,8 +6,6 @@ import com.hzs.third.sms.dto.SmsServiceDTO; /** * 短信服务接口 - * - * @author hzs */ public interface ISmsServiceApi { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberRealInfoParam.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberRealInfoParam.java deleted file mode 100644 index 697aeb07..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberRealInfoParam.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.hzs.bonus.base.param;/** - * @Description: - * @Author: yuhui - * @Time: 2023/4/26 10:08 - * @Classname: MemberRealInfo - * @PackageName: com.hzs.member.base.param - */ - -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; - -import java.util.Date; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.param - *@Author: yh - *@CreateTime: 2023-04-26 10:08 - *@Description: TODO - *@Version: 1.0 - */ -@Data -public class MemberRealInfoParam { - - /** - * 会员编号 - */ - private String memberCode; - - /** - * 会员名称 - */ - private String memberName; - - /** - * 联系方式 - */ - private String phone; - - /** - * 真实奖衔 - */ - private Integer pkAwards; - - /** - * 注册等级 - */ - private Integer pkRegisterGrade; - - /** - * 结算等级 - */ - private Integer pkSettleGrade; - - /** - * 证件类型 - */ - - private Integer idType; - - /** - * 证件号码 - */ - private String idCard; - /** - * 出生日期(年月日) - */ - private Date birthDate; - - /** - * 省id - */ - private Integer pkProvince; - /** - * 市id - */ - private Integer pkCity; - /** - * 区县id - */ - private Integer pkCounty; - /** - * 详细地址 - */ - private String address; - - /** - * 性别(0=未知,1=男,2=女) - */ - - private Integer sex; - /** - * 银行名称 - */ - private String bankName; - - /** - * 支行名称 - */ - private String subBankName; - - /** - * 银行卡号 - */ - private String cardNumber; - - /** - * 邮箱 - */ - private String email; - - /** - * 开始认证时间 - */ - private Date startCertificationTime; - - /** - * 结束认证时间 - */ - private Date endCertificationTime; - - /** - * 开始创建时间 - */ - private Date startCreationTime; - /** - * 结束创建时间 - */ - private Date endCreationTime; - - /** - * 开始支付时间 - */ - private Date startPayTime; - /** - * 结束支付时间 - */ - private Date endPayTime; - /** - * 国家 - */ - private Integer PkCountry; -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberTeamInfoParam.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberTeamInfoParam.java deleted file mode 100644 index e22ea0ad..00000000 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/param/MemberTeamInfoParam.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hzs.bonus.base.param;/** - * @Description: - * @Author: yuhui - * @Time: 2023/5/29 14:53 - * @Classname: MemberTeamInfoParam - * @PackageName: com.hzs.member.base.param - */ - -import lombok.Data; - -import java.math.BigDecimal; -import java.util.Date; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.param - *@Author: yh - *@CreateTime: 2023-05-29 14:53 - *@Description: TODO - *@Version: 1.0 - */ -@Data -public class MemberTeamInfoParam { - - /** - * 查询date 时间 - */ - private Date queryDate; - - /** - * 查询业绩表名 - */ - private String settleTableName; - - /** - * 期间值 - */ - private Integer period; - - /** - * 会员编号 - */ - private String memberCode ; - - /** - * 真实奖衔 - */ - private Integer pkAwards; - - /** - * 关系类型 1 血缘 2 安置 - */ - private Integer relaType; - - /** - * 安置部门 - */ - private Integer placeDept; - - /** - * 血缘代数 - */ - private Integer consanguinityAlgebra; - - - /** - * 安置层级 - * 查询当前会员在团队的第几层 (查询伞下的所有人) - */ - private Integer resettleLevel; - - /** - * 安置位置 - */ - private String resettleLocation; - - /** - * 奖金收益 - */ - private BigDecimal realIncomeTotal; -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberAuthenticationController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberAuthenticationController.java index 3ebfa53f..518414c6 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberAuthenticationController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberAuthenticationController.java @@ -1,15 +1,17 @@ package com.hzs.member.account.controller.api; +import cn.hutool.core.util.IdcardUtil; import com.hzs.common.core.annotation.RepeatSubmitSimple; import com.hzs.common.core.constant.msg.FinanceMsgConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; +import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.OssUtil; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.ThreadUtils; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; -import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.system.config.BdTradeConfig; import com.hzs.common.domain.system.config.BdTradeWhiteConfig; import com.hzs.common.security.utils.SecurityUtils; @@ -18,7 +20,7 @@ import com.hzs.member.account.service.ICuMemberAuthenticationService; import com.hzs.member.account.service.ICuMemberBaseService; import com.hzs.member.account.vo.CuMemberAuthenticationVO; import com.hzs.member.base.service.ICuMemberService; -import com.hzs.member.sms.service.IApiCodeService; +import com.hzs.member.sms.service.IApiAliSmsService; import com.hzs.third.idcard.IdCardServiceApi; import com.hzs.third.idcard.dto.IdCardOcrDTO; import org.apache.dubbo.config.annotation.DubboReference; @@ -26,7 +28,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; -import java.time.ZoneId; import java.time.format.DateTimeFormatter; /** @@ -37,7 +38,7 @@ import java.time.format.DateTimeFormatter; public class ApiCuMemberAuthenticationController extends BaseController { @Autowired - private IApiCodeService iApiCodeService; + private IApiAliSmsService iApiAliSmsService; @Autowired private ICuMemberAuthenticationService iCuMemberAuthenticationService; @Autowired @@ -48,6 +49,31 @@ public class ApiCuMemberAuthenticationController extends BaseController { @DubboReference IdCardServiceApi idCardServiceApi; + /** + * 是否需要实名认证 + * + * @param businessModule 1:提现 2:转账 (来源枚举EBusinessModule) + * @return AjaxResult + */ + @GetMapping("/is-auth") + public AjaxResult isAuth(Integer businessModule) { + String flag = EYesNo.YES.getValue(); + Long pkMember = SecurityUtils.getUserId(); + Integer pkCountry = SecurityUtils.getPkCountry(); + //查询是否配置了实名认证白名单 + BdTradeWhiteConfig bdTradeWhiteConfig = iCuMemberBaseService.selectConfigWhite(pkMember, pkCountry, businessModule); + if (isStopStatus(businessModule, bdTradeWhiteConfig)) { + //查询配置实名认证 + BdTradeConfig bdTradeConfig = iCuMemberBaseService.selectConfigTrade(pkMember, pkCountry, businessModule, EVerificationModule.REAL_NAME); + //配置后才进行验证 + if (null != bdTradeConfig) { + //查询是否已实名认证 + CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build()); + flag = null == authenticationVO ? EYesNo.NO.getValue() : EYesNo.YES.getValue(); + } + } + return AjaxResult.success().put("flag", flag); + } /** * 调用身份证OCR接口 @@ -72,7 +98,6 @@ public class ApiCuMemberAuthenticationController extends BaseController { return AjaxResult.error(result.getMsg()); } - /** * 调用身份证OCR反面接口 * @@ -115,11 +140,7 @@ public class ApiCuMemberAuthenticationController extends BaseController { Long pkMember = SecurityUtils.getUserId(); Integer pkCountry = SecurityUtils.getPkCountry(); - //查询是否已实名 - CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build()); - if (null != queryAuthenticationVO) { - return AjaxResult.error(FinanceMsgConstants.MEMBER_REAL_NAME); - } + // 验证码是否为空 String verificationCode = authenticationVO.getVerificationCode(); if (StringUtils.isEmpty(verificationCode)) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY)); @@ -129,51 +150,38 @@ public class ApiCuMemberAuthenticationController extends BaseController { if (StringUtils.isEmpty(accountName)) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.REAL_NAME_CANNOT_EMPTY)); } - if (StringUtils.isEmpty(authenticationVO.getIdFront())) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ID_FRONT_CANNOT_EMPTY)); } if (StringUtils.isEmpty(authenticationVO.getIdBack())) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ID_BACK_CANNOT_EMPTY)); } + if (StringUtils.isEmpty(authenticationVO.getAddress())) { + return AjaxResult.error("详细地址不能为空!"); + } + // 查询是否已实名 + CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build()); + if (null != queryAuthenticationVO) { + return AjaxResult.error(FinanceMsgConstants.MEMBER_REAL_NAME); + } + // 真实姓名与注册的会员姓名不一致 + CuMember member = iCuMemberService.getMember(pkMember); + if (!member.getMemberName().equals(accountName)) { + return AjaxResult.error("真实姓名与会员姓名不一致"); + } - String message = iApiCodeService.checkCode(authenticationVO.getPhone(), verificationCode, null); + String message = iApiAliSmsService.checkCode(authenticationVO.getPhone(), verificationCode, null, member.getPkId()); if (null != message) { return AjaxResult.error(message); } + // 从身份证获取出生日期 + authenticationVO.setBirthDate(DateUtils.parseDateOne(IdcardUtil.getBirthByIdCard(authenticationVO.getIdCard()), DateUtils.YAMMER)); authenticationVO.setPkCountry(pkCountry); authenticationVO.setPkMember(pkMember); return toAjax(iCuMemberAuthenticationService.saveAuthentication(authenticationVO)); } - - /** - * 是否需要实名认证 - * - * @param businessModule 1:提现 2:转账 (来源枚举EBusinessModule) - * @return AjaxResult - */ - @GetMapping("/is-auth") - public AjaxResult isAuth(Integer businessModule) { - String flag = EYesNo.YES.getValue(); - Long pkMember = SecurityUtils.getUserId(); - Integer pkCountry = SecurityUtils.getPkCountry(); - //查询是否配置了实名认证白名单 - BdTradeWhiteConfig bdTradeWhiteConfig = iCuMemberBaseService.selectConfigWhite(pkMember, pkCountry, businessModule); - if (isStopStatus(businessModule, bdTradeWhiteConfig)) { - //查询配置实名认证 - BdTradeConfig bdTradeConfig = iCuMemberBaseService.selectConfigTrade(pkMember, pkCountry, businessModule, EVerificationModule.REAL_NAME); - //配置后才进行验证 - if (null != bdTradeConfig) { - //查询是否已实名认证 - CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build()); - flag = null == authenticationVO ? EYesNo.NO.getValue() : EYesNo.YES.getValue(); - } - } - return AjaxResult.success().put("flag", flag); - } - /** * 查询白名单的配置状态 * @@ -191,7 +199,6 @@ public class ApiCuMemberAuthenticationController extends BaseController { return businessModule.equals(EBusinessModule.TRANSFER_ACCOUNTS.getValue()) && bdTradeWhiteConfig.getTransferState().equals(EYesNo.NO.getIntValue()); } - /** * 查看详情 * @@ -205,69 +212,4 @@ public class ApiCuMemberAuthenticationController extends BaseController { return AjaxResult.success(authenticationVO); } - /** - * 协议处理校验实名 - * - * @return - */ - @GetMapping("/agreement-real-name") - public AjaxResult agreementRealName() { - Long pkMember = SecurityUtils.getUserId(); - Integer pkCountry = SecurityUtils.getPkCountry(); - // 查询实名认证信息 - CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build()); - if (null != authenticationVO) { - // 存在实名认证信息,则返回成功 - return AjaxResult.success("", EYesNo.YES.getIntValue()); - } - return AjaxResult.success("", EYesNo.YES.getIntValue()); - } - - - /** - * 是否显示续约 - * - * @return AjaxResult - */ - @GetMapping("/is-expire") - public AjaxResult isExpire() { - int flag = EYesNo.NO.getIntValue(); - Long pkMember = SecurityUtils.getUserId(); - - CuMemberExt member = iCuMemberService.getMemberById(pkMember); - Integer isRealName = member.getIsRealName(); - - //未实名 - if (isRealName.equals(flag)) { - return AjaxResult.success().put("flag", flag); - } - //到期日期 - LocalDate expireDate = member.getExpireDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - //到期三个月 - LocalDate beforeMonthDate = expireDate.minusMonths(3); - LocalDate localDate = LocalDate.now(); - if (localDate.equals(beforeMonthDate) || localDate.isAfter(beforeMonthDate)) { - flag = EYesNo.YES.getIntValue(); - } - return AjaxResult.success().put("flag", flag); - } - - /** - * 续约 - * - * @return AjaxResult - */ - @GetMapping("/renewal_contract") - public AjaxResult renewalContract() { - Long pkMember = SecurityUtils.getUserId(); - Integer pkCountry = SecurityUtils.getPkCountry(); - //查询是否已实名 - CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build()); - if (null == queryAuthenticationVO) { - return AjaxResult.error(FinanceMsgConstants.MEMBER_NOT_REAL_NAME); - } - return toAjax(iCuMemberAuthenticationService.memberRenewalContract(pkMember)); - } - - } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberBankController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberBankController.java index ff6509dd..059da3ae 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberBankController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberBankController.java @@ -7,7 +7,6 @@ import com.hzs.common.core.constant.msg.FinanceMsgConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.EBusinessModule; import com.hzs.common.core.enums.EYesNo; -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; @@ -20,7 +19,7 @@ import com.hzs.member.account.service.ICuMemberBankService; import com.hzs.member.account.service.ICuMemberBaseService; import com.hzs.member.account.service.ICuMemberWithdrawService; import com.hzs.member.account.vo.CuMemberBankVO; -import com.hzs.member.sms.service.IApiCodeService; +import com.hzs.member.sms.service.IApiAliSmsService; import com.hzs.third.bankcard.IBankCardServiceApi; import com.hzs.third.bankcard.dto.BankCardParam; import org.apache.dubbo.config.annotation.DubboReference; @@ -28,14 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; -import java.util.Date; import java.util.List; /** * 会员银行卡 前端控制器 - * - * @author hzs - * @since 2022-09-06 */ @RestController @RequestMapping("/api/bank") @@ -44,11 +39,11 @@ public class ApiCuMemberBankController extends BaseController { @Autowired private ICuMemberBankService cuMemberBankService; @Autowired - private IApiCodeService iApiCodeService; - @Autowired private ICuMemberBaseService iCuMemberBaseService; @Autowired private ICuMemberWithdrawService cuMemberWithdrawService; + @Autowired + private IApiAliSmsService iApiAliSmsService; @DubboReference IBankCardServiceApi bankCardServiceApi; @@ -91,7 +86,6 @@ public class ApiCuMemberBankController extends BaseController { return AjaxResult.success(cuMemberBankService.unbindBank(pkId, pkMember)); } - /** * 校验开户名 * @@ -119,7 +113,6 @@ public class ApiCuMemberBankController extends BaseController { .bankCard(StringUtils.deleteWhitespace(memberBankParam.getCardNumber())).build(); R result = bankCardServiceApi.verifyBankCard(bankCard); return result.isSuccess() ? AjaxResult.success() : AjaxResult.error(result.getMsg()); - } @@ -151,7 +144,7 @@ public class ApiCuMemberBankController extends BaseController { String cardNumber = cuMemberBankParam.getCardNumber(); cuMemberBankParam.setCardNumber(StringUtils.deleteWhitespace(cardNumber)); - String message = iApiCodeService.checkCode(cuMemberBankParam.getPhone(), verificationCode, null); + String message = iApiAliSmsService.checkCode(cuMemberBankParam.getPhone(), verificationCode, null, pkMember); if (null != message) { return AjaxResult.error(message); } @@ -161,7 +154,6 @@ public class ApiCuMemberBankController extends BaseController { return toAjax(cuMemberBankService.saveMemberBank(cuMemberBankParam)); } - @GetMapping("/list") public AjaxResult getBankCardList() { Long pkMember = SecurityUtils.getUserId(); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAuthenticationService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAuthenticationService.java index 8858c0ac..d955bd40 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAuthenticationService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAuthenticationService.java @@ -19,14 +19,6 @@ public interface ICuMemberAuthenticationService extends IService * 会员信息-银行卡信息 服务类 - *

- * - * @author hzs - * @since 2022-08-31 */ public interface ICuMemberBankService extends IService { /** @@ -36,8 +31,8 @@ public interface ICuMemberBankService extends IService { /** * 解绑银行卡 * - * @param pkId 银行卡ID - * @param pkMember 会员ID + * @param pkId 银行卡ID + * @param pkMember 会员ID * @return Boolean */ Boolean unbindBank(Long pkId, Long pkMember); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberTransferService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberTransferService.java index 971fa52a..844c3565 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberTransferService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberTransferService.java @@ -10,6 +10,7 @@ import com.hzs.member.account.vo.CuMemberTransferVO; * 会员转账表 服务类 */ public interface ICuMemberTransferService extends IService { + /** * 是否在血缘线上 * @@ -45,7 +46,6 @@ public interface ICuMemberTransferService extends IService { */ BdTransfer getBdTransfer(Integer pkCountry); - /** * 保存转账 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java index 0d6c1c47..4a11f5e4 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java @@ -195,6 +195,7 @@ public interface ICuMemberWithdrawService extends IService { /** * 提现驳回 + * * @param param */ void withdrawReject(CuMemberWithdrawRejectParam param); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAuthenticationServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAuthenticationServiceImpl.java index f92d2760..b7276c36 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAuthenticationServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAuthenticationServiceImpl.java @@ -5,11 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.enums.EServiceStatus; import com.hzs.common.core.enums.EYesNo; -import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.member.account.CuMemberAuthentication; import com.hzs.common.domain.member.base.CuMember; -import com.hzs.common.domain.member.ext.CuMemberExt; -import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.account.mapper.CuMemberAuthenticationMapper; import com.hzs.member.account.service.ICuMemberAuthenticationService; import com.hzs.member.account.vo.CuMemberAuthenticationVO; @@ -18,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.LocalDate; -import java.time.ZoneId; import java.util.Date; import java.util.List; @@ -52,22 +47,7 @@ public class CuMemberAuthenticationServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(CuMember::getIsRealName, EYesNo.YES.getIntValue()); updateWrapper.set(CuMember::getIdCard, authenticationVO.getIdCard()); - updateWrapper.set(CuMember::getMemberName, authenticationVO.getAccountName()); - updateWrapper.set(CuMember::getServiceAgreement, EServiceStatus.SIGNED.getValue()); - updateWrapper.set(CuMember::getModifiedTime, new Date()); - updateWrapper.set(CuMember::getPkModified, pkMember); - updateWrapper.eq(CuMember::getPkId, pkMember); - return iCuMemberService.update(updateWrapper); - } - - @Override - public Boolean memberRenewalContract(Long pkMember) { - CuMemberExt member = iCuMemberService.getMemberById(SecurityUtils.getUserId()); - //到期日期 - LocalDate expireDate = member.getExpireDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.set(CuMember::getServiceAgreement, EServiceStatus.SIGNED.getValue()); - updateWrapper.set(CuMember::getExpireDate, DateUtils.toDate(expireDate.plusYears(1).atStartOfDay())); + updateWrapper.set(CuMember::getBirthDate, authenticationVO.getBirthDate()); updateWrapper.set(CuMember::getModifiedTime, new Date()); updateWrapper.set(CuMember::getPkModified, pkMember); updateWrapper.eq(CuMember::getPkId, pkMember); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberBankServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberBankServiceImpl.java index b7ffdf00..029e8be0 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberBankServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberBankServiceImpl.java @@ -20,12 +20,7 @@ import java.util.Date; import java.util.List; /** - *

* 会员信息-银行卡信息 服务实现类 - *

- * - * @author hzs - * @since 2022-08-31 */ @Service public class CuMemberBankServiceImpl extends ServiceImpl implements ICuMemberBankService { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberTransferServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberTransferServiceImpl.java index b0c92c87..1ebbd5bd 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberTransferServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberTransferServiceImpl.java @@ -40,16 +40,16 @@ import java.util.*; public class CuMemberTransferServiceImpl extends ServiceImpl implements ICuMemberTransferService { @Autowired - private ICuMemberService cuMemberService; + private ICuMemberService iCuMemberService; @Autowired - private ICuMemberAccountService cuMemberAccountService; + private ICuMemberAccountService iCuMemberAccountService; @Autowired - private ICuMemberTradeService cuMemberTradeService; + private ICuMemberTradeService iCuMemberTradeService; @Autowired - private ICuMemberBaseService cuMemberBaseService; + private ICuMemberBaseService iCuMemberBaseService; @DubboReference - ITransferServiceApi transferServiceApi; + ITransferServiceApi iTransferServiceApi; @Override public Boolean isBloodLine(Long pkMember, Long toPkMember) { @@ -61,14 +61,14 @@ public class CuMemberTransferServiceImpl extends ServiceImpl cuMemberUp = cuMemberService.queryBloodKinshipOnUmbrella(pkMember); + List cuMemberUp = iCuMemberService.queryBloodKinshipOnUmbrella(pkMember); Optional upOptional = cuMemberUp.stream().filter(up -> toPkMember.equals(up.getPkId())).findFirst(); return upOptional.isPresent(); } @@ -76,7 +76,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl cuMemberDown = cuMemberService.queryBloodKinshipUnderUmbrella(pkMember); + List cuMemberDown = iCuMemberService.queryBloodKinshipUnderUmbrella(pkMember); Optional downOptional = cuMemberDown.stream().filter(down -> toPkMember.equals(down.getPkId())).findFirst(); return downOptional.isPresent(); } @@ -103,7 +103,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl(); memberAccountList.add(cuMemberAccount); idsMap = new HashMap<>(); @@ -111,7 +111,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl(); memberAccountList.add(toMemberAccount); idsMap = new HashMap<>(); @@ -130,13 +130,12 @@ public class CuMemberTransferServiceImpl extends ServiceImpl memberAccountList, Integer type, String businessCode, Map idsMap) { //转出方 if (type.equals(ETransferType.TRANSFER_OUT.getValue())) { - cuMemberBaseService.handleMemberTradeDetailAndBonus(memberAccountList, businessCode, idsMap, EConsumeType.TRANSFER.getValue()); + iCuMemberBaseService.handleMemberTradeDetailAndBonus(memberAccountList, businessCode, idsMap, EConsumeType.TRANSFER.getValue()); } else { - cuMemberBaseService.saveMemberTradeDetail(businessCode); + iCuMemberBaseService.saveMemberTradeDetail(businessCode); } } - /** * 更新交易流水和余额 * @@ -145,7 +144,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl cuMemberMonthAchieveExtList = iCuMemberMonthAchieveService.queryCuMemberMonthAchieveRecommend(parentAchieveVO); - cuMemberMonthAchieveExtList.forEach(cuMemberMonthAchieveExt -> { - String memberName = cuMemberMonthAchieveExt.getMemberName(); - if (memberName.length() > 2) { - cuMemberMonthAchieveExt.setMemberName(memberName.replaceFirst(memberName.substring(1, memberName.length() - 1), "*")); - } else { - cuMemberMonthAchieveExt.setMemberName(memberName.replaceFirst(memberName.substring(1), "*")); - } - }); - return getDataTable(cuMemberMonthAchieveExtList); - } - /** * 月度业绩 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/controller/vo/ParentAchieveVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/controller/vo/ParentAchieveVO.java index 0e1cd0fd..94733dbd 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/controller/vo/ParentAchieveVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/controller/vo/ParentAchieveVO.java @@ -10,12 +10,7 @@ import java.util.List; /** - *

* 直推业绩统计VO - *

- * - * @author zhangjing - * @since 2023-05-17 */ @Data public class ParentAchieveVO { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberMonthAchieveService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberMonthAchieveService.java index aeb7b8c7..9ddbe3af 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberMonthAchieveService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/ICuMemberMonthAchieveService.java @@ -2,22 +2,13 @@ package com.hzs.member.achieve.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.achieve.CuMemberMonthAchieve; -import com.hzs.common.domain.member.ext.CuMemberMonthAchieveExt; -import com.hzs.member.achieve.controller.vo.ParentAchieveVO; import com.hzs.member.achieve.controller.vo.RealPerformanceVo; -import java.util.List; - /** * 会员月数据 服务类 */ public interface ICuMemberMonthAchieveService extends IService { - /** - * 根据条件查询会员月业绩 - */ - List queryCuMemberMonthAchieveRecommend(ParentAchieveVO parentAchieveVO); - /** * 查询会员真实业绩 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberMonthAchieveServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberMonthAchieveServiceImpl.java index 9e35715d..a4ec7de8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberMonthAchieveServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberMonthAchieveServiceImpl.java @@ -1,73 +1,21 @@ package com.hzs.member.achieve.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.common.core.enums.HonorWallType; -import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.member.achieve.CuMemberMonthAchieve; -import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; -import com.hzs.common.domain.member.ext.CuMemberMonthAchieveExt; -import com.hzs.member.achieve.controller.vo.ParentAchieveVO; import com.hzs.member.achieve.controller.vo.RealPerformanceVo; import com.hzs.member.achieve.mapper.CuMemberMonthAchieveMapper; import com.hzs.member.achieve.service.ICuMemberMonthAchieveService; -import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; - /** * 会员月数据 服务实现类 */ @Service public class CuMemberMonthAchieveServiceImpl extends ServiceImpl implements ICuMemberMonthAchieveService { - @Autowired - private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; - - @Override - public List queryCuMemberMonthAchieveRecommend(ParentAchieveVO parentAchieveVO) { - packageParamPeriod(parentAchieveVO); - return baseMapper.queryCuMemberMonthAchieveRecommend(parentAchieveVO); - } - - private void packageParamPeriod(ParentAchieveVO parentAchieveVO) { - Date settleDate = DateUtils.currentDate(); - if (Objects.equals(HonorWallType.RECOMMEND_MONTH.getValue(), parentAchieveVO.getWallType()) || - Objects.equals(HonorWallType.ANTIFADING_MONTH.getValue(), parentAchieveVO.getWallType())) { - //1号取上月的 - // 月 - Date date = DateUtils.currentMonthFirstDate(settleDate); - if (DateUtils.compareDateEqual(settleDate, date)) { - // 取上月第一天 - date = DateUtils.beforeMonthFirstDate(settleDate); - } - String currentMonthDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date); - CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthDate); - parentAchieveVO.setStartPeriod(cuMemberSettlePeriod.getPkId()); - parentAchieveVO.setEndPeriod(cuMemberSettlePeriod.getPkId()); - } else { - // 季度 - // 上月期间,作为结束期间 - String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate); - CuMemberSettlePeriod beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate); - parentAchieveVO.setEndPeriod(beforePeriod.getPkId()); - if (Objects.equals(HonorWallType.RECOMMEND_QUARTER.getValue(), parentAchieveVO.getWallType()) || - Objects.equals(HonorWallType.ANTIFADING_QUARTER.getValue(), parentAchieveVO.getWallType())) { - // 3个月期间,作为开始期间 - String quarterFirstMonthDate = DateUtils.beforeMonthFirstDateStr(3, settleDate); - CuMemberSettlePeriod quarterPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(quarterFirstMonthDate); - parentAchieveVO.setStartPeriod(quarterPeriod.getPkId()); - } else { - String yearFirstMonthDate = DateUtils.beforeMonthFirstDateStr(12, settleDate); - CuMemberSettlePeriod yearPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yearFirstMonthDate); - parentAchieveVO.setStartPeriod(yearPeriod.getPkId()); - } - } - } - @Override public RealPerformanceVo queryCuMemberMonthAchieveInfo(Long pkMember, String achieveTable) { return baseMapper.queryCuMemberMonthAchieveInfo(pkMember, achieveTable); } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java index 87055001..1e0a80bc 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java @@ -2,8 +2,6 @@ package com.hzs.member.base.controller.api; import cn.hutool.core.collection.CollectionUtil; import com.hzs.common.core.annotation.RepeatSubmitSimple; -import com.hzs.common.core.constant.CountryConstants; -import com.hzs.common.core.constant.EnumsPrefixConstants; import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.constant.msg.ConfigMsgConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; @@ -19,7 +17,6 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberChangeLog; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.security.utils.SecurityUtils; -import com.hzs.common.service.ITransactionCommonService; import com.hzs.common.util.TransactionUtils; import com.hzs.member.base.param.ForgetPasswordParam; import com.hzs.member.base.param.MemberDataParam; @@ -27,9 +24,8 @@ import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.IMemberInfoService; import com.hzs.common.core.utils.UploadFileUtil; import com.hzs.member.base.vo.*; -import com.hzs.member.sms.service.IApiCodeService; +import com.hzs.member.sms.service.IApiAliSmsService; import com.hzs.system.base.ICurrencyServiceApi; -import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.config.IGradeServiceApi; import com.hzs.system.config.dto.GradeDTO; import lombok.extern.slf4j.Slf4j; @@ -39,7 +35,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; -import java.math.BigDecimal; import java.util.*; /** @@ -50,33 +45,15 @@ import java.util.*; @RestController public class ApiMemberController extends BaseController { - @Autowired - private ITransactionCommonService iTransactionCommonService; @Autowired private IMemberInfoService iMemberInfoService; @Autowired private ICuMemberService iCuMemberService; @Autowired - private IApiCodeService iApiCodeService; + private IApiAliSmsService iApiAliSmsService; @DubboReference - IGradeServiceApi gradeServiceApi; - @DubboReference - ICurrencyServiceApi currencyServiceApi; - -// /** -// * 获取登录会员信息 -// * -// * @return -// */ -// @GetMapping("/get-info") -// public AjaxResult getInfo() { -// MemberInfoVO memberInfo = iMemberInfoService.getMemberInfo(SecurityUtils.getUserId()); -// if (null == memberInfo) { -// return AjaxResult.error(); -// } -// return AjaxResult.success(memberInfo); -// } + IGradeServiceApi iGradeServiceApi; /** * 更新个人资料(昵称) @@ -261,7 +238,7 @@ public class ApiMemberController extends BaseController { Long memberId = cuMemberExt.getPkId(); // 校验短信验证码是否有效 - String checkSmsStr = iApiCodeService.checkRecoverCode(param.getPhone(), param.getCode()); + String checkSmsStr = iApiAliSmsService.checkRecoverCode(param.getPhone(), param.getCode(), cuMemberExt.getPkId()); if (null != checkSmsStr) { return AjaxResult.error(checkSmsStr); } @@ -306,7 +283,7 @@ public class ApiMemberController extends BaseController { Long memberId = cuMemberExt.getPkId(); // 校验短信验证码是否有效 - String checkSmsStr = iApiCodeService.checkPayPasswordCode(cuMemberExt.getPhone(), param.getCode()); + String checkSmsStr = iApiAliSmsService.checkPayPasswordCode(cuMemberExt.getPhone(), param.getCode(), cuMemberExt.getPkId()); if (null != checkSmsStr) { return AjaxResult.error(checkSmsStr); } @@ -363,11 +340,6 @@ public class ApiMemberController extends BaseController { public TableDataInfo parentList(String memberCode, String memberName, Date startCreateTime, Date endCreateTime, String memberInfo) { Long memberId = SecurityUtils.getUserId(); - // 查询等级 - Integer pkCountry = SecurityUtils.getPkCountry(); - R> grderDate = gradeServiceApi.findAll(); - List grderList = grderDate.getData(); - if (endCreateTime != null) { endCreateTime = DateUtils.getEndTime(endCreateTime); } @@ -376,27 +348,20 @@ public class ApiMemberController extends BaseController { List list = iCuMemberService.parentList(memberId, memberCode, memberName, startCreateTime, endCreateTime, memberInfo); if (CollectionUtil.isNotEmpty(list)) { - Map transactionMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE); - R currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry()); - BigDecimal inExchangeRate = currency.getData().getInExchangeRate(); - + R> gradeData = iGradeServiceApi.findAll(); + List gradeList = gradeData.getData(); for (ParentMemberVo cuMember : list) { cuMember.setMemberCode(cuMember.getMemberCode()); cuMember.setMemberName(cuMember.getMemberName()); - for (GradeDTO gradeDTO : grderList) { + for (GradeDTO gradeDTO : gradeList) { if (gradeDTO.getPkId().equals(cuMember.getPkRegisterGrade())) { - cuMember.setPkRegisterGradeStr(transactionMap.get(gradeDTO.getPkTransaction())); + cuMember.setPkRegisterGradeStr(gradeDTO.getGradeName()); } } - for (GradeDTO gradeDTO : grderList) { + for (GradeDTO gradeDTO : gradeList) { if (gradeDTO.getPkId().equals(cuMember.getPkSettleGrade())) { - cuMember.setPkSettleGradeStr(transactionMap.get(gradeDTO.getPkTransaction())); - } - } - if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) { - if (cuMember.getConsumeAchieve() != null) { - cuMember.setConsumeAchieve(cuMember.getConsumeAchieve().multiply(inExchangeRate)); + cuMember.setPkSettleGradeStr(gradeDTO.getGradeName()); } } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java index aebc1300..8afecaf7 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java @@ -3,16 +3,12 @@ package com.hzs.member.base.controller.manage; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.codec.Base64Encoder; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdcardUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.common.core.annotation.AccessPermissions; import com.hzs.common.core.annotation.ColumnAuthority; import com.hzs.common.core.annotation.Log; import com.hzs.common.core.constant.CountryConstants; import com.hzs.common.core.constant.EnumsPrefixConstants; -import com.hzs.common.core.constant.TableNameConstants; import com.hzs.common.core.constant.VertexConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.domain.R; @@ -23,9 +19,6 @@ 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.TableDataInfo; -import com.hzs.common.domain.member.account.CuMemberTransfer; -import com.hzs.common.domain.member.account.CuMemberWithdraw; -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.system.config.BdAwards; @@ -62,7 +55,6 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.util.*; -import java.util.regex.Pattern; import java.util.stream.Collectors; @RequestMapping("/manager/member") @@ -70,17 +62,7 @@ import java.util.stream.Collectors; public class CuMemberController extends BaseController { @Autowired - private ICuMemberWithdrawService memberWithdrawService; - @Autowired - private ICuMemberSettlePeriodService memberSettlePeriodService; - @Autowired - private ICuMemberTransferService memberTransferService; - @Autowired - private ICuMemberService cuMemberService; - @Autowired - private ICuMemberTeamService memberTeamService; - @Autowired - private ICuMemberTreeService memberTreeService; + private ICuMemberService iCuMemberService; @Autowired private ITransactionCommonService iTransactionCommonService; @Autowired @@ -95,15 +77,13 @@ public class CuMemberController extends BaseController { @DubboReference IGradeServiceApi iGradeServiceApi; @DubboReference - IAreaServiceApi iAreaServiceApi; - @DubboReference ICurrencyServiceApi iCurrencyServiceApi; @DubboReference IMenuColumnServiceApi iMenuColumnServiceApi; @Autowired - public void setCuMemberService(ICuMemberService cuMemberService) { - this.cuMemberService = cuMemberService; + public void setCuMemberService(ICuMemberService iCuMemberService) { + this.iCuMemberService = iCuMemberService; } @@ -167,17 +147,12 @@ public class CuMemberController extends BaseController { /** * 真实信息 - * - * @author: zhang jing - * @date: 2022/11/15 17:59 - * @param: [memberParam] - * @return: com.hzs.common.core.web.page.TableDataInfo **/ @Log(module = EOperationModule.MEMBER_INFORMATION, business = EOperationBusiness.MEMBER_INFO_REAL, method = EOperationMethod.SELECT) @PostMapping("/real-member") public TableDataInfo realMember(@RequestBody CuMemberVO memberParam) { memberParam.setPkCountry(SecurityUtils.getPkCountry()); - List cuMemberVOS = cuMemberService.realCuMemberByCondition(memberParam); + List cuMemberVOS = iCuMemberService.realCuMemberByCondition(memberParam); if (CollectionUtil.isNotEmpty(cuMemberVOS)) { for (CuMemberVO cvo : cuMemberVOS) { if (cvo.getSex() == ESex.MAN.getValue()) { @@ -189,18 +164,6 @@ public class CuMemberController extends BaseController { if (cvo.getCardType() == ECardType.CARD.getValue()) { cvo.setCardTypeVal(ECardType.CARD.getLabel()); } - if (cvo.getCardType() == ECardType.OFFICER.getValue()) { - cvo.setCardTypeVal(ECardType.OFFICER.getLabel()); - } - if (cvo.getCardType() == ECardType.STUDENT.getValue()) { - cvo.setCardTypeVal(ECardType.STUDENT.getLabel()); - } - if (cvo.getCardType() == ECardType.DRIVE.getValue()) { - cvo.setCardTypeVal(ECardType.DRIVE.getLabel()); - } - if (cvo.getCardType() == ECardType.PASSPORT.getValue()) { - cvo.setCardTypeVal(ECardType.PASSPORT.getLabel()); - } } } return getDataTable(cuMemberVOS); @@ -208,15 +171,10 @@ public class CuMemberController extends BaseController { /** * 根据会员编号查询会员信息 - * - * @author: zhang jing - * @date: 2022/11/9 18:25 - * @param: [pkId] - * @return: com.hzs.common.core.web.domain.AjaxResult **/ @GetMapping("/getOne/{memberCode}") public AjaxResult getOne(@PathVariable String memberCode) { - CuMember cuMember = cuMemberService.getMember(memberCode); + CuMember cuMember = iCuMemberService.getMember(memberCode); return AjaxResult.success(cuMember); } @@ -275,7 +233,7 @@ public class CuMemberController extends BaseController { * @param param */ private void handleMemberSelect(List resultList, MemberSelectParam param) { - List cuMemberExtList = cuMemberService.queryMemberSelect(param, SecurityUtils.getPkCountry()); + List cuMemberExtList = iCuMemberService.queryMemberSelect(param, SecurityUtils.getPkCountry()); if (CollectionUtil.isNotEmpty(cuMemberExtList)) { for (CuMemberExt cuMemberExt : cuMemberExtList) { MemberSelectVO memberSelectVO = BeanUtil.copyProperties(cuMemberExt, MemberSelectVO.class); @@ -305,41 +263,17 @@ public class CuMemberController extends BaseController { UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); memberRealInfoParam.setVertexList(userAuthorityDTO.getUserVertexList()); memberRealInfoParam.setTeamList(userAuthorityDTO.getUserTeamList()); - if (StringUtils.isNotEmpty(memberRealInfoParam.getBirthDate())) { - memberRealInfoParam.setBirthDate(memberRealInfoParam.getBirthDate().replace("-", "")); - } startPage(); - List resultList = cuMemberService.selectByMemberRealInfo(memberRealInfoParam); - + List resultList = iCuMemberService.selectByMemberRealInfo(memberRealInfoParam); if (CollectionUtil.isNotEmpty(resultList)) { - //数据库内容翻译 - Map transactionMap1 = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, - EnumsPrefixConstants.KEY_AWARD); - - R> awardsListDate = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry()); // 奖衔 + R> awardsListDate = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry()); List awardsList = awardsListDate.getData(); - R> gradeListDate = iGradeServiceApi.queryGradeList(SecurityUtils.getPkCountry()); // 等级 + R> gradeListDate = iGradeServiceApi.queryGradeList(SecurityUtils.getPkCountry()); List gradeList = gradeListDate.getData(); - Map areaDate = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); for (MemberRealInfoVO cuMemberExt : resultList) { - cuMemberExt.setRegisterGradeVal(transactionMap1.get(cuMemberExt.getPkRegisterGrade())); - cuMemberExt.setSettleGradeVal(transactionMap1.get(cuMemberExt.getPkSettleGrade())); - cuMemberExt.setAwardsVal(transactionMap1.get(cuMemberExt.getPkAwards())); - if (cuMemberExt.getPkProvince() != null) { - // 省 - cuMemberExt.setProvinceName(areaDate.get(cuMemberExt.getPkProvince())); - } - if (cuMemberExt.getPkCity() != null) { - // 市 - cuMemberExt.setCityName(areaDate.get(cuMemberExt.getPkCity())); - } - if (cuMemberExt.getPkCounty() != null) { - // 区县 - cuMemberExt.setCountyName(areaDate.get(cuMemberExt.getPkCounty())); - } // 注册等级 if (cuMemberExt.getPkRegisterGrade() != null) { for (GradeDTO grade : gradeList) { @@ -364,215 +298,15 @@ public class CuMemberController extends BaseController { } } } - // 生日 - if (StringUtils.isNotBlank(cuMemberExt.getIdCard()) && (checkIdCard(cuMemberExt.getIdCard()))) { - cuMemberExt.setBirthDate(IdcardUtil.getBirthDate(cuMemberExt.getIdCard())); - } - if (cuMemberExt.getIdType() != null) { - cuMemberExt.setCardTypeVal(EIdType.getLabel(cuMemberExt.getIdType())); - } + cuMemberExt.setCardTypeVal(EIdType.getLabelByValue(cuMemberExt.getIdType())); + cuMemberExt.setSexVal(ESex.getLabelByValue(cuMemberExt.getSex())); } } - return getDataTable(resultList); } - - /** - * 会员团队信息 - * - * @return - */ - @AccessPermissions("TeamInfo") - @GetMapping("/member-team-info") - public TableDataInfo memberTeamInfo(MemberTeamInfoParam memberTeamInfoParam) { - String time; - String settleTableName; - CuMemberSettlePeriod csPeriod; - List memberTeamList = new ArrayList<>(); - R> awardsDto = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry()); - if (memberTeamInfoParam.getQueryDate() == null) { - // 昨日 - time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtil.offsetDay(new Date(), -1)); - csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time); - settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId(); - } else { - String queryDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate()); - String currentDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentDate()); - time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate()); - csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time); - if (queryDate.equals(currentDate)) { - settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId(); - } else { - // 历史 - settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId(); - } - } - // 如果表格不存在则返回空数据 - Integer tableNumber = memberTreeService.queryExistOracleTable(settleTableName); - if (tableNumber == null || tableNumber == 0) { - return getDataTable(new ArrayList<>()); - } - memberTeamInfoParam.setSettleTableName(settleTableName); - memberTeamInfoParam.setPeriod(csPeriod.getPkId()); - startPage(); - if (StringUtils.isNotBlank(memberTeamInfoParam.getMemberCode())) { - if (memberTeamInfoParam.getRelaType() != null && memberTeamInfoParam.getRelaType().equals(ERealType.XY.getIntValue())) { - // 血缘 - memberTeamList = memberTeamService.queryMemberTeamInfoList(memberTeamInfoParam); - } else { - // 安置 - memberTeamList = memberTeamService.queryMemberTeamInfoPlaceParentList(memberTeamInfoParam); - } - } - for (MemberTeamVo memberTeamVo : memberTeamList) { - // 查询安置层级 - if (memberTeamVo.getPlaceDept() != null) { - memberTeamVo.setPlaceDept(memberTeamVo.getPlaceDept()); - memberTeamVo.setPlaceDeptStr(EPlaceDept.getEPlaceDept(memberTeamVo.getPlaceDept())); - } - if (memberTeamVo.getPkAwards() != null) { - for (BdAwards date : awardsDto.getData()) { - if (memberTeamVo.getPkAwards().equals(date.getPkId())) { - memberTeamVo.setPkAwardsStr(date.getAwardsName()); - } - } - } - if (memberTeamVo.getPkPlaceParent() != null) { - CuMember member = cuMemberService.getMember(memberTeamVo.getPkPlaceParent()); - if (member != null) { - memberTeamVo.setPlaceParentCode(member.getMemberCode()); - } - } - memberTeamVo.setResettleLevel(memberTeamVo.getLevel()); - //TODO 血缘代数 - memberTeamVo.setConsanguinityAlgebra("第" + memberTeamVo.getLevel() + "代"); - //TODO 奖金大盘占比 - memberTeamVo.setBonusLargeMarketProportion(BigDecimal.ZERO); - // 直推人数 - Long directPushPeopleNumber = memberTreeService.queryCuMemberTreeParentTableCount(settleTableName, memberTeamVo.getMemberId()); - memberTeamVo.setDirectPushPeopleNumber(directPushPeopleNumber); - // 转账次数 - LambdaQueryWrapper qew = new LambdaQueryWrapper<>(); - qew.eq(CuMemberTransfer::getPkMember, memberTeamVo.getMemberId()); - int memberTransferCount = memberTransferService.count(qew); - memberTeamVo.setMemberTransferCount(memberTransferCount); - - // 提现次数 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(CuMemberWithdraw::getPkMember, memberTeamVo.getMemberId()); - int memberWithdrawCount = memberWithdrawService.count(queryWrapper); - memberTeamVo.setWithdrawalNumber(memberWithdrawCount); - // 最后一次登录时间 - if (memberTeamVo.getLastLoginTime() != null) { - // 计算当前时间和 最后一次登陆时间间隔 - memberTeamVo.setLastLoginTimeIntervalDays(DateUtil.betweenDay(DateUtils.currentDate(), memberTeamVo.getLastLoginTime(), true)); - } - } - return getDataTable(memberTeamList); - } - - /** - * 会员团队信息导出 - */ - @PostMapping("/member-team-info-export") - public void memberTeamInfoExport(MemberTeamInfoParam memberTeamInfoParam, HttpServletResponse response) { - String time; - String settleTableName; - CuMemberSettlePeriod csPeriod; - List memberTeamList = new ArrayList<>(); - R> awardsDto = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry()); - if (memberTeamInfoParam.getQueryDate() == null) { - // 昨日 - time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtil.offsetDay(new Date(), -1)); - csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time); - settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId(); - } else { - String queryDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate()); - String currentDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentDate()); - time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate()); - csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time); - if (queryDate.equals(currentDate)) { - settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId(); - } else { - // 历史 - settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId(); - } - } - // 如果表格不存在则返回空数据 - Integer tableNumber = memberTreeService.queryExistOracleTable(settleTableName); - if (tableNumber == null || tableNumber == 0) { - ExcelUtil util = new ExcelUtil<>(MemberTeamVo.class); - util.exportExcel(response, memberTeamList, "会员团队信息"); - } - memberTeamInfoParam.setSettleTableName(settleTableName); - memberTeamInfoParam.setPeriod(csPeriod.getPkId()); - startPage(); - if (StringUtils.isNotBlank(memberTeamInfoParam.getMemberCode())) { - if (memberTeamInfoParam.getRelaType() != null && memberTeamInfoParam.getRelaType().equals(ERealType.XY.getIntValue())) { - // 血缘 - memberTeamList = memberTeamService.queryMemberTeamInfoList(memberTeamInfoParam); - } else { - // 安置 - memberTeamList = memberTeamService.queryMemberTeamInfoPlaceParentList(memberTeamInfoParam); - } - } - for (MemberTeamVo memberTeamVo : memberTeamList) { - // 查询安置层级 - if (memberTeamVo.getPlaceDept() != null) { - memberTeamVo.setPlaceDept(memberTeamVo.getPlaceDept()); - memberTeamVo.setPlaceDeptStr(EPlaceDept.getEPlaceDept(memberTeamVo.getPlaceDept())); - } - if (memberTeamVo.getPkAwards() != null) { - for (BdAwards date : awardsDto.getData()) { - if (memberTeamVo.getPkAwards().equals(date.getPkId())) { - memberTeamVo.setPkAwardsStr(date.getAwardsName()); - } - } - } - if (memberTeamVo.getPkPlaceParent() != null) { - CuMember member = cuMemberService.getMember(memberTeamVo.getPkPlaceParent()); - if (member != null) { - memberTeamVo.setPlaceParentCode(member.getMemberCode()); - } - } - memberTeamVo.setResettleLevel(memberTeamVo.getLevel()); - //血缘代数 - memberTeamVo.setConsanguinityAlgebra("第" + memberTeamVo.getLevel() + "代"); - //奖金大盘占比 - memberTeamVo.setBonusLargeMarketProportion(BigDecimal.ZERO); - // 直推人数 - Long directPushPeopleNumber = memberTreeService.queryCuMemberTreeParentTableCount(settleTableName, memberTeamVo.getMemberId()); - memberTeamVo.setDirectPushPeopleNumber(directPushPeopleNumber); - // 转账次数 - LambdaQueryWrapper qew = new LambdaQueryWrapper<>(); - qew.eq(CuMemberTransfer::getPkMember, memberTeamVo.getMemberId()); - int memberTransferCount = memberTransferService.count(qew); - memberTeamVo.setMemberTransferCount(memberTransferCount); - - // 提现次数 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(CuMemberWithdraw::getPkMember, memberTeamVo.getMemberId()); - int memberWithdrawCount = memberWithdrawService.count(queryWrapper); - memberTeamVo.setWithdrawalNumber(memberWithdrawCount); - // 最后一次登录时间 - if (memberTeamVo.getLastLoginTime() != null) { - // 计算当前时间和 最后一次登陆时间间隔 - memberTeamVo.setLastLoginTimeIntervalDays(DateUtil.betweenDay(DateUtils.currentDate(), memberTeamVo.getLastLoginTime(), true)); - } - } - ExcelUtil util = new ExcelUtil<>(MemberTeamVo.class, iMenuColumnServiceApi.queryMenuColumn("TeamInfo", SecurityUtils.getUserId()).getData()); - util.exportExcel(response, memberTeamList, "会员团队信息"); - } - - /** * 导出真实信息 - * - * @author: zhang jing - * @date: 2023/7/15 17:02 - * @param: [response, memberRealInfoParam] - * @return: void **/ @Log(module = EOperationModule.MEMBER_INFORMATION, business = EOperationBusiness.MEMBER_INFORMATION, method = EOperationMethod.EXPORT) @PostMapping("/real-info-export") @@ -584,50 +318,51 @@ public class CuMemberController extends BaseController { UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); memberRealInfoParam.setVertexList(userAuthorityDTO.getUserVertexList()); memberRealInfoParam.setTeamList(userAuthorityDTO.getUserTeamList()); - List resultList = cuMemberService.selectByMemberRealInfo(memberRealInfoParam); + List resultList = iCuMemberService.selectByMemberRealInfo(memberRealInfoParam); if (CollectionUtil.isNotEmpty(resultList)) { - // 获取需要翻译的枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(ECardType.values(), - ESex.values() - ); - //数据库内容翻译 - Map transactionMap1 = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, - EnumsPrefixConstants.KEY_AWARD); + // 奖衔 + R> awardsListDate = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry()); + List awardsList = awardsListDate.getData(); + // 等级 + R> gradeListDate = iGradeServiceApi.queryGradeList(SecurityUtils.getPkCountry()); + List gradeList = gradeListDate.getData(); - Map areaDate = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData(); for (MemberRealInfoVO cuMemberExt : resultList) { - cuMemberExt.setRegisterGradeVal(transactionMap1.get(cuMemberExt.getPkRegisterGrade())); - cuMemberExt.setSettleGradeVal(transactionMap1.get(cuMemberExt.getPkSettleGrade())); - cuMemberExt.setAwardsVal(transactionMap1.get(cuMemberExt.getPkAwards())); - cuMemberExt.setPkMaxAwardsVal(transactionMap1.get(cuMemberExt.getPkMaxAwards())); - if (cuMemberExt.getPkProvince() != null) { - // 省 - cuMemberExt.setProvinceName(areaDate.get(cuMemberExt.getPkProvince())); + // 注册等级 + if (cuMemberExt.getPkRegisterGrade() != null) { + for (GradeDTO grade : gradeList) { + if (grade.getPkId().equals(cuMemberExt.getPkRegisterGrade())) { + cuMemberExt.setRegisterGradeVal(grade.getGradeName()); + } + } } - if (cuMemberExt.getPkCity() != null) { - // 市 - cuMemberExt.setCityName(areaDate.get(cuMemberExt.getPkCity())); + // 结算等级 + if (cuMemberExt.getPkSettleGrade() != null) { + for (GradeDTO grade : gradeList) { + if (grade.getPkId().equals(cuMemberExt.getPkSettleGrade())) { + cuMemberExt.setSettleGradeVal(grade.getGradeName()); + } + } } - if (cuMemberExt.getPkCounty() != null) { - // 区县 - cuMemberExt.setCountyName(areaDate.get(cuMemberExt.getPkCounty())); + // 真实奖衔 + if (cuMemberExt.getPkAwards() != null) { + for (BdAwards awards : awardsList) { + if (awards.getPkId().equals(cuMemberExt.getPkAwards())) { + cuMemberExt.setAwardsVal(awards.getAwardsName()); + } + } } - // 证件类型 - if (cuMemberExt.getCardType() != null) { - cuMemberExt.setCardTypeVal(transactionMap.get(EnumsPrefixConstants.CARD_TYPE + cuMemberExt.getCardType())); - } - // 性别 - if (cuMemberExt.getSex() != null) { - cuMemberExt.setSexVal(transactionMap.get(EnumsPrefixConstants.SEX + cuMemberExt.getSex())); - } - // 生日 - if (StringUtils.isNotBlank(cuMemberExt.getIdCard()) && (checkIdCard(cuMemberExt.getIdCard()))) { - cuMemberExt.setBirthDate(IdcardUtil.getBirthDate(cuMemberExt.getIdCard())); - } - if (cuMemberExt.getIdType() != null) { - cuMemberExt.setCardTypeVal(EIdType.getLabel(cuMemberExt.getIdType())); + // 真实奖衔 + if (cuMemberExt.getPkMaxAwards() != null) { + for (BdAwards awards : awardsList) { + if (awards.getPkId().equals(cuMemberExt.getPkMaxAwards())) { + cuMemberExt.setAwardsVal(awards.getAwardsName()); + } + } } + cuMemberExt.setCardTypeVal(EIdType.getLabelByValue(cuMemberExt.getIdType())); + cuMemberExt.setSexVal(ESex.getLabelByValue(cuMemberExt.getSex())); } } ExcelUtil util = new ExcelUtil<>(MemberRealInfoVO.class, iMenuColumnServiceApi.queryMenuColumn("RealInfo", SecurityUtils.getUserId()).getData()); @@ -649,21 +384,6 @@ public class CuMemberController extends BaseController { util.exportExcel(response, list, "会员编号"); } - - /** - * 校验身份证格式 - * - * @author: zhang jing - * @date: 2023/10/17 14:10 - * @param: [idCard] - * @return: boolean - **/ - public boolean checkIdCard(String idCard) { - // 正则表达式校验身份证号码格式 - String reg = "\\d{17}[\\d|x|X]"; - return Pattern.matches(reg, idCard); - } - /** * 查询顶点会员 * @@ -672,7 +392,7 @@ public class CuMemberController extends BaseController { @GetMapping("/query-top-member") public AjaxResult queryTopMember() { List resultList = new ArrayList<>(); - List list = cuMemberService.queryPlaceMemberList(VertexConstants.GJ30720200CODE, SecurityUtils.getPkCountry()); + List list = iCuMemberService.queryPlaceMemberList(VertexConstants.GJ30720200CODE, SecurityUtils.getPkCountry()); if (CollectionUtil.isNotEmpty(list)) { resultList = BeanUtil.copyToList(list, TopMemberVO.class); } @@ -700,7 +420,7 @@ public class CuMemberController extends BaseController { BigDecimal chinaInExchangeRate = chinaCurrency.getData().getInExchangeRate(); startPage(); memberConsumptionStatParam.setPkCountry(SecurityUtils.getPkCountry()); - List memberConsumptionStatVoList = cuMemberService.getMemberConsumptionStat(memberConsumptionStatParam); + List memberConsumptionStatVoList = iCuMemberService.getMemberConsumptionStat(memberConsumptionStatParam); for (MemberConsumptionStatVo memberConsumptionStatVo : memberConsumptionStatVoList) { memberConsumptionStatVo.setOrderAchieve(memberConsumptionStatVo.getOrderAchieve().multiply(chinaInExchangeRate).setScale(2, BigDecimal.ROUND_HALF_UP)); } @@ -728,7 +448,7 @@ public class CuMemberController extends BaseController { R chinaCurrency = iCurrencyServiceApi.getCurrency(CountryConstants.CHINA_COUNTRY); BigDecimal chinaInExchangeRate = chinaCurrency.getData().getInExchangeRate(); memberConsumptionStatParam.setPkCountry(SecurityUtils.getPkCountry()); - List memberConsumptionStatVoList = cuMemberService.getMemberConsumptionStat(memberConsumptionStatParam); + List memberConsumptionStatVoList = iCuMemberService.getMemberConsumptionStat(memberConsumptionStatParam); for (MemberConsumptionStatVo memberConsumptionStatVo : memberConsumptionStatVoList) { memberConsumptionStatVo.setOrderAchieve(memberConsumptionStatVo.getOrderAchieve().multiply(chinaInExchangeRate).setScale(2, BigDecimal.ROUND_HALF_UP)); } @@ -743,7 +463,7 @@ public class CuMemberController extends BaseController { @GetMapping("/member_awards_query") public TableDataInfo memberAwardsQuery(MemberAwardsQueryParam param) { startPage(); - List memberAwardsList = cuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry()); + List memberAwardsList = iCuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry()); if (CollectionUtil.isNotEmpty(memberAwardsList)) { // 中国汇率 CurrencyDTO currency = iCurrencyServiceApi.getCurrency(CountryConstants.CHINA_COUNTRY).getData(); @@ -767,7 +487,7 @@ public class CuMemberController extends BaseController { */ @PostMapping("/member_awards_query_export") public void memberAwardsQueryExport(MemberAwardsQueryParam param, HttpServletResponse response) { - List memberAwardsList = cuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry()); + List memberAwardsList = iCuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry()); if (CollectionUtil.isNotEmpty(memberAwardsList)) { // 中国汇率 CurrencyDTO currency = iCurrencyServiceApi.getCurrency(CountryConstants.CHINA_COUNTRY).getData(); @@ -848,7 +568,7 @@ public class CuMemberController extends BaseController { memberParam.setTeamList(userAuthorityDTO.getUserTeamList()); startPage(); - List cuMemberVOList = cuMemberService.retailMemberList(memberParam); + List cuMemberVOList = iCuMemberService.retailMemberList(memberParam); if (CollectionUtil.isNotEmpty(cuMemberVOList)) { // 获取需要翻译的枚举翻译 @@ -963,7 +683,7 @@ public class CuMemberController extends BaseController { memberParam.setVertexList(userAuthorityDTO.getUserVertexList()); memberParam.setTeamList(userAuthorityDTO.getUserTeamList()); - List cuMemberVOList = cuMemberService.retailMemberList(memberParam); + List cuMemberVOList = iCuMemberService.retailMemberList(memberParam); if (CollectionUtil.isNotEmpty(cuMemberVOList)) { // 获取需要翻译的枚举翻译 @@ -1035,14 +755,13 @@ public class CuMemberController extends BaseController { */ @GetMapping("/copy-pwd") public AjaxResult copyPwd(@RequestParam Long pkId) { - CuMember cuMember = cuMemberService.getOne(Wrappers.lambdaQuery() + CuMember cuMember = iCuMemberService.getOne(Wrappers.lambdaQuery() .eq(CuMember::getPkId, pkId) ); String tmpPwd = DateUtils.parseDateToFormat(DateUtils.MM_DD, new Date()) + cuMember.getLoginPassword(); return AjaxResult.success("", Base64Encoder.encode(tmpPwd.getBytes(StandardCharsets.UTF_8))); } - /** * 查询会员信息 * @@ -1054,7 +773,7 @@ public class CuMemberController extends BaseController { if (StringUtils.isEmpty(param.getMemberCode())) { return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_NOT_EXITS)); } - CuMember cuMember = cuMemberService.getMember(param.getMemberCode()); + CuMember cuMember = iCuMemberService.getMember(param.getMemberCode()); if (cuMember == null) { return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_NOT_EXITS)); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberTeamMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberTeamMapper.java index f4bf82c7..1cf7266e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberTeamMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberTeamMapper.java @@ -3,9 +3,6 @@ package com.hzs.member.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.base.CuMemberTeam; import com.hzs.common.domain.member.ext.CuMemberTeamExt; -import com.hzs.common.domain.vertex.BdVertex; -import com.hzs.member.base.param.MemberTeamInfoParam; -import com.hzs.member.base.vo.MemberTeamVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,22 +14,6 @@ public interface CuMemberTeamMapper extends BaseMapper { List queryCuMemberTeam(CuMemberTeamExt cuMemberTeamExt); - /** - * 查询会员团队信息 - * - * @param memberTeamInfoParam - * @return - */ - List queryMemberTeamInfoList(MemberTeamInfoParam memberTeamInfoParam); - - /** - * 查询会员安置团队信息 - * - * @param memberTeamInfoParam - * @return - */ - List queryMemberTeamInfoPlaceParentList(MemberTeamInfoParam memberTeamInfoParam); - /** * 更新团队为空 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberRealInfoParam.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberRealInfoParam.java index 95d0efa0..51f111d2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberRealInfoParam.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberRealInfoParam.java @@ -1,26 +1,9 @@ -package com.hzs.member.base.param;/** - * @Description: - * @Author: yuhui - * @Time: 2023/4/26 10:08 - * @Classname: MemberRealInfo - * @PackageName: com.hzs.member.base.param - */ +package com.hzs.member.base.param; -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import java.util.Date; import java.util.List; -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.param - *@Author: yh - *@CreateTime: 2023-04-26 10:08 - *@Description: TODO - *@Version: 1.0 - */ @Data public class MemberRealInfoParam { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberTeamInfoParam.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberTeamInfoParam.java index 58de2209..d1dac6a9 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberTeamInfoParam.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/param/MemberTeamInfoParam.java @@ -1,24 +1,10 @@ -package com.hzs.member.base.param;/** - * @Description: - * @Author: yuhui - * @Time: 2023/5/29 14:53 - * @Classname: MemberTeamInfoParam - * @PackageName: com.hzs.member.base.param - */ +package com.hzs.member.base.param; import lombok.Data; import java.math.BigDecimal; import java.util.Date; -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.param - *@Author: yh - *@CreateTime: 2023-05-29 14:53 - *@Description: TODO - *@Version: 1.0 - */ @Data public class MemberTeamInfoParam { @@ -40,7 +26,7 @@ public class MemberTeamInfoParam { /** * 会员编号 */ - private String memberCode ; + private String memberCode; /** * 真实奖衔 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberTeamService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberTeamService.java index 5964e3ff..c3e395b7 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberTeamService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberTeamService.java @@ -3,8 +3,6 @@ package com.hzs.member.base.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.base.CuMemberTeam; import com.hzs.common.domain.member.ext.CuMemberTeamExt; -import com.hzs.member.base.param.MemberTeamInfoParam; -import com.hzs.member.base.vo.MemberTeamVo; import java.util.List; @@ -41,22 +39,6 @@ public interface ICuMemberTeamService extends IService { **/ void updateCuMemberTeamByVertex(Long pkTeamCode); - /** - * 查询会员团队信息 - * - * @param memberTeamInfoParam - * @return - */ - List queryMemberTeamInfoList(MemberTeamInfoParam memberTeamInfoParam); - - /** - * 查询会员安置信息团队 - * - * @param memberTeamInfoParam - * @return - */ - List queryMemberTeamInfoPlaceParentList(MemberTeamInfoParam memberTeamInfoParam); - /** * 查询刷新团队数据 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index 4a519ae5..8e5aa9c8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -2361,13 +2361,14 @@ public class CuMemberServiceImpl extends ServiceImpl i @Override public boolean updateMemberNameAndPhone(Long pkMember, String memberName, String phone, Long pkModified) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.set(CuMember::getMemberName, memberName); - updateWrapper.set(CuMember::getPhone, phone); - updateWrapper.set(CuMember::getPkModified, pkModified); - updateWrapper.set(CuMember::getModifiedTime, new Date()); - updateWrapper.eq(CuMember::getPkId, pkMember); - return update(updateWrapper); + CuMember cuMember = new CuMember(); + cuMember.setPkId(pkMember); + cuMember.setMemberName(memberName); + cuMember.setPhone(phone); + cuMember.setBirthDate(null); + cuMember.setPkModified(pkModified); + cuMember.setModifiedTime(new Date()); + return updateById(cuMember); } @Override diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberTeamServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberTeamServiceImpl.java index 332ce383..b45e29ac 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberTeamServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberTeamServiceImpl.java @@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.domain.member.base.CuMemberTeam; import com.hzs.common.domain.member.ext.CuMemberTeamExt; import com.hzs.member.base.mapper.CuMemberTeamMapper; -import com.hzs.member.base.param.MemberTeamInfoParam; import com.hzs.member.base.service.ICuMemberTeamService; -import com.hzs.member.base.vo.MemberTeamVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -61,16 +59,6 @@ public class CuMemberTeamServiceImpl extends ServiceImpl queryMemberTeamInfoList(MemberTeamInfoParam memberTeamInfoParam) { - return baseMapper.queryMemberTeamInfoList(memberTeamInfoParam); - } - - @Override - public List queryMemberTeamInfoPlaceParentList(MemberTeamInfoParam memberTeamInfoParam) { - return baseMapper.queryMemberTeamInfoPlaceParentList(memberTeamInfoParam); - } - @Override public void flushAllTeam(Integer pkCountry) { List list = this.list(Wrappers.lambdaQuery() diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AccountPointOutVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AccountPointOutVO.java deleted file mode 100644 index c9adcafc..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AccountPointOutVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hzs.member.base.vo; - -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.constant.EnumsPrefixConstants; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * - * 账户状态翻译 - * @Description: - * @Author: zhangjing - * @Time: 2023/2/4 14:56 - * @Classname: AccountPointOutVO - * @Package_name: com.hzs.member.base.vo - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class AccountPointOutVO implements Serializable { - /** - * 账户状态 - */ - @Transaction(transactionKey = EnumsPrefixConstants.ACCOUNT_STATUS) - private Integer accountState; - - private String accountStateVal; - -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AgreementExpireVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AgreementExpireVO.java deleted file mode 100644 index c572d65f..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/AgreementExpireVO.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hzs.member.base.vo; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @Description: 服务有效期返回VO - * @Author: jiang chao - * @Time: 2024/1/15 14:08 - * @Classname: AgreementExpireVO - * @PackageName: com.hzs.member.base.vo - */ -@NoArgsConstructor -@AllArgsConstructor -@Builder -@Data -public class AgreementExpireVO { - - /** - * 提示标记(0=弹窗提示,1=不弹窗提示) - */ - private Integer promptFlag; - - /** - * 提示信息 - */ - private String promptMsg; - - /** - * 跳转页面(1=实名认证,2=续约专区) - */ - private Integer jumpPage; - -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuHonorWallVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuHonorWallVo.java deleted file mode 100644 index d5cde18f..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuHonorWallVo.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.hzs.member.base.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2023/6/8 11:47 - * @Classname: CuHonorWallVo - * @PackageName: com.hzs.member.base.vo - */ - -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; - -import java.util.Date; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.vo - *@Author: yh - *@CreateTime: 2023-06-08 11:47 - *@Description: TODO - *@Version: 1.0 - */ -@Data -public class CuHonorWallVo { - - /** - * 用户ID - */ - - private Long pkId; - - /** - * 类型 1 等级 2 奖衔 3 时长 4 推荐月 5 推荐季度 6 推荐年 7 抗衰月 8 抗衰季度 9 抗衰年 - */ - private Integer type; - - /** - * 类型 1 等级 2 奖衔 3 时长 4 推荐月 5 推荐季度 6 推荐年 7 抗衰月 8 抗衰季度 9 抗衰年 - */ - private String typeStr; - - private String name; - /** - * 类型属性值 - */ - private Integer value; - - /** - * 类型属性值 - */ - private String valueStr; - - /** - * 展示图片 - */ - - private String img; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date creationTime; - - private String title; -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuMemberAchieveLogParentVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuMemberAchieveLogParentVO.java deleted file mode 100644 index cb098aba..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/CuMemberAchieveLogParentVO.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hzs.member.base.vo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.hzs.common.core.annotation.Excel; -import com.hzs.common.core.annotation.Transaction; -import com.hzs.common.core.constant.EnumsPrefixConstants; -import com.hzs.common.core.web.domain.BaseApprovalEntity; -import com.hzs.member.account.dto.MemberAmountDTO; -import lombok.Data; - -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; -import java.util.Set; - -/** - *

- * 注水业绩记录表VO - *

- * - * @author hzs - * @since 2022-08-22 - */ -@Data -public class CuMemberAchieveLogParentVO extends BaseApprovalEntity { - - private static final long serialVersionUID = 1L; - /** - * 注水方式 EInfusingWaterType 1 增加 2减少 3 最终 - */ - private Integer infusingWaterType; - private BigDecimal aSumrealModifyPv; - private BigDecimal bSumrealModifyPv; - /** - * 注水备注 - */ - private String remarks; - - /** - * 业务单号 - */ - private String businessNo; - /** - * 审批业务类型 来源于枚举 EApprovalBusiness - */ - private Integer editType; - - /** - * 审核状态 2 待审核 4 已驳回 5 已完成(审核成功) 枚举 : EApproveStatus - */ - private Integer approveStatus; - - - /** - * 流程类型(1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费) - */ - private Integer processType; - /** - * 扣款币种类型 - */ - private Integer pkAccount; - /** - * 扣款币种类型 - */ - @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC) - private Integer pkAccountKey; - /** - * 扣款币种类型 - */ - private String pkAccountKeyVal; - /** - * 会员手续费 - */ - List memberAmountDTOList; - /** - * 错误信息 - */ - private String errorMasg; - /** - * 情况说明 - */ - private String remark; - - /** - * 业务涨及会员ID列表 --提交审核必传 - */ - private Set pkMemberList; - /** - * 期间 - */ - private Integer period; - /** - * 注水业绩记录 - */ - private List cmalvList; - /** - * 国家 - */ - private Integer pkCountry; - - - -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/DirectPushNewVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/DirectPushNewVo.java deleted file mode 100644 index f5b8182e..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/DirectPushNewVo.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.hzs.member.base.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2023/8/25 15:48 - * @Classname: DirectPushNewVo - * @PackageName: com.hzs.member.base.vo - */ - -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; - -import java.util.Date; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.vo - *@Author: yh - *@CreateTime: 2023-08-25 15:48 - *@Description: TODO - *@Version: 1.0 - */ -@Data -public class DirectPushNewVo { - - - /** - * 国旗 - */ - private String nationalFlag1; - - /** - * 国家名称 - */ - private String shortName; - - /** - * 会员编号 - */ - private String memberCode; - - /** - * 会员名称 - */ - private String memberName; - - /** - * 联系方式 - */ - private String phone; - /** - * 真实奖衔 - */ - private String awardsVal; - /** - * 隶属体系 - */ - private String vertexVal; - /** - * 隶属团队 - */ - private String teamCode; - /** - * 新增金额 - */ - private String consumeMoney; - - /** - * 新增业绩 - */ - private String consumeAchieve; - - /** - * 支付时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date payTime; -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberChargingVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberChargingVo.java deleted file mode 100644 index ab8036b6..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberChargingVo.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hzs.member.base.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2023/3/29 9:04 - * @Classname: MemberChargingVo - * @PackageName: com.hzs.member.base.vo - */ - -import lombok.Data; - -import java.math.BigDecimal; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.vo - *@Author: yh - *@CreateTime: 2023-03-29 09:04 - *@Description: TODO - *@Version: 1.0 - */ -@Data -public class MemberChargingVo { - - /** - * 会员编号 - */ - private String memberCode; - - /** - * 会员姓名 - */ - private String memberName; - - /** - * 变更前推荐编号 - */ - private String editOldParentMemberCode; - /** - * 变更前推荐姓名 - */ - private String editOldParentMemberName; - - /** - * 变更后推荐编号 - */ - private String editNewParentMemberCode; - /** - * 变更后推荐姓名 - */ - private String editNewParentMemberName; - - - /** - * 扣款币种 - */ - private Integer pkAccount; - /** - * 币种名称 - */ - private String accountName; - /** - * 扣费金额 - */ - private BigDecimal accountAmount; -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberDirectPushVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberDirectPushVO.java deleted file mode 100644 index f254c73a..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberDirectPushVO.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.hzs.member.base.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2024/1/17 14:10 - * @Classname: MemberDirectPushVO - * @PackageName: com.hzs.member.base.vo - */ - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.hzs.common.core.annotation.Excel; -import lombok.Data; - -import java.math.BigDecimal; -import java.util.Date; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.vo - *@Author: yh - *@CreateTime: 2024-01-17 14:10 - *@Description: TODO - *@Version: 1.0 - */ -@Data -public class MemberDirectPushVO { - /** - * 统计时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "统计时间",dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date payTime; - /** - * 排名 - */ - @Excel(name = "排名") - private Integer ranking; - /** - * 会员编号 - */ - @Excel(name = "会员编号") - private String memberCode; - - /** - * 会员名称 - */ - @Excel(name = "会员名称") - private String memberName; - - /** - * 等级名称 - */ - @Excel(name = "结算等级") - private String gradeName; - /** - * 奖衔名称 - */ - @Excel(name = "真实奖衔") - private String awardsName; - - - - /** - * 会员头像 - */ - - private String headPath; - /** - * 订单达标业绩 - */ - @Excel(name = "直推业绩") - private BigDecimal orderAchieve; - /** - * 脱敏业绩 - */ - private String orderAchieveStr; - - /** - * 是否登录会员 对应 EyesNo 枚举 - */ - private Integer isLoginMember; - - -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberRealInfoVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberRealInfoVO.java index 8fdb1415..b239a937 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberRealInfoVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberRealInfoVO.java @@ -62,13 +62,11 @@ public class MemberRealInfoVO { /** * 证件类型 ECardType */ - @Transaction(transactionKey = EnumsPrefixConstants.CARD_TYPE) private Integer cardType; /** * 性别(0=未知,1=男,2=女)Esex */ - @Transaction(transactionKey = EnumsPrefixConstants.SEX) private Integer sex; /** @@ -325,53 +323,11 @@ public class MemberRealInfoVO { */ private String idBack; - /** - * 省id - */ - private Integer pkProvince; - /** - * 省名称 - */ - @Excel(name = "省", sort = 11) - private String provinceName; - /** - * 市id - */ - private Integer pkCity; - /** - * 市名称 - */ - @Excel(name = "市", sort = 12) - private String cityName; - /** - * 区县id - */ - private Integer pkCounty; - /** - * 区县名 - */ - @Excel(name = "区/县", sort = 13) - private String countyName; /** * 详细地址 */ @Excel(name = "详细地址", sort = 14) private String address; - /** - * 银行名称 - */ - @Excel(name = "银行名称", sort = 15) - private String bankName; - /** - * 支行名称 - */ - @Excel(name = "支行名称", sort = 16) - private String subBankName; - /** - * 真实姓名(开户姓名) - */ - @Excel(name = "开户姓名", sort = 17) - private String accountName; /** * 证件类型 字符 */ diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamInfoVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamInfoVo.java index ad4a6c43..70ce424d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamInfoVo.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamInfoVo.java @@ -4,14 +4,6 @@ import lombok.Data; import java.math.BigDecimal; -/** - * @BelongsProject: hzs_cloud - * @BelongsPackage: com.hzs.member.base.vo - * @Author: yh - * @CreateTime: 2023-08-02 15:26 - * @Description: TODO - * @Version: 1.0 - */ @Data public class MemberTeamInfoVo { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamVo.java index 4be32f5e..25ab3035 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamVo.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberTeamVo.java @@ -1,10 +1,4 @@ -package com.hzs.member.base.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2023/5/29 16:02 - * @Classname: MemberTeamVo - * @PackageName: com.hzs.member.base.vo - */ +package com.hzs.member.base.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.hzs.common.core.annotation.Excel; @@ -13,14 +7,6 @@ import lombok.Data; import java.math.BigDecimal; import java.util.Date; -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.vo - *@Author: yh - *@CreateTime: 2023-05-29 16:02 - *@Description: TODO - *@Version: 1.0 - */ @Data public class MemberTeamVo { @@ -130,7 +116,7 @@ public class MemberTeamVo { private BigDecimal consanguinityRepBSumPv; /** - *左区真实业绩(PV) + * 左区真实业绩(PV) */ @Excel(name = "左区真实业绩($)") private BigDecimal aSumRealPv; @@ -150,13 +136,13 @@ public class MemberTeamVo { /** * 奖金收益 */ - // @Excel(name = "奖金收益($)") + // @Excel(name = "奖金收益($)") private BigDecimal realIncomeTotal; /** * 奖金团队占比 */ - @Excel(name = "奖金团队占比(%)",suffix = "%") + @Excel(name = "奖金团队占比(%)", suffix = "%") private BigDecimal bonusTeamProportion; /** @@ -244,32 +230,32 @@ public class MemberTeamVo { /** * 登录次数 */ - // @Excel(name = "登录次数") + // @Excel(name = "登录次数") private Integer loginNumber; /** * 最后一次登录时间 */ - @Excel(name = "最近登录",dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "最近登录", dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date lastLoginTime; /** * 最后一次登录时间间隔天数 */ - // @Excel(name = "最后一次登录时间间隔天数") + // @Excel(name = "最后一次登录时间间隔天数") private Long lastLoginTimeIntervalDays; /** * 创建时间 */ - @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date creationTime; /** * 支付时间 */ - @Excel(name = "支付时间",dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "支付时间", dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date payTime; diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/TheLableVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/TheLableVO.java deleted file mode 100644 index 80119160..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/TheLableVO.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.hzs.member.base.vo; - -import lombok.AllArgsConstructor; -import lombok.Data; - -/** - * @Description: 列表筛选显现隐藏实体vo - * @Author: zhangjing - * @Time: 2022/10/13 11:21 - * @Classname: CuMemberVO - * @PackageName: com.hzs.member.base.vo - */ -@Data -@AllArgsConstructor -public class TheLableVO { - private static final long serialVersionUID = 1L; - - /** - * 表头名称 - */ - private String titel; - - /** - * 对应字段 - */ - private String prop; - - /** - * key键 - */ - private Integer keyId; - - /** - * 显示隐藏 - */ - private String show; - - -} - diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/WaresAuthorityParentVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/WaresAuthorityParentVo.java deleted file mode 100644 index 5995be39..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/WaresAuthorityParentVo.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.hzs.member.base.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2024/4/30 15:11 - * @Classname: WaresAuthorityParentVo - * @PackageName: com.hzs.member.base.vo - */ - -import lombok.Data; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.member.base.vo - *@Author: yh - *@CreateTime: 2024-04-30 15:11 - *@Description: TODO - *@Version: 1.0 - */ -@Data -public class WaresAuthorityParentVo { - - /** - * 会员主键 - */ - private Integer pkMember; - - /** - * 会员编号 - */ - private Long memberCount; -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiDomicileChangeController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiDomicileChangeController.java index 5c14b9f3..3bb9673c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiDomicileChangeController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiDomicileChangeController.java @@ -41,12 +41,9 @@ public class ApiDomicileChangeController extends BaseController { @Autowired private ICuMemberService iCuMemberService; @Autowired - private IApiAliSmsService iApiAliSmsService; - @Autowired private ICuSelfServiceLogService iCuSelfServiceLogService; - - @DubboReference - IServiceChargeServiceApi iServiceChargeServiceApi; + @Autowired + private IApiAliSmsService iApiAliSmsService; /** * 查询可申请信息 @@ -55,45 +52,44 @@ public class ApiDomicileChangeController extends BaseController { */ @GetMapping("/application-info-list") public AjaxResult applicationInformation() { - Long pkMember = SecurityUtils.getUserId(); - CuMemberExt member = iCuMemberService.getMemberById(pkMember); - DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().memberCode(member.getMemberCode()) - .memberName(member.getMemberName()).phone(member.getPhone()) - .changeNum(MagicNumberConstants.CHANGE_NUM).build(); + CuMemberExt member = iCuMemberService.getMemberById(SecurityUtils.getUserId()); + DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder() + .memberCode(member.getMemberCode()) + .memberName(member.getMemberName()) + .phone(member.getPhone()) + .changeNum(MagicNumberConstants.CHANGE_NUM) + .build(); return AjaxResult.success(domicileChangeVO); } - - @GetMapping("/application-info-detail") - public AjaxResult applicationInformationDetail() { - return AjaxResult.success(iCuSelfServiceLogService.selectDomicileChangeByPkMember(SecurityUtils.getUserId(), EApprovalBusiness.DOMICILE_CHANGE.getValue(), SecurityUtils.getPkCountry())); - } - /** - * 查询已申请信息 + * 显示户籍变更信息 * * @return AjaxResult */ - @GetMapping("/applied-info-list") - public AjaxResult appliedInformation() { - DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().pkMember(SecurityUtils.getUserId()) - .pkCountry(SecurityUtils.getPkCountry()).editType(EApprovalBusiness.DOMICILE_CHANGE.getValue()).build(); - List domicileChangeVOList = (List) iCuSelfServiceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1]; - return AjaxResult.success(domicileChangeVOList); + @GetMapping("/show-change-domicile") + public AjaxResult showChangeDomicile() { + String idBack = null; + String idFront = null; + Long pkMember = SecurityUtils.getUserId(); + Integer pkCountry = SecurityUtils.getPkCountry(); + CuMemberExt member = iCuMemberService.getMemberById(pkMember); + //查询实名认证信息原证件图 + CuMemberAuthenticationVO authenticationVO = CuMemberAuthenticationVO.builder().pkCountry(pkCountry).pkMember(pkMember).build(); + CuMemberAuthenticationVO cuMemberAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(authenticationVO); + if (null != cuMemberAuthenticationVO) { + idBack = cuMemberAuthenticationVO.getIdBack(); + idFront = cuMemberAuthenticationVO.getIdFront(); + } + DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder() + .memberCode(member.getMemberCode()) + .memberName(member.getMemberName()) + .phone(member.getPhone()) + .idBack(idBack).idFront(idFront) + .build(); + return AjaxResult.success(domicileChangeVO); } - - /** - * 自助服务是否显示户籍认证 - * - * @return AjaxResult - */ - @GetMapping("/show-index-domicile") - public AjaxResult showIndexDomicile() { - return AjaxResult.success(iCuSelfServiceLogService.showIndexDomicile(SecurityUtils.getPkCountry(), SecurityUtils.getUserId())); - } - - /** * 申请户籍变更 * @@ -125,13 +121,8 @@ public class ApiDomicileChangeController extends BaseController { } domicileChangeVO.setPkCountry(pkCountry); domicileChangeVO.setPkMember(pkMember); - //是否有正在审批业务 - AjaxResult existApprovalData = isExistApprovalData(domicileChangeVO); - if (!existApprovalData.equals(AjaxResult.success())) { - return existApprovalData; - } // 校验短信验证码 - String message = iApiAliSmsService.checkCode(domicileChangeVO.getChangePhone(), domicileChangeVO.getVerificationCode(), null); + String message = iApiAliSmsService.checkCode(domicileChangeVO.getChangePhone(), domicileChangeVO.getVerificationCode(), null, pkMember); if (null != message) { return AjaxResult.error(message); } @@ -139,63 +130,19 @@ public class ApiDomicileChangeController extends BaseController { } /** - * 显示户籍变更信息 + * 查询已申请信息 * * @return AjaxResult */ - @GetMapping("/show-change-domicile") - public AjaxResult showChangeDomicile() { - String idBack = null; - String idFront = null; - Long pkMember = SecurityUtils.getUserId(); - Integer pkCountry = SecurityUtils.getPkCountry(); - CuMemberExt member = iCuMemberService.getMemberById(pkMember); - //查询实名认证信息原证件图 - CuMemberAuthenticationVO authenticationVO = CuMemberAuthenticationVO.builder().pkCountry(pkCountry).pkMember(pkMember).build(); - CuMemberAuthenticationVO cuMemberAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(authenticationVO); - if (null != cuMemberAuthenticationVO) { - idBack = cuMemberAuthenticationVO.getIdBack(); - idFront = cuMemberAuthenticationVO.getIdFront(); - } - ServiceChargeDTO serviceChargeInfo = getServiceChargeInfo(pkCountry); - BigDecimal cost = null != serviceChargeInfo ? serviceChargeInfo.getCost() : BigDecimal.ZERO; - DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().memberCode(member.getMemberCode()) - .memberName(member.getMemberName()).phone(member.getPhone()).amount(cost).pkAccount(serviceChargeInfo.getPkAccount()) - .idBack(idBack).idFront(idFront).build(); - return AjaxResult.success(domicileChangeVO); - } - - /** - * 是否存在审核的数据 - * - * @param domicileChangeVO 户籍变更信息 - * @return AjaxResult - */ - private AjaxResult isExistApprovalData(DomicileChangeVO domicileChangeVO) { - CuSelfServiceLog cuSelfServiceLog = new CuSelfServiceLog(); - cuSelfServiceLog.setPkCountry(domicileChangeVO.getPkCountry()); - cuSelfServiceLog.setEditType(EApprovalBusiness.DOMICILE_CHANGE.getValue()); - cuSelfServiceLog.setPkMember(domicileChangeVO.getPkMember()); - Integer check = iCuSelfServiceLogService.checkSelfService(cuSelfServiceLog); - if (check > 0) { - return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_UPDATE_CODE_REPEAT)); - } - return AjaxResult.success(); - } - - /** - * 查询手续费 - * - * @param pkCountry 国家pID - * @return ServiceChargeDTO - */ - private ServiceChargeDTO getServiceChargeInfo(Integer pkCountry) { - //查询扣费金额,账户信息 - ServiceChargeDTO serviceChargeDTO = new ServiceChargeDTO(); - serviceChargeDTO.setType(EApprovalBusiness.DOMICILE_CHANGE.getValue()); - serviceChargeDTO.setPkCountry(pkCountry); - serviceChargeDTO.setQuantity(MagicNumberConstants.CHANGE_NUM); - return iServiceChargeServiceApi.getServiceChargeByType(serviceChargeDTO).getData(); + @GetMapping("/applied-info-list") + public AjaxResult appliedInformation() { + DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder() + .pkMember(SecurityUtils.getUserId()) + .pkCountry(SecurityUtils.getPkCountry()) + .editType(EApprovalBusiness.DOMICILE_CHANGE.getValue()) + .build(); + List domicileChangeVOList = (List) iCuSelfServiceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1]; + return AjaxResult.success(domicileChangeVOList); } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiSelfController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiSelfController.java index 554721fe..3cffaeda 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiSelfController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/api/ApiSelfController.java @@ -1,17 +1,13 @@ package com.hzs.member.self.controller.api; -import com.hzs.common.core.constant.CountryConstants; -import com.hzs.common.core.enums.EGrade; import com.hzs.common.core.enums.EYesNo; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; -import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.self.service.ICuSelfServiceLogService; import com.hzs.member.self.vo.SelfVO; import com.hzs.system.config.IGradeServiceApi; -import com.hzs.system.config.dto.GradeDTO; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; @@ -27,44 +23,24 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class ApiSelfController extends BaseController { - @Autowired - private ICuMemberService iCuMemberService; @Autowired private ICuSelfServiceLogService iCuSelfServiceLogService; - @DubboReference - IGradeServiceApi iGradeServiceApi; - /** * 自助权限查询 */ @GetMapping("/authority") public AjaxResult validateSelfAuthority() { - CuMemberExt cuMember = iCuMemberService.getMenuMember(SecurityUtils.getUserId()); - - // 获取等级 - GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); - if (EGrade.START_UP.getValue() == gradeDTO.getGradeValue()) { - // 会员等级,需要【实名认证】 - return AjaxResult.success(SelfVO.builder() - .existRealName(EYesNo.YES.getIntValue()) - .build()); - } - + Long userId = SecurityUtils.getUserId(); Integer pkCountry = SecurityUtils.getPkCountry(); - Integer showAddress = iCuSelfServiceLogService.showHiddenAddress(cuMember.getPkId(), pkCountry); + Integer showAddress = iCuSelfServiceLogService.showHiddenAddress(userId, pkCountry); SelfVO selfVO = SelfVO.builder() .existAddress(showAddress) - .existOrderSelf(showAddress) .selfRevokeOrder(showAddress) - .existDomicile(iCuSelfServiceLogService.showIndexDomicile(pkCountry, cuMember.getPkId())) + .existDomicile(iCuSelfServiceLogService.showIndexDomicile(pkCountry, userId)) .existRealName(EYesNo.YES.getIntValue()) - .existMemberMonth(EYesNo.YES.getIntValue()) .build(); - if (!pkCountry.equals(CountryConstants.CHINA_COUNTRY)) { - selfVO.setSelfRevokeOrder(EYesNo.NO.getIntValue()); - } - return AjaxResult.success(selfVO); } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/manage/DomicileChangeController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/manage/DomicileChangeController.java index b90b45c7..c3b234e1 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/manage/DomicileChangeController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/controller/manage/DomicileChangeController.java @@ -1,24 +1,18 @@ package com.hzs.member.self.controller.manage; - import com.hzs.common.core.annotation.Log; -import com.hzs.common.core.constant.msg.ConfigMsgConstants; import com.hzs.common.core.enums.EApprovalBusiness; import com.hzs.common.core.enums.EOperationBusiness; import com.hzs.common.core.enums.EOperationMethod; import com.hzs.common.core.enums.EOperationModule; -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.core.web.page.TableDataInfo; import com.hzs.common.domain.member.self.CuSelfServiceLogExt; -import com.hzs.common.security.service.UserTokenService; import com.hzs.common.security.utils.SecurityUtils; -import com.hzs.common.util.TransactionUtils; import com.hzs.member.self.service.ICuSelfServiceLogService; import com.hzs.member.self.vo.DomicileChangeVO; -import com.hzs.system.sys.dto.LoginUser; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -28,12 +22,6 @@ import java.util.List; /** * 变理户籍 - * - * @Description: - * @Author: ljc - * @Time: 2023/4/18 10:07 - * @Classname: ApiDomicileChangeController - * @Package_name: com.hzs.member.self.controller.api */ @Slf4j @RequestMapping("/manage/change-domicile") @@ -43,10 +31,6 @@ public class DomicileChangeController extends BaseController { @Autowired private ICuSelfServiceLogService serviceLogService; - @Autowired - private UserTokenService userTokenService; - - /** * 户籍变更列表 * @@ -64,7 +48,6 @@ public class DomicileChangeController extends BaseController { return tableDataInfo; } - /** * 户籍变更列表 * @@ -76,36 +59,4 @@ public class DomicileChangeController extends BaseController { return AjaxResult.success(serviceLogService.selectDomicileChangeDetail(pkId)); } - - /** - * 驳回 - * - * @return AjaxResult - */ - @PostMapping("/domicile-change-reject") - @Log(module = EOperationModule.DOMICILE_CHANGE, business = EOperationBusiness.DOMICILE_CHANGE, method = EOperationMethod.REJECT) - public AjaxResult domicileChangeReject(@RequestBody DomicileChangeVO domicileChangeVO) { - if (StringUtils.isEmpty(domicileChangeVO.getRejectMsg())) { - return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.REJECT_MSG_NOT_NULL)); - } - return AjaxResult.success(serviceLogService.domicileChangeRejectById(domicileChangeVO, SecurityUtils.getUserId())); - } - - - /** - * 同意 - * - * @return AjaxResult - */ - @PostMapping("/domicile-change-agree") - @Log(module = EOperationModule.DOMICILE_CHANGE, business = EOperationBusiness.DOMICILE_CHANGE, method = EOperationMethod.AGREE) - public AjaxResult domicileChangeAgree(@RequestBody DomicileChangeVO domicileChangeVO) { - LoginUser loginUser = userTokenService.getLoginUser(); - domicileChangeVO.setLoginUser(loginUser); - domicileChangeVO.setPkModified(SecurityUtils.getUserId()); - domicileChangeVO.setPkCountry(SecurityUtils.getPkCountry()); - return AjaxResult.success(serviceLogService.domicileChangeAgree(domicileChangeVO)); - } - - } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/mapper/CuSelfServiceLogMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/mapper/CuSelfServiceLogMapper.java index 082a2e69..3fa38c36 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/mapper/CuSelfServiceLogMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/mapper/CuSelfServiceLogMapper.java @@ -1,10 +1,8 @@ package com.hzs.member.self.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.self.CuSelfServiceLog; import com.hzs.common.domain.member.self.CuSelfServiceLogExt; -import com.hzs.common.domain.sale.ext.SaOrderItemsExt; import com.hzs.member.self.vo.MyOrderItemsVO; import com.hzs.member.self.vo.SelfModifyAddressVO; import com.hzs.member.self.vo.DomicileChangeVO; @@ -13,48 +11,23 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - *

* 自助服务日志表 Mapper 接口 - *

* - * @author hzs - * @since 2023-04-17 */ public interface CuSelfServiceLogMapper extends BaseMapper { /** - * @description: 自助服务-查询已申请修改收货地址 - * @author: zhang jing - * @date: 2023/4/17 14:36 - * @param: [selfModifyAddressVO] - * @return: java.util.List + * 自助服务-查询已申请修改收货地址 **/ List querySelfModifyAddressList(SelfModifyAddressVO selfModifyAddressVO); + /** - * @description: 自助服务-查询已申请修改收货地址(管理端) - * @author: zhang jing - * @date: 2023/7/24 11:43 - * @param: [selfModifyAddressVO] - * @return: java.util.List + * 自助服务-查询已申请修改收货地址(管理端) **/ List querySelfModifyAddressManageList(SelfModifyAddressVO selfModifyAddressVO); - /** - * @description: 自助服务-校验是否存在重复审核 - * @author: zhang jing - * @date: 2023/4/17 16:40 - * @param: [selfModifyAddressVO] - * @return: java.lang.Integer - **/ - Integer checkSelfService(CuSelfServiceLog cuSelfServiceLog); - - /** - * @description: 自助服务-查询申请的最大次数 - * @author: zhang jing - * @date: 2023/4/17 17:08 - * @param: [selfModifyAddressVO] - * @return: java.lang.Integer + * 自助服务-查询申请的最大次数 **/ Integer selectByMaxApproveNumber(CuSelfServiceLog cuSelfServiceLog); @@ -74,16 +47,6 @@ public interface CuSelfServiceLogMapper extends BaseMapper { */ CuSelfServiceLogExt selectDomicileChangeDetail(@Param("pkId") Long pkId); - /** - * 根据用户ID和类型查询自动服务 - * - * @param editType 服务类型 - * @param pkMember 会员ID - * @param pkCountry 国家ID - * @return CuSelfServiceLogExt - */ - CuSelfServiceLogExt selectDomicileChangeByPkMember(@Param("editType") Integer editType, @Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry); - /** * 根据业务类型、业务编号查询自助信息 * @@ -93,12 +56,6 @@ public interface CuSelfServiceLogMapper extends BaseMapper { */ CuSelfServiceLog selectSelfServiceByBusinessNo(@Param("editType") Integer editType, @Param("businessNo") String businessNo); - /** - * 根据业务编号更新审批信息 - */ - - Integer updateSelfServiceByBusinessNo(DomicileChangeVO domicileChangeVO); - /** * 根据订单ID查询订单明细列表(前台使用,尽量只查能用到的) * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/provider/ICuSelfServiceServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/provider/ICuSelfServiceServiceProvider.java index d304978f..b93f1080 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/provider/ICuSelfServiceServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/provider/ICuSelfServiceServiceProvider.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.EApprovalBusiness; -import com.hzs.common.core.enums.EModifyRecordStatus; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.domain.member.base.CuMember; @@ -14,7 +13,6 @@ import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.self.ICuSelfServiceServiceApi; import com.hzs.member.self.dto.SelfServiceDataDTO; import com.hzs.member.self.service.ICuSelfServiceLogService; -import com.hzs.member.self.vo.DomicileChangeVO; import com.hzs.member.self.vo.SelfModifyAddressVO; import com.hzs.system.base.IAreaServiceApi; import com.hzs.system.sys.dto.ApprovalBusinessResultDTO; @@ -23,28 +21,19 @@ import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Autowired; -import java.util.List; import java.util.Map; /** * 自助服务Dubbo 服务 - * - * @Description: - * @Author: ljc - * @Time: 2023/4/19 16:24 - * @Classname: ICuSelfServiceServiceProvider - * @Package_name: com.hzs.member.self.provider */ @Slf4j @DubboService public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi { @Autowired - ICuSelfServiceLogService cuSelfServiceLogService; + private ICuSelfServiceLogService iCuSelfServiceLogService; @Autowired - private ICuSelfServiceLogService serviceLogService; - @Autowired - private ICuMemberService cuMemberService; + private ICuMemberService iCuMemberService; @DubboReference IAreaServiceApi iAreaServiceApi; @@ -53,9 +42,6 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi { public R analysisSelfServiceData(SelfServiceDataDTO selfServiceDataDTO) { EApprovalBusiness eApprovalBusiness = EApprovalBusiness.getEnumByValue(selfServiceDataDTO.getEditType()); switch (eApprovalBusiness) { - case DOMICILE_CHANGE: - //户籍变更数据 - return R.ok(getDomicileChangeData(selfServiceDataDTO)); case SELF_MODIFY_ADDRESS: //修改地址 return R.ok(getSelfModifyAddress(selfServiceDataDTO)); @@ -65,24 +51,7 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi { } /** - * 户籍变更数据 - * - * @param selfServiceDataDTO 自助服务参数 - * @return List - */ - private List getDomicileChangeData(SelfServiceDataDTO selfServiceDataDTO) { - DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().editType(selfServiceDataDTO.getEditType()) - .pkCountry(selfServiceDataDTO.getPkCountry()) - .businessNo(selfServiceDataDTO.getBusinessNo()).build(); - return (List) cuSelfServiceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1]; - } - - /** - * @description: 自助服务-修改收货地址 - * @author: zhang jing - * @date: 2023/4/20 16:18 - * @param: [selfServiceDataDTO] - * @return: java.util.List + * 自助服务-修改收货地址 **/ private SelfModifyAddressVO getSelfModifyAddress(SelfServiceDataDTO selfServiceDataDTO) { SelfModifyAddressVO selMad = SelfModifyAddressVO.builder() @@ -92,7 +61,7 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi { .build(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(CuSelfServiceLog::getBusinessNo, selfServiceDataDTO.getBusinessNo()); - CuSelfServiceLog serviceLog = serviceLogService.getOne(queryWrapper); + CuSelfServiceLog serviceLog = iCuSelfServiceLogService.getOne(queryWrapper); if (null != serviceLog) { // 调用system服务,获取地址 Map areaMap = iAreaServiceApi.getAreaMap(selfServiceDataDTO.getPkCountry()).getData(); @@ -102,7 +71,7 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi { //旧值 String recCountyVal = ""; sad.setOrderCode(serviceLog.getOrderCode()); - CuMember member = cuMemberService.getMember(serviceLog.getPkMember()); + CuMember member = iCuMemberService.getMember(serviceLog.getPkMember()); sad.setMemberName(member.getMemberName()); sad.setMemberCode(member.getMemberCode()); sad.setRecName(oldsad.getRecName()); @@ -138,30 +107,18 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi { if (StringUtils.isEmpty(businessCode) || null == approveOperation || null == eApprovalBusiness) { return R.fail("提交审核缺少参数!"); } - CuSelfServiceLog selfServiceLog = cuSelfServiceLogService.selectSelfServiceByBusinessNo(eApprovalBusiness.getValue(), businessCode); + CuSelfServiceLog selfServiceLog = iCuSelfServiceLogService.selectSelfServiceByBusinessNo(eApprovalBusiness.getValue(), businessCode); if (null == selfServiceLog) { return R.fail("审批记录不存在!"); } try { switch (eApprovalBusiness) { - //户籍变更数据 - case DOMICILE_CHANGE: - //审批通过 - if (approveOperation.equals(EModifyRecordStatus.APPROVE.getValue())) { - return R.ok(cuSelfServiceLogService.domicileChangeApproved(approvalBusinessResultDTO, selfServiceLog)); - } - //审批驳回 - if (approveOperation.equals(EModifyRecordStatus.REJECT.getValue())) { - //横冲手续费 - return R.ok(cuSelfServiceLogService.domicileChangeReject(approvalBusinessResultDTO, selfServiceLog)); - } case SELF_MODIFY_ADDRESS: //修改地址 - return R.ok(cuSelfServiceLogService.selfExamine(approvalBusinessResultDTO)); + return R.ok(iCuSelfServiceLogService.selfExamine(approvalBusinessResultDTO)); default: return R.fail(); } - } catch (Exception e) { log.error("审核状态为: {} 的审核出错", approveOperation, e); return R.fail("审批自助服务流程出错!"); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/ICuSelfServiceLogService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/ICuSelfServiceLogService.java index 300ecdf2..4b3e39e1 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/ICuSelfServiceLogService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/ICuSelfServiceLogService.java @@ -24,11 +24,6 @@ public interface ICuSelfServiceLogService extends IService { **/ List querySelfModifyAddressManageList(SelfModifyAddressVO selfModifyAddressVO); - /** - * 自助服务-校验是否存在重复审核 - **/ - Integer checkSelfService(CuSelfServiceLog cuSelfServiceLog); - /** * **/ @@ -78,16 +73,6 @@ public interface ICuSelfServiceLogService extends IService { */ DomicileChangeVO selectDomicileChangeDetail(Long pkId); - /** - * 根据用户ID和类型查询自动服务 - * - * @param editType 服务类型 - * @param pkMember 会员ID - * @param pkCountry 国家ID - * @return CuSelfServiceLogExt - */ - DomicileChangeVO selectDomicileChangeByPkMember(Long pkMember, Integer editType, Integer pkCountry); - /** * 根据业务类型、业务编号查询自助信息 * @@ -97,41 +82,6 @@ public interface ICuSelfServiceLogService extends IService { */ CuSelfServiceLog selectSelfServiceByBusinessNo(Integer editType, String businessNo); - /** - * 户籍变更审批通过 - * - * @param approvalBusinessResultDTO 审核参数 - * @param selfServiceLog 自助信息 - * @return Boolean - */ - Integer domicileChangeApproved(ApprovalBusinessResultDTO approvalBusinessResultDTO, CuSelfServiceLog selfServiceLog); - - /** - * 户籍变更审批驳回 - * - * @param approvalBusinessResultDTO 审核参数 - * @param selfServiceLog 自助信息 - * @return Integer - */ - Integer domicileChangeReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, CuSelfServiceLog selfServiceLog); - - /** - * 户籍变更审批驳回 - * - * @param domicileChangeVO ID - * @param pkMember 会员ID - * @return Integer - */ - Boolean domicileChangeRejectById(DomicileChangeVO domicileChangeVO, Long pkMember); - - /** - * 户籍变更审批同意(后台列表操作) - * - * @param domicileChangeVO 户籍变更 - * @return - */ - Integer domicileChangeAgree(DomicileChangeVO domicileChangeVO); - /** * **/ diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/impl/CuSelfServiceLogServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/impl/CuSelfServiceLogServiceImpl.java index 2026d1ff..026aa01b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/impl/CuSelfServiceLogServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/self/service/impl/CuSelfServiceLogServiceImpl.java @@ -5,12 +5,11 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.core.constant.CountryConstants; import com.hzs.common.core.constant.MagicNumberConstants; -import com.hzs.common.core.constant.RabbitMqConstants; -import com.hzs.common.core.constant.SystemFieldConstants; import com.hzs.common.core.constant.msg.ConfigMsgConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; @@ -18,14 +17,12 @@ import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.utils.CommonUtil; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.domain.member.account.CuMemberAccount; -import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.member.self.CuSelfServiceLog; import com.hzs.common.domain.member.self.CuSelfServiceLogExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.account.dto.BusinessCommissionDTO; -import com.hzs.member.account.dto.MemberAmountDTO; import com.hzs.member.account.service.*; import com.hzs.member.base.service.ICuMemberBusinessService; import com.hzs.member.base.service.ICuMemberService; @@ -39,9 +36,7 @@ import com.hzs.sale.order.ISaOrderServiceApi; import com.hzs.system.sys.IApprovalServiceApi; import com.hzs.system.sys.dto.ApprovalBusinessResultDTO; import com.hzs.system.sys.dto.ApprovalSubmitDTO; -import com.hzs.system.sys.dto.BusinessLogDTO; import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -67,17 +62,13 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl querySelfModifyAddressList(SelfModifyAddressVO selfModifyAddressVO) { @@ -89,11 +80,6 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper<>(); - updateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); - updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkMember); - updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date()); - updateWrapper.eq("PK_ID", cuSelfServiceLogExt.getPkId()); - update(updateWrapper); - } + + //更新业务 + iCuMemberService.updateMemberNameAndPhone(pkMember, domicileChangeVO.getChangeMemberName(), domicileChangeVO.getChangePhone(), pkMember); + // 注销实名认证、营业执照 + changeBusinessByChangeName(pkMember, pkMember); + //重置银行卡 + BusinessMemberVO businessMemberVO = BusinessMemberVO.builder().pkMember(pkMember).build(); +// iCuMemberBankService.batchUpdateBankBypkMembers(Collections.singletonList(businessMemberVO), pkModified); + //修改会员的变更次数 + List pkMembers = Collections.singletonList(businessMemberVO.getPkMember()); + iCuMemberService.updateMemberEditNumber(pkMembers, pkMember); + //变更前值 - DomicileChangeVO oldValue = DomicileChangeVO.builder().memberName(domicileChangeVO.getMemberName()) - .phone(domicileChangeVO.getPhone()).idFront(domicileChangeVO.getIdFront()).idBack(domicileChangeVO.getIdBack()).build(); + DomicileChangeVO oldValue = DomicileChangeVO.builder() + .memberName(domicileChangeVO.getMemberName()) + .phone(domicileChangeVO.getPhone()) + .idFront(domicileChangeVO.getIdFront()) + .idBack(domicileChangeVO.getIdBack()) + .build(); //变更后的值 - DomicileChangeVO newValue = DomicileChangeVO.builder().changeMemberName(domicileChangeVO.getChangeMemberName()) - .changePhone(domicileChangeVO.getChangePhone()).changeIdFront(domicileChangeVO.getChangeIdFront()).changeIdBack(domicileChangeVO.getChangeIdBack()).build(); + DomicileChangeVO newValue = DomicileChangeVO.builder() + .changeMemberName(domicileChangeVO.getChangeMemberName()) + .changePhone(domicileChangeVO.getChangePhone()) + .changeIdFront(domicileChangeVO.getChangeIdFront()) + .changeIdBack(domicileChangeVO.getChangeIdBack()) + .build(); String businessNo = CommonUtil.createSerialNumber(EOrderPrefix.SELF_SERVICE.getValue()); - CuSelfServiceLog oldServiceLog = CuSelfServiceLog.builder().pkMember(pkMember) - .editType(editType).oldValue(JSONUtil.toJsonStr(oldValue)).selfRemark(domicileChangeVO.getRemark()).description(domicileChangeVO.getDescription()) - .newValue(JSONUtil.toJsonStr(newValue)).businessNo(businessNo).approveStatus(EApproveRechargeStatus.SUBMIT.getValue()).pkAccount(domicileChangeVO.getPkAccount()) - .approveNumber(MagicNumberConstants.CHANGE_NUM).singleAmount(domicileChangeVO.getAmount()).editTypePay(ETradeType.getValueByApprovalValue(editType)).build(); - oldServiceLog.setPkCreator(pkMember); - oldServiceLog.setPkCountry(pkCountry); - //保存 - this.save(oldServiceLog); - //扣费 - return Charging(domicileChangeVO, businessNo); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public Integer domicileChangeAgree(DomicileChangeVO domicileChangeVO) { - String businessNo = domicileChangeVO.getBusinessNo(); - Long pkMember = domicileChangeVO.getPkMember(); - Long pkModified = domicileChangeVO.getPkModified(); - //更新审核状态 - DomicileChangeVO domicileChange = DomicileChangeVO.builder().businessNo(businessNo) - .approveStatus(EApproveRechargeStatus.WAIT.getValue()).approveTime(new Date()) - .pkModified(pkModified).build(); - Integer result = baseMapper.updateSelfServiceByBusinessNo(domicileChange); - //调用审批接口,修改审批状态 - ApprovalSubmitDTO approvalSubmitDTO = ApprovalSubmitDTO.builder().eApprovalBusiness(EApprovalBusiness.DOMICILE_CHANGE) - .businessCode(businessNo).signSource(ESignSource.MANAGE) - .signType(ESignType.GENERAL).userIdList(domicileChangeVO.getUserIdList()) - .remark(domicileChangeVO.getRemark()).pkMemberList(Collections.singleton(pkMember)) - .sendIdList(domicileChangeVO.getSendIdList()).fileList(domicileChangeVO.getFileList()) + CuSelfServiceLog oldServiceLog = CuSelfServiceLog.builder() + .pkMember(pkMember) + .editType(EApprovalBusiness.DOMICILE_CHANGE.getValue()) + .oldValue(JSONUtil.toJsonStr(oldValue)) + .newValue(JSONUtil.toJsonStr(newValue)) + .businessNo(businessNo) + .selfRemark(domicileChangeVO.getRemark()) + .description(domicileChangeVO.getDescription()) + .approveStatus(EApproveRechargeStatus.AGREE.getValue()) + .pkAccount(domicileChangeVO.getPkAccount()) + .approveNumber(MagicNumberConstants.CHANGE_NUM) + .singleAmount(domicileChangeVO.getAmount()) + .editTypePay(ETradeType.getValueByApprovalValue(EApprovalBusiness.DOMICILE_CHANGE.getValue())) .build(); - R submit = iApprovalServiceApi.submit(approvalSubmitDTO, domicileChangeVO.getLoginUser()); - if (!submit.isSuccess()) { - throw new RuntimeException(submit.getMsg()); - } - //MQ户籍变更操作日志 - CuSelfServiceLog cuSelfServiceLog = baseMapper.selectSelfServiceByBusinessNo(EApprovalBusiness.DOMICILE_CHANGE.getValue(), businessNo); - packageDomicileOperationLog(cuSelfServiceLog, businessNo, "同意", pkModified, false); - return result; + oldServiceLog.setPkCreator(pkMember); + oldServiceLog.setPkCountry(CountryConstants.CHINA_COUNTRY); + return this.save(oldServiceLog); } - /** - * 户籍变更操作日志 - * - * @param cuSelfServiceLog 入参 - * @param businessNo 业务编号 - * @param operationType 操作类型 - */ - private void packageDomicileOperationLog(CuSelfServiceLog cuSelfServiceLog, String businessNo, String operationType, Long pkMember, Boolean freeSignFlag) { - DomicileChangeVO oldValue = JSONUtil.toBean(cuSelfServiceLog.getOldValue(), DomicileChangeVO.class); - DomicileChangeVO newValue = JSONUtil.toBean(cuSelfServiceLog.getNewValue(), DomicileChangeVO.class); - CuMemberExt cumember = cuMemberService.getMemberById(cuSelfServiceLog.getPkMember()); - String sb = "会员编号:" + cumember.getMemberCode() + - " 变更前的会员姓名:" + oldValue.getMemberName() + - " 变更后的会员姓名:" + newValue.getChangeMemberName() + - " 变更前的联系方式:" + oldValue.getPhone() + - " 变更后的联系方式:" + newValue.getChangePhone() + - " 操作类型:" + operationType; - BusinessLogDTO businessLog = BusinessLogDTO.builder() - .businessType(EApprovalBusiness.DOMICILE_CHANGE.getValue()) - .businessCode(businessNo).pkMember(cuSelfServiceLog.getPkMember()) - .content(sb).pkCreator(pkMember) - .pkCountry(cuSelfServiceLog.getPkCountry()) - .freeSignFlag(freeSignFlag).build(); - rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, Collections.singleton(businessLog)); - } - - - /** - * 扣费 - * - * @param domicileChangeVO 户籍变更信息 - * @param businessNo 业务编号 - */ - public Boolean Charging(DomicileChangeVO domicileChangeVO, String businessNo) { - MemberAmountDTO memberAmountDTO = MemberAmountDTO.builder().pkMember(domicileChangeVO.getPkMember()).tradeAmount(domicileChangeVO.getAmount()).build(); - List memberAmountDTOList = new ArrayList<>(); - memberAmountDTOList.add(memberAmountDTO); - - BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder().pkAccount(domicileChangeVO.getPkAccount()) - .tradeType(EApprovalBusiness.DOMICILE_CHANGE.getValue()) - .tradeCode(businessNo) - .pkCountry(domicileChangeVO.getPkCountry()) - .pkCreator(domicileChangeVO.getPkModified()).build(); - businessCommissionDTO.setMemberAmountDTOList(memberAmountDTOList); - return cuMemberTradeService.businessCommissionSubmit(businessCommissionDTO); - } - - @Override public Object[] selectSelfServiceByPkMember(DomicileChangeVO domicileChangeVO) { DomicileChangeVO domicileChange; @@ -290,11 +215,11 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("PK_MEMBER", pkMember); - queryWrapper.eq("PK_COUNTRY", pkCountry); - queryWrapper.eq("EDIT_TYPE", EApprovalBusiness.DOMICILE_CHANGE.getValue()); - queryWrapper.eq("APPROVE_STATUS", EApproveRechargeStatus.AGREE.getValue()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CuSelfServiceLog::getPkMember, pkMember); + queryWrapper.eq(CuSelfServiceLog::getPkCountry, pkCountry); + queryWrapper.eq(CuSelfServiceLog::getEditType, EApprovalBusiness.DOMICILE_CHANGE.getValue()); + queryWrapper.eq(CuSelfServiceLog::getApproveStatus, EApproveRechargeStatus.AGREE.getValue()); Integer count = baseMapper.selectCount(queryWrapper); return count > 0 ? EYesNo.NO.getIntValue() : EYesNo.YES.getIntValue(); } @@ -303,15 +228,6 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl pkMembers = Collections.singletonList(businessMemberVO.getPkMember()); - cuMemberService.updateMemberEditNumber(pkMembers, pkModified); - //更新状态 - return updateApprovalStatus(approvalBusinessResultDTO, pkModified); - } - /** * 更新姓名删除相关实名操作 * @@ -372,72 +268,19 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl pkMembers = Collections.singletonList(pkMember); //更新实名认证 - Boolean auth = cuMemberAuthenticationService.deleteByPkMembers(pkMembers, pkModified); + Boolean auth = iCuMemberAuthenticationService.deleteByPkMembers(pkMembers, pkModified); //更新会员是否实名 if (auth) { - cuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.REAL_NAME.getValue()); + iCuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.REAL_NAME.getValue()); } //更新营业执照 - Boolean license = cuMemberBusinessLicenseService.updateMemberLicenseByPkMembers(pkMembers, pkModified); + Boolean license = iCuMemberBusinessLicenseService.updateMemberLicenseByPkMembers(pkMembers, pkModified); //更新会员是否营业执照 if (license) { - cuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.BUS_LICENSE.getValue()); + iCuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.BUS_LICENSE.getValue()); } } - @Override - @Transactional(rollbackFor = Exception.class) - public Integer domicileChangeReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, CuSelfServiceLog selfServiceLog) { - Long userId = approvalBusinessResultDTO.getLoginUser().getUserId(); - //扣费横冲 - EApprovalBusiness eApprovalBusiness = approvalBusinessResultDTO.getEApprovalBusiness(); - String businessCode = approvalBusinessResultDTO.getBusinessCode(); - BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder().tradeType(eApprovalBusiness.getValue()) - .tradeCode(businessCode).pkCountry(selfServiceLog.getPkCountry()) - .pkCreator(userId).build(); - cuMemberTradeService.businessCommissionReject(businessCommissionDTO); - //更新状态 - return updateApprovalStatus(approvalBusinessResultDTO, userId); - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public Boolean domicileChangeRejectById(DomicileChangeVO domicileChangeVO, Long pkMember) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkMember); - updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date()); - updateWrapper.set("approve_status", EApproveRechargeStatus.REJECT.getValue()); - updateWrapper.set("approve_time", new Date()); - updateWrapper.set("REJECT_MSG", domicileChangeVO.getRejectMsg()); - updateWrapper.eq("PK_ID", domicileChangeVO.getPkId()); - //更新状态 - update(updateWrapper); - CuSelfServiceLog selfServiceLog = baseMapper.selectById(domicileChangeVO.getPkId()); - //扣费横冲 - BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder().tradeType(selfServiceLog.getEditType()) - .tradeCode(selfServiceLog.getBusinessNo()).pkCountry(selfServiceLog.getPkCountry()) - .pkCreator(pkMember).build(); - Boolean result = cuMemberTradeService.businessCommissionReject(businessCommissionDTO); - // MQ户籍变更操作日志 - packageDomicileOperationLog(selfServiceLog, selfServiceLog.getBusinessNo(), "驳回", pkMember, true); - return result; - } - - /** - * 更新审核状态 - * - * @param approvalBusinessResultDTO 审核参数 - * @param pkModified 修改人ID - * @return Integer - */ - public Integer updateApprovalStatus(ApprovalBusinessResultDTO approvalBusinessResultDTO, Long pkModified) { - DomicileChangeVO domicileChange = DomicileChangeVO.builder().businessNo(approvalBusinessResultDTO.getBusinessCode()) - .approveStatus(approvalBusinessResultDTO.getApproveOperation() + 1).approveTime(new Date()) - .pkModified(pkModified).build(); - return baseMapper.updateSelfServiceByBusinessNo(domicileChange); - } - @Transactional(rollbackFor = Exception.class) @Override @@ -490,7 +333,7 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl cuMemberList = iCuMemberService.listMemberByPhone(phone); - if (CollectionUtil.isEmpty(cuMemberList)) { - return AjaxResult.error("会员联系方式不存在"); + CuMember cuMember = iCuMemberService.getMember(memberCode); + if (null == cuMember) { + return AjaxResult.error("会员或联系方式不存在"); } - return toAjax(iApiCodeService.sendRecoverCode(phone)); + return toAjax(iApiAliSmsService.sendRecoverCode(phone, cuMember.getPkId())); } /** @@ -72,7 +70,7 @@ public class ApiSmsController extends BaseController { return AjaxResult.error("会员信息不存在"); } - return toAjax(iApiCodeService.resetPayPasswordCode(cuMemberExt.getPhone())); + return toAjax(iApiAliSmsService.resetPayPasswordCode(cuMemberExt.getPhone(), cuMemberExt.getPkId())); } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiAliSmsService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiAliSmsService.java index f5d40803..971d6ec6 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiAliSmsService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiAliSmsService.java @@ -13,7 +13,7 @@ public interface IApiAliSmsService { * @param sendTimKey 验证码重复发送间隔KEY -- 为空使用默认 * @return */ - String sendCode(String phone, String checkKey, String sendTimKey); + String sendCode(String phone, String checkKey, String sendTimKey, Long pkMember); /** * 校验短信验证码 @@ -23,7 +23,7 @@ public interface IApiAliSmsService { * @param checkKey 验证码KEY -- 为空使用默认 * @return */ - String checkCode(String phone, String smsCode, String checkKey); + String checkCode(String phone, String smsCode, String checkKey, Long pkMember); // /** // * 登录发送验证码 @@ -65,7 +65,7 @@ public interface IApiAliSmsService { * @param phone 手机号码 * @return */ - String sendRecoverCode(String phone); + String sendRecoverCode(String phone, Long pkMember); /** * 校验找回密码验证码 @@ -74,7 +74,7 @@ public interface IApiAliSmsService { * @param smsCode 短信验证码 * @return */ - String checkRecoverCode(String phone, String smsCode); + String checkRecoverCode(String phone, String smsCode, Long pkMember); /** * 重置支付密码发送验证码 @@ -82,7 +82,7 @@ public interface IApiAliSmsService { * @param phone 手机号码 * @return */ - String resetPayPasswordCode(String phone); + String resetPayPasswordCode(String phone, Long pkMember); /** * 校验重置支付密码验证码 @@ -91,6 +91,6 @@ public interface IApiAliSmsService { * @param smsCode 短信验证码 * @return */ - String checkPayPasswordCode(String phone, String smsCode); + String checkPayPasswordCode(String phone, String smsCode, Long pkMember); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiCodeService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiCodeService.java deleted file mode 100644 index 2489f9b2..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/IApiCodeService.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hzs.member.sms.service; - -/** - * 验证码服务 - */ -public interface IApiCodeService { - - /** - * 短信验证码 - * - * @param phone 联系方式 - * @param checkKey 验证码KEY -- 为空使用默认 - * @param sendTimKey 验证码重复发送间隔KEY -- 为空使用默认 - * @return - */ - String sendCode(String phone, String checkKey, String sendTimKey); - - /** - * 校验短信验证码 - * - * @param phone 联系方式 - * @param smsCode 短信验证码 - * @param checkKey 验证码KEY -- 为空使用默认 - * @return - */ - String checkCode(String phone, String smsCode, String checkKey); - - /** - * 注册发送验证码 - * - * @param phone 联系方式 - * @return - */ - String sendRegisterCode(String phone); - - /** - * 校验注册验证码 - * - * @param phone 联系方式 - * @param smsCode 短信验证码 - * @return - */ - String checkRegisterCode(String phone, String smsCode); - - /** - * 找回密码发送验证码 - * - * @param phone 联系方式 - * @return - */ - String sendRecoverCode(String phone); - - /** - * 校验找回密码验证码 - * - * @param phone 联系方式 - * @param smsCode 短信验证码 - * @return - */ - String checkRecoverCode(String phone, String smsCode); - - /** - * 重置支付密码发送验证码 - * - * @param phone 联系方式 - * @return - */ - String resetPayPasswordCode(String phone); - - /** - * 校验重置支付密码验证码 - * - * @param phone 联系方式 - * @param smsCode 短信验证码 - * @return - */ - String checkPayPasswordCode(String phone, String smsCode); - -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java index 501821f2..80b18eec 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java @@ -33,12 +33,12 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { ISmsServiceApi iSmsServiceApi; @Override - public String sendCode(String phone, String checkKey, String sendTimKey) { - // 每个手机号每天只能获取30次短信验证码 + public String sendCode(String phone, String checkKey, String sendTimKey, Long pkMember) { + // 每个手机号每天只能获取20次短信验证码 String smsCountKey = String.format(CacheConstants.SMS_COUNT, DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN)); Object smsCountObj = redisService.getCacheMapValue(smsCountKey, phone); if (smsCountObj != null) { - if (Integer.parseInt(smsCountObj.toString()) >= 30) { + if (Integer.parseInt(smsCountObj.toString()) > 20) { return "当前手机号码获取短信已达当日上限"; } } @@ -64,12 +64,11 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { if (sendResult.isSuccess()) { // 返回成功,验证码放入缓存 // 验证码缓存有效期5分钟 - redisService.setCacheObject(checkKey + phone, code, 5L, TimeUnit.MINUTES); + redisService.setCacheObject(checkKey + (null != pkMember ? pkMember : phone), code, 5L, TimeUnit.MINUTES); // 验证码发送间隔不能低于1分钟 redisService.setCacheObject(sendTimKey + phone, "", 1L, TimeUnit.MINUTES); - // 每天只能发送30次短信验证码 if (smsCountObj == null) { redisService.setCacheMapValue(smsCountKey, phone, 1); redisService.expire(smsCountKey, 1, TimeUnit.DAYS); @@ -84,7 +83,7 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { } @Override - public String checkCode(String phone, String smsCode, String checkKey) { + public String checkCode(String phone, String smsCode, String checkKey, Long pkMember) { if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && "ASDF".equals(smsCode)) { // 测试环境暂时不发放短信 return null; @@ -95,16 +94,16 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { checkKey = CacheConstants.DEFAULT_CHECK; } - String cacheSmsCode = redisService.getCacheObject(checkKey + phone); + String cacheSmsCode = redisService.getCacheObject(checkKey + (null != pkMember ? pkMember : phone)); if (null == cacheSmsCode) { return "验证码已失效"; } if (!cacheSmsCode.equals(smsCode)) { - // 验证码错误,需不需要清除缓存验证码??会不会存在暴力破解情况?? + // TODO 验证码错误,需不需要清除缓存验证码??会不会存在暴力破解情况?? return "验证码错误"; } // 校验通过,删除验证码缓存 - redisService.deleteObject(checkKey + phone); + redisService.deleteObject(checkKey + (null != pkMember ? pkMember : phone)); return null; } @@ -125,12 +124,12 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { @Override public String sendRegisterCode(String phone) { - return this.sendCode(phone, CacheConstants.REGISTER_CHECK, CacheConstants.REGISTER_SEND_TIME); + return this.sendCode(phone, CacheConstants.REGISTER_CHECK, CacheConstants.REGISTER_SEND_TIME, null); } @Override public String checkRegisterCode(String phone, String smsCode) { - String str = this.checkCode(phone, smsCode, CacheConstants.REGISTER_CHECK); + String str = this.checkCode(phone, smsCode, CacheConstants.REGISTER_CHECK, null); if (null == str) { // 删除验证码间隔时间缓存 redisService.deleteObject(CacheConstants.REGISTER_SEND_TIME + phone); @@ -139,13 +138,13 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { } @Override - public String sendRecoverCode(String phone) { - return this.sendCode(phone, CacheConstants.RECOVER_CHECK, CacheConstants.RECOVER_SEND_TIME); + public String sendRecoverCode(String phone, Long pkMember) { + return this.sendCode(phone, CacheConstants.RECOVER_CHECK, CacheConstants.RECOVER_SEND_TIME, pkMember); } @Override - public String checkRecoverCode(String phone, String smsCode) { - String str = this.checkCode(phone, smsCode, CacheConstants.RECOVER_CHECK); + public String checkRecoverCode(String phone, String smsCode, Long pkMember) { + String str = this.checkCode(phone, smsCode, CacheConstants.RECOVER_CHECK, pkMember); if (null == str) { // 删除验证码间隔时间缓存 redisService.deleteObject(CacheConstants.RECOVER_SEND_TIME + phone); @@ -154,13 +153,13 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { } @Override - public String resetPayPasswordCode(String phone) { - return this.sendCode(phone, CacheConstants.RESET_CHECK, CacheConstants.RESET_SEND_TIME); + public String resetPayPasswordCode(String phone, Long pkMember) { + return this.sendCode(phone, CacheConstants.RESET_CHECK, CacheConstants.RESET_SEND_TIME, pkMember); } @Override - public String checkPayPasswordCode(String phone, String smsCode) { - String str = this.checkCode(phone, smsCode, CacheConstants.RESET_CHECK); + public String checkPayPasswordCode(String phone, String smsCode, Long pkMember) { + String str = this.checkCode(phone, smsCode, CacheConstants.RESET_CHECK, pkMember); if (null == str) { // 删除验证码间隔时间缓存 redisService.deleteObject(CacheConstants.RESET_SEND_TIME + phone); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiCodeServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiCodeServiceImpl.java deleted file mode 100644 index 24c0b2a2..00000000 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiCodeServiceImpl.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hzs.member.sms.service.impl; - -import com.hzs.member.sms.service.IApiAliSmsService; -import com.hzs.member.sms.service.IApiCodeService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * 验证码服务 - */ -@Slf4j -@Service -public class ApiCodeServiceImpl implements IApiCodeService { - - @Autowired - private IApiAliSmsService iApiAliSmsService; - - @Override - public String sendCode(String phone, String checkKey, String sendTimKey) { - return iApiAliSmsService.sendCode(phone, checkKey, sendTimKey); - } - - @Override - public String checkCode(String phone, String smsCode, String checkKey) { - return iApiAliSmsService.checkCode(phone, smsCode, checkKey); - } - - @Override - public String sendRegisterCode(String phone) { - return iApiAliSmsService.sendRegisterCode(phone); - } - - @Override - public String checkRegisterCode(String phone, String smsCode) { - return iApiAliSmsService.checkRegisterCode(phone, smsCode); - } - - @Override - public String sendRecoverCode(String phone) { - return iApiAliSmsService.sendRecoverCode(phone); - } - - @Override - public String checkRecoverCode(String phone, String smsCode) { - return iApiAliSmsService.checkRecoverCode(phone, smsCode); - } - - @Override - public String resetPayPasswordCode(String phone) { - return iApiAliSmsService.resetPayPasswordCode(phone); - } - - @Override - public String checkPayPasswordCode(String phone, String smsCode) { - return iApiAliSmsService.checkPayPasswordCode(phone, smsCode); - } - -} diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index fe0f02b6..1b45105f 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -1267,40 +1267,29 @@ cm.MEMBER_CODE as memberCode, cm.MEMBER_NAME memberName, cm.PHONE phone, - bg.PK_TRANSACTION as pkRegisterGrade, - bgg.PK_TRANSACTION as pkSettleGrade, - ba.PK_TRANSACTION as pkAwards, - bamax.PK_TRANSACTION as pkMaxAwards, + cm.pk_register_grade as pkRegisterGrade, + cm.pk_settle_grade as pkSettleGrade, + cm.pk_awards as pkAwards, + cm.PK_MAX_AWARDS as pkMaxAwards, ma.SEX as sex, cm.birth_date birthDate, ma.ID_TYPE idType, ma.ID_CARD idCard, ma.ID_FRONT idFront, ma.ID_BACK idBack, - ma.PK_PROVINCE pkProvince, - ma.PK_CITY pkCity, - ma.PK_COUNTY pkCounty, ma.ADDRESS address, - bb.BANK_NAME bankName, - ma.SUB_BANK_NAME subBankName, - ma.ACCOUNT_NAME accountName, ma.PHONE reservedPhone, ma.CARD_NUMBER cardNumber, - cm.EMAIL email, ma.CREATION_TIME certificationTime, cm.CREATION_TIME creationTime, cm.PAY_TIME payTime, cm.DIRECT_PUSH_NUMBER directPushNumber - from CU_MEMBER cm - left join CU_MEMBER_AUTHENTICATION ma on ma.PK_MEMBER = cm.PK_ID and ma.del_flag = 0 - left join BD_BANK bb on bb.PK_ID = ma.pk_bank - left join BD_GRADE bg on bg.pk_id=cm.PK_REGISTER_GRADE - left join BD_GRADE bgg on bgg.pk_id=cm.PK_SETTLE_GRADE - left join BD_AWARDS ba on ba.pk_id=cm.PK_AWARDS - left join BD_AWARDS baMax on baMax.pk_id=cm.PK_MAX_AWARDS + from CU_MEMBER_AUTHENTICATION ma + left join CU_MEMBER cm on ma.PK_MEMBER = cm.PK_ID left join bd_vertex ver on cm.pk_vertex = ver.pk_id LEFT JOIN cu_member_team ct ON ct.pk_id = cm.pk_team_code where cm.del_flag = 0 + and ma.del_flag = 0 and cm.PK_SETTLE_COUNTRY = #{pkCountry} @@ -1313,8 +1302,8 @@ and cm.MEMBER_NAME like #{memberName} ||'%' - - and ma.ID_CARD like '%' || #{birthDate} ||'%' + + and cm.birth_date = to_date(#{birthDate}, 'yyyy-mm-dd') and cm.PHONE = #{phone} @@ -1334,33 +1323,9 @@ and ma.ID_CARD = #{idCard} - - and ma.PK_PROVINCE = #{pkProvince} - - - and ma.PK_CITY = #{pkCity} - - - and ma.PK_COUNTY = #{pkCounty} - - - and ma.ADDRESS like #{address} ||'%' - and ma.SEX = #{sex} - - and bb.BANK_NAME like #{bankName}||'%' - - - and ma.SUB_BANK_NAME like #{subBankName}||'%' - - - and ma.CARD_NUMBER like #{cardNumber}||'%' - - - and cm.EMAIL like #{email}||'%' - and ma.CREATION_TIME >= to_date(#{startCertificationTime}, 'yyyy-mm-dd') diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberTeamMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberTeamMapper.xml index f4b068a8..db9a44db 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberTeamMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberTeamMapper.xml @@ -64,86 +64,6 @@ ORDER BY a.CREATION_TIME DESC - - - - update cu_member diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/self/CuSelfServiceLogMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/self/CuSelfServiceLogMapper.xml index 604953f4..96bdd03a 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/self/CuSelfServiceLogMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/self/CuSelfServiceLogMapper.xml @@ -58,7 +58,6 @@ - @@ -69,21 +68,8 @@ - - - - DEL_FLAG, - CREATION_TIME, - MODIFIED_TIME, - PK_COUNTRY, - PK_CREATOR, - PK_MODIFIED, - PK_ID, PK_MEMBER, EDIT_TYPE, OLD_VALUE, NEW_VALUE, BUSINESS_NO, APPROVE_STATUS, APPROVE_NUMBER, EDIT_TYPE_PAY, SINGLE_AMOUNT - - - @@ -267,14 +253,14 @@ and l.business_no = #{businessNo} - and m.member_code like '%'|| #{memberCode} || '%' + and m.member_code like '%'|| #{memberCode} || '%' and l.OLD_VALUE like '%'|| #{memberName} || '%' - and l.OLD_VALUE like '%'|| #{phone} || '%' + and l.OLD_VALUE like '%'|| #{phone} || '%' and l.APPROVE_STATUS = #{approveStatus} @@ -291,67 +277,29 @@ - - - - - - - - - update cu_self_service_log - - approve_status = #{approveStatus}, - approve_time = #{approveTime}, - pk_modified = #{pkModified}, - modified_time = sysdate - - where BUSINESS_NO = #{businessNo} - - diff --git a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushNewVo.java b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushNewVo.java index 906dd0c9..6bc02871 100644 --- a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushNewVo.java +++ b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushNewVo.java @@ -1,11 +1,4 @@ package com.hzs.report.member.vo; -/** - * @Description: - * @Author: yuhui - * @Time: 2023/8/25 10:24 - * @Classname: directPushNewVo - * @PackageName: com.hzs.sale.order.vo - */ import com.fasterxml.jackson.annotation.JsonFormat; import com.hzs.common.core.annotation.BigDecimalFormat; @@ -21,14 +14,6 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.sale.order.vo - *@Author: yh - *@CreateTime: 2023-08-25 10:24 - *@Description: TODO - *@Version: 1.0 - */ @AllArgsConstructor @NoArgsConstructor @Builder @@ -84,95 +69,95 @@ public class DirectPushNewVo { */ @Excel(name = "新增金额(¥)") @BigDecimalFormat() - private BigDecimal orderAmount=BigDecimal.ZERO; + private BigDecimal orderAmount = BigDecimal.ZERO; /** * 订单实际业绩 */ @Excel(name = "新增业绩(PV)") @BigDecimalFormat() - private BigDecimal orderAchieve=BigDecimal.ZERO; + private BigDecimal orderAchieve = BigDecimal.ZERO; /** * 大区业绩 */ @Excel(name = "大区业绩(PV)") @BigDecimalFormat() - private BigDecimal bigArealPv=BigDecimal.ZERO; + private BigDecimal bigArealPv = BigDecimal.ZERO; /** * 小区业绩 */ @Excel(name = "小区业绩(PV)") @BigDecimalFormat() - private BigDecimal smallAreaPv=BigDecimal.ZERO; + private BigDecimal smallAreaPv = BigDecimal.ZERO; /** * 大区金额 */ @Excel(name = "大区金额") @BigDecimalFormat() - private BigDecimal bigArealAm=BigDecimal.ZERO; + private BigDecimal bigArealAm = BigDecimal.ZERO; /** * 小区金额 */ @Excel(name = "小区金额") @BigDecimalFormat() - private BigDecimal smallAreaAm=BigDecimal.ZERO; + private BigDecimal smallAreaAm = BigDecimal.ZERO; /** * 注册金额 */ @Excel(name = "注册金额(¥)") @BigDecimalFormat() - private BigDecimal regAmount=BigDecimal.ZERO; + private BigDecimal regAmount = BigDecimal.ZERO; /** * 注册业绩 */ @Excel(name = "注册业绩(PV)") @BigDecimalFormat() - private BigDecimal regAchieve=BigDecimal.ZERO; + private BigDecimal regAchieve = BigDecimal.ZERO; /** * 升级金额 */ @Excel(name = "升级金额(¥)") @BigDecimalFormat() - private BigDecimal upgAmount=BigDecimal.ZERO; + private BigDecimal upgAmount = BigDecimal.ZERO; /** * 升级业绩 */ @Excel(name = "升级业绩(PV)") @BigDecimalFormat() - private BigDecimal upgAchieve=BigDecimal.ZERO; + private BigDecimal upgAchieve = BigDecimal.ZERO; /** * 复购金额 */ @Excel(name = "复购金额(¥)") @BigDecimalFormat() - private BigDecimal repAmount=BigDecimal.ZERO; + private BigDecimal repAmount = BigDecimal.ZERO; /** * 复购业绩 */ @Excel(name = "复购业绩(PV)") @BigDecimalFormat() - private BigDecimal repAchieve=BigDecimal.ZERO; + private BigDecimal repAchieve = BigDecimal.ZERO; /** * 重消金额 */ @Excel(name = "重消金额(¥)") @BigDecimalFormat() - private BigDecimal conAmount=BigDecimal.ZERO; + private BigDecimal conAmount = BigDecimal.ZERO; /** * 重消业绩 */ @Excel(name = "重消业绩(PV)") @BigDecimalFormat() - private BigDecimal conAchieve=BigDecimal.ZERO; + private BigDecimal conAchieve = BigDecimal.ZERO; /** @@ -188,7 +173,6 @@ public class DirectPushNewVo { private Date zonpayTime; - /** * 订单实际考核业绩 */ @@ -300,7 +284,7 @@ public class DirectPushNewVo { * 金额 */ @BigDecimalFormat() - private BigDecimal arealAm=BigDecimal.ZERO; + private BigDecimal arealAm = BigDecimal.ZERO; /** * 盒数 */ @@ -319,5 +303,4 @@ public class DirectPushNewVo { private String memberCodeStr; - } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java index 61ad3f7a..fa108fc1 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java @@ -2,7 +2,6 @@ package com.hzs.sale.order.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; -import com.hzs.common.domain.sale.ext.SaDeliverItemsExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderItemsExt; import com.hzs.common.domain.sale.order.SaOrder; @@ -42,16 +41,6 @@ public interface SaOrderMapper extends BaseMapper { List queryRetailSaOrderByDay(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("orderCode") String orderCode); - /* - * 查询订单,存在可能已经撤单的 - **/ - SaOrder querySaOrderExtByPkId(Long pkId); - - /* - * 根据发货单查询销售订单 - **/ - List querySaOrderByDeliverList(@Param("deliverItemExtList") List deliverItemExtList); - /** * 查询总销售金额 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/provider/SaOrderServiceProvider.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/provider/SaOrderServiceProvider.java index f0fdbb83..b3e21cac 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/provider/SaOrderServiceProvider.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/provider/SaOrderServiceProvider.java @@ -5,10 +5,8 @@ import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.ComputeUtil; -import com.hzs.common.domain.sale.ext.SaDeliverItemsExt; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.domain.sale.ext.SaOrderItemsExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrderItems; import com.hzs.sale.order.ISaOrderServiceApi; @@ -44,23 +42,6 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi { return R.ok(iSaOrderService.queryRetailSaOrderByDay(startDate, endDate, orderCode)); } - @Override - public R querySaOrderExtByPkId(Long pkId) { - return R.ok(iSaOrderService.querySaOrderExtByPkId(pkId)); - } - - @Override - public R> querySaOrderByDeliverList(List deliverItemExtList) { - return R.ok(iSaOrderService.querySaOrderByDeliverList(deliverItemExtList)); - } - - @Override - public R> queryOrderItemsListByOrderId(List pkOrderList, Integer pkCountry) { - OrderSelectParam param = new OrderSelectParam(); - param.setPkOrderList(pkOrderList); - return R.ok(iSaOrderService.queryOrderSelect(param, pkCountry)); - } - @Override @Transactional(rollbackFor = Exception.class) public R regEmptyOrderApproved(ApprovalBusinessResultDTO approvalBusinessResultDTO) { @@ -114,17 +95,6 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi { return R.fail(); } - @Override - public R saveOrder(SaOrderExt saOrderExt) { - try { - iSaOrderService.saveSaOrderByOrderExt(saOrderExt); - } catch (Exception e) { - e.printStackTrace(); - return R.fail(e.getMessage()); - } - return R.ok(); - } - @Override public List checkMemberIsFirstOrder(List memberCodeList) { List memberFirstOrderVos = iSaOrderService.checkMemberIsFirstOrder(memberCodeList); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index 1d062ba5..c5dcf188 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -309,16 +309,6 @@ public interface ISaOrderService extends IService { */ List queryRetailSaOrderByDay(Date startDate, Date endDate, String orderCode); - /* - * 查询订单,存在可能已经撤单的 - **/ - SaOrder querySaOrderExtByPkId(Long pkId); - - /* - * 根据发货单查询销售订单 - **/ - List querySaOrderByDeliverList(List deliverItemExtList); - /** * 获取系统参数 * @@ -555,11 +545,6 @@ public interface ISaOrderService extends IService { */ int insertBach(List orderList, List orderItemsList); - /** - * 生成三方销售订单 - */ - void saveSaOrderByOrderExt(SaOrderExt saOrderExt); - /** * 根据编号查询会员首单 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index c6175807..b23cf8e7 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -1466,16 +1466,6 @@ public class SaOrderServiceImpl extends ServiceImpl impl return baseMapper.queryRetailSaOrderByDay(startDate, endDate, orderCode); } - @Override - public SaOrder querySaOrderExtByPkId(Long pkId) { - return baseMapper.querySaOrderExtByPkId(pkId); - } - - @Override - public List querySaOrderByDeliverList(List deliverItemExtList) { - return baseMapper.querySaOrderByDeliverList(deliverItemExtList); - } - @Override public String querySystemConfigByKey(Integer pkCountry, String key) { return iSystemConfigServiceApi.getBonusSystemConfig(pkCountry, key).getData(); @@ -1780,16 +1770,6 @@ public class SaOrderServiceImpl extends ServiceImpl impl return i; } - @Override - @Transactional(rollbackFor = Exception.class) - public void saveSaOrderByOrderExt(SaOrderExt saOrderExt) { - save(saOrderExt); - for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { - saOrderItems.setPkOrder(saOrderExt.getPkId()); - } - iSaOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); - } - @Override public List checkMemberIsFirstOrder(List memberCodeList) { return baseMapper.checkMemberIsFirstOrder(memberCodeList); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/DirectPushNewVo.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/DirectPushNewVo.java deleted file mode 100644 index 1f6d4c72..00000000 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/DirectPushNewVo.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.hzs.sale.order.vo;/** - * @Description: - * @Author: yuhui - * @Time: 2023/8/25 10:24 - * @Classname: directPushNewVo - * @PackageName: com.hzs.sale.order.vo - */ - -import com.baomidou.mybatisplus.annotation.TableField; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; - -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.sale.order.vo - *@Author: yh - *@CreateTime: 2023-08-25 10:24 - *@Description: TODO - *@Version: 1.0 - */ -@AllArgsConstructor -@NoArgsConstructor -@Builder -@Data -public class DirectPushNewVo { - - /** - * 用户编号 - */ - private String memberCode; - - /** - * 用户姓名 - */ - private String userName; - - /** - * 订单实际金额 - */ - - private BigDecimal orderAmount; - - /** - * 订单实际业绩 - */ - private BigDecimal orderAchieve; - - /** - * 订单实际考核业绩 - */ - private BigDecimal orderAssAchieve; - - /** - * 联创编号 - */ - private BigDecimal LcMemberCode; - - - /** - * 联创姓名 - */ - private BigDecimal LcUserName; - - /** - * 奖衔名称 - */ - private String awardsUserName; -} diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml index 75d981c9..d4bcb027 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml @@ -1188,52 +1188,6 @@ SELECT 1 FROM dual - - select * from BD_TRADE_CONFIG c where c.del_flag = 0 and c.pk_country= #{pkCountry} @@ -54,29 +42,28 @@ order by c.creation_time desc - diff --git a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdTradeWhiteConfigMapper.xml b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdTradeWhiteConfigMapper.xml index 06f2f0a5..832bd458 100644 --- a/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdTradeWhiteConfigMapper.xml +++ b/bd-business/bd-business-system/src/main/resources/mapper/system/config/BdTradeWhiteConfigMapper.xml @@ -17,19 +17,6 @@ - - - DEL_FLAG - , - CREATION_TIME, - MODIFIED_TIME, - PK_COUNTRY, - PK_CREATOR, - PK_MODIFIED, - PK_ID, PK_MEMBER, WITHDRAWAL_STATE, TRANSFER_STATE - - - - - @@ -468,6 +463,15 @@ #{item} + + and (bwe.pre_sale_status = 0 + + or soi.pk_wares in + + #{item} + + + ) and so.rec_province in @@ -822,7 +826,6 @@ oi.SPECS_NAME specsName, bp.WEIGHT weight, bp.SHIPPING_CHANNEL shippingChannel, - bc.IN_EXCHANGE_RATE inExchangeRate, oi.LOGISTICS_CODE logisticsCode, oi.LOGISTICS_COMPANY logisticsCompany, m.MEMBER_CODE buyMemberCode, @@ -836,7 +839,6 @@ so.SYSTEM_TYPE from sa_order_items oi left join sa_order so on oi.PK_ORDER = so.PK_ID - left join BD_CURRENCY bc on bc.PK_ID = so.PK_RATE left join CU_MEMBER cm on cm.PK_ID = so.PK_MEMBER left join BD_WARES_EXTEND we on we.PK_WARES = oi.PK_WARES left join BD_WARES bw on bw.PK_ID = we.PK_WARES diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml index 75a27aa6..6b165f48 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml @@ -462,4 +462,31 @@ order by bw.wares_code + + + diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java index 40041cfd..4afde1da 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java @@ -364,28 +364,6 @@ public class EnumsInitController { initList.add(this.createData(value.getKey(), value.getLabel())); } - - /** - * 供应方式 - */ - for (ESupplyWay value : ESupplyWay.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - - /** - * 预售状态 - */ - for (EPresaleStatus value : EPresaleStatus.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - - /** - * 订单支付方式 - */ - for (EOrderPayType value : EOrderPayType.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - /** * 交易类型 */ @@ -499,13 +477,6 @@ public class EnumsInitController { initList.add(this.createData(value.getKey(), value.getLabel())); } - /** - * 产品发货渠道 - */ - for (EShippingChannel value : EShippingChannel.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - /** * 支付业务类型 */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java index 099f8d94..9026319e 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EDelivery.java @@ -25,16 +25,6 @@ public enum EDelivery { */ COMPANY_PICKED_UP(2, "公司自提", 0), - /** - * 店铺自提 - */ - SHOP_PICKED_UP(3, "店铺自提", 0), - - /** - * 店铺配送 - */ - SHOP_DELIVERY(4, "店铺配送", 0), - /** * 提货中心 */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderPayType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderPayType.java index 9ab5961b..46a2660c 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderPayType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderPayType.java @@ -5,11 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 订单支付方式 - * @Author: jiang chao - * @Time: 2022/11/4 14:11 - * @Classname: EOrderPayType - * @PackageName: com.hzs.common.core.enums + * 订单支付方式 */ @AllArgsConstructor @Getter @@ -18,12 +14,12 @@ public enum EOrderPayType { /** * 钱包 */ - WALLET(0, "钱包", 0,EnumsPrefixConstants.ORDER_PAY_TYPE + "0"), + WALLET(0, "钱包", 0), /** * 在线 */ - ONLINE(1, "在线", 0,EnumsPrefixConstants.ORDER_PAY_TYPE + "1"), + ONLINE(1, "在线", 0), ; @@ -39,24 +35,16 @@ public enum EOrderPayType { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; - - /** - * 根据值获取枚举 - * - * @param value - * @return - */ - public static EOrderPayType getEnumByValue(int value) { + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } for (EOrderPayType enums : EOrderPayType.values()) { - if (enums.getValue() == value) { - return enums; + if (enums.value == value) { + return enums.getLabel(); } } - return null; + return ""; } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPresaleStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPresaleStatus.java index 0ea153e9..e15756b5 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPresaleStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPresaleStatus.java @@ -1,15 +1,10 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 预售状态 - * @Author: jiang chao - * @Time: 2022/11/4 14:05 - * @Classname: EPresaleStatus - * @PackageName: com.hzs.common.core.enums + * 预售状态 */ @AllArgsConstructor @Getter @@ -18,12 +13,12 @@ public enum EPresaleStatus { /** * 在售 */ - ON_SALE(0, "在售", 0, EnumsPrefixConstants.PRESALE_STATUS + "0"), + ON_SALE(0, "在售", 0), /** * 预售 */ - PRESALE(1, "预售", 0, EnumsPrefixConstants.PRESALE_STATUS + "1"), + PRESALE(1, "预售", 0), /** * 已售罄 2.0删除该项 已对接过设计 @@ -33,7 +28,7 @@ public enum EPresaleStatus { /** * 缺货 */ - OUT_STOCK(3, "缺货", 0, EnumsPrefixConstants.PRESALE_STATUS + "3"), + OUT_STOCK(3, "缺货", 0), ; @@ -49,10 +44,6 @@ public enum EPresaleStatus { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; public static EPresaleStatus getEPresaleStatus(int value ){ for (EPresaleStatus ePresaleStatus : EPresaleStatus.values()) { @@ -63,4 +54,16 @@ public enum EPresaleStatus { return null; } + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (EPresaleStatus enums : EPresaleStatus.values()) { + if (enums.getValue() == value) { + return enums.getLabel(); + } + } + return ""; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EShippingChannel.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EShippingChannel.java index b8e07cf3..ac10218f 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EShippingChannel.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EShippingChannel.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -11,9 +10,9 @@ import lombok.Getter; @Getter public enum EShippingChannel { - TOTAL_WAREHOUSE(1, "总仓发货", 0, EnumsPrefixConstants.E_SHIPPING_CHANNEL + "1"), + TOTAL_WAREHOUSE(1, "总仓发货", 0), - A_PIECE(2, "一件代发", 0, EnumsPrefixConstants.E_SHIPPING_CHANNEL + "2"), + A_PIECE(2, "一件代发", 0), ; @@ -23,10 +22,6 @@ public enum EShippingChannel { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; /** * 根据值,返回枚举 @@ -42,4 +37,17 @@ public enum EShippingChannel { } return TOTAL_WAREHOUSE; } + + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (EShippingChannel enums : EShippingChannel.values()) { + if (enums.value.equals(value)) { + return enums.getLabel(); + } + } + return ""; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java index 79b86a8b..a95e1da0 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java @@ -89,19 +89,22 @@ public enum ESpecialArea { */ private final int menuDetailValue; - public static String getESpecialArea(int value) { + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } for (ESpecialArea eSpecialArea : ESpecialArea.values()) { if (eSpecialArea.getValue() == value) { return eSpecialArea.getLabel(); } } - return null; + return ""; } - public static ESpecialArea getESpecialAreaEnum(int value) { + public static String getESpecialArea(int value) { for (ESpecialArea eSpecialArea : ESpecialArea.values()) { if (eSpecialArea.getValue() == value) { - return eSpecialArea; + return eSpecialArea.getLabel(); } } return null; diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESupplyWay.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESupplyWay.java index 1d9835aa..63404a4c 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESupplyWay.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESupplyWay.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -14,12 +13,12 @@ public enum ESupplyWay { /** * 自营 */ - SELF(0, "自营", 0, EnumsPrefixConstants.SUPPLY_WAY + "0"), + SELF(0, "自营", 0), /** * 非自营 */ - NO_SELF(1, "非自营", 0, EnumsPrefixConstants.SUPPLY_WAY + "1"), + NO_SELF(1, "非自营", 0), ; @@ -35,18 +34,26 @@ public enum ESupplyWay { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; - public static ESupplyWay getESupplyWay(int value){ + public static ESupplyWay getESupplyWay(int value) { for (ESupplyWay eSupplyWay : ESupplyWay.values()) { - if (eSupplyWay.value == value){ + if (eSupplyWay.value == value) { return eSupplyWay; } } return null; } + public static String getLabelByVal(Integer value) { + if (null == value) { + return ""; + } + for (ESupplyWay eSupplyWay : ESupplyWay.values()) { + if (eSupplyWay.getValue() == value) { + return eSupplyWay.getLabel(); + } + } + return ""; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETransportType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETransportType.java index b551a1b4..9564744e 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETransportType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETransportType.java @@ -43,13 +43,15 @@ public enum ETransportType { */ private final String key; - - public static ETransportType getETransportType(int value){ - for (ETransportType eTransportType : ETransportType.values()) { - if (eTransportType.getValue() == value){ - return eTransportType; + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (ETransportType enums : ETransportType.values()) { + if (enums.value == value) { + return enums.getLabel(); } } - return null; + return ""; } } From e2f34dd4adfbf841a9237a023dc90894238ed9c4 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 13 Aug 2025 09:37:17 +0800 Subject: [PATCH 63/89] =?UTF-8?q?##=20=E6=9C=AA=E5=90=88=E5=8D=95=E9=9D=9E?= =?UTF-8?q?=E5=9C=A8=E5=94=AE=E5=95=86=E5=93=81=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sale/product/controller/manage/BdProductController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/controller/manage/BdProductController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/controller/manage/BdProductController.java index ff9d5f93..4f6f0b0b 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/controller/manage/BdProductController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/controller/manage/BdProductController.java @@ -545,7 +545,7 @@ public class BdProductController extends BaseController { productParams.setPkCountry(SecurityUtils.getPkCountry()); productParams.setSystemType(SecurityUtils.getSystemType()); - Map transactionMap = transactionCommonService.exportEnumTransaction(ETransportType.values(), EYesNo.values(), EShippingChannel.values(), EUnit.values()); + Map transactionMap = transactionCommonService.exportEnumTransaction(ETransportType.values(), EYesNo.values(), EUnit.values()); List list = productService.selectByQueryList(productParams); for (ProductVo productVo : list) { BdClassify classify = classifyService.getClassify(productVo.getPkClassify()); @@ -554,7 +554,7 @@ public class BdProductController extends BaseController { } // 发货类型翻译 - productVo.setShippingChannelVal(transactionMap.get(EShippingChannel.getEnumByValue(productVo.getShippingChannel()).getKey())); + productVo.setShippingChannelVal(EShippingChannel.getLabelByValue(productVo.getShippingChannel())); // 产品属性翻译 if (productVo.getProductAttr() != null) { productVo.setProductAttrVal(EProductAttrType.getEnumByValue(productVo.getProductAttr()).getLabel()); From 76fcb536af77507dec22d3ae6a8be971e3532514 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 13 Aug 2025 10:03:29 +0800 Subject: [PATCH 64/89] =?UTF-8?q?##=20=E6=97=A5=E7=BB=93=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=85=8D=E9=80=81=E4=B8=AD=E5=BF=83=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml index e3a4476b..65845453 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml @@ -381,6 +381,7 @@ on cm.pk_settle_country = bc.pk_country left join cu_member_retail_region cr on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0 + and cr.business_type = 2 where cm.del_flag = 0 From f5886af09fb9b9010dcebcf3427a0c17cf0e3d01 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 13 Aug 2025 11:23:11 +0800 Subject: [PATCH 65/89] =?UTF-8?q?##=20=E6=9C=AA=E5=90=88=E5=8D=95=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E4=BE=9B=E5=BA=94=E5=95=86=E5=88=A4=E6=96=AD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java | 3 --- .../main/resources/mapper/sale/order/SaOrderItemsMapper.xml | 2 -- 2 files changed, 5 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java index ce3f48ec..b4649ded 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java @@ -24,9 +24,6 @@ import java.util.*; /** * 销售订单-明细表 服务实现类 - * - * @author hzs - * @since 2022-08-31 */ @Service public class SaOrderItemsServiceImpl extends ServiceImpl implements ISaOrderItemsService { diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml index 83f463c8..bae2e4cb 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml @@ -269,8 +269,6 @@ where so.del_flag = 0 and so.pk_country = #{pkCountry} and soi.del_flag = 0 - - and soi.pk_supplier is null and soi.order_status in From 25337ae93c01d167dea91ac1f8205f32f433a40b Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 13 Aug 2025 11:26:33 +0800 Subject: [PATCH 66/89] =?UTF-8?q?##=20=E4=BA=A7=E5=93=81=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=AE=9E=E4=BD=93=E6=B7=BB=E5=8A=A0SEQ?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hzs/common/domain/sale/order/SaOrderSync.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java index 0285fb73..6605efa8 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java @@ -1,5 +1,6 @@ package com.hzs.common.domain.sale.order; +import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -18,6 +19,7 @@ import java.util.Date; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) +@KeySequence("SA_ORDER_SYNC_SEQ") @TableName("SA_ORDER_SYNC") public class SaOrderSync implements Serializable { From 45030e2077a0c4dd9a385a8b3a4414377638f112 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 13 Aug 2025 17:36:15 +0800 Subject: [PATCH 67/89] =?UTF-8?q?##=20=E5=A4=8D=E8=B4=AD=E9=85=8D=E9=80=81?= =?UTF-8?q?=E6=94=B6=E7=9B=8A=EF=BC=9B=E5=A4=8D=E8=B4=AD=E5=88=86=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E7=BA=A7=E5=B7=AE=E6=94=B6=E7=9B=8A=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/member/base/IMemberServiceApi.java | 10 + .../manage/CuMemberBonusController.java | 59 ++---- .../bonus/service/impl/BonusSettleHandle.java | 18 +- .../service/impl/BonusSettleRangeHandle.java | 190 ++++++++++++++++-- .../impl/CuMemberBonusServiceImpl.java | 2 + .../bonus/bonus/vo/BonusRecordDetailVO.java | 2 +- .../com/hzs/bonus/bonus/vo/BonusTotalVO.java | 136 +------------ .../hzs/bonus/bonus/vo/CuMemberBonusVO.java | 50 +---- .../bonus/vo/MemberBonusFirstPurchaseVO.java | 12 +- .../bonus/bonus/CuMemberBonusMapper.xml | 46 +++-- .../mapper/bonus/order/BonusOrderMapper.xml | 61 ++++++ .../base/provider/MemberServiceProvider.java | 21 ++ .../mapper/CuMemberRetailRegionMapper.java | 27 ++- .../service/ICuMemberRetailRegionService.java | 19 +- .../impl/CuMemberRetailRegionServiceImpl.java | 11 +- .../member/CuMemberRetailRegionMapper.xml | 33 +-- .../controller/api/ApiOrderController.java | 2 +- .../enums/controller/EnumsInitController.java | 4 - .../core/constant/BonusFieldConstants.java | 5 - .../common/core/constant/RetailConstants.java | 11 + .../core/constant/msg/BonusMsgConstants.java | 5 + .../common/core/enums/EBonusIncomeStatus.java | 24 ++- .../hzs/common/core/enums/EBonusItems.java | 9 +- .../com/hzs/common/core/enums/ECalType.java | 6 - .../com/hzs/common/core/enums/EOrderType.java | 16 +- .../domain/member/bonus/CuMemberBonus.java | 2 +- 26 files changed, 437 insertions(+), 344 deletions(-) diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java index 8c73f2c0..eacd699b 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java @@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.base.CuMemberRegister; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.member.account.dto.BusinessCommissionDTO; @@ -14,6 +15,7 @@ import com.hzs.member.base.dto.ZeroElementRevokeDTO; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.Map; @@ -381,4 +383,12 @@ public interface IMemberServiceApi { */ R otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag); + /** + * 有效区域列表 + * + * @param queryDate + * @return + */ + R> listEffectiveRegion(Date queryDate); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java index e8aaa639..aa7cf83a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java @@ -10,14 +10,11 @@ import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO; import com.hzs.common.core.annotation.AccessPermissions; import com.hzs.common.core.annotation.ColumnAuthority; import com.hzs.common.core.annotation.Log; -import com.hzs.common.core.constant.BonusFieldConstants; import com.hzs.common.core.constant.EnumsPrefixConstants; import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.ComputeUtil; 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.utils.reflect.ReflectUtils; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.ext.CuMemberBonusExt; @@ -46,14 +43,14 @@ import java.util.stream.Collectors; public class CuMemberBonusController extends BaseController { @Autowired - private ICuMemberBonusService cuMemberBonusService; + private ICuMemberBonusService iCuMemberBonusService; @Autowired - private ITransactionCommonService transactionCommonService; + private ITransactionCommonService iTransactionCommonService; @DubboReference - IUserServiceApi userServiceApi; + IUserServiceApi iUserServiceApi; @DubboReference - IMenuColumnServiceApi menuColumnServiceApi; + IMenuColumnServiceApi iMenuColumnServiceApi; /** * 分页查询会员某个时间段内的奖金汇总 @@ -73,7 +70,7 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); startPage(); - List cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); + List cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); TableDataInfo dataTable = getDataTable(cuMemberBonusList); dataTable.setRows(getBonusTotalVoS(cuMemberBonusList)); return dataTable; @@ -94,9 +91,9 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkVertexList(pkVertex); bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); - List cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); + List cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); List bonusTotalVoList = getBonusTotalVoS(cuMemberBonusList); - Map sourceBonusList = menuColumnServiceApi.queryMenuColumn("totalBonus", SecurityUtils.getUserId()).getData(); + Map sourceBonusList = iMenuColumnServiceApi.queryMenuColumn("totalBonus", SecurityUtils.getUserId()).getData(); ExcelUtil util = new ExcelUtil<>(BonusTotalVO.class, sourceBonusList); util.exportExcel(response, bonusTotalVoList, "奖金汇总导出"); } @@ -105,9 +102,6 @@ public class CuMemberBonusController extends BaseController { List totalVoList = new ArrayList<>(); cuMemberBonusList.forEach(cuMemberBonus -> { BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class); - for (String key : CuMemberBonusVO.INCOME_ARRAY) { - ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate())); - } totalVoList.add(bonusTotalVO); }); return totalVoList; @@ -136,8 +130,8 @@ public class CuMemberBonusController extends BaseController { } packageBonusParam(bonusParam); startPage(); - List cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); - CuMemberBonusExt cmb = cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam); + List cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); + CuMemberBonusExt cmb = iCuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam); if (cmb != null) { cmb.setMemberCode("合计"); cuMemberBonusExtList.add(cmb); @@ -163,18 +157,18 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkVertexList(pkVertex); bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); - List cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); - CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus(); - cuMemberBonusExt.setMemberCode("小计:"); + List cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); + CuMemberBonusExt cuMemberBonusExt = iCuMemberBonusService.initCuMemberBonus(); + cuMemberBonusExt.setMemberCode("合计:"); if (CollectionUtil.isNotEmpty(cuMemberBonusExtList)) { cuMemberBonusExt.setOutExchangeRate(cuMemberBonusExtList.get(0).getOutExchangeRate()); for (CuMemberBonusExt memberBonusExt : cuMemberBonusExtList) { - cuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt); + iCuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt); } } cuMemberBonusExtList.add(cuMemberBonusExt); List cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList); - Map bonusDetail = menuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData(); + Map bonusDetail = iMenuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData(); ExcelUtil util = new ExcelUtil<>(CuMemberBonusVO.class, bonusDetail); util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出"); } @@ -183,13 +177,8 @@ public class CuMemberBonusController extends BaseController { List cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size()); for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) { CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class); - cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode()); cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName()); - - for (String key : CuMemberBonusVO.INCOME_ARRAY) { - ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate())); - } cuMemberBonusVoList.add(cuMemberBonusVO); } return cuMemberBonusVoList; @@ -205,7 +194,7 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); startPage(); - return cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); + return iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); } @@ -217,18 +206,14 @@ public class CuMemberBonusController extends BaseController { public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam) { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); - TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); + TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); List memberBonusDetailSerVOList = (List) tableDataInfo.getRows(); // 获取需要翻译的枚举翻译 - Map transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values()); - Map transactionLongMap = transactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD); + Map transactionLongMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD); for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) { - if (transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) { - memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType())); - } - if (transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())) { - memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())); - } + memberBonusDetailSerVO.setOrderTypeVal(EOrderType.getLabelByValue(memberBonusDetailSerVO.getOrderType())); + memberBonusDetailSerVO.setIncomeStatusVal(EBonusIncomeStatus.getLabelByValue(memberBonusDetailSerVO.getIncomeStatus())); + if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) { memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade())); } @@ -236,12 +221,12 @@ public class CuMemberBonusController extends BaseController { memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards())); } } - ExcelUtil util = new ExcelUtil<>(MemberBonusDetailSerVO.class, menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData()); + ExcelUtil util = new ExcelUtil<>(MemberBonusDetailSerVO.class, iMenuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData()); util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出"); } private void packageBonusParam(BonusParam bonusParam) { - UserAuthorityDTO userAuthorityDto = userServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); + UserAuthorityDTO userAuthorityDto = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); bonusParam.setVertexList(userAuthorityDto.getUserVertexList()); bonusParam.setTeamList(userAuthorityDto.getUserTeamList()); bonusParam.setSystemType(SecurityUtils.getSystemType()); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java index 15135c09..b6b5bdea 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java @@ -57,7 +57,7 @@ public abstract class BonusSettleHandle { * 获得 复购级差收益的备注 * * @param saOrderExt 订单编号 - * @param cuMemberBonusRange 报单服务费 + * @param cuMemberBonusRange * @param sourceMemberRangeExt 提供奖金的人 * @param targetMemberRangeExt 获得奖金的人 */ @@ -70,6 +70,22 @@ public abstract class BonusSettleHandle { cuMemberBonusRange.setRemark(remark); } + /** + * 获得 复购配送收益的备注 + * + * @param saOrderExt 订单编号 + * @param cuMemberBonusDetail + * @param sourceMemberRangeExt 提供奖金的人 + * @param targetMemberRangeExt 获得奖金的人 + */ + protected void regionRepurRetailRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail, CuMemberRetailRangeExt sourceMemberRangeExt, + CuMemberRetailRangeExt targetMemberRangeExt) { + String remark = String.format(BonusMsgConstants.REPUR_REGION, saOrderExt.getOrderCode(), + sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(), + targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName()); + cuMemberBonusDetail.setRemark(remark); + } + protected CuMemberBonus getCuMemberBonus(Integer period, Map cuMemberBonusMap, Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) { if (cuMemberBonusMap.containsKey(pkMember)) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 1294b643..7bb7f0a1 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -15,9 +15,12 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.bonus.*; import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; +import com.hzs.common.domain.sale.ext.SaOrderWaresExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.BdGrade; +import com.hzs.member.base.IMemberServiceApi; import com.hzs.member.detail.ICuMemberServiceLogServiceApi; import com.hzs.system.config.dto.BonusConfigDTO; import lombok.extern.slf4j.Slf4j; @@ -46,6 +49,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { @DubboReference ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; + @DubboReference + IMemberServiceApi iMemberServiceApi; /** * 日结: @@ -94,18 +99,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { List autoLevelList = iCuMemberGradeService.listAutoLevel(settleStartDate, settleEndDate); autoLevelList.forEach(tmpLevel -> autoLevelMap.put(tmpLevel.getPkOrder(), tmpLevel)); - // 按照血缘,查询该会员所有伞上会员 - List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); - // 会员结算map(key:会员ID,value:结算扩展) Map memberRangeExtMap = new HashMap<>(); - // 等级map(key:等级ID,value:等级对象) - Map gradeIdMap = new HashMap<>(); - // 等级列表 - List retaiGradeList = bonusConfigDTO.getRetaiGradeList(); - for (BdGrade bdGrade : retaiGradeList) { - gradeIdMap.put(bdGrade.getPkId(), bdGrade); - } + // 按照血缘,查询该会员所有伞上会员 + List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); // 结算会员map处理 for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { @@ -113,8 +110,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } - // 级差收益 + // 等级map(key:等级ID,value:等级对象) + Map gradeIdMap = new HashMap<>(); + // 等级列表 + List retaiGradeList = bonusConfigDTO.getRetaiGradeList(); + for (BdGrade bdGrade : retaiGradeList) { + gradeIdMap.put(bdGrade.getPkId(), bdGrade); + } + // 配送收益配置 + Map regionMap = iMemberServiceApi.listEffectiveRegion(settleStartDate).getData(); + + + // 直推、复购级差收益 List cuMemberBonusRangeList = new ArrayList<>(); + // 复购配送收益 + List cuMemberBonusDetailList = new ArrayList<>(); // 上面更新网体,按会员表是否激活进行处理 for (SaOrderExt saOrderExt : retailOrderList) { @@ -181,10 +191,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { tmpMemberRetailRange.setGradeName(bdGrade.getGradeName()); } } - } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() - && boxNum > 0) { - // 复购订单,计算复购级差 - cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt)); + } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { + // 复购订单 + if (boxNum > 0) { + // 存在盒数商品,计算复购级差 + cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, + bonusConfigDTO, period, saOrderExt)); + } + // 计算配送收益 + if (regionMap.size() != 0) { + cuMemberBonusDetailList.addAll(calculateRetailRepurRegionBonus(memberRangeExtMap, cuMemberBonusMap, + bonusConfigDTO, period, saOrderExt, regionMap)); + } } } if (cuMemberBonusRangeList.size() > 0) { @@ -194,6 +212,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { bonusRecordDetailVO.getCuMemberBonusRangeList().addAll(cuMemberBonusRangeList); } } + if (cuMemberBonusDetailList.size() > 0) { + if (bonusRecordDetailVO.getCuMemberBonusDetailList() == null) { + bonusRecordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList); + } else { + bonusRecordDetailVO.getCuMemberBonusDetailList().addAll(cuMemberBonusDetailList); + } + } // 更新网体 iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap); } @@ -563,6 +588,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 商品盒数 BigDecimal boxNum = new BigDecimal(saOrderExt.getBoxNum()); + // 2025.08.13 添加分公司级差收益,每1盒(4个产品)第一分公司4元,第二分公司4元,公司6元,总拨出14元 + int branch = 0; + // 前一个会员等级 int beforeGradeValue = 0; // 前面累计奖金 @@ -678,21 +706,72 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } memberBonusRangeList.add(cuMemberBonusRange); } + + // 2025.08.13 添加分公司级差收益,每1盒(4个产品)第一分公司4元,第二分公司4元,公司6元,总拨出14元 + if (EGrade.BRANCH_COMPANY.getValue() == targetMemberRangeExt.getGradeValue() && branch < 2) { + // 等级是分公司 并且 发放次数小于2 + this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO, + period, saOrderExt, boxNum, memberBonusRangeList, branch); + branch++; + } else if (EGrade.COMPANY.getValue() == targetGradeValue && branch != 3) { + // 等级是总公司 + this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO, + period, saOrderExt, boxNum, memberBonusRangeList, branch); + branch = 3; + } } return memberBonusRangeList; } + private void calculateRetailRepurCompanyRangeBonus(CuMemberRetailRangeExt sourceMemberRangeExt, CuMemberRetailRangeExt targetMemberRangeExt, + Map cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period, + SaOrderExt saOrderExt, BigDecimal boxNum, List memberBonusRangeList, + int branch) { + // 2025.08.13 二级分公司,一级总公司复购级差 + BigDecimal calValue = BigDecimal.ZERO; + if (EGrade.BRANCH_COMPANY.getValue() == targetMemberRangeExt.getGradeValue()) { + // 分公司奖金 + calValue = RetailConstants.BRANCH; + } else if (EGrade.COMPANY.getValue() == targetMemberRangeExt.getGradeValue()) { + // 总公司奖金 = 总拨出奖金 - (分公司奖金 * 分公司数量) + calValue = RetailConstants.COMPANY_TOTAL.subtract(RetailConstants.BRANCH.multiply(new BigDecimal(branch))); + } + BigDecimal bonusIncome = calValue.multiply(boxNum); + + CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), + targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); + int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_INCOME.getValue()); + // 会员级差 + CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); + cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount()); + cuMemberBonusRange.setCalValue(calValue); + cuMemberBonusRange.setPretaxIncome(bonusIncome); + cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade()); + cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade()); + cuMemberBonusRange.setPkOrder(saOrderExt.getPkId()); + cuMemberBonusRange.setPkOrderItems(0L); + rangeRepurRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); + BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); + if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { + cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cuMemberBonusRange.getPretaxIncome())); + setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange); + } + memberBonusRangeList.add(cuMemberBonusRange); + } + private CuMemberBonusRange getCuMemberRetailBonusRange(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt, CuMemberBonus cuMemberBonus, Integer pkBonusItems) { CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder() - .incomeStatus(targetMemberRangeExt.getIncomeStatus()) .pkOrder(saOrderExt.getPkId()) .pkBonusItems(pkBonusItems) .pkBonus(cuMemberBonus.getPkId()) - // 正常还是烧伤 + .incomeStatus(targetMemberRangeExt.getIncomeStatus()) .calAchieve(saOrderExt.getOrderAchieve()) .calType(ECalType.VALUE.getValue()) .calValue(BigDecimal.ZERO) + .pretaxIncome(BigDecimal.ZERO) + .incomeTax(BigDecimal.ZERO) + .realIncome(BigDecimal.ZERO) .incomeRatio(BigDecimal.ZERO) .incomeDialRatio(BigDecimal.ZERO) .orderDialRatio(BigDecimal.ZERO) @@ -702,6 +781,83 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return cuMemberBonusRange; } + + /** + * 计算复购配送区域收益 + */ + List calculateRetailRepurRegionBonus(Map memberRangeExtMap, Map cuMemberBonusMap, + BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map regionMap) { + // 复购配送区域返回数据 + List memberBonusDetailList = new ArrayList<>(); + + // 订单下单人自己 + CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); + + // 配送区域配置 + CuMemberRetailRegion retailRegion = regionMap.get(saOrderExt.getRecCounty()); + if (null != retailRegion) { + CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(retailRegion.getPkMember()); + // 复购配送区域收益 + BigDecimal bonusIncome = BigDecimal.ZERO; + + List pkWaresList = new ArrayList<>(); + for (SaOrderWaresExt saOrderWaresExt : saOrderExt.getOrderWaresExtList()) { + if (!pkWaresList.contains(saOrderWaresExt.getPkWares())) { + // 商品没有处理过,则进行处理 + pkWaresList.add(saOrderWaresExt.getPkWares()); + // 复购区分收益 * 商品数量 + bonusIncome = bonusIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity()))); + } + } + + if (bonusIncome.compareTo(BigDecimal.ZERO) > 0) { + // 处理复购级差收益 + // 会员奖金 + CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), + targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); + int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_DELIVERY_INCOME.getValue()); + // 会员配送区域收益 + CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); + cuMemberBonusDetail.setCalValue(BigDecimal.ZERO); + cuMemberBonusDetail.setCalAchieve(BigDecimal.ZERO); + cuMemberBonusDetail.setPretaxIncome(bonusIncome); + cuMemberBonusDetail.setPkOrder(saOrderExt.getPkId()); + // 备注 + regionRepurRetailRemark(saOrderExt, cuMemberBonusDetail, sourceMemberRangeExt, targetMemberRangeExt); + BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); + if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) { + cuMemberBonus.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailAreaIncome(), cuMemberBonusDetail.getPretaxIncome())); + setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail); + } + memberBonusDetailList.add(cuMemberBonusDetail); + } + } + return memberBonusDetailList; + } + + private CuMemberBonusDetail getCuMemberBonusDetail(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt, + CuMemberBonus cuMemberBonus, Integer pkBonusItems) { + CuMemberBonusDetail cuMemberBonusDetail = CuMemberBonusDetail.builder() + .pkOrder(saOrderExt.getPkId()) + .pkBonusItems(pkBonusItems) + .pkBonus(cuMemberBonus.getPkId()) + .incomeStatus(targetMemberRangeExt.getIncomeStatus()) + .calAchieve(saOrderExt.getOrderAchieve()) + .calType(ECalType.VALUE.getValue()) + .calValue(BigDecimal.ZERO) + .pretaxIncome(BigDecimal.ZERO) + .incomeTax(BigDecimal.ZERO) + .realIncome(BigDecimal.ZERO) + .incomeRatio(BigDecimal.ZERO) + .incomeDialRatio(BigDecimal.ZERO) + .orderDialRatio(BigDecimal.ZERO) + .build(); + cuMemberBonusDetail.setPkCountry(targetMemberRangeExt.getPkSettleCountry()); + cuMemberBonusDetail.setPkCreator(MagicNumberConstants.PK_ADMIN); + return cuMemberBonusDetail; + } + + /** * 获取手动激活map * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index b2619511..19c7e8ec 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -140,6 +140,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusCoachList; /** - * 服务奖 嗨粉推荐奖金 创客空间直推 创客空间分享 + * 服务奖 */ private List cuMemberBonusDetailList; diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java index 84571138..da4926f7 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java @@ -31,149 +31,29 @@ public class BonusTotalVO implements Serializable { */ private Integer pkCountry; - /** - * 直推收益 - */ - private BigDecimal directIncomeOri; - - /** - * 拓展收益 - */ - private BigDecimal expandIncomeOri; - - /** - * 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶) - */ - private BigDecimal expandNoCappingOri; - - /** - * 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益) - */ - private BigDecimal expandCappingOri; - - /** - * 辅导收益 - */ - private BigDecimal coachIncomeOri; - - /** - * 分红收益 - */ - private BigDecimal shareIncomeOri; - - /** - * 报单收益 - */ - private BigDecimal serviceIncomeOri; - - - /** - * 云代直推收益 - */ - private BigDecimal cloudDirectIncomeOri; - - /** - * 云代首购收益 - */ - private BigDecimal cloudPurIncomeOri; - - /** - * 云代复购收益 - */ - private BigDecimal cloudRepurIncomeOri; - - private BigDecimal repurPushIncomeOri; - - /** - * 直推级差收益 - */ - private BigDecimal retailRangeIncome; /** * 直推级差收益 */ @Excel(name = "直推级差收益", scale = 2) - private BigDecimal retailRangeIncomeOri; + private BigDecimal retailRangeIncome; - /** - * 复购级差收益 - */ - private BigDecimal repurRangeIncome; /** * 复购级差收益 */ @Excel(name = "复购级差收益", scale = 2) - private BigDecimal repurRangeIncomeOri; + private BigDecimal repurRangeIncome; /** - * 复购拓展收益 + * 复购配送收益 */ - private BigDecimal repurExpandIncomeOri; - - /** - * 复购券 - */ - private BigDecimal repurCouponOri; - - /** - * 复购券均分收益 - */ - private BigDecimal repurCouponShareOri; - - /** - * 商城重消 - */ - private BigDecimal backPointsOri; - - /** - * 平台服务费 - */ - private BigDecimal serviceSpendOri; - - /** - * 环球积分 - */ - private BigDecimal globalPointsOri; - - /** - * 车奖积分 - */ - private BigDecimal carAwardPointsOri; - - /** - * 店铺收益 - */ - private BigDecimal storeIncomeOri; - - /** - * 嗨粉推荐收益 - */ - private BigDecimal hiFunIncomeOri; - - /** - * 首购实发小计 - */ - private BigDecimal purRealSubtotalOri; - - /** - * 云代实发小计 - */ - private BigDecimal cloudRealSubtotalOri; - - /** - * 复购实发小计 - */ - private BigDecimal repurRealSubtotalOri; - - /** - * 复购券小计 - */ - private BigDecimal repurCouponSubtotalOri; + @Excel(name = "复购配送收益", scale = 2) + private BigDecimal retailAreaIncome; /** * 实发收益总计 */ @Excel(name = "实发收益总计", scale = 2) - private BigDecimal realIncomeTotalOri; + private BigDecimal realIncomeTotal; /** * 直推收益 @@ -293,10 +173,6 @@ public class BonusTotalVO implements Serializable { */ private BigDecimal repurCouponSubtotal; - /** - * 实发收益总计 - */ - private BigDecimal realIncomeTotal; /** * 结算日期 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java index d9d8533d..df792c14 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java @@ -86,67 +86,41 @@ public class CuMemberBonusVO implements Serializable { */ private Integer grantStatus; - /** - * 需要转换人民币的 - */ - public static final String[] INCOME_ARRAY = new String[]{ - "backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome", - "retailBenefitRangeIncome", "retailBenefitAvgIncome", "repurRangeIncome", - "retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"}; - /** * 直推级差收益 */ - private BigDecimal retailRangeIncome; @Excel(name = "直推级差收益", scale = 2) - private BigDecimal retailRangeIncomeOri; + private BigDecimal retailRangeIncome; /** * 复购级差收益 */ - private BigDecimal repurRangeIncome; @Excel(name = "复购级差收益", scale = 2) - private BigDecimal repurRangeIncomeOri; + private BigDecimal repurRangeIncome; + + /** + * 复购配送收益 + */ + @Excel(name = "复购配送收益", scale = 2) + private BigDecimal retailAreaIncome; private BigDecimal retailSameLevelIncome; - /** - * 平级收益 - */ - private BigDecimal retailSameLevelIncomeOri; - - private BigDecimal retailAreaIncome; - /** - * 区域分红 - */ - private BigDecimal retailAreaIncomeOri; - /** * 新零售福利极差收益 */ private BigDecimal retailBenefitRangeIncome; - private BigDecimal retailBenefitRangeIncomeOri; - /** * 新零售福利平均收益 */ private BigDecimal retailBenefitAvgIncome; - private BigDecimal retailBenefitAvgIncomeOri; - /** * 新零售福利加权收益 */ private BigDecimal retailBenefitIncome; - private BigDecimal retailBenefitIncomeOri; - - /** - * 商城重消 - */ - private BigDecimal backPointsOri; - /** * 商城重消 */ @@ -157,16 +131,10 @@ public class CuMemberBonusVO implements Serializable { */ private BigDecimal retailRealSubtotal; - private BigDecimal retailRealSubtotalOri; - /** * 实发收益总计 */ @Excel(name = "实发收益总计", scale = 2) - private BigDecimal realIncomeTotalOri; - - /** - * 实发收益总计 - */ private BigDecimal realIncomeTotal; + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java index 17481b7a..d8ce2493 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java @@ -83,12 +83,12 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO { // */ // @BigDecimalFormat // private BigDecimal retailSameLevelIncome; -// -// /** -// * 新零售区域分红 -// */ -// @BigDecimalFormat -// private BigDecimal retailAreaIncome; + + /** + * 复购配送收益 + */ + @BigDecimalFormat + private BigDecimal retailAreaIncome; /** * 新零售收益小计 diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml index c7fb62ee..ba3ea360 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml @@ -61,6 +61,9 @@ + + + @@ -83,7 +86,7 @@ merge into cu_member_bonus cb - using( + using ( select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, expand_capping,coach_income,share_income,service_income,back_points,service_spend, pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal, @@ -92,8 +95,10 @@ car_award_points,store_income,hi_fun_income,hai_fun_income, maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total, pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income, - retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, - retail_real_subtotal from( + retail_area_income, + retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, + retail_real_subtotal + from ( select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate,jdbcType=INTEGER} pk_rate, #{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping, @@ -110,13 +115,14 @@ #{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal} maker_real_subtotal,#{item.realIncomeTotal} real_income_total, #{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,#{item.grantStatus} grant_status,#{item.incomeStatus} income_status, #{item.retailRangeIncome} retail_range_income,#{item.retailSameLevelIncome} retail_same_level_income, - #{item.retailAreaIncome} retail_area_income,#{item.retailBenefitRangeIncome} retail_benefit_range_income, + #{item.retailAreaIncome} retail_area_income, + #{item.retailBenefitRangeIncome} retail_benefit_range_income, #{item.retailBenefitAvgIncome} retail_benefit_avg_income,#{item.retailBenefitIncome} retail_benefit_income, #{item.retailRealSubtotal} retail_real_subtotal from dual ) )b on (cb.pk_member=b.pk_member and cb.period=b.period) WHEN NOT MATCHED THEN - insert(pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, + insert (pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, expand_capping,coach_income,share_income,service_income,back_points,service_spend, pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal, cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal, @@ -124,9 +130,10 @@ car_award_points,store_income,hi_fun_income,hai_fun_income, maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total, pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income, - retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, + retail_area_income, + retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, retail_real_subtotal) - values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping, + values (b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping, b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend, b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal, b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal, @@ -134,7 +141,8 @@ b.car_award_points,b.store_income,b.hi_fun_income,b.hai_fun_income, b.maker_direct_income,b.maker_share_income,b.maker_real_subtotal,b.real_income_total, b.pk_country,b.pk_creator,b.grant_status,b.income_status,b.retail_range_income,b.retail_same_level_income, - b.retail_area_income,b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income, + b.retail_area_income, + b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income, b.retail_real_subtotal) @@ -190,6 +198,7 @@ select tmp.settle_date, sum(tmp.repur_range_income) repur_range_income, sum(tmp.retail_range_income) retail_range_income, + sum(tmp.retail_area_income) retail_area_income, sum(tmp.retail_real_subtotal) retail_real_subtotal, sum(tmp.real_income_total) real_income_total from (select case @@ -202,6 +211,7 @@ end settle_date, cb.repur_range_income, cb.retail_range_income, + cb.retail_area_income, cb.retail_real_subtotal, cb.real_income_total from CU_MEMBER_BONUS cb @@ -230,12 +240,16 @@ bv.vertex_name, ct.team_name, cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping, cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend, - cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal, + cb.pur_real_subtotal,cb.repur_push_income, + cb.repur_range_income, + cb.repur_expand_income,cb.repur_real_subtotal, cb.cloud_direct_income,cb.cloud_pur_income,cb.cloud_repur_income,cb.cloud_real_subtotal, cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income, cb.maker_direct_income,cb.maker_share_income,cb.maker_real_subtotal,cb.hai_fun_income, cb.global_points,cb.car_award_points,cb.hi_fun_income,cb.pk_rate,bc.out_exchange_rate, - cb.retail_range_income,cb.retail_same_level_income,cb.retail_area_income, + cb.retail_range_income, + cb.retail_area_income, + cb.retail_same_level_income, cb.retail_benefit_range_income,cb.retail_benefit_avg_income, cb.retail_benefit_income,cb.retail_real_subtotal, cb.real_income_total, @@ -324,7 +338,6 @@ nvl(sum(cb.service_spend),0) service_spend, nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal, nvl(sum(cb.repur_push_income),0) repur_push_income, - nvl(sum(cb.repur_range_income),0) repur_range_income, nvl(sum(cb.repur_expand_income),0) repur_expand_income, nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal, nvl(sum(cb.cloud_direct_income),0) cloud_direct_income, @@ -342,7 +355,9 @@ nvl(sum(cb.global_points),0) global_points, nvl(sum(cb.car_award_points),0) car_award_points, nvl(sum(cb.hi_fun_income),0) hi_fun_income, + nvl(sum(cb.repur_range_income),0) repur_range_income, nvl(sum(cb.retail_range_income),0) retail_range_income, + nvl(sum(cb.retail_area_income),0) retail_area_income, bc.out_exchange_rate, nvl(sum(cb.real_income_total),0) real_income_total from cu_member_bonus cb @@ -419,17 +434,18 @@ sum(cb.expand_no_capping) expand_no_capping,sum(cb.expand_capping) expand_capping,sum(cb.coach_income) coach_income, sum(cb.share_income) share_income,sum(cb.service_income) service_income,sum(cb.back_points) back_points, sum(cb.service_spend) service_spend,sum(cb.pur_real_subtotal) pur_real_subtotal, - sum(cb.repur_push_income) repur_push_income,sum(cb.repur_range_income) repur_range_income, - sum(cb.repur_expand_income) repur_expand_income,sum(cb.repur_real_subtotal) repur_real_subtotal,sum(cb.cloud_direct_income) - cloud_direct_income, + sum(cb.repur_push_income) repur_push_income, + sum(cb.repur_range_income) repur_range_income, + sum(cb.repur_expand_income) repur_expand_income,sum(cb.repur_real_subtotal) repur_real_subtotal,sum(cb.cloud_direct_income) cloud_direct_income, sum(cb.cloud_pur_income) cloud_pur_income,sum(cb.cloud_repur_income) cloud_repur_income,sum(cb.cloud_real_subtotal) cloud_real_subtotal, sum(cb.repur_coupon) repur_coupon,sum(repur_coupon_share) repur_coupon_share, sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,sum(cb.global_points) global_points, sum(cb.car_award_points) car_award_points,sum(cb.hi_fun_income) hi_fun_income, sum(store_income) store_income,sum(cb.maker_direct_income) maker_direct_income, sum(cb.maker_share_income) maker_share_income,sum(cb.maker_real_subtotal) maker_real_subtotal, - sum(cb.retail_range_income) retail_range_income,sum(cb.retail_same_level_income) retail_same_level_income, + sum(cb.retail_range_income) retail_range_income, sum(cb.retail_area_income) retail_area_income, + sum(cb.retail_same_level_income) retail_same_level_income, sum(cb.retail_benefit_range_income) retail_benefit_range_income,sum(cb.retail_benefit_avg_income) retail_benefit_avg_income, sum(cb.retail_benefit_income) retail_benefit_income,sum(cb.retail_real_subtotal) retail_real_subtotal, sum(cb.real_income_total) real_income_total from cu_member_bonus cb diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml index 90290135..60b57dd8 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml @@ -124,6 +124,67 @@ left join bd_wares bw on bw.pk_id = st.pk_wares and bw.del_flag = 0 where so.order_status = 1 + and so.order_type in (41, 42) + + and so.order_code=#{orderCode} + + and so.pay_time >= #{startDate} + and so.pay_time < #{endDate} + union + select so.pk_id, + so.pk_member, + so.order_code, + so.order_type, + so.pk_rate, + so.rec_province, + so.rec_city, + so.rec_county, + so.order_amount, + so.order_achieve, + so.order_ass_achieve, + so.upload_achieve, + so.pk_reference, + so.pk_vertex, + so.pk_country, + so.del_flag, + so.pay_time, + so.pk_creator, + so.consume_amount, + so.box_num, + 0 pk_grade, + soi.items_id, + soi.pk_order, + soi.pk_wares, + soi.wares_price, + nvl(bw.wares_code, '~') wares_code, + soi.wares_quantity, + nvl(bw.area_income, 0) area_income + from sa_order so + left join ( + select max(soi.pk_id) items_id, + nvl(soi.pk_order, 0) pk_order, + nvl(soi.pk_wares, 0) pk_wares, + sum(soi.achievement * soi.quantity) wares_price, + max(soi.wares_quantity) wares_quantity + from sa_order so + left join sa_order_items soi + on soi.pk_order = so.pk_id + and soi.is_gift = 1 + where so.order_status = 1 + and so.order_type in (43) + + and so.order_code=#{orderCode} + + and so.pay_time >= #{startDate} + and so.pay_time < #{endDate} + group by soi.pk_order, soi.pk_wares + ) soi + on soi.pk_order = so.pk_id + left join bd_wares bw + on bw.pk_id = soi.pk_wares + and bw.del_flag = 0 + where so.order_status = 1 + and so.order_type in (43) and so.order_code=#{orderCode} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java index 23fc9763..4ba53ee8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java @@ -1,5 +1,6 @@ package com.hzs.member.base.provider; +import cn.hutool.core.collection.CollectionUtil; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.ELoginType; import com.hzs.common.core.utils.StringUtils; @@ -7,6 +8,7 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.base.CuMemberRegister; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.member.account.dto.BusinessCommissionDTO; @@ -17,11 +19,14 @@ import com.hzs.member.base.service.*; import com.hzs.member.base.IMemberServiceApi; import com.hzs.member.empty.service.ICuMemberEmptyCodeService; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; +import com.hzs.retail.member.service.ICuMemberRetailRegionService; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Autowired; import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,6 +45,8 @@ public class MemberServiceProvider implements IMemberServiceApi { private ICuMemberRegisterService iCuMemberRegisterService; @Autowired private ICuMemberEmptyCodeService iCuMemberEmptyCodeService; + @Autowired + private ICuMemberRetailRegionService iCuMemberRetailRegionService; @Override public R getMemberInfo(String memberCode) { @@ -362,4 +369,18 @@ public class MemberServiceProvider implements IMemberServiceApi { } } + @Override + public R> listEffectiveRegion(Date queryDate) { + Map regionMap = new HashMap<>(); + + List retailRegionList = iCuMemberRetailRegionService.listEffectiveRegion(queryDate); + if (CollectionUtil.isNotEmpty(retailRegionList)) { + for (CuMemberRetailRegion retailRegion : retailRegionList) { + regionMap.put(retailRegion.getCounty(), retailRegion); + } + } + + return R.ok(regionMap); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java index b74ddead..05461576 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java @@ -7,6 +7,7 @@ import com.hzs.common.domain.system.base.BdArea; import com.hzs.retail.member.vo.UnboundAreaVO; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -25,9 +26,11 @@ public interface CuMemberRetailRegionMapper extends BaseMapper getRegionByMemberList(@Param("pkMember") Long pkMember, - @Param("gradeValue") Integer gradeValue, - @Param("systemType") Integer systemType); + @Param("gradeValue") Integer gradeValue, + @Param("systemType") Integer systemType); + /** * 插入收益区域 * @@ -47,18 +50,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper memberretailRegList(CuMemberRetailRegionExt mrrExt); - /** - * 会员购买订单数量 - * - * @param pkMember 会员ID - * @param systemType 系统类型 - * @param waresCodeList 商品列表 - * @return - */ - int getOrderCount(@Param("pkMember") Long pkMember, - @Param("systemType") Integer systemType, - @Param("waresCodeList") List waresCodeList); - List getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId); /** @@ -69,4 +60,12 @@ public interface CuMemberRetailRegionMapper extends BaseMapper listEffectiveRegion(@Param("queryDate") Date queryDate); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java index 76dfb8cf..982145e7 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java @@ -8,6 +8,7 @@ import com.hzs.common.domain.system.base.BdArea; import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.vo.UnboundAreaVO; +import java.util.Date; import java.util.List; /** @@ -44,16 +45,6 @@ public interface ICuMemberRetailRegionService extends IService memberretailRegList(CuMemberRetailRegionExt mrrExt); - /** - * 会员购买订单数量 - * - * @param pkMember 会员ID - * @param systemType 系统类型 - * @param waresCodeList 商品列表 - * @return - */ - int getOrderCount(Long pkMember, Integer systemType, List waresCodeList); - /** * 查询可选收益区域树结构 入参常量为 RetailRegionTreeQueryConstants * @@ -72,4 +63,12 @@ public interface ICuMemberRetailRegionService extends IService listEffectiveRegion(Date queryDate); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index ff14e84e..d834f836 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -22,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; import java.util.Date; import java.util.List; @@ -97,11 +96,6 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl waresCodeList) { - return baseMapper.getOrderCount(pkMember, systemType, waresCodeList); - } - @Override public List> getRegionTreeList(String queryType, Long pkMember) { List areaList = baseMapper.getRegionTreeList(queryType, pkMember); @@ -173,4 +167,9 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl listEffectiveRegion(Date queryDate) { + return baseMapper.listEffectiveRegion(queryDate); + } + } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index 1716d7ae..2c652413 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -175,29 +175,6 @@ order by CRR.CREATION_TIME desc - - - + select cmrr.* + from CU_MEMBER_RETAIL_REGION cmrr + where cmrr.del_flag = 0 + and cmrr.effective = 0 + and cmrr.business_type = 2 + and cmrr.effective_end_date >= #{queryDate} + + diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java index 44bc2863..3794ee0e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java @@ -665,7 +665,7 @@ public class ApiOrderController extends BaseController { myOrder.setRecCounty(recCounty); } myOrder.setAddress(saOrder.getRecAddress()); - myOrder.setOrderTypeVal(EOrderType.getEnumLabelByValue(myOrder.getOrderType())); + myOrder.setOrderTypeVal(EOrderType.getLabelByValue(myOrder.getOrderType())); myOrder.setOrderStatusVal(EOrderStatus.getLabelByValue(saOrderItems.getOrderStatus())); // 处理订单明细 diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java index 4afde1da..fd619647 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java @@ -561,10 +561,6 @@ public class EnumsInitController { initList.add(this.createData(value.getKey(), value.getLabel())); } - for (EBonusIncomeStatus value : EBonusIncomeStatus.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - // 数据类型(推荐) for (ERecommendDadaType value : ERecommendDadaType.values()) { initList.add(this.createData(value.getKey(), value.getLabel())); diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java index 23250484..4e745f30 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java @@ -44,9 +44,4 @@ public class BonusFieldConstants { public static final String IS_WITHDRAWAL = "IS_WITHDRAWAL"; - /** - * 人民币收益后缀 - */ - public static final String INCOME_SUFFIX = "Ori"; - } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java index 02abeee3..bc6847d0 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java @@ -14,6 +14,17 @@ public class RetailConstants { */ public static final Integer PICK_BASE = 4; + /** + * 2025.08.13 添加分公司级差收益,每1盒(4个产品) + * 第一分公司4元 + * 第二分公司4元 + * 公司6元 + * 总拨出14元 + */ + public static final BigDecimal BRANCH = new BigDecimal("4"); + public static final BigDecimal COMPANY_TOTAL = new BigDecimal("14"); + + /** * 会员 推 会员 60 * VIP 推 会员 80 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java index 5e07e5f6..5b5c01d2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java @@ -20,6 +20,11 @@ public class BonusMsgConstants { */ public static String REPUR_RANGE = "订单编号%s,%s为%s贡献了复购级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。"; + /** + * 复购配送收益说明 + */ + public static String REPUR_REGION = "订单编号%s,%s为%s贡献了复购配送收益。"; + /** * 奖金重算 -- 只能重算7天内的奖金! */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java index 35a3c3ce..d9e6cfda 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -14,17 +13,17 @@ public enum EBonusIncomeStatus { /** * 正常 */ - NORMAL(0, "正常", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "0"), + NORMAL(0, "正常", 0), /** * 停收 */ - STOP_INCOME(1, "停收", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "1"), + STOP_INCOME(1, "停收", 0), /** * 烧伤 */ - FIRE_BURN(2, "烧伤", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "2"), + FIRE_BURN(2, "烧伤", 0), ; @@ -40,8 +39,17 @@ public enum EBonusIncomeStatus { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; + + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (EOrderType enums : EOrderType.values()) { + if (enums.getValue() == value) { + return enums.getLabel(); + } + } + return ""; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java index dcceb06f..a8d60f24 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -59,13 +58,17 @@ public enum EBonusItems { ////////////////////////////////////////////////// 新奖项 ////////////////////////////////////////////////// /** - * 直推级差收益 -- 秒结,日奖 + * 直推级差收益 -- 日奖 */ RETAIL_RANGE_INCOME(25, "直推级差收益", 0), /** - * 复购级差收益 -- 秒结,日奖 + * 复购级差收益 -- 日奖 */ RETAIL_REPURCHASE_INCOME(35, "复购级差收益", 0), + /** + * 复购配送收益 -- 日奖 + */ + RETAIL_REPURCHASE_DELIVERY_INCOME(36, "复购配送收益", 0), ; diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java index 2a7a043a..c41a516c 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java @@ -6,12 +6,6 @@ import lombok.Getter; /** * 计算类型 - * - * @author: sui q - * @time: 2022/8/25 15:09 - * @description: - * @classname: ECalType - * @package_name: com.hzs.common.core.enums */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java index 1ce17245..32e62fa2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java @@ -104,21 +104,6 @@ public enum EOrderType { return null; } - /** - * 根据值返回显示 - * - * @param value - * @return - */ - public static String getEnumLabelByValue(int value) { - for (EOrderType eOrderType : EOrderType.values()) { - if (eOrderType.getValue() == value) { - return eOrderType.getLabel(); - } - } - return ""; - } - public static List getOrderTypeSpecial() { List resultList = new ArrayList<>(); resultList.add(EOrderType.REGISTER_ORDER); @@ -126,6 +111,7 @@ public enum EOrderType { resultList.add(EOrderType.REPURCHASE_ORDER); return resultList; } + public static String getLabelByValue(Integer value) { if (null == value) { return ""; diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java index 4b6e41f0..61428d45 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java @@ -236,7 +236,7 @@ public class CuMemberBonus extends BaseEntity { private BigDecimal retailSameLevelIncome; /** - * 新零售区域分红 + * 复购配送收益 */ @TableField("RETAIL_AREA_INCOME") private BigDecimal retailAreaIncome; From b144ccbbd6589c04e9b31330f060eb254ab8326f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 13 Aug 2025 17:52:26 +0800 Subject: [PATCH 68/89] =?UTF-8?q?##=20=E5=8F=91=E8=B4=A7=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E4=BB=93=E5=82=A8=E5=AF=BC=E5=85=A5=E4=BF=AE=E6=94=B9=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/SaDeliverHandledController.java | 1 - .../com/hzs/sale/deliver/vo/DeliverWmsVO.java | 113 ++++++------------ 2 files changed, 38 insertions(+), 76 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java index 3cd39037..a93d8cff 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverHandledController.java @@ -203,7 +203,6 @@ public class SaDeliverHandledController extends BaseController { .productName(deliverHandled.getProductName()) .specsName(deliverHandled.getSpecsName()) .quantity(deliverHandled.getQuantity()) - .price(BigDecimal.ZERO) .build(); if (!deliverCode.equals(deliverHandled.getDeliverCode())) { deliverCode = deliverHandled.getDeliverCode(); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverWmsVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverWmsVO.java index 0d66a917..11333499 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverWmsVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverWmsVO.java @@ -7,7 +7,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; -import java.math.BigDecimal; /** * 发货单WMS导出VO @@ -18,89 +17,53 @@ import java.math.BigDecimal; @Data public class DeliverWmsVO implements Serializable { - @Excel(name = "<必填>订单号") + @Excel(name = "平台订单号") private String deliverCode; - - @Excel(name = "下单时间") - private String createTime; - @Excel(name = "付款时间") - private String payTime; - - @Excel(name = "交易类型") - private String payType; - @Excel(name = "业务员") - private String peopleName; - @Excel(name = "备注") - private String orderRemark; - @Excel(name = "买家留言") - private String buyRemark; - @Excel(name = "系统备注") - private String sysRemark; - @Excel(name = "仓库") - private String storeName; - @Excel(name = "总金额") - private BigDecimal totalAmount; - @Excel(name = "运费") - private String postAmount; - @Excel(name = "实付总额") - private String realTotalAmount; - @Excel(name = "本次收款") - private String receiveAmount; - @Excel(name = "结算账户") - private String settleAccount; - - @Excel(name = "<必填>收货人姓名") + @Excel(name = "收件人姓名") private String recName; - - @Excel(name = "手机") + @Excel(name = "收件人手机号/电话") private String recPhone; - - @Excel(name = "固话") - private String fixedPhone; - - @Excel(name = "<必填>地址") + @Excel(name = "收件人地址") private String recAddress; - - @Excel(name = "邮编") - private String postal; - - @Excel(name = "电子邮箱") - private String email; - - @Excel(name = "<必填>商品编码") + @Excel(name = "商家编码") private String wmsCode; - - @Excel(name = "产品名称") + @Excel(name = "货品信息") private String productName; - - @Excel(name = "规格名称") + @Excel(name = "规格信息") private String specsName; - - @Excel(name = "<必填>数量") + @Excel(name = "货品数量") private Integer quantity; - @Excel(name = "单价") - private BigDecimal price; - - @Excel(name = "实付") - private BigDecimal realPay; - - @Excel(name = "配送方式") - private String delivery; - - @Excel(name = "明细备注") - private String remark; - - @Excel(name = "批次号") - private String batchNo; - - @Excel(name = "生产日期") - private String produceDate; - - @Excel(name = "过期日期") - private String expireDate; - - + @Excel(name = "货品单价") + private String str1; + @Excel(name = "金额小计") + private String str2; + @Excel(name = "邮费收入") + private String str3; + @Excel(name = "店铺") + private String str4; + @Excel(name = "买家留言") + private String str5; + @Excel(name = "客服备注") + private String str6; + @Excel(name = "买家昵称") + private String str7; + @Excel(name = "主播ID") + private String str8; + @Excel(name = "主播名称") + private String str9; + @Excel(name = "业务员") + private String str10; + @Excel(name = "付款类型") + private String str11; + @Excel(name = "下单时间") + private String str12; + @Excel(name = "付款时间") + private String str13; + @Excel(name = "仓库") + private String str14; + @Excel(name = "快递公司") + private String str15; } From 76c41feed5b052e8675417282437c9c7c5c9647c Mon Sep 17 00:00:00 2001 From: woody Date: Wed, 13 Aug 2025 18:12:01 +0800 Subject: [PATCH 69/89] =?UTF-8?q?feat(SaOrderSync):=20=E5=85=A8=E7=BD=91?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86-=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/SaOrderSyncController.java | 69 +++++++++++++++++++ .../order/dto/SaOrderSyncBodyDetailDTO.java | 22 ++++++ .../sale/order/mapper/SaOrderSyncMapper.java | 17 ++++- .../sale/order/param/SaOrderSyncParam.java | 41 +++++++++++ .../order/service/ISaOrderSyncService.java | 27 +++++++- .../service/impl/SaOrderSyncServiceImpl.java | 25 ++++++- .../com/hzs/sale/order/vo/SaOrderSyncVO.java | 62 +++++++++++++++++ .../mapper/sale/order/SaOrderSyncMapper.xml | 31 ++++++++- .../common/core/enums/EOperationModule.java | 2 +- .../common/core/enums/ESaOrderSyncStatus.java | 39 +++++++++++ 10 files changed, 327 insertions(+), 8 deletions(-) create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/dto/SaOrderSyncBodyDetailDTO.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/SaOrderSyncParam.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaOrderSyncVO.java create mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaOrderSyncStatus.java diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java new file mode 100644 index 00000000..aff53046 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java @@ -0,0 +1,69 @@ +package com.hzs.sale.order.controller.manager; + +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson2.JSON; +import com.hzs.common.core.annotation.AccessPermissions; +import com.hzs.common.core.annotation.Log; +import com.hzs.common.core.enums.EOperationMethod; +import com.hzs.common.core.enums.EOperationModule; +import com.hzs.common.core.enums.ESaOrderSyncStatus; +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.TableDataInfo; +import com.hzs.common.security.utils.SecurityUtils; +import com.hzs.sale.order.dto.SaOrderSyncBodyDetailDTO; +import com.hzs.sale.order.param.SaOrderSyncParam; +import com.hzs.sale.order.service.ISaOrderSyncService; +import com.hzs.sale.order.vo.SaOrderSyncVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 订单同步记录控制器 + */ +@RestController +@RequestMapping("/manage/order-sync") +public class SaOrderSyncController extends BaseController { + + @Autowired + private ISaOrderSyncService orderSyncService; + + /** + * 同步订单列表 + */ + @AccessPermissions("orderSyncList") + @Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.SELECT) + @GetMapping("list") + public TableDataInfo list(SaOrderSyncParam param) { + startPage(); + List list = orderSyncService.queryList(param, SecurityUtils.getPkCountry()); + for (SaOrderSyncVO saOrderSyncVO : list) { + saOrderSyncVO.setStatusVal(ESaOrderSyncStatus.getLabelByValue(saOrderSyncVO.getStatus())); + saOrderSyncVO.setOrderProductDetail(JSONUtil.toList(saOrderSyncVO.getBodyDetail(), SaOrderSyncBodyDetailDTO.class)); + } + return getDataTable(list); + } + + + /** + * 更新同步状态 + */ + @AccessPermissions("orderSyncUpdate") + @Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.UPDATE) + @PostMapping("updateStatus") + public AjaxResult updateStatus(@RequestBody SaOrderSyncParam param) { + if (param.getPkId() == null) { + return AjaxResult.error("主键ID不能为空"); + } + if (param.getStatus() == null) { + return AjaxResult.error("状态不能为空"); + } + + return toAjax(orderSyncService.updateStatus(param.getPkId(), param.getStatus(), + SecurityUtils.getUserId(), SecurityUtils.getPkCountry())); + } +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/dto/SaOrderSyncBodyDetailDTO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/dto/SaOrderSyncBodyDetailDTO.java new file mode 100644 index 00000000..a1c4c4f7 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/dto/SaOrderSyncBodyDetailDTO.java @@ -0,0 +1,22 @@ +package com.hzs.sale.order.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SaOrderSyncBodyDetailDTO { + /** + * 仓储编号 + */ + private String wmsCode; + + /** + * 变动数量 + */ + private Integer changeNum; +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java index ff8dfead..8fd24701 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java @@ -2,10 +2,23 @@ package com.hzs.sale.order.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.sale.order.SaOrderSync; +import com.hzs.sale.order.param.SaOrderSyncParam; +import com.hzs.sale.order.vo.SaOrderSyncVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** - * 订单产品同步记录 Mapper 接口 + * 订单同步记录Mapper接口 */ public interface SaOrderSyncMapper extends BaseMapper { -} + /** + * 查询订单同步记录列表 + * + * @param param 查询参数 + * @param pkCountry 国家主键 + * @return 同步记录列表 + */ + List queryList(@Param("param") SaOrderSyncParam param, @Param("pkCountry") Integer pkCountry); +} \ No newline at end of file diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/SaOrderSyncParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/SaOrderSyncParam.java new file mode 100644 index 00000000..64f9132e --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/SaOrderSyncParam.java @@ -0,0 +1,41 @@ +package com.hzs.sale.order.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 同步失败订单列表 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SaOrderSyncParam { + /** + * 同步失败主键 + */ + private Long pkId; + + /** + * 订单号 + */ + private String orderCode; + + /** + * 开始日期(yyyy-MM-dd) + */ + private String startDate; + + /** + * 结束日期(yyyy-MM-dd) + */ + private String endDate; + + /** + * 同步状态 1=失败 + */ + private Integer status; + private String statusVal; +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java index ce5897bc..72df92f2 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java @@ -2,10 +2,33 @@ package com.hzs.sale.order.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.sale.order.SaOrderSync; +import com.hzs.sale.order.param.SaOrderSyncParam; +import com.hzs.sale.order.vo.SaOrderSyncVO; + +import java.util.List; /** - * 订单产品同步记录 服务类 + * 订单同步记录服务接口 */ public interface ISaOrderSyncService extends IService { -} + /** + * 查询订单同步记录列表 + * + * @param param 查询参数 + * @param pkCountry 国家主键 + * @return 同步记录列表 + */ + List queryList(SaOrderSyncParam param, Integer pkCountry); + + /** + * 更新同步状态 + * + * @param pkId 主键ID + * @param status 状态 + * @param userId 用户ID + * @param pkCountry 国家主键 + * @return 是否成功 + */ + Boolean updateStatus(Long pkId, Integer status, Long userId, Integer pkCountry); +} \ No newline at end of file diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java index bce905ad..09860e27 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java @@ -1,15 +1,36 @@ package com.hzs.sale.order.service.impl; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.domain.sale.order.SaOrderSync; import com.hzs.sale.order.mapper.SaOrderSyncMapper; +import com.hzs.sale.order.param.SaOrderSyncParam; import com.hzs.sale.order.service.ISaOrderSyncService; +import com.hzs.sale.order.vo.SaOrderSyncVO; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; +import java.util.List; + /** - * 订单产品同步记录 服务实现类 + * 订单同步记录服务实现 */ @Service public class SaOrderSyncServiceImpl extends ServiceImpl implements ISaOrderSyncService { -} + @Override + public List queryList(SaOrderSyncParam param, Integer pkCountry) { + return baseMapper.queryList(param, pkCountry); + } + + @Override + public Boolean updateStatus( + Long pkId, Integer status, Long userId, Integer pkCountry + ) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(SaOrderSync::getPkId, pkId); + updateWrapper.set(SaOrderSync::getStatus, status); + + return this.update(updateWrapper); + } +} \ No newline at end of file diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaOrderSyncVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaOrderSyncVO.java new file mode 100644 index 00000000..812f65a2 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/SaOrderSyncVO.java @@ -0,0 +1,62 @@ +package com.hzs.sale.order.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.hzs.common.core.annotation.Excel; +import com.hzs.sale.order.dto.SaOrderSyncBodyDetailDTO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 订单同步记录VO + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SaOrderSyncVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + private Long pkId; + + /** + * 订单编号 + */ + @Excel(name = "订单编号") + private String orderCode; + + /** + * 产品明细列表 + */ + private String bodyDetail; + private List orderProductDetail; + + + /** + * 创建时间 + */ + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + /** + * 同步状态(1=失败) + */ + @Excel(name = "同步状态", readConverterExp = "1=失败,0=成功") + private Integer status; + + /** + * 同步状态描述 + */ + private String statusVal; + +} diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml index f4ef63e1..c4c8f343 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml @@ -2,4 +2,33 @@ - + + + + \ No newline at end of file diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java index 99d59953..69461d6a 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java @@ -405,7 +405,7 @@ public enum EOperationModule { CANCEL_ORDER_CONFIRM("撤销订单确认"), ///////////////////////////统计分析//////////////////////////// STATISTIC_ANALYSIS("统计分析"), - + ORDER_SYNC("同步失败订单"), ; /** diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaOrderSyncStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaOrderSyncStatus.java new file mode 100644 index 00000000..7fa9b0f2 --- /dev/null +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaOrderSyncStatus.java @@ -0,0 +1,39 @@ +package com.hzs.common.core.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public enum ESaOrderSyncStatus { + FAIL(1, "失败"), + Handled(0, "已处理") + ; + + /** + * 实际值 + */ + private final int value; + /** + * 显示标签 + */ + private final String label; + + /** + * 根据枚举值获取枚举 + * + * @param value + * @return + */ + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (ESaOrderSyncStatus enums : ESaOrderSyncStatus.values()) { + if (enums.getValue() == value) { + return enums.getLabel(); + } + } + return ""; + } +} From 13218221d49ea64bed4a6d2ae777cfb3a8428ab5 Mon Sep 17 00:00:00 2001 From: woody Date: Thu, 14 Aug 2025 09:36:00 +0800 Subject: [PATCH 70/89] =?UTF-8?q?fix(SaOrderSync):=E5=85=A8=E7=BD=91?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86-=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E8=AE=A2=E5=8D=95=E7=A7=BB=E9=99=A4AccessPer?= =?UTF-8?q?mission?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sale/order/controller/manager/SaOrderSyncController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java index aff53046..b50c0774 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderSyncController.java @@ -35,7 +35,6 @@ public class SaOrderSyncController extends BaseController { /** * 同步订单列表 */ - @AccessPermissions("orderSyncList") @Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.SELECT) @GetMapping("list") public TableDataInfo list(SaOrderSyncParam param) { @@ -52,7 +51,6 @@ public class SaOrderSyncController extends BaseController { /** * 更新同步状态 */ - @AccessPermissions("orderSyncUpdate") @Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.UPDATE) @PostMapping("updateStatus") public AjaxResult updateStatus(@RequestBody SaOrderSyncParam param) { From a4b8ef19311cadc80d603b33059e89cf12388463 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 14 Aug 2025 10:38:30 +0800 Subject: [PATCH 71/89] =?UTF-8?q?##=20Fix=20-=20=E9=85=8D=E9=80=81?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E4=B8=BA=E4=BC=9E=E4=B8=8B=E6=97=B6,?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E9=85=8D=E9=80=81=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E7=9A=84=E6=97=A5=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/service/impl/BonusSettleRangeHandle.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 7bb7f0a1..c5c45354 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -1,5 +1,7 @@ package com.hzs.bonus.bonus.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.bonus.vo.BonusRecordDetailVO; import com.hzs.bonus.detail.service.ICuMemberGradeService; @@ -46,6 +48,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { private IBonusOrderService iBonusOrderService; @Autowired private ICuMemberGradeService iCuMemberGradeService; + @Autowired + private CuMemberRetailRangeMapper cuMemberRetailRangeMapper; @DubboReference ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; @@ -201,7 +205,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 计算配送收益 if (regionMap.size() != 0) { cuMemberBonusDetailList.addAll(calculateRetailRepurRegionBonus(memberRangeExtMap, cuMemberBonusMap, - bonusConfigDTO, period, saOrderExt, regionMap)); + bonusConfigDTO, period, saOrderExt, regionMap, rangeTableName)); } } } @@ -786,13 +790,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { * 计算复购配送区域收益 */ List calculateRetailRepurRegionBonus(Map memberRangeExtMap, Map cuMemberBonusMap, - BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map regionMap) { + BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map regionMap, + String rangeTableName) { // 复购配送区域返回数据 List memberBonusDetailList = new ArrayList<>(); // 订单下单人自己 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - // 配送区域配置 CuMemberRetailRegion retailRegion = regionMap.get(saOrderExt.getRecCounty()); if (null != retailRegion) { @@ -813,6 +817,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (bonusIncome.compareTo(BigDecimal.ZERO) > 0) { // 处理复购级差收益 // 会员奖金 + if(ObjectUtil.isEmpty(targetMemberRangeExt)){ + List memberRetailRangeExtList = cuMemberRetailRangeMapper.queryCuMemberRetailRangeParent(rangeTableName, Arrays.asList(retailRegion.getPkMember())); + targetMemberRangeExt = memberRetailRangeExtList.stream().filter(e -> e.getPkMember().equals(retailRegion.getPkMember())).findFirst().get(); + } CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_DELIVERY_INCOME.getValue()); From 2620930edfe38e3c6f167c923764987932e7e4dd Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 14 Aug 2025 10:45:48 +0800 Subject: [PATCH 72/89] =?UTF-8?q?##=20Fix=20-=20=E9=85=8D=E9=80=81?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E4=B8=BA=E4=BC=9E=E4=B8=8B=E6=97=B6,?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E9=85=8D=E9=80=81=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E7=9A=84=E6=97=A5=E7=BB=93=E5=B9=B6=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/bonus/service/impl/BonusSettleRangeHandle.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index c5c45354..2bd8c9fc 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -801,6 +801,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRegion retailRegion = regionMap.get(saOrderExt.getRecCounty()); if (null != retailRegion) { CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(retailRegion.getPkMember()); + if(ObjectUtil.isEmpty(targetMemberRangeExt)){ + List memberRetailRangeExtList = cuMemberRetailRangeMapper.queryCuMemberRetailRangeParent(rangeTableName, Arrays.asList(retailRegion.getPkMember())); + targetMemberRangeExt = memberRetailRangeExtList.stream().filter(e -> e.getPkMember().equals(retailRegion.getPkMember())).findFirst().get(); + memberRangeExtMap.put(retailRegion.getPkMember(), targetMemberRangeExt); + } // 复购配送区域收益 BigDecimal bonusIncome = BigDecimal.ZERO; @@ -817,10 +822,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (bonusIncome.compareTo(BigDecimal.ZERO) > 0) { // 处理复购级差收益 // 会员奖金 - if(ObjectUtil.isEmpty(targetMemberRangeExt)){ - List memberRetailRangeExtList = cuMemberRetailRangeMapper.queryCuMemberRetailRangeParent(rangeTableName, Arrays.asList(retailRegion.getPkMember())); - targetMemberRangeExt = memberRetailRangeExtList.stream().filter(e -> e.getPkMember().equals(retailRegion.getPkMember())).findFirst().get(); - } CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_DELIVERY_INCOME.getValue()); From 3ca75b73a8c82e4dd5ff648745c50fc33dc99fc7 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 14 Aug 2025 11:02:00 +0800 Subject: [PATCH 73/89] =?UTF-8?q?##=20Fix=20-=20=E9=85=8D=E9=80=81?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E4=B8=BA=E4=BC=9E=E4=B8=8B=E6=97=B6,?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E9=85=8D=E9=80=81=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E7=9A=84=E6=97=A5=E7=BB=93=E5=B9=B6=E7=BC=93=E5=AD=98?= =?UTF-8?q?->=E6=96=B0=E5=A2=9E=E6=9F=A5=E5=8D=95=E7=8B=AC=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailRangeMapper.java | 1 + .../service/impl/BonusSettleRangeHandle.java | 3 +- .../achieve/CuMemberRetailRangeMapper.xml | 52 +++++++++++++++++++ 3 files changed, 54 insertions(+), 2 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 2f189373..7493002f 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 @@ -28,6 +28,7 @@ public interface CuMemberRetailRangeMapper extends BaseMapper queryCuMemberRetailRangeParent(@Param("tableName") String tableName, @Param("saOrderExtList") List saOrderExtList); + CuMemberRetailRangeExt queryCuMemberRetailRangeByMemberId(@Param("tableName") String tableName, @Param("memberId") Long memberId); /** * 批量更新网体 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 2bd8c9fc..195e4362 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -802,8 +802,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (null != retailRegion) { CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(retailRegion.getPkMember()); if(ObjectUtil.isEmpty(targetMemberRangeExt)){ - List memberRetailRangeExtList = cuMemberRetailRangeMapper.queryCuMemberRetailRangeParent(rangeTableName, Arrays.asList(retailRegion.getPkMember())); - targetMemberRangeExt = memberRetailRangeExtList.stream().filter(e -> e.getPkMember().equals(retailRegion.getPkMember())).findFirst().get(); + targetMemberRangeExt = cuMemberRetailRangeMapper.queryCuMemberRetailRangeByMemberId(rangeTableName, retailRegion.getPkMember()); memberRangeExtMap.put(retailRegion.getPkMember(), targetMemberRangeExt); } // 复购配送区域收益 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 8ed532c5..53a0df16 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 @@ -203,5 +203,57 @@ where ba.del_flag = 0 + From 71e7ef8242cc249cf87fec5e18c35a294fae26b8 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 14 Aug 2025 17:14:33 +0800 Subject: [PATCH 74/89] =?UTF-8?q?##=20=E4=B8=8B=E5=8D=95=E7=B4=AF=E8=AE=A1?= =?UTF-8?q?=E7=9B=92=E6=95=B0=E6=97=B6=EF=BC=8C=E4=B8=80=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=A4=9A=E4=BA=A7=E5=93=81=E6=8C=89=E5=95=86=E5=93=81=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E7=B4=AF=E8=AE=A1=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/service/impl/RetailOrderServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 a886a04a..0b63a535 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 @@ -275,6 +275,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 当前盒数 int boxNum = 0; + // 设置已经累计盒数的商品列表 + List tmpBoxWares = new ArrayList<>(); + // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件 // this.checkWaresLimit(cuMember, orderParam.getSpecialArea(), waresDetailExtList, boxWaresList, gradeList); @@ -294,7 +297,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService { if (boxWaresList.contains(waresDetailExt.getWaresCode())) { // 商品是盒数商品,需要累计数量 - boxNum += waresDetailExt.getBoxNum() * orderItems.getWaresQuantity(); + if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) { + boxNum += waresDetailExt.getBoxNum() * orderItems.getWaresQuantity(); + tmpBoxWares.add(waresDetailExt.getWaresCode()); + } } } } From d2448f09bab9bc63dc96c03e7324047437c3864a Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 18 Aug 2025 14:24:51 +0800 Subject: [PATCH 75/89] =?UTF-8?q?##=20=E4=BB=93=E5=82=A8=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/sale/deliver/SaDeliverItemsMapper.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml index d83e7c78..f28990b9 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/deliver/SaDeliverItemsMapper.xml @@ -208,7 +208,8 @@ - order by creation_time desc, batch_number, deliver_code desc, order_code desc + order by creation_time desc, batch_number, deliver_code desc, order_code desc, + bp.wms_code, sdi.specs_name @@ -377,7 +378,8 @@ and cm.pk_vertex = #{param.pkVertex} - order by sd.creation_time desc, sd.batch_number, sd.deliver_code desc, so.order_code desc + order by sd.creation_time desc, sd.batch_number, sd.deliver_code desc, so.order_code desc, + bp.wms_code, sdi.specs_name From b9e3491a768eca2b0620a8779c2ad1d87e28461f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 19 Aug 2025 10:11:59 +0800 Subject: [PATCH 76/89] =?UTF-8?q?##=20=E5=9C=A8=E7=BA=BF=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=B4=A6=E5=8F=B7=E7=9B=B4=E6=8E=A5=E5=BC=80?= =?UTF-8?q?=E6=94=BE=E6=94=AF=E4=BB=98=E6=9D=83=E9=99=90=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hzs/common/core/constant/SysConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java index 9664e332..d152a0a6 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/SysConstants.java @@ -30,7 +30,7 @@ public class SysConstants { /** * 特殊处理编号(对外开放使用,主要用于支付接入审核) */ - public static final String SPECIAL_CODE = "BD68880628"; + public static final String SPECIAL_CODE = "BL68880628"; /** From 8f2e7e34fd89eb3d1f5f8f88e0ac5ea35b29c3ab Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Wed, 20 Aug 2025 14:11:58 +0800 Subject: [PATCH 77/89] =?UTF-8?q?##=20Opt=20-=20=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E8=A1=A5=E5=81=BF=E5=BC=82=E5=B8=B8=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/OnlinePaymentController.java | 16 ++ .../pay/jdpay/dto/JdPayQueryOrderRequest.java | 27 +++ .../jdpay/dto/JdPayQueryOrderResponse.java | 197 ++++++++++++++++++ .../com/hzs/third/pay/jdpay/sdk/JdPay.java | 6 +- .../hzs/third/pay/service/IJdPayService.java | 9 + .../pay/service/impl/JdPayServiceImpl.java | 108 +++++++++- .../pay/service/impl/PayServiceImpl.java | 11 +- .../com/hzs/third/pay/vo/OnlinePaymentVO.java | 2 +- 8 files changed, 361 insertions(+), 15 deletions(-) create mode 100644 bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderRequest.java create mode 100644 bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderResponse.java diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePaymentController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePaymentController.java index a0c2ca1e..04f31b7b 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePaymentController.java +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/manage/OnlinePaymentController.java @@ -2,6 +2,7 @@ package com.hzs.third.pay.controller.manage; 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.annotation.AccessPermissions; import com.hzs.common.core.annotation.Log; import com.hzs.common.core.constant.EnumsPrefixConstants; @@ -21,6 +22,7 @@ import com.hzs.common.service.ITransactionCommonService; import com.hzs.common.util.TransactionUtils; import com.hzs.third.pay.param.OnlinePaymentParam; import com.hzs.third.pay.param.OnlinePaymentRetryParam; +import com.hzs.third.pay.service.IJdPayService; import com.hzs.third.pay.service.IPayService; import com.hzs.third.pay.service.ITOnlinePaymentService; import com.hzs.third.pay.vo.OnlinePaymentVO; @@ -48,6 +50,8 @@ public class OnlinePaymentController extends BaseController { private ITOnlinePaymentService itOnlinePaymentService; @Autowired private IPayService iPayService; + @Autowired + private IJdPayService iJdPayService; @Autowired private ITransactionCommonService iTransactionCommonService; @@ -144,4 +148,16 @@ public class OnlinePaymentController extends BaseController { return toAjax(iPayService.retryHandle(tOnlinePayment, false)); } + /** + * 补偿支付回调 + * + * @param param 业务重试入参 + * @return + */ + @Log(module = EOperationModule.ONLINE_PAY_DETAIL, business = EOperationBusiness.ONLINE_PAY_DETAIL, method = EOperationMethod.SUBMIT) + @GetMapping("/compensationCallBack") + public AjaxResult compensationCallBack(@RequestParam("businessCode") String businessCode) { + return iJdPayService.compensationCallBack(businessCode); + } + } diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderRequest.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderRequest.java new file mode 100644 index 00000000..96be5cad --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderRequest.java @@ -0,0 +1,27 @@ +package com.hzs.third.pay.jdpay.dto; + + +import java.io.Serializable; + +public class JdPayQueryOrderRequest implements Serializable { + /** + * 商户订单号 + */ + private String outTradeNo; + + + public String getOutTradeNo() { + return outTradeNo; + } + + public void setOutTradeNo(String outTradeNo) { + this.outTradeNo = outTradeNo; + } + + @Override + public String toString() { + return "{ \"outTradeNo\":\"" + outTradeNo + "\"" + + "}" + ; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderResponse.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderResponse.java new file mode 100644 index 00000000..7900664a --- /dev/null +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayQueryOrderResponse.java @@ -0,0 +1,197 @@ +package com.hzs.third.pay.jdpay.dto; + +import java.io.Serializable; + +public class JdPayQueryOrderResponse implements Serializable { + /** + * 京东交易订单号 + */ + private String tradeNo; + /** + * 商户订单号 + */ + private String outTradeNo; + /** + * 订单总金额 + */ + private String tradeAmount; + /** + * 支付完成时间 + */ + private String finishDate; + /** + * 交易类型 + */ + private String tradeType; + /** + * 交易状态 + */ + private String tradeStatus; + /** + * 回传字段 + */ + private String returnParams; + /** + * 商户用户标识 + */ + private String userId; + /** + * 优惠金额 + */ + private String discountAmount; + /** + * 支付工具 + */ + private String payTool; + /** + * ] + * 掩码卡号 + */ + private String maskCardNo; + /** + * 卡类型 + */ + private String cardType; + /** + * 银行编码 + */ + private String bankCode; + /** + * 白条分期数 + */ + private String installmentNum; + + + public String getTradeNo() { + return tradeNo; + } + + public void setTradeNo(String tradeNo) { + this.tradeNo = tradeNo; + } + + public String getOutTradeNo() { + return outTradeNo; + } + + public void setOutTradeNo(String outTradeNo) { + this.outTradeNo = outTradeNo; + } + + public String getTradeAmount() { + return tradeAmount; + } + + public void setTradeAmount(String tradeAmount) { + this.tradeAmount = tradeAmount; + } + + public String getFinishDate() { + return finishDate; + } + + public void setFinishDate(String finishDate) { + this.finishDate = finishDate; + } + + public String getTradeType() { + return tradeType; + } + + public void setTradeType(String tradeType) { + this.tradeType = tradeType; + } + + public String getTradeStatus() { + return tradeStatus; + } + + public void setTradeStatus(String tradeStatus) { + this.tradeStatus = tradeStatus; + } + + public String getReturnParams() { + return returnParams; + } + + public void setReturnParams(String returnParams) { + this.returnParams = returnParams; + } + + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getDiscountAmount() { + return discountAmount; + } + + public void setDiscountAmount(String discountAmount) { + this.discountAmount = discountAmount; + } + + public String getPayTool() { + return payTool; + } + + public void setPayTool(String payTool) { + this.payTool = payTool; + } + + public String getMaskCardNo() { + return maskCardNo; + } + + public void setMaskCardNo(String maskCardNo) { + this.maskCardNo = maskCardNo; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getBankCode() { + return bankCode; + } + + public void setBankCode(String bankCode) { + this.bankCode = bankCode; + } + + public String getInstallmentNum() { + return installmentNum; + } + + public void setInstallmentNum(String installmentNum) { + this.installmentNum = installmentNum; + } + + @Override + public String toString() { + return "{\"tradeNo\":\"" + tradeNo + "\"" + + ", \"outTradeNo\":\"" + outTradeNo + "\"" + + ", \"tradeAmount\":\"" + tradeAmount + "\"" + + ", \"finishDate\":\"" + finishDate + "\"" + + ", \"tradeType\":\"" + tradeType + "\"" + + ", \"tradeStatus\":\"" + tradeStatus + "\"" + + ", \"returnParams\":\"" + returnParams + "\"" + + ", \"userId\":\"" + userId + "\"" + + ", \"discountAmount\":\"" + discountAmount + "\"" + + ", \"payTool\":\"" + payTool + "\"" + + ", \"maskCardNo\":\"" + maskCardNo + "\"" + + ", \"cardType\":\"" + cardType + "\"" + + ", \"bankCode\":\"" + bankCode + "\"" + + ", \"installmentNum\":\"" + installmentNum + "\"" + + "}" + ; + } +} diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPay.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPay.java index f5898780..82ac5acc 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPay.java +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/sdk/JdPay.java @@ -56,9 +56,9 @@ public class JdPay { // * @return JdPayQueryOrderResponse 返回数据 // * @throws Exception // */ -// public JdPayQueryOrderResponse queryOrder(JdPayQueryOrderRequest request) throws Exception { -// return this.baseExecute(JdPayConstant.TRADE_QUERY_URL, request, JdPayQueryOrderResponse.class); -// } + public JdPayQueryOrderResponse queryOrder(JdPayQueryOrderRequest request) throws Exception { + return this.baseExecute(JdPayConstant.TRADE_QUERY_URL, request, JdPayQueryOrderResponse.class); + } // // /** // * 作用:代扣 diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java b/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java index ccd9a9d1..9b69a4b9 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/IJdPayService.java @@ -2,6 +2,7 @@ package com.hzs.third.pay.service; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.EDataSource; +import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.third.pay.TOnlinePayment; /** @@ -18,4 +19,12 @@ public interface IJdPayService { */ R cashRegister(TOnlinePayment onlinePayment, EDataSource dataSource); + /** + * 收银台支付 + * + * @param onlinePayment + * @param dataSource + * @return + */ + AjaxResult compensationCallBack(String businessCode); } diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java index a2c6b4ac..2492cbdc 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/JdPayServiceImpl.java @@ -2,11 +2,12 @@ package com.hzs.third.pay.service.impl; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.domain.R; -import com.hzs.common.core.enums.EDataSource; -import com.hzs.common.core.enums.EEnv; +import com.hzs.common.core.enums.*; import com.hzs.common.core.utils.DateUtils; +import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.third.pay.TOnlinePayment; import com.hzs.common.domain.third.pay.TOnlinePaymentSepAcc; import com.hzs.common.domain.third.pay.TOnlinePaymentSepAccD; @@ -15,16 +16,10 @@ import com.hzs.third.pay.config.JdPayBankProperties; import com.hzs.third.pay.config.JdPayConfig; import com.hzs.third.pay.config.JdPaySeparateAccountConfig; import com.hzs.third.pay.config.JdPayWechatAlipayProperties; -import com.hzs.third.pay.jdpay.dto.JdPayAggregateCreateOrderRequest; -import com.hzs.third.pay.jdpay.dto.JdPayAggregateCreateOrderResponse; -import com.hzs.third.pay.jdpay.dto.JdPayDivisionAccount; -import com.hzs.third.pay.jdpay.dto.JdPayDivisionAccountTradeInfo; +import com.hzs.third.pay.jdpay.dto.*; import com.hzs.third.pay.jdpay.sdk.JdPay; import com.hzs.third.pay.jdpay.util.GsonUtil; -import com.hzs.third.pay.service.IJdPayService; -import com.hzs.third.pay.service.ITOnlineCardService; -import com.hzs.third.pay.service.ITOnlinePaymentSepAccService; -import com.hzs.third.pay.service.ITOnlinePaymentService; +import com.hzs.third.pay.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -35,6 +30,7 @@ import java.math.BigDecimal; import java.net.InetAddress; import java.util.ArrayList; import java.util.Comparator; +import java.util.Date; import java.util.List; /** @@ -59,6 +55,8 @@ public class JdPayServiceImpl implements IJdPayService { @Autowired private ITOnlinePaymentService itOnlinePaymentService; + @Autowired + private IPayService iPayService; @Resource private JdPayWechatAlipayProperties jdPayWechatAlipayProperties; @@ -196,4 +194,94 @@ public class JdPayServiceImpl implements IJdPayService { } + + @Override + public AjaxResult compensationCallBack(String businessCode) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(TOnlinePayment::getBusinessCode, businessCode); + queryWrapper.eq(TOnlinePayment::getDelFlag, EDelFlag.UN_DELETE.getValue()); + TOnlinePayment tOnlinePayment = itOnlinePaymentService.getOne(queryWrapper, false); + if(ObjectUtil.isEmpty(tOnlinePayment)){ + return AjaxResult.error("订单不存在"); + } + JdPayQueryOrderRequest request = new JdPayQueryOrderRequest(); + request.setOutTradeNo(tOnlinePayment.getBusinessCode()); + JdPayQueryOrderResponse response = null; + try { + response = jdPay.queryOrder(request); + if (ObjectUtil.isEmpty(response.getTradeNo()) || EPayStatus.PAID.getValue() == tOnlinePayment.getPayStatus()) { + log.error("支付信息不存在或已支付"); + return AjaxResult.success("已支付订单 无需补偿回调!"); + } + log.info("queryOrder : {}", JSONUtil.toJsonStr(response)); + { + // 支付成功处理 + + // 商户订单号 + String payNumber = response.getTradeNo(); + // 渠道流水号 + String channelNumber = ""; + // 支付完成时间 + Date payTime = DateUtils.parseDateOne(response.getFinishDate(), DateUtils.YAMMERERS); + + // 回调订单编号 + String thirdOrderCode = response.getOutTradeNo(); + // 订单编号 + String acqOrderId = "compensationCallBack"; + + // 订单金额 + int tradeAmount = Integer.parseInt(response.getTradeAmount()); + BigDecimal payMoney = new BigDecimal(tradeAmount).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); + Integer payType = convertPayType(response.getPayTool()); + // 支付后续业务处理 + if (iPayService.notifyHandle(tOnlinePayment.getBusinessType().toString() , thirdOrderCode, thirdOrderCode, payNumber, payTime, payMoney, EPayChannel.JD, channelNumber, payType, acqOrderId)) { + return AjaxResult.success(); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return AjaxResult.success(); + } + + + /** + * 京东收银台处理成功返回 + */ + private static final String SUCCESS = "SUCCESS"; + /** + * 京东收银台处理失败返回 + */ + private static final String ERROR = "ERROR"; + private Integer convertPayType(String payName){ + Integer result = EPayType.WECHAT.getValue(); + switch (payName){ + case "XJK": + result = EPayType.MINI_TREASURY.getValue(); + break; + case "JIOU": + result = EPayType.CREDIT_LINE.getValue(); + break; + case "SJIOU": + result = EPayType.SUPER_CREDIT_LINE.getValue(); + break; + case "ACCT": + result = EPayType.WALLET_BALANCE.getValue(); + break; + case "EXPR": + result = EPayType.BANK_CARD.getValue(); + break; + case "WX": + result = EPayType.WECHAT.getValue(); + break; + case "ALIPAY": + result = EPayType.ALIPAY.getValue(); + break; + case "YSF": + result = EPayType.CLOUD_PAY.getValue(); + break; + + } + return result; + } } diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java index b6ea67f3..8522f81c 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java @@ -2,10 +2,12 @@ package com.hzs.third.pay.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.constant.MagicNumberConstants; import com.hzs.common.core.constant.RabbitMqConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; +import com.hzs.common.core.service.RedisService; import com.hzs.common.domain.third.pay.TOnlinePayment; import com.hzs.member.account.IMemberTradeServiceApi; import com.hzs.retail.sale.IRetailOrderServiceApi; @@ -34,6 +36,8 @@ public class PayServiceImpl implements IPayService { private ITOnlinePaymentService itOnlinePaymentService; @Autowired private RabbitTemplate rabbitTemplate; + @Autowired + private RedisService redisService; @DubboReference IRetailOrderServiceApi iRetailOrderServiceApi; @@ -119,8 +123,11 @@ public class PayServiceImpl implements IPayService { log.error("支付信息不存在或已支付"); return false; } - + String redisKey = CacheConstants.ONLINE_PAY_KEY + businessCode; try { + if(!redisService.lockKeyOnce(redisKey, 10)){ + return false; + } if (!PayUtil.checkAmount(onlinePayment.getBusinessMoney(), payMoney)) { // 业务金额 大于 实际支付金额 log.error("业务金额大于实际支付金额,支付编号:{}, 支付金额:{}", onlinePayment.getPaymentCode(), payMoney); @@ -157,6 +164,8 @@ public class PayServiceImpl implements IPayService { .set(TOnlinePayment::getCallbackStatus, ECallbackStatus.FAIL.getValue()) .set(TOnlinePayment::getCallbackInfo, e.getMessage()) ); + } finally { + redisService.unlock(redisKey); } return false; } diff --git a/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java b/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java index 06593401..fbdf201c 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java +++ b/bd-third/src/main/java/com/hzs/third/pay/vo/OnlinePaymentVO.java @@ -97,7 +97,7 @@ public class OnlinePaymentVO { /** * 支付状态(0=未支付,1=已支付) */ - @JsonIgnore +// @JsonIgnore @Transaction(transactionKey = EnumsPrefixConstants.PAY_STATUS) private Integer payStatus; /** From 77ea53b875c753d995a198f81027448c8fca7b6f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 20 Aug 2025 14:13:57 +0800 Subject: [PATCH 78/89] =?UTF-8?q?##=20=E6=8F=90=E7=8E=B0=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7=EF=BC=9B?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8F=90=E7=8E=B0=E6=98=8E=E7=BB=86=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=EF=BC=9B=E6=8F=90=E7=8E=B0=E7=AD=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E7=BC=93=E5=AD=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/IWithdrawalAutoServiceApi.java | 25 -- .../manage/CuMemberWithdrawController.java | 42 ++- .../dto/CuMemberBonusAccountParam.java | 6 - .../account/mapper/CuMemberAccountMapper.java | 46 --- .../service/ICuMemberAccountService.java | 51 ---- .../account/service/ICuMemberBankService.java | 2 +- .../service/ICuMemberWithdrawService.java | 27 +- .../impl/CuMemberAccountServiceImpl.java | 27 -- .../impl/CuMemberRechargeServiceImpl.java | 3 +- .../impl/CuMemberWithdrawServiceImpl.java | 222 +++----------- .../member/account/vo/CuMemberWithdrawVO.java | 10 +- .../member/account/CuMemberAccountMapper.xml | 125 -------- .../member/account/CuMemberWithdrawMapper.xml | 45 +-- .../system/base/mapper/BdCurrencyMapper.java | 6 - .../base/service/IBdCurrencyService.java | 17 -- .../service/impl/BdCurrencyServiceImpl.java | 23 +- .../manage/BdWithdrawalAutoController.java | 72 +---- .../manage/BdWithdrawalController.java | 274 +++++++----------- .../manage/BdWithdrawalProcessController.java | 131 +++------ .../WithdrawalAutoServiceProvider.java | 36 --- .../provider/WithdrawalServiceProvider.java | 7 - .../service/IBdWithdrawalAutoService.java | 9 - .../impl/BdWithdrawalAutoServiceImpl.java | 41 --- .../service/impl/BdWithdrawalServiceImpl.java | 24 +- .../enums/controller/EnumsController.java | 2 +- .../enums/controller/EnumsInitController.java | 4 - .../common/core/constant/CacheConstants.java | 21 -- .../core/constant/EnumsPrefixConstants.java | 5 - .../common/core/enums/EWithdrawStatus.java | 25 +- .../common/domain/system/base/BdCurrency.java | 5 - .../system/config/BdWithdrawalAuto.java | 6 - 31 files changed, 259 insertions(+), 1080 deletions(-) delete mode 100644 bd-api/bd-api-system/src/main/java/com/hzs/system/config/IWithdrawalAutoServiceApi.java delete mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/config/provider/WithdrawalAutoServiceProvider.java diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/IWithdrawalAutoServiceApi.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/IWithdrawalAutoServiceApi.java deleted file mode 100644 index 5f37d4d4..00000000 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/IWithdrawalAutoServiceApi.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hzs.system.config; - -import com.hzs.common.core.domain.R; -import com.hzs.common.domain.system.config.BdWithdrawalAuto; - -import java.util.List; - -/** - * @description: 根据国家查询自动提现明细api - * @author: zhang jing - * @date: 2022/9/27 15:15 - * @param: - * @return: - **/ -public interface IWithdrawalAutoServiceApi { - - /** - * @description:根据国家查询自动提现明细列表 - * @author: zhang jing - * @date: 2022/9/27 15:20 - * @param: [pkCountry] - * @return: com.hzs.common.core.domain.R> - **/ - R> queryWithdrawalAuto(Integer pkCountry); -} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/manage/CuMemberWithdrawController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/manage/CuMemberWithdrawController.java index 918e9f9d..f151ceb8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/manage/CuMemberWithdrawController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/manage/CuMemberWithdrawController.java @@ -35,9 +35,6 @@ import java.util.*; /** * 会员提现表 前端控制器 - * - * @author hzs - * @since 2022-09-06 */ @RestController @RequestMapping("/manager/withdraw") @@ -46,18 +43,15 @@ public class CuMemberWithdrawController extends BaseController { @Autowired private UserTokenService userTokenService; - @Autowired - private ICuMemberBaseService baseService; - + private ICuMemberBaseService iCuMemberBaseService; @Autowired - ICuMemberWithdrawService cuMemberWithdrawService; - + private ICuMemberWithdrawService iCuMemberWithdrawService; @Autowired - ITransactionCommonService iTransactionCommonService; + private ITransactionCommonService iTransactionCommonService; @DubboReference - IMenuColumnServiceApi menuColumnServiceApi; + IMenuColumnServiceApi iMenuColumnServiceApi; /** @@ -72,11 +66,11 @@ public class CuMemberWithdrawController extends BaseController { if (CollUtil.isEmpty(pkIds)) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.SELECT_INITIATING_SIGNATURE_RECORD)); } - List cuMemberWithdrawList = cuMemberWithdrawService.checkWithdrawPetitionByState(pkIds, EApproveStatus.WAIT_SUBMIT.getValue()); + List cuMemberWithdrawList = iCuMemberWithdrawService.checkWithdrawPetitionByState(pkIds, EApproveStatus.WAIT_SUBMIT.getValue()); if (CollUtil.isNotEmpty(cuMemberWithdrawList)) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.SELECTED_RECORD_DUPLICATE_SIGNATURE_RECORD)); } - return AjaxResult.success(cuMemberWithdrawService.showMemberWithdrawPetition(pkIds, null)); + return AjaxResult.success(iCuMemberWithdrawService.showMemberWithdrawPetition(pkIds, null)); } /** @@ -91,7 +85,7 @@ public class CuMemberWithdrawController extends BaseController { LoginUser loginUser = userTokenService.getLoginUser(); cuMemberPetitionVO.setLoginUser(loginUser); cuMemberPetitionVO.setPkCreat(SecurityUtils.getUserId()); - return AjaxResult.success(cuMemberWithdrawService.confirmWithdrawPetition(cuMemberPetitionVO)); + return AjaxResult.success(iCuMemberWithdrawService.confirmWithdrawPetition(cuMemberPetitionVO)); } @@ -117,7 +111,7 @@ public class CuMemberWithdrawController extends BaseController { } } startPage(); - Object[] objects = cuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO); + Object[] objects = iCuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO); //处理分页 TableDataInfo tableDataInfo = getDataTable((List) objects[0]); tableDataInfo.setRows((List) objects[1]); @@ -137,18 +131,18 @@ public class CuMemberWithdrawController extends BaseController { Integer pkCountry = SecurityUtils.getPkCountry(); cuMemberWithdrawVO.setPkCountry(pkCountry); cuMemberWithdrawVO.setSystemType(SecurityUtils.getSystemType()); - List cuMemberWithdrawList = (List) cuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO)[1]; + List cuMemberWithdrawList = (List) iCuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO)[1]; //枚举翻译 - Map transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveStatus.values(), EWithdrawStatus.values()); + Map transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveStatus.values()); if (CollUtil.isNotEmpty(cuMemberWithdrawList)) { for (CuMemberWithdrawVO memberWithdraw : cuMemberWithdrawList) { Integer pkAccount = memberWithdraw.getPkAccount(); - memberWithdraw.setPkAccountVal(baseService.getAccountTranslateFromDataBase(pkAccount)); + memberWithdraw.setPkAccountVal(iCuMemberBaseService.getAccountTranslateFromDataBase(pkAccount)); memberWithdraw.setApproveStateVal(transactionMap.get(EnumsPrefixConstants.APPROVE_STATUS + memberWithdraw.getApproveState())); - memberWithdraw.setStatusVal(transactionMap.get(EnumsPrefixConstants.ENU_WITHDRAW_STATUS + memberWithdraw.getStatus())); + memberWithdraw.setStatusVal(EWithdrawStatus.getLabelByValue(memberWithdraw.getStatus())); } } - ExcelUtil util = new ExcelUtil<>(CuMemberWithdrawVO.class, menuColumnServiceApi.queryMenuColumn("CashDetails", SecurityUtils.getUserId()).getData()); + ExcelUtil util = new ExcelUtil<>(CuMemberWithdrawVO.class, iMenuColumnServiceApi.queryMenuColumn("CashDetails", SecurityUtils.getUserId()).getData()); util.exportExcel(response, cuMemberWithdrawList, TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_DETAILS_EXPORT)); } @@ -162,7 +156,7 @@ public class CuMemberWithdrawController extends BaseController { @GetMapping("/details") public AjaxResult findWithdrawDetails(Long pkId) { Assert.notNull(pkId, TransactionUtils.getContent(FinanceMsgConstants.SELECT_WITHDRAWAL_RECORD)); - CuMemberWithdrawVO cuMemberRechargeDetailVO = cuMemberWithdrawService.queryCuMemberWithdrawDetail(pkId); + CuMemberWithdrawVO cuMemberRechargeDetailVO = iCuMemberWithdrawService.queryCuMemberWithdrawDetail(pkId); return AjaxResult.success(cuMemberRechargeDetailVO); } @@ -178,7 +172,7 @@ public class CuMemberWithdrawController extends BaseController { public AjaxResult withdrawPayment(@RequestBody CuMemberWithdrawVO memberWithdrawVO) { List pkIds = memberWithdrawVO.getPkIds(); Assert.notNull(pkIds, TransactionUtils.getContent(FinanceMsgConstants.SELECT_PAID_RECORD)); - List withdrawApproveStateByIds = cuMemberWithdrawService.getWithdrawApproveStateByIds(pkIds, EApproveStatus.FINISH.getValue()); + List withdrawApproveStateByIds = iCuMemberWithdrawService.getWithdrawApproveStateByIds(pkIds, EApproveStatus.FINISH.getValue()); if (CollUtil.isNotEmpty(withdrawApproveStateByIds)) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.DATA_UNAPPROVED_DATA)); } @@ -188,7 +182,7 @@ public class CuMemberWithdrawController extends BaseController { memberWithdrawVO.setPayer(pkMember); memberWithdrawVO.setPaymentTime(new Date()); memberWithdrawVO.setPkModified(pkMember); - return toAjax(cuMemberWithdrawService.withdrawPaymentByPkId(memberWithdrawVO)); + return toAjax(iCuMemberWithdrawService.withdrawPaymentByPkId(memberWithdrawVO)); } @@ -207,13 +201,13 @@ public class CuMemberWithdrawController extends BaseController { memberWithdrawVO.setPayer(SecurityUtils.getUserId()); memberWithdrawVO.setPayerRemarks(memberWithdrawVO.getPayerRemarks()); memberWithdrawVO.setPaymentTime(new Date()); - return toAjax(cuMemberWithdrawService.withdrawPaymentPositiveByPkId(memberWithdrawVO)); + return toAjax(iCuMemberWithdrawService.withdrawPaymentPositiveByPkId(memberWithdrawVO)); } @Log(module = EOperationModule.WITHDRAWAL_DETAIL, business = EOperationBusiness.WITHDRAWAL_DETAIL, method = EOperationMethod.REJECT) @PostMapping("/reject") public AjaxResult reject(@RequestBody CuMemberWithdrawRejectParam param) { - cuMemberWithdrawService.withdrawReject(param); + iCuMemberWithdrawService.withdrawReject(param); return AjaxResult.success(); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/dto/CuMemberBonusAccountParam.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/dto/CuMemberBonusAccountParam.java index 4f7091ba..949eb029 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/dto/CuMemberBonusAccountParam.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/dto/CuMemberBonusAccountParam.java @@ -10,12 +10,6 @@ import java.math.BigDecimal; /** * 奖金账户操作参数 - * - * @Description: - * @Author: ljc - * @Time: 2023/3/25 13:56 - * @Classname: CuMemberAccountParam - * @Package_name: com.hzs.member.account.dto */ @Data @Builder diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/mapper/CuMemberAccountMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/mapper/CuMemberAccountMapper.java index 2319e26a..f5c87489 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/mapper/CuMemberAccountMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/mapper/CuMemberAccountMapper.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.account.CuMemberAccountRechargeExt; import com.hzs.common.domain.member.ext.CuMemberAccountExt; -import com.hzs.member.account.dto.CuMemberBonusAccountParam; import com.hzs.member.account.dto.CuMemberRechargeAccountParam; import com.hzs.member.account.dto.MemberAmountDTO; import com.hzs.member.account.vo.CuMemberAccountVO; @@ -28,7 +27,6 @@ public interface CuMemberAccountMapper extends BaseMapper { */ List queryMemberAccountByCondition(CuMemberAccount cuMemberAccount); - /** * 根据会员编码获取余额 * @@ -45,15 +43,6 @@ public interface CuMemberAccountMapper extends BaseMapper { */ Integer updateMemberAccount(CuMemberAccount cuMemberAccount); - - /** - * 根据国家查询余额与银行卡信息 - * - * @param pkCountry 国家ID - * @return List - */ - List queryMemberAccountByPkCountry(@Param("pkCountry") Integer pkCountry); - /** * 根据用户编号查询账户余额 (行转列) * @@ -176,14 +165,6 @@ public interface CuMemberAccountMapper extends BaseMapper { */ List selectMemberAccountByPkMember(@Param(value = "pkMembers") List pkMembers); - /** - * 查询会员账户以及会员信息 - * - * @param memberIdList 会员ID列表 - * @return - */ - List queryAccountAndMemberInfo(@Param("memberIdList") List memberIdList); - /** * 根据用户ID查询钱包余额 * @@ -201,33 +182,6 @@ public interface CuMemberAccountMapper extends BaseMapper { */ List queryMemberAccountByMemberCodeAndName(CuMemberAccountVO cuMemberAccountVO); - /** - * 奖金发放,根据期间发放奖金,更新奖金余额 - * - * @param startPeriod 期间 - */ - void updateMemberAccountGrantByPeriod(@Param("pkCountry") Integer pkCountry, @Param("startPeriod") Integer startPeriod, - @Param("endPeriod") Integer endPeriod); - - /** - * 奖金可提现,根据期间更新可提现金额,减少可消费金额 - * - * @param startPeriod 期间 - */ - void updateMemberAccountWithdrawalByPeriod(@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod, @Param("pkCountry") Integer pkCountry); - - /** - * 批量更新奖金账号 - * - * @param bonusList 奖金账号参数 - * @param operateType 操作类型 - * @param operateType 修改人 - * @return Boolean - */ - Boolean batchUpdateBonusAccountByPkMember(@Param("bonusList") List bonusList, - @Param("operateType") int operateType, - @Param("pkModified") Long pkModified); - /** * 根据来源单号查询奖金账号信息 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAccountService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAccountService.java index e869194c..a61bc22f 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAccountService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberAccountService.java @@ -24,7 +24,6 @@ public interface ICuMemberAccountService extends IService { */ List queryMemberAccountByCondition(CuMemberAccount cuMemberAccount); - /** * 根据会员编码获取余额 * @@ -34,7 +33,6 @@ public interface ICuMemberAccountService extends IService { */ BigDecimal selectBalanceByMemberCode(Long pkMember, Integer accountType); - /** * 更新用户余额 * @@ -92,14 +90,6 @@ public interface ICuMemberAccountService extends IService { */ List selectAccountDetail(Long pkMember, Integer pkCountry); - /** - * 根据国家查询余额与银行卡信息 - * - * @param pkCountry 国家ID - * @return List - */ - List queryMemberAccountByPkcountry(Integer pkCountry); - /** * 根据用户编号查询账户余额 (行转列) * @@ -138,7 +128,6 @@ public interface ICuMemberAccountService extends IService { */ List queryMemberAccountByMemberCodes(List memberCodes, List memberCodeStrs); - /** * 根据用户编号集查询余额(所有字段) * @@ -147,7 +136,6 @@ public interface ICuMemberAccountService extends IService { */ List queryMemberAccountAllByMemberCodes(List memberCodes, Integer pkCountry); - /** * 查询钱包明细 * @@ -156,7 +144,6 @@ public interface ICuMemberAccountService extends IService { */ Object[] selectMemberAccountList(CuMemberWalletDetailVO memberWalletDetailVO); - /** * 根据用户编号查询用户ID * @@ -190,7 +177,6 @@ public interface ICuMemberAccountService extends IService { */ List queryMemberAccountByPkMember(List pkMembers); - /** * 批量更新账户余额(不同用户相同账户) * @@ -200,7 +186,6 @@ public interface ICuMemberAccountService extends IService { */ Boolean batchUpdateMemberAccountByPkmember(List pkMemberList, int pkAccount, Integer isWithdraw); - /** * 更新账户余额(不同用户不同账户) * @@ -210,7 +195,6 @@ public interface ICuMemberAccountService extends IService { */ Boolean batchUpdateMemberAccountByPkMemberCountry(List pkMemberList, Integer isWithdraw); - /** * 批理更新会员的钱包状态 * @@ -229,14 +213,6 @@ public interface ICuMemberAccountService extends IService { */ List selectMemberAccountByPkMember(List pkMembers); - /** - * 查询会员账户以及会员信息 - * - * @param memberIdList 会员ID列表 - * @return - */ - List queryAccountAndMemberInfo(List memberIdList); - /** * 根据会员姓名与会员编号查询账户信息 * @@ -245,23 +221,8 @@ public interface ICuMemberAccountService extends IService { */ Object[] queryMemberAccountByMemberCodeAndName(CuMemberAccountVO cuMemberAccountVO); - List selectFrozenAmountExport(CuMemberAccountVO cuMemberAccountVO); - /** - * 奖金发放,根据期间发放奖金,更新奖金余额 - * - * @param startPeriod 期间 - */ - void updateMemberAccountGrantByPeriod(Integer pkCountry, Integer startPeriod, Integer endPeriod); - - /** - * 奖金可提现,根据期间更新可提现金额,减少可消费金额 - * - * @param startPeriod 期间 - */ - void updateMemberAccountWithdrawalByPeriod(Integer startPeriod, Integer endPeriod, Integer pkCountry); - /** * 根据用户ID查询账户余额信息 * @@ -271,18 +232,6 @@ public interface ICuMemberAccountService extends IService { */ CuMemberRechargeAccountParam findMemberBalanceById(Integer pkAccount, Long pkMember); - - /** - * 批量更新奖金账号 - * - * @param bonusList 奖金账号参数 - * @param operateType 操作类型 - * @param operateType 修改人 - * @return Boolean - */ - Boolean batchUpdateBonusAccountByPkMember(List bonusList, int operateType, Long pkModified); - - /** * 根据来源单号查询奖金账号信息 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberBankService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberBankService.java index b9fba553..aac28341 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberBankService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberBankService.java @@ -12,6 +12,7 @@ import java.util.List; * 会员信息-银行卡信息 服务类 */ public interface ICuMemberBankService extends IService { + /** * 根据主键查询银行卡信息 * @@ -45,7 +46,6 @@ public interface ICuMemberBankService extends IService { */ Integer saveMemberBank(CuMemberBankParam cuMemberBankParam); - /** * 查询绑定的银行卡 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java index 4a11f5e4..f02596ae 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/ICuMemberWithdrawService.java @@ -3,7 +3,6 @@ package com.hzs.member.account.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.account.CuMemberWithdraw; -import com.hzs.common.domain.system.config.BdWithdrawal; import com.hzs.member.account.dto.MemberAccountAudit; import com.hzs.member.account.param.CuMemberWithdrawRejectParam; import com.hzs.member.account.vo.CuMemberPetitionVO; @@ -16,6 +15,7 @@ import java.util.List; * 会员提现表 服务类 */ public interface ICuMemberWithdrawService extends IService { + /** * 根据用户ID查询用户的提现次数 * @@ -32,7 +32,6 @@ public interface ICuMemberWithdrawService extends IService { */ List selectWithdrawByBatch(String batchNO); - /** * 保存提现 * @@ -49,7 +48,6 @@ public interface ICuMemberWithdrawService extends IService { */ Integer updateWithdrawByCode(MemberAccountAudit memberAccountAudit); - /** * 查询列表信息 * @@ -58,7 +56,6 @@ public interface ICuMemberWithdrawService extends IService { */ Object[] selectMemberWithdrawList(CuMemberWithdrawVO cuMemberWithdrawVO); - /** * 查询提现信息详情 * @@ -83,16 +80,6 @@ public interface ICuMemberWithdrawService extends IService { */ Integer withdrawPaymentPositiveByPkId(CuMemberWithdrawVO memberWithdrawVO); - - /** - * 获取余额 - * - * @param pkMember 用户ID - * @param pkCountry 国家ID - * @return BigDecimal - */ - BigDecimal getBalance(Long pkMember, Integer pkCountry, Integer accountsType); - /** * 计算本次提现应该交的个税 * @@ -113,15 +100,6 @@ public interface ICuMemberWithdrawService extends IService { */ BigDecimal computeServiceCharge(Integer pkCountry, BigDecimal cashAmount); - /** - * 获取取整后的金额 - * - * @param bdWithdrawal 提现配置信息 - * @param cashAmount 提现金额 - * @return BigDecimal - */ - BigDecimal computeRounding(BdWithdrawal bdWithdrawal, BigDecimal cashAmount); - /** * 获取账户余额 * @@ -131,7 +109,6 @@ public interface ICuMemberWithdrawService extends IService { */ BigDecimal getAccountBalance(Integer accountsType, CuMemberAccount cuMemberAccount); - /** * @param pkIds 主键集合 * @param approveState 审核状态 @@ -164,7 +141,6 @@ public interface ICuMemberWithdrawService extends IService { */ Integer confirmWithdrawPetition(CuMemberPetitionVO cuMemberPetitionVO); - /** * 会员端查询提现列表 * @@ -183,7 +159,6 @@ public interface ICuMemberWithdrawService extends IService { */ Integer updateWithdrawStatusByPkId(Long pkId, Long pkModified); - /** * 查询会员是否存在提现记录 * diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAccountServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAccountServiceImpl.java index 48d27424..80c7ba89 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAccountServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberAccountServiceImpl.java @@ -324,11 +324,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl queryMemberAccountByPkcountry(Integer pkCountry) { - return baseMapper.queryMemberAccountByPkCountry(pkCountry); - } - @Override public List queryMemberAccountByMemberCode(String memberCode, List accountTypes, Integer pkCountry) { List pkAccounts = new ArrayList<>(); @@ -610,12 +605,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl queryAccountAndMemberInfo(List memberIdList) { - return baseMapper.queryAccountAndMemberInfo(memberIdList); - } - @Override public Object[] queryMemberAccountByMemberCodeAndName(CuMemberAccountVO cuMemberAccountVO) { CuMemberAccountExtVO cuMemberAccountExtVO; @@ -784,28 +773,12 @@ public class CuMemberAccountServiceImpl extends ServiceImpl cuMemberRechargeAccountParams = baseMapper.queryMemberAccountByMemberCode(null, Collections.singletonList(pkAccount), pkMember); return CollUtil.isNotEmpty(cuMemberRechargeAccountParams) ? cuMemberRechargeAccountParams.get(0) : null; } - - @Override - public Boolean batchUpdateBonusAccountByPkMember(List bonusList, int operateType, Long pkModified) { - return baseMapper.batchUpdateBonusAccountByPkMember(bonusList, operateType, pkModified); - } - @Override public List selectMemberBonusAccountBySourceCode(String sourceCode) { return baseMapper.selectMemberBonusAccountBySourceCode(sourceCode); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberRechargeServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberRechargeServiceImpl.java index f7a2825b..ffab2e10 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberRechargeServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/service/impl/CuMemberRechargeServiceImpl.java @@ -478,8 +478,7 @@ public class CuMemberRechargeServiceImpl extends ServiceImpl implements ICuMemberWithdrawService { + @Autowired + private ICuMemberTradeService iCuMemberTradeService; + @Autowired + private ICuMemberAccountService iCuMemberAccountService; + @Autowired + private ICuMemberBaseService iCuMemberBaseService; @DubboReference - IWithdrawalTaxServiceApi withdrawalTaxServiceApi; - - @Autowired - ICuMemberTradeService cuMemberTradeService; - - @Autowired - ICuMemberAccountService cuMemberAccountService; - - @Autowired - ICuMemberBaseService cuMemberBaseService; - - @Autowired - ICuMemberBankService cuMemberBankService; - - @Autowired - ICuMemberService cuMemberService; - + IWithdrawalTaxServiceApi iWithdrawalTaxServiceApi; @DubboReference - IWithdrawalAutoServiceApi withdrawalAutoServiceApi; - + IWithdrawalProcessServiceApi iWithdrawalProcessServiceApi; @DubboReference - IWithdrawalProcessServiceApi withdrawalProcessServiceApi; - - @DubboReference - IApprovalServiceApi approvalServiceApi; - + IApprovalServiceApi iApprovalServiceApi; @Override public List getWithdrawTimes(Long pkMember) { @@ -106,7 +84,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl cuMemberAccountExts, List bdAccounts, Integer accountsType, Integer pkCountry) { - //会员ID 银行卡ID - Long pkMember; - Long pkBank; - //余额 锁定金额 - BigDecimal balance, lockAccount; - //最高自动提现金额 - BigDecimal upperBound = withdrawal.getUpperBound(); - //最低自动提现金额 - BigDecimal lowerBound = withdrawal.getLowerBound(); - //配置文件中的提现次数 - Integer withdrawalNumber = withdrawal.getWithdrawalNumber(); - if (CollUtil.isNotEmpty(cuMemberAccountExts)) { - //查询每个会员正在参与审核的次数 - List withdrawTimesByPkCountry = baseMapper.getWithdrawTimesByPkCountry(pkCountry); - Map withdrawTimes = withdrawTimesByPkCountry.stream().collect(Collectors.toMap(CuMemberWithdrawExt::getPkMember, CuMemberWithdrawExt::getTimes)); - //汇率 - CurrencyDTO currencyDTO = cuMemberBaseService.getCurrency(pkCountry); - for (CuMemberAccountExt cuMemberAccountExt : cuMemberAccountExts) { - pkBank = cuMemberAccountExt.getPkBank(); - //是否绑定银行卡 - CuMemberBankVO memberBank = cuMemberBankService.selectCuMemberBankById(pkBank); - log.info("----------是否绑定银行卡"); - if (null != memberBank) { - log.info("----------绑定银行卡"); - pkMember = cuMemberAccountExt.getPkMember(); - //获取余额 - balance = getAvailableBalance(accountsType, cuMemberAccountExt); - //是否取整 - balance = computeRounding(withdrawal, balance); - // 提现金额在配置金额之间 - if (balance.compareTo(lowerBound) > 0 && balance.compareTo(upperBound) < 0) { - log.info("----------提现开始"); - Integer times = withdrawTimes.get(pkMember) == null ? 0 : withdrawTimes.get(pkMember); - //比较正在提现次数与配置的最大提现次数 - if (times <= withdrawalNumber) { - //本次应缴个税 - BigDecimal payIncomeTax = computeIncomeTaxValue(pkMember, balance, pkCountry, lowerBound); - //手续费金额 - BigDecimal serviceChargeAmount = computeServiceCharge(pkCountry, balance); - BigDecimal issuedAmount = balance.subtract(payIncomeTax).subtract(serviceChargeAmount); - String code = CommonUtil.createSerialNumber(EOrderPrefix.WITHDRAWAL_CODE.getValue()); - CuMember member = cuMemberService.getMember(pkMember); - String remarks = member.getMemberCode() + "自动申请提现" + balance.toString(); - CuMemberWithdraw cuMemberWithdraw = CuMemberWithdraw.builder().pkMember(pkMember) - .pkAccount(bdAccounts.get(0).getPkId()).pkBank(pkBank) - .pkRate(currencyDTO.getPkId()).cashAmount(balance) - .serviceCharge(serviceChargeAmount).incomeTax(payIncomeTax) - .issuedAmount(issuedAmount).withdrawCode(code).remarks(remarks).build(); - cuMemberWithdraw.setApproveState(EApproveStatus.WAIT_SUBMIT.getValue()); - cuMemberWithdraw.setDelFlag(EDelFlag.UN_DELETE.getValue()); - cuMemberWithdraw.setPkCountry(pkCountry); - cuMemberWithdraw.setPkCreator(pkMember); - //保存提现、交易流水、余额信息 - baseMapper.insert(cuMemberWithdraw); - this.updateTradeAndBalancd(cuMemberWithdraw, EOperationMethod.INSERT); - } - } - } - } - } - } - - /** * 获取余额 * @@ -447,44 +346,10 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl listR = withdrawalAutoServiceApi.queryWithdrawalAuto(pkCountry).getData(); - for (BdWithdrawalAuto withdrawalAuto : listR) { - Integer withdrawalCycle = withdrawalAuto.getWithdrawalCycle(); - if (dayOfWeekNum.equals(withdrawalCycle)) { - return true; - } - - } - return false; - } - - @Override - public BigDecimal getBalance(Long pkMember, Integer pkCountry, Integer accountsType) { - //提现账户 - if (null == accountsType) { - List bdAccounts = cuMemberBaseService.getAccountByCountry(EAccountProperty.IS_WITHDRAWAL.getValue(), pkCountry); - accountsType = bdAccounts.get(0).getFieldValue(); - } - //查询账户余额 - return cuMemberAccountService.selectBalanceByMemberCode(pkMember, accountsType); - } - @Override public BigDecimal computeIncomeTaxValue(Long pkMember, BigDecimal cashAmount, Integer pkCountry, BigDecimal minAmount) { //获取个税配置 - R bdWithdrawalTaxExtR = withdrawalTaxServiceApi.queryWithdrawalTax(pkCountry); + R bdWithdrawalTaxExtR = iWithdrawalTaxServiceApi.queryWithdrawalTax(pkCountry); BdWithdrawalTaxExt withdrawalTax = bdWithdrawalTaxExtR.getData(); if (null == withdrawalTax) { return BigDecimal.ZERO; @@ -517,7 +382,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl getWithdrawApproveStateByIds(List pkIds, Integer approveState) { return baseMapper.getWithdrawApproveStateByIds(pkIds, approveState); } - @Override public CuMemberPetitionVO showMemberWithdrawPetition(List pkIds, Integer approveState) { CuMemberPetitionVO memberPetitionVo = new CuMemberPetitionVO(); @@ -563,7 +414,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl checkWithdrawPetitionByState(List pkIds, Integer approveState) { return BeanUtil.copyToList(baseMapper.showMemberWithdrawPetition(pkIds, approveState), CuMemberWithdrawVO.class); @@ -587,7 +437,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl withdrawCodeList = cuMemberWithdrawExts.stream().map(CuMemberWithdrawExt::getWithdrawCode).collect(Collectors.toList()); CuMemberTradeVO memberTradeVO = CuMemberTradeVO.builder().sourceCode(businessNo) .tradeCodes(withdrawCodeList).pkModified(loginUser.getUserId()).build(); - cuMemberTradeService.updateSourceCodeByTradeCode(memberTradeVO); + iCuMemberTradeService.updateSourceCodeByTradeCode(memberTradeVO); List memberWithdrawList = memberPetitionVo.getMemberWithdrawList(); //提交提现用户 @@ -600,7 +450,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl submit = approvalServiceApi.submit(approvalSubmitDTO, loginUser); + R submit = iApprovalServiceApi.submit(approvalSubmitDTO, loginUser); if (!submit.isSuccess()) { throw new RuntimeException(submit.getMsg()); } @@ -636,7 +486,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl cuMemberWithdrawList = baseMapper.selectMemberWithdrawListByPkMember(pkMember, pkCountry); if (CollUtil.isNotEmpty(cuMemberWithdrawList)) { //查询币种值 - List allAccounts = cuMemberBaseService.getAccountByCountryId(pkCountry); + List allAccounts = iCuMemberBaseService.getAccountByCountryId(pkCountry); Map map = allAccounts.stream().collect(Collectors.toMap(BdAccount::getPkId, o -> o)); for (CuMemberWithdrawExt ext : cuMemberWithdrawList) { cuMemberWithdrawVO = BeanUtil.copyProperties(ext, CuMemberWithdrawVO.class); @@ -669,18 +519,18 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl 0) { //插入交易明细表 - cuMemberTradeService.save(getCuMemberTradeInfo(cuMemberWithdraw)); + iCuMemberTradeService.save(getCuMemberTradeInfo(cuMemberWithdraw)); //更新余额表 CuMemberAccount cuMemberAccount = this.getCuMemberAccount(cuMemberWithdraw, backAmount); cuMemberAccount.setPkCountry(cuMemberWithdraw.getPkCountry()); - cuMemberAccountService.updateMemberAccount(cuMemberAccount, pkModified); + iCuMemberAccountService.updateMemberAccount(cuMemberAccount, pkModified); } return baseMapper.updateWithdrawStatusByPkId(pkId, pkModified); } private CuMemberAccount getCuMemberAccount(CuMemberWithdraw cuMemberWithdraw, BigDecimal backAmount) { Integer pkAccount = cuMemberWithdraw.getPkAccount(); - BdAccount account = cuMemberBaseService.getAccount(pkAccount); + BdAccount account = iCuMemberBaseService.getAccount(pkAccount); if (account.getFieldValue().equals(EAccount.BONUS.getValue())) { return CuMemberAccount.builder() .account4(backAmount) @@ -704,11 +554,11 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); @@ -753,13 +603,13 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl cuMemberWithdrawList = baseMapper.selectList(wrapper); Integer pkCountry = SecurityUtils.getPkCountry(); - if(CollUtil.isNotEmpty(cuMemberWithdrawList)){ + if (CollUtil.isNotEmpty(cuMemberWithdrawList)) { for (CuMemberWithdraw cuMemberWithdraw : cuMemberWithdrawList) { BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder() .tradeCode(cuMemberWithdraw.getWithdrawCode()).pkCountry(pkCountry) .tradeType(EApprovalBusiness.WITHDRAWAL.getValue()) .pkCreator(SecurityUtils.getUserId()).build(); - cuMemberTradeService.businessCommissionReject(businessCommissionDTO); + iCuMemberTradeService.businessCommissionReject(businessCommissionDTO); } } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java index cc3cc670..a44b50df 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/vo/CuMemberWithdrawVO.java @@ -13,15 +13,8 @@ import java.util.Date; import java.util.List; /** - *

* 会员提现表 - *

- * - * @author hzs - * @since 2022-09-06 */ - - @EqualsAndHashCode(callSuper = true) @Data @Builder @@ -227,7 +220,6 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO { /** * 状态(0=未打款,1=已打款,2=已充正,3=撤消) */ - @Transaction(transactionKey = EnumsPrefixConstants.ENU_WITHDRAW_STATUS) private Integer status; @Excel(name = "打款状态") @@ -317,7 +309,7 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO { /** * 查询状态 */ - private Integer queryStatus; + private Integer queryStatus; /** * 会员编号集合 diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountMapper.xml index 5c02d7bc..daf4be14 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountMapper.xml @@ -235,19 +235,6 @@
- - - select a.pk_member, @@ -1064,25 +1004,6 @@ - - - - - - MERGE INTO cu_member_account m - USING - ( - - select #{item.pkMember} pk_member, - - #{item.account4} account4, - #{item.consumeAccount4} consumeAccount4, - - - #{item.account4} account4, - #{item.withdrawAccount4} withdrawAccount4, - - - #{item.account4} account4, - #{item.consumeAccount4} consumeAccount4, - #{item.withdrawAccount4} withdrawAccount4, - - FROM DUAL - - ) t - ON ( t.pk_member=m.pk_member and m.pk_member in - - #{item.pkMember} - ) - WHEN MATCHED THEN - UPDATE SET - - m.account4 = NVL(t.account4, 0) + m.account4, - m.consume_account4 = NVL(t.consumeAccount4, 0) + m.consume_account4, - - - m.account4 = NVL(t.account4, 0) + m.account4, - m.withdraw_account4 = NVL(t.withdrawAccount4, 0) + m.withdraw_account4, - - - m.account4 = NVL(t.account4, 0) + m.account4, - m.consume_account4 = NVL(t.consumeAccount4, 0) + m.consume_account4, - m.withdraw_account4 = NVL(t.withdrawAccount4, 0) + m.withdraw_account4, - - m.MODIFIED_TIME = sysdate,m.pk_modified = #{pkModified} - - - - - 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 aa847938..ee63f676 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 @@ -236,7 +236,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { } } - // TODO 2025.08.04 注册、升级专区,下单支付会员如果是分公司,订单不需要发货,直接放入提货中心 + // 2025.08.04 注册、升级专区,下单支付会员如果是分公司,订单不需要发货,直接放入提货中心 CuMember createMember = orderParam.getCreatorMember(); if (null == createMember) { createMember = iMemberServiceApi.getMember(orderParam.getPkCreator()).getData(); @@ -961,49 +961,53 @@ public class RetailOrderServiceImpl implements IRetailOrderService { if (EYesNo.NO.getIntValue() == BdConfig.getProductSync()) { return; } - Map productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null); - // 开启线程调用全网产品库存 - // 请求参数 - Map bodyMap = new HashMap<>(); - bodyMap.put("source", BdConfig.getSysName()); - bodyMap.put("orderCode", saOrderExt.getOrderCode()); - List> bodyDetailList = new ArrayList<>(); - for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { - Map detailMap = new HashMap<>(); - detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode()); - detailMap.put("changeNum", saOrderItems.getQuantity()); - bodyDetailList.add(detailMap); - } - bodyMap.put("detailList", bodyDetailList); - // 请求头 - String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode()); - ThreadUtils.threadPoolExecutor.submit(() -> { - log.info("同步产品,header: {}", header); - log.info("同步产品,bodyMap: {}", bodyMap); - HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl()); - httpRequest.header("authorization", header); - httpRequest.body(JSONUtil.toJsonStr(bodyMap)); - httpRequest.setReadTimeout(5000); - try { - // 同步产品接口返回 - String resultStr = httpRequest.execute().body(); - AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class); - log.info("同步产品,resultStr: {}", resultStr); - if (!ajaxResult.isSuccess()) { - // 同步产品失败,250毫秒后重试 - Thread.sleep(250); - resultStr = httpRequest.execute().body(); - log.info("同步产品失败重试,resultStr: {}", resultStr); - } - } catch (Exception e) { - log.error("同步产品库存异常", e); - // 保存订单产品同步记录 - iSaOrderSyncService.save(SaOrderSync.builder() - .orderCode(saOrderExt.getOrderCode()) - .bodyDetail(JSONUtil.toJsonStr(bodyDetailList)) - .build()); + try { + Map productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null); + // 开启线程调用全网产品库存 + // 请求参数 + Map bodyMap = new HashMap<>(); + bodyMap.put("source", BdConfig.getSysName()); + bodyMap.put("orderCode", saOrderExt.getOrderCode()); + List> bodyDetailList = new ArrayList<>(); + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { + Map detailMap = new HashMap<>(); + detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode()); + detailMap.put("changeNum", saOrderItems.getQuantity()); + bodyDetailList.add(detailMap); } - }); + bodyMap.put("detailList", bodyDetailList); + // 请求头 + String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode()); + ThreadUtils.threadPoolExecutor.submit(() -> { + log.info("同步产品,header: {}", header); + log.info("同步产品,bodyMap: {}", bodyMap); + HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl()); + httpRequest.header("authorization", header); + httpRequest.body(JSONUtil.toJsonStr(bodyMap)); + httpRequest.setReadTimeout(5000); + try { + // 同步产品接口返回 + String resultStr = httpRequest.execute().body(); + AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class); + log.info("同步产品,resultStr: {}", resultStr); + if (!ajaxResult.isSuccess()) { + // 同步产品失败,250毫秒后重试 + Thread.sleep(250); + resultStr = httpRequest.execute().body(); + log.info("同步产品失败重试,resultStr: {}", resultStr); + } + } catch (Exception e) { + log.error("同步产品库存异常", e); + // 保存订单产品同步记录 + iSaOrderSyncService.save(SaOrderSync.builder() + .orderCode(saOrderExt.getOrderCode()) + .bodyDetail(JSONUtil.toJsonStr(bodyDetailList)) + .build()); + } + }); + } catch (Exception e) { + log.error("同步产品异常: ", e); + } } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java index caac6485..e9235952 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java @@ -12,7 +12,7 @@ import lombok.Getter; public enum EUpgradeType { /** - * 1=自动升级 -- 目前只高级店主升级为自动升级 + * 1=自动升级 -- 高级店主升级为自动升级、董事代理为自动升级 */ AUTO_UPGRADE(1, "自动升级", 0, EnumsPrefixConstants.UPGRADE_TYPE + 1), From 18fe81305d2d04edfbf27e17f6154aa898d550ab Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 20 Aug 2025 18:30:12 +0800 Subject: [PATCH 82/89] =?UTF-8?q?##=20=E5=95=86=E5=93=81=E3=80=81=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E3=80=81=E7=BB=93=E7=AE=97=E6=94=AF=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=9B=92=E6=95=B0=E4=B8=BA=E5=B0=8F=E6=95=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 49 ++++++++++++------- .../bonus/achieve/CuMemberTreeMapper.xml | 16 +++--- .../member/vo/CuMemberRetailAchieveVO.java | 2 +- .../member/vo/DirectPushAmountPvBoxVo.java | 38 ++++++-------- .../report/member/MemberReportMapper.xml | 32 ++++++------ .../service/impl/RetailOrderServiceImpl.java | 26 ++-------- .../sale/order/mapper/SaOrderItemsMapper.java | 11 +++-- .../hzs/sale/order/param/OrderItemsParam.java | 3 +- .../order/service/ISaOrderItemsService.java | 3 +- .../sale/order/service/ISaOrderService.java | 4 +- .../impl/OrderBusinessServiceImpl.java | 2 +- .../service/impl/SaOrderItemsServiceImpl.java | 3 +- .../service/impl/SaOrderServiceImpl.java | 48 +++++++++++------- .../controller/manage/BdWaresController.java | 3 +- .../com/hzs/sale/wares/param/WaresParams.java | 2 +- .../mapper/sale/order/SaOrderItemsMapper.xml | 14 +----- .../member/achieve/CuMemberRetailRange.java | 16 +++--- .../domain/sale/ext/BdWaresDetailExt.java | 2 +- .../hzs/common/domain/sale/order/SaOrder.java | 2 +- .../hzs/common/domain/sale/wares/BdWares.java | 2 +- .../common/domain/system/config/BdGrade.java | 6 +-- 21 files changed, 137 insertions(+), 147 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index f7f44440..7a56e2db 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -126,7 +126,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 配送收益配置 Map regionMap = iMemberServiceApi.listEffectiveRegion(settleStartDate).getData(); - // 直推、复购级差收益 List cuMemberBonusRangeList = new ArrayList<>(); // 复购配送收益 @@ -147,14 +146,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 订单指定产品盒数(计算等级使用) - int boxNum = saOrderExt.getBoxNum(); + BigDecimal boxNum = saOrderExt.getBoxNum(); // 个人累计消费pv BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); // 复购、重消,盒数、业绩算个人累计数据(盒数、业绩) - sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum); - sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum); - sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() + boxNum); + sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum)); + sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum)); + sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().add(boxNum)); sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve)); sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve)); sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve)); @@ -169,7 +168,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 计算奖金 直推级差 if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) - && boxNum > 0 + && boxNum.compareTo(BigDecimal.ZERO) > 0 ) { // 注册或升级订单并且存在盒数产品,才有 直推级差 cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt, gradeIdMap)); @@ -186,20 +185,22 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } } - // 订单存在自动升级记录(高级店主处理) + // 订单存在自动升级记录(高级店主、区域董事处理) if (autoLevelMap.containsKey(saOrderExt.getPkId())) { CuMemberLevel cuMemberLevel = autoLevelMap.get(saOrderExt.getPkId()); if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) { BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel()); CuMemberRetailRangeExt tmpMemberRetailRange = memberRangeExtMap.get(cuMemberLevel.getPkMember()); - tmpMemberRetailRange.setPkGrade(bdGrade.getPkId()); - tmpMemberRetailRange.setGradeValue(bdGrade.getGradeValue()); - tmpMemberRetailRange.setGradeName(bdGrade.getGradeName()); + if (bdGrade.getGradeValue() > tmpMemberRetailRange.getGradeValue()) { + tmpMemberRetailRange.setPkGrade(bdGrade.getPkId()); + tmpMemberRetailRange.setGradeValue(bdGrade.getGradeValue()); + tmpMemberRetailRange.setGradeName(bdGrade.getGradeName()); + } } } } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { // 复购订单 - if (boxNum > 0) { + if (boxNum.compareTo(BigDecimal.ZERO) > 0) { // 存在盒数商品,计算复购级差 cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt)); @@ -234,7 +235,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { * 累计团队盒数、业绩等 */ public void calculateRetailRangeGradeAwards(Map memberRangeExtMap, SaOrderExt saOrderExt, - Integer boxNum, Map activateMap) { + BigDecimal boxNum, Map activateMap) { // 订单会员 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 订单会员的推荐人 @@ -261,9 +262,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumePv(), orderAchieve)); targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), orderAchieve)); // 累计盒数 - targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() + boxNum); - targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() + boxNum); - targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() + boxNum); + targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum().add(boxNum)); + targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum().add(boxNum)); + targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum().add(boxNum)); } targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent()); } @@ -281,9 +282,23 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 推荐人 long pkParent = sourceMemberRangeExt.getPkParent(); - // 订单等级值 + // 订单金额 + BigDecimal orderAmount = saOrderExt.getOrderAmount(); +// // TODO 累计升级,此处订单可能没有等级值 +// if (null != saOrderExt.getPkGrade()) { +// // 订单存在升级记录信息 +// // 订单等级值 +// Integer orderGradeValue = gradeIdMap.get(saOrderExt.getPkGrade()).getGradeValue(); +// } else { +// +// } + + Integer orderGradeValue = gradeIdMap.get(saOrderExt.getPkGrade()).getGradeValue(); + + + // 前一个会员等级 int beforeGradeValue = 0; // 前面累计奖金 @@ -598,7 +613,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 推荐人 long pkParent = sourceMemberRangeExt.getPkParent(); // 商品盒数 - BigDecimal boxNum = new BigDecimal(saOrderExt.getBoxNum()); + BigDecimal boxNum = saOrderExt.getBoxNum(); // 2025.08.13 添加分公司级差收益,每1盒(4个产品)第一分公司4元,第二分公司4元,公司6元,总拨出14元 int branch = 0; diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml index 65845453..07eb81db 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml @@ -434,15 +434,15 @@ pk_country number(4) default 1 not null, system_type NUMBER(2) default 2 not null, pk_rate NUMBER(6), - new_box_num number(8) default 0 not null, - consume_box_num number(8) default 0 not null, - month_box_num number(8) default 0 not null, + new_box_num number(10,2) default 0 not null, + consume_box_num number(10,2) default 0 not null, + month_box_num number(10,2) default 0 not null, new_consume_pv number(17,6) default 0 not null, consume_pv number(17,6) default 0 not null, month_consume_pv number(17,6) default 0 not null, - team_new_box_num number(8) default 0 not null, - team_box_num number(8) default 0 not null, - team_month_box_num number(8) default 0 not null, + team_new_box_num number(10,2) default 0 not null, + team_box_num number(10,2) default 0 not null, + team_month_box_num number(10,2) default 0 not null, team_new_pv number(17,6) default 0 not null, team_consume_pv number(17,6) default 0 not null, team_month_pv number(17,6) default 0 not null, @@ -452,8 +452,8 @@ recommend_num number(8) default 0 not null, team_num number(8) default 0 not null, region_address number(8) default 0 not null, - big_box_num number(8) default 0 not null, - small_box_num number(8) default 0 not null, + big_box_num number(10,2) default 0 not null, + small_box_num number(10,2) default 0 not null, big_team_pv number(17,6) default 0 not null, small_team_pv number(17,6) default 0 not null ) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java index 358a7b76..84ed0137 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java @@ -52,7 +52,7 @@ public class CuMemberRetailAchieveVO implements Serializable { /** * 盒数 */ - private Integer boxs; + private BigDecimal boxs; /** * 状态 diff --git a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushAmountPvBoxVo.java b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushAmountPvBoxVo.java index a45bf337..c1c1d163 100644 --- a/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushAmountPvBoxVo.java +++ b/bd-business/bd-business-report/src/main/java/com/hzs/report/member/vo/DirectPushAmountPvBoxVo.java @@ -9,11 +9,7 @@ import lombok.NoArgsConstructor; import java.math.BigDecimal; /** - * @description: 伞下直推查询会员大小区金额业绩盒数 - * @author: zhang jing - * @date: 2025/2/10 18:00 - * @param: - * @return: + * 伞下直推查询会员大小区金额业绩盒数 **/ @AllArgsConstructor @NoArgsConstructor @@ -36,71 +32,65 @@ public class DirectPushAmountPvBoxVo { /** * 盒数 */ - private Integer boxNum; + private BigDecimal boxNum; /** * 金额 */ @BigDecimalFormat() - private BigDecimal orderAmountReg=BigDecimal.ZERO; + private BigDecimal orderAmountReg = BigDecimal.ZERO; /** * 金额 */ @BigDecimalFormat() - private BigDecimal orderAmountUpg=BigDecimal.ZERO; + private BigDecimal orderAmountUpg = BigDecimal.ZERO; /** * 金额 */ @BigDecimalFormat() - private BigDecimal orderAmountRep=BigDecimal.ZERO; + private BigDecimal orderAmountRep = BigDecimal.ZERO; /** * 金额 */ @BigDecimalFormat() - private BigDecimal orderAmountCon=BigDecimal.ZERO; + private BigDecimal orderAmountCon = BigDecimal.ZERO; /** * 业绩 */ @BigDecimalFormat() - private BigDecimal orderAchieveReg=BigDecimal.ZERO; + private BigDecimal orderAchieveReg = BigDecimal.ZERO; /** * 业绩 */ @BigDecimalFormat() - private BigDecimal orderAchieveUpg=BigDecimal.ZERO; + private BigDecimal orderAchieveUpg = BigDecimal.ZERO; /** * 业绩 */ @BigDecimalFormat() - private BigDecimal orderAchieveRep=BigDecimal.ZERO; + private BigDecimal orderAchieveRep = BigDecimal.ZERO; /** * 业绩 */ @BigDecimalFormat() - private BigDecimal orderAchieveCon=BigDecimal.ZERO; + private BigDecimal orderAchieveCon = BigDecimal.ZERO; /** * 盒数 */ - private int boxNumReg; + private BigDecimal boxNumReg; /** * 盒数 */ - private int boxNumUpg; + private BigDecimal boxNumUpg; /** * 盒数 */ - private int boxNumRep; + private BigDecimal boxNumRep; /** * 盒数 */ - private int boxNumCon; - - - - - - + private BigDecimal boxNumCon; } diff --git a/bd-business/bd-business-report/src/main/resources/mapper/report/member/MemberReportMapper.xml b/bd-business/bd-business-report/src/main/resources/mapper/report/member/MemberReportMapper.xml index e6074edc..e81b9e08 100644 --- a/bd-business/bd-business-report/src/main/resources/mapper/report/member/MemberReportMapper.xml +++ b/bd-business/bd-business-report/src/main/resources/mapper/report/member/MemberReportMapper.xml @@ -38,23 +38,23 @@ TEAM_REP_AMOUNT NUMBER(17,6) default 0 not null, TEAM_CON_AMOUNT NUMBER(17,6) default 0 not null, - SUM_BOX NUMBER(8) default 0, - BIG_BOX NUMBER(8) default 0, - SMALL_BOX NUMBER(8) default 0, - REG_BOX NUMBER(8) default 0, - UPG_BOX NUMBER(8) default 0, - REP_BOX NUMBER(8) default 0, - CON_BOX NUMBER(8) default 0, - INFLATE_BIG_BOX NUMBER(8) default 0, - INFLATE_SMALL_BOX NUMBER(8) default 0, + SUM_BOX NUMBER(10, 2) default 0, + BIG_BOX NUMBER(10, 2) default 0, + SMALL_BOX NUMBER(10, 2) default 0, + REG_BOX NUMBER(10, 2) default 0, + UPG_BOX NUMBER(10, 2) default 0, + REP_BOX NUMBER(10, 2) default 0, + CON_BOX NUMBER(10, 2) default 0, + INFLATE_BIG_BOX NUMBER(10, 2) default 0, + INFLATE_SMALL_BOX NUMBER(10, 2) default 0, - TEAM_SUM_BOX NUMBER(18) default 0, - TEAM_BIG_BOX NUMBER(18) default 0, - TEAM_SMALL_BOX NUMBER(8) default 0, - TEAM_REG_BOX NUMBER(18) default 0, - TEAM_UPG_BOX NUMBER(18) default 0, - TEAM_REP_BOX NUMBER(18) default 0, - TEAM_CON_BOX NUMBER(18) default 0, + TEAM_SUM_BOX NUMBER(18, 2) default 0, + TEAM_BIG_BOX NUMBER(18, 2) default 0, + TEAM_SMALL_BOX NUMBER(8, 2) default 0, + TEAM_REG_BOX NUMBER(18, 2) default 0, + TEAM_UPG_BOX NUMBER(18, 2) default 0, + TEAM_REP_BOX NUMBER(18, 2) default 0, + TEAM_CON_BOX NUMBER(18, 2) default 0, SUM_PV NUMBER(17,6) default 0 not null, BIG_PV NUMBER(17,6) default 0 not null, 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 ee63f676..352ee431 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 @@ -273,7 +273,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { Map> postageMap = new HashMap<>(ComputeUtil.mapInitCapacity(waresDetailExtList.size())); // 当前盒数 - int boxNum = 0; + BigDecimal boxNum = BigDecimal.ZERO; // 设置已经累计盒数的商品列表 List tmpBoxWares = new ArrayList<>(); @@ -298,7 +298,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { if (boxWaresList.contains(waresDetailExt.getWaresCode())) { // 商品是盒数商品,需要累计数量 if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) { - boxNum += waresDetailExt.getBoxNum() * orderItems.getWaresQuantity(); + boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity()))); tmpBoxWares.add(waresDetailExt.getWaresCode()); } } @@ -387,26 +387,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService { } } - /** - * 根据购买盒数,返回商品价格 - * - * @param boxNum 盒数 - * @param gradeList 等级列表(倒序排序) - * @return - */ - private BigDecimal getWaresPrice(int boxNum, List gradeList) { - // 去掉升级条件带有累计盒数的(V4,V5)并且升级购买合数小于等于订单商品盒数的,再进行等级值倒序排序 - gradeList = gradeList.stream().filter(tmpGrade -> tmpGrade.getBoxTotal() == 0 && tmpGrade.getBoxNumber() <= boxNum).sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList()); - - for (BdGrade bdGrade : gradeList) { - if (boxNum > bdGrade.getBoxNumber()) { - // 盒数大于等于购买盒数 - return ERetailWaresPrice.getEnumByValue(bdGrade.getGradeValue()).getPrice(); - } - } - return ERetailWaresPrice.V0.getPrice(); - } - /** * 封装订单信息 * @@ -871,7 +851,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) ) { // 会员激活状态为空 或 未激活,并且是 注册、升级 订单,判断会员是否激活 - if (saOrder.getBoxNum() > 0) { + if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) > 0) { // 存在指定盒数商品 cuMember.setIsActivate(EYesNo.YES.getIntValue()); if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java index caa08a22..d45385d3 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java @@ -14,6 +14,7 @@ import com.hzs.sale.order.param.WaresOrderParam; import com.hzs.sale.order.vo.WaresOrderVo; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -285,11 +286,11 @@ public interface SaOrderItemsMapper extends BaseMapper { * @param systemType 系统类型(可为null) * @return */ - int getRetailWaresQuantityNew(@Param("pkMember") Long pkMember, - @Param("waresCodeList") List waresCodeList, - @Param("payTime") Date payTime, - @Param("orderTypeList") List orderTypeList, - @Param("systemType") Integer systemType); + BigDecimal getRetailWaresQuantityNew(@Param("pkMember") Long pkMember, + @Param("waresCodeList") List waresCodeList, + @Param("payTime") Date payTime, + @Param("orderTypeList") List orderTypeList, + @Param("systemType") Integer systemType); /** * 订单发货数量 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java index 5d53a1d6..9d0a68eb 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.math.BigDecimal; import java.util.List; /** @@ -42,7 +43,7 @@ public class OrderItemsParam implements Serializable { /** * 商品盒数 */ - private Integer boxNum; + private BigDecimal boxNum; /** * 商品明细 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java index 63d71342..6d9782f2 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java @@ -14,6 +14,7 @@ import com.hzs.sale.order.param.WaresOrderParam; import com.hzs.sale.order.vo.WaresOrderVo; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -249,7 +250,7 @@ public interface ISaOrderItemsService extends IService { * @param systemType 系统类型(可为null) * @return */ - int getRetailWaresQuantityNew(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType); + BigDecimal getRetailWaresQuantityNew(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType); /** * 订单发货数量 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index c5dcf188..0b109c00 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -603,7 +603,7 @@ public interface ISaOrderService extends IService { * @param checkUpgrade 校验升级 * @return */ - BdGrade getGradeByBox(final Integer boxTotal, List gradeList, BdGrade memberGrade, boolean checkUpgrade); + BdGrade getGradeByBox(final BigDecimal boxTotal, List gradeList, BdGrade memberGrade, boolean checkUpgrade); /** * 处理升级盒数基数 @@ -615,7 +615,7 @@ public interface ISaOrderService extends IService { * @param systemType 所属系统 * @return */ - int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxProductList, Integer systemType); + BigDecimal handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxProductList, Integer systemType); /** * 查询省、市、区绑定次数 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java index 15d6fe6e..39601676 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java @@ -2286,7 +2286,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { // 调换货物选择不同产品,没有商品信息,此处先全部按默认值来处理 // 2025.02.11 如果盒数商品,历史商品ID不变,非盒数商品进行处理 - if (saOrder.getBoxNum() == 0) { + if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) == 0) { saOrderItems.setPkWares(0); } saOrderItems.setPkWaresDetail(0); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java index b4649ded..9ec79b64 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java @@ -20,6 +20,7 @@ import com.hzs.sale.order.vo.WaresOrderVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; /** @@ -191,7 +192,7 @@ public class SaOrderItemsServiceImpl extends ServiceImpl waresCodeList, Date payTime, List orderTypeList, Integer systemType) { + public BigDecimal getRetailWaresQuantityNew(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType) { return baseMapper.getRetailWaresQuantityNew(pkMember, waresCodeList, payTime, orderTypeList, systemType); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 0b35b5e2..09930e71 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -2132,18 +2132,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl gradeList = iGradeServiceApi.getRetailGradeList().getData(); } - // 盒数产品 + // 盒数商品 List boxWaresList = BoxProductUtil.getBoxProductListBySystemType(systemType); // 当前产品盒数 - int boxNum = 0; + BigDecimal boxNum = BigDecimal.ZERO; // 处理商品盒数 this.handleWaresBoxNum(specialArea, orderItemsParams); // 判断订单明细中指定产品数量,校验等级 for (OrderItemsParam orderItemsParam : orderItemsParams) { if (boxWaresList.contains(orderItemsParam.getWaresCode())) { // 存在指定商品,需要累计盒数 - boxNum += orderItemsParam.getBoxNum() * orderItemsParam.getQuantity(); + boxNum = boxNum.add(orderItemsParam.getBoxNum().multiply(new BigDecimal(orderItemsParam.getQuantity()))); } } @@ -2154,7 +2154,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl bdGrade = this.getGradeByBox(boxNum, gradeList, null, true); } else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) { // 升级专区,一次性补差升级 - if (boxNum == 0) { + // 2025.08.20 升级方式改为累计升级制 + if (boxNum.compareTo(BigDecimal.ZERO) == 0) { // 不满足升级条件 throw new ServiceException("不满足升级条件"); } @@ -2167,9 +2168,14 @@ public class SaOrderServiceImpl extends ServiceImpl impl } // 获取升级盒数基数 - int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxWaresList, systemType); + BigDecimal baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxWaresList, systemType); // 计算等级 - bdGrade = this.getGradeByBox(boxNum + baseBoxNum, gradeList, memberGrade, true); + bdGrade = this.getGradeByBox(boxNum.add(baseBoxNum), gradeList, memberGrade, true); + + // 2025.08.20 升级方式改为累计升级制 + if (memberGrade.getGradeValue().equals(bdGrade.getGradeValue())) { + return bdGrade; + } // 会员等级 大于等于 购买盒数等级,则不充足升级条件 if (memberGrade.getGradeValue().compareTo(bdGrade.getGradeValue()) >= 0) { @@ -2180,18 +2186,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl } @Override - public BdGrade getGradeByBox(final Integer boxTotal, List gradeList, BdGrade memberGrade, boolean checkUpgrade) { + public BdGrade getGradeByBox(final BigDecimal boxTotal, List gradeList, BdGrade memberGrade, boolean checkUpgrade) { if (CollectionUtil.isEmpty(gradeList)) { gradeList = iGradeServiceApi.getRetailGradeList().getData(); } if (null == memberGrade) { // 注册处理 - // 小于总公司等级 并且 排除高级店主 并且 升级盒数小于购买盒数的最大一个等级为注册等级 + // 小于总公司等级 并且 排除高级店主、董事代理 并且 升级盒数小于购买盒数的最大一个等级为注册等级 return gradeList.stream() - .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() + .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() != EGrade.DIRECTOR.getValue() && tmpGrade.getGradeValue() < EGrade.COMPANY.getValue() - && tmpGrade.getBoxNumber() <= boxTotal) + && tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0) .max(Comparator.comparingInt(BdGrade::getGradeValue)).get(); } else { // 非注册处理 @@ -2213,8 +2219,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl Optional gradeOptional = gradeList.stream() .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() > memberGrade.getGradeValue()) .sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()) - .filter(tmpGrade -> tmpGrade.getBoxNumber() != 0) - .filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst(); + .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(BigDecimal.ZERO) > 0) + .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0).findFirst(); return gradeOptional.orElse(memberGrade); } } @@ -2231,11 +2237,10 @@ public class SaOrderServiceImpl extends ServiceImpl impl * @return */ @Override - public int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, - List gradeList, List boxWaresList, + public BigDecimal handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxWaresList, Integer systemType) { // 升级盒数基数 - int baseBoxNum = 0; + BigDecimal baseBoxNum = BigDecimal.ZERO; // 会员所有升级记录 List memberLevelList = iCuMemberDetailServiceApi.getUpgradeList(cuMember.getPkId()).getData(); if (CollectionUtil.isNotEmpty(memberLevelList)) { @@ -2245,11 +2250,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl CuMemberLevel lastMemberLevel = lastManualOptional.get(); BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); // 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数 - baseBoxNum = lastUpdateGrade.getBoxNumber() - + iSaOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); + BigDecimal oldBoxNum = iSaOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); + if (null != oldBoxNum) { + baseBoxNum = lastUpdateGrade.getBoxNumber().add(oldBoxNum); + } else { + baseBoxNum = lastUpdateGrade.getBoxNumber(); + } } else { // 没有手动升级记录 - baseBoxNum = iSaOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); + BigDecimal oldBoxNum = iSaOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); + if (null != oldBoxNum) { + baseBoxNum = oldBoxNum; + } } } return baseBoxNum; diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java index 8bc64370..135e3351 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java @@ -517,8 +517,7 @@ public class BdWaresController extends BaseController { waresParams.setPkSpecialCurrency(waresExtend.getPkSpecialCurrency()); waresParams.setSortStatus(wares.getSortStatus()); waresParams.setSystemType(waresExtend.getSystemType()); - waresParams. - setAreaIncome(wares.getAreaIncome()); + waresParams.setAreaIncome(wares.getAreaIncome()); waresParams.setBoxNum(wares.getBoxNum()); BdAreaClassify parentAreaClassify = areaClassifyService.getAreaClassify(wares.getPkAreaClassify()); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java index 2c6cb000..64b4e14a 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java @@ -412,6 +412,6 @@ public class WaresParams implements Serializable { /** * 商品上传盒数 */ - private Integer boxNum; + private BigDecimal boxNum; } diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml index bae2e4cb..f87658da 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml @@ -1160,15 +1160,9 @@ - + select sum(so.box_num) wares_quantity from sa_order so - left join sa_order_items soi - on soi.pk_order = so.pk_id - and soi.del_flag = 0 - and soi.is_gift = 1 - left join bd_wares bw - on bw.pk_id = soi.pk_wares where so.del_flag = 0 and so.order_status = 1 and so.pk_member = #{pkMember} @@ -1179,10 +1173,6 @@ #{item} - and bw.wares_code in - - #{items} - and so.pay_time > #{payTime} diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java index 6183a357..db1549e8 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java @@ -117,17 +117,17 @@ public class CuMemberRetailRange extends BaseEntity { * 本人当天新消费盒数 */ @TableField("NEW_BOX_NUM") - private Integer newBoxNum; + private BigDecimal newBoxNum; /** * 本人累计消费盒数 */ @TableField("CONSUME_BOX_NUM") - private Integer consumeBoxNum; + private BigDecimal consumeBoxNum; /** * 本人月累计盒数 */ @TableField("MONTH_BOX_NUM") - private Integer monthBoxNum; + private BigDecimal monthBoxNum; /** * 本人当天新消费pv @@ -159,17 +159,17 @@ public class CuMemberRetailRange extends BaseEntity { * 团队当天新增盒数 */ @TableField("TEAM_NEW_BOX_NUM") - private Integer teamNewBoxNum; + private BigDecimal teamNewBoxNum; /** * 团队累计盒数 */ @TableField("TEAM_BOX_NUM") - private Integer teamBoxNum; + private BigDecimal teamBoxNum; /** * 团队月累计盒数 */ @TableField("TEAM_MONTH_BOX_NUM") - private Integer teamMonthBoxNum; + private BigDecimal teamMonthBoxNum; /** * 团队当天新增消费pv @@ -238,13 +238,13 @@ public class CuMemberRetailRange extends BaseEntity { * 大区注水盒数 */ @TableField("big_box_num") - private Integer bigBoxNum; + private BigDecimal bigBoxNum; /** * 小区注水盒数 */ @TableField("small_box_num") - private Integer smallBoxNum; + private BigDecimal smallBoxNum; @TableField("big_team_pv") private BigDecimal bigTeamPv; diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresDetailExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresDetailExt.java index 71971975..2c20b8e0 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresDetailExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresDetailExt.java @@ -141,6 +141,6 @@ public class BdWaresDetailExt extends BdWaresDetail { /** * 商品上传盒数 */ - private Integer boxNum; + private BigDecimal boxNum; } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrder.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrder.java index 45cc2441..91101ae7 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrder.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrder.java @@ -224,6 +224,6 @@ public class SaOrder extends BaseEntity { * 指定商品盒数 */ @TableField("BOX_NUM") - private Integer boxNum; + private BigDecimal boxNum; } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWares.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWares.java index 3c58acc1..92a0521f 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWares.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWares.java @@ -226,6 +226,6 @@ public class BdWares extends BaseEntity { * 商品上传盒数 */ @TableField("BOX_NUM") - private Integer boxNum; + private BigDecimal boxNum; } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java index bb00bcc1..1904ed87 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdGrade.java @@ -161,19 +161,19 @@ public class BdGrade extends BaseEntity { * 购买盒数 */ @TableField("BOX_NUMBER") - private Integer boxNumber; + private BigDecimal boxNumber; /** * 累计盒数 */ @TableField("BOX_TOTAL") - private Integer boxTotal; + private BigDecimal boxTotal; /** * 小市场盒数 */ @TableField("BOX_SMALL_TOTAL") - private Integer boxSmallTotal; + private BigDecimal boxSmallTotal; /** * 购买价格 From bc16275050fccd04b5464aed6552120e9d7a8818 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 20 Aug 2025 18:39:51 +0800 Subject: [PATCH 83/89] =?UTF-8?q?##=20=E5=95=86=E5=93=81=E3=80=81=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E3=80=81=E7=BB=93=E7=AE=97=E6=94=AF=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=9B=92=E6=95=B0=E4=B8=BA=E5=B0=8F=E6=95=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hzs/system/config/dto/GradeDTO.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java index 6a6ed575..200e7803 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java @@ -11,11 +11,7 @@ import java.math.BigDecimal; import java.util.List; /** - * @Description: 等级的dto - * @Author: sui q - * @Time: 2022/9/24 15:06 - * @Classname: GradeDTO - * @PackageName: com.hzs.system.config.dto + * 等级的dto */ @Data @Builder @@ -113,16 +109,16 @@ public class GradeDTO implements Serializable { /** * 购买盒数 */ - private Integer boxNumber; + private BigDecimal boxNumber; /** * 累计盒数 */ - private Integer boxTotal; + private BigDecimal boxTotal; /** * 小市场盒数 */ - private Integer boxSmallTotal; + private BigDecimal boxSmallTotal; } From 2d917202e499f3e79adee5d7020d26dc94373472 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 21 Aug 2025 09:23:19 +0800 Subject: [PATCH 84/89] =?UTF-8?q?##=20Opt=20-=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=9B=B4=E6=8E=A8=20=E7=AD=89=E7=BA=A7=E8=B0=83=E6=95=B4(?= =?UTF-8?q?=E6=9C=AA=E4=B8=8A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/base/mapper/CuMemberMapper.java | 5 + .../service/impl/CuMemberServiceImpl.java | 106 ++++++++++++++++++ .../mapper/member/base/CuMemberMapper.xml | 9 ++ 3 files changed, 120 insertions(+) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index ec54c64e..450f7035 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -623,4 +623,9 @@ public interface CuMemberMapper extends BaseMapper { */ SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode); + + /** + * + */ + int getMemberCountWithGradeAndParent(@Param("parentId") Long parentId, @Param("gradeValue") Integer gradeValue); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index afe065a4..2ca06ece 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -23,12 +23,14 @@ import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt; import com.hzs.common.domain.member.base.*; import com.hzs.common.domain.member.detail.CuMemberGrade; +import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.member.empty.CuMemberEmptyCode; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.wares.BdWaresAuthority; import com.hzs.common.domain.system.config.BdAwards; +import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.domain.system.config.BdTradeWhiteConfig; import com.hzs.common.security.service.UserTokenService; import com.hzs.common.security.utils.SecurityUtils; @@ -37,6 +39,7 @@ import com.hzs.member.account.dto.BusinessCommissionDTO; import com.hzs.member.account.dto.MemberAmountDTO; import com.hzs.member.account.service.ICuMemberAccountService; import com.hzs.member.account.service.ICuMemberTradeService; +import com.hzs.member.base.IMemberServiceApi; import com.hzs.member.base.param.UpdatePlaceParentPetitionParam; import com.hzs.member.base.dto.*; import com.hzs.member.base.mapper.CuMemberMapper; @@ -44,6 +47,7 @@ import com.hzs.member.base.param.*; import com.hzs.member.base.service.*; import com.hzs.member.base.vo.*; import com.hzs.member.detail.service.ICuMemberServiceLogService; +import com.hzs.member.detail.service.impl.CuMemberLevelServiceImpl; import com.hzs.member.empty.service.ICuMemberEmptyCodeService; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; import com.hzs.member.handlebusiness.vo.BusinessMemberVO; @@ -71,6 +75,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -120,6 +125,14 @@ public class CuMemberServiceImpl extends ServiceImpl i @Autowired private RabbitTemplate rabbitTemplate; + @Qualifier("memberServiceApi") + @Autowired + private IMemberServiceApi memberServiceApi; + @Qualifier("gradeService") + @Autowired + private IGradeServiceApi gradeService; + @Autowired + private CuMemberLevelServiceImpl cuMemberLevelServiceImpl; @Override public Boolean saveMember(CuMember cuMember) { @@ -1361,6 +1374,22 @@ public class CuMemberServiceImpl extends ServiceImpl i try { // 修改直推日志 sendUpdateParentLog(parentParam, EApprovalBusiness.CU_MEMBER_PARENT.getValue(), code, loginUser); + + + /** + * 如果当前用户为区域代理 原上级为董事 验证是否掉等级 , 新上级如果为区域代理 升等级(董事) + * 如果当前用户为博羚店主 原上级为高级店主 验证是否掉等级 , 新上级如果为博羚店主 升等级(高级店主) + */ + // 新上级 uc.getEditNewPlaceMemberCode() + // 旧上级 getMemberById(uc.getPkParent()).getMemberCode() + // 关闭直推修改等级逻辑 + if(1 == 2){ + CuMember newMember = memberServiceApi.getMember(uc.getEditNewPlaceMemberCode()).getData(); + CuMember oldMember = getMemberById(uc.getPkParent()); + CuMember mainMember = getMember(uc.getPkMember()); + validateGrade(mainMember, oldMember, newMember); + } + } catch (Exception e) { e.printStackTrace(); } @@ -1368,6 +1397,83 @@ public class CuMemberServiceImpl extends ServiceImpl i return code; } + public void validateGrade(CuMember mainMember, CuMember oldMember, CuMember newMember){ + Integer mainGradeValue = gradeService.getGrade(mainMember.getPkSettleGrade()).getData().getGradeValue(); + Integer oldGradeValue = gradeService.getGrade(oldMember.getPkSettleGrade()).getData().getGradeValue(); + Integer newGradeValue = gradeService.getGrade(newMember.getPkSettleGrade()).getData().getGradeValue(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CuMemberLevel::getPkMember, mainMember.getPkId()); + queryWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.BUY_UPGRADE.getValue()); + queryWrapper.isNotNull(CuMemberLevel::getPkOrder); + queryWrapper.orderByDesc(CuMemberLevel::getUpgradeTime); + CuMemberLevel lastUpgrade = cuMemberLevelServiceImpl.getOne(queryWrapper, false); + if(mainGradeValue.equals(EGrade.VIP.getValue())){ + // old 直推是否还有EGrade.VIP 没有则掉等级 + int subUserCount = baseMapper.getMemberCountWithGradeAndParent(oldMember.getPkId(), EGrade.VIP.getValue()); + if(subUserCount < 1){ + // 掉等级 + GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.VIP.getValue(), SecurityUtils.getPkCountry()).getData(); + oldMember.setPkSettleGradeValue(targetGrade.getPkId()); + LambdaQueryWrapper removeWrapper = new LambdaQueryWrapper<>(); + removeWrapper.eq(CuMemberLevel::getPkMember, oldMember.getPkId()); + removeWrapper.eq(CuMemberLevel::getPkOrder, lastUpgrade.getPkOrder()); + removeWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue()); + baseMapper.updateById(oldMember); + cuMemberLevelServiceImpl.remove(removeWrapper); + } + if(newGradeValue.equals(EGrade.VIP.getValue())){ + // 升等级 + GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.S_VIP.getValue(), SecurityUtils.getPkCountry()).getData(); + newMember.setPkSettleGradeValue(targetGrade.getPkId()); + CuMemberLevel cuMemberLevel = CuMemberLevel.builder() + .pkMember(newMember.getPkId()) + .upType(EUpgradeType.AUTO_UPGRADE.getValue()) + .oldLevel(newMember.getPkSettleGrade()) + .newLevel(targetGrade.getPkId()) + .upgradeTime(new Date()) + .pkOrder(lastUpgrade.getPkOrder()) + .build(); + cuMemberLevel.setPkCountry(SecurityUtils.getPkCountry()); + cuMemberLevel.setPkCreator(SecurityUtils.getUserId()); + cuMemberLevelServiceImpl.save(cuMemberLevel); + baseMapper.updateById(newMember); + } + // new 是否为EGrade.VIP 如果是则升等级 + }else if(mainGradeValue.equals(EGrade.REGION.getValue())){ + // old 直推是否还有EGrade.REGION 没有则掉等级 + int subUserCount = baseMapper.getMemberCountWithGradeAndParent(oldMember.getPkId(), EGrade.REGION.getValue()); + if(subUserCount < 1){ + // 掉等级 + GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.REGION.getValue(), SecurityUtils.getPkCountry()).getData(); + oldMember.setPkSettleGradeValue(targetGrade.getPkId()); + LambdaQueryWrapper removeWrapper = new LambdaQueryWrapper<>(); + removeWrapper.eq(CuMemberLevel::getPkMember, oldMember.getPkId()); + removeWrapper.eq(CuMemberLevel::getPkOrder, lastUpgrade.getPkOrder()); + removeWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue()); + baseMapper.updateById(oldMember); + cuMemberLevelServiceImpl.remove(removeWrapper); + } + if(newGradeValue.equals(EGrade.REGION.getValue())){ + // 升等级 + GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), SecurityUtils.getPkCountry()).getData(); + newMember.setPkSettleGradeValue(targetGrade.getPkId()); + CuMemberLevel cuMemberLevel = CuMemberLevel.builder() + .pkMember(newMember.getPkId()) + .upType(EUpgradeType.AUTO_UPGRADE.getValue()) + .oldLevel(newMember.getPkSettleGrade()) + .newLevel(targetGrade.getPkId()) + .upgradeTime(new Date()) + .pkOrder(lastUpgrade.getPkOrder()) + .build(); + cuMemberLevel.setPkCountry(SecurityUtils.getPkCountry()); + cuMemberLevel.setPkCreator(SecurityUtils.getUserId()); + cuMemberLevelServiceImpl.save(cuMemberLevel); + baseMapper.updateById(newMember); + } + // new 是否为EGrade.REGION 如果是则升等级 + } + } + /** * 推送修改直推日志 */ diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index 6f5697ce..1357c44a 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -2419,5 +2419,14 @@ and bg.grade_value >= 60) so where rownum = 1 + From da7275434699fff19618c6a0d96aa76b28578401 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 21 Aug 2025 10:05:14 +0800 Subject: [PATCH 85/89] =?UTF-8?q?##=20Opt=20-=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=9B=B4=E6=8E=A8=20=E7=AD=89=E7=BA=A7=E8=B0=83=E6=95=B4(?= =?UTF-8?q?=E6=9C=AA=E4=B8=8A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/base/service/impl/CuMemberServiceImpl.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index ecfa05dc..06fd85b6 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -125,15 +125,13 @@ public class CuMemberServiceImpl extends ServiceImpl i @Autowired private RabbitTemplate rabbitTemplate; - @Qualifier("memberServiceApi") - @Autowired - private IMemberServiceApi memberServiceApi; - @Qualifier("gradeService") - @Autowired - private IGradeServiceApi gradeService; @Autowired private CuMemberLevelServiceImpl cuMemberLevelServiceImpl; + @DubboReference + private IMemberServiceApi memberServiceApi; + @DubboReference + private IGradeServiceApi gradeService; @Override public Boolean saveMember(CuMember cuMember) { boolean save = false; From 9ed8555c1058c6df255676b726f83a0ba7a87832 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 21 Aug 2025 10:15:11 +0800 Subject: [PATCH 86/89] =?UTF-8?q?##=20=E5=8D=87=E7=BA=A7=E4=B8=93=E5=8C=BA?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E7=9B=B4=E6=8E=A5=E5=8D=87=E7=BA=A7=E5=88=B0?= =?UTF-8?q?=E8=91=A3=E4=BA=8B=E4=BB=A3=E7=90=86=EF=BC=8C=E5=8F=AA=E8=83=BD?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B0=E5=8C=BA=E5=9F=9F=E4=BB=A3=E7=90=86?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SaOrderServiceImpl.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 09930e71..25a3aee0 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -2201,23 +2201,10 @@ public class SaOrderServiceImpl extends ServiceImpl impl .max(Comparator.comparingInt(BdGrade::getGradeValue)).get(); } else { // 非注册处理 -// if (checkUpgrade) { -// // 当前等级大于等于V3 或 盒数商品为0,则直接返回当前等级 -// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0 -// || boxTotal == 0) { -// return memberGrade; -// } -// } else { -// // 当前等级大于V3 或 盒数商品为0,则直接返回当前等级 -// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) > 0 -// || boxTotal == 0) { -// return memberGrade; -// } -// } - // 查询等级比现在当前等级大的 并且 排除高级店主,然后倒序排序,再查询 购买盒数 <= 等级盒数 的第一个等级,就是当前升级的等级 Optional gradeOptional = gradeList.stream() - .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() > memberGrade.getGradeValue()) + .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() != EGrade.DIRECTOR.getValue() + && tmpGrade.getGradeValue() > memberGrade.getGradeValue()) .sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()) .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(BigDecimal.ZERO) > 0) .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0).findFirst(); @@ -2238,7 +2225,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl */ @Override public BigDecimal handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxWaresList, - Integer systemType) { + Integer systemType) { // 升级盒数基数 BigDecimal baseBoxNum = BigDecimal.ZERO; // 会员所有升级记录 From b376571da25de842aa32fc044097c27ec947aecd Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 21 Aug 2025 10:18:20 +0800 Subject: [PATCH 87/89] =?UTF-8?q?##=20=E5=8C=BA=E5=9F=9F=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=8C=BA=E5=9F=9F=E4=BB=A3=E7=90=86=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=8D=87=E7=BA=A7=E8=91=A3=E4=BA=8B=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CuMemberBusinessServiceImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 774276d1..27edfd3a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -1605,12 +1605,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { if (null == gradeDTO) { gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); } - if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) { - // 会员等级大于等于 博羚店主,推荐人如果也是博羚店主,需要升级为高级店主 - CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue()); + if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) { + // 会员等级大于等于 区域代理,推荐人如果也是区域代理,需要升级为董事代理 + CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue()); if (null != parentMember) { // 记录升级历史 - GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData(); + GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData(); CuMemberLevel cuMemberLevel = CuMemberLevel.builder() .pkMember(parentMember.getPkId()) .upType(EUpgradeType.AUTO_UPGRADE.getValue()) @@ -1630,12 +1630,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { updateWrapper.set(CuMember::getModifiedTime, new Date()); iCuMemberService.update(updateWrapper); } - } else if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) { - // 会员等级大于等于 区域代理,推荐人如果也是区域代理,需要升级为董事代理 - CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue()); + } else if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) { + // 会员等级大于等于 博羚店主,推荐人如果也是博羚店主,需要升级为高级店主 + CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue()); if (null != parentMember) { // 记录升级历史 - GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData(); + GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData(); CuMemberLevel cuMemberLevel = CuMemberLevel.builder() .pkMember(parentMember.getPkId()) .upType(EUpgradeType.AUTO_UPGRADE.getValue()) From 392f89bb950a1914188f7e5c80a295ce44ed0eec Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 21 Aug 2025 10:23:07 +0800 Subject: [PATCH 88/89] =?UTF-8?q?##=20Opt=20-=20=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E6=80=BB=E8=A3=81=E9=9D=A2=E6=9D=BF=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3&=E8=BF=81=E7=A7=BB=E4=B8=9A=E7=BB=A9=E6=B1=87?= =?UTF-8?q?=E6=80=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/base/mapper/CuMemberMapper.java | 10 + .../member/base/service/ICuMemberService.java | 10 + .../service/impl/CuMemberServiceImpl.java | 64 +++++ .../manage/CensusSummaryController.java | 119 +++++++++ .../census/param/CensusSummaryParam.java | 55 ++++ .../hzs/member/census/vo/CensusSummaryVo.java | 82 ++++++ .../mapper/member/base/CuMemberMapper.xml | 23 ++ .../board/controller/BoardController.java | 139 ++++++++++ .../hzs/system/board/mapper/BoardMapper.java | 50 ++++ .../system/board/service/IBoardService.java | 50 ++++ .../board/service/impl/BoardServiceImpl.java | 48 ++++ .../hzs/system/board/vo/BoardAchieveVO.java | 50 ++++ .../system/board/vo/BoardDayAchieveVO.java | 23 ++ .../system/board/vo/BoardMemberLevelVO.java | 28 ++ .../hzs/system/board/vo/BoardMemberVO.java | 46 ++++ .../board/vo/BoardRechargeAccountVO.java | 31 +++ .../hzs/system/board/vo/BoardRechargeVO.java | 30 +++ .../mapper/system/board/BoardMapper.xml | 244 ++++++++++++++++++ .../core/constant/MagicNumberConstants.java | 6 + .../hzs/common/core/utils/BarCodeUtils.java | 6 +- .../hzs/common/core/utils/BigDecimalUtil.java | 20 ++ .../hzs/common/core/utils/CreatePassword.java | 59 ----- .../com/hzs/common/core/utils/DateUtils.java | 35 +++ .../common/core/utils/DeduplicationUtil.java | 21 +- .../common/core/utils/DistinctByKeyUtil.java | 17 +- .../common/core/utils/NacosSecretUtil.java | 29 --- .../com/hzs/common/core/utils/NumberUtil.java | 8 +- .../com/hzs/common/core/utils/OssUtil.java | 2 - .../com/hzs/common/core/utils/PageUtils.java | 2 - .../hzs/common/core/utils/ServletUtils.java | 2 - .../hzs/common/core/utils/SpringUtils.java | 2 - .../common/core/utils/StringJsonUtils.java | 14 +- .../hzs/common/core/utils/ThreadUtils.java | 6 +- .../hzs/common/core/utils/UploadFileUtil.java | 6 +- .../core/utils/poi/ExcelHandlerAdapter.java | 2 - .../hzs/common/core/utils/poi/ExcelUtil.java | 2 - .../core/utils/reflect/ReflectUtils.java | 2 - .../common/core/utils/sign/Base64Util.java | 2 - .../hzs/common/core/utils/sql/SqlUtil.java | 2 - .../hzs/common/core/utils/uuid/IdUtils.java | 2 - .../com/hzs/common/core/utils/uuid/Seq.java | 2 +- .../com/hzs/common/core/utils/uuid/UUID.java | 2 - 42 files changed, 1178 insertions(+), 175 deletions(-) create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/census/controller/manage/CensusSummaryController.java create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/census/param/CensusSummaryParam.java create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/controller/BoardController.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/mapper/BoardMapper.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/IBoardService.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/impl/BoardServiceImpl.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardAchieveVO.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardDayAchieveVO.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberLevelVO.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberVO.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeAccountVO.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeVO.java create mode 100644 bd-business/bd-business-system/src/main/resources/mapper/system/board/BoardMapper.xml create mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BigDecimalUtil.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/CreatePassword.java delete mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NacosSecretUtil.java diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index 15e8b7cd..b707c32d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -9,6 +9,7 @@ import com.hzs.common.domain.system.config.BdTradeWhiteConfig; import com.hzs.member.base.dto.MemberCountDTO; import com.hzs.member.base.param.*; import com.hzs.member.base.vo.*; +import com.hzs.member.census.param.CensusSummaryParam; import com.hzs.member.handlebusiness.vo.BusinessMemberVO; import com.hzs.member.handlebusiness.vo.HandleBusinessVO; import com.hzs.member.marketnews.param.MarketNewsParam; @@ -628,4 +629,13 @@ public interface CuMemberMapper extends BaseMapper { * */ int getMemberCountWithGradeAndParent(@Param("parentId") Long parentId, @Param("gradeValue") Integer gradeValue); + + /** + * 查询业绩汇总 + * + * @param censusSummaryParam + * @return + */ + List queryDateBySummary(CensusSummaryParam censusSummaryParam); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index 7c3313b9..a35abb6a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -13,6 +13,8 @@ import com.hzs.member.base.dto.ShowWaresDTO; import com.hzs.member.base.dto.ZeroElementRevokeDTO; import com.hzs.member.base.param.*; import com.hzs.member.base.vo.*; +import com.hzs.member.census.param.CensusSummaryParam; +import com.hzs.member.census.vo.CensusSummaryVo; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; import com.hzs.member.handlebusiness.vo.BusinessMemberVO; import com.hzs.member.handlebusiness.vo.HandleBusinessVO; @@ -892,4 +894,12 @@ public interface ICuMemberService extends IService { */ SaOrder listRecommendVipOrder(Long pkMember, String orderCode); + /** + * 查询汇总 + * + * @param censusSummaryParam 表格名称 + * @return + */ + List selectCensusSummary(CensusSummaryParam censusSummaryParam, List days); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index 06fd85b6..864319b3 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -46,6 +46,8 @@ import com.hzs.member.base.mapper.CuMemberMapper; import com.hzs.member.base.param.*; import com.hzs.member.base.service.*; import com.hzs.member.base.vo.*; +import com.hzs.member.census.param.CensusSummaryParam; +import com.hzs.member.census.vo.CensusSummaryVo; import com.hzs.member.detail.service.ICuMemberServiceLogService; import com.hzs.member.detail.service.impl.CuMemberLevelServiceImpl; import com.hzs.member.empty.service.ICuMemberEmptyCodeService; @@ -3257,4 +3259,66 @@ public class CuMemberServiceImpl extends ServiceImpl i return baseMapper.listRecommendVipOrder(pkMember, orderCode); } + + @Override + public List selectCensusSummary(CensusSummaryParam censusSummaryParam, List days) { + // 根据类型查询所有人各类型的订单业绩汇总 + List censusSummaryList = new ArrayList<>(); + for (String day : days) { + censusSummaryParam.setTime(day); + List memberMeritsSummaryVoList = baseMapper.queryDateBySummary(censusSummaryParam); + Map memberMeritsSummaryMap = memberMeritsSummaryVoList.stream().collect(Collectors.toMap(MemberMeritsSummaryVo::getOrderType, Function.identity())); + + CensusSummaryVo censusSummaryVo = new CensusSummaryVo(); + censusSummaryVo.setSettleDate(day); + + // 注册 + BigDecimal reAmount = BigDecimal.ZERO; + BigDecimal reAchieve = BigDecimal.ZERO; + if (memberMeritsSummaryMap.get(EOrderType.RETAIL_REGISTER.getValue()) != null) { + reAmount = memberMeritsSummaryMap.get(EOrderType.RETAIL_REGISTER.getValue()).getAmount(); + reAchieve = memberMeritsSummaryMap.get(EOrderType.RETAIL_REGISTER.getValue()).getAchieve(); + } + censusSummaryVo.setRegisterAmount(reAmount); + censusSummaryVo.setRegisterPv(reAchieve); + + // 升级 + BigDecimal upAmount = BigDecimal.ZERO; + BigDecimal upAchieve = BigDecimal.ZERO; + if (memberMeritsSummaryMap.get(EOrderType.RETAIL_UPGRADE.getValue()) != null) { + upAmount = memberMeritsSummaryMap.get(EOrderType.RETAIL_UPGRADE.getValue()).getAmount(); + upAchieve = memberMeritsSummaryMap.get(EOrderType.RETAIL_UPGRADE.getValue()).getAchieve(); + } + censusSummaryVo.setUpgradeAmount(upAmount); + censusSummaryVo.setUpgradePv(upAchieve); + + // 首购 + censusSummaryVo.setFirstPurchaseAmount(censusSummaryVo.getRegisterAmount().add(censusSummaryVo.getUpgradeAmount())); + censusSummaryVo.setFirstPurchasePv(censusSummaryVo.getRegisterPv().add(censusSummaryVo.getUpgradePv())); + + // 复购订单 + BigDecimal repurchaseAmount = BigDecimal.ZERO; + BigDecimal repurchaseAchieve = BigDecimal.ZERO; + if (memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()) != null) { + repurchaseAmount = memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()).getAmount(); + repurchaseAchieve = memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()).getAchieve(); + } + // 复消 + if (memberMeritsSummaryMap.get(EOrderType.CONSUME_ORDER.getValue()) != null) { + repurchaseAmount = repurchaseAmount.add(memberMeritsSummaryMap.get(EOrderType.RETAIL_CONSUME.getValue()).getAmount()); + } + + // 复购 + censusSummaryVo.setRepurchaseAmount(repurchaseAmount); + censusSummaryVo.setRepurchasePv(repurchaseAchieve); + + // 金额总计 + censusSummaryVo.setAmountTotal(censusSummaryVo.getFirstPurchaseAmount().add(censusSummaryVo.getRepurchaseAmount())); + // 业绩汇总 + censusSummaryVo.setPvTotal(censusSummaryVo.getFirstPurchasePv().add(censusSummaryVo.getRepurchasePv())); + censusSummaryList.add(censusSummaryVo); + } + return censusSummaryList; + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/census/controller/manage/CensusSummaryController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/controller/manage/CensusSummaryController.java new file mode 100644 index 00000000..a1ebe323 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/controller/manage/CensusSummaryController.java @@ -0,0 +1,119 @@ +package com.hzs.member.census.controller.manage; + +import com.hzs.common.core.annotation.AccessPermissions; +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.security.utils.SecurityUtils; +import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; +import com.hzs.member.base.service.ICuMemberService; +import com.hzs.member.census.param.CensusSummaryParam; +import com.hzs.member.census.vo.CensusSummaryVo; +import com.hzs.system.sys.IMenuColumnServiceApi; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/manage/member-structure") +public class CensusSummaryController extends BaseController { + + @Autowired + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; + @Autowired + private ICuMemberService iCuMemberService; + + @DubboReference + IMenuColumnServiceApi iMenuColumnServiceApi; + + /** + * 业绩汇总 + * + * @param censusSummaryParam + * @return + */ + @AccessPermissions("performanceTotal") + @GetMapping("/list") + public AjaxResult list(CensusSummaryParam censusSummaryParam) { + if (null == censusSummaryParam.getStartDate() + || null == censusSummaryParam.getEndDate()) { + return AjaxResult.success(new ArrayList<>()); + } + + List pkVertex = new ArrayList<>(); + if (StringUtils.isNotEmpty(censusSummaryParam.getPkBdVertexStr())) { + pkVertex = Arrays.stream(censusSummaryParam.getPkBdVertexStr().split(",")) + .map(Long::parseLong) + .collect(Collectors.toList()); + } + censusSummaryParam.setPkVertex(pkVertex); + + // 当天查询秒结 + Date date = new Date(); + // 查询当天 + String thisTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date); + // 查询当前时间范围 + List days = new ArrayList<>(); + if (censusSummaryParam.getStartDate() != null && censusSummaryParam.getEndDate() != null) { + days = DateUtils.findDaysStr(DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getStartDate()), DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getEndDate())); + } else { + // 默认查询当天 + days.add(thisTime); + } + + censusSummaryParam.setPkCountry(SecurityUtils.getPkCountry()); + List resultList = iCuMemberService.selectCensusSummary(censusSummaryParam, days); + + return AjaxResult.success(resultList); + } + + /** + * 导出(导出) + */ + @PostMapping("/export") + public void export(CensusSummaryParam censusSummaryParam, HttpServletResponse response) { + if (null == censusSummaryParam.getStartDate() + || null == censusSummaryParam.getEndDate()) { + ExcelUtil util = new ExcelUtil<>(CensusSummaryVo.class); + util.exportExcel(response, new ArrayList<>(), "业绩汇总信息"); + } + + // 当天查询秒结 + Date date = new Date(); + // 查询当天 + String thisTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date); + if (censusSummaryParam.getMemberSettlePeriodId() != null) { + iCuMemberSettlePeriodService.getById(censusSummaryParam.getMemberSettlePeriodId()); + } else { + iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(thisTime); + } + + // 查询当前时间范围 + List days = new ArrayList<>(); + if (censusSummaryParam.getStartDate() != null && censusSummaryParam.getEndDate() != null) { + days = DateUtils.findDaysStr(DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getStartDate()), DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getEndDate())); + } else { + // 默认查询当天 + days.add(thisTime); + } + + censusSummaryParam.setPkCountry(SecurityUtils.getPkCountry()); + List resultList = iCuMemberService.selectCensusSummary(censusSummaryParam, days); + + ExcelUtil util = new ExcelUtil<>(CensusSummaryVo.class, iMenuColumnServiceApi.queryMenuColumn("performanceTotal", SecurityUtils.getUserId()).getData()); + util.exportExcel(response, resultList, "业绩汇总信息"); + } + +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/census/param/CensusSummaryParam.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/param/CensusSummaryParam.java new file mode 100644 index 00000000..d5073e16 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/param/CensusSummaryParam.java @@ -0,0 +1,55 @@ +package com.hzs.member.census.param; + +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class CensusSummaryParam { + + /** + * 结算期数 + */ + private Long memberSettlePeriodId; + + /** + * 币种展示 + */ + private Long pkCurrency; + + /** + * 所属国家 + */ + private Integer pkCountry; + + /** + * 开始时间 + */ + private Date startDate; + + /** + * 结束时间 + */ + private Date endDate; + + /** + * 查询时间 + */ + private String time; + + /** + * 体系 + */ + private List pkVertex; + + /** + * 团队 + */ + private List pkMemberTeam; + /** + * 体系 + */ + private String pkBdVertexStr; + +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java new file mode 100644 index 00000000..91faac1a --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java @@ -0,0 +1,82 @@ +package com.hzs.member.census.vo; + +import com.hzs.common.core.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class CensusSummaryVo { + + /** + * 结算期数 + */ + private Integer numberPeriods; + + /** + * 结算时间 + */ + @Excel(name = "结算时间") + private String settleDate; + + /** + * 注册金额 + */ + @Excel(name = "注册金额") + private BigDecimal registerAmount; + + /** + * 注册业绩 + */ + @Excel(name = "注册业绩") + private BigDecimal registerPv; + + /** + * 升级金额 + */ + @Excel(name = "升级金额") + private BigDecimal upgradeAmount; + + /** + * 升级业绩 + */ + @Excel(name = "升级业绩") + private BigDecimal upgradePv; + + /** + * 首购金额 + */ + @Excel(name = "首购金额") + private BigDecimal firstPurchaseAmount; + + /** + * 首购业绩 + */ + @Excel(name = "首购业绩") + private BigDecimal firstPurchasePv; + + /** + * 复购金额 + */ + @Excel(name = "复购金额") + private BigDecimal repurchaseAmount; + + /** + * 复购pv + */ + @Excel(name = "复购业绩") + private BigDecimal repurchasePv; + + /** + * 金额总计 + */ + @Excel(name = "金额总计") + private BigDecimal amountTotal; + + /** + * 业绩汇总 + */ + @Excel(name = "业绩汇总") + private BigDecimal pvTotal; + +} diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index b0444400..fb54ee60 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -2429,4 +2429,27 @@ and bg.GRADE_VALUE = #{gradeValue} + + + diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/controller/BoardController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/controller/BoardController.java new file mode 100644 index 00000000..b12a6c25 --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/controller/BoardController.java @@ -0,0 +1,139 @@ +package com.hzs.system.board.controller; + +import cn.hutool.core.collection.CollectionUtil; +import com.hzs.common.core.utils.BigDecimalUtil; +import com.hzs.common.core.web.controller.BaseController; +import com.hzs.common.core.web.domain.AjaxResult; +import com.hzs.system.board.service.IBoardService; +import com.hzs.system.board.vo.*; +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.util.ArrayList; +import java.util.List; + +/** + * 首页看板 控制器 + */ +@RestController +@RequestMapping("/manage/board") +public class BoardController extends BaseController { + + @Autowired + private IBoardService iBoardService; + + /** + * 会员汇总数据 + * + * @return + */ + @GetMapping("/member-summary") + public AjaxResult memberSummary() { + // 会员汇总数据 + BoardMemberVO boardMemberVO = iBoardService.getMemberBoard(); + boardMemberVO.setMemberTodayLevelList(new ArrayList<>(6)); + boardMemberVO.setMemberYesterdayLevelList(new ArrayList<>(6)); + boardMemberVO.setMemberMonthLevelList(new ArrayList<>(6)); + + // 会员各等级数据 + List levelList = iBoardService.listMemberLevelBoard(); + + for (BoardMemberLevelVO boardMemberLevelVO : levelList) { + if (boardMemberLevelVO.getSort() == 0) { + // 今日 + boardMemberVO.getMemberTodayLevelList().add(boardMemberLevelVO); + } else if (boardMemberLevelVO.getSort() == 1) { + // 昨日 + boardMemberVO.getMemberYesterdayLevelList().add(boardMemberLevelVO); + } else { + // 本月 + boardMemberVO.getMemberMonthLevelList().add(boardMemberLevelVO); + } + } + return AjaxResult.success(boardMemberVO); + } + + /** + * 日业绩数据 + * + * @return + */ + @GetMapping("/day-achieve") + public AjaxResult dayAchieve() { + // 返回数据VO + BoardDayAchieveVO resultVO = new BoardDayAchieveVO(); + + List dayAchieveList = iBoardService.getDayAchieve(); + if (CollectionUtil.isNotEmpty(dayAchieveList)) { + for (BoardAchieveVO boardAchieveVO : dayAchieveList) { + if (boardAchieveVO.getSort() == 0) { + resultVO.setToday(BoardAchieveVO.builder() + .firstAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAchieve())) + .firstAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAmount())) + .repAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAchieve())) + .repAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAmount())) + .build()); + } else { + resultVO.setYesterday(BoardAchieveVO.builder() + .firstAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAchieve())) + .firstAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAmount())) + .repAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAchieve())) + .repAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAmount())) + .build()); + } + } + } + + return AjaxResult.success(resultVO); + } + + /** + * 月业绩数据 + * + * @return + */ + @GetMapping("/month-achieve") + public AjaxResult monthAchieve() { + BoardAchieveVO boardAchieveVO = iBoardService.getMonthAchieve(); + boardAchieveVO.setFirstAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAchieve())); + boardAchieveVO.setFirstAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAmount())); + boardAchieveVO.setRepAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAchieve())); + boardAchieveVO.setRepAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAmount())); + return AjaxResult.success(boardAchieveVO); + } + + /** + * 充值汇总数据 + * + * @return + */ + @GetMapping("/recharge-summary") + public AjaxResult rechargeSummary() { + BoardRechargeVO boardRechargeVO = new BoardRechargeVO(); + boardRechargeVO.setRechargeTodayList(new ArrayList<>(6)); + boardRechargeVO.setRechargeYesterdayLevelList(new ArrayList<>(6)); + boardRechargeVO.setRechargeMonthLevelList(new ArrayList<>(6)); + + // 会员汇总数据 + List rechargeList = iBoardService.listAccountRechargeBoard(); + + for (BoardRechargeAccountVO boardMemberVO : rechargeList) { + // 充值金额按万处理 + boardMemberVO.setRechargeAmount(BigDecimalUtil.handleBig10000Down(boardMemberVO.getRechargeAmount())); + if (boardMemberVO.getSort() == 0) { + // 今日 + boardRechargeVO.getRechargeTodayList().add(boardMemberVO); + } else if (boardMemberVO.getSort() == 1) { + // 昨日 + boardRechargeVO.getRechargeYesterdayLevelList().add(boardMemberVO); + } else { + // 本月 + boardRechargeVO.getRechargeMonthLevelList().add(boardMemberVO); + } + } + return AjaxResult.success(boardRechargeVO); + } + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/mapper/BoardMapper.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/mapper/BoardMapper.java new file mode 100644 index 00000000..752f2d4e --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/mapper/BoardMapper.java @@ -0,0 +1,50 @@ +package com.hzs.system.board.mapper; + +import com.hzs.system.board.vo.BoardAchieveVO; +import com.hzs.system.board.vo.BoardMemberLevelVO; +import com.hzs.system.board.vo.BoardMemberVO; +import com.hzs.system.board.vo.BoardRechargeAccountVO; + +import java.util.List; + +/** + * 首页看板 mapper + */ +public interface BoardMapper { + + /** + * 查询会员汇总数据 + * + * @return + */ + BoardMemberVO getMemberBoard(); + + /** + * 查询会员等级数据 + * + * @return + */ + List listMemberLevelBoard(); + + /** + * 查询日业绩汇总数据 + * + * @return + */ + List getDayAchieve(); + + /** + * 查询月业绩汇总数据 + * + * @return + */ + BoardAchieveVO getMonthAchieve(); + + /** + * 各币种充值数据 + * + * @return + */ + List listAccountRechargeBoard(); + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/IBoardService.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/IBoardService.java new file mode 100644 index 00000000..50b4808b --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/IBoardService.java @@ -0,0 +1,50 @@ +package com.hzs.system.board.service; + +import com.hzs.system.board.vo.BoardAchieveVO; +import com.hzs.system.board.vo.BoardMemberLevelVO; +import com.hzs.system.board.vo.BoardMemberVO; +import com.hzs.system.board.vo.BoardRechargeAccountVO; + +import java.util.List; + +/** + * 首页看板 service + */ +public interface IBoardService { + + /** + * 查询会员汇总数据 + * + * @return + */ + BoardMemberVO getMemberBoard(); + + /** + * 查询会员等级数据 + * + * @return + */ + List listMemberLevelBoard(); + + /** + * 查询日业绩汇总数据 + * + * @return + */ + List getDayAchieve(); + + /** + * 查询月业绩汇总数据 + * + * @return + */ + BoardAchieveVO getMonthAchieve(); + + /** + * 各币种充值数据 + * + * @return + */ + List listAccountRechargeBoard(); + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/impl/BoardServiceImpl.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/impl/BoardServiceImpl.java new file mode 100644 index 00000000..6794feb9 --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/service/impl/BoardServiceImpl.java @@ -0,0 +1,48 @@ +package com.hzs.system.board.service.impl; + +import com.hzs.system.board.mapper.BoardMapper; +import com.hzs.system.board.service.IBoardService; +import com.hzs.system.board.vo.BoardAchieveVO; +import com.hzs.system.board.vo.BoardMemberLevelVO; +import com.hzs.system.board.vo.BoardMemberVO; +import com.hzs.system.board.vo.BoardRechargeAccountVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 首页看板 service + */ +@Service +public class BoardServiceImpl implements IBoardService { + + @Resource + private BoardMapper boardMapper; + + @Override + public BoardMemberVO getMemberBoard() { + return boardMapper.getMemberBoard(); + } + + @Override + public List listMemberLevelBoard() { + return boardMapper.listMemberLevelBoard(); + } + + @Override + public List getDayAchieve() { + return boardMapper.getDayAchieve(); + } + + @Override + public BoardAchieveVO getMonthAchieve() { + return boardMapper.getMonthAchieve(); + } + + @Override + public List listAccountRechargeBoard() { + return boardMapper.listAccountRechargeBoard(); + } + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardAchieveVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardAchieveVO.java new file mode 100644 index 00000000..7e8d9e29 --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardAchieveVO.java @@ -0,0 +1,50 @@ +package com.hzs.system.board.vo; + +import com.hzs.common.core.annotation.BigDecimalFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 看板业绩汇总数据 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class BoardAchieveVO implements Serializable { + + /** + * 首购业绩 + */ + @BigDecimalFormat + private BigDecimal firstAchieve; + + /** + * 首购金额 + */ + @BigDecimalFormat + private BigDecimal firstAmount; + + /** + * 复购业绩 + */ + @BigDecimalFormat + private BigDecimal repAchieve; + + /** + * 复购金额 + */ + @BigDecimalFormat + private BigDecimal repAmount; + + /** + * 序号 + */ + private Integer sort; + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardDayAchieveVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardDayAchieveVO.java new file mode 100644 index 00000000..0f7ccaaf --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardDayAchieveVO.java @@ -0,0 +1,23 @@ +package com.hzs.system.board.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 看板业绩汇总数据返回 + */ +@Data +public class BoardDayAchieveVO implements Serializable { + + /** + * 今日 + */ + private BoardAchieveVO today; + + /** + * 昨日 + */ + private BoardAchieveVO yesterday; + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberLevelVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberLevelVO.java new file mode 100644 index 00000000..76cf0113 --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberLevelVO.java @@ -0,0 +1,28 @@ +package com.hzs.system.board.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 看板会员等级数据 + */ +@Data +public class BoardMemberLevelVO implements Serializable { + + /** + * 等级名称 + */ + private String gradeName; + + /** + * 会员数量 + */ + private Integer memberTotal; + + /** + * 0=今日,1=昨日,2=当月 + */ + private Integer sort; + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberVO.java new file mode 100644 index 00000000..f3525112 --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardMemberVO.java @@ -0,0 +1,46 @@ +package com.hzs.system.board.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 看板会员汇总数据 + */ +@Data +public class BoardMemberVO implements Serializable { + + /** + * 会员总数 + */ + private Integer memberTotal; + + /** + * 今日新増会员 + */ + private Integer memberToday; + /** + * 今日会员等级 + */ + private List memberTodayLevelList; + + /** + * 昨日新増会员 + */ + private Integer memberYesterday; + /** + * 昨日会员等级 + */ + private List memberYesterdayLevelList; + + /** + * 本月新増会员 + */ + private Integer memberMonth; + /** + * 本月会员等级 + */ + private List memberMonthLevelList; + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeAccountVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeAccountVO.java new file mode 100644 index 00000000..c91e61ea --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeAccountVO.java @@ -0,0 +1,31 @@ +package com.hzs.system.board.vo; + +import com.hzs.common.core.annotation.BigDecimalFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 看板各币种充值数据 + */ +@Data +public class BoardRechargeAccountVO implements Serializable { + + /** + * 账户名称 + */ + private String accountName; + + /** + * 充值金额 + */ + @BigDecimalFormat + private BigDecimal rechargeAmount; + + /** + * 0=今日,1=昨日,2=当月 + */ + private Integer sort; + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeVO.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeVO.java new file mode 100644 index 00000000..03a6002a --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/board/vo/BoardRechargeVO.java @@ -0,0 +1,30 @@ +package com.hzs.system.board.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 看板充值数据 + */ +@Data +public class BoardRechargeVO implements Serializable { + + /** + * 今日充值 + */ + private List rechargeTodayList; + + /** + * 昨日充值 + */ + private List rechargeYesterdayLevelList; + + /** + * 本月充值 + */ + private List rechargeMonthLevelList; + + +} diff --git a/bd-business/bd-business-system/src/main/resources/mapper/system/board/BoardMapper.xml b/bd-business/bd-business-system/src/main/resources/mapper/system/board/BoardMapper.xml new file mode 100644 index 00000000..98c5720a --- /dev/null +++ b/bd-business/bd-business-system/src/main/resources/mapper/system/board/BoardMapper.xml @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java index 4d7ab671..17c27848 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java @@ -1,5 +1,7 @@ package com.hzs.common.core.constant; +import java.math.BigDecimal; + /** * 魔法数字常量类 */ @@ -83,5 +85,9 @@ public class MagicNumberConstants { * 提现的倍数 */ public static final Integer WITHDRAW_MULTIPLE = 100; + /** + * 转换万处理 + */ + public static final BigDecimal big10000 = new BigDecimal("10000"); } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BarCodeUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BarCodeUtils.java index 3cb78656..d517d657 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BarCodeUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BarCodeUtils.java @@ -14,11 +14,7 @@ import java.util.HashMap; import java.util.Map; /** - * @author: sui q - * @time: 2021/11/23 11:02 - * @description: 条形码+文字 生成 - * @classname: BarCodeUtils - * @package_name: com.hzs.web.util + * sui q */ @Slf4j public class BarCodeUtils { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BigDecimalUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BigDecimalUtil.java new file mode 100644 index 00000000..ec61fad4 --- /dev/null +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/BigDecimalUtil.java @@ -0,0 +1,20 @@ +package com.hzs.common.core.utils; + +import com.hzs.common.core.constant.MagicNumberConstants; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class BigDecimalUtil { + + /** + * 除万取2位小数并且去尾 + * + * @param bigDecimal + * @return + */ + public static BigDecimal handleBig10000Down(BigDecimal bigDecimal) { + return bigDecimal.divide(MagicNumberConstants.big10000, 2, RoundingMode.DOWN); + } + +} diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/CreatePassword.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/CreatePassword.java deleted file mode 100644 index 9c806432..00000000 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/CreatePassword.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hzs.common.core.utils; - -/** - * @Description: 自动生成密码 暂时先不使用 - * @Author: sui q - * @Time: 2022/9/9 14:52 - * @Classname: CreatePassword - * @PackageName: com.hzs.common.core.utils - */ -public class CreatePassword { - - /** - * @Description: 生成密码 - * @param len 密码长度 - * @return: String - * @Author: sui q - * @Date: 2022/9/9 14:53 - */ - public static String generatePassword(int len) { - // 1、定义基本字符串baseStr和出参password - StringBuilder password = null; - String baseStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+{}|<>?"; - boolean flag = false; - // 2、使用循环来判断是否是正确的密码 - while (!flag) { - // 密码重置 - password = new StringBuilder(); - // 个数计数 - int a = 0, b = 0, c = 0, d = 0; - for (int i = 0; i < len; i++) { - int rand = (int) (Math.random() * baseStr.length()); - password.append(baseStr.charAt(rand)); - if (rand < 10) { - a++; - } - if (10 <= rand && rand < 36) { - b++; - } - if (36 <= rand && rand < 62) { - c++; - } - if (62 <= rand) { - d++; - } - if (a * b * c * d != 0) { - break; - } - } - // 是否是正确的密码(4类中仅一类为0,其他不为0) - flag = (a * b * c != 0 && d == 0) || (a * b * d != 0 && c == 0) || (a * c * d != 0 && b == 0) - || (b * c * d != 0 && a == 0); - } - return password.toString(); - } - - public static void main(String[] args) { - System.out.println(generatePassword(6)); - } -} 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 71f997ee..ee43274e 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 @@ -8,8 +8,10 @@ import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.List; /** * 时间工具类 @@ -883,4 +885,37 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { return before7days.getTime() < addtime.getTime(); } + + /** + * 获取两个时间内的每一天 + * + * @param startTime + * @param endTime + * @return + */ + public static List findDaysStr(String startTime, String endTime) { + SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.YYYY_MM_DD); + Date dBegin = null; + Date dEnd = null; + try { + dBegin = sdf.parse(startTime); + dEnd = sdf.parse(endTime); + } catch (ParseException e) { + e.printStackTrace(); + } + List daysStrList = new ArrayList<>(); + daysStrList.add(sdf.format(dBegin)); + Calendar calBegin = Calendar.getInstance(); + calBegin.setTime(dBegin); + Calendar calEnd = Calendar.getInstance(); + calEnd.setTime(dEnd); + + while (dEnd.after(calBegin.getTime())) { + calBegin.add(Calendar.DAY_OF_MONTH, 1); + String dayStr = sdf.format(calBegin.getTime()); + daysStrList.add(dayStr); + } + return daysStrList; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DeduplicationUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DeduplicationUtil.java index 063bc2cc..63da6925 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DeduplicationUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DeduplicationUtil.java @@ -1,25 +1,12 @@ -package com.hzs.common.core.utils;/** - * @Description: - * @Author: yuhui - * @Time: 2023/6/6 9:55 - * @Classname: DeduplicationUtil - * @PackageName: com.hzs.common.core.utils - */ +package com.hzs.common.core.utils; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Predicate; -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.common.core.utils - *@Author: yh - *@CreateTime: 2023-06-06 09:55 - *@Description: TODO - *@Version: 1.0 - */ public class DeduplicationUtil { + /** * 自定义函数去重(采用 Predicate函数式判断,采用 Function获取比较key) * 内部维护一个 ConcurrentHashMap,并采用 putIfAbsent特性实现 @@ -29,7 +16,7 @@ public class DeduplicationUtil { * @return */ public static Predicate distinctByKey(Function keyExtractor) { - Map seen = new ConcurrentHashMap<>(); + Map seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } @@ -41,7 +28,7 @@ public class DeduplicationUtil { * @return */ public static Predicate distinctNotByKey(Function keyExtractor) { - Map seen = new ConcurrentHashMap<>(); + Map seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) != null; } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DistinctByKeyUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DistinctByKeyUtil.java index 025062b7..6959bf8e 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DistinctByKeyUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/DistinctByKeyUtil.java @@ -1,27 +1,14 @@ -package com.hzs.common.core.utils;/** - * @Description: - * @Author: yuhui - * @Time: 2023/3/10 15:56 - * @Classname: distinctByKeyUtil - * @PackageName: com.hzs.common.core.utils - */ +package com.hzs.common.core.utils; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Predicate; -/** - *@BelongsProject: hzs_cloud - *@BelongsPackage: com.hzs.common.core.utils - *@Author: yh - *@CreateTime: 2023-03-10 15:56 - *@Description: TODO - *@Version: 1.0 - */ public class DistinctByKeyUtil { /** * 对象根据某一值去重 + * * @param keyExtractor * @param * @return diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NacosSecretUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NacosSecretUtil.java deleted file mode 100644 index 97b37fed..00000000 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NacosSecretUtil.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hzs.common.core.utils; - - - -import com.hzs.common.core.utils.sign.Base64Util; -import org.springframework.util.Base64Utils; - -import java.nio.charset.StandardCharsets; - -/** - * @Description: - * @Author: ljc - * @Time: 2024/8/20 9:38 - * @Classname: NacosSecretUtil - * @Package_name: com.hzs - */ -public class NacosSecretUtil { - - public static void main(String[] args) { - // 自定义生成JWT令牌的密钥 - String nacosSecret = "smYhZs_20240820_UNkSTzy_formY_toKen"; - // 输出密钥长度,要求不得低于32字符,否则无法启动节点。 - System.out.println("密钥长度》》》" + nacosSecret.length()); - // 密钥进行Base64编码 - byte[] data = nacosSecret.getBytes(StandardCharsets.UTF_8); - System.out.println("密钥Base64编码》》》" + Base64Utils.encodeToString(data)); - System.out.println("密钥Base64编码》》》" + Base64Util.encode(data)); - } -} diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java index 7da4aa41..4dbb4f88 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java @@ -2,17 +2,11 @@ package com.hzs.common.core.utils; import java.text.DecimalFormat; -/** - * @Description: - * @Author: yuhui - * @Time: 2022/12/2 14:12 - * @Classname: NumberUtil - * @PackageName: com.hzs.common.core.utils - */ public class NumberUtil { /** * 获取百分比 + * * @param number1 / * @param number2 总数/ * @return java.lang.String / diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/OssUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/OssUtil.java index 283c5344..0c2c5ff3 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/OssUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/OssUtil.java @@ -14,8 +14,6 @@ import java.io.InputStream; /** * OSS 使用工具 - * - * @author: jiiangchao */ @Slf4j public class OssUtil { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/PageUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/PageUtils.java index c0b34b76..a0c4bb29 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/PageUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/PageUtils.java @@ -7,8 +7,6 @@ import com.hzs.common.core.web.page.TableSupport; /** * 分页工具类 - * - * @author hzs */ public class PageUtils extends PageHelper { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ServletUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ServletUtils.java index ab6e8062..35e4947f 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ServletUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ServletUtils.java @@ -27,8 +27,6 @@ import reactor.core.publisher.Mono; /** * 客户端工具类 - * - * @author hzs */ public class ServletUtils { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/SpringUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/SpringUtils.java index 391cd718..be98b362 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/SpringUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/SpringUtils.java @@ -9,8 +9,6 @@ import org.springframework.stereotype.Component; /** * spring工具类 方便在非spring管理环境中获取bean - * - * @author hzs */ @Component public final class SpringUtils implements BeanFactoryPostProcessor { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/StringJsonUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/StringJsonUtils.java index ff59796e..f5d227d8 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/StringJsonUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/StringJsonUtils.java @@ -7,13 +7,7 @@ import com.alibaba.fastjson2.JSONObject; import java.util.*; /** - * description: 将json串转化为map类型 - * - * @author: sui q - * @time: 2023/4/3 14:17 - * @classname: StringJsonUtils - * @package_name: com.hzs.common.core.utils - * version 1.0.0 + * 将json串转化为map类型 */ public class StringJsonUtils { @@ -50,10 +44,10 @@ public class StringJsonUtils { for (int j = 0; j < jsonArray.size(); j++) { // JSONObject reagobj = JSONObject.parseObject(jsonStr); Object object = jsonArray.get(j); - if(object instanceof String){ + if (object instanceof String) { jsonArray.set(j, jsonArray.get(j).toString().trim()); - }else{ - if(jsonArray.get(j) instanceof JSONObject){ + } else { + if (jsonArray.get(j) instanceof JSONObject) { JSONObject reagobj = (JSONObject) jsonArray.get(j); handleJsonObject(reagobj); jsonArray.set(j, reagobj); diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ThreadUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ThreadUtils.java index a1b48ce4..3dbbd066 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ThreadUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/ThreadUtils.java @@ -6,11 +6,7 @@ import org.springframework.stereotype.Component; import java.util.concurrent.*; /** - * Description: 线程工具类 - * Author: jiang chao - * Time: 2022/8/30 10:10 - * Classname: ThreadUtil - * PackageName: com.hzs.common.core.utils + * 线程工具类 */ @Slf4j @Component diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/UploadFileUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/UploadFileUtil.java index 4cc535dd..1388c7f3 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/UploadFileUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/UploadFileUtil.java @@ -8,11 +8,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.*; /** - * @Description: 文件上传工具 - * @Author: jiang chao - * @Time: 2023/1/13 11:24 - * @Classname: UploadUtil - * @PackageName: com.hzs.member.tool + * 文件上传工具 */ @Slf4j public class UploadFileUtil { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelHandlerAdapter.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelHandlerAdapter.java index 7d563a9d..a566f064 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelHandlerAdapter.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelHandlerAdapter.java @@ -2,8 +2,6 @@ package com.hzs.common.core.utils.poi; /** * Excel数据格式处理适配器 - * - * @author hzs */ public interface ExcelHandlerAdapter { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelUtil.java index 381d3be9..769743de 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/poi/ExcelUtil.java @@ -62,8 +62,6 @@ import com.hzs.common.core.utils.reflect.ReflectUtils; /** * Excel相关处理 - * - * @author hzs */ @Slf4j public class ExcelUtil { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/reflect/ReflectUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/reflect/ReflectUtils.java index 452df287..77b86c63 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/reflect/ReflectUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/reflect/ReflectUtils.java @@ -18,8 +18,6 @@ import com.hzs.common.core.utils.DateUtils; /** * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数. - * - * @author hzs */ @Slf4j @SuppressWarnings("rawtypes") diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sign/Base64Util.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sign/Base64Util.java index 16446e79..65a9b5b1 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sign/Base64Util.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sign/Base64Util.java @@ -8,8 +8,6 @@ import java.net.URL; /** * Base64工具类 - * - * @author hzs */ public final class Base64Util { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sql/SqlUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sql/SqlUtil.java index 86224702..0c3f0c05 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sql/SqlUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/sql/SqlUtil.java @@ -5,8 +5,6 @@ import com.hzs.common.core.utils.StringUtils; /** * sql操作工具类 - * - * @author hzs */ public class SqlUtil { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/IdUtils.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/IdUtils.java index 8614d146..4399d85b 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/IdUtils.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/IdUtils.java @@ -2,8 +2,6 @@ package com.hzs.common.core.utils.uuid; /** * ID生成器工具类 - * - * @author hzs */ public class IdUtils { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/Seq.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/Seq.java index 1a1b8f9c..a2075725 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/Seq.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/Seq.java @@ -6,7 +6,7 @@ import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; /** - * @author hzs 序列生成类 + * 序列生成类 */ public class Seq { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/UUID.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/UUID.java index d55b31fe..77506702 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/UUID.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/uuid/UUID.java @@ -10,8 +10,6 @@ import com.hzs.common.core.exception.UtilException; /** * 提供通用唯一识别码(universally unique identifier)(UUID)实现 - * - * @author hzs */ public final class UUID implements java.io.Serializable, Comparable { From 6c1680b089520e35bb6899eda6fad5cad113b6d2 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 21 Aug 2025 10:33:44 +0800 Subject: [PATCH 89/89] =?UTF-8?q?##=20=E9=AB=98=E7=BA=A7=E5=BA=97=E4=B8=BB?= =?UTF-8?q?=E3=80=81=E8=91=A3=E4=BA=8B=E4=BB=A3=E7=90=86=E6=92=A4=E5=8D=95?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/base/mapper/CuMemberMapper.java | 6 +- .../member/base/service/ICuMemberService.java | 6 +- .../impl/CuMemberBusinessServiceImpl.java | 61 +++++++++++-------- .../service/impl/CuMemberServiceImpl.java | 8 +-- .../mapper/member/base/CuMemberMapper.xml | 12 ++-- 5 files changed, 52 insertions(+), 41 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index 15e8b7cd..df8d0bcf 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -607,12 +607,12 @@ public interface CuMemberMapper extends BaseMapper { CuMember getShopkeeperMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue); /** - * 查询高级店主 + * 查询会员等级 * * @param pkMember * @return */ - CuMember getGradeSvipMember(@Param("pkMember") Long pkMember); + CuMemberExt getGradeSvipMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue); /** * 查询会员直推大于博羚店主的注册、升级订单查询会员直推大于博羚店主的注册、升级订单 @@ -621,7 +621,7 @@ public interface CuMemberMapper extends BaseMapper { * @param orderCode * @return */ - SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode); + SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode, @Param("gradeValue") Integer gradeValue); /** diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index 7c3313b9..09fc753d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -876,12 +876,12 @@ public interface ICuMemberService extends IService { CuMember getShopkeeperMember(Long pkMember, Integer gradeValue); /** - * 查询高级店主 + * 查询会员等级 * * @param pkMember * @return */ - CuMember getGradeSvipMember(Long pkMember); + CuMemberExt getGradeSvipMember(Long pkMember, Integer gradeValue); /** * 查询会员直推大于博羚店主的注册、升级订单查询会员直推大于博羚店主的注册、升级订单 @@ -890,6 +890,6 @@ public interface ICuMemberService extends IService { * @param orderCode * @return */ - SaOrder listRecommendVipOrder(Long pkMember, String orderCode); + SaOrder listRecommendVipOrder(Long pkMember, String orderCode, Integer gradeValue); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 27edfd3a..6cfbdd17 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -1674,38 +1674,47 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { memberLevelQuery.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue()); CuMemberLevel parentLevel = iCuMemberLevelService.getOne(memberLevelQuery); if (null != parentLevel) { - // 查询推荐人信息(必须是高级店主) - CuMember parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember()); + // 查询推荐人及等级信息 + CuMemberExt parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember(), null); if (null != parentMember) { - // 推荐是高级店主,查询直推博羚店主以上订单 - SaOrder parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode()); - if (null != parentOrder) { - // 存在其它博羚店主订单,重新处理升级记录 - CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class); - parentNewLevel.setPkId(null); - parentNewLevel.setPkOrder(parentOrder.getPkId()); - parentNewLevel.setUpgradeTime(parentOrder.getPayTime()); - parentNewLevel.setModifiedTime(parentOrder.getPayTime()); - parentNewLevel.setPkModified(parentOrder.getPkMember()); - iCuMemberLevelService.save(parentNewLevel); - } else { - // 不存在其它博羚店主订单,会员需要降级处理 - LambdaUpdateWrapper parentMemberUpdate = new LambdaUpdateWrapper<>(); - parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId()); - parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel()); - parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime); - iCuMemberService.update(parentMemberUpdate); + SaOrder parentOrder = null; + if (parentMember.getGradeValue() == EGrade.DIRECTOR.getValue()) { + // 推荐人是董事代理,查询直推区域代理以上订单 + parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.REGION.getValue()); + } else if (parentMember.getGradeValue() == EGrade.S_VIP.getValue()) { + // 推荐人是高级店主,查询直推博羚店主以上订单 + parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.VIP.getValue()); } - // 删除原来升级记录 - LambdaUpdateWrapper updateMemberLevel = new LambdaUpdateWrapper<>(); - updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId()); - updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue()); - updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime); - iCuMemberLevelService.update(updateMemberLevel); + this.handleParentLevelUpdate(parentOrder, parentLevel, parentMember, currentDateTime); } } } + } + private void handleParentLevelUpdate(SaOrder parentOrder, CuMemberLevel parentLevel, CuMemberExt parentMember, Date currentDateTime) { + if (null != parentOrder) { + // 存在其它博羚店主订单,重新处理升级记录 + CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class); + parentNewLevel.setPkId(null); + parentNewLevel.setPkOrder(parentOrder.getPkId()); + parentNewLevel.setUpgradeTime(parentOrder.getPayTime()); + parentNewLevel.setModifiedTime(parentOrder.getPayTime()); + parentNewLevel.setPkModified(parentOrder.getPkMember()); + iCuMemberLevelService.save(parentNewLevel); + } else { + // 不存在其它博羚店主订单,会员需要降级处理 + LambdaUpdateWrapper parentMemberUpdate = new LambdaUpdateWrapper<>(); + parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId()); + parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel()); + parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime); + iCuMemberService.update(parentMemberUpdate); + } + // 删除原来升级记录 + LambdaUpdateWrapper updateMemberLevel = new LambdaUpdateWrapper<>(); + updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId()); + updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue()); + updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime); + iCuMemberLevelService.update(updateMemberLevel); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index 06fd85b6..013ca2aa 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -3248,13 +3248,13 @@ public class CuMemberServiceImpl extends ServiceImpl i } @Override - public CuMember getGradeSvipMember(Long pkMember) { - return baseMapper.getGradeSvipMember(pkMember); + public CuMemberExt getGradeSvipMember(Long pkMember, Integer gradeValue) { + return baseMapper.getGradeSvipMember(pkMember, gradeValue); } @Override - public SaOrder listRecommendVipOrder(Long pkMember, String orderCode) { - return baseMapper.listRecommendVipOrder(pkMember, orderCode); + public SaOrder listRecommendVipOrder(Long pkMember, String orderCode, Integer gradeValue) { + return baseMapper.listRecommendVipOrder(pkMember, orderCode, gradeValue); } } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index b0444400..2c1f2c31 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -2382,16 +2382,18 @@ and bg.grade_value = #{gradeValue} - - + select cm.*, bg.grade_value gradeValue from cu_member cm left join bd_grade bg on bg.pk_id = cm.pk_settle_grade where cm.del_flag = 0 and cm.category = 0 and cm.pk_id = #{pkMember} - and bg.grade_value = 70 + @@ -2416,7 +2418,7 @@ and so.order_code != #{orderCode} - and bg.grade_value >= 60) so + and bg.grade_value >= #{gradeValue}) so where rownum = 1