123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- 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;
- /**
- * <p>
- * 汇聚支付用户收款信息表 前端控制器
- * </p>
- *
- * @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<TJoinpayMch> getOne() {
- UserDetailBO userDetailBO = Optional.ofNullable(tokenManager.getLoginUserDetails())
- .orElseThrow(() -> new BizException(ResponseCodesEnum.L0001));
- String adminId = userDetailBO.getId().toString();
- // TAdmin admin = adminService.getById(adminId);
- LambdaQueryWrapper<TJoinpayMch> query = Wrappers.lambdaQuery();
- query.eq(TJoinpayMch::getAdminId, adminId);
- List<TJoinpayMch> list = tJoinpayMchService.list(query);
- if (list.size() > 0) {
- //已经注册,就要查看是否有提交审核的
- LambdaQueryWrapper<TJoinpayMchCheck> query1 = Wrappers.lambdaQuery();
- query1.eq(TJoinpayMchCheck::getAdminId, adminId);
- List<TJoinpayMchCheck> 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<TJoinpayMch> 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<TJoinpayMch> 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<TJoinpayMch> 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<TJoinpayMch> 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);
- }
- }
|