package com.szwl.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.szwl.constant.ResponseCodesEnum;
import com.szwl.model.bo.R;
import com.szwl.model.bo.ResponseModel;
import com.szwl.model.entity.TAdmin;
import com.szwl.model.entity.TEquipment;
import com.szwl.model.entity.TJoinpayMch;
import com.szwl.model.entity.TJoinpayMchCheck;
import com.szwl.model.param.mchParam;
import com.szwl.service.TAdminService;
import com.szwl.service.TJoinpayMchCheckService;
import com.szwl.service.TJoinpayMchService;
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 javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* 汇聚支付用户收款信息表 前端控制器
*
*
* @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;
@ApiOperation(value = "查找汇聚收款账户信息")
@PostMapping("/getOne")
public ResponseModel getOne(String adminId) {
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) {
// TAdmin admin = adminService.getById(tJoinpayMch.getAdminId());
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TJoinpayMch::getAdminId,tJoinpayMch.getAdminId());
List list = tJoinpayMchService.list(query);
tJoinpayMch.setCreateDate(new Date());
tJoinpayMch.setModifyDate(new Date());
if(list.size()>0&&StringUtils.isNotEmpty(list.get(0).getAltMchNo())){
//已有,属于第二次提交信息,
TJoinpayMch mch = list.get(0);
//取消审核步骤
// ResponseModel> checkMch = createCheckMch(mch, tJoinpayMch);
//提交并修改
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(String id,String cardPositive,String cardNegative,String tradeLicence,String openAccountLicence,String type,String status) {
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 cardNegative = replit(tJoinpayMch.getCardNegative());
// String cardPositive = replit(tJoinpayMch.getCardPositive());
String str = tJoinpayMchService.sendCard(mch,tJoinpayMch.getCardPositive(),tJoinpayMch.getCardNegative(),tJoinpayMch.getStatus());
return R.ok(str);
}
return R.ok();
}
private String replit(String cardNegative) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
/*\n 回车(\u000a)
\t 水平制表符(\u0009)
\s 空格(\u0008)
\r 换行(\u000d)*/
Matcher m = p.matcher(cardNegative);
cardNegative = m.replaceAll("");
return cardNegative;
}
@ApiOperation(value = "获取提现信息")
@GetMapping("/getMch")
public ResponseModel getMch(@RequestParam String id) {
TAdmin admin = adminService.getById(id);
if(!admin.getIsAdmined()){
if(admin.getType()<=1){
//公司
TJoinpayMch tJoinpayMch = new TJoinpayMch();
tJoinpayMch.setType("0");
return R.ok(tJoinpayMch);
}else {
//商家
TAdmin parentAdmin = adminService.getById(admin.getParentId());
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TJoinpayMch::getAdminId,Long.valueOf(parentAdmin.getId()));
List list = tJoinpayMchService.list(query);
TJoinpayMch tJoinpayMch = list.get(0);
tJoinpayMchService.refreshMch(tJoinpayMch);
String s = tJoinpayMchService.refreshMyAccount(tJoinpayMch);
TJoinpayMch joinpayMch = tJoinpayMchService.getById(tJoinpayMch.getId());
return R.ok(joinpayMch);
}
}else {
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TJoinpayMch::getAdminId,Long.valueOf(id));
List list = tJoinpayMchService.list(query);
TJoinpayMch tJoinpayMch = list.get(0);
tJoinpayMchService.refreshMch(tJoinpayMch);
String s = tJoinpayMchService.refreshMyAccount(tJoinpayMch);
TJoinpayMch joinpayMch = tJoinpayMchService.getById(tJoinpayMch.getId());
return R.ok(joinpayMch);
}
}
private ResponseModel> createCheckMch(TJoinpayMch mch, TJoinpayMch tJoinpayMch) {
//检查是否有更新
int a = 0;
if(!mch.getBankAccountNo().equals(tJoinpayMch.getBankAccountNo())){
a++;
}
if(!mch.getBusiContactName().equals(tJoinpayMch.getBusiContactName())){
a++;
}
if(!mch.getIdCardNo().equals(tJoinpayMch.getIdCardNo())){
a++;
}
if(mch.getSettMode()!=null&&tJoinpayMch.getSettMode()!=null&mch.getSettMode()!=tJoinpayMch.getSettMode()){
a++;
}
if(mch.getAltMerchantType()!=tJoinpayMch.getAltMerchantType()){
a++;
}
if(a<=0){
return R.fail("重复提交!");
}else {
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TJoinpayMchCheck::getType,"0");
query.eq(TJoinpayMchCheck::getAdminId,tJoinpayMch.getAdminId());
List list = tJoinpayMchCheckService.list(query);
if(list.size()>0){
return R.fail("重复提交!");
}
TJoinpayMchCheck joinpayMchCheck = new TJoinpayMchCheck();
joinpayMchCheck.setCreateDate(new Date());
joinpayMchCheck.setModifyDate(new Date());
joinpayMchCheck.setAdminId(tJoinpayMch.getAdminId());
joinpayMchCheck.setAltMainBalance(tJoinpayMch.getAltMainBalance());
joinpayMchCheck.setAltGuarBalance(tJoinpayMch.getAltGuarBalance());
joinpayMchCheck.setAltAvilBalance(tJoinpayMch.getAltAvilBalance());
joinpayMchCheck.setAltMchNo(tJoinpayMch.getAltMchNo());
joinpayMchCheck.setAltMchName(tJoinpayMch.getAltMchName());
joinpayMchCheck.setSignTrxNo(tJoinpayMch.getSignTrxNo());
joinpayMchCheck.setBizCode(tJoinpayMch.getBizCode());
joinpayMchCheck.setOrderStatus(tJoinpayMch.getOrderStatus());
joinpayMchCheck.setLoginName(tJoinpayMch.getLoginName());
joinpayMchCheck.setBankAccountType(mch.getBankAccountType());
joinpayMchCheck.setLegalPerson(mch.getLegalPerson());
joinpayMchCheck.setIdCardNo(mch.getIdCardNo());
joinpayMchCheck.setAltMerchantType(mch.getAltMerchantType());
joinpayMchCheck.setBankAccountName(mch.getBankAccountName());
joinpayMchCheck.setBankAccountNo(mch.getBankAccountNo());
joinpayMchCheck.setBankChannelNo(mch.getBankChannelNo());
if (!StringUtils.isEmpty(mch.getBusiContactName())) {
joinpayMchCheck.setBusiContactName(mch.getBusiContactName());
}
if (!StringUtils.isEmpty(mch.getBusiContactMobileNo())) {
joinpayMchCheck.setBusiContactMobileNo(mch.getBusiContactMobileNo());
}
if (!StringUtils.isEmpty(mch.getPhoneNo())) {
joinpayMchCheck.setPhoneNo(mch.getPhoneNo());
}
if (!StringUtils.isEmpty(mch.getLicenseNo())) {
joinpayMchCheck.setLicenseNo(mch.getLicenseNo());
}
if(mch.getSettMode()!=null){
joinpayMchCheck.setSettMode(mch.getSettMode());
}
if(mch.getRiskDay()!=null){
joinpayMchCheck.setRiskDay(mch.getRiskDay());
}
joinpayMchCheck.setType("0");
tJoinpayMchCheckService.save(joinpayMchCheck);
return R.ok(joinpayMchCheck);
}
}
}