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} + + + + + +