SysUserBankCardServiceImpl.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. package com.ydtech.modules.admin.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.exception.SystemException;
  8. import com.ydtech.modules.admin.components.UnionPayRequestApiComponent;
  9. import com.ydtech.modules.admin.components.request.UnionPayRequest;
  10. import com.ydtech.modules.admin.components.response.UnionPayResponse;
  11. import com.ydtech.modules.admin.dao.SysUserBankCardMapper;
  12. import com.ydtech.modules.admin.model.SysUser;
  13. import com.ydtech.modules.admin.model.po.SysUserBankCard;
  14. import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
  15. import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
  16. import com.ydtech.modules.admin.service.*;
  17. import com.ydtech.modules.base.controller.BaseController;
  18. import com.ydtech.modules.order.entity.BasePageResult;
  19. import com.ydtech.modules.protocol.utils.AssertionUtils;
  20. import org.apache.commons.lang3.StringUtils;
  21. import org.springframework.beans.BeanUtils;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import javax.annotation.Resource;
  25. import java.util.Date;
  26. import java.util.List;
  27. /**
  28. * @author Administrator
  29. * @description 针对表【sys_user_bank_card(银行卡号)】的数据库操作Service实现
  30. * @createDate 2024-03-05 11:52:30
  31. */
  32. @Service
  33. public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMapper, SysUserBankCard>
  34. implements SysUserBankCardService {
  35. @Resource
  36. private SysUserBankCardService sysUserBankCardService;
  37. @Resource
  38. private SysUserBankCardHistoryService sysUserBankCardHistoryService;
  39. @Resource
  40. private UnionPayRequestApiComponent unionPayRequestApiComponent;
  41. @Resource
  42. private SysUserService sysUserService;
  43. @Resource
  44. private SysPartnerService sysPartnerService;
  45. @Resource
  46. private SysAgencyLeaderService sysAgencyLeaderService;
  47. @Override
  48. public BasePageResult<SysUserBankCard> queryByVo(SysUserBankCardVO sysUserBankCardVO) {
  49. Page<SysUserBankCard> page = new Page<>(sysUserBankCardVO.getPageNum(), sysUserBankCardVO.getPageSize());
  50. LambdaQueryWrapper<SysUserBankCard> wrapper = new LambdaQueryWrapper<>();
  51. if (StringUtils.isNotEmpty(sysUserBankCardVO.getUserId())) {
  52. wrapper.eq(SysUserBankCard::getUserId, sysUserBankCardVO.getUserId());
  53. }
  54. if (StringUtils.isNotEmpty(sysUserBankCardVO.getBankNumber())) {
  55. wrapper.eq(SysUserBankCard::getBankNumber, sysUserBankCardVO.getBankNumber());
  56. }
  57. if (StringUtils.isNotEmpty(sysUserBankCardVO.getBankAccount())) {
  58. wrapper.eq(SysUserBankCard::getBankAccount, sysUserBankCardVO.getBankAccount());
  59. }
  60. if (StringUtils.isNotEmpty(sysUserBankCardVO.getBankAddress())) {
  61. wrapper.eq(SysUserBankCard::getBankAddress, sysUserBankCardVO.getBankAddress());
  62. }
  63. if (StringUtils.isNotEmpty(sysUserBankCardVO.getUserName())) {
  64. wrapper.eq(SysUserBankCard::getUserName, sysUserBankCardVO.getUserName());
  65. }
  66. if (sysUserBankCardVO.getAuditStatus() != null) {
  67. wrapper.eq(SysUserBankCard::getAuditStatus, sysUserBankCardVO.getAuditStatus());
  68. }
  69. wrapper.orderByAsc(SysUserBankCard::getAuditTime);
  70. Page<SysUserBankCard> insOrdersPage = page(page, wrapper);
  71. return new BasePageResult<>(sysUserBankCardVO.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  72. insOrdersPage.getRecords());
  73. }
  74. @Override
  75. public void deleteSysUserBank(Long id) {
  76. boolean b = removeById(id);
  77. AssertionUtils.isSucceed(b, "删除失败");
  78. }
  79. @Override
  80. public void unbind(SysUserBankCard sysUserBankCard) {
  81. SysUserBankCard sub = sysUserBankCardService.getById(sysUserBankCard.getId());
  82. if (!sub.getAuditStatus().equals("1")) {
  83. throw new SystemException("该卡审核还未通过,不可解绑");
  84. }
  85. sub.setDelFlag(sysUserBankCard.getDelFlag());
  86. sub.setAuditStatus(sub.getAuditStatus());
  87. sub.setAuditTime(null);
  88. sub.setAuditUserName(null);
  89. sub.setAuditUserId(null);
  90. sub.setRemark("");
  91. sysUserBankCardService.updateById(sub);
  92. SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
  93. sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
  94. sysUserBankCardHistory.setType("unbind");
  95. sysUserBankCardHistory.setCreateTime(new Date());
  96. sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
  97. sysUserBankCardHistory.setBankNumberUserId(sub.getUserId());
  98. sysUserBankCardHistoryService.save(sysUserBankCardHistory);
  99. }
  100. @Override
  101. public void rebind(SysUserBankCard sysUserBankCard) {
  102. SysUserBankCard sub = sysUserBankCardService.getOne(new LambdaQueryWrapper<SysUserBankCard>()
  103. .eq(SysUserBankCard::getBankNumber, sysUserBankCard.getBankNumber()));
  104. sub.setDelFlag(sysUserBankCard.getDelFlag());
  105. sub.setAuditStatus("0");
  106. sub.setAuditTime(null);
  107. sub.setAuditUserId(null);
  108. sub.setAuditUserName(null);
  109. sysUserBankCardService.updateById(sub);
  110. SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
  111. sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
  112. sysUserBankCardHistory.setType("rebind");
  113. sysUserBankCardHistory.setCreateTime(new Date());
  114. sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
  115. sysUserBankCardHistory.setBankNumberUserId(sub.getUserId());
  116. sysUserBankCardHistoryService.save(sysUserBankCardHistory);
  117. }
  118. @Override
  119. public void uodate(SysUserBankCardVO sysUserBankCardVO) {
  120. SysUserBankCard sysUserBankCard = new SysUserBankCard();
  121. BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
  122. super.updateById(sysUserBankCard);
  123. }
  124. @Override
  125. public HttpResult<SysUserBankCardVO> getByUserId(String userId) {
  126. return baseMapper.getByUserId(userId);
  127. }
  128. @Override
  129. public SysUserBankCard getByBankNumber(String bankNumber, String userId) {
  130. return baseMapper.getByBankNumber(bankNumber, userId);
  131. }
  132. @Override
  133. @Transactional
  134. public HttpResult<Object> insertByBankNumber(SysUserBankCardVO sysUserBankCardVO,boolean flag) {
  135. //个贷验证银行卡
  136. SysUser sysUser;
  137. String userId = sysUserBankCardVO.getUserId();
  138. // 传入userid为后台绑定
  139. if (StringUtils.isNotEmpty(userId)) {
  140. sysUser = sysUserService.getByUserId(userId);
  141. //不传为应用绑定
  142. } else {
  143. sysUser = sysUserService.getByUserId(StpUtil.getLoginId().toString());
  144. }
  145. UnionPayResponse response = new UnionPayResponse();
  146. if ("2".equals(sysUser.getManagementSource())) {
  147. UnionPayRequest request = new UnionPayRequest();
  148. request.setCardNo(sysUserBankCardVO.getBankNumber());
  149. request.setPhoneNo(sysUserBankCardVO.getPhoneNo());
  150. request.setName(sysUser.getName());
  151. request.setCertNo(sysUser.getIdentity());
  152. if(flag) {
  153. response = unionPayRequestApiComponent.bankCardVerifyRequest(request);
  154. if (response != null && !"00".equals(response.getRespCode())) {
  155. return HttpResult.error("未通过银行卡认证:" + response.getDetailRespMsg());
  156. }
  157. }
  158. }
  159. SysUserBankCard findSysUserBankCard = sysUserBankCardService.getOne(new LambdaQueryWrapper<SysUserBankCard>()
  160. .eq(SysUserBankCard::getBankNumber, sysUserBankCardVO.getBankNumber())
  161. .eq(SysUserBankCard::getUserId, sysUserBankCardVO.getUserId()));
  162. if (findSysUserBankCard != null) {
  163. findSysUserBankCard.setDelFlag("0");
  164. findSysUserBankCard.setAuditStatus("0");
  165. findSysUserBankCard.setAuditUserId(null);
  166. findSysUserBankCard.setAuditUserName(null);
  167. findSysUserBankCard.setAuditTime(null);
  168. findSysUserBankCard.setRemark("");
  169. findSysUserBankCard.setBankAddress(sysUserBankCardVO.getBankAddress());
  170. findSysUserBankCard.setBankAccount(sysUserBankCardVO.getBankAccount());
  171. findSysUserBankCard.setRealUserName(sysUserBankCardVO.getRealUserName());
  172. findSysUserBankCard.setBankVerify(response != null && "00".equals(response.getRespCode()) ? 1 : 0);
  173. sysUserBankCardService.updateById(findSysUserBankCard);
  174. SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
  175. sysUserBankCardHistory.setBankNumber(sysUserBankCardVO.getBankNumber());
  176. sysUserBankCardHistory.setType("rebind");
  177. sysUserBankCardHistory.setCreateTime(new Date());
  178. sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
  179. sysUserBankCardHistory.setBankNumberUserId(findSysUserBankCard.getUserId());
  180. sysUserBankCardHistoryService.save(sysUserBankCardHistory);
  181. } else {
  182. SysUserBankCard sysUserBankCard = new SysUserBankCard();
  183. BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
  184. sysUserBankCard.setDelFlag("0");
  185. sysUserBankCard.setCreateTime(new Date());
  186. sysUserBankCard.setAuditStatus("0"); //待审核
  187. sysUserBankCard.setIsDefault(0);
  188. sysUserBankCard.setBankNumber(sysUserBankCardVO.getBankNumber().replaceAll("\\s+", ""));
  189. sysUserBankCard.setUserName(sysUserBankCardVO.getUserName());
  190. sysUserBankCard.setUserId(sysUserBankCardVO.getUserId());
  191. sysUserBankCard.setBankVerify(response != null && "00".equals(response.getRespCode()) ? 1 : 0);
  192. //校验登录用户是否为合伙人或者是机构负责人
  193. boolean a = sysPartnerService.checkPartner(sysUser.getId());
  194. boolean b = sysAgencyLeaderService.checkUserId(sysUser.getId());
  195. if (a) {
  196. //a:合伙人绑卡
  197. sysUserBankCard.setAscription("a");
  198. } else if (b) {
  199. //b:机构负责人绑卡
  200. sysUserBankCard.setAscription("b");
  201. } else {
  202. sysUserBankCard.setAscription(sysUser.getManagementSource());
  203. }
  204. baseMapper.insert(sysUserBankCard);
  205. SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
  206. sysUserBankCardHistory.setBankNumber(sysUserBankCardVO.getBankNumber());
  207. sysUserBankCardHistory.setType("add");
  208. sysUserBankCardHistory.setCreateTime(new Date());
  209. sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
  210. sysUserBankCardHistory.setBankNumberUserId(sysUserBankCardVO.getUserId());
  211. sysUserBankCardHistoryService.save(sysUserBankCardHistory);
  212. }
  213. return HttpResult.ok("新增成功");
  214. }
  215. @Override
  216. @Transactional
  217. public void auditByBankNumber(SysUserBankCardVO sysUserBankCardVO) {
  218. SysUserBankCard sysUserBankCard = sysUserBankCardService.getById(sysUserBankCardVO.getId());
  219. if (sysUserBankCard != null && StringUtils.isNotBlank(sysUserBankCard.getAuditStatus()) && !"0".equals(sysUserBankCard.getAuditStatus())) {
  220. throw new SystemException("账户已审核不能重复审核");
  221. }
  222. sysUserBankCard.setAuditStatus(sysUserBankCardVO.getAuditStatus());
  223. sysUserBankCard.setAuditTime(new Date());
  224. sysUserBankCard.setAuditUserId(BaseController.getUser().getId());
  225. sysUserBankCard.setAuditUserName(BaseController.getUser().getName());
  226. sysUserBankCard.setRemark(sysUserBankCardVO.getRemark());
  227. sysUserBankCardService.updateById(sysUserBankCard);
  228. if (sysUserBankCardVO.getAuditStatus().equals("1")) {
  229. SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
  230. sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
  231. sysUserBankCardHistory.setType("pass");
  232. sysUserBankCardHistory.setCreateTime(new Date());
  233. sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
  234. sysUserBankCardHistory.setBankNumberUserId(sysUserBankCard.getUserId());
  235. sysUserBankCardHistoryService.save(sysUserBankCardHistory);
  236. }
  237. if (sysUserBankCardVO.getAuditStatus().equals("2")) {
  238. SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
  239. sysUserBankCardHistory.setBankNumber(sysUserBankCard.getBankNumber());
  240. sysUserBankCardHistory.setType("refuse");
  241. sysUserBankCardHistory.setCreateTime(new Date());
  242. sysUserBankCardHistory.setCreator(BaseController.getUser().getId());
  243. sysUserBankCardHistory.setBankNumberUserId(sysUserBankCard.getUserId());
  244. sysUserBankCardHistoryService.save(sysUserBankCardHistory);
  245. }
  246. }
  247. @Override
  248. public List<SysUserBankCard> queryUsableCard(SysUserBankCard sysUserBankCard) {
  249. return baseMapper.queryUsableCard(sysUserBankCard);
  250. }
  251. @Override
  252. public HttpResult<List<SysUserBankCard>> getUserBankList(SysUserBankCard sysUserBankCard) {
  253. sysUserBankCard.setUserId(BaseController.getUser().getId());
  254. List<SysUserBankCard> sysUserBankCardList = baseMapper.getUserBankList(sysUserBankCard);
  255. return HttpResult.ok("success", sysUserBankCardList);
  256. }
  257. public HttpResult<List<SysUserBankCard>> getUserBankListByQueryParam(SysUserBankCard sysUserBankCard) {
  258. sysUserBankCard.setUserId(sysUserBankCard.getUserId());
  259. List<SysUserBankCard> sysUserBankCardList = baseMapper.getUserBankList(sysUserBankCard);
  260. return HttpResult.ok("success", sysUserBankCardList);
  261. }
  262. @Override
  263. public HttpResult<List<SysUserBankCardHistory>> getUserBankCardHistoryList(SysUserBankCardHistory sysUserBankCardHistory) {
  264. List<SysUserBankCardHistory> sysUserBankCardHistoryList = baseMapper.getUserBankCardHistoryList(sysUserBankCardHistory);
  265. return HttpResult.ok("success", sysUserBankCardHistoryList);
  266. }
  267. }