From 2ecf227c03df1345d9b95180f505cf0026074c9e Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 01 Sep 2022 16:47:11 +0800 Subject: [PATCH] 20220822 --- src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 2 src/main/resources/mapper/modules/MallLeaderAchieveMapper.xml | 2 src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java | 19 +++--- src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderAchieveMapper.java | 2 src/test/java/cc/mrbird/febs/ProfitTest.java | 96 +++++++++++++++++++++++++++++-- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 17 ++++- src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 2 7 files changed, 116 insertions(+), 24 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderAchieveMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderAchieveMapper.java index e7a8484..4ae0352 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderAchieveMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderAchieveMapper.java @@ -13,5 +13,5 @@ List<Map<String, String>> selectListByStateAndCreateTimeAndUniqueCode(@Param("state")Integer i, @Param("offsetDay")DateTime offsetDay); - int updateByUniqueCodeStateAndTime(@Param("uniqueCode")String uniqueCode, @Param("state")Integer stateOne, @Param("offsetDay")DateTime dateTime); + int updateByUniqueCodeStateAndTime(@Param("updateTime")DateTime updateTime,@Param("uniqueCode")String uniqueCode, @Param("state")Integer stateOne, @Param("offsetDay")DateTime dateTime); } diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java index f90ce01..3c81b6c 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java @@ -57,7 +57,7 @@ MallOrderInfo selectByOrderNo(@Param("orderNo") String orderNo); - int updateOrderConfirmStatus(@Param("date") Date date); + int updateOrderConfirmStatus(@Param("updateTime")DateTime updateTime,@Param("date") Date date); List<MallOrderInfo> selectOrderInfoWithNormalGoods(@Param("date") Date date); diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java index 778cce6..602e4b3 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java @@ -116,7 +116,7 @@ mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); mallLeaderAchieveMapper.insert(mallLeaderAchieve); } - mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.offsetDay(new Date(), -value)); + mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value)); } } /** @@ -136,14 +136,15 @@ * a.unique_code uniqueCode 团长特征码 * , IFNULL(sum(a.amount),0) amount 每日提成总金额 */ -// DateTime dateTime = DateUtil.offsetDay(new Date(), -1); - DateTime dateTime = DateUtil.offsetDay(new Date(), 0); + DateTime dateTime = DateUtil.offsetDay(new Date(), -1); +// DateTime dateTime = DateUtil.offsetDay(new Date(), 0); List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime); if (CollUtil.isNotEmpty(allLeaderAchieve)) { for (Map<String, String> map : allLeaderAchieve) { String uniqueCode = map.get("uniqueCode"); + Object amountOrder = map.get("amount"); //直接舍弃小数点的第三位 - BigDecimal amount = new BigDecimal(map.get("amount")).setScale(2,BigDecimal.ROUND_DOWN); + BigDecimal amount = new BigDecimal(String.valueOf(amountOrder)).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal achieveMoney = amount.multiply(bonusPercent).setScale(2,BigDecimal.ROUND_DOWN); MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); memberWalletService.addBalance(achieveMoney,mallMember.getId()); @@ -157,14 +158,14 @@ //更新到已提成状态 - mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); + mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); } } } } - public static void main(String[] args) { - BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN); - System.out.println(bigDecimal); - } +// public static void main(String[] args) { +// BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN); +// System.out.println(bigDecimal); +// } } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index 917b67b..c6cb494 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -714,6 +714,20 @@ BigDecimal bb = new BigDecimal(100); int refundMoney = refundAmount.multiply(bb).intValue(); + Long refundId = mallRefundEntity.getId(); + MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId); + MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo); + //余额支付退款 + if(OrderPayMethodEnum.BALANCE.getName().equals(mallOrderInfo.getPayMethod())){ + mallRefundOld.setState(1); + mallRefundMapper.updateById(mallRefundOld); + mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue()); + this.baseMapper.updateById(mallOrderInfoOld); + mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + memberWalletService.add(refundAmount, member.getId(), "balance"); + return new FebsResponse().success().message("退款成功"); + } + Boolean flag = false; Boolean debug = xcxProperties.getDebug(); if (debug) { @@ -729,9 +743,6 @@ * 更新退款表 * 更新订单表 */ - Long refundId = mallRefundEntity.getId(); - MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId); - MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo); if(flag){ mallRefundOld.setState(1); mallRefundMapper.updateById(mallRefundOld); diff --git a/src/main/resources/mapper/modules/MallLeaderAchieveMapper.xml b/src/main/resources/mapper/modules/MallLeaderAchieveMapper.xml index b87c95c..f62b5af 100644 --- a/src/main/resources/mapper/modules/MallLeaderAchieveMapper.xml +++ b/src/main/resources/mapper/modules/MallLeaderAchieveMapper.xml @@ -15,7 +15,7 @@ <update id="updateByUniqueCodeStateAndTime"> update mall_leader_achieve set state = 2, - UPDATED_TIME = new Date() + UPDATED_TIME = #{updateTime} where unique_code = #{uniqueCode} and state = 1 and date_format(CREATED_TIME, '%Y-%m-%d') = date_format(#{offsetDay}, '%Y-%m-%d') diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml index 88ffe4e..8d765d4 100644 --- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml +++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml @@ -333,7 +333,7 @@ <update id="updateOrderConfirmStatus"> update mall_order_info set status=4, - receiving_time=new Date() + receiving_time=#{updateTime} where status=3 and date_format(pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d') </update> diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java index 8a6ea5e..94d30e1 100644 --- a/src/test/java/cc/mrbird/febs/ProfitTest.java +++ b/src/test/java/cc/mrbird/febs/ProfitTest.java @@ -1,18 +1,20 @@ package cc.mrbird.febs; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; +import cc.mrbird.febs.common.enumerates.FlowTypeEnum; +import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.utils.MallUtils; import cc.mrbird.febs.mall.dto.ApiLeaderOrderConfirmDto; -import cc.mrbird.febs.mall.entity.MallOrderInfo; -import cc.mrbird.febs.mall.entity.MallOrderItem; -import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; -import cc.mrbird.febs.mall.mapper.MallOrderItemMapper; -import cc.mrbird.febs.mall.service.IAgentService; -import cc.mrbird.febs.mall.service.IApiMallTeamLeaderService; -import cc.mrbird.febs.mall.service.IMallAchieveService; -import cc.mrbird.febs.mall.service.IMemberProfitService; +import cc.mrbird.febs.mall.entity.*; +import cc.mrbird.febs.mall.mapper.*; +import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto; import cc.mrbird.febs.pay.service.IXcxPayService; import cc.mrbird.febs.rabbit.consumer.AgentConsumer; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.commons.collections.CollectionUtils; @@ -187,4 +189,82 @@ String data = febsResponse.get("data").toString(); System.out.println(data); } + + +// +// @Autowired +// private MallOrderInfoMapper mallOrderInfoMapper; +// +// @Autowired +// private MallGoodsSkuMapper mallGoodsSkuMapper; + + @Autowired + private MallLeaderAchieveMapper mallLeaderAchieveMapper; +// +// @Autowired +// private MallTeamLeaderMapper mallTeamLeaderMapper; +// +// @Autowired +// private IMemberProfitService memberProfitService; + +// @Autowired +// private IMallAchieveService mallAchieveService; + + @Autowired + private DataDictionaryCustomMapper dataDictionaryCustomMapper; + + @Autowired + private MallMemberMapper mallMemberMapper; + + @Autowired + private IMallMoneyFlowService mallMoneyFlowService; + + @Autowired + private IApiMallMemberWalletService memberWalletService; + + @Test + public void achieve(){ + DataDictionaryCustom dicBonusSwitch = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_SWITCH.getType(), DataDictionaryEnum.BONUS_SWITCH.getCode()); + String bonusSwitch = dicBonusSwitch.getValue(); + if("1".equals(bonusSwitch)){ + DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); + BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);; + //获取每日提成总数 + /** + * a.unique_code uniqueCode 团长特征码 + * , IFNULL(sum(a.amount),0) amount 每日提成总金额 + */ +// DateTime dateTime = DateUtil.offsetDay(new Date(), -1); + DateTime dateTime = DateUtil.offsetDay(new Date(), 0); + List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime); + if (CollUtil.isNotEmpty(allLeaderAchieve)) { + for (Map<String, String> map : allLeaderAchieve) { + String uniqueCode = map.get("uniqueCode"); + Object amountOrder = map.get("amount"); + //直接舍弃小数点的第三位 + BigDecimal amount = new BigDecimal(String.valueOf(amountOrder)).setScale(2,BigDecimal.ROUND_DOWN); + BigDecimal achieveMoney = amount.multiply(bonusPercent).setScale(2,BigDecimal.ROUND_DOWN); + MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); + memberWalletService.addBalance(achieveMoney,mallMember.getId()); + String achieveNo = "TC."+ MallUtils.getOrderNum(); + mallMoneyFlowService.addMoneyFlow( + mallMember.getId(), + achieveMoney, + MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), + achieveNo, + FlowTypeEnum.BALANCE.getValue()); + + + //更新到已提成状态 + mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); + } + } + } + + } + + public static void main(String[] args) { + BigDecimal amount = new BigDecimal("0.15").setScale(2,BigDecimal.ROUND_DOWN); + System.out.println(amount); + } } -- Gitblit v1.9.1