Browse Source

Merge remote-tracking branch 'origin/dev' into dev

yzc 2 years ago
parent
commit
45a736c983

+ 7 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/WalletController.java

@@ -9,6 +9,7 @@ import com.sckw.payment.model.vo.req.page.RefundPage;
 import com.sckw.payment.service.WalletService;
 import jakarta.annotation.Resource;
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -37,6 +38,12 @@ public class WalletController {
         return HttpResult.ok(walletService.createUser(createUserReq));
     }
 
+    @GetMapping("userInfo")
+    public HttpResult userInfo(@NotBlank(message = "uid不能为空") @RequestParam("uid") String uid,
+                               @NotBlank(message = "channel不能为空")@RequestParam("channel") String channel) {
+        return HttpResult.ok(walletService.userInfo(uid,channel));
+    }
+
     /**
      * 钱包总览信息
      *

+ 13 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpWalletPrepayMapper.java

@@ -0,0 +1,13 @@
+package com.sckw.payment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.payment.model.KwpWalletPrepay;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @date 2023-09-22 15:49:51
+* @author xucaiqin
+*/
+@Mapper
+public interface KwpWalletPrepayMapper extends BaseMapper<KwpWalletPrepay> {
+}

+ 81 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/KwpWalletPrepay.java

@@ -0,0 +1,81 @@
+package com.sckw.payment.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @date 2023-09-22 15:49:51
+ * @author xucaiqin
+ */
+
+/**
+ * 预付操作
+ */
+@Data
+@TableName(value = "kwp_wallet_prepay")
+public class KwpWalletPrepay {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+
+    /**
+     * 中台订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 操作 1-新增预付 2-预付追加
+     */
+    @TableField(value = "`action`")
+    private Integer action;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+    /**
+     * 1-已提交 2-预付成功 3-预付失败
+     */
+    @TableField(value = "`status`")
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_by")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人
+     */
+    @TableField(value = "update_by")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "update_time")
+    private LocalDateTime updateTime;
+
+    /**
+     * 0-正常 1-删除
+     */
+    @TableField(value = "del_flag")
+    private Integer delFlag;
+}

+ 1 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/PayCenterEnum.java

