From 9ac52631cc628cd01d4c761ed9467963447d4f9a Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期二, 22 七月 2025 18:27:52 +0800 Subject: [PATCH] 司机端新增注册地址 服务商 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 223 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 180 insertions(+), 43 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index 019cede..12ce5f8 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java @@ -1,7 +1,9 @@ package com.stylefeng.guns.modular.api; +import cn.hutool.core.io.FileUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.stylefeng.guns.config.properties.GunsProperties; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; @@ -10,9 +12,13 @@ import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; +import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.system.model.vo.CompanyVo; import com.stylefeng.guns.modular.system.service.*; -import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.ALiSendSms; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.util.WeChatUtil; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; @@ -21,14 +27,19 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.io.InputStream; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; + +import static org.bouncycastle.cms.RecipientId.password; /** * 司机控制器 @@ -38,46 +49,55 @@ @RestController @RequestMapping("") public class DriverController { - - @Autowired - private RedisUtil redisUtil; + + @Resource + private RedisTemplate<String, Object> redisTemplate; @Autowired private IDriverService driverService; - + @Autowired private IOrderPositionService orderPositionService; - + @Autowired private ISmsrecordService smsrecordService; - + @Autowired private IDriverOrdersService driverOrdersService; - + @Autowired private ICarService carService; - + @Autowired - private ALiSendSms aLiSendSms; - + private RegionMapper regionMapper; + @Autowired private IOrderTaxiService orderTaxiService; - + @Autowired private IIncomeService incomeService; - + @Autowired private IOrderPrivateCarService orderPrivateCarService; - + @Autowired private IOrderCrossCityService orderCrossCityService; - + @Autowired private IOrderLogisticsService orderLogisticsService; + + @Autowired + private GunsProperties gunsProperties; + @Autowired + private ICompanyService companyService; + @Autowired + private ICompanyCityService companyCityService; + /** * 获取短信验证码 + * * @param phone * @return */ @@ -88,21 +108,22 @@ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "场景类型(1=身份验证,2=登录确认,3=用户注册,4=修改密码)", name = "type", required = true, dataType = "String") }) - public ResultUtil queryCaptcha(String phone, Integer type){ - if(ToolUtil.isNotEmpty(phone)){ + public ResultUtil queryCaptcha(String phone, Integer type) { + if (ToolUtil.isNotEmpty(phone)) { try { return driverService.queryCaptcha(phone, type); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); return ResultUtil.runErr(); } - }else{ + } else { return ResultUtil.paranErr(); } } - + /** * 验证短信验证码 + * * @param phone * @param code * @return @@ -215,21 +236,22 @@ return ResultUtil.runErr(); } } - - + + /** * 司机注册审核后的短信 + * * @param uid * @param type * @return */ @ResponseBody @PostMapping("/base/driver/sendsms") - public ResultUtil sendsms(Integer uid, Integer type){ + public ResultUtil sendsms(Integer uid, Integer type) { try { Driver driver = driverService.selectById(uid); String templateCode = null; - switch (type){ + switch (type) { case 1: templateCode = "SMS_229648175";//身份验证 break; @@ -249,7 +271,8 @@ templateCode = "SMS_229613326";//司机注册失败 break; } - String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}"); +// String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}"); +// SMSUtil.sendVerifyCode(driver.getPhone()); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); @@ -652,7 +675,7 @@ */ @ResponseBody @PostMapping("/api/driver/queryMyCar") - @ApiOperation(value = "获取当前车辆及空闲车辆", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "获取当前车辆及空闲车辆 新增useState 1使用中 2空闲", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @@ -1277,6 +1300,65 @@ /** + * 获取省市区3级联动 + * @return + */ + @ResponseBody + @GetMapping("/base/driver/getRegion") + @ApiOperation(value = "获取省市区3级联动", tags = {"司机端-注册"}, notes = "") + @ApiImplicitParams({ + }) + public ResultUtil<List<Region>> getRegion(){ + try { + List<Region> regions = regionMapper.selectList(null); + List<Region> regionList = regions.stream().filter(e -> e.getParentId() == 0).collect(Collectors.toList()); + for (Region region : regionList) { + region.setTire(1); + List<Region> regionList1 = regions.stream().filter(e -> e.getParentId().equals(region.getId())).collect(Collectors.toList()); + for (Region region1 : regionList1) { + region1.setTire(2); + List<Region> regionList2 = regions.stream().filter(e -> e.getParentId().equals(region1.getId())).collect(Collectors.toList()); + region1.setChildren(regionList2); + } + region.setChildren(regionList1); + } + return ResultUtil.success(regionList); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + @ResponseBody + @GetMapping("/base/driver/getCompany") + @ApiOperation(value = "通过区code获取服务商", tags = {"司机端-注册"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "区code", name = "areaCode", required = true, dataType = "String"), + + }) + public ResultUtil<List<CompanyVo>> getCompany(String areaCode){ + try { + + ArrayList<CompanyVo> companyVos = new ArrayList<>(); + List<CompanyCity> companyCities = companyCityService.selectList(new EntityWrapper<CompanyCity>().eq("areaCode", areaCode).eq("state", 1)); + if(companyCities.isEmpty()){ + return ResultUtil.success(companyVos); + } + List<Company> companies = companyService.selectList(new EntityWrapper<Company>().eq("type", 2).ne("flag", 3).in("id", companyCities.stream().map(CompanyCity::getCompanyId).collect(Collectors.toList()))); + for (Company company : companies) { + CompanyVo companyVo = new CompanyVo(company.getId(), company.getName()); + companyVos.add(companyVo); + } + return ResultUtil.success(companyVos); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + /** * 设置提现密码 * @param withdrawPassword * @param request @@ -1401,29 +1483,35 @@ @Autowired private WeChatUtil weChatUtil; + @ResponseBody @PostMapping("/api/driver/getDriverCode") @ApiOperation(value = "获取司机端的二维码", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil getDriverCode(HttpServletRequest request){ + public ResultUtil getDriverCode(HttpServletRequest request) { try { Integer driverId = driverService.getUserIdFormRedis(request); - if(null == driverId){ + if (null == driverId) { return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); - if(driver!=null){ + if (driver != null) { String fileName = driver.getQrCode(); - if(fileName==null || "".equals(fileName) ){ + if (fileName == null || "".equals(fileName)) { String appletPath = "pages/home/scanPage/scanPage"; //HttpURLConnection httpURLConnection = weChatUtil.getwxacodeunlimit(appletPath, "d=" + driverId + "&k=" + 0, "release",driverId); - InputStream inputStream = weChatUtil.getwxacodeunlimit(appletPath, "driverId=" + driverId , "release"); - if(inputStream!=null){ - fileName = OssUploadUtil.ossUploadByStream(driverId,inputStream); - System.out.println(fileName); - driver.setQrCode(fileName); + InputStream inputStream = weChatUtil.getwxacodeunlimit(appletPath, "driverId=" + driverId, "release"); + if (inputStream != null) { + // 上传文件目录 + fileName = UUID.randomUUID().toString() + ".png"; + String fileSavePath = gunsProperties.getFileUploadPath() + "img\\"; + FileUtil.writeFromStream(inputStream, fileName); + String pictureName = gunsProperties.getPictureServerAddress() + "img/" + fileName; +// fileName = OssUploadUtil.ossUploadByStream(driverId, inputStream); + System.out.println(pictureName); + driver.setQrCode(pictureName); driverService.updateById(driver); } } @@ -1451,25 +1539,74 @@ public ResultUtil cancellation(HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); - if(null == driverId){ + if (null == driverId) { return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); driver.setAuthState(3); driverService.updateById(driver); //开始验证当前账号是否在别处登录 - String value = redisUtil.getValue("DRIVER_" + driverId); - if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线 + String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driverId); + if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线 //开始清除redis中无效的数据 - String key = redisUtil.getValue("DRIVER_" + driver.getPhone()); - redisUtil.remove(key);//删除个人信息数据 - redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 - redisUtil.remove("DRIVER_" + driverId);//清除存储的token + String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone()); + redisTemplate.delete(key);//删除个人信息数据 + redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 + redisTemplate.delete("DRIVER_" + driverId);//清除存储的token } return ResultUtil.success(); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); return ResultUtil.runErr(); } } + + + @ResponseBody + @GetMapping("/base/driver/getDriverInfo") + public void getDriverInfo(String lsu, String ssologinid, String ticket, HttpSession session) { + try { + String onconParam = edu.yale.its.tp.cas.client.Util.getOnconParam(session); + onconParam = new String(Base64.getDecoder().decode(onconParam), "UTF-8"); + System.err.println("lsu: " + lsu + ",ticket: " + ticket + ",ssologinid: " + ssologinid); + } catch (Exception e) { + e.printStackTrace(); + } + } + + +// @ResponseBody +// @RequestMapping(value = "/base/driver/uploadImg", method = RequestMethod.POST) +// @ApiOperation(value = "上传图片", tags = {"司机端-注册"}, notes = "") +// public ResultUtil uploadImg(MultipartFile file) { +// try { +// String bucketName = "grjy_test"; +// Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName); +// if (null == grjyTest) { +// //创建桶 +// Boolean bucket = NCOSSUtil.createBucket(bucketName); +// if (!bucket) { +// return ResultUtil.error("创建存储桶失败"); +// } +// //设置桶策略 +// String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"]" + +// ",\"Effect\":\"Allow\",\"Resource\":[\"" + bucketName + "\"/*],\"Principal\":{*}}]}"; +// Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText); +// if (!bucketPolicy) { +// return ResultUtil.error("设置桶策略失败"); +// } +// } +// //上传对象 +// String key = "image/driver/" + UUID.randomUUID().toString() + ".png"; +// String object = NCOSSUtil.putObject(bucketName, key, file.getInputStream()); +// if (null == object) { +// return ResultUtil.error("上传图片失败"); +// } +// +// return ResultUtil.success("http://" + QianYunTongProperties.endPoint + "/" + key); +// } catch (Exception e) { +// e.printStackTrace(); +// return ResultUtil.runErr(); +// } +// } } -- Gitblit v1.7.1