44323
2023-11-24 ae9bfd2d66f68a553786ac78b12f4390e65e4e09
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -5,33 +5,35 @@
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.ICityService;
import com.dsh.guns.modular.system.service.IUserService;
import com.dsh.guns.modular.system.service.TOperatorCityService;
import com.dsh.guns.modular.system.service.TOperatorService;
import com.dsh.guns.modular.system.service.*;
import com.dsh.guns.modular.system.util.ResultUtil;
import io.swagger.models.auth.In;
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.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -49,9 +51,29 @@
    @Autowired
    private TOperatorCityService operatorCityService;
    @Autowired
    private IOperatorUserService operatorUserService;
    @Autowired
    private IUserService userService;
    @Autowired
    private ICityService cityService;
    @Autowired
    private IOperatorAuthService operatorAuthService;
    @Autowired
    private IStoreService storeService;
    /**
     * 根据运营商id查询所有门店
     */
    @RequestMapping("/getStores")
    @ResponseBody
    public List<TStore> getStores(Integer id)
    {
        return storeService.list(new QueryWrapper<TStore>()
                .eq("operatorId",id)
                .ne("state",3));
    }
    /**
     * 跳转运营商管理首页
     */
@@ -127,7 +149,304 @@
        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);
        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("provinceList",list);
        model.addAttribute("data",data);
        OperatorAuth info = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", id));
        model.addAttribute("item",info);
        if (info==null){
            OperatorAuth operatorAuth = new OperatorAuth();
            model.addAttribute("item",operatorAuth);
            model.addAttribute("bodyType",0);
            model.addAttribute("code",null);
            model.addAttribute("reasons",null);
        }else{
            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(value = "/auth")
    @ResponseBody
    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();
        OperatorAuth data = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", operatorId));
        OperatorAuth operatorAuth = new OperatorAuth();
        if (data!=null){
            operatorAuth.setId(data.getId());
            if(businessPicture==null || businessPicture.equals("")){
                operatorAuth.setBusinessPicture(data.getBusinessPicture());
                businessPicture = data.getBusinessPicture();
            }
            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(beneficiaryFront==null || beneficiaryFront.equals("")){
                beneficiaryFront = data.getBeneficiaryFront();
                operatorAuth.setBeneficiaryFront(data.getBeneficiaryFront());
            }
            if(beneficiaryBack==null || beneficiaryBack.equals("")){
                beneficiaryBack = data.getBeneficiaryBack();
                operatorAuth.setBeneficiaryBack(data.getBeneficiaryBack());
            }
        }
        String numericUUID = uuid.toString().replaceAll("-", "");
        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",
                "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==","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.saveOrUpdate(operatorAuth);
            // 通过运营商id找到用户id
            TOperator byId = operatorService.getById(operatorId);
            if (byId!=null){
                Integer userId = byId.getUserId();
                OperatorUser userId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId));
                if (userId1!=null){
                    // 设置为审核中状态
                    userId1.setAlipayAudit(1);
                    userId1.setWechatAudit(1);
                }
            }
        } else {
            System.out.println("调用失败");
        }
        return SUCCESS_TIP;
    }
    public static Object uploadImg(String img){
        String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==";
        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;
    }
    /**
     * 分账比例提交
     */
    @RequestMapping(value = "/proportion")
    @ResponseBody
    public Object auth(String alipayProportion,String wechatProportion,Integer operatorIdOne ) {
        OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("id", 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("operatorIdOne",o.getId());
        model.addAttribute("alipayProportion",o.getAlipayProportion());
        model.addAttribute("wechatProportion",o.getWechatProportion());
        return PREFIX + "OperatorUser_proportion.html";
    }
    /**
     * 批量重置密码
     * @return
@@ -140,7 +459,7 @@
            List<Integer> userIds = list.stream()
                    .map(TOperator::getUserId)
                    .collect(Collectors.toList());
            String a123456 = SecureUtil.md5("123456");
            String a123456 = SecureUtil.md5("a123456");
            List<User> users = userService.list(new QueryWrapper<User>().in("id", userIds));
            for (User user : users) {
                user.setPassword(a123456);
@@ -161,6 +480,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();
    }
    /**
@@ -168,7 +499,7 @@
     */
    @ResponseBody
    @RequestMapping(value = "/addOperator")
    public ResultUtil addOperator(String name,String userName,String phone,Integer type ,@RequestParam String comArr) {
    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("当前管理员名称和电话已存在!");
@@ -177,6 +508,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());
@@ -185,6 +522,22 @@
        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();
@@ -226,6 +579,8 @@
                }
            }
        }
        return ResultUtil.success("添加成功");
    }
    /**
@@ -233,19 +588,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());