@@ -14,6 +14,7 @@ public enum PayCenterEnum {
     MEMBER_WALLET("/v1/member/wallet", "钱包清单"),
     MEMBER_WALLET_V2("/v2/member/wallet", "钱包清单v2"),
     MEMBER_GENERAL("/v2/wallet/general", "总览信息"),
+    USER("/v2/member/user", "会员注册信息"),
     WITHDRAW_DETAIL("/v2/wallet/withdraw/detail", "提现详情"),
     //    WITHDRAW_DETAIL("/v1/wallet/withdraw/detail", "提现详情"), 原接口
     //    WITHDRAW_INDEX("/v1/wallet/withdraw/index", "提现清单"), 原接口

+ 49 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/PrePayEnum.java

@@ -0,0 +1,49 @@
+package com.sckw.payment.model.constant;
+
+import java.util.Objects;
+
+/**
+ * 预付操作枚举
+ *
+ * @author xucaiqin
+ * @date 2023-07-11 12:00:52
+ */
+public enum PrePayEnum {
+    ADD(1, "新增预付", "新增预付"),
+    APPEND(2, "预付追加", "预付追加");
+
+    private final int status;
+    private final String desc;
+    private final String label;
+
+    PrePayEnum(int status, String desc, String label) {
+        this.status = status;
+        this.label = label;
+        this.desc = desc;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public static String getByStatus(Integer status) {
+        if (Objects.isNull(status)) {
+            return "";
+        }
+        for (PrePayEnum value : PrePayEnum.values()) {
+            if (value.getStatus() == status) {
+                return value.getDesc();
+            }
+        }
+        return "";
+    }
+
+}

+ 57 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpWalletPrepayService.java

@@ -0,0 +1,57 @@
+package com.sckw.payment.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.payment.dao.KwpWalletPrepayMapper;
+import com.sckw.payment.model.KwpWalletPrepay;
+import com.sckw.payment.model.constant.PrePayEnum;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Objects;
+
+/**
+ * @author xucaiqin
+ * @date 2023-09-22 15:49:51
+ */
+@Service
+@RequiredArgsConstructor
+public class KwpWalletPrepayService {
+
+    private final KwpWalletPrepayMapper kwpWalletPrepayMapper;
+
+    /**
+     * 保存预付订单
+     *
+     * @param orderNo
+     */
+    public void savePrepay(String orderNo, PrePayEnum prePayEnum) {
+        KwpWalletPrepay kwpWalletPrepay = new KwpWalletPrepay();
+        kwpWalletPrepay.setId(new IdWorker(NumberConstant.ONE).nextId());
+        kwpWalletPrepay.setOrderNo(orderNo);
+        kwpWalletPrepay.setAction(prePayEnum.getStatus());
+        kwpWalletPrepay.setRemark(prePayEnum.getDesc());
+        kwpWalletPrepay.setStatus(2);
+        kwpWalletPrepay.setCreateBy(LoginUserHolder.getUserId());
+        kwpWalletPrepay.setCreateTime(LocalDateTime.now());
+        kwpWalletPrepay.setUpdateBy(LoginUserHolder.getUserId());
+        kwpWalletPrepay.setUpdateTime(LocalDateTime.now());
+        kwpWalletPrepay.setDelFlag(Global.UN_DELETED);
+        kwpWalletPrepayMapper.insert(kwpWalletPrepay);
+    }
+
+    public Integer getAction(String orderNo) {
+        LambdaQueryWrapper<KwpWalletPrepay> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwpWalletPrepay::getDelFlag, Global.UN_DELETED)
+                .eq(KwpWalletPrepay::getOrderNo, orderNo).last("limit 1");
+        KwpWalletPrepay kwpWalletPrepay = kwpWalletPrepayMapper.selectOne(wrapper);
+        if(Objects.nonNull(kwpWalletPrepay)){
+            return kwpWalletPrepay.getAction();
+        }
+        return null;
+    }
+}

+ 15 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/PayCenterService.java

@@ -194,6 +194,21 @@ public class PayCenterService {
         });
     }
 
