Răsfoiți Sursa

银行卡绑卡、解绑、重新绑定、历史轨迹

Qchen 2 ani în urmă
părinte
comite
2bc71b25ad

+ 22 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserBankController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.controller;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
 import com.ydtech.modules.base.controller.BaseController;
@@ -40,6 +41,21 @@ public class SysUserBankController extends BaseController {
         return HttpResult.ok("新增成功");
     }
 
+    @PostMapping("/unbind")
+    @ApiOperation("解绑银行卡")
+    public HttpResult<Object> unbind(@RequestBody SysUserBankCard sysUserBankCard) {
+        bankCardService.unbind(sysUserBankCard);
+        return HttpResult.ok("解绑成功");
+    }
+
+    @PostMapping("/rebind")
+    @ApiOperation("重新绑定银行卡")
+    public HttpResult<Object> rebind(@RequestBody SysUserBankCard sysUserBankCard) {
+        bankCardService.rebind(sysUserBankCard);
+        return HttpResult.ok("重新绑定成功");
+    }
+
+
 
     @DeleteMapping(value = "/{id}")
     @ApiOperation("删除")
@@ -81,4 +97,10 @@ public class SysUserBankController extends BaseController {
     }
 
 
+    @PostMapping("/getUserBankCardHistoryList")
+    @ApiOperation("银行卡历史轨迹")
+    public HttpResult<List<SysUserBankCardHistory>> getUserBankCardHistoryList(@RequestBody SysUserBankCardHistory sysUserBankCardHistory) {
+        return bankCardService.getUserBankCardHistoryList(sysUserBankCardHistory);
+    }
+
 }

+ 8 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserBankCardHistoryMapper.java

@@ -0,0 +1,8 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
+
+public interface SysUserBankCardHistoryMapper extends BaseMapper<SysUserBankCardHistory> {
+}

+ 3 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserBankCardMapper.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,6 +23,8 @@ public interface SysUserBankCardMapper extends BaseMapper<SysUserBankCard> {
     SysUserBankCard getByBankNumber(@Param("fromBankCardId") String bankNumber);
 
     List<SysUserBankCard> getUserBankList(@Param("sysUserBankCard") SysUserBankCard sysUserBankCard);
+
+    List<SysUserBankCardHistory> getUserBankCardHistoryList(@Param("sysUserBankCardHistory") SysUserBankCardHistory sysUserBankCardHistory);
 }
 
 

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserBankCard.java

@@ -84,6 +84,9 @@ public class SysUserBankCard implements Serializable {
     @TableField(value = "audit_user_name")
     private String auditUserName;
 
+    @TableField(value = "del_flag")
+    private String delFlag;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }

+ 49 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserBankCardHistory.java

@@ -0,0 +1,49 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户银行卡轨迹表
+ * @TableName sys_user_bank_card_history
+ *
+ */
+
+
+@TableName(value ="sys_user_bank_card_history")
+@Data
+public class SysUserBankCardHistory implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 银行卡号
+     */
+    @TableField(value = "bank_number")
+    private String bankNumber;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+     * 操作类型
+     */
+    @TableField(value = "type")
+    private String type;
+
+    /**
+     * 操作人
+     */
+    private String creator;
+}

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserBankCardVO.java

