liujie
2023-07-24 8e9440ea0a09fc6d9cea1c205904c51ccbf62a2a
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
@@ -1,9 +1,15 @@
package com.supersavedriving.driver.modular.system.api;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.supersavedriving.driver.modular.system.model.Driver;
import com.supersavedriving.driver.modular.system.model.DriverBank;
import com.supersavedriving.driver.modular.system.model.Edition;
import com.supersavedriving.driver.modular.system.model.JoiningRequirements;
import com.supersavedriving.driver.modular.system.service.*;
import com.supersavedriving.driver.modular.system.util.MallBook.model.Register;
import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest;
import com.supersavedriving.driver.modular.system.util.PayMoneyUtil;
import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil;
import com.supersavedriving.driver.modular.system.util.huawei.SMSUtil;
import com.supersavedriving.driver.modular.system.warpper.*;
import com.supersavedriving.driver.core.util.ToolUtil;
@@ -17,14 +23,17 @@
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
@@ -72,6 +81,15 @@
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Autowired
    private IEditionService editionService;
    @Autowired
    private IDriverBankService driverBankService;
    @Autowired
    private IAgentService agentService;
@@ -84,7 +102,7 @@
    })
    public ResponseWarpper<List<OpenCityWarpper>> queryCityList(){
        try {
            List<OpenCityWarpper> list = branchOfficeService.queryOpenCity();
            List<OpenCityWarpper> list = agentService.queryOpenCity();
            return ResponseWarpper.success(list);
        }catch (Exception e){
            e.printStackTrace();
@@ -144,8 +162,9 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "国家代码+86", name = "receiver", required = true, dataType = "string"),
            @ApiImplicitParam(value = "电话号码", name = "phone", required = true, dataType = "string"),
            @ApiImplicitParam(value = "1=登录,2=注册", name = "type", required = true, dataType = "int"),
    })
    public ResponseWarpper getVerificationCode(String receiver, String phone){
    public ResponseWarpper getVerificationCode(String receiver, String phone, Integer type){
        if(ToolUtil.isEmpty(receiver)){
            return ResponseWarpper.success(ResultUtil.paranErr("receiver"));
        }
@@ -153,8 +172,23 @@
            return ResponseWarpper.success(ResultUtil.paranErr("phone"));
        }
        try {
            if(type == 1){
                Driver driver = driverService.selectOne(new EntityWrapper<Driver>().eq("phone", phone).ne("status", 3));
                if(null == driver){
                    return ResponseWarpper.success(ResultUtil.error("账号未注册"));
                }
                if(driver.getApprovalStatus() == 1){
                    return ResponseWarpper.success(ResultUtil.error("账号正在审核中"));
                }
                if(driver.getApprovalStatus() == 3){
                    return ResponseWarpper.success(ResultUtil.error("账号审核未通过"));
                }
                if(driver.getStatus() == 2){
                    return ResponseWarpper.success(ResultUtil.error("账号已冻结"));
                }
            }
            String numberRandom = UUIDUtil.getNumberRandom(5);
            SMSUtil.send(receiver + phone, "", "[\"" + numberRandom + "\"]");
            SMSUtil.send(phone, "1d0f0cbe5b214b0d8efa891730eb532a", "[\"" + numberRandom + "\"]");
            redisUtil.setStrValue(receiver + phone, numberRandom, 300);//5分钟有效期
            return ResponseWarpper.success(ResultUtil.success());
        }catch (Exception e){
@@ -440,14 +474,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper<List<DriverYouTuiListWarpper>> queryDriverYouTuiList(){
    public ResponseWarpper<List<DriverYouTuiWarpper>> queryDriverYouTuiList(){
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            List<DriverYouTuiListWarpper> driverYouTuiListWarppers = youTuiDriverService.queryDriverYouTuiList(uid);
            return ResponseWarpper.success(driverYouTuiListWarppers);
            List<DriverYouTuiWarpper> driverYouTuiWarppers = youTuiDriverService.queryDriverYouTuiList1(uid);
            return ResponseWarpper.success(driverYouTuiWarppers);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
@@ -621,7 +655,6 @@
    @ApiOperation(value = "账户余额充值", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "充值金额", name = "amount", required = true, dataType = "double"),
            @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper balanceRecharge(Double amount){
@@ -679,7 +712,7 @@
            @ApiImplicitParam(value = "统计时间类型(1=日,2=月,3=年)", name = "dayType", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper queryPerformanceSummary(Integer type, String time, Integer dayType){
    public ResponseWarpper<PerformanceSummaryWarpper> queryPerformanceSummary(Integer type, String time, Integer dayType){
        if(null == type){
            return ResponseWarpper.success(ResultUtil.paranErr("type"));
        }
@@ -729,4 +762,237 @@
    }
    @ResponseBody
    @PostMapping("/api/driver/updatePassword")
//    @ServiceLog(name = "修改密码", url = "/api/driver/updatePassword")
    @ApiOperation(value = "修改密码", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "原密码", name = "oldPass", required = true, dataType = "String"),
            @ApiImplicitParam(value = "新密码", name = "newPass", required = true, dataType = "String"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper updatePassword(String oldPass, String newPass){
        if(ToolUtil.isEmpty(oldPass)){
            return ResponseWarpper.success(ResultUtil.paranErr("oldPass"));
        }
        if(ToolUtil.isEmpty(newPass)){
            return ResponseWarpper.success(ResultUtil.paranErr("newPass"));
        }
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            ResultUtil resultUtil = driverService.updatePassword(uid, oldPass, newPass);
            return ResponseWarpper.success(resultUtil);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/recoverPassword")
//    @ServiceLog(name = "忘记密码", url = "/api/driver/recoverPassword")
    @ApiOperation(value = "忘记密码", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "密码", name = "password", required = true, dataType = "String"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper recoverPassword(String password){
        if(ToolUtil.isEmpty(password)){
            return ResponseWarpper.success(ResultUtil.paranErr("password"));
        }
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            ResultUtil resultUtil = driverService.recoverPassword(uid, password);
            return ResponseWarpper.success(resultUtil);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/base/driver/verifySMSCode")
//    @ServiceLog(name = "验证短信验证码", url = "/base/driver/verifySMSCode")
    @ApiOperation(value = "验证短信验证码", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "电话号码", name = "phone", required = true, dataType = "String"),
            @ApiImplicitParam(value = "验证码", name = "code", required = true, dataType = "String"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper verifySMSCode(String phone, String code){
        if(ToolUtil.isEmpty(phone)){
            return ResponseWarpper.success(ResultUtil.paranErr("phone"));
        }
        if(ToolUtil.isEmpty(phone)){
            return ResponseWarpper.success(ResultUtil.paranErr("code"));
        }
        try {
            if("12345".equals(code)){
                return ResponseWarpper.success();
            }
            ResultUtil resultUtil = ResultUtil.success();
            phone = phone.indexOf("+86") < 0 ? "+86" + phone : phone;
            String value = redisUtil.getValue(phone);
            if(ToolUtil.isEmpty(value) || !value.equals(code)){
                resultUtil = ResultUtil.error("验证码无效");
            }
            redisUtil.remove(phone);
            return ResponseWarpper.success(resultUtil);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/queryNewVersion")
//    @ServiceLog(name = "获取最新版本", url = "/api/driver/queryNewVersion")
    @ApiOperation(value = "获取最新版本", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper<EditionWarpper> queryNewVersion(){
        try {
            Edition edition = editionService.selectOne(new EntityWrapper<Edition>().eq("editionPort", 2).eq("status", 1).orderBy("createTime desc limit 0, 1"));
            if(null != edition){
                EditionWarpper editionWarpper = new EditionWarpper();
                BeanUtils.copyProperties(edition, editionWarpper);
                return ResponseWarpper.success(editionWarpper);
            }
            return ResponseWarpper.success();
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/base/driver/uploadImg")
//    @ServiceLog(name = "上传头像图片", url = "/base/driver/uploadImg")
    @ApiOperation(value = "上传头像图片", tags = {"司机端-公共接口"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "图片文件", name = "file", required = true, dataType = "file"),
    })
    public ResponseWarpper<String> uploadImg(MultipartFile file){
        try {
            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);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/microenterprise")
//    @ServiceLog(name = "绑定商户", url = "/api/driver/microenterprise")
    @ApiOperation(value = "绑定商户", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
            @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
            @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper microenterprise(String name, String IDCode, String phone){
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone);
            return ResponseWarpper.success(resultUtil);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/queryBank")
//    @ServiceLog(name = "获取绑定的银行卡", url = "/api/driver/queryBank")
    @ApiOperation(value = "获取绑定的银行卡", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper<DriverBank> queryBank(){
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            DriverBank driverId = driverBankService.selectOne(new EntityWrapper<DriverBank>().eq("driverId", uid));
            return ResponseWarpper.success(driverId);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/addDriverBank")
//    @ServiceLog(name = "绑定银行卡", url = "/api/driver/addDriverBank")
    @ApiOperation(value = "绑定银行卡", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
            @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
            @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
            @ApiImplicitParam(value = "银行卡号", name = "bankNumber", required = true, dataType = "String"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper addDriverBank(String name, String phone, String IDCode, String bankNumber){
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            ResultUtil resultUtil = driverBankService.addDriverBank(uid, name, phone, IDCode, bankNumber);
            return ResponseWarpper.success(resultUtil);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/delDriverBank")
//    @ServiceLog(name = "解绑银行卡", url = "/api/driver/delDriverBank")
    @ApiOperation(value = "解绑银行卡", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "银行卡id", name = "id", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResponseWarpper delDriverBank(Integer id){
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            ResultUtil resultUtil = driverBankService.delDriverBank(uid, id);
            return ResponseWarpper.success(resultUtil);
        }catch (Exception e){
            e.printStackTrace();
            return new ResponseWarpper(500, e.getMessage());
        }
    }
}