TJoinpayMchController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package com.szwl.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.szwl.constant.ResponseCodesEnum;
  7. import com.szwl.model.bo.R;
  8. import com.szwl.model.bo.ResponseModel;
  9. import com.szwl.model.entity.TAdmin;
  10. import com.szwl.model.entity.TEquipment;
  11. import com.szwl.model.entity.TJoinpayMch;
  12. import com.szwl.model.entity.TJoinpayMchCheck;
  13. import com.szwl.model.param.mchParam;
  14. import com.szwl.service.TAdminService;
  15. import com.szwl.service.TJoinpayMchCheckService;
  16. import com.szwl.service.TJoinpayMchService;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiOperation;
  19. import org.apache.commons.lang.StringUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.*;
  22. import javax.xml.crypto.Data;
  23. import java.util.Date;
  24. import java.util.List;
  25. import java.util.regex.Matcher;
  26. import java.util.regex.Pattern;
  27. /**
  28. * <p>
  29. * 汇聚支付用户收款信息表 前端控制器
  30. * </p>
  31. *
  32. * @author wuhs
  33. * @since 2022-04-29
  34. */
  35. @Api(value = "/tJoinpayMch", tags = {"汇聚支付"})
  36. @RestController
  37. @RequestMapping("/tJoinpayMch")
  38. public class TJoinpayMchController {
  39. @Autowired
  40. TJoinpayMchService tJoinpayMchService;
  41. @Autowired
  42. TJoinpayMchCheckService tJoinpayMchCheckService;
  43. @Autowired
  44. TAdminService adminService;
  45. @ApiOperation(value = "查找汇聚收款账户信息")
  46. @PostMapping("/getOne")
  47. public ResponseModel<TJoinpayMch> getOne(String adminId) {
  48. TAdmin admin = adminService.getById(adminId);
  49. LambdaQueryWrapper<TJoinpayMch> query = Wrappers.lambdaQuery();
  50. query.eq(TJoinpayMch::getAdminId,adminId);
  51. List<TJoinpayMch> list = tJoinpayMchService.list(query);
  52. if(list.size()>0){
  53. //已经注册,就要查看是否有提交审核的
  54. LambdaQueryWrapper<TJoinpayMchCheck> query1 = Wrappers.lambdaQuery();
  55. query1.eq(TJoinpayMchCheck::getAdminId,adminId);
  56. List<TJoinpayMchCheck> list1 = tJoinpayMchCheckService.list(query1);
  57. if(list1.size()>0){
  58. int i = 0;
  59. for(TJoinpayMchCheck tJoinpayMchCheck:list1){
  60. if(tJoinpayMchCheck.getType().equals("0")||tJoinpayMchCheck.getType().equals("3")){
  61. i++;
  62. }
  63. }
  64. if(i==0){
  65. return R.ok(list.get(0));
  66. }else {
  67. for(int j=list1.size()-1;j>=0;j--){
  68. if(!list1.get(j).getType().equals("2")&!list1.get(j).getType().equals("1")){
  69. if(list1.get(j).getType().equals("3")){
  70. Date data = new Date();
  71. long time = data.getTime();
  72. long updateTime = list1.get(j).getModifyDate().getTime();
  73. if(3*24*60*60*1000l>time-updateTime){
  74. //拒绝的审核,超过3天后不显示
  75. return R.ok(list.get(0));
  76. }else {
  77. return R.ok(list.get(j));
  78. }
  79. }
  80. return R.ok(list.get(j));
  81. }
  82. }
  83. }
  84. }else {
  85. return R.ok(list.get(0));
  86. }
  87. return R.ok(list.get(0));
  88. }else {
  89. return R.fail("尚未注册!");
  90. }
  91. }
  92. @ApiOperation(value = "保存或提交审核")
  93. @PostMapping("/save")
  94. public ResponseModel<?> save(@RequestBody TJoinpayMch tJoinpayMch) {
  95. // TAdmin admin = adminService.getById(tJoinpayMch.getAdminId());
  96. LambdaQueryWrapper<TJoinpayMch> query = Wrappers.lambdaQuery();
  97. query.eq(TJoinpayMch::getAdminId,tJoinpayMch.getAdminId());
  98. List<TJoinpayMch> list = tJoinpayMchService.list(query);
  99. tJoinpayMch.setCreateDate(new Date());
  100. tJoinpayMch.setModifyDate(new Date());
  101. if(list.size()>0&&StringUtils.isNotEmpty(list.get(0).getAltMchNo())){
  102. //已有,属于第二次提交信息,
  103. TJoinpayMch mch = list.get(0);
  104. //取消审核步骤
  105. // ResponseModel<?> checkMch = createCheckMch(mch, tJoinpayMch);
  106. //提交并修改
  107. if(!mch.getApproveStatus().equals("审核通过")){
  108. if (!StringUtils.isEmpty(tJoinpayMch.getLegalPerson())) {
  109. mch.setLegalPerson(tJoinpayMch.getLegalPerson());
  110. }
  111. if (tJoinpayMch.getIdCardNo()!=null) {
  112. mch.setIdCardNo(tJoinpayMch.getIdCardNo());
  113. }
  114. if (!StringUtils.isEmpty(tJoinpayMch.getLicenseNo())) {
  115. mch.setLicenseNo(tJoinpayMch.getLicenseNo());
  116. }
  117. }
  118. if (!StringUtils.isEmpty(tJoinpayMch.getBankAccountName())) {
  119. mch.setBankAccountName(tJoinpayMch.getBankAccountName());
  120. }
  121. if (!StringUtils.isEmpty(tJoinpayMch.getBankAccountNo())) {
  122. mch.setBankAccountNo(tJoinpayMch.getBankAccountNo());
  123. }
  124. if (!StringUtils.isEmpty(tJoinpayMch.getBankChannelNo())) {
  125. mch.setBankChannelNo(tJoinpayMch.getBankChannelNo());
  126. }
  127. if (!StringUtils.isEmpty(tJoinpayMch.getBusiContactName())) {
  128. mch.setBusiContactName(tJoinpayMch.getBusiContactName());
  129. }
  130. if (!StringUtils.isEmpty(tJoinpayMch.getBusiContactMobileNo())) {
  131. mch.setBusiContactMobileNo(tJoinpayMch.getBusiContactMobileNo());
  132. }
  133. if (!StringUtils.isEmpty(tJoinpayMch.getPhoneNo())) {
  134. mch.setPhoneNo(tJoinpayMch.getPhoneNo());
  135. }
  136. if(mch.getSettMode()!=null){
  137. mch.setSettMode(tJoinpayMch.getSettMode());
  138. }
  139. if(mch.getRiskDay()!=null){
  140. mch.setRiskDay(tJoinpayMch.getRiskDay());
  141. }
  142. if (tJoinpayMch.getSettDateType()!=null) {
  143. mch.setSettDateType(tJoinpayMch.getSettDateType());
  144. }
  145. String s = tJoinpayMchService.updateMch(mch);
  146. if(s.equals("ok")){
  147. tJoinpayMchService.updateById(mch);
  148. }
  149. return R.ok(s);
  150. }else {
  151. //没有,直接保存
  152. tJoinpayMch.setStep("0");
  153. String result = tJoinpayMchService.createMch(tJoinpayMch);
  154. if(result.equals("ok")){
  155. return R.ok(tJoinpayMch);
  156. }else {
  157. return R.fail(ResponseCodesEnum.C0001,result);
  158. }
  159. }
  160. }
  161. @ApiOperation(value = "签约")
  162. @GetMapping("/altMchSign")
  163. public ResponseModel<?> altMchSign(String id) {
  164. TJoinpayMch mch = tJoinpayMchService.getById(id);
  165. //签定协议
  166. String str =tJoinpayMchService.altMchSign(mch);
  167. return R.ok(str);
  168. }
  169. @ApiOperation(value = "上传图片")
  170. @PostMapping("/sentImage")
  171. // public ResponseModel<?> sentImage(String id,String cardPositive,String cardNegative,String tradeLicence,String openAccountLicence,String type,String status) {
  172. public ResponseModel<?> sentImage(@RequestBody mchParam tJoinpayMch) {
  173. TJoinpayMch mch = tJoinpayMchService.getById(tJoinpayMch.getId());
  174. if(tJoinpayMch.getType().equals("0")){
  175. //对公
  176. if(StringUtils.isEmpty(tJoinpayMch.getCardPositive())||StringUtils.isEmpty(tJoinpayMch.getCardNegative())||StringUtils.isEmpty(tJoinpayMch.getTradeLicence())){
  177. return R.fail("图片不能为空");
  178. }
  179. String str = tJoinpayMchService.sendCardBusiness(mch,tJoinpayMch.getCardPositive(),tJoinpayMch.getCardNegative(),tJoinpayMch.getTradeLicence(),tJoinpayMch.getOpenAccountLicence(),tJoinpayMch.getStatus());
  180. return R.ok(str);
  181. }
  182. if(tJoinpayMch.getType().equals("1")){
  183. //个人
  184. if(StringUtils.isEmpty(tJoinpayMch.getCardPositive())||StringUtils.isEmpty(tJoinpayMch.getCardNegative())){
  185. return R.fail("图片不能为空");
  186. }
  187. // String cardNegative = replit(tJoinpayMch.getCardNegative());
  188. // String cardPositive = replit(tJoinpayMch.getCardPositive());
  189. String str = tJoinpayMchService.sendCard(mch,tJoinpayMch.getCardPositive(),tJoinpayMch.getCardNegative(),tJoinpayMch.getStatus());
  190. return R.ok(str);
  191. }
  192. return R.ok();
  193. }
  194. private String replit(String cardNegative) {
  195. Pattern p = Pattern.compile("\\s*|\t|\r|\n");
  196. /*\n 回车(\u000a)
  197. \t 水平制表符(\u0009)
  198. \s 空格(\u0008)
  199. \r 换行(\u000d)*/
  200. Matcher m = p.matcher(cardNegative);
  201. cardNegative = m.replaceAll("");
  202. return cardNegative;
  203. }
  204. @ApiOperation(value = "获取提现信息")
  205. @GetMapping("/getMch")
  206. public ResponseModel<TJoinpayMch> getMch(@RequestParam String id) {
  207. TAdmin admin = adminService.getById(id);
  208. if(!admin.getIsAdmined()){
  209. if(admin.getType()<=1){
  210. //公司
  211. TJoinpayMch tJoinpayMch = new TJoinpayMch();
  212. tJoinpayMch.setType("0");
  213. return R.ok(tJoinpayMch);
  214. }else {
  215. //商家
  216. TAdmin parentAdmin = adminService.getById(admin.getParentId());
  217. LambdaQueryWrapper<TJoinpayMch> query = Wrappers.lambdaQuery();
  218. query.eq(TJoinpayMch::getAdminId,Long.valueOf(parentAdmin.getId()));
  219. List<TJoinpayMch> list = tJoinpayMchService.list(query);
  220. TJoinpayMch tJoinpayMch = list.get(0);
  221. tJoinpayMchService.refreshMch(tJoinpayMch);
  222. String s = tJoinpayMchService.refreshMyAccount(tJoinpayMch);
  223. TJoinpayMch joinpayMch = tJoinpayMchService.getById(tJoinpayMch.getId());
  224. return R.ok(joinpayMch);
  225. }
  226. }else {
  227. LambdaQueryWrapper<TJoinpayMch> query = Wrappers.lambdaQuery();
  228. query.eq(TJoinpayMch::getAdminId,Long.valueOf(id));
  229. List<TJoinpayMch> list = tJoinpayMchService.list(query);
  230. TJoinpayMch tJoinpayMch = list.get(0);
  231. tJoinpayMchService.refreshMch(tJoinpayMch);
  232. String s = tJoinpayMchService.refreshMyAccount(tJoinpayMch);
  233. TJoinpayMch joinpayMch = tJoinpayMchService.getById(tJoinpayMch.getId());
  234. return R.ok(joinpayMch);
  235. }
  236. }
  237. private ResponseModel<?> createCheckMch(TJoinpayMch mch, TJoinpayMch tJoinpayMch) {
  238. //检查是否有更新
  239. int a = 0;
  240. if(!mch.getBankAccountNo().equals(tJoinpayMch.getBankAccountNo())){
  241. a++;
  242. }
  243. if(!mch.getBusiContactName().equals(tJoinpayMch.getBusiContactName())){
  244. a++;
  245. }
  246. if(!mch.getIdCardNo().equals(tJoinpayMch.getIdCardNo())){
  247. a++;
  248. }
  249. if(mch.getSettMode()!=null&&tJoinpayMch.getSettMode()!=null&mch.getSettMode()!=tJoinpayMch.getSettMode()){
  250. a++;
  251. }
  252. if(mch.getAltMerchantType()!=tJoinpayMch.getAltMerchantType()){
  253. a++;
  254. }
  255. if(a<=0){
  256. return R.fail("重复提交!");
  257. }else {
  258. LambdaQueryWrapper<TJoinpayMchCheck> query = Wrappers.lambdaQuery();
  259. query.eq(TJoinpayMchCheck::getType,"0");
  260. query.eq(TJoinpayMchCheck::getAdminId,tJoinpayMch.getAdminId());
  261. List<TJoinpayMchCheck> list = tJoinpayMchCheckService.list(query);
  262. if(list.size()>0){
  263. return R.fail("重复提交!");
  264. }
  265. TJoinpayMchCheck joinpayMchCheck = new TJoinpayMchCheck();
  266. joinpayMchCheck.setCreateDate(new Date());
  267. joinpayMchCheck.setModifyDate(new Date());
  268. joinpayMchCheck.setAdminId(tJoinpayMch.getAdminId());
  269. joinpayMchCheck.setAltMainBalance(tJoinpayMch.getAltMainBalance());
  270. joinpayMchCheck.setAltGuarBalance(tJoinpayMch.getAltGuarBalance());
  271. joinpayMchCheck.setAltAvilBalance(tJoinpayMch.getAltAvilBalance());
  272. joinpayMchCheck.setAltMchNo(tJoinpayMch.getAltMchNo());
  273. joinpayMchCheck.setAltMchName(tJoinpayMch.getAltMchName());
  274. joinpayMchCheck.setSignTrxNo(tJoinpayMch.getSignTrxNo());
  275. joinpayMchCheck.setBizCode(tJoinpayMch.getBizCode());
  276. joinpayMchCheck.setOrderStatus(tJoinpayMch.getOrderStatus());
  277. joinpayMchCheck.setLoginName(tJoinpayMch.getLoginName());
  278. joinpayMchCheck.setBankAccountType(mch.getBankAccountType());
  279. joinpayMchCheck.setLegalPerson(mch.getLegalPerson());
  280. joinpayMchCheck.setIdCardNo(mch.getIdCardNo());
  281. joinpayMchCheck.setAltMerchantType(mch.getAltMerchantType());
  282. joinpayMchCheck.setBankAccountName(mch.getBankAccountName());
  283. joinpayMchCheck.setBankAccountNo(mch.getBankAccountNo());
  284. joinpayMchCheck.setBankChannelNo(mch.getBankChannelNo());
  285. if (!StringUtils.isEmpty(mch.getBusiContactName())) {
  286. joinpayMchCheck.setBusiContactName(mch.getBusiContactName());
  287. }
  288. if (!StringUtils.isEmpty(mch.getBusiContactMobileNo())) {
  289. joinpayMchCheck.setBusiContactMobileNo(mch.getBusiContactMobileNo());
  290. }
  291. if (!StringUtils.isEmpty(mch.getPhoneNo())) {
  292. joinpayMchCheck.setPhoneNo(mch.getPhoneNo());
  293. }
  294. if (!StringUtils.isEmpty(mch.getLicenseNo())) {
  295. joinpayMchCheck.setLicenseNo(mch.getLicenseNo());
  296. }
  297. if(mch.getSettMode()!=null){
  298. joinpayMchCheck.setSettMode(mch.getSettMode());
  299. }
  300. if(mch.getRiskDay()!=null){
  301. joinpayMchCheck.setRiskDay(mch.getRiskDay());
  302. }
  303. joinpayMchCheck.setType("0");
  304. tJoinpayMchCheckService.save(joinpayMchCheck);
  305. return R.ok(joinpayMchCheck);
  306. }
  307. }
  308. }