From 7998c03ea0b22ca4f7fc50d77d99df6501fb7fd1 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期三, 29 五月 2024 17:01:52 +0800
Subject: [PATCH] 写用户端接口

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java |  158 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 157 insertions(+), 1 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
index 8a662f8..f3eebc8 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -1,10 +1,31 @@
 package com.ruoyi.order.service.impl;
 
-import com.ruoyi.order.domain.pojo.OrderAuctionBond;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.BondStatusEnum;
+import com.ruoyi.common.core.enums.PaymentMethodEnum;
+import com.ruoyi.order.util.OrderUtil;
+import com.ruoyi.system.api.domain.AuctionGoods;
+import com.ruoyi.system.api.domain.AuctionSalesroom;
+import com.ruoyi.system.api.domain.OrderAuctionBond;
+import com.ruoyi.order.domain.pojo.Paylog;
 import com.ruoyi.order.mapper.OrderAuctionBondMapper;
 import com.ruoyi.order.service.IOrderAuctionBondService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.service.IPaylogService;
+import com.ruoyi.order.util.SinataUtil;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
+import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import com.ruoyi.system.api.domain.vo.PayInfoVO;
+import com.ruoyi.system.api.feignClient.AuctionClient;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +38,139 @@
 @Service
 public class OrderAuctionBondServiceImpl extends ServiceImpl<OrderAuctionBondMapper, OrderAuctionBond> implements IOrderAuctionBondService {
 
+    @Resource
+    private IOrderAuctionBondService iOrderAuctionBondService;
+
+    @Resource
+    private IPaylogService iPaylogService;
+
+    @Resource
+    private PaylogServiceImpl   paylogServiceImpl;
+
+
+    @Resource
+    private AuctionClient auctionClient;
+
+
+    @Override
+    public R<T> getOrderAuctionBond(OrderAuctionBondDTO orderAuctionBondDTO) {
+
+        LambdaQueryWrapper<OrderAuctionBond> wrapper = Wrappers.lambdaQuery();
+        wrapper.notIn(OrderAuctionBond::getMemberId, orderAuctionBondDTO.getUserList());
+        wrapper.eq(OrderAuctionBond::getDelFlag, 0);
+        wrapper.eq(OrderAuctionBond::getAuctionSalesroomId, orderAuctionBondDTO.getAuctionSalesroomId());
+        List<OrderAuctionBond> orderAuctionBondList = iOrderAuctionBondService.list(wrapper);
+        for (OrderAuctionBond orderAuctionBond : orderAuctionBondList) {
+            LambdaQueryWrapper<Paylog> wrapper1 = Wrappers.lambdaQuery();
+            wrapper1.eq(Paylog::getOutTradeNo, orderAuctionBond.getOrderNo());
+            wrapper1.last("limit 1");
+            Paylog paylog = iPaylogService.getOne(wrapper1);
+            if (paylog.getPayType() == 1) {//支付宝
+                boolean bo = paylogServiceImpl.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), orderAuctionBond.getBond().doubleValue());
+                if (!bo) {
+                    return R.fail("支付宝退款失败!");
+                }
+            } else {//微信
+                String refundMoney = SinataUtil.doubleRetainTwo(orderAuctionBond.getBond().doubleValue() * 100d);
+                Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3));
+                String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
+                Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3));
+                boolean bo = paylogServiceImpl.refundForWxpay(1, paylog.getTradeNo(), paylog.getOutTradeNo(), orderAuctionBond.getOrderNo(), totalFee, refundFee, "2");
+                if (!bo) {
+                    return R.fail("微信退款失败!");
+                }
+            }
+
+        }
+        return R.ok();
+    }
+
+    @Override
+    public PayInfoVO SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
+        PayInfoVO payInfoVO = new PayInfoVO();
+        if (memberAuctionSalesroomBondDTO.getBondType() == 2) {
+            AuctionSalesroom data = auctionClient.getauctionSalesroomOne(memberAuctionSalesroomBondDTO.getAuctionSalesroomId(), SecurityConstants.INNER).getData();
+            if (data.getBound().intValue() == 0) {
+                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
+                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
+                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
+                orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                orderAuctionBond.setBond(data.getBound());
+                orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
+                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
+                iOrderAuctionBondService.save(orderAuctionBond);
+                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
+                payInfoVO.setType(0);
+                payInfoVO.setSubject("保证金");
+                payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                payInfoVO.setBody("保证金");
+            } else {
+                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
+                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
+                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
+                orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                orderAuctionBond.setBond(data.getBound());
+                orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY);
+                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
+                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
+                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.WECHAT);
+                } else {
+                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
+                }
+
+                iOrderAuctionBondService.save(orderAuctionBond);
+
+                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
+                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
+                    payInfoVO.setType(2);
+                } else {
+                    payInfoVO.setType(1);
+                }
+                payInfoVO.setSubject("保证金");
+                payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                payInfoVO.setBody("保证金");
+            }
+        } else {
+            AuctionGoods data = auctionClient.getauctionGoodsOne(memberAuctionSalesroomBondDTO.getAuctionGoodsId(), SecurityConstants.INNER).getData();
+            if (data.getBond().intValue() == 0) {
+                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
+                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
+                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
+                orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                orderAuctionBond.setBond(data.getBond());
+                orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
+                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
+                iOrderAuctionBondService.save(orderAuctionBond);
+                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
+                payInfoVO.setType(0);
+                payInfoVO.setSubject("保证金");
+                payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                payInfoVO.setBody("保证金");
+            } else {
+                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
+                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
+                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
+                orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                orderAuctionBond.setBond(data.getBond());
+                orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY);
+                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
+                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
+                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.WECHAT);
+                } else {
+                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
+                }
+                iOrderAuctionBondService.save(orderAuctionBond);
+                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
+                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
+                    payInfoVO.setType(2);
+                } else {
+                    payInfoVO.setType(1);
+                }
+                payInfoVO.setSubject("保证金");
+                payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
+                payInfoVO.setBody("保证金");
+            }
+        }
+        return payInfoVO;
+    }
 }

--
Gitblit v1.7.1