From 07425eeaf3ddc5306fa2e304b1c1e34e45707205 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Fri, 07 Apr 2023 17:36:53 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 51 ++++++++++++++++++++++++--------------------------- 1 files changed, 24 insertions(+), 27 deletions(-) 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 1a380ba..023ba52 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 @@ -18,6 +18,7 @@ import cc.mrbird.febs.pay.model.AgreementPayDto; import cc.mrbird.febs.pay.model.AgreementSignDto; import cc.mrbird.febs.pay.model.UnipayDto; +import cc.mrbird.febs.pay.service.IAliPayService; import cc.mrbird.febs.pay.service.IPayService; import cc.mrbird.febs.pay.service.UnipayService; import cc.mrbird.febs.rabbit.producter.AgentProducer; @@ -68,9 +69,10 @@ private final RedisUtils redisUtils; private final AgentProducer agentProducer; - private final IPayService payService; + private final IAliPayService payService; private final IMallAchieveService mallAchieveService; private final UnipayService unipayService; + private final IPayService wechatPayService; private final MallMemberBankSignMapper mallMemberBankSignMapper; private final MallMemberBankMapper mallMemberBankMapper; @@ -277,31 +279,17 @@ String rcResult = ""; switch (payOrderDto.getType()) { case "1": - UnipayDto unipayDtoWx = new UnipayDto(); -// unipayDto.setAmount(new BigDecimal("0.01")); - unipayDtoWx.setAmount(orderInfo.getAmount()); - unipayDtoWx.setFrpCode("WEIXIN_APP3"); - unipayDtoWx.setTradeMerchantNo("777180800385820"); - unipayDtoWx.setOrderNo(orderInfo.getOrderNo()); List<MallOrderItem> itemsWx = orderInfo.getItems(); if(CollUtil.isEmpty(itemsWx)){ - unipayDtoWx.setProductName("商品"); + orderInfo.setName("商品"); }else{ - unipayDtoWx.setProductName(itemsWx.get(0).getGoodsName()); + orderInfo.setName(itemsWx.get(0).getGoodsName()); } - String unipayStrWx = unipayService.unipay(unipayDtoWx); - if("fail" == unipayStrWx){ - throw new FebsException("支付失败"); - }else{ -// JSONUtil.parseObj(unipayStr); - JSONObject jsonObject = JSONUtil.parseObj(unipayStrWx); - payResultStr = (String) jsonObject.get("r7_TrxNo"); - rcResult = (String) jsonObject.get("rc_Result"); - } + + payResultStr = wechatPayService.pay(orderInfo); orderInfo.setPayOrderNo(payResultStr); -// orderInfo.setPayOrderNo(payOrderDto.getPayOrderNo()); -// orderInfo.setPayImage(payOrderDto.getPayImage()); orderInfo.setPayMethod("微信支付"); + orderInfo.setPayResult("2"); break; case "2": // if (StrUtil.isNotBlank(orderInfo.getPayOrderNo())) { @@ -342,6 +330,7 @@ orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); orderInfo.setPayTime(new Date()); orderInfo.setPayResult("1"); + this.baseMapper.updateById(orderInfo); changeWallet(orderInfo.getId()); /** @@ -448,6 +437,7 @@ * 所有合伙人补贴至消费礼包的三倍额度需要复购一次。 */ BigDecimal scoreSum = BigDecimal.ZERO; + BigDecimal achieveSum = BigDecimal.ZERO; List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId()); if (CollUtil.isNotEmpty(orderItems)) { for (MallOrderItem orderItem : orderItems) { @@ -488,6 +478,11 @@ new BigDecimal(mallGoods.getPresentPrice()) .multiply(new BigDecimal(orderItem.getCnt())) .multiply(basePercent) + .abs() + .setScale(2,BigDecimal.ROUND_DOWN)); + achieveSum = achieveSum.add( + new BigDecimal(mallGoods.getPresentPrice()) + .multiply(new BigDecimal(orderItem.getCnt())) .abs() .setScale(2,BigDecimal.ROUND_DOWN)); } @@ -608,13 +603,15 @@ /** * 产生一条业绩记录 */ - MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); - mallAchieveRecord.setMemberId(memberId); - mallAchieveRecord.setAchieveTime(new Date()); - mallAchieveRecord.setAmount(orderInfo.getAmount().subtract(orderInfo.getScoreAmount())); - mallAchieveRecord.setOrderId(orderId); - mallAchieveRecord.setPayTime(orderInfo.getPayTime()); - mallAchieveRecordMapper.insert(mallAchieveRecord); + if(achieveSum.compareTo(BigDecimal.ZERO) > 0){ + MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); + mallAchieveRecord.setMemberId(memberId); + mallAchieveRecord.setAchieveTime(new Date()); + mallAchieveRecord.setAmount(achieveSum.subtract(orderInfo.getScoreAmount())); + mallAchieveRecord.setOrderId(orderId); + mallAchieveRecord.setPayTime(orderInfo.getPayTime()); + mallAchieveRecordMapper.insert(mallAchieveRecord); + } } public static void main(String[] args) { -- Gitblit v1.9.1