| | |
| | | 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; |
| | | |
| | | |
| | |
| | | @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)); |
| | | } |
| | | |
| | | /** |
| | | * 跳转运营商管理首页 |
| | | */ |
| | |
| | | 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); |
| | | |
| | | 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); |
| | | 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)); |
| | | |
| | | 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 { |
| | | 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); |
| | |
| | | @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"; |
| | | } |
| | | /** |
| | |
| | | @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(); |
| | | } |
| | | /** |
| | |
| | | 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.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)){ |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | return ResultUtil.success("添加成功"); |
| | | } |
| | | /** |
| | |
| | | */ |
| | | @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()); |
| | |
| | | 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("添加成功"); |
| | | } |