From 4b42548bdeee0035497839403941d32fe13210c0 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 30 Oct 2023 11:10:56 +0800 Subject: [PATCH] 提现 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 143 +++++++++++++++++++++++++++++------------------ 1 files changed, 87 insertions(+), 56 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 bc1e7d1..1d3a04c 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 @@ -19,8 +19,8 @@ import cc.mrbird.febs.mall.vo.OrderListVo; import cc.mrbird.febs.mall.vo.OrderRefundVo; 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.AliIPayService; import cc.mrbird.febs.pay.service.IPayService; import cc.mrbird.febs.pay.service.UnipayService; import cc.mrbird.febs.rabbit.producter.AgentProducer; @@ -37,7 +37,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -70,7 +69,7 @@ private final RedisUtils redisUtils; private final AgentProducer agentProducer; - private final IPayService payService; + private final AliIPayService payService; private final IMallAchieveService mallAchieveService; private final MallAchieveRecordMapper mallAchieveRecordMapper; private final UnipayService unipayService; @@ -78,6 +77,8 @@ private final MallMemberBankSignMapper mallMemberBankSignMapper; private final MallMemberBankMapper mallMemberBankMapper; private final MallShopApplyMapper mallShopApplyMapper; + private final IPayService wechatPayService; + private final ICommonService commonService; @Override @Transactional(rollbackFor = Exception.class) @@ -214,7 +215,6 @@ } this.baseMapper.updateById(orderInfo); - agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L); return orderInfo.getId(); } @@ -261,32 +261,45 @@ 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 "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("商品"); +// }else{ +// unipayDtoWx.setProductName(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"); +// } +// orderInfo.setPayOrderNo(payResultStr); +//// orderInfo.setPayOrderNo(payOrderDto.getPayOrderNo()); +//// orderInfo.setPayImage(payOrderDto.getPayImage()); +// orderInfo.setPayMethod("微信支付"); +// break; case "2": // if (StrUtil.isNotBlank(orderInfo.getPayOrderNo())) { // payResultStr = orderInfo.getPayOrderNo(); @@ -326,46 +339,18 @@ orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); orderInfo.setPayTime(new Date()); orderInfo.setPayResult("1"); - - boolean hasTc = false; - BigDecimal achieveAmount = BigDecimal.ZERO; - List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId()); - if (CollUtil.isNotEmpty(orderItems)) { - for (MallOrderItem orderItem : orderItems) { - MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId()); - MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId()); - if (mallGoods.getIsNormal() == 2) { - hasTc = true; - achieveAmount = achieveAmount.add(sku.getPresentPrice().multiply(new BigDecimal(orderItem.getCnt()))); - } - } - } + this.baseMapper.updateById(orderInfo); + //新增业绩,第一次购买套餐则升级用户为普通会员 - if (hasTc){ - if(achieveAmount.compareTo(BigDecimal.ZERO) > 0) { - // 添加业绩 - MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); - mallAchieveRecord.setMemberId(member.getId()); - mallAchieveRecord.setAmount(achieveAmount); - mallAchieveRecord.setAchieveTime(orderInfo.getPayTime()); - mallAchieveRecord.setOrderId(orderInfo.getId()); - mallAchieveRecord.setIsNormal(2); - mallAchieveRecord.setPayTime(orderInfo.getPayTime()); - mallAchieveRecordMapper.insert(mallAchieveRecord); - } - } - + commonService.addAchieveAndUpdateLevel(orderInfo.getId(),orderInfo.getMemberId()); mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); - agentProducer.sendAutoLevelUpMsg(member.getId()); -// agentProducer.sendOrderReturn(orderInfo.getId()); - agentProducer.sendReturnMoneyMsg(orderInfo.getId()); break; case "4": if (orderInfo.getOrderType() != 2) { throw new FebsException("非积分订单,无法使用积分支付"); } - payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "prizeScore"); + payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "score"); orderInfo.setPayOrderNo(orderInfo.getOrderNo()); orderInfo.setPayMethod("积分支付"); @@ -373,7 +358,7 @@ orderInfo.setPayTime(new Date()); orderInfo.setPayResult("1"); - mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); + mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); break; case "5": // AgreementSignDto agreementSignDto = new AgreementSignDto(); @@ -451,6 +436,52 @@ return map; } + /** + * 新增业绩,第一次购买套餐则升级用户为普通会员 + * @param orderId + * @param memberId + */ + private void addAchieveAndUpdateLevel(Long orderId,Long memberId){ + MallOrderInfo orderInfo = this.baseMapper.selectById(orderId); + MallMember member = memberMapper.selectById(memberId); + + boolean hasTc = false; + BigDecimal achieveAmount = BigDecimal.ZERO; + List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderId); + if (CollUtil.isNotEmpty(orderItems)) { + for (MallOrderItem orderItem : orderItems) { + MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId()); + MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId()); + if (mallGoods.getIsNormal() == 2) { + hasTc = true; + achieveAmount = achieveAmount.add(sku.getPresentPrice().multiply(new BigDecimal(orderItem.getCnt()))); + } + } + } + + if (hasTc){ + if(achieveAmount.compareTo(BigDecimal.ZERO) > 0) { + // 添加业绩 + MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); + mallAchieveRecord.setMemberId(memberId); + mallAchieveRecord.setAmount(achieveAmount); + mallAchieveRecord.setAchieveTime(orderInfo.getPayTime()); + mallAchieveRecord.setOrderId(orderInfo.getId()); + mallAchieveRecord.setIsNormal(2); + mallAchieveRecord.setPayTime(orderInfo.getPayTime()); + mallAchieveRecordMapper.insert(mallAchieveRecord); + //得到三倍补助 +// BigDecimal multiply = achieveAmount.multiply(new BigDecimal(3)); +// memberWalletService.add(multiply, memberId, "commission"); + + } + if(member.getLevel().equals(MemberLevelEnum.FANS.getType())){ + member.setLevel(MemberLevelEnum.NORMAL.getType()); + memberMapper.updateById(member); + } + } + } + public static void main(String[] args) { String str = "{\"biz_code\":\"JS000000\",\"biz_msg\":\"成功\",\"data\":\"{\\\"order_status\\\":\\\"P2000\\\",\\\"jp_order_no\\\":\\\"100120220826446740396081496064\\\",\\\"err_msg\\\":\\\"短信验证码不符\\\",\\\"err_code\\\":\\\"CP110026\\\",\\\"sign_no\\\":\\\"\\\",\\\"mch_order_no\\\":\\\"NO_2022082618263952399\\\"}\",\"mch_no\":\"888118000001971\",\"rand_str\":\"an2w7ulf5ru6upkk5bdg441kdi3gnpvu\",\"resp_code\":\"SUCCESS\",\"sec_key\":\"\",\"sign\":\"NiJXRTSIZ9xZMUOwEHiEHdZXmgL2cHUU5WUa1NbMRRzui0DIiuZSW4e31LjnBxwVwmy3uuPMP+tqhY8VLyC8uCFOdGdZI7e72VuRvyvaiW7/sqCrsfgPOBEjiGE/CmSMRoEXv9HmqCyNBF6iHSEhQJql5Yge30dQdyB6xFfqjk0=\",\"sign_type\":\"2\"}"; -- Gitblit v1.9.1