Browse Source

提现到银行卡

Althars123 3 years ago
parent
commit
c256efcf22

+ 51 - 0
twzd-admin/src/main/java/com/miaxis/app/controller/wx/WxExtractBankController.java

@@ -0,0 +1,51 @@
+package com.miaxis.app.controller.wx;
+
+import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.common.utils.SecurityUtils;
+import com.miaxis.wx.domain.WxExtractBank;
+import com.miaxis.wx.service.IWxExtractBankService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 【微信提现银行卡】Controller
+ *
+ * @author miaxis
+ * @date 2022-03-07
+ */
+@RestController
+@RequestMapping(Constants.OPEN_PREFIX +"/wx/bank")
+@Api(tags={"【H5-微信提现银行卡】"})
+public class WxExtractBankController extends BaseController{
+    @Autowired
+    private IWxExtractBankService wxExtractBankService;
+
+    /**
+     * 查询微信提现银行卡列表
+     */
+    @ApiOperation("查询微信提现银行卡列表")
+        @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+    })
+    @GetMapping("/list")
+    public ResponsePageInfo<WxExtractBank> list(){
+        startPage();
+        WxExtractBank wxExtractBank = new WxExtractBank();
+        wxExtractBank.setOpenid(SecurityUtils.getLoginUser().getStudent().getOpenid());
+        List<WxExtractBank> list = wxExtractBankService.selectWxExtractBankList(wxExtractBank);
+        return toResponsePageInfo(list);
+    }
+
+
+}

+ 2 - 1
twzd-admin/src/main/java/com/miaxis/app/controller/wx/WxExtractController.java

@@ -1,5 +1,6 @@
 package com.miaxis.app.controller.wx;
 
+import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.page.ResponsePageInfo;
@@ -28,7 +29,7 @@ import java.util.List;
  * @date 2022-01-24
  */
 @RestController
