package com.szwl.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.szwl.constant.JoinpayConstant; import com.szwl.constant.ResponseCodesEnum; import com.szwl.exception.BizException; import com.szwl.manager.TokenManager; import com.szwl.model.bo.R; import com.szwl.model.bo.ResponseModel; import com.szwl.model.bo.UserDetailBO; import com.szwl.model.entity.TAdmin; import com.szwl.model.entity.TJoinpayMch; import com.szwl.model.entity.TJoinpayMchCheck; import com.szwl.model.entity.UserLicense; import com.szwl.model.param.mchParam; import com.szwl.model.utils.Base64Util; import com.szwl.service.TAdminService; import com.szwl.service.TJoinpayMchCheckService; import com.szwl.service.TJoinpayMchService; import com.szwl.service.UserLicenseService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; import java.util.Optional; import static com.szwl.constant.ResponseCodesEnum.B0001; /** *

* 汇聚支付用户收款信息表 前端控制器 *

* * @author wuhs * @since 2022-04-29 */ @Api(value = "/tJoinpayMch", tags = {"汇聚支付"}) @RestController @RequestMapping("/tJoinpayMch") public class TJoinpayMchController { @Autowired TJoinpayMchService tJoinpayMchService; @Autowired TJoinpayMchCheckService tJoinpayMchCheckService; @Autowired TAdminService adminService; @Autowired TokenManager tokenManager; @Autowired private UserLicenseService userLicenseService; @ApiOperation(value = "查找汇聚收款账户信息") @PostMapping("/getOne") public ResponseModel getOne() { UserDetailBO userDetailBO = Optional.ofNullable(tokenManager.getLoginUserDetails()) .orElseThrow(() -> new BizException(ResponseCodesEnum.L0001)); String adminId = userDetailBO.getId().toString(); // TAdmin admin = adminService.getById(adminId); LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TJoinpayMch::getAdminId, adminId); List list = tJoinpayMchService.list(query); if (list.size() > 0) { //已经注册,就要查看是否有提交审核的 LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TJoinpayMchCheck::getAdminId, adminId); List list1 = tJoinpayMchCheckService.list(query1); if (list1.size() > 0) { int i = 0; for (TJoinpayMchCheck tJoinpayMchCheck : list1) { if (tJoinpayMchCheck.getType().equals("0") || tJoinpayMchCheck.getType().equals("3")) { i++; } } if (i == 0) { return R.ok(list.get(0)); } else { for (int j = list1.size() - 1; j >= 0; j--) { if (!list1.get(j).getType().equals("2") & !list1.get(j).getType().equals("1")) { if (list1.get(j).getType().equals("3")) { Date data = new Date(); long time = data.getTime(); long updateTime = list1.get(j).getModifyDate().getTime(); if (3 * 24 * 60 * 60 * 1000l > time - updateTime) { //拒绝的审核,超过3天后不显示 return R.ok(list.get(0)); } else { return R.ok(list.get(j)); } } return R.ok(list.get(j)); } } } } else { return R.ok(list.get(0)); } return R.ok(list.get(0)); } else { return R.fail("尚未注册!"); } } @ApiOperation(value = "保存或提交审核") @PostMapping("/save") public ResponseModel save(@RequestBody TJoinpayMch tJoinpayMch) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TJoinpayMch::getAdminId, tJoinpayMch.getAdminId()); TJoinpayMch joinpayMch = tJoinpayMchService.getOne(query); tJoinpayMch.setCreateDate(new Date()); tJoinpayMch.setModifyDate(new Date()); if (joinpayMch!= null) { //已有,属于第二次提交信息, TJoinpayMch mch = joinpayMch; //提交并修改 if (StringUtils.isNotEmpty(mch.getApproveStatus())) { if (!mch.getApproveStatus().equals("审核通过")) { if (!StringUtils.isEmpty(tJoinpayMch.getLegalPerson())) { mch.setLegalPerson(tJoinpayMch.getLegalPerson()); } if (tJoinpayMch.getIdCardNo() != null) { mch.setIdCardNo(tJoinpayMch.getIdCardNo()); } if (!StringUtils.isEmpty(tJoinpayMch.getLicenseNo())) { mch.setLicenseNo(tJoinpayMch.getLicenseNo()); } } } if (!StringUtils.isEmpty(tJoinpayMch.getBankAccountName())) { mch.setBankAccountName(tJoinpayMch.getBankAccountName()); } if (!StringUtils.isEmpty(tJoinpayMch.getBankAccountNo())) { mch.setBankAccountNo(tJoinpayMch.getBankAccountNo()); } if (!StringUtils.isEmpty(tJoinpayMch.getBankChannelNo())) { mch.setBankChannelNo(tJoinpayMch.getBankChannelNo()); } if (!StringUtils.isEmpty(tJoinpayMch.getBusiContactName())) { mch.setBusiContactName(tJoinpayMch.getBusiContactName()); } if (!StringUtils.isEmpty(tJoinpayMch.getBusiContactMobileNo())) { mch.setBusiContactMobileNo(tJoinpayMch.getBusiContactMobileNo()); } if (!StringUtils.isEmpty(tJoinpayMch.getPhoneNo())) { mch.setPhoneNo(tJoinpayMch.getPhoneNo()); } if (mch.getSettMode() != null) { mch.setSettMode(tJoinpayMch.getSettMode()); } if (mch.getRiskDay() != null) { mch.setRiskDay(tJoinpayMch.getRiskDay()); } if (tJoinpayMch.getSettDateType() != null) { mch.setSettDateType(tJoinpayMch.getSettDateType()); } String s = tJoinpayMchService.updateMch(mch); if (s.equals("ok")) { tJoinpayMchService.updateById(mch); } return R.ok(s); } else { //没有,直接保存 tJoinpayMch.setStep("0"); String result = tJoinpayMchService.createMch(tJoinpayMch); if (result.equals("ok")) { return R.ok(tJoinpayMch); } else { return R.fail(ResponseCodesEnum.C0001, result); } } } @ApiOperation(value = "签约") @GetMapping("/altMchSign") public ResponseModel altMchSign(String id) { TJoinpayMch mch = tJoinpayMchService.getById(id); //签定协议 String str = tJoinpayMchService.altMchSign(mch); return R.ok(str); } @ApiOperation(value = "上传图片") @PostMapping("/sentImage") public ResponseModel sentImage(@RequestBody mchParam tJoinpayMch) { TJoinpayMch mch = tJoinpayMchService.getById(tJoinpayMch.getId()); if (tJoinpayMch.getType().equals("0")) { //对公 if (StringUtils.isEmpty(tJoinpayMch.getCardPositive()) || StringUtils.isEmpty(tJoinpayMch.getCardNegative()) || StringUtils.isEmpty(tJoinpayMch.getTradeLicence())) { return R.fail("图片不能为空"); } String str = tJoinpayMchService.sendCardBusiness(mch, tJoinpayMch.getCardPositive(), tJoinpayMch.getCardNegative(), tJoinpayMch.getTradeLicence(), tJoinpayMch.getOpenAccountLicence(), tJoinpayMch.getStatus()); return R.ok(str); } if (tJoinpayMch.getType().equals("1")) { //个人 if (StringUtils.isEmpty(tJoinpayMch.getCardPositive()) || StringUtils.isEmpty(tJoinpayMch.getCardNegative())) { return R.fail("图片不能为空"); } String str = tJoinpayMchService.sendCard(mch, tJoinpayMch.getCardPositive(), tJoinpayMch.getCardNegative(), tJoinpayMch.getStatus()); return R.ok(str); } return R.ok(); } @ApiOperation(value = "获取提现信息") @GetMapping("/getMch") public ResponseModel getMch(@RequestParam String id) { TAdmin admin = adminService.getById(id); if (admin.getType() <= 1) { //公司 TJoinpayMch tJoinpayMch = new TJoinpayMch(); tJoinpayMch.setType("0"); return R.ok(tJoinpayMch); } else { //商家 LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TJoinpayMch::getAdminId, Long.valueOf(id)); TJoinpayMch tJoinpayMch = tJoinpayMchService.getOne(query); if (tJoinpayMch == null) { return R.ok(null); } tJoinpayMchService.refreshMch(tJoinpayMch); tJoinpayMchService.refreshMyAccount(tJoinpayMch); TJoinpayMch joinPayMch = tJoinpayMchService.getById(tJoinpayMch.getId()); return R.ok(joinPayMch); } } @ApiOperation(value = "商户入网") @PostMapping("/createMch") public ResponseModel createMch(@RequestBody TJoinpayMch joinpayMch) { // 步骤 Integer steps = joinpayMch.getBindingSteps(); LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TJoinpayMch::getAdminId, joinpayMch.getAdminId()); TJoinpayMch tJoinpayMch = tJoinpayMchService.getOne(query); switch (steps) { case 0: // 提交证件信息 joinpayMch.setBindingSteps(1); if (tJoinpayMch == null) { // 没有,直接保存 joinpayMch.setCreateDate(new Date()); joinpayMch.setModifyDate(new Date()); tJoinpayMchService.save(joinpayMch); } else { // 有,更新 joinpayMch.setModifyDate(new Date()); BeanUtil.copyProperties(joinpayMch, tJoinpayMch, CopyOptions.create() .setIgnoreNullValue(true) // 忽略源对象中的 null 值 .setIgnoreError(true) // 忽略类型不匹配等错误 ); tJoinpayMchService.updateById(tJoinpayMch); } return R.ok(); case 1: // 提交结算信息 tJoinpayMch.setBankAccountType(joinpayMch.getBankAccountType()); tJoinpayMch.setBankAccountName(joinpayMch.getBankAccountName()); tJoinpayMch.setBankAccountNo(joinpayMch.getBankAccountNo()); tJoinpayMch.setBankChannelNo(joinpayMch.getBankChannelNo()); tJoinpayMch.setSettMode(joinpayMch.getSettMode()); tJoinpayMch.setBindingSteps(2); tJoinpayMch.setModifyDate(new Date()); tJoinpayMchService.updateById(tJoinpayMch); return R.ok(); case 2: // 提交信息审核 tJoinpayMch.setModifyDate(new Date()); tJoinpayMch.setBindingSteps(3); String result = ""; String altMchNo = tJoinpayMch.getAltMchNo(); if (StringUtils.isEmpty(tJoinpayMch.getAltMchNo())) { // 没入网,入网接口 result = tJoinpayMchService.newCreateMch(tJoinpayMch); } else { // 已入网有,修改接口 result = tJoinpayMchService.newUpdateMch(tJoinpayMch); } if (JoinpayConstant.biz_code1.equals(result)) { return R.ok(); } return R.fail(result); } return R.fail(B0001); } @ApiOperation("上传照片审核") @PostMapping("/uploadPhotos") public ResponseModel uploadPhotos(@RequestBody TJoinpayMch tJoinpayMch) { UserLicense userLicense = userLicenseService.getById(tJoinpayMch.getAdminId()); Integer altMerchantType = tJoinpayMch.getAltMerchantType(); TJoinpayMch mch = tJoinpayMchService.getById(tJoinpayMch.getId()); String cardNegative = Base64Util.imgToBase64(userLicense.getIdCardFront()); String cardPositive = Base64Util.imgToBase64(userLicense.getIdCardBack()); if (JoinpayConstant.ALT_MERCHANT_TYPE_ENTERPRISE == altMerchantType) { //对公 String tradeLicence = Base64Util.imgToBase64(userLicense.getBusinessLicense()); String openAccountLicence = Base64Util.imgToBase64(userLicense.getAccountLicense()); String str = tJoinpayMchService.sendCardBusiness(mch, cardPositive, cardNegative, tradeLicence, openAccountLicence, tJoinpayMch.getStatus()); return R.ok(str); } if (JoinpayConstant.ALT_MERCHANT_TYPE_PERSON == altMerchantType) { //个人 String str = tJoinpayMchService.sendCard(mch, cardPositive, cardNegative, tJoinpayMch.getStatus()); return R.ok(str); } return R.ok(); } @ApiOperation("更新商户认证状态") @PostMapping("/updateMchApproveStatus") public ResponseModel updateMchApproveStatus(@RequestBody TJoinpayMch mch) { TJoinpayMch joinpayMch = tJoinpayMchService.getById(mch.getId()); String authStauts = tJoinpayMchService.updateMchApproveStatus(joinpayMch); return R.ok(authStauts); } @ApiOperation(value = "更新图片审核状态") @PostMapping("/updateApproveStatus") public ResponseModel updateApproveStatus(@RequestBody TJoinpayMch mch) { TJoinpayMch byId = tJoinpayMchService.getById(mch.getId()); String str = tJoinpayMchService.updateApproveStatus(byId); return R.ok(str); } @ApiOperation("更新签约状态") @PostMapping("/updateMchSignStatus") public ResponseModel updateMchSignStatus(@RequestBody TJoinpayMch mch) { TJoinpayMch joinpayMch = tJoinpayMchService.getById(mch.getId()); String signStatus = tJoinpayMchService.updateMchSignStatus(joinpayMch); return R.ok(signStatus); } }