|
|
@@ -4,6 +4,12 @@ import com.dk.common.response.ResponseResultUtil;
|
|
|
import com.dk.common.response.ResponseResultVO;
|
|
|
import com.dk.common.util.*;
|
|
|
import com.dk.oauth.config.WechatPayConfigInfo;
|
|
|
+import com.dk.oauth.entity.Company;
|
|
|
+import com.dk.oauth.entity.Trade;
|
|
|
+import com.dk.oauth.entity.UserLogin;
|
|
|
+import com.dk.oauth.mapper.CompanyMapper;
|
|
|
+import com.dk.oauth.mapper.TradeMapper;
|
|
|
+import com.dk.oauth.mapper.UserMapper;
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
|
|
|
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
|
|
@@ -15,7 +21,11 @@ import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
@@ -24,6 +34,7 @@ import java.util.Map;
|
|
|
* 微信支付服务
|
|
|
* 后台管理设置的金额 从dkic_ms里取数据 金额
|
|
|
* 所以放到了 权限的oauth-server 的服务里240327
|
|
|
+ *
|
|
|
* @author 姜永辉
|
|
|
* @since 20223-07-01 09:41:05
|
|
|
*/
|
|
|
@@ -33,6 +44,13 @@ public class WechatPayService {
|
|
|
@Autowired
|
|
|
private WechatPayConfigInfo wechatPayConfigInfo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TradeMapper tradeMapper;
|
|
|
+ @Autowired
|
|
|
+ private UserMapper userMapper;
|
|
|
+ @Autowired
|
|
|
+ private CompanyMapper companyMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 商户 下单选取旗舰版或专业版的订单
|
|
|
*
|
|
|
@@ -92,33 +110,38 @@ public class WechatPayService {
|
|
|
* @author : 姜永辉
|
|
|
* @date : 2024/03/06 11:29
|
|
|
*/
|
|
|
+ @Transactional(
|
|
|
+ rollbackFor = {Exception.class}
|
|
|
+ )
|
|
|
public ResponseResultVO notifyWechatPay(WxPayOrderNotifyResult info) {
|
|
|
log.info("处理支付成功逻辑----------" + info.getOutTradeNo() + "---------" + info.toString());
|
|
|
-
|
|
|
-// 判断支付金额是否一致
|
|
|
-// ShopOrderPaymentDto sop = new ShopOrderPaymentDto();
|
|
|
-// sop.setPaymentsn(info.getOutTradeNo());
|
|
|
-// sop.setPaystatus(0L);
|
|
|
-// ShopOrderPayment shopOrderPaymentReturn = shopOrderPaymentMapper.selectEntity(sop);
|
|
|
-// log.info("从订单流水表没有查到数据----------" + info.getOutTradeNo());
|
|
|
-// if (shopOrderPaymentReturn == null) {
|
|
|
-// log.error("从订单流水表没有查到数据----------" + info.getOutTradeNo());
|
|
|
-// return ResponseResultUtil.error("从订单流水表没有查到数据----------" + info.getOutTradeNo());
|
|
|
-// }
|
|
|
-// // // 230918 在生成 微信码时候插入 待支付的 数据
|
|
|
-// BigDecimal payFee = new BigDecimal(info.getTotalFee()).divide(new BigDecimal(100), 2, RoundingMode.HALF_EVEN);
|
|
|
-// log.info("微信扫码和插入待支付订单的钱不符-------" + shopOrderPaymentReturn.getAmount()
|
|
|
-// + "--" + payFee);
|
|
|
-// if (shopOrderPaymentReturn.getAmount().compareTo(payFee) != 0) {
|
|
|
-// log.error("微信扫码和插入待支付订单的钱不符-------" + shopOrderPaymentReturn.getAmount()
|
|
|
-// + "--" + payFee);
|
|
|
-// return CommonResult.fail("微信扫码和插入待支付订单的钱不符-------" + shopOrderPaymentReturn.getAmount()
|
|
|
-// + "--" + payFee);
|
|
|
-//
|
|
|
-// }
|
|
|
- //判断是否已经做支付处理
|
|
|
-// log.info("判断是否已经做支付处理----------" + shopOrderPaymentReturn.getPaystatus().toString());
|
|
|
-
|
|
|
+ UserLogin byWxid = userMapper.getByWxid(info.getOpenid());
|
|
|
+ log.info("微信用户----------" + byWxid);
|
|
|
+ // 插入 待支付的 数据
|
|
|
+ BigDecimal payFee = new BigDecimal(info.getTotalFee()).divide(new BigDecimal(100), 2, RoundingMode.HALF_EVEN);
|
|
|
+ Integer cpid = 1;
|
|
|
+ // 交易记录
|
|
|
+ Trade trade = new Trade();
|
|
|
+ trade.setTradeCode(info.getTransactionId()); // 微信交易单号
|
|
|
+ trade.setCpId(cpid);
|
|
|
+ trade.setWxUserId(byWxid.getUserId());
|
|
|
+ trade.setTradeAmount(payFee);
|
|
|
+ trade.setTradeTime(null);
|
|
|
+ trade.setTradeType("功能单买");
|
|
|
+ trade.setBuyLong("1年");
|
|
|
+ trade.setBuyBeginDate(LocalDate.now());
|
|
|
+ trade.setBuyEndDate(LocalDate.now().plusYears(1));
|
|
|
+ trade.setWxGradeCoNo(info.getTransactionId());// 微信交易单号
|
|
|
+ trade.setExtendDays(365);
|
|
|
+ tradeMapper.insert(trade);
|
|
|
+ log.info("交易记录----------" + trade);
|
|
|
+// 企业
|
|
|
+ Company c = new Company();
|
|
|
+ c.setCpId(cpid);
|
|
|
+ // 结束日期
|
|
|
+ c.setEndDate(LocalDate.now().plusYears(1));
|
|
|
+ companyMapper.updateById(c);
|
|
|
+ log.info("交易记录-企业更新----------" + c);
|
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
|
|