From 0911582d2f80e7f3162fb6d0b59ee12e23de133b Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期四, 17 十月 2024 09:39:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java | 124 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 124 insertions(+), 0 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 eaf0d38..0bad395 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,10 +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.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;
/**
* <p>
@@ -17,4 +43,102 @@
@Service
public class TVipServiceImpl extends ServiceImpl<TVipMapper, TVip> implements TVipService {
+ @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);
+ List<TVip> list = this.baseMapper.pageList(pageInfo);
+
+ for (TVip tVip : list) {
+ String coupon = tVip.getCoupon();
+ 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());
+ }
+ }
+ 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());
+ orderClient.addVipOrder(shopOrder).getData();
+
+
+ if (payType==1){
+ //调起支付
+ PaymentOrder paymentOrder = new PaymentOrder();
+ paymentOrder.setCode(shopOrder.getCode());
+ paymentOrder.setAmount(shopOrder.getPaymentAmount());
+ paymentOrder.setOpenId(user.getWxOpenid());
+ paymentOrder.setDescription("购买会员");
+ return 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("充电充值");
+ AliPaymentResp data = aliPaymentClient.payment(req).getData();
+ if(null != data){
+ data.setNotifyUrl(data.getNotifyUrl() + "/callBack/ali/all");
+ return AjaxResult.success(data);
+ }
+ }
+
+ return null;
+ }
}
--
Gitblit v1.7.1