+    /**
+     * 会员注册信息
+     *
+     * @param uid
+     * @return
+     */
+    public R<JSONObject> user(String uid,ChannelEnum channelEnum) {
+        String sync = getHttp(PayCenterEnum.USER, new HashMap<>() {{
+            put("uid", uid);
+            put("channel", channelEnum);
+        }});
+        return JSONObject.parseObject(sync, new TypeReference<>() {
+        });
+    }
+
     /**
      * 钱包清单
      *

+ 33 - 4
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/WalletService.java

@@ -24,6 +24,7 @@ import com.sckw.payment.job.AsyncPool;
 import com.sckw.payment.model.KwpWalletRefund;
 import com.sckw.payment.model.KwpWalletRelation;
 import com.sckw.payment.model.KwpWalletTransfer;
+import com.sckw.payment.model.constant.PrePayEnum;
 import com.sckw.payment.model.constant.RefundEnum;
 import com.sckw.payment.model.constant.TransferEnum;
 import com.sckw.payment.model.constant.WalletChannelEnum;
@@ -74,6 +75,7 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class WalletService {
     private final PayCenterService payCenterService;
+    private final KwpWalletPrepayService kwpWalletPrepayService;
     private final KwpWalletRelationService walletRelationService;
     private final WalletOrderService walletOrderService;
     private final KwpWalletRefundMapper kwpWalletRefundMapper;
@@ -992,6 +994,9 @@ public class WalletService {
         if (!orderR.getStatus()) {
             throw new BusinessException(StringUtils.isNotBlank(orderR.getMsg()) ? orderR.getMsg() : "预付失败");
         }
+        if (Objects.nonNull(orderR.getData())) {
+            kwpWalletPrepayService.savePrepay(orderR.getData().getOrderNo(), PrePayEnum.ADD);
+        }
         return orderR.getData();
     }
 
@@ -1014,6 +1019,9 @@ public class WalletService {
         if (!orderR.getStatus()) {
             throw new BusinessException(StringUtils.isNotBlank(orderR.getMsg()) ? orderR.getMsg() : "预付失败");
         }
+        if (Objects.nonNull(orderR.getData())) {
+            kwpWalletPrepayService.savePrepay(orderR.getData().getOrderNo(), PrePayEnum.APPEND);
+        }
         return orderR.getData();
     }
 
@@ -1613,8 +1621,9 @@ public class WalletService {
                     prePayDetailVo.setUidName(getFirmName(moneyPage.getUid()));
                     prePayDetailVo.setFilter(moneyPage.getFilter());
                     prePayDetailVo.setFilterName(getFirmName(moneyPage.getFilter()));
-                    prePayDetailVo.setStatus(a.getStatus());
-                    prePayDetailVo.setStatusLabel(a.getStatusLabel());
+                    Integer action = kwpWalletPrepayService.getAction(a.getOrderNo());
+                    prePayDetailVo.setStatus(action);
+                    prePayDetailVo.setStatusLabel(PrePayEnum.getByStatus(action));
                     prePayDetailVo.setMoney(prePayDetailVo.smallMoney(a.getMoney()));
                     prePayDetailVo.setRemark(a.getRemarks());
                     prePayDetailVo.setCreateTime(a.getCreateTime());
@@ -1656,8 +1665,9 @@ public class WalletService {
                     prePayDetailVo.setUidName(getFirmName(moneyPage.getUid()));
                     prePayDetailVo.setFilter(moneyPage.getFilter());
                     prePayDetailVo.setFilterName(getFirmName(moneyPage.getFilter()));
-                    prePayDetailVo.setStatus(a.getStatus());
-                    prePayDetailVo.setStatusLabel(a.getStatusLabel());
+                    Integer action = kwpWalletPrepayService.getAction(a.getOrderNo());
+                    prePayDetailVo.setStatus(action);
+                    prePayDetailVo.setStatusLabel(PrePayEnum.getByStatus(action));
                     prePayDetailVo.setMoney(prePayDetailVo.smallMoney(a.getMoney()));
                     prePayDetailVo.setRemark(a.getRemarks());
                     prePayDetailVo.setCreateTime(a.getCreateTime());
@@ -1669,6 +1679,25 @@ public class WalletService {
         return new PageRes<>(moneyPage.getPage(), moneyPage.getPageSize(), 0, 0, new ArrayList<>());
     }
 
+    /**
+     * 会员注册信息
+     *
+     * @param uid
+     * @param channel
+     * @return
+     */
+    public Object userInfo(String uid, String channel) {
+        ChannelEnum channelEnum = ChannelEnum.getByChannel(channel);
+        if (Objects.isNull(channelEnum)) {
+            throw new BusinessException("支付通道异常");
+        }
+        R<JSONObject> user = payCenterService.user(uid, channelEnum);
+        if (!user.getStatus()) {
+            throw new BusinessException(StringUtils.isNotBlank(user.getMsg()) ? user.getMsg() : "会员信息不存在");
+        }
+        return user.getData();
+    }
+
     /**
      * 退款处理
      *

+ 23 - 0
sckw-modules/sckw-payment/src/main/resources/mapper/KwpWalletPrepayMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.payment.dao.KwpWalletPrepayMapper">
+  <resultMap id="BaseResultMap" type="com.sckw.payment.model.KwpWalletPrepay">
+    <!--@mbg.generated-->
+    <!--@Table kwp_wallet_prepay-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="action" jdbcType="BOOLEAN" property="action" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="create_by" jdbcType="BIGINT" property="createBy" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_by" jdbcType="BIGINT" property="updateBy" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, order_no, `action`, remark, `status`, create_by, create_time, update_by, update_time, 
+    del_flag
+  </sql>
+</mapper>