From 200acf9283ff06e75874df263b1e125a71e76215 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期五, 27 十月 2023 14:57:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java | 246 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 218 insertions(+), 28 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 bce667a..cfe4f46 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,32 @@ 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.response.AlipayMerchantIndirectAuthorderCreateResponse; +import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse; +import com.alipay.api.response.AntMerchantExpandIndirectImageUploadResponse; 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.ResultUtil; -import io.swagger.models.auth.In; -import org.apache.catalina.valves.RemoteIpValve; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; -import java.text.SimpleDateFormat; + import java.util.*; import java.util.stream.Collectors; @@ -54,6 +53,8 @@ private IUserService userService; @Autowired private ICityService cityService; + @Autowired + private IOperatorAuthService operatorAuthService; /** * 跳转运营商管理首页 */ @@ -134,31 +135,218 @@ */ @RequestMapping("/proportionAuth/{id}") public String proportionAuth(Model model,@PathVariable("id") Integer id) { - model.addAttribute("operatorId",id); + model.addAttribute("id",id); + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("provinceList",list); return PREFIX + "OperatorUser_proportionAuth.html"; } + /** * 商户认证提交 */ @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); + public Object auth(String beneficiaryEnd,String businessEnd,String legalEnd, String name,String phone,String number,Integer operatorId,String bodyType,Integer type,String businessName,String businessNumber, + String legalRepresentative,String registerAddress,String businessTerm,String businessPicture, + String legalPerson,String legalNumber,String legalPhone,String legalEmail,String legalTerm, + String legalAddress,String legalFront,String legalBack,Integer accountType,String bank, + String accountName,String province,String provinceCode,String city,String cityCode, + String bankName,String bankNumber,String isBeneficiary,String beneficiary,String beneficiaryPhone, + String beneficiaryNumber,String beneficiaryAddress,String beneficiaryTerm,String beneficiaryFront,String beneficiaryBack, + String remark) { + UUID uuid = UUID.randomUUID(); + String numericUUID = uuid.toString().replaceAll("-", ""); + OperatorAuth operatorAuth = new OperatorAuth(); + operatorAuth.setName(name); + operatorAuth.setPhone(phone); + operatorAuth.setNumber(number); + operatorAuth.setBusinessEnd(businessEnd); + operatorAuth.setLegalEnd(legalEnd); + operatorAuth.setBeneficiaryEnd(beneficiaryEnd); + operatorAuth.setOperatorId(operatorId); + operatorAuth.setBodyType(bodyType); + operatorAuth.setType(type); + operatorAuth.setBusinessName(businessName); + operatorAuth.setBusinessNumber(businessNumber); + operatorAuth.setLegalRepresentative(legalRepresentative); + operatorAuth.setRegisterAddress(registerAddress); + operatorAuth.setBusinessTerm(businessTerm); + operatorAuth.setOutBizNo(numericUUID); + operatorAuth.setBusinessPicture(businessPicture); + operatorAuth.setLegalPerson(legalPerson); + operatorAuth.setLeagleNumber(legalNumber); + operatorAuth.setLegalPhone(legalPhone); + operatorAuth.setLegalEmail(legalEmail); + operatorAuth.setLegalTerm(legalTerm); + operatorAuth.setLegalAddress(legalAddress); + operatorAuth.setLegalFront(legalFront); + operatorAuth.setLegalBack(legalBack); + operatorAuth.setAccountType(accountType); + operatorAuth.setBank(bank); + operatorAuth.setAccountName(accountName); + operatorAuth.setProvince(province); + operatorAuth.setProvinceCode(provinceCode); + operatorAuth.setCity(city); + operatorAuth.setCityCode(cityCode); + operatorAuth.setBankName(bankName); + operatorAuth.setBankNumber(bankNumber); + operatorAuth.setAuditState(0); + operatorAuth.setIsBeneficiary(isBeneficiary); + operatorAuth.setBeneficiary(beneficiary); + operatorAuth.setBeneficiaryNumber(beneficiaryNumber); + operatorAuth.setBeneficiaryAddress(beneficiaryAddress); + operatorAuth.setBeneficiaryTerm(beneficiaryTerm); + operatorAuth.setBeneficiaryFront(beneficiaryFront); + operatorAuth.setBeneficiaryBack(beneficiaryBack); + operatorAuth.setRefuseReason(""); + operatorAuth.setRemark(remark); + + + // 将图片上传至阿里存储 + // 营业执照 + String string = uploadImg(businessPicture).toString(); + // 法人身份证正面照 + legalFront = uploadImg(legalFront).toString(); + // 法人身份证背面照 + legalBack = uploadImg(legalBack).toString(); + + if (bodyType.equals("ENTERPRISE")){ + // 受益人身份证正面照 + beneficiaryFront=uploadImg(beneficiaryFront).toString(); + // 受益人身份证背面照 + beneficiaryBack=uploadImg(beneficiaryBack).toString(); + } + + + //第二步:提交申请单 + AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021004123692417", + "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDe188UHA8lR8CjG6KeKIYjYw6UfpJOl7nyklpiZKfbJ1q70D+LEdEZbWrzZ2eSwqeD+7B/ZV8Hyum9vrU6FPbgc6q/vy73ji0o1AhQP0GPPtcnNaAP9IppwchTSEjvODKMHSotB64LSBuFLgtAGSAJ6nHPXlEcyV5Y4Dev/E1JD3b9N2uTXilW5zZ2o1IxwXBIxuU0Tw7wHXUjcaXbpGuQUGIq54fzsbqP4TjSVoa8S41FhbtP9n61NulUtGFRfyHxpo/kj4cx3o6P4s+PBo/T2DlaMkpI6cRx0rfjL1ZkXrDJLYcCokUKxiJ/trrGjdYFUz6r2TGe1kAnjehkW+TTAgMBAAECggEAWMKtAN2MStUhrdY8F7Mcesvh6tPfgt58elpBFh/xnCE4ysZQCRy3pOEoUHtHjfVqs+90hcni6D+yipmDpfbjvtNTl7yXAJPo+PI7vXr0qhHlsQBzGOfWmflNyZ5pLp+7woN7YSRF9shp7cpBQO7BDDIN0wNGW6j5o3zrsXVVc1uu5ndD0kxV6XM3P43EY8mMdRXT9UmF0WTomLQ7JxhlY23fgYmS7USZUKkN9BkKAbwnxdskDnFT94infup4kbWoPr5DFeMESPdsE+tNbbUGCKzqYzgoTpf5jOKThyt1/HQWCuYLbui3GDJ704eEPypFDgl8Mh+y8UOBiuKfjB4xgQKBgQD+v0cO6rU7ce7R3y+4LgZoEGfEfjvWGH+BEowDk0UFIWxfPlwgTGl5/OZHO7Y55QQzNsxxl8jUIXxVicyhYoKI0+uOeJ7bKmi08hb6BAQ1eTRaukRtMBbCo/FvBbE14vt2dnpidvCPv/KC0sQG1J+vUxUzSt94URvxNVBcRbsXCQKBgQDf8F1QZ4pUYP9KSCmUWbzpotAr+m84Q7Oqf4zc70p8rU8nGQSnNrQQWddqwF/UEiNniDj+n0FVwiEMslRWSqPYixyqI3dHuVxhi/4wdoIewCHq3MkcqHksl9y67Bhl8HXMGmg79IxiCsqj7oEF8aGJjAyEZm3d2roz0QNPQCaX+wKBgQCazX+Px/7jpcN7k4W7BXTtLfLwy8juvCpXM/8TeR27FWl2oz12fxilgZIp/VYp7kpUGNu5t4PZrJOSo09PTr6GCUmeZRwbkLTaKDbgLSqlmAbBj2lfdJaQJvHjBnF+jnVCspKCXUaoA/uJlix6/iAfeXxrk/cidR9mv4Aa4mDjiQKBgG2+SKyfoT3KrzFC/gVymM7SeDwlJZ4oJ4M1sN2Q8yr4b+LUMuCTQVkF/jiVgCDYprsVGgFGIGmbkkC7n/MN7w+u1ORYLxtaLnird21ellPlinmjq3c85O1CmuyLyUUju0bD5jMDnExrx3Tg7B/yk1xp4rR70fm4OCoukvWilYdDAoGBAK3Y77tqbno+D6W95fb8xb4xUUd1tEWgSY6CgjaqTRzbJ38cGuo92gBjKhDGLwaztcCw4yKPhEOum7nBGKKyxFfs8Z4vsG+m19JSdBfHf3PLModZwnjrRpatAnjTUW0DbPz+sfAwMgLnTCpElcSRQwjmioVAucCyd2FlMmqP5xB4","json","GBK", + "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2"); + AlipayMerchantIndirectAuthorderCreateRequest request = new AlipayMerchantIndirectAuthorderCreateRequest(); + String param = "{" + + " \"out_biz_no\":\""+uuid+"\"," + + " \"contact_person_info\":{" + + " \"contact_name\":\""+name+"\"," + + " \"contact_phone_no\":\""+phone+"\"," + + " \"contact_card_no\":\""+number+"\"," + + " \"contact_cert_type\":\"RESIDENT\"" + + " }," + + " \"auth_identity_info\":{" + + " \"identity_type\":\""+bodyType+"\"," + + " \"is_financial_org\":false," + + " \"certificate_type\":\"BUSINESS_CERT\"," + + " \"certificate_info\":{" + + " \"cert_no\":\""+businessNumber+"\"," + + " \"cert_image\":\""+string+"\"," + + " \"merchant_name\":\""+businessName+"\"," + + " \"legal_person_name\":\""+legalRepresentative+"\"," + + " \"register_address\":\""+registerAddress+"\"," + + " \"effect_time\":\""+businessTerm+"\"," + + " \"expire_time\":\""+businessEnd+"\"" + + " }," + + " }," + + " \"legal_person_info\":{" + + " \"card_type\":\"RESIDENT\"," + + " \"person_name\":\""+legalRepresentative+"\"," + + " \"card_no\":\""+legalNumber+"\"," + + " \"effect_time\":\""+legalTerm+"\"," + + " \"expire_time\":\""+legalEnd+"\"," + + " \"card_front_img\":\""+legalFront+"\"," + + " \"card_back_img\":\""+legalBack+"\"," + + " \"is_benefit_person\":"+isBeneficiary+"" + + " },"; + String bene = " \"benefit_person_info\":{" + + " \"person_name\":\""+beneficiary+"\"," + + " \"card_no\":\""+beneficiaryNumber+"\"," + + " \"card_type\":\"RESIDENT\"," + + " \"effect_time\":\""+beneficiaryTerm+"\"," + + " \"expire_time\":\""+beneficiaryEnd+"\"," + + " \"card_front_img\":\""+beneficiaryFront+"\"," + + " \"card_back_img\":\""+beneficiaryBack+"\"" + + " },"; + if (bodyType.equals("ENTERPRISE")){ + request.setBizContent(param + + bene+ + "}"); + }else{ + request.setBizContent(param + + + "}"); + } + + AlipayMerchantIndirectAuthorderCreateResponse 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("alipay_merchant_indirect_authorder_create_response"); + String order_no = json1.getString("order_no"); + String order_status = json1.getString("order_status"); +// // 申请单号 +// String orderNo = r.getString("order_no"); + /** + * 状态 审核中(AUDITING)、待联系人确认(CONTACT_CONFIRM), + * 待法人确认(LEGAL_CONFIRM)、审核通过(AUDIT_PASS)、 + * 审核失败(AUDIT_REJECT)、已冻结(AUDIT_FREEZE)、 + * 已撤回(CANCELED)、联系人处理中(CONTACT_PROCESSING) + */ +// String orderStatus = r.getString("order_status"); + operatorAuth.setOrderNo(order_no); + operatorAuth.setOrderStatus(order_status); + operatorAuthService.save(operatorAuth); + } else { + System.out.println("调用失败"); + } return SUCCESS_TIP; } + public static Object uploadImg(String img){ + String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCSsmylIHe0j0pRQrB9p5ljryk9Qg2Z/JgIh+gtZES1TDo35YVw24aRRt7pkY7oHIZqpMRmSsWND1t63LVuNlpq532LG0iEJVJS53GzpRoHDD3iD01GmUoNjkCL36NCrbY0hTDDw7GZnYuJ8194Sss7OEoi7Mghg/XUreX4awwpWngTepCF7zs0S4YJQWyGY4JI6ooGraW23siBVY5MUI9XXLL6UKIExUfKe7zRihs8SrTHNnXtDT6EKYYo8P6M90Xuk173QsK2Xguk1FQ5Blh2ts7UvZVjP+WoQwDvrnqruve5kzDD9gwnAYUvhY66mtlxeub9nf5LLTtCliXeUZpNAgMBAAECggEAaPShSM9e9d9jM5p8PZqw4yJKZhqhMqAHgmsCUZ+gjPn52U4s198oez5ydDgBP85Q2XIDVpB+oPrw34mTgUQAEuaG6wTdMDannMscjYQ9h/dZOyjph+5ajjJNugWKgEVazF7S0e1sXtTaJhvrHVyd5UPTvwMb+Oa59q1okQC91cNa2vJzXiC7dfqWXZW/otmmOpcIcCN8dVDG3YhAuc5ZiT78Ca8x9GHWfw7cw1FRewRZlp/YnD2fJeWEesfvGCV36zCksrJrZz5MFMdf1Qh6+tHxK+E5sPNGdbooviTRnNWrsgyS9NcXFSQItOZQHsbLVID/Bs0kxkYPzbsfX1vRXQKBgQDsBDNZxpmSZJZ/4HfCOfHytWAkH/GHE3GOYH4TdHKLXfxRCinU23OtdrU2Sy8tBZvaajDKkWvMkjWT2w+56+z+xTprTf2PL/LS9zWCc8LPKbif6NfnwaOE8pIBrvkBskGKwbIE2fFVT0B4hNsR80TbPxvvAfCKjUj67qrTXSal+wKBgQCfHiuq/gLuSD2fuplzCwu0Rm/wr56bUpxhq9WNGaPOybR6EPq/wTKp0ow+f9uSuTm2NZhi/TWTXHOizy9vcZChRpj03a7NYwUOw36zvW7SHuF0Uhsp8TrZTyCj1XdhdLyJ9JMyL2DTRpGtLUR01ZSrdXPax7/Xu+OHubijqRD2VwKBgFqCveKm7AwdMS43OhYtPKE0d3tDGNARX9IXJSJ23Nqfn3zApgwwYKtcQ+BfcucUKJHZeX6lyC56v7tFHkHRvWBy6JVwIlZAMCJBla7CkCn8OQZyOCJzuy7oC6BDptDEuKfq4kdEAW4S54mQgabfoT9nc2H0X3fy+NLqpm5KYeDzAoGAYerlIILUNuKJ2aOxDpS7jSLTfB/20MqTpZ9i+UPQBE8oGv4b8Kjpjowc9dEkxDPsCe8Nac08jQSVvJkXLdOLF1QkiHtrOMU4tY8kh2OJsRCD2Vs1kCf8+QGyql+Q6Y43AAZcFsQFJ78Dorh6qhNNO/45X2cQ7aeYK0vlDgHaiF0CgYA4k9Q1tc8sU67TgT9cmMM6hG7/Rf3cU3PIdYuojs1EIG+1BJ7TlEiNAHoPtphlGFFeDP3SVnf59RfYH+BbLiz1JX9p/KFKRRkoXtfd6bySVWHvj4x2WiVpKFvHxhxc3LRubx0ryLGR/tpUJzxp+9luanU/WgSRFKiEZJZqFjjDzw=="; + String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB"; + AlipayConfig alipayConfig = new AlipayConfig(); + alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); + alipayConfig.setAppId("2021004123692417"); + alipayConfig.setPrivateKey(privateKey); + alipayConfig.setFormat("json"); + alipayConfig.setAlipayPublicKey(alipayPublicKey); + 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; + } + /** * 分账比例提交 */ @@ -236,6 +424,7 @@ user.setAccount(phone); user.setRoleid("2"); user.setObjectType(2); + user.setStatus(1); userService.save(user); TOperator data = new TOperator(); data.setUserId(user.getId()); @@ -287,6 +476,7 @@ } } } + return ResultUtil.success("添加成功"); } /** -- Gitblit v1.7.1