From 032f7c07e272dae9a857ed76b480dc391dc4073f Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 12 三月 2024 14:18:47 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0 --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java | 663 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 588 insertions(+), 75 deletions(-) diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java index 824324e..c1d7f8f 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java @@ -5,33 +5,44 @@ 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.CityManagerClient; -import com.dsh.course.feignClient.account.CoachClient; -import com.dsh.course.feignClient.account.CoachTypeClient; -import com.dsh.course.feignClient.account.model.CityManager; + import com.dsh.course.feignClient.account.model.Coach; -import com.dsh.course.feignClient.account.model.CoachSerchVO; -import com.dsh.course.feignClient.account.model.CoachType; -import com.dsh.guns.config.UserExt; 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.service.impl.TOperatorUserServiceImpl; + +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 io.swagger.models.auth.In; -import org.apache.catalina.valves.RemoteIpValve; + +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.text.SimpleDateFormat; + import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -48,11 +59,34 @@ @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)); + } + /** * 跳转运营商管理首页 */ @@ -128,43 +162,475 @@ page.setRecords(list); return super.packForBT(page); } + /** * 跳转运营商商户去认证页面 */ @RequestMapping("/proportionAuth/{id}") public String proportionAuth(Model model,@PathVariable("id") Integer id) { - model.addAttribute("operatorId",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); + 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(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); +// +// } + + + /** + * 支付宝商户认证提交 */ @RequestMapping(value = "/auth") @ResponseBody - public Object auth(Integer alipayType,Integer wechatType,String alipayNum,String wechatNum,Integer operatorId ) { - TOperator id = operatorService.getOne(new QueryWrapper<TOperator>().eq("id", operatorId)); - OperatorUser operatorUser = new OperatorUser(); - operatorUser.setUserId(id.getUserId()); - operatorUser.setAlipay("支付宝"); - operatorUser.setWechat("微信"); - operatorUser.setWechatType(wechatType); - operatorUser.setAlipayType(alipayType); - operatorUser.setAlipayNum(alipayNum); - operatorUser.setWechatNum(wechatNum); - operatorUser.setOperatorId(operatorId); - operatorUserService.save(operatorUser); - // 修改运营商状态为 已认证 - id.setStatus(2); - operatorService.updateById(id); - return SUCCESS_TIP; + 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+"\"," + + " }" + + " ],"; + // 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 (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; + } + /** * 分账比例提交 */ @RequestMapping(value = "/proportion") @ResponseBody - public Object auth(String alipayProportion,String wechatProportion,Integer operatorIdOne ) { - OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("id", operatorIdOne)); + 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); @@ -176,9 +642,11 @@ @RequestMapping("/proportion/{id}") public String proportion(Model model,@PathVariable("id") Integer id) { OperatorUser o = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", id)); - model.addAttribute("operatorIdOne",o.getId()); + 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"; } /** @@ -214,6 +682,18 @@ @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(); } /** @@ -230,6 +710,12 @@ 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()); @@ -238,6 +724,20 @@ 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)){ @@ -281,6 +781,8 @@ } } } + + return ResultUtil.success("添加成功"); } /** @@ -288,19 +790,19 @@ */ @ResponseBody @RequestMapping(value = "/updateOperator") - public ResultUtil updateOperator(Integer id,String name,String userName,String phone,Integer type ,@RequestParam String comArr) { + 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 = new User(); + User user = userService.getOne(new QueryWrapper<User>().eq("objectId", id). + eq("objectType", 2)); user.setName(userName); + user.setAccount(phone); user.setPhone(phone); - user.setObjectType(2); - String a123456 = SecureUtil.md5("a123456"); - user.setPassword(a123456); - userService.save(user); + userService.updateById(user); TOperator data = new TOperator(); data.setId(id); data.setUserId(user.getId()); @@ -310,48 +812,59 @@ 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")); + 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()); - 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); + 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)); + } } -- Gitblit v1.7.1