@@ -56,6 +56,10 @@ public class SysUserBankCardVO {
 
     @TableField(value = "remark")
     private String remark;
+
+    @TableField(value = "del_flag")
+    private String delFlag;
+
     @ApiModelProperty(value = "每页页数")
     @Min(value = 20, message = "页数最小为20")
     @Max(value = 100, message = "页数最大为100")

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserBankCardHistoryService.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
+
+public interface SysUserBankCardHistoryService extends IService<SysUserBankCardHistory> {
+}

+ 6 - 1
src/main/java/com/ydtech/modules/admin/service/SysUserBankCardService.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.order.entity.BasePageResult;
 
@@ -23,6 +24,10 @@ public interface SysUserBankCardService extends IService<SysUserBankCard> {
 
     void deleteSysUserBank(Long id);
 
+    void unbind(SysUserBankCard sysUserBankCard);
+
+    void rebind(SysUserBankCard sysUserBankCard);
+
     void uodate(SysUserBankCardVO sysUserBankCardVO);
 
     HttpResult<SysUserBankCardVO>   getByUserId(String userId);
@@ -35,5 +40,5 @@ public interface SysUserBankCardService extends IService<SysUserBankCard> {
 
     HttpResult<List<SysUserBankCard>> getUserBankList(SysUserBankCard sysUserBankCard);
 
-
+    HttpResult<List<SysUserBankCardHistory>> getUserBankCardHistoryList(SysUserBankCardHistory sysUserBankCardHistory);
 }

+ 12 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserBankCardHistoryServiceImpl.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import com.ydtech.modules.admin.dao.SysUserBankCardHistoryMapper;
+import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
+import com.ydtech.modules.admin.service.SysUserBankCardHistoryService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysUserBankCardHistoryServiceImpl extends ServiceImpl<SysUserBankCardHistoryMapper, SysUserBankCardHistory> implements SysUserBankCardHistoryService {
+}

+ 102 - 20
src/main/java/com/ydtech/modules/admin/service/impl/SysUserBankCardServiceImpl.java

@@ -7,8 +7,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysUserBankCardMapper;
+import com.ydtech.modules.admin.model.SysDeptAccount;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
+import com.ydtech.modules.admin.service.SysUserBankCardHistoryService;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -34,12 +37,18 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
     @Resource
     private SysUserBankCardService sysUserBankCardService;
 
+    @Resource
+    private SysUserBankCardHistoryService sysUserBankCardHistoryService;
+
     @Override
     public BasePageResult<SysUserBankCard> queryByVo(SysUserBankCardVO sysUserBankCardVO) {
         Page<SysUserBankCard> page = new Page<>(sysUserBankCardVO.getPageNum(), sysUserBankCardVO.getPageSize());
 
 
         LambdaQueryWrapper<SysUserBankCard> wrapper = new LambdaQueryWrapper<>();
+        if (StringUtils.isNotEmpty(sysUserBankCardVO.getUserId())) {
+            wrapper.eq(SysUserBankCard::getUserId, sysUserBankCardVO.getUserId());
+        }
         if (StringUtils.isNotEmpty(sysUserBankCardVO.getBankNumber())) {
             wrapper.eq(SysUserBankCard::getBankNumber, sysUserBankCardVO.getBankNumber());
         }
@@ -63,9 +72,28 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
     @Override
     @Transactional
     public boolean inert(SysUserBankCardVO sysUserBankCardVO) {
-        SysUserBankCard sysUserBankCard = new SysUserBankCard();
-        BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
-        return super.save(sysUserBankCard);
+        SysUserBankCard findSysUserBankCard = sysUserBankCardService.getOne(new LambdaQueryWrapper<SysUserBankCard>()
+                .eq(SysUserBankCard::getBankNumber, sysUserBankCardVO.getBankNumber()));
+        if (findSysUserBankCard != null) {
+            findSysUserBankCard.setDelFlag("0");
+            findSysUserBankCard.setAuditStatus("0");
+            return sysUserBankCardService.updateById(findSysUserBankCard);
+        }else {
+            SysUserBankCard sysUserBankCard = new SysUserBankCard();
+            BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
+            sysUserBankCard.setDelFlag("0");
+            sysUserBankCard.setCreateTime(new Date());
+            sysUserBankCard.setAuditStatus("0");
+            sysUserBankCard.setAuditUserName(null);
+            sysUserBankCard.setAuditUserId(null);
+            sysUserBankCard.setAuditTime(null);
+            SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
+            sysUserBankCardHistory.setBankNumber(sysUserBankCardVO.getBankNumber());
+            sysUserBankCardHistory.setType("add");
+            sysUserBankCardHistory.setCreateTime(new Date());
+            sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
+            return sysUserBankCardHistoryService.save(sysUserBankCardHistory);
+        }
     }
 
     @Override
@@ -74,6 +102,36 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
         AssertionUtils.isSucceed(b, "删除失败");
     }
 
+    @Override
+    public void unbind(SysUserBankCard sysUserBankCard) {
+        SysUserBankCard sub = sysUserBankCardService.getById(sysUserBankCard.getId());
+        if (!sub.getAuditStatus().equals("1")) {
+            throw new SystemException("该卡审核还未通过,不可解绑");
+        }
+        sub.setDelFlag(sysUserBankCard.getDelFlag());
+        sysUserBankCardService.updateById(sub);
+        SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
+        sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
+        sysUserBankCardHistory.setType("unbind");
+        sysUserBankCardHistory.setCreateTime(new Date());
+        sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
+        sysUserBankCardHistoryService.save(sysUserBankCardHistory);
+    }
+
+    @Override
+    public void rebind(SysUserBankCard sysUserBankCard) {
+        SysUserBankCard sub = sysUserBankCardService.getOne(new LambdaQueryWrapper<SysUserBankCard>()
+                .eq(SysUserBankCard::getBankNumber, sysUserBankCard.getBankNumber()));
+        sub.setDelFlag(sysUserBankCard.getDelFlag());
+        sysUserBankCardService.updateById(sub);
+        SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
+        sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
+        sysUserBankCardHistory.setType("rebind");
+        sysUserBankCardHistory.setCreateTime(new Date());
+        sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
+        sysUserBankCardHistoryService.save(sysUserBankCardHistory);
+    }
+
     @Override
     public void uodate(SysUserBankCardVO sysUserBankCardVO) {
         SysUserBankCard sysUserBankCard = new SysUserBankCard();
@@ -94,30 +152,32 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
     @Override
     @Transactional
     public void insertByBankNumber(SysUserBankCardVO sysUserBankCardVO) {
-        long count = sysUserBankCardService.count(new QueryWrapper<SysUserBankCard>()
-                .eq("bank_number", sysUserBankCardVO.getBankNumber()));
-        if (count > 0) {
-            throw new SystemException("该银行卡号已被绑定");
-        }
-        String id = BaseController.getUser().getId();
-        if (StringUtils.isNotEmpty(id)) {
-            sysUserBankCardVO.setUserId(id);
+        SysUserBankCard findSysUserBankCard = sysUserBankCardService.getOne(new LambdaQueryWrapper<SysUserBankCard>()
+                .eq(SysUserBankCard::getBankNumber, sysUserBankCardVO.getBankNumber()));
+        if (findSysUserBankCard != null) {
+            findSysUserBankCard.setDelFlag("0");
+            findSysUserBankCard.setAuditStatus("0");
+            sysUserBankCardService.updateById(findSysUserBankCard);
+        }else {
+            String id = BaseController.getUser().getId();
+            if (StringUtils.isNotEmpty(id)) {
+                sysUserBankCardVO.setUserId(id);
+            }
+            SysUserBankCard sysUserBankCard = new SysUserBankCard();
+
+            BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
+            sysUserBankCard.setCreateTime(new Date());
+            sysUserBankCard.setAuditStatus("0"); //待审核
+            sysUserBankCard.setUserName(BaseController.getUser().getName());
+            baseMapper.insert(sysUserBankCard);
         }
-        SysUserBankCard sysUserBankCard = new SysUserBankCard();
-
-        BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
-        sysUserBankCard.setCreateTime(new Date());
-        sysUserBankCard.setAuditStatus("0"); //待审核
-        sysUserBankCard.setUserName(BaseController.getUser().getName());
-
-        baseMapper.insert(sysUserBankCard);
     }
 
     @Override
     @Transactional
     public void auditByBankNumber(SysUserBankCardVO sysUserBankCardVO) {
         SysUserBankCard sysUserBankCard =  sysUserBankCardService.getById(sysUserBankCardVO.getId());
-        if(sysUserBankCard!=null && StringUtils.isNotBlank(sysUserBankCard.getAuditStatus()) && !"0".equals(sysUserBankCard.getAuditStatus())){
+        if(sysUserBankCard != null && StringUtils.isNotBlank(sysUserBankCard.getAuditStatus()) && !"0".equals(sysUserBankCard.getAuditStatus())){
             throw new SystemException("账户已审核不能重复审核");
         }
         sysUserBankCard.setAuditStatus(sysUserBankCardVO.getAuditStatus());
@@ -126,6 +186,22 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
         sysUserBankCard.setAuditUserName(BaseController.getUser().getName());
         sysUserBankCard.setRemark(sysUserBankCardVO.getRemark());
         sysUserBankCardService.updateById(sysUserBankCard);
+        if (sysUserBankCardVO.getAuditStatus().equals("1")) {
+            SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
+            sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
+            sysUserBankCardHistory.setType("pass");
+            sysUserBankCardHistory.setCreateTime(new Date());
+            sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
+            sysUserBankCardHistoryService.save(sysUserBankCardHistory);
+        }
+        if (sysUserBankCardVO.getAuditStatus().equals("2")) {
+            SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
+            sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
+            sysUserBankCardHistory.setType("refuse");
+            sysUserBankCardHistory.setCreateTime(new Date());
+            sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
+            sysUserBankCardHistoryService.save(sysUserBankCardHistory);
+        }
     }
 
     @Override
@@ -134,6 +210,12 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
         List<SysUserBankCard> sysUserBankCardList = baseMapper.getUserBankList(sysUserBankCard);
         return HttpResult.ok("success", sysUserBankCardList);
     }
+
+    @Override
+    public HttpResult<List<SysUserBankCardHistory>> getUserBankCardHistoryList(SysUserBankCardHistory sysUserBankCardHistory) {
+        List<SysUserBankCardHistory> sysUserBankCardHistoryList = baseMapper.getUserBankCardHistoryList(sysUserBankCardHistory);
+        return HttpResult.ok("success", sysUserBankCardHistoryList);
+    }
 }
 
 

+ 5 - 1
src/main/resources/mapper/modules/admin/SysUserAccountMapper.xml

@@ -31,9 +31,11 @@
     </resultMap>
 
     <resultMap id="sysUserAccountCardList" type="com.ydtech.modules.admin.model.po.SysUserBankCard">
+        <id property="id" column="id" jdbcType="VARCHAR"/>
         <result property="bankNumber" column="bank_number" jdbcType="VARCHAR"/>
         <result property="bankAccount" column="bank_account" jdbcType="VARCHAR"/>
         <result property="bankAddress" column="bank_address" jdbcType="VARCHAR"/>
+        <result property="delFlag" column="del_flag" jdbcType="VARCHAR"/>
     </resultMap>
 
     <sql id="Base_Column_List">
@@ -120,9 +122,11 @@
         b.dept_id  as  deptId,
         b.name  as  name,
         sd.name  as  deptName,
+        c.id,
         c.bank_number,
         c.bank_account,
         c.bank_address,
+        c.del_flag,
         a.sum_amount,
         a.sum_amount_withdrawal,
         a.sum_amount_account,
@@ -131,7 +135,7 @@
         sys_user_account a
         left join   sys_user  b  on  a.user_id  = b.id
         left join   sys_dept  sd  on  sd.id =b.dept_id
-        left join   sys_user_bank_card c on c.user_id = a.user_id and c.audit_status = '1'
+        left join   sys_user_bank_card c on c.user_id = a.user_id
         <where>
             1=1
             <if test="sysUserAccountVo.userId != null and sysUserAccountVo.userId != ''">

+ 21 - 1
src/main/resources/mapper/modules/admin/SysUserBankCardMapper.xml

@@ -57,7 +57,8 @@
                   a.is_default as "isDefault",
                   a.user_id as "userId",
                   a.audit_status as "auditStatus",
-                  a.remark as "remark"
+                  a.remark as "remark",
+                  a.del_flag as "delFlag"
             from  sys_user_bank_card a
             <where>
             1=1
@@ -67,8 +68,27 @@
                 <if test="sysUserBankCard.auditStatus !=null and  sysUserBankCard.auditStatus  !=''">
                      and a.audit_status =#{sysUserBankCard.auditStatus}
                 </if>
+                <if test="sysUserBankCard.delFlag !=null and  sysUserBankCard.delFlag  !=''">
+                    and a.del_flag =#{sysUserBankCard.delFlag}
+                </if>
             </where>
+    </select>
 
 
+    <select id="getUserBankCardHistoryList" resultType="com.ydtech.modules.admin.model.po.SysUserBankCardHistory">
+        select
+        a.id as "id",
+        a.bank_number as "bankNumber",
+        a.create_time as "createTime",
+        a.type as "type",
+        a.creator as "creator"
+        from  sys_user_bank_card_history a
+        <where>
+            1=1
+            <if test="sysUserBankCardHistory.bankNumber !=null and  sysUserBankCardHistory.bankNumber  !=''">
+                and a.bank_number =#{sysUserBankCardHistory.bankNumber}
+            </if>
+        </where>
+        order by a.create_time asc
     </select>
 </mapper>