-@RequestMapping("/wx/extract")
+@RequestMapping(Constants.OPEN_PREFIX +"/wx/extract")
 @Api(tags={"【H5-微信提现】"})
 public class WxExtractController extends BaseController{
     @Autowired

+ 102 - 0
twzd-service/src/main/java/com/miaxis/wx/domain/WxExtractBank.java

@@ -0,0 +1,102 @@
+package com.miaxis.wx.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.annotation.Excel;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+/**
+ * 微信提现银行卡对象 wx_extract_bank
+ *
+ * @author miaxis
+ * @date 2022-03-07
+ */
+@Data
+@TableName("wx_extract_bank")
+@ApiModel(value = "WxExtractBank", description = "微信提现银行卡对象 wx_extract_bank")
+public class WxExtractBank extends BaseBusinessEntity{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /** 用户唯一标识(微信) */
+    @Excel(name = "用户唯一标识(微信)")
+    @TableField("openid")
+    @ApiModelProperty(value = "用户唯一标识(微信)")
+    private String openid;
+
+    /** 真实姓名 */
+    @Excel(name = "真实姓名")
+    @TableField("enc_true_name")
+    @ApiModelProperty(value = "真实姓名")
+    private String encTrueName;
+
+    /** 银行编号 */
+    @Excel(name = "银行编号")
+    @TableField("bank_code")
+    @ApiModelProperty(value = "银行编号")
+    private Integer bankCode;
+
+    /** 银行卡号 */
+    @Excel(name = "银行卡号")
+    @TableField("enc_bank_no")
+    @ApiModelProperty(value = "银行卡号")
+    private String encBankNo;
+
+    public void setId(Long id){
+        this.id = id;
+    }
+
+    public Long getId(){
+        return id;
+    }
+    public void setOpenid(String openid){
+        this.openid = openid;
+    }
+
+    public String getOpenid(){
+        return openid;
+    }
+    public void setEncTrueName(String encTrueName){
+        this.encTrueName = encTrueName;
+    }
+
+    public String getEncTrueName(){
+        return encTrueName;
+    }
+    public void setBankCode(Integer bankCode){
+        this.bankCode = bankCode;
+    }
+
+    public Integer getBankCode(){
+        return bankCode;
+    }
+    public void setEncBankNo(String encBankNo){
+        this.encBankNo = encBankNo;
+    }
+
+    public String getEncBankNo(){
+        return encBankNo;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("openid", getOpenid())
+            .append("encTrueName", getEncTrueName())
+            .append("bankCode", getBankCode())
+            .append("encBankNo", getEncBankNo())
+            .append("createTime", getCreateTime())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 1 - 1
twzd-service/src/main/java/com/miaxis/wx/dto/WxExtractBankDTO.java

@@ -8,7 +8,7 @@ public class WxExtractBankDTO {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "银行编号",required = true)
-    private String bankCode;
+    private Integer bankCode;
 
     @ApiModelProperty(value = "银行卡",required = true)
     private String encBankNo;

+ 22 - 0
twzd-service/src/main/java/com/miaxis/wx/mapper/WxExtractBankMapper.java

@@ -0,0 +1,22 @@
+package com.miaxis.wx.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.wx.domain.WxExtractBank;
+
+/**
+ * 微信提现银行卡Mapper接口
+ *
+ * @author miaxis
+ * @date 2022-03-07
+ */
+public interface WxExtractBankMapper extends BaseMapper<WxExtractBank> {
+    /**
+     * 查询微信提现银行卡列表
+     *
+     * @param wxExtractBank 微信提现银行卡
+     * @return 微信提现银行卡集合
+     */
+    public List<WxExtractBank> selectWxExtractBankList(WxExtractBank wxExtractBank);
+
+}

+ 21 - 0
twzd-service/src/main/java/com/miaxis/wx/service/IWxExtractBankService.java

@@ -0,0 +1,21 @@
+package com.miaxis.wx.service;
+
+import java.util.List;
+import com.miaxis.wx.domain.WxExtractBank;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 微信提现银行卡Service接口
+ *
+ * @author miaxis
+ * @date 2022-03-07
+ */
+public interface IWxExtractBankService extends IService<WxExtractBank>{
+    /**
+     * 查询微信提现银行卡列表
+     *
+     * @param wxExtractBank 微信提现银行卡
+     * @return 微信提现银行卡集合
+     */
+    public List<WxExtractBank> selectWxExtractBankList(WxExtractBank wxExtractBank);
+}

+ 36 - 0
twzd-service/src/main/java/com/miaxis/wx/service/impl/WxExtractBankServiceImpl.java

@@ -0,0 +1,36 @@
+package com.miaxis.wx.service.impl;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.miaxis.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang3.StringUtils;
+import com.miaxis.wx.mapper.WxExtractBankMapper;
+import com.miaxis.wx.domain.WxExtractBank;
+import com.miaxis.wx.service.IWxExtractBankService;
+
+/**
+ * 微信提现银行卡Service业务层处理
+ *
+ * @author miaxis
+ * @date 2022-03-07
+ */
+@Service
+public class WxExtractBankServiceImpl extends ServiceImpl<WxExtractBankMapper, WxExtractBank> implements IWxExtractBankService {
+    @Autowired
+    private WxExtractBankMapper wxExtractBankMapper;
+
+    /**
+     * 查询微信提现银行卡列表
+     *
+     * @param wxExtractBank 微信提现银行卡
+     * @return 微信提现银行卡
+     */
+    @Override
+    public List<WxExtractBank> selectWxExtractBankList(WxExtractBank wxExtractBank){
+        return wxExtractBankMapper.selectWxExtractBankList(wxExtractBank);
+    }
+}

+ 23 - 2
twzd-service/src/main/java/com/miaxis/wx/service/impl/WxOrderServiceImpl.java

@@ -24,10 +24,12 @@ import com.miaxis.framework.web.service.TokenService;
 import com.miaxis.system.service.ISysConfigService;
 import com.miaxis.user.service.IUserInfoService;
 import com.miaxis.wx.domain.WxExtract;
+import com.miaxis.wx.domain.WxExtractBank;
 import com.miaxis.wx.domain.WxOrder;
 import com.miaxis.wx.dto.QuerySchoolOrderListDTO;
 import com.miaxis.wx.dto.WxExtractBankDTO;
 import com.miaxis.wx.mapper.WxOrderMapper;
+import com.miaxis.wx.service.IWxExtractBankService;
 import com.miaxis.wx.service.IWxExtractService;
 import com.miaxis.wx.service.IWxGzhService;
 import com.miaxis.wx.service.IWxOrderService;
@@ -38,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -88,6 +91,9 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
     @Autowired
     private IWxExtensionIncomeService wxExtensionIncomeService;
 
+    @Autowired
+    private IWxExtractBankService wxExtractBankService;
+
     @Value("${app.appid}")
     private String appid;
 
@@ -164,6 +170,9 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
     public String wxwithbankdrawal(WxExtractBankDTO dto) throws Exception {
         UserInfo student = SecurityUtils.getLoginUser().getStudent();
         UserInfo dbUserInfo = userInfoService.getById(student.getId());
+        if (dbUserInfo.getSaleType()!= 2 && dbUserInfo.getSaleType()!= 3){
+            throw new CustomException("该用户类型不支持银行卡提现");
+        }
         if (dbUserInfo.getProfitPrice() < dto.getAmount()){
             throw new CustomException("提现金额不能大于可提现金额");
         }
@@ -176,13 +185,13 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
         sortMap.put("desc","用户银行卡提现");
 
 
-        String rsa ="RSA/ECB/OAEPWITHSHA-1ANDMGF1PADDING";
+
 
         // 进行签名服务
 
         sortMap.put("enc_true_name",rsaUtils.encryptData(dto.getEncTrueName()) );
         sortMap.put("enc_bank_no",rsaUtils.encryptData(dto.getEncBankNo()));
-        sortMap.put("bank_code",dto.getBankCode());
+        sortMap.put("bank_code",dto.getBankCode().toString());
 
 
         WXPayConfig config = new WxPayConfigImpl();
@@ -205,6 +214,18 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
         wxExtract.setStatus("1");
         wxExtractService.save(wxExtract);
 
+        //如果此卡之前未存储,则加入到银行卡列表
+        List<WxExtractBank> bankList = wxExtractBankService.list(new QueryWrapper<WxExtractBank>().eq("enc_bank_no", dto.getEncBankNo()));
+        if (CollectionUtils.isEmpty(bankList)){
+            WxExtractBank wxExtractBank = new WxExtractBank();
+            wxExtractBank.setBankCode(dto.getBankCode());
+            wxExtractBank.setEncBankNo(dto.getEncBankNo());
+            wxExtractBank.setEncTrueName(dto.getEncTrueName());
+            wxExtractBank.setOpenid(SecurityUtils.getLoginUser().getStudent().getOpenid());
+            wxExtractBankService.save(wxExtractBank);
+        }
+
+
         //更新余额
         dbUserInfo.setProfitPrice(dbUserInfo.getProfitPrice()-dto.getAmount());
         userInfoService.updateById(dbUserInfo);

+ 31 - 0
twzd-service/src/main/resources/mapper/wx/WxExtractBankMapper.xml

@@ -0,0 +1,31 @@
+<?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.miaxis.wx.mapper.WxExtractBankMapper">
+
+    <resultMap type="WxExtractBank" id="WxExtractBankResult">
+        <result property="id"    column="id"    />
+        <result property="openid"    column="openid"    />
+        <result property="encTrueName"    column="enc_true_name"    />
+        <result property="bankCode"    column="bank_code"    />
+        <result property="encBankNo"    column="enc_bank_no"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectWxExtractBankVo">
+        select * from wx_extract_bank
+    </sql>
+
+    <select id="selectWxExtractBankList" parameterType="WxExtractBank" resultMap="WxExtractBankResult">
+        <include refid="selectWxExtractBankVo"/>
+        <where>
+            <if test="openid != null  and openid != ''"> and openid = #{openid}</if>
+            <if test="encTrueName != null  and encTrueName != ''"> and enc_true_name like concat('%', #{encTrueName}, '%')</if>
+            <if test="bankCode != null "> and bank_code = #{bankCode}</if>
+            <if test="encBankNo != null  and encBankNo != ''"> and enc_bank_no = #{encBankNo}</if>
+        </where>
+    </select>
+
+</mapper>