From 67d06a785d5fc4524639ace27651c01ff05a4b58 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 29 五月 2025 22:31:33 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java |  110 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 100 insertions(+), 10 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
index f0d8245..47fb78a 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
@@ -1,17 +1,36 @@
 package com.ruoyi.other.service.impl;
+import java.time.LocalDateTime;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.OrderCodeUtil;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.order.api.feignClient.OrderClient;
+import com.ruoyi.order.api.model.TVipOrder;
 import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.feignClient.OtherClient;
+import com.ruoyi.other.api.feignClient.VipClient;
 import com.ruoyi.other.mapper.TCouponMapper;
 import com.ruoyi.other.mapper.TVipMapper;
 import com.ruoyi.other.service.TVipService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.payment.api.feignClient.AliPaymentClient;
+import com.ruoyi.payment.api.feignClient.WxPaymentClient;
+import com.ruoyi.payment.api.vo.AliPaymentReq;
+import com.ruoyi.payment.api.vo.AliPaymentResp;
+import com.ruoyi.payment.api.vo.PaymentOrder;
+import org.apache.poi.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
+import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -27,6 +46,17 @@
 
     @Autowired
     private TCouponMapper tCouponMapper;
+    @Resource
+    private OrderClient orderClient;
+    @Resource
+    private AppUserClient appUserClient;
+
+    @Resource
+    private WxPaymentClient wxPaymentClient;
+    @Resource
+    private AliPaymentClient aliPaymentClient;
+
+
     @Override
     public PageInfo<TVip> pageList(Integer pageCurr,Integer pageSize) {
         PageInfo<TVip> pageInfo = new PageInfo<>(pageCurr,pageSize);
@@ -34,20 +64,80 @@
 
         for (TVip tVip : list) {
             String coupon = tVip.getCoupon();
-            JSONArray jsonArray = JSONObject.parseArray(coupon);
-            StringBuilder stringBuilder = new StringBuilder();
-            for (int i = 0; i < jsonArray.size(); i++) {
-                JSONObject jsonObject = jsonArray.getJSONObject(i);
-                Integer id = jsonObject.getInteger("id");
-                Integer number = jsonObject.getInteger("number");
-                TCoupon tCoupon = tCouponMapper.selectById(id);
-                if (tCoupon!=null){
-                    stringBuilder.append(tCoupon.getName()).append("*").append(number).append(";");
+            if (StringUtils.hasLength(coupon)){
+                JSONArray jsonArray = JSONObject.parseArray(coupon);
+                StringBuilder stringBuilder = new StringBuilder();
+                for (int i = 0; i < jsonArray.size(); i++) {
+                    JSONObject jsonObject = jsonArray.getJSONObject(i);
+                    Integer id = jsonObject.getInteger("id");
+                    Integer number = jsonObject.getInteger("number");
+                    TCoupon tCoupon = tCouponMapper.selectById(id);
+                    if (tCoupon!=null){
+                        stringBuilder.append(tCoupon.getName()).append("*").append(number).append(";");
+                    }
                 }
+                tVip.setCouponName(stringBuilder.toString());
             }
-            tVip.setCouponName(stringBuilder.toString());
         }
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
+    @Resource
+    private VipClient vipClient;
+    @Override
+    public Object vipInfoPay(TVip byId, BigDecimal payMoney, Integer payType,BigDecimal discountMoney,BigDecimal discount,Integer buyType, Long userId) {
+        TAppUser user = appUserClient.getUserById(userId).getData();
+        //生成会员购买订单
+        TVipOrder shopOrder = new TVipOrder();
+        shopOrder.setCode(OrderCodeUtil.getOrderCode("HY"));
+        shopOrder.setType(1);
+        shopOrder.setAppUserId(userId);
+        shopOrder.setType(1);
+        shopOrder.setVipId(byId.getId());
+        shopOrder.setTitle(byId.getName());
+        if (buyType==1){
+            shopOrder.setTitle(byId.getName()+"月卡");
+        }else if (buyType==2){
+            shopOrder.setTitle(byId.getName()+"季卡");
+        }else {
+            shopOrder.setTitle(byId.getName()+"年卡");
+        }
+        shopOrder.setVipType(buyType);
+        shopOrder.setOrderAmount(payMoney.add(discountMoney));
+        shopOrder.setDiscount(discount);
+        shopOrder.setDiscountAmount(discountMoney);
+        shopOrder.setPaymentAmount(payMoney);
+        shopOrder.setPaymentStatus(1);
+        shopOrder.setPaymentType(payType);
+        shopOrder.setPayTime(LocalDateTime.now());
+        shopOrder.setDelFlag(false);
+        R<Long> longR = orderClient.addVipOrder(shopOrder);
+        if(200 != longR.getCode()){
+            return AjaxResult.error(longR.getMsg());
+        }
+    
+        if (payType==1){
+            //调起支付
+            PaymentOrder paymentOrder = new PaymentOrder();
+            paymentOrder.setCode(shopOrder.getCode());
+            paymentOrder.setAmount(shopOrder.getPaymentAmount());
+            paymentOrder.setOpenId(user.getWxOpenid());
+            paymentOrder.setDescription("购买会员");
+            return AjaxResult.success(wxPaymentClient.orderPay(paymentOrder).getData());
+        }else {
+            AliPaymentReq req = new AliPaymentReq();
+            req.setOutTradeNo(shopOrder.getCode());
+            req.setTotalAmount(shopOrder.getPaymentAmount().toString());
+            req.setSubject("充电充值");
+            req.setBuyerOpenId(user.getAliOpenid());
+            req.setBody("充电充值");
+            req.setNotifyUrl("/payment/ali/callBack");
+            AliPaymentResp data = aliPaymentClient.payment(req).getData();
+            if(null != data){
+                return AjaxResult.success(data);
+            }
+        }
+        return null;
+    }
 }

--
Gitblit v1.7.1