소스 검색

交易记录

姜永辉 2 년 전
부모
커밋
9d942315e5

+ 2 - 2
src/main/java/com/dk/oauth/entity/Company.java

@@ -93,9 +93,9 @@ public class Company extends PageInfo<Company> implements Serializable {
      */
     @Excel(name = "结束日期")
     @ApiModelProperty(value = "结束日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime endDate;
+    private LocalDate endDate;
 
 
     /**

+ 0 - 12
src/main/java/com/dk/oauth/mapper/TradeMapper.java

@@ -13,12 +13,6 @@ import java.util.List;
  * @date : 2024-2-18 15:39
  */
 public interface TradeMapper extends BaseMapper<Trade> {
-    /**
-     * @desc : 通过ID查询
-     * @author : 洪旭东
-     * @date : 2024-02-18 15:21
-     */
-    TradeResponse getByCpId(@Param("cpId") Integer cpId);
 
     int insertBatch(@Param("list") List<Trade> list);
 
@@ -33,11 +27,5 @@ public interface TradeMapper extends BaseMapper<Trade> {
      */
     Trade selectById(@Param("cpId") Integer cpId);
 
-    /**
-     * @desc : 获取商户的地址服务
-     * @author : 姜永辉
-     * @date : 2024-02-18 15:21
-     */
-    String selectServiceAllot(@Param("gradeCode") String gradeCode);
 
 }

+ 48 - 25
src/main/java/com/dk/oauth/service/wxapi/basic/WechatPayService.java

@@ -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();
     }