package com.dsh.guns.modular.system.controller.code;
|
|
|
import cn.hutool.crypto.SecureUtil;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alipay.api.*;
|
import com.alipay.api.request.AntMerchantExpandIndirectImageUploadRequest;
|
import com.alipay.api.request.AntMerchantExpandIndirectZftCreateRequest;
|
import com.alipay.api.response.AntMerchantExpandIndirectImageUploadResponse;
|
import com.alipay.api.response.AntMerchantExpandIndirectZftCreateResponse;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.dsh.guns.core.base.controller.BaseController;
|
import com.dsh.guns.core.common.constant.factory.PageFactory;
|
import com.dsh.guns.core.util.SinataUtil;
|
import com.dsh.guns.modular.system.controller.util.MD5;
|
import com.dsh.guns.modular.system.controller.util.MD5AndKL;
|
import com.dsh.guns.modular.system.model.*;
|
import com.dsh.guns.modular.system.service.*;
|
|
import com.dsh.guns.modular.system.util.HttpRequestUtil;
|
import com.dsh.guns.modular.system.util.PayMoneyUtil;
|
import com.dsh.guns.modular.system.util.ResultUtil;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.github.binarywang.wxpay.v3.WechatPayUploadHttpPost;
|
import com.wechat.pay.java.service.profitsharing.ProfitsharingService;
|
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.http.client.methods.HttpPost;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
|
import javax.crypto.BadPaddingException;
|
import javax.crypto.Cipher;
|
import javax.crypto.IllegalBlockSizeException;
|
import javax.crypto.NoSuchPaddingException;
|
import javax.security.cert.X509Certificate;
|
import java.io.*;
|
import java.net.URI;
|
import java.net.URISyntaxException;
|
import java.net.URL;
|
import java.security.InvalidKeyException;
|
import java.security.NoSuchAlgorithmException;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
|
/**
|
* 运营商管理
|
*/
|
@Controller
|
@RequestMapping("/operator")
|
public class OperatorController extends BaseController {
|
|
private String PREFIX = "/system/operator/";
|
@Autowired
|
private TOperatorService operatorService;
|
@Autowired
|
private TOperatorCityService operatorCityService;
|
@Autowired
|
private IOperatorAuthService operatorAuthService;
|
@Autowired
|
private IOperatorAuthWxService operatorAuthWxService;
|
@Autowired
|
private IOperatorUserService operatorUserService;
|
@Autowired
|
private IUserService userService;
|
@Autowired
|
private ICityService cityService;
|
@Autowired
|
private PayMoneyUtil payMoneyUtil;
|
|
@Autowired
|
private IStoreService storeService;
|
private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
|
private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
|
private String aliAppid = "2021004105665036";//支付宝appid
|
|
|
|
/**
|
* 根据运营商id查询所有门店
|
*/
|
@RequestMapping("/getStores")
|
@ResponseBody
|
public List<TStore> getStores(Integer id)
|
{
|
payMoneyUtil.getMessage();
|
return storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId",id)
|
.ne("state",3));
|
}
|
|
/**
|
* 跳转运营商管理首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
return PREFIX + "Operator.html";
|
}
|
|
/**
|
* 跳转运营商重置密码页面
|
*/
|
@RequestMapping("/resetPassword")
|
public String resetPassword(Model model) {
|
return PREFIX + "Operator_resetPassword.html";
|
}
|
/**
|
* 跳转运营商添加页面
|
*/
|
@RequestMapping("/add")
|
public String add(Model model) {
|
List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("provinceList",list);
|
return PREFIX + "Operator_add.html";
|
}
|
@RequestMapping("/bindWx/{id}")
|
public String bindWx(Model model,@PathVariable("id") Integer id) {
|
|
model.addAttribute("id",id);
|
model.addAttribute("merchantNumber",operatorService.getById(id).getMerchantNumber());
|
model.addAttribute("name",operatorService.getById(id).getMerchantName());
|
return PREFIX + "Operator_wx.html";
|
}
|
/**
|
* 跳转运营商编辑页面
|
*/
|
@RequestMapping("/update/{id}")
|
public String update(Model model,@PathVariable("id") Integer id) {
|
List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("provinceList",provinceList);
|
model.addAttribute("id",id);
|
TOperator byId = operatorService.getById(id);
|
// 运营商名称
|
model.addAttribute(byId.getName());
|
User byId1 = userService.getById(byId.getUserId());
|
model.addAttribute("userName",byId1.getName());
|
model.addAttribute("phone",byId1.getPhone());
|
model.addAttribute("data",byId);
|
// 获取全部的省
|
List<TOperatorCity> list = operatorCityService.list(new QueryWrapper<TOperatorCity>().eq("operatorId", id).eq("pid",0));
|
List<OperatorCityVO> result = new ArrayList<>();
|
|
for (TOperatorCity tOperatorCity : list) {
|
// 拿到省下面的所有市
|
List<TOperatorCity> cities= operatorCityService.list(new QueryWrapper<TOperatorCity>().eq("pid", tOperatorCity.getId()));
|
if (cities.size()==0){
|
OperatorCityVO operatorCityVO = new OperatorCityVO();
|
operatorCityVO.setProvince(tOperatorCity.getName());
|
operatorCityVO.setProvinceCode(tOperatorCity.getCode());
|
result.add(operatorCityVO);
|
}
|
for (TOperatorCity city : cities) {
|
OperatorCityVO operatorCityVO = new OperatorCityVO();
|
operatorCityVO.setProvince(tOperatorCity.getName());
|
operatorCityVO.setProvinceCode(tOperatorCity.getCode());
|
operatorCityVO.setCity(city.getName());
|
operatorCityVO.setCityCode(city.getCode());
|
result.add(operatorCityVO);
|
}
|
}
|
model.addAttribute("list",result);
|
return PREFIX + "Operator_edit.html";
|
}
|
/**
|
* 获取运营商列表
|
*/
|
@RequestMapping(value = "/listAll")
|
@ResponseBody
|
public Object listAll(String userName, String phone,Integer type) {
|
Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
|
List<Map<String,Object>> list = operatorService.listAll(page,userName,phone,type);
|
page.setRecords(list);
|
return super.packForBT(page);
|
|
}
|
private ProfitsharingService profitsharingService;
|
/**
|
* 手动填入微信商户号
|
*/
|
@RequestMapping(value = "/merchantNumberWx")
|
@ResponseBody
|
public Object listAll(Integer id, String merchantNumber,String name) throws Exception {
|
TOperator byId = operatorService.getById(id);
|
byId.setMerchantNumber(merchantNumber);
|
byId.setMerchantName(name);
|
operatorService.updateById(byId);
|
ResultUtil resultUtil = payMoneyUtil.addReceiver(merchantNumber, name);
|
if (resultUtil.getCode() == 500){
|
return ResultUtil.error(resultUtil.getMsg());
|
}
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 支付宝跳转运营商商户去认证页面
|
*/
|
@RequestMapping("/proportionAuth/{id}")
|
public String proportionAuth(Model model,@PathVariable("id") Integer id) {
|
model.addAttribute("id",id);
|
TOperator data = operatorService.getById(id);
|
User byId = userService.getById(data.getUserId());
|
model.addAttribute("user",byId);
|
List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("list",list);
|
model.addAttribute("data",data);
|
OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", id));
|
model.addAttribute("item",info);
|
|
if (info==null){
|
OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay();
|
model.addAttribute("item",operatorAuth);
|
model.addAttribute("bodyType",0);
|
model.addAttribute("code",null);
|
model.addAttribute("reasons",null);
|
// 0不显示二维码
|
model.addAttribute("type",0);
|
}else{
|
model.addAttribute("bodyType",info.getBodyType());
|
model.addAttribute("accountType",info.getAccountType());
|
model.addAttribute("useType",info.getUseType());
|
model.addAttribute("cardType",info.getCardType());
|
model.addAttribute("reasons",info.getRefuseReason());
|
// TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
|
// List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
|
// model.addAttribute("district",district);
|
// if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
|
// // 通过才展示二维码
|
// model.addAttribute("type",1);
|
// }else{
|
// model.addAttribute("type",0);
|
// }
|
// model.addAttribute("code",info.getQrCode());
|
// model.addAttribute("item",info);
|
// model.addAttribute("bodyType",info.getBodyType());
|
// if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
|
// model.addAttribute("reasons",info.getRefuseReason());
|
// }else{
|
// model.addAttribute("reasons",null);
|
// }
|
|
|
}
|
return PREFIX + "OperatorUser_proportionAuth.html";
|
}
|
/**
|
* 微信跳转运营商商户去认证页面
|
*/
|
@RequestMapping("/proportionAuthWx/{id}")
|
public String proportionAuthWx(Model model,@PathVariable("id") Integer id) {
|
model.addAttribute("id",id);
|
TOperator data = operatorService.getById(id);
|
User byId = userService.getById(data.getUserId());
|
model.addAttribute("user",byId);
|
List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("list",list);
|
model.addAttribute("data",data);
|
OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", id));
|
model.addAttribute("item",info);
|
|
if (info==null){
|
OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay();
|
model.addAttribute("item",operatorAuth);
|
model.addAttribute("bodyType",0);
|
model.addAttribute("code",null);
|
model.addAttribute("reasons",null);
|
// 0不显示二维码
|
model.addAttribute("type",0);
|
}else{
|
model.addAttribute("bodyType",info.getBodyType());
|
model.addAttribute("accountType",info.getAccountType());
|
model.addAttribute("useType",info.getUseType());
|
model.addAttribute("cardType",info.getCardType());
|
model.addAttribute("reasons",info.getRefuseReason());
|
// TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
|
// List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
|
// model.addAttribute("district",district);
|
// if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
|
// // 通过才展示二维码
|
// model.addAttribute("type",1);
|
// }else{
|
// model.addAttribute("type",0);
|
// }
|
// model.addAttribute("code",info.getQrCode());
|
// model.addAttribute("item",info);
|
// model.addAttribute("bodyType",info.getBodyType());
|
// if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
|
// model.addAttribute("reasons",info.getRefuseReason());
|
// }else{
|
// model.addAttribute("reasons",null);
|
// }
|
|
|
}
|
return PREFIX + "OperatorUser_proportionAuthWX.html";
|
}
|
/**
|
* 支付宝跳转运营商商户去认证页面 详情页面
|
*/
|
@RequestMapping("/proportionAuth1/{id}")
|
public String proportionAuth1(Model model,@PathVariable("id") Integer id) {
|
model.addAttribute("id",id);
|
TOperator data = operatorService.getById(id);
|
User byId = userService.getById(data.getUserId());
|
model.addAttribute("user",byId);
|
OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("operatorId", data.getId()));
|
|
model.addAttribute("data",data);
|
String state="";
|
switch (operatorId.getAlipayAudit()){
|
case 0:
|
state="未认证";
|
break;
|
case 1:
|
state="待审核";
|
break;
|
case 2:
|
state="已通过";
|
break;
|
case 3:
|
state="已拒绝";
|
break;
|
}
|
model.addAttribute("state",state);
|
OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
|
.eq("operatorId", id));
|
model.addAttribute("item",info);
|
List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("list1",list1);
|
if (StringUtils.hasLength(info.getProvince())){
|
// 获取银行开户省
|
List<TCity> list4 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
// 获取银行开户市
|
TCity city = cityService.getOne(new QueryWrapper<TCity>().eq("code", info.getProvinceCode()));
|
List<TCity> list5 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, city.getId()));
|
model.addAttribute("list4",list4);
|
model.addAttribute("list5",list5);
|
}else{
|
List<TCity> list6 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("list4",list6);
|
List<TCity> list5 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 1));
|
model.addAttribute("list5",list5);
|
}
|
model.addAttribute("bodyType",info.getBodyType());
|
model.addAttribute("accountType",info.getAccountType());
|
model.addAttribute("useType",info.getUseType());
|
model.addAttribute("cardType",info.getCardType());
|
model.addAttribute("reasons",info.getRefuseReason());
|
|
|
|
// TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
|
// List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
|
// model.addAttribute("district",district);
|
// if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
|
// // 通过才展示二维码
|
// model.addAttribute("type",1);
|
// }else{
|
// model.addAttribute("type",0);
|
// }
|
// model.addAttribute("code",info.getQrCode());
|
// model.addAttribute("item",info);
|
// model.addAttribute("bodyType",info.getBodyType());
|
// if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
|
// model.addAttribute("reasons",info.getRefuseReason());
|
// }else{
|
// model.addAttribute("reasons",null);
|
// }
|
|
return PREFIX + "OperatorUser_proportionAuth_info.html";
|
}
|
/**
|
* 微信跳转运营商商户去认证页面 详情页面
|
*/
|
@RequestMapping("/proportionAuth1Wx/{id}")
|
public String proportionAuth1Wx(Model model,@PathVariable("id") Integer id) {
|
model.addAttribute("id",id);
|
TOperator data = operatorService.getById(id);
|
User byId = userService.getById(data.getUserId());
|
model.addAttribute("user",byId);
|
OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("operatorId", data.getId()));
|
model.addAttribute("data",data);
|
OperatorAuth info = operatorAuthWxService.getOne(new QueryWrapper<OperatorAuth>()
|
.eq("operatorId", id));
|
model.addAttribute("item",info);
|
List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("list1",list1);
|
if (StringUtils.hasLength(info.getProvince())){
|
// 获取银行开户省
|
List<TCity> list4 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
// 获取银行开户市
|
TCity city = cityService.getOne(new QueryWrapper<TCity>().eq("code", info.getProvinceCode()));
|
List<TCity> list5 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, city.getId()));
|
model.addAttribute("list4",list4);
|
model.addAttribute("list5",list5);
|
}else{
|
List<TCity> list6 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
model.addAttribute("list4",list6);
|
List<TCity> list5 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 1));
|
model.addAttribute("list5",list5);
|
}
|
model.addAttribute("bodyType",info.getBodyType());
|
model.addAttribute("accountType",info.getAccountType());
|
model.addAttribute("useType",info.getAccountType());
|
model.addAttribute("cardType","");
|
model.addAttribute("reasons",info.getRefuseReason());
|
// 【申请状态】 枚举值:
|
//CHECKING:资料校验中
|
//ACCOUNT_NEED_VERIFY:待账户验证
|
//AUDITING:审核中
|
//REJECTED:已驳回
|
//NEED_SIGN:待签约
|
//FINISH:完成
|
//FROZEN:已冻结
|
//CANCELED:已作废
|
switch (info.getApplymentState()){
|
case "CHECKING":
|
model.addAttribute("applymentState","资料校验中");
|
break;
|
case "ACCOUNT_NEED_VERIFY":
|
model.addAttribute("applymentState","待账户验证");
|
break;
|
case "AUDITING":
|
model.addAttribute("applymentState","审核中");
|
break;
|
case "REJECTED":
|
model.addAttribute("applymentState","已驳回");
|
break;
|
case "NEED_SIGN":
|
model.addAttribute("applymentState","待签约");
|
break;
|
case "FINISH":
|
model.addAttribute("applymentState","完成");
|
break;
|
case "FROZEN":
|
model.addAttribute("applymentState","已冻结");
|
break;
|
case "CANCELED":
|
model.addAttribute("applymentState","已作废");
|
break;
|
}
|
if (info.getSignState()!=null){
|
switch (info.getApplymentState()){
|
case "CHECKING":
|
model.addAttribute("applymentState","资料校验中");
|
break;
|
case "ACCOUNT_NEED_VERIFY":
|
model.addAttribute("applymentState","待账户验证");
|
break;
|
case "AUDITING":
|
model.addAttribute("applymentState","审核中");
|
break;
|
case "REJECTED":
|
model.addAttribute("applymentState","已驳回");
|
break;
|
case "NEED_SIGN":
|
model.addAttribute("applymentState","待签约");
|
break;
|
case "FINISH":
|
model.addAttribute("applymentState","完成");
|
break;
|
case "FROZEN":
|
model.addAttribute("applymentState","已冻结");
|
break;
|
case "CANCELED":
|
model.addAttribute("applymentState","已作废");
|
break;
|
}
|
}
|
|
model.addAttribute("state",info.getApplymentState());
|
if (info.getSignState() == null){
|
model.addAttribute("signState",0);
|
|
}else{
|
model.addAttribute("signState",info.getSignState());
|
|
}
|
// todo 查询申请单状态
|
model.addAttribute("accountName",info.getSignState());
|
model.addAttribute("accountNo",info.getSignState());
|
model.addAttribute("payAmount",info.getSignState());
|
model.addAttribute("destinationAccountNumber",info.getSignState());
|
model.addAttribute("destinationAccountName",info.getSignState());
|
model.addAttribute("destinationAccountBank",info.getSignState());
|
model.addAttribute("city",info.getSignState());
|
model.addAttribute("remark",info.getSignState());
|
model.addAttribute("deadline",info.getSignState());
|
model.addAttribute("signState",info.getSignState());
|
|
// TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
|
// List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
|
// model.addAttribute("district",district);
|
// if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
|
// // 通过才展示二维码
|
// model.addAttribute("type",1);
|
// }else{
|
// model.addAttribute("type",0);
|
// }
|
// model.addAttribute("code",info.getQrCode());
|
// model.addAttribute("item",info);
|
// model.addAttribute("bodyType",info.getBodyType());
|
// if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
|
// model.addAttribute("reasons",info.getRefuseReason());
|
// }else{
|
// model.addAttribute("reasons",null);
|
// }
|
|
return PREFIX + "OperatorUser_proportionAuth_infoWX.html";
|
}
|
/**
|
* 根据所选市 获取区
|
*/
|
@RequestMapping(value = "/getDistrict")
|
@ResponseBody
|
public Object onChange(String cityCode) {
|
try {
|
TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode));
|
List<TCity> parent_id = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
|
return parent_id;
|
}catch (Exception e){
|
e.printStackTrace();
|
return ERROR;
|
}
|
}
|
// public static void main(String[] args) {
|
// // 调用支付宝接口 通过银行卡号获取银行信息
|
// String url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&" +
|
// "cardNo=6217003800041315031&cardBinCheck=true";
|
// HashMap<String, String> hashMap = new HashMap<>();
|
// String result = HttpRequestUtil.postRequest(url,hashMap);
|
// System.err.println(result);
|
// JSONObject json = JSONObject.parseObject(result);
|
// String bank = json.getString("bank");
|
// String cardType = json.getString("cardType");
|
// System.err.println(bank);
|
// System.err.println(cardType);
|
//
|
// }
|
public static String rsaEncryptOAEP(String message, X509Certificate certificate)
|
throws IllegalBlockSizeException, IOException {
|
try {
|
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-1AndMGF1Padding");
|
cipher.init(Cipher.ENCRYPT_MODE, certificate.getPublicKey());
|
byte[] data = message.getBytes("utf-8");
|
byte[] cipherdata = cipher.doFinal(data);
|
return Base64.getEncoder().encodeToString(cipherdata);
|
} catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
|
throw new RuntimeException("当前Java环境不支持RSA v1.5/OAEP", e);
|
} catch (InvalidKeyException e) {
|
throw new IllegalArgumentException("无效的证书", e);
|
} catch (IllegalBlockSizeException | BadPaddingException e) {
|
throw new IllegalBlockSizeException("加密原串的长度不能超过214字节");
|
}
|
}
|
|
/**
|
* 微信商户认证提交
|
*/
|
@RequestMapping(value = "/wxAuth")
|
@ResponseBody
|
public Object wxAuth(Integer operatorId,String bodyType,String businessName,String businessNumber,String companyAddress,
|
String aliasName,
|
String license,String legalPhone,
|
String legalEmail,
|
String legalPerson,String legalAddress,
|
String IDCardTime,String IDCardEnd,String tradeTime,String endTime,
|
String leagleNumber,String legalFront,String legalBack,
|
String bankCard,String bankCardTwo,Integer useType,String bank,String bankName,
|
String accountName,String provinceCode,String province,String cityCode,String city,
|
String isBenefits,
|
String benefitsName,
|
String benefitsFront,
|
String benefitsBack,
|
String benefitsNumber,
|
String benefitsStartTime,
|
String benefitsEndTime,
|
String benefitsAddress
|
) {
|
OperatorAuth operatorId1 = operatorAuthWxService.getOne(new QueryWrapper<OperatorAuth>()
|
.eq("operatorId", operatorId));
|
TOperator byId = operatorService.getById(operatorId);
|
Integer userId1 = byId.getUserId();
|
OperatorUser userId2 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("userId", userId1));
|
userId2.setWechatAudit(1);
|
// 2是企业 4个体
|
if (bodyType.equals("2")){
|
userId2.setWechatType(2);
|
}else{
|
userId2.setWechatType(4);
|
}
|
operatorUserService.updateById(userId2);
|
if (null == endTime || "".equals(endTime)){
|
endTime = "长期";
|
}
|
if (null == IDCardEnd || "".equals(IDCardEnd)){
|
IDCardEnd = "长期";
|
}
|
OperatorAuth operatorAuth = new OperatorAuth();
|
|
|
operatorAuth.setOperatorId(operatorId);
|
operatorAuth.setBodyType(bodyType);
|
operatorAuth.setAliasName(aliasName);
|
operatorAuth.setBusinessName(businessName);
|
operatorAuth.setAccountType(useType);
|
operatorAuth.setBusinessNumber(businessNumber);
|
operatorAuth.setLegalRepresentative(legalPerson);
|
operatorAuth.setRegisterAddress(companyAddress);
|
operatorAuth.setBusinessTerm(tradeTime);
|
operatorAuth.setBusinessEnd(endTime);
|
operatorAuth.setLegalPerson(legalPerson);
|
operatorAuth.setLeagleNumber(leagleNumber);
|
operatorAuth.setLegalTerm(IDCardTime);
|
operatorAuth.setLegalEnd(IDCardEnd);
|
operatorAuth.setLegalEmail(legalEmail);
|
operatorAuth.setLegalAddress(legalAddress);
|
operatorAuth.setBusinessPicture(license);
|
operatorAuth.setLegalFront(legalFront);
|
operatorAuth.setLegalBack(legalBack);
|
if (!StringUtils.hasLength(license))operatorAuth.setBusinessPicture(null);
|
if (!StringUtils.hasLength(legalFront))operatorAuth.setLegalFront(null);
|
if (!StringUtils.hasLength(legalBack))operatorAuth.setLegalBack(null);
|
operatorAuth.setBank(bank);
|
operatorAuth.setAccountName(accountName);
|
operatorAuth.setProvince(province);
|
operatorAuth.setProvinceCode(provinceCode);
|
operatorAuth.setCity(city);
|
operatorAuth.setCityCode(cityCode);
|
operatorAuth.setBankName(bankName);
|
operatorAuth.setBankNumber(bankCard);
|
operatorAuth.setAuditState(0);
|
operatorAuth.setName(legalPerson);
|
operatorAuth.setLegalPhone(legalPhone);
|
operatorAuth.setPhone(legalPhone);
|
operatorAuth.setNumber(leagleNumber);
|
operatorAuth.setBankCardTwo(bankCardTwo);
|
operatorAuth.setIsBenefits(isBenefits);
|
|
if (isBenefits.equals("true")){
|
operatorAuth.setBenefitsName(legalPerson);
|
operatorAuth.setBenefitsFront(legalFront);
|
operatorAuth.setBenefitsBack(legalBack);
|
operatorAuth.setBenefitsNumber(leagleNumber);
|
operatorAuth.setBenefitsStartTime(IDCardTime);
|
operatorAuth.setBenefitsEndTime(IDCardEnd);
|
operatorAuth.setBenefitsAddress(legalAddress);
|
benefitsName = legalPerson;
|
benefitsFront = legalFront;
|
benefitsBack =legalBack;
|
benefitsNumber =leagleNumber;
|
benefitsStartTime =IDCardTime;
|
benefitsEndTime =IDCardEnd;
|
benefitsAddress = legalAddress;
|
}
|
LocalDateTime currentDateTime = LocalDateTime.now();
|
// 格式化日期和时间信息
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
String formattedDateTime = currentDateTime.format(formatter);
|
// 生成随机数,填充剩余位数
|
Random random = new Random();
|
StringBuilder randomPart = new StringBuilder();
|
for (int i = 0; i < 3; i++) {
|
// 大写字母
|
randomPart.append((char) (random.nextInt(26) + 'A'));
|
}
|
// 组合业务申请编号 若申请单被驳回,可填写相同的“业务申请编号”,即可覆盖修改原申请单信息 。
|
String orderNumber = formattedDateTime + randomPart;
|
if (operatorId1 == null){
|
operatorAuth.setOutBizNo(orderNumber);
|
operatorAuth.setAuditState(1);
|
operatorAuth.setApplymentState("CHECKING");
|
operatorAuthWxService.save(operatorAuth);
|
}else{
|
operatorAuth.setId(operatorId1.getId());
|
operatorAuth.setBenefitsFront(operatorId1.getLegalFront());
|
operatorAuth.setBenefitsBack(operatorId1.getLegalBack());
|
BeanUtils.copyProperties(operatorAuth,operatorId1);
|
operatorId1.setAuditState(1);
|
operatorId1.setApplymentState("CHECKING");
|
operatorAuthWxService.updateById(operatorId1);
|
}
|
String param="{"+
|
"\"out_request_no\" :"+ "\""+orderNumber+"\""+","+
|
" \"organization_type\" :"+"\""+bodyType+"\""+","+
|
" \"finance_institution\" : false,\n" +
|
" \"business_license_info\" : {\n" +
|
// 主体为“个体工商户/企业”时,不填。
|
// "cert_type:" + "CERTIFICATE_TYPE_2388,"+
|
" \"business_license_copy\" :"+ "\""+license+"\""+","+
|
" \"business_license_number\" : "+"\""+businessNumber+"\""+","+
|
" \"merchant_name\" : "+ "\""+businessName+"\""+","+
|
" \"legal_person\" : "+ "\""+legalPerson+"\""+","+
|
"\"company_address\" :"+ "\""+companyAddress+"\""+","+
|
" \"business_time\" : \"[\\\\\\\""+tradeTime+"\\\\\\\",\\\\\\\""+endTime+"\\\\\\\"]\"\n" +
|
" },\n" +
|
// "finance_institution_info:" +" {"+
|
// "finance_type:" + "BANK_AGENT,"+
|
// "finance_license_pics:" +"["+
|
// "example_finance_license_pics"+
|
// "]},"+
|
// "id_holder_type:" + "LEGAL,"+
|
" \"id_doc_type\" : \"IDENTIFICATION_TYPE_MAINLAND_IDCARD\",\n" +
|
// "authorize_letter_copy:" + "47ZC6GC-vnrbEny_Ie_An5-tCpqxucuxi-vByf3Gjm7KEIUv0OF4wFNIO4kqg05InE4d2I6_H7I4,"+
|
" \"id_card_info\" : {\n" +
|
" \"id_card_copy\" : "+ "\""+legalFront+"\""+","+
|
" \"id_card_national\" : "+ "\""+legalBack+"\""+","+
|
" \"id_card_name\" : "+ "\""+legalPerson+"\""+","+
|
" \"id_card_number\" : "+ "\""+leagleNumber+"\""+","+
|
" \"id_card_address\" : "+ "\""+legalAddress+"\""+","+
|
" \"id_card_valid_time_begin\" : "+ "\""+IDCardTime+"\""+","+
|
" \"id_card_valid_time\" : "+ "\""+IDCardEnd+"\""+","+
|
// "id_doc_info:" +
|
// "{id_doc_name:" + "jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ,"+
|
// "id_doc_number:" + "jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ,"+
|
// "id_doc_copy:" + "47ZC6GC-vnrbEny__Ie_An5-tCpqxucuxi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4,"+
|
// "id_doc_copy_back:" + "47ZC6GC-vnrbEny__Ie_An5-tCpqxucuxi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4,"+
|
// "id_doc_address:" + "jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ,"+
|
// "doc_period_begin:" + "2019-06-06,"+
|
// "doc_period_end:" + "2020-01-02},"+
|
|
" \"owner\" : true,\n" +
|
" \"account_info\" : {\n" +
|
" \"bank_account_type\" : "+ "\""+useType+"\""+","+
|
" \"account_bank\" : "+ "\""+bank+"\""+","+
|
" \"account_name\" : "+ "\""+accountName+"\""+","+
|
" \"bank_address_code\" :"+ "\""+cityCode+"\""+","+
|
" \"bank_branch_id\" : "+ "\""+bankCardTwo+"\""+","+
|
" \"bank_name\" : "+ "\""+bankName+"\""+","+
|
" \"account_number\" : "+ "\""+bankCard+"\""+","+
|
" \"contact_info\" : {\n" +
|
" \"contact_type\" : \"65\",\n" +
|
" \"contact_name\" :"+ "\""+legalPerson+"\""+","+
|
" \"contact_id_doc_type\" : \"IDENTIFICATION_TYPE_MAINLAND_IDCARD\",\n" +
|
" \"contact_id_card_number\" : "+ "\""+leagleNumber+"\""+","+
|
" \"contact_id_doc_copy\" : "+ "\""+legalFront+"\""+","+
|
" \"contact_id_doc_copy_back\" :"+ "\""+legalBack+"\""+","+
|
// "contact_id_doc_period_begin:"+ "2019-06-06,"+
|
// "contact_id_doc_period_end:" + "2026-06-06,"+
|
// "business_authorization_letter:" + "47ZC6GC-vnrbEny_Ie_An5-tCpqxucuxi-vByf3Gjm7KEIUv0OF4wFNIO4kqg05InE4d2I6_H7I4,"+
|
" \"mobile_phone\" : "+ "\""+legalPhone+"\""+","+
|
" \"contact_email\" : "+ "\""+legalEmail+"\""+
|
" },\n" +
|
" \"sales_scene_info\" : {\n" +
|
" \"store_name\" : \"爱烧烤\",\n" +
|
" \"store_url\" : \"http://www.qq.com\",\n" +
|
" \"store_qr_code\" : \"jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ\",\n" +
|
" \"mini_program_sub_appid\" : \"wxa123344545577\"\n" +
|
" },\n" +
|
" \"settlement_info\" : {\n" ;
|
if (Integer.parseInt(bodyType) == 4){
|
param = param+" \"settlement_id\" : 802,\n" +
|
" \"qualification_type\" : \"休闲娱乐/旅游服务\"\n" +" },\n" ;
|
}else{
|
param = param+" \"settlement_id\" : 800,\n" +
|
" \"qualification_type\" : \"休闲娱乐/旅游服务\"\n" +" },\n" ;
|
}
|
param+= " \"merchant_shortname\" : "+ "\""+aliasName+"\""+
|
|
// "qualifications:" + "[\"jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ\",\"47ZC6GC-vnrbEny__Ie_An5-tCpqxucuxi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4\"],"+
|
// "business_addition_pics:" + "[\"jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ\",\"47ZC6GC-vnrbEny__Ie_An5-tCpqxucuxi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4\"],"+
|
// "business_addition_desc:" + "特殊情况,说明原因,"+
|
// "ubo_info_list:"+ "[{"+
|
"\"ubo_info_list\" : [\n" +
|
" {\n" +
|
" \"ubo_id_doc_type\" : \"IDENTIFICATION_TYPE_MAINLAND_IDCARD\",\n" +
|
" \"ubo_id_doc_copy\" : "+ "\""+benefitsFront+"\""+
|
" \"ubo_id_doc_copy_back\" : "+ "\""+benefitsBack+"\""+
|
" \"ubo_id_doc_name\" : "+ "\""+benefitsName+"\""+
|
" \"ubo_id_doc_number\" : "+ "\""+benefitsNumber+"\""+
|
" \"ubo_id_doc_address\" : "+ "\""+benefitsAddress+"\""+
|
" \"ubo_id_doc_period_begin\" : "+ "\""+benefitsStartTime+"\""+
|
" \"ubo_id_doc_period_end\" : "+ "\""+benefitsEndTime+"\""+
|
" }\n" +
|
" ]"+
|
" }\n"+
|
" }\n"+
|
" }\n";
|
|
|
// 使用 Jackson 解析 JSON
|
ObjectMapper objectMapper = new ObjectMapper();
|
try {
|
// 将 JSON 字符串解析为 Map
|
Map<String, Object> map = objectMapper.readValue(param, Map.class);
|
|
// 输出 Map 中的内容
|
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
System.out.println(entry.getKey() + ": " + entry.getValue());
|
}
|
System.err.println(map);
|
String s = HttpRequestUtil.postRequest1("https://api.mch.weixin.qq.com/v3/ecommerce/applyments/", map);
|
System.err.println("返回结果:"+s);
|
JSONObject jsonObject = JSON.parseObject(s);
|
String string = jsonObject.getString("out_request_no");
|
// 获取业务申请编号 后续用该字段查询申请状态
|
operatorAuth.setOrderNo(string);
|
System.err.println(jsonObject);
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
System.err.println(param);
|
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 支付宝商户认证提交
|
*/
|
@RequestMapping(value = "/auth")
|
@ResponseBody
|
public Object auth(Integer operatorId,String bodyType,String businessName,String aliasName,String businessNumber,
|
String license,String name,String phone,String shopProvinceCode,String shopProvince,String shopCityCode,
|
String shopCity, String shopDistrictCode,String shopDistrict,String registerAddress,String legalPerson,
|
String leagleNumber,String legalFront,String legalBack,String accountType,String alipayAccount,
|
String bankCard,String useType,String cardType,String bankName,String bankNameTwo,
|
String accountName,String provinceCode,String province,String cityCode,String city,String zfbAccount,
|
String iqImage) {
|
UUID uuid = UUID.randomUUID();
|
// 通过运营商id查询
|
TOperator byId = operatorService.getById(operatorId);
|
Integer userId1 = byId.getUserId();
|
OperatorUser userId2 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("userId", userId1));
|
userId2.setAlipayAudit(1);
|
// 01是企业
|
if (bodyType.equals("01")){
|
userId2.setAlipayType(2);
|
}else{
|
userId2.setAlipayType(1);
|
}
|
operatorUserService.saveOrUpdate(userId2);
|
OperatorAuthAlipay data = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", operatorId));
|
// 调用支付宝接口 通过银行卡号获取银行信息
|
String url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&" +
|
"cardNo="+bankCard+"&cardBinCheck=true";
|
HashMap<String, String> hashMap = new HashMap<>();
|
String result = HttpRequestUtil.postRequest(url,hashMap);
|
System.err.println(result);
|
JSONObject json2 = JSONObject.parseObject(result);
|
String bank = json2.getString("bank");
|
String cardType1 = json2.getString("cardType");
|
// 根据银行卡号查询所属银行
|
String group=bank;
|
// if(StringUtils.hasLength(bankName)){
|
// Pattern pattern = Pattern.compile(".*[\\u4e00-\\u9fa5]+"); // 只保留汉字部分
|
// Matcher matcher = pattern.matcher(bankName);
|
// group = matcher.group();
|
// if (matcher.find()) {
|
// System.out.println("银行名称简写为:" + matcher.group());
|
// } else {
|
// System.out.println("无法获取到银行名称简写!");
|
// return 5007;
|
// }
|
// }
|
|
OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay();
|
if (data!=null){
|
operatorAuth.setId(data.getId());
|
if(legalFront==null || legalFront.equals("")){
|
legalFront = data.getLegalFront();
|
operatorAuth.setLegalFront(data.getLegalFront());
|
}
|
if(legalBack==null || legalBack.equals("")){
|
legalBack = data.getLegalBack();
|
operatorAuth.setLegalBack(data.getLegalBack());
|
}
|
if(iqImage==null || iqImage.equals("")){
|
iqImage = data.getIqImage();
|
operatorAuth.setIqImage(data.getIqImage());
|
}
|
|
if(license==null || license.equals("")){
|
license = data.getCertImage();
|
operatorAuth.setCertImage(data.getCertImage());
|
}
|
}else{
|
operatorAuth.setLegalFront(legalFront);
|
operatorAuth.setLegalBack(legalBack);
|
operatorAuth.setIqImage(iqImage);
|
operatorAuth.setCertImage(license);
|
if(license==null || license.equals("")){
|
// 未上传营业执照
|
return 5001;
|
}
|
if(legalFront==null || legalFront.equals("")){
|
// 未上传法人身份证正面照
|
return 5002;
|
}
|
if(legalBack==null || legalBack.equals("")){
|
// 未上传法人身份证背面照
|
return 5003;
|
}
|
}
|
String numericUUID = uuid.toString().replaceAll("-", "");
|
operatorAuth.setOutBizNo(numericUUID);
|
operatorAuth.setOperatorId(operatorId);
|
operatorAuth.setRegisterAddress(registerAddress);
|
operatorAuth.setAliasName(aliasName);
|
operatorAuth.setBodyType(bodyType);
|
operatorAuth.setName(name);
|
operatorAuth.setPhone(phone);
|
operatorAuth.setBusinessName(businessName);
|
operatorAuth.setBusinessNumber(businessNumber);
|
operatorAuth.setCertImage(license);
|
operatorAuth.setLegalPerson(legalPerson);
|
operatorAuth.setLegalFront(legalFront);
|
operatorAuth.setLegalBack(legalBack);
|
operatorAuth.setLeagleNumber(leagleNumber);
|
operatorAuth.setAccountType(accountType);
|
operatorAuth.setBankName(bankName);
|
operatorAuth.setAccountName(accountName);
|
operatorAuth.setBankCard(bankCard);
|
operatorAuth.setProvince(province);
|
operatorAuth.setProvinceCode(provinceCode);
|
operatorAuth.setCity(city);
|
operatorAuth.setCityCode(cityCode);
|
operatorAuth.setShopCity(shopCity);
|
operatorAuth.setShopProvince(shopProvince);
|
operatorAuth.setShopProvinceCode(shopProvinceCode);
|
operatorAuth.setShopCityCode(shopCityCode);
|
if(StringUtils.hasLength(province)&& province.equals("请选择省")){
|
operatorAuth.setProvince(null);
|
}
|
if(StringUtils.hasLength(city)&& province.equals("请选择市")){
|
operatorAuth.setCity(null);
|
}
|
operatorAuth.setProvince(province);
|
operatorAuth.setProvinceCode(provinceCode);
|
operatorAuth.setShopDistrict(shopDistrict);
|
operatorAuth.setShopDistrictCode(shopDistrictCode);
|
operatorAuth.setAlipayAccount(alipayAccount);
|
operatorAuth.setUseType(useType);
|
operatorAuth.setCardType(cardType);
|
operatorAuth.setBankNameTwo(bankNameTwo);
|
operatorAuth.setAuditState(0);
|
operatorAuth.setRefuseReason("");
|
operatorAuth.setZfbAccount(zfbAccount);
|
// 将图片上传至阿里存储
|
// 营业执照
|
String string = uploadImg(license).toString();
|
// 法人身份证正面照
|
legalFront = uploadImg(legalFront).toString();
|
// 法人身份证背面照
|
legalBack = uploadImg(legalBack).toString();
|
operatorAuthService.saveOrUpdate(operatorAuth);
|
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
|
aliAppid,
|
appPrivateKey,
|
"json","GBK",
|
alipay_public_key,
|
"RSA2");
|
AntMerchantExpandIndirectZftCreateRequest request = new AntMerchantExpandIndirectZftCreateRequest();
|
String param = "{" +
|
" \"external_id\":\""+numericUUID+"\"," +
|
" \"merchant_type\":\""+bodyType+"\"," +
|
" \"name\":\""+businessName+"\"," +
|
" \"alias_name\":\""+aliasName+"\"," +
|
" \"mcc\":\"B0068\"," +
|
" \"cert_no\":\""+businessNumber+"\"," +
|
" \"cert_type\":\"201\"," +
|
" \"cert_image\":\""+string+"\"," +
|
" \"legal_name\":\""+legalPerson+"\"," +
|
" \"legal_cert_no\":\""+leagleNumber+"\"," +
|
" \"legal_cert_front_image\":\""+legalFront+"\"," +
|
" \"legal_cert_back_image\":\""+legalBack+"\"," +
|
" \"contact_infos\":[" +
|
" {" +
|
" \"name\":\""+name+"\"," +
|
" \"mobile\":\""+phone+"\"," +
|
" }" +
|
" ],";
|
String biz_cards=" \"biz_cards\":[" +
|
" {" +
|
" \"account_holder_name\":\""+accountName+"\"," +
|
" \"account_no\":\""+bankCard+"\"," +
|
" \"account_inst_province\":\""+province+"\"," +
|
" \"account_inst_city\":\""+city+"\"," +
|
" \"account_branch_name\":\""+bankNameTwo+"\"," +
|
" \"usage_type\":\""+useType+"\"," +
|
" \"account_type\":\""+cardType+"\"," +
|
" \"account_inst_name\":\""+bankName+"\"," +
|
" \"account_inst_id\":\""+group+"\"," +
|
" }" +
|
" ]," ;
|
// 结算类型 支付宝账户 / 银行卡
|
String type ;
|
// 结算类型为支付宝 填写支付宝账号 结算类型为银行卡填写银行卡号
|
String account;
|
if (accountType.equals("bankCard")){
|
type = accountType;
|
account = bankCard;
|
}else{
|
type = accountType;
|
account = alipayAccount;
|
}
|
String res=
|
" \"service\":[" +
|
" \"app支付\"" +
|
" ]," +
|
" \"alipay_logon_id\":" +
|
" \""+zfbAccount+"\"" +
|
" ," +
|
" \"sites\":[" +
|
" {" +
|
" \"site_type\":\"02\"," +
|
" \"site_name\":\"玩湃生活\"," +
|
" \"tiny_app_id\":\"wx82f853a410b0c7c0\"" +
|
" }" +
|
" ]," +
|
" \"cert_name\":\""+businessName+"\","+
|
" \"binding_alipay_logon_id\":\""+zfbAccount+"\","+
|
" \"default_settle_rule\":{" +
|
" \"default_settle_type\":\""+type+"\"," +
|
" \"default_settle_target\":\""+account+"\"" +
|
" }" +
|
"}";
|
if (accountType.equals("bankCard")){
|
request.setBizContent(param
|
+ biz_cards+res);
|
}else{
|
request.setBizContent(param
|
+res);
|
}
|
AntMerchantExpandIndirectZftCreateResponse response = null;
|
try {
|
response = alipayClient.execute(request);
|
} catch (AlipayApiException e) {
|
e.printStackTrace();
|
}
|
if(response.isSuccess()){
|
System.out.println("调用成功");
|
JSONObject json = JSONObject.parseObject(response.getBody());
|
JSONObject json1 = json.getJSONObject("ant_merchant_expand_indirect_zft_create_response");
|
String order_no = json1.getString("order_id");
|
System.err.println("订单号"+order_no);
|
operatorAuth.setOrderNo(order_no);
|
operatorAuth.setRefuseReason("");
|
|
operatorAuthService.saveOrUpdate(operatorAuth);
|
Integer userId = operatorService.getById(operatorId).getUserId();
|
OperatorUser user = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId));
|
user.setAlipayAudit(1);
|
// 01是企业
|
if (bodyType.equals("01")){
|
user.setAlipayType(2);
|
}else{
|
user.setAlipayType(1);
|
}
|
operatorUserService.saveOrUpdate(user);
|
} else {
|
Integer userId = operatorService.getById(operatorId).getUserId();
|
OperatorUser user = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId));
|
user.setAlipayAudit(3);
|
operatorUserService.saveOrUpdate(user);
|
operatorAuth.setRefuseReason(response.getSubMsg());
|
if (response.getCode().equals("40004")){
|
String subMsg = response.getSubMsg();
|
return ResultUtil.error(subMsg);
|
}
|
}
|
return ResultUtil.success();
|
}
|
|
public static Object uploadImg(String img){
|
String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
|
String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
|
String aliAppid = "2021004105665036";//支付宝appid
|
AlipayConfig alipayConfig = new AlipayConfig();
|
alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
|
alipayConfig.setAppId(aliAppid);
|
alipayConfig.setPrivateKey(appPrivateKey);
|
alipayConfig.setFormat("json");
|
alipayConfig.setAlipayPublicKey(alipay_public_key);
|
alipayConfig.setCharset("UTF8");
|
alipayConfig.setSignType("RSA2");
|
AlipayClient alipayClient = null;
|
try {
|
alipayClient = new DefaultAlipayClient(alipayConfig);
|
} catch (AlipayApiException e) {
|
e.printStackTrace();
|
}
|
// 这是一个1x1像素的图片流
|
String imageBase64 = "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAEUlEQVR42mP4TyRgGFVIX4UAI/uOgGWVNeQAAAAASUVORK5CYII=";
|
// 下列FileItem中也可用直接读取本地文件的方式来获取文件
|
// FileItem imageContent = new FileItem("本地文件的绝对路径");
|
AntMerchantExpandIndirectImageUploadRequest request = new AntMerchantExpandIndirectImageUploadRequest();
|
FileItem imageContent = new FileItem(img, Base64.getDecoder().decode(imageBase64));
|
request.setImageContent(imageContent);
|
request.setImageType("jpg");
|
AntMerchantExpandIndirectImageUploadResponse response = null;
|
try {
|
response = alipayClient.execute(request);
|
} catch (AlipayApiException e) {
|
e.printStackTrace();
|
}
|
System.out.println(response.getBody());
|
if (response.isSuccess()) {
|
System.out.println("调用成功");
|
} else {
|
System.out.println("调用失败");
|
}
|
JSONObject json = JSONObject.parseObject(response.getBody());
|
String sign = json.getString("ant_merchant_expand_indirect_image_upload_response");
|
JSONObject r = JSONObject.parseObject(sign);
|
String image_id = r.getString("image_id");
|
return image_id;
|
}
|
|
/**
|
* 查询进件申请单审核状态
|
*/
|
public JSONObject queryState(String orderNo) {
|
String url = "https://api.mch.weixin.qq.com/v3/ecommerce/applyments/out-request-no/"+orderNo;
|
String req1 = HttpRequestUtil.getReq1(url, new HashMap<>());
|
System.err.println("查询申请单审核状态字符串"+req1);
|
JSONObject jsonObject = JSON.parseObject(req1);
|
System.err.println("查询申请单审核状态Json"+jsonObject);
|
String applymentState = jsonObject.getString("applyment_state");
|
String outBizNo = jsonObject.getString("out_request_no");
|
OperatorAuth operatorAuth = operatorAuthWxService.getOne(
|
new QueryWrapper<OperatorAuth>()
|
.eq("outBizNo", outBizNo));
|
OperatorUser operatorUser = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("operatorId", operatorAuth.getOperatorId()));
|
// 审核状态
|
operatorAuth.setApplymentState(applymentState);
|
if (applymentState.equals("REJECTED") || applymentState.equals("FROZEN")){
|
operatorUser.setWechatAudit(3);
|
operatorAuth.setAuditState(2);
|
// 如果被拒 赋值拒绝原因
|
operatorAuth.setRefuseReason(jsonObject.getJSONObject("audit_detail").getString("reject_reason"));
|
}
|
if (applymentState.equals("NEED_SIGN")){
|
operatorAuth.setSignUrl(jsonObject.getString("sign_url"));
|
operatorAuth.setMerchantNumber(jsonObject.getString("sub_mchid"));
|
}
|
if (applymentState.equals("FINISH")){
|
operatorAuth.setMerchantNumber(jsonObject.getString("sub_mchid"));
|
operatorUser.setWechatAudit(2);
|
operatorAuth.setAuditState(1);
|
}
|
if (applymentState.equals("ACCOUNT_NEED_VERIFY")){
|
operatorAuth.setLegalValidationUrl(jsonObject.getString("legal_validation_url"));
|
}
|
return jsonObject;
|
/**
|
* {
|
* "applyment_state" : "FINISH",
|
* "applyment_state_desc" : "审核中",
|
* "sign_url" : "https://pay.weixin.qq.com/public/apply4ec_sign/s?applymentId=2000002126198476&sign=b207b673049a32c858f3aabd7d27c7ec",
|
* "sub_mchid" : "1542488631",
|
* "account_validation" : {
|
* "account_name" : "aOf7Gk2qT26kakkuTZpbFAn7Mb7xcar0LlQaYoi3+LnnWwgAsfaUUTg9+GmYJq6YCz+RiluWHeHFq1lt8n3eIkF0laVvqmAU80xIWGZgWJnRmnRuZxsg0HJZfnUac2JfqyuL8OoyM2YSuYDqdsyvcOlgUQgq8MPCR6pmvhBCmIeJvnVSm8J+L+yx912itUmTDxhdBlu1CFBIUefME9nYB70vCVTNAVXgURkf65mjHMBiE9Y+wrPZVmTIIz3C3PtPVMZYDEvBT4rDdICA3ZYXshYqeOSslSjSMf+MhhC4oaujiISFzq3AE+as7mAEDJly+DgRuVs74msmKUH8pl+3oA==",
|
* "account_no" : "aOf7Gk2qT26kakkuTZpbFAn7Mb7xcar0LlQaYoi3+LnnWwgAsfaUUTg9+GmYJq6YCz+RiluWHeHFq1lt8n3eIkF0laVvqmAU80xIWGZgWJnRmnRuZxsg0HJZfnUac2JfqyuL8OoyM2YSuYDqdsyvcOlgUQgq8MPCR6pmvhBCmIeJvnVSm8J+L+yx912itUmTDxhdBlu1CFBIUefME9nYB70vCVTNAVXgURkf65mjHMBiE9Y+wrPZVmTIIz3C3PtPVMZYDEvBT4rDdICA3ZYXshYqeOSslSjSMf+MhhC4oaujiISFzq3AE+as7mAEDJly+DgRuVs74msmKUH8pl+3oA==",
|
* "pay_amount" : 124,
|
* "destination_account_number" : "7222223333322332",
|
* "destination_account_name" : "财付通支付科技有限公司",
|
* "destination_account_bank" : "招商银行威盛大厦支行",
|
* "city" : "深圳",
|
* "remark" : "入驻账户验证",
|
* "deadline" : "2018-12-10 17:09:01"
|
* },
|
* "audit_detail" : [
|
* {
|
* "param_name" : "id_card_copy",
|
* "reject_reason" : "身份证背面识别失败,请上传更清晰的身份证图片。"
|
* }
|
* ],
|
* "legal_validation_url" : "https://pay.weixin.qq.com/public/apply4ec_sign/s?applymentId=2000002126198476&sign=b207b673049a32c858f3aabd7d27c7ec",
|
* "out_request_no" : "APPLYMENT_00000000001",
|
* "applyment_id" : 2000002124775691,
|
* "sign_state" : "SIGNED"
|
* }
|
*/
|
}
|
|
/**
|
* 分账比例提交
|
*/
|
@RequestMapping(value = "/proportion")
|
@ResponseBody
|
public Object auth(Integer operatorIdOne ,String alipayProportion,String wechatProportion) {
|
OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", operatorIdOne));
|
id.setAlipayProportion(alipayProportion);
|
id.setWechatProportion(wechatProportion);
|
operatorUserService.updateById(id);
|
return SUCCESS_TIP;
|
}
|
|
|
// public static void main(String[] args) throws URISyntaxException {
|
// String filePath = "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/a5e24fc4b13b4ea48bb2455ad8662a5d.jpg"; // 替换成你的OSS图片链接
|
// String string = UUID.randomUUID().toString();
|
// try {
|
// URL url = new URL(filePath);
|
// InputStream inputStream = url.openStream();
|
// // 这里可以根据需求处理 inputStream,比如保存到本地文件
|
// // 例如保存到本地文件
|
// saveInputStreamToFile(inputStream, "D:\\tempImg\\"+string+".jpg");
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
// URI uri = new URI("https://api.mch.weixin.qq.com/v3/merchant/media/upload");
|
// File file = new File("D:\\tempImg\\"+string+".jpg");
|
// try (FileInputStream ins1 = new FileInputStream(file)) {
|
// String sha256 = DigestUtils.sha256Hex(ins1);
|
// try (InputStream ins2 = new FileInputStream(file)) {
|
// HttpPost request = new WechatPayUploadHttpPost.Builder(uri)
|
// .withImage(file.getName(), sha256, ins2)
|
// .build();
|
//// CloseableHttpResponse response1 = httpClient.execute(request);
|
// }
|
// } catch (IOException e) {
|
// throw new RuntimeException(e);
|
// }
|
// }
|
private static void saveInputStreamToFile(InputStream inputStream, String filePath) throws IOException {
|
OutputStream outputStream = new FileOutputStream(filePath);
|
byte[] buffer = new byte[1024];
|
int bytesRead;
|
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
outputStream.write(buffer, 0, bytesRead);
|
}
|
outputStream.close();
|
inputStream.close();
|
}
|
/**
|
* 微信商户认证上传图片
|
*/
|
@RequestMapping(value = "/wxUpload")
|
@ResponseBody
|
public Object wxUpload(String img) throws URISyntaxException, FileNotFoundException {
|
String filePath = "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/a5e24fc4b13b4ea48bb2455ad8662a5d.jpg"; // 替换成你的OSS图片链接
|
String string = UUID.randomUUID().toString();
|
try {
|
URL url = new URL(filePath);
|
InputStream inputStream = url.openStream();
|
// 这里可以根据需求处理 inputStream,比如保存到本地文件
|
// 例如保存到本地文件
|
|
|
saveInputStreamToFile(inputStream, "D:\\tempImg\\"+string+".jpg");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
URI uri = new URI("https://api.mch.weixin.qq.com/v3/merchant/media/upload");
|
File file = new File("D:\\tempImg\\"+string+".jpg");
|
try (FileInputStream ins1 = new FileInputStream(file)) {
|
String sha256 = DigestUtils.sha256Hex(ins1);
|
try (InputStream ins2 = new FileInputStream(file)) {
|
HttpPost request = new WechatPayUploadHttpPost.Builder(uri)
|
.withImage(file.getName(), sha256, ins2)
|
.build();
|
// CloseableHttpResponse response1 = httpClient.execute(request);
|
}
|
} catch (IOException e) {
|
throw new RuntimeException(e);
|
}
|
return null;
|
}
|
// 辅助方法:将 InputStream 转换为 FileInputStream
|
private static FileInputStream convertInputStreamToFileInputStream(InputStream inputStream) throws IOException {
|
// 将 InputStream 转为临时文件,然后返回其 FileInputStream
|
File tempFile = File.createTempFile("temp", null);
|
org.apache.commons.io.IOUtils.copy(inputStream, new java.io.FileOutputStream(tempFile));
|
return new FileInputStream(tempFile);
|
}
|
|
/**
|
* 跳转运营商设置分账比例页面
|
*/
|
@RequestMapping("/proportion/{id}")
|
public String proportion(Model model,@PathVariable("id") Integer id) {
|
OperatorUser o = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", id));
|
model.addAttribute("id",id);
|
model.addAttribute("alipayProportion",o.getAlipayProportion());
|
model.addAttribute("wechatProportion",o.getWechatProportion());
|
model.addAttribute("alipayNum",o.getAlipayNum());
|
model.addAttribute("wechatNum",o.getWechatNum());
|
return PREFIX + "OperatorUser_proportion.html";
|
}
|
/**
|
* 批量重置密码
|
* @return
|
*/
|
@RequestMapping(value = "/pwd")
|
@ResponseBody
|
public Object pwd(@RequestBody OperatorRestPwd pwd ) {
|
try {
|
List<TOperator> list = operatorService.list(new QueryWrapper<TOperator>().in("id",pwd.getIds()));
|
List<Integer> userIds = list.stream()
|
.map(TOperator::getUserId)
|
.collect(Collectors.toList());
|
String a123456 = SecureUtil.md5("a123456");
|
List<User> users = userService.list(new QueryWrapper<User>().in("id", userIds));
|
for (User user : users) {
|
user.setPassword(a123456);
|
}
|
userService.updateBatchById(users);
|
return SUCCESS_TIP;
|
}catch (Exception e){
|
e.printStackTrace();
|
return ERROR;
|
}
|
}
|
/**
|
* 1为解冻 2为冻结
|
*
|
* @return
|
*/
|
@RequestMapping("/changeState")
|
@ResponseBody
|
public Object changeState(@RequestBody CoachChangeStateVO vo){
|
operatorService.changeState(vo);
|
List<Integer> ids = vo.getIds();
|
// 将运营商账号也冻结
|
List<TOperator> list = operatorService.list(new QueryWrapper<TOperator>()
|
.in("id",ids));
|
// 用户ids
|
List<Integer> collect = list.stream().map(TOperator::getUserId).collect(Collectors.toList());
|
for (Integer integer : collect) {
|
User user = new User();
|
user.setId(integer);
|
user.setStatus(vo.getState());
|
userService.updateById(user);
|
}
|
return ResultUtil.success();
|
}
|
/**
|
* 添加运营商
|
*/
|
@ResponseBody
|
@RequestMapping(value = "/addOperator")
|
public ResultUtil addOperator(String name,String userName,String phone,Integer type , String comArr) {
|
User one = userService.getOne(new QueryWrapper<User>().eq("name", name).eq("phone", phone));
|
if (one!=null){
|
return ResultUtil.error("当前管理员名称和电话已存在!");
|
}
|
User user = new User();
|
user.setName(userName);
|
user.setPhone(phone);
|
user.setObjectType(2);
|
String s = MD5.md5("a123456");
|
user.setPassword(s);
|
user.setAccount(phone);
|
user.setRoleid("2");
|
user.setObjectType(2);
|
user.setStatus(1);
|
userService.save(user);
|
TOperator data = new TOperator();
|
data.setUserId(user.getId());
|
data.setName(name);
|
data.setType(type);
|
data.setStatus(1);
|
data.setState(1);
|
operatorService.save(data);
|
// 添加运营商认证数据
|
OperatorUser operatorUser = new OperatorUser();
|
operatorUser.setUserId(user.getId());
|
operatorUser.setAlipay("支付宝");
|
operatorUser.setWechat("微信");
|
operatorUser.setAlipayType(3);
|
operatorUser.setWechatType(3);
|
operatorUser.setOperatorId(data.getId());
|
// 添加运营商商户认证
|
operatorUser.setAlipayProportion("未设置");
|
operatorUser.setWechatProportion("未设置");
|
operatorUser.setWechatAudit(0);
|
operatorUser.setAlipayAudit(0);
|
operatorUserService.save(operatorUser);
|
user.setObjectId(data.getId());
|
userService.updateById(user);
|
if (SinataUtil.isNotEmpty(comArr)){
|
JSONArray jsonArray = JSON.parseArray(comArr);
|
int size = jsonArray.size();
|
for (int i = 0; i < size; i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
TOperatorCity province = new TOperatorCity();
|
TOperatorCity city = new TOperatorCity();
|
TOperatorCity one1 = operatorCityService.getOne(new QueryWrapper<TOperatorCity>()
|
.eq("name", jsonObject.getString("province"))
|
.eq("operatorId", data.getId()));
|
// 省
|
if (one1==null){
|
province.setName(jsonObject.getString("province"));
|
province.setCode(jsonObject.getInteger("provinceCode"));
|
province.setPid(0);
|
province.setType(jsonObject.getInteger("areaType"));
|
province.setOperatorId(data.getId());
|
city.setPid(province.getId());
|
operatorCityService.save(province);
|
// 市
|
if (!jsonObject.getString("city").equals("")){
|
city.setName(jsonObject.getString("city"));
|
city.setCode(jsonObject.getInteger("cityCode"));
|
city.setPid(province.getId());
|
city.setType(jsonObject.getInteger("areaType"));
|
city.setOperatorId(data.getId());
|
operatorCityService.save(city);
|
}
|
}else{
|
// 市
|
if (!jsonObject.getString("city").equals("")){
|
city.setName(jsonObject.getString("city"));
|
city.setCode(jsonObject.getInteger("cityCode"));
|
city.setPid(one1.getId());
|
city.setType(jsonObject.getInteger("areaType"));
|
city.setOperatorId(data.getId());
|
operatorCityService.save(city);
|
}
|
}
|
}
|
}
|
|
|
return ResultUtil.success("添加成功");
|
}
|
/**
|
* 添加运营商
|
*/
|
@ResponseBody
|
@RequestMapping(value = "/updateOperator")
|
public ResultUtil updateOperator(Integer id,String name,String userName
|
,String phone,Integer type ,@RequestParam String comArr) {
|
User one = userService.getOne(new QueryWrapper<User>().eq("name", name).eq("phone", phone));
|
if (one!=null){
|
return ResultUtil.error("当前管理员名称和电话已存在!");
|
}
|
operatorCityService.remove(new QueryWrapper<TOperatorCity>().eq("operatorId",id));
|
User user = userService.getOne(new QueryWrapper<User>().eq("objectId", id).
|
eq("objectType", 2));
|
user.setName(userName);
|
user.setAccount(phone);
|
user.setPhone(phone);
|
userService.updateById(user);
|
TOperator data = new TOperator();
|
data.setId(id);
|
data.setUserId(user.getId());
|
data.setName(name);
|
data.setType(type);
|
data.setStatus(1);
|
data.setState(1);
|
operatorService.updateById(data);
|
if (type != 1){
|
if (SinataUtil.isNotEmpty(comArr)){
|
JSONArray jsonArray = JSON.parseArray(comArr);
|
int size = jsonArray.size();
|
for (int i = 0; i < size; i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
TOperatorCity province = new TOperatorCity();
|
TOperatorCity city = new TOperatorCity();
|
TOperatorCity one1 = operatorCityService.getOne(new QueryWrapper<TOperatorCity>()
|
.eq("name", jsonObject.getString("province"))
|
.eq("operatorId", data.getId()));
|
// 省
|
if (one1==null){
|
province.setName(jsonObject.getString("province"));
|
province.setCode(jsonObject.getInteger("provinceCode"));
|
province.setPid(0);
|
province.setType(jsonObject.getInteger("areaType"));
|
province.setOperatorId(data.getId());
|
city.setPid(province.getId());
|
operatorCityService.save(province);
|
// 市
|
if (!jsonObject.getString("city").equals("")){
|
city.setName(jsonObject.getString("city"));
|
city.setCode(jsonObject.getInteger("cityCode"));
|
city.setPid(province.getId());
|
city.setType(jsonObject.getInteger("areaType"));
|
city.setOperatorId(data.getId());
|
operatorCityService.save(city);
|
}
|
}else{
|
// 市
|
if (!jsonObject.getString("city").equals("")){
|
city.setName(jsonObject.getString("city"));
|
city.setCode(jsonObject.getInteger("cityCode"));
|
city.setPid(one1.getId());
|
city.setType(jsonObject.getInteger("areaType"));
|
city.setOperatorId(data.getId());
|
operatorCityService.save(city);
|
}
|
}
|
}
|
}
|
}
|
return ResultUtil.success("添加成功");
|
}
|
|
|
|
/**
|
* 获取所有运营商
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/getOperatorListAll")
|
public Object getOperatorListAll(){
|
return operatorService.list(new QueryWrapper<TOperator>().eq("state", 1));
|
}
|
}
|