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.AlipayMerchantIndirectAuthorderCreateRequest;
|
import com.alipay.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest;
|
import com.alipay.api.request.AntMerchantExpandIndirectImageUploadRequest;
|
import com.alipay.api.request.AntMerchantExpandIndirectZftCreateRequest;
|
import com.alipay.api.response.AlipayMerchantIndirectAuthorderCreateResponse;
|
import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse;
|
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.course.feignClient.account.model.Coach;
|
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.model.*;
|
import com.dsh.guns.modular.system.service.*;
|
|
import com.dsh.guns.modular.system.util.PayMoneyUtil;
|
import com.dsh.guns.modular.system.util.ResultUtil;
|
|
import com.github.binarywang.wxpay.service.BankService;
|
import com.mysql.cj.x.protobuf.MysqlxExpr;
|
import org.apache.poi.ss.formula.functions.T;
|
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 java.util.*;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
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 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("/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);
|
}
|
|
/**
|
* 跳转运营商商户去认证页面
|
*/
|
@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("/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);
|
|
model.addAttribute("data",data);
|
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);
|
}
|
|
|
|
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(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 bankName = "中国工商银行"; // 要转换为简写的银行名称
|
|
Pattern pattern = Pattern.compile("([\\u4e00-\\u9fa5]+)(?=\\s+[A-Za-z]+$)");
|
Matcher matcher = pattern.matcher(bankName);
|
if (matcher.find()) {
|
System.out.println(matcher.group()); // 输出结果:"工商银行" -> "ICBC"
|
} else {
|
System.out.println("无法识别该银行名称!");
|
}
|
}
|
/**
|
* 支付宝商户认证提交
|
*/
|
@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));
|
// 0未认证 1待审核 2通过 3驳回
|
userId2.setAlipayAudit(1);
|
operatorUserService.updateById(userId2);
|
OperatorAuthAlipay data = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", operatorId));
|
String group="ABC";
|
// 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);
|
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+"\"," +
|
" }" +
|
" ],";
|
|
// todo 拼接
|
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 (StringUtils.hasLength(alipayAccount)){
|
type = accountType;
|
account = alipayAccount;
|
}else{
|
type = accountType;
|
account = bankCard;
|
}
|
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);
|
}
|
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 {
|
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;
|
}
|
|
/**
|
* 分账比例提交
|
*/
|
@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;
|
}
|
/**
|
* 跳转运营商设置分账比例页面
|
*/
|
@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("添加成功");
|
}
|
}
|