Pu Zhibing
2 天以前 bf174ea0bf750cf0818bc7b3472cbdc7485fdf18
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
@@ -1,41 +1,46 @@
package com.supersavedriving.driver.modular.system.api;
import com.alibaba.fastjson.JSONObject;
import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.supersavedriving.driver.core.util.ToolUtil;
import com.supersavedriving.driver.modular.system.dao.MonthOrderMapper;
import com.supersavedriving.driver.modular.system.model.*;
import com.supersavedriving.driver.modular.system.service.*;
import com.supersavedriving.driver.modular.system.util.ALiSendSms;
import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature;
import com.supersavedriving.driver.modular.system.util.MiniPay.MiniAppPay;
import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil;
import com.supersavedriving.driver.modular.system.util.huawei.SMSUtil;
import com.supersavedriving.driver.modular.system.util.juhe.OCRUtil;
import com.supersavedriving.driver.modular.system.util.separateAccounts.StrUtil;
import com.supersavedriving.driver.modular.system.util.separateAccounts.TransferUtil;
import com.supersavedriving.driver.modular.system.warpper.*;
import com.supersavedriving.driver.core.util.ToolUtil;
import com.supersavedriving.driver.modular.system.util.RedisUtil;
import com.supersavedriving.driver.modular.system.util.ResultUtil;
import com.supersavedriving.driver.modular.system.util.UUIDUtil;
import com.supersavedriving.driver.modular.system.warpper.DriverPositionWarpper;
import com.supersavedriving.driver.modular.system.warpper.DriverRegisterWarpper;
import com.supersavedriving.driver.modular.system.warpper.PromotionWarpper;
import com.supersavedriving.driver.modular.system.warpper.TokenWarpper;
import com.supersavedriving.driver.modular.system.util.juhe.OCRUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.SMSUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.UserUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.model.QYTUserInfo;
import com.supersavedriving.driver.modular.system.util.qianyuntong.model.SendSmsRequest;
import com.supersavedriving.driver.modular.system.util.separateAccounts.StrUtil;
import com.supersavedriving.driver.modular.system.util.separateAccounts.TransferUtil;
import com.supersavedriving.driver.modular.system.util.zhenglian.TokenUtil;
import com.supersavedriving.driver.modular.system.util.zhenglian.model.TokenRequest;
import com.supersavedriving.driver.modular.system.util.zhenglian.model.TradeTerminalInfo;
import com.supersavedriving.driver.modular.system.warpper.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.InputStream;
import java.io.PrintWriter;
import java.time.LocalDateTime;
@@ -83,8 +88,6 @@
    @Autowired
    private ISystemConfigService systemConfigService;
    @Autowired
    private IEditionService editionService;
@@ -96,6 +99,12 @@
    @Autowired
    private TCheckFacilitatorService checkFacilitatorService;
    @Value("${filePath}")
    private String filePath;
    @Value("${qyt.admin_url}")
    private String adminUrl;
@@ -158,6 +167,8 @@
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/base/driver/orcPhoto")
//    @ServiceLog(name = "司机注册申请", url = "/base/driver/driverRegister")
@@ -211,9 +222,15 @@
                }
            }
            String numberRandom = UUIDUtil.getNumberRandom(5);
//            SMSUtil.send(phone, "1d0f0cbe5b214b0d8efa891730eb532a", "[\"" + numberRandom + "\"]");
            String sData = aLiSendSms.sendSms(phone,"SMS_154775435", "{\"code\":\"" + numberRandom + "\"}");
            SendSmsRequest request = new SendSmsRequest();
            request.setDestAddress(phone);
            request.setTemplateId("TPL202410290001");
            Map<String, String> templateParams = new HashMap<>();
            templateParams.put("code", numberRandom);
            request.setTemplateParams(templateParams);
            request.setCode("code");
            request.setSpId("T8d5hdfg");
            SMSUtil.sendSms(request);
            redisUtil.setStrValue(receiver + phone, numberRandom, 300);//5分钟有效期
            return ResponseWarpper.success(ResultUtil.success());
        }catch (Exception e){
@@ -908,7 +925,6 @@
    /**
     * 账户余额充值支付回调
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/driver/balanceRechargeCallback")
@@ -1060,6 +1076,13 @@
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            Driver driver1 = driverService.selectById(uid);
            BranchOffice branchOffice = branchOfficeService.selectById(driver1.getBranchOfficeId());
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver1.getPhone(), branchOffice.getEnterCode());
            if (null == userInfoByPhone || userInfoByPhone.size() == 0) {
                return new ResponseWarpper(500, "账号未注册");
            }
            ResultUtil resultUtil = driverService.updatePassword(uid, oldPass, newPass);
            return ResponseWarpper.success(resultUtil);
        }catch (Exception e){
@@ -1085,6 +1108,12 @@
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            Driver driver1 = driverService.selectById(uid);
            BranchOffice branchOffice = branchOfficeService.selectById(driver1.getBranchOfficeId());
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver1.getPhone(), branchOffice.getEnterCode());
            if (null == userInfoByPhone || userInfoByPhone.size() == 0) {
                return new ResponseWarpper(500, "账号未注册");
            }
            ResultUtil resultUtil = driverService.recoverPassword(uid, password);
            return ResponseWarpper.success(resultUtil);
@@ -1167,8 +1196,15 @@
            InputStream inputStream = file.getInputStream();
            String name = file.getOriginalFilename();
            name = UUIDUtil.getRandomCode() + name.substring(name.lastIndexOf("."));
            String s = OBSUtil.putObjectToBucket(inputStream, name);
            return ResponseWarpper.success(s);
            File file1 = FileUtil.writeFromStream(inputStream, new File(filePath + name));
            HttpRequest post = HttpUtil.createPost(adminUrl + "/upload/image");
            post.form("file", file1);
            HttpResponse execute = post.execute();
            int status = execute.getStatus();
            if(200 != status){
                throw new RuntimeException("上传图片异常");
            }
            return ResponseWarpper.success(execute.body());
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
@@ -1375,4 +1411,48 @@
            e.printStackTrace();
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/getZLToken")
    @ApiOperation(value = "获取证联token(黔云通)", tags = {"司机端-首页"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "当前设备IP地址", name = "ip", required = true, dataType = "String"),
            @ApiImplicitParam(value = "当前设备mac地址", name = "mac", required = true, dataType = "String"),
            @ApiImplicitParam(value = "01 证联收银台支付\n" +
                    "\t 04 HOME 页\n" +
                    "\t 06 申请免密签约\n" +
                    "\t 07 商户收银台支付\n" +
                    "\t 08 开户(绑卡)\n" +
                    "\t 09 开通支付账户\n" +
                    "\t 10 打开付款码", name = "type", required = true, dataType = "String"),
    })
    public ResponseWarpper<String> getZLToken(String ip, String mac, String type, HttpServletRequest request){
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            Driver driver = driverService.selectById(uid);
            TokenRequest tokenRequest = new TokenRequest();
            tokenRequest.setAppUserId(driver.getEmpId().toString());
            tokenRequest.setUserName(driver.getName());
            tokenRequest.setCertNo(driver.getIdcard());
            tokenRequest.setPhone(driver.getPhone());
            TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo();
            tradeTerminalInfo.setIp(ip);
            tradeTerminalInfo.setTerminal("1");
            tradeTerminalInfo.setMac(mac);
            tokenRequest.setTradeTerminalInfo(tradeTerminalInfo);
            tokenRequest.setType(type);
            String token = TokenUtil.getToken(tokenRequest);
            return ResponseWarpper.success(token);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
}