From f08a70b0a1e2cd49075c5d5d3f63d07d0b56cef9 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期三, 28 八月 2024 12:05:00 +0800
Subject: [PATCH] 完善硬件相关功能

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java |   70 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 1 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index b809d8f..af1d4e3 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -1,7 +1,10 @@
 package com.ruoyi.order.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.dto.GrantCouponDto;
+import com.ruoyi.account.api.feignClient.AppCouponClient;
 import com.ruoyi.account.api.feignClient.AppUserAddressClient;
 import com.ruoyi.account.api.model.TAppUserAddress;
 import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -9,7 +12,9 @@
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.api.model.TExchangeOrder;
 import com.ruoyi.order.api.model.TShoppingOrder;
+import com.ruoyi.order.api.query.ShoppingOrderQuery;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
+import com.ruoyi.order.api.vo.ChargingOrderVO;
 import com.ruoyi.order.api.vo.TActivityStatisticslVO;
 import com.ruoyi.order.api.vo.TActivityVO;
 import com.ruoyi.order.dto.*;
@@ -19,11 +24,16 @@
 import com.ruoyi.other.api.domain.TGoods;
 import com.ruoyi.other.api.feignClient.CouponClient;
 import com.ruoyi.other.api.feignClient.GoodsClient;
+import com.ruoyi.payment.api.feignClient.AliPaymentClient;
+import com.ruoyi.payment.api.feignClient.WxPaymentClient;
+import com.ruoyi.payment.api.vo.NotifyV3PayDecodeRespBody;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
@@ -50,6 +60,14 @@
     
     @Resource
     private AppUserAddressClient appUserAddressClient;
+    @Resource
+    private AppCouponClient appCouponClient;
+    
+    @Resource
+    private WxPaymentClient wxPaymentClient;
+    
+    @Resource
+    private AliPaymentClient aliPaymentClient;
     
     
     
@@ -261,7 +279,20 @@
         //支付方式(1=微信,2=支付宝) todo 待完善
         Integer paymentType = shoppingOrder.getPaymentType();
         if(1 == paymentType){
-        
+            NotifyV3PayDecodeRespBody data = wxPaymentClient.queryOrderInfo(shoppingOrder.getCode()).getData();
+            String trade_state = data.getTrade_state();
+            if("NOTPAY".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){
+                return AjaxResult.error("订单还未支付,不能操作退款");
+            }
+            if("CLOSED".equals(trade_state)){
+                return AjaxResult.error("订单支付已关闭,不能操作退款");
+            }
+            if("USERPAYING".equals(trade_state)){
+                return AjaxResult.error("订单正在支付中,不能操作退款");
+            }
+            if("REFUND".equals(trade_state)){
+                return AjaxResult.error("订单已退款,不能操作退款");
+            }
         }
         if(2 == paymentType){
         
@@ -309,4 +340,41 @@
         }
         return pageList;
     }
+
+    @Override
+    public void callBack(String code,String outTradeNo) {
+        //改变订单状态
+        TShoppingOrder shoppingOrder = this.baseMapper.selectOne(Wrappers.lambdaQuery(TShoppingOrder.class).eq(TShoppingOrder::getCode, code));
+        shoppingOrder.setPaymentStatus(2);
+        shoppingOrder.setSerialNumber(outTradeNo);
+        this.updateById(shoppingOrder);
+        //如果是优惠券,赠送优惠券
+        if (shoppingOrder.getOrderType()==2){
+            GrantCouponDto grantCouponDto = new GrantCouponDto();
+            grantCouponDto.setType(3);
+            grantCouponDto.setUserIds(String.valueOf(shoppingOrder.getAppUserId()));
+            grantCouponDto.setCouponId(shoppingOrder.getCouponId());
+            grantCouponDto.setWaysToObtain(2);
+            grantCouponDto.setEndTime(LocalDateTime.now());
+            appCouponClient.grantCoupon(grantCouponDto);
+        }
+    }
+
+    @Override
+    public PageInfo<TShoppingOrder> pageList(ShoppingOrderQuery query) {
+        String startTime1 = null;
+        String startTime2 = null;
+
+
+        if (StringUtils.hasLength(query.getStartTime())){
+            String[] split = query.getStartTime().split(" - ");
+            startTime1 = split[0];
+            startTime2 = split[1];
+        }
+        PageInfo<TShoppingOrder> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+        List<TShoppingOrder> list = this.baseMapper.pageList(pageInfo,query,startTime1,startTime2);
+
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }

--
Gitblit v1.7.1