From 0a8d28436b2f7229ecdf40c6b003902002c8947f Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 16 十月 2025 17:37:08 +0800
Subject: [PATCH] 修改bug
---
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 451 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 416 insertions(+), 35 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 20d4b61..0e9dffc 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,9 +1,14 @@
package com.stylefeng.guns.modular.api;
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.stylefeng.guns.config.properties.GunsProperties;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
@@ -12,12 +17,17 @@
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.*;
import com.stylefeng.guns.modular.system.service.*;
-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.util.qianyuntong.SMSUtil;
+import com.stylefeng.guns.modular.system.util.zhenglian.CallbackUtil;
+import com.stylefeng.guns.modular.system.util.zhenglian.TokenUtil;
+import com.stylefeng.guns.modular.system.util.zhenglian.model.MessageBody;
+import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest;
+import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -25,16 +35,27 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.geo.Point;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import java.io.File;
import java.io.InputStream;
import java.math.BigDecimal;
+import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -44,10 +65,11 @@
@CrossOrigin
@RestController
@RequestMapping("")
+@Slf4j
public class DriverController {
- @Autowired
- private RedisTemplate redisTemplate;
+ @Resource
+ private RedisTemplate<String, Object> redisTemplate;
@Autowired
private IDriverService driverService;
@@ -63,8 +85,8 @@
@Autowired
private ICarService carService;
- @Autowired
- private ALiSendSms aLiSendSms;
+ @Resource
+ private RegionMapper regionMapper;
@Autowired
private IOrderTaxiService orderTaxiService;
@@ -80,10 +102,39 @@
@Autowired
private IOrderLogisticsService orderLogisticsService;
+
+ @Autowired
+ private ICompanyService companyService;
+
+ @Autowired
+ private ICompanyCityService companyCityService;
+
+ @Autowired
+ private TDriverPromotionActivityService driverPromotionActivityService;
+
+ @Value("${wx.url}")
+ private String ACCESS_TOKEN_URL;
+
+ @Value("${wx.appletsAppSecret}")
+ private String memberAppSecret;
+
+ @Value("${wx.appletsAppid}")
+ private String wxAppId;
@Autowired
- private GunsProperties gunsProperties;
+ private RestTemplate restTemplate;
+ @Autowired
+ private MongoTemplate mongoTemplate;
+
+ @Autowired
+ private WeChatUtil weChatUtil;
+
+ @Value("${filePath}")
+ private String filePath;
+
+ @Value("${qyt.admin_url}")
+ private String adminUrl;
/**
* 获取短信验证码
@@ -262,7 +313,7 @@
break;
}
// String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}");
- SMSUtil.sendVerifyCode(driver.getPhone());
+// SMSUtil.sendVerifyCode(driver.getPhone());
return ResultUtil.success();
}catch (Exception e){
e.printStackTrace();
@@ -366,6 +417,214 @@
e.printStackTrace();
return ResultUtil.runErr();
}
+ }
+
+
+ @ResponseBody
+ @PostMapping("/api/driver/queryHomeDataFromDriver")
+ @ApiOperation(value = "获取首页统计数据(黔云通)", tags = {"司机端-首页"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<DriverIndexVo> queryHomeDataFromDriver(HttpServletRequest request){
+ try {
+ Integer uid = driverService.getUserIdFormRedis(request);
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ DriverIndexVo vo = driverService.queryHomeDataFromDriver(uid);
+ return ResultUtil.success(vo);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/api/driver/queryOrderDataFromDriver")
+ @ApiOperation(value = "获取订单统计数据(黔云通)", tags = {"司机端-首页"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ @ApiImplicitParam(value = "2022-02-02 - 2033-03-03", name = "time", required = false, dataType = "String"),
+ @ApiImplicitParam(value = "pageNumber", name = "pageNumber", required = true, dataType = "int"),
+ @ApiImplicitParam(value = "pageSize", name = "pageSize", required = true, dataType = "int")
+ })
+ public ResultUtil<DriverOrderDataVo> queryOrderDataFromDriver(String time,Integer pageNumber,Integer pageSize,HttpServletRequest request){
+ try {
+ Integer uid = driverService.getUserIdFormRedis(request);
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ Page<DriverOrderDataNextVo> driverOrderDataVoPage = new Page<>(pageNumber, pageSize);
+ DriverOrderDataVo vo = driverService.queryOrderDataFromDriver(time,driverOrderDataVoPage,uid);
+ return ResultUtil.success(vo);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+
+
+ @ResponseBody
+ @PostMapping("/api/driver/queryOrderMoneyFromDriver")
+ @ApiOperation(value = "获取订单收入统计数据(黔云通)", tags = {"司机端-首页"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ @ApiImplicitParam(value = "2022-02-02 - 2033-03-03", name = "time", required = false, dataType = "String"),
+ @ApiImplicitParam(value = "pageNumber", name = "pageNumber", required = true, dataType = "int"),
+ @ApiImplicitParam(value = "pageSize", name = "pageSize", required = true, dataType = "int")
+ })
+ public ResultUtil<DriverOrderMoneyDataVo> queryOrderMoneyFromDriver(String time, Integer pageNumber, Integer pageSize, HttpServletRequest request){
+ try {
+ Integer uid = driverService.getUserIdFormRedis(request);
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ Page<DriverOrderDataNextVo> driverOrderDataVoPage = new Page<>(pageNumber, pageSize);
+ DriverOrderMoneyDataVo vo = driverService.queryOrderMoneyFromDriver(time,driverOrderDataVoPage,uid);
+ return ResultUtil.success(vo);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+ @ResponseBody
+ @PostMapping("/api/driver/queryOrderPromotionFromDriver")
+ @ApiOperation(value = "获取订单推广统计数据(黔云通)", tags = {"司机端-首页"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ @ApiImplicitParam(value = "2022-02-02 - 2033-03-03", name = "time", required = false, dataType = "String"),
+ @ApiImplicitParam(value = "pageNumber", name = "pageNumber", required = true, dataType = "int"),
+ @ApiImplicitParam(value = "pageSize", name = "pageSize", required = true, dataType = "int")
+ })
+ public ResultUtil<DriverOrderPromotionDataVo> queryOrderPromotionFromDriver(String time, Integer pageNumber, Integer pageSize, HttpServletRequest request){
+ try {
+ Integer uid = driverService.getUserIdFormRedis(request);
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ Page<DriverOrderDataNextVo> driverOrderDataVoPage = new Page<>(pageNumber, pageSize);
+ DriverOrderPromotionDataVo vo = driverService.queryOrderPromotionFromDriver(time,driverOrderDataVoPage,uid);
+ return ResultUtil.success(vo);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/api/driver/getPromotionInfo")
+ @ApiOperation(value = "获取推广说明(黔云通)", tags = {"司机端-首页"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil<String> getPromotionInfo(HttpServletRequest request){
+ try {
+ Integer uid = driverService.getUserIdFormRedis(request);
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ Driver driver = driverService.selectById(uid);
+ String areaCode = driver.getPlaceOfEmployment();
+ TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>()
+ .eq("districtCode", areaCode)
+ .eq("state", 1)
+ .eq("remove", 0)
+ .eq("status", 2)
+ .last("LIMIT 1"));
+ if(tDriverPromotionActivity!=null){
+ return ResultUtil.success(tDriverPromotionActivity.getActivityDesc());
+ }
+ return ResultUtil.success("");
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ApiOperation(value = "个人的小程序码(分享码)/链接", tags = {"司机端-首页"}, notes = "")
+ @GetMapping("/api/driver/personCode")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil<HashMap<String, Object>> personCode(HttpServletRequest request) {
+ try {
+ Integer uid = driverService.getUserIdFormRedis(request);
+ if (null == uid) {
+ return ResultUtil.tokenErr();
+ }
+ Driver driver = driverService.selectById(uid);
+ String accessToken=null;
+ Object img = redisTemplate.opsForValue().get("DRIVER_WX_IMG" + uid);
+ // 获取调用凭证accessToken
+ if(ToolUtil.isEmpty(driver.getShareLink())|| ToolUtil.isEmpty(img)){
+ accessToken = getAccessToken();
+ }
+ int index=0;
+ String urlLink = driver.getShareLink();
+ if(ToolUtil.isEmpty(img) || ToolUtil.isEmpty(urlLink)) {
+ RestTemplate rest = new RestTemplate();
+// String url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + accessToken;
+ String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;
+ Map<String, Object> param = new HashMap<>();
+ param.put("page", "pages/home/home");
+ param.put("width", 430); //二维码尺寸
+ param.put("scene", "driverId=" + uid);
+ param.put("env_version", "release"); //正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
+ HttpRequest post = HttpUtil.createPost(url);
+ post.body(JSON.toJSONString(param));
+
+ byte[] result = post.execute().bodyBytes();
+ // base64
+ img = Base64.getEncoder().encodeToString(result);
+ redisTemplate.opsForValue().set("DRIVER_WX_IMG" + uid, img,30, TimeUnit.DAYS);
+ }
+
+ if(ToolUtil.isEmpty(urlLink)) {
+ index=1;
+ String url1 = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + accessToken;
+ Map<String, Object> param1 = new HashMap<>();
+ param1.put("path", "pages/home/home");
+ param1.put("query", "driverId=" + uid);
+
+ HttpRequest post = HttpUtil.createPost(url1);
+ // map转json
+ String jsonString = JSON.toJSONString(param1);
+ post.body(jsonString);
+ HttpResponse execute = post.execute();
+ String body = execute.body();
+ urlLink = JSONObject.parseObject(body).get("url_link").toString();
+ driver.setShareLink(urlLink);
+ }
+
+ if(index==1){
+ driverService.updateById(driver);
+ }
+
+ HashMap<String, Object> stringStringHashMap = new HashMap<>();
+ stringStringHashMap.put("url_link",urlLink);
+ stringStringHashMap.put("img",img);
+ return ResultUtil.success(stringStringHashMap);
+
+ } catch (Exception e) {
+ log.error("调用小程序生成微信永久小程序码URL接口异常", e);
+ }
+ return ResultUtil.error("获取二维码失败");
+ }
+
+
+
+
+ public String getAccessToken() {
+ String requestUrl = MessageFormat.format(ACCESS_TOKEN_URL,wxAppId,memberAppSecret);
+ String respBody = restTemplate.getForEntity(requestUrl, String.class).getBody();
+ JSONObject jsonObject = JSONObject.parseObject(respBody);
+ return jsonObject.getString("access_token");
}
@@ -482,6 +741,18 @@
@PostMapping("/base/savePosition")
public String savePosition(OrderPosition orderPosition){
try {
+ //将最新定位存储mongodb中
+ GeoJsonPoint point = new GeoJsonPoint(new Point(Double.parseDouble(orderPosition.getLon()),
+ Double.parseDouble(orderPosition.getLat())));
+ DriverPosition position = mongoTemplate.findOne(Query.query(Criteria.where("driverId")
+ .is(orderPosition.getDriverId())), DriverPosition.class);
+ if(null == position){
+ position = new DriverPosition();
+ }
+ position.setDriverId(orderPosition.getDriverId());
+ position.setPoint(point);
+ mongoTemplate.save(position);
+ //处理业务上的功能
orderPositionService.saveData(orderPosition);
return JSON.toJSONString(ResultUtil.success());
}catch (Exception e){
@@ -665,7 +936,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.....")
})
@@ -717,17 +988,18 @@
*/
@ResponseBody
@PostMapping("/api/driver/queryPhone")
- @ApiOperation(value = "获取客服电话", tags = {"司机端-个人中心"}, notes = "车队=franchisee,分公司=branch,平台=platform")
+ @ApiOperation(value = "获取客服电话(黔云通)", tags = {"司机端-个人中心"}, notes = "车队=franchisee,分公司=branch,平台=platform")
@ApiImplicitParams({
+ @ApiImplicitParam(value = "当前行政区划代码", name = "code", required = true, dataType = "String"),
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
})
- public ResultUtil queryPhone(HttpServletRequest request){
+ public ResultUtil queryPhone(String code, HttpServletRequest request){
try {
Integer uid = driverService.getUserIdFormRedis(request);
if(null == uid){
return ResultUtil.tokenErr();
}
- Map<String, Object> map = driverService.queryPhone(uid);
+ Map<String, Object> map = driverService.queryPhone(uid, code);
return ResultUtil.success(map);
}catch (Exception e){
e.printStackTrace();
@@ -1290,6 +1562,71 @@
/**
+ * 获取省市区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"),
+ @ApiImplicitParam(value = "name", name = "name", required = false, dataType = "String"),
+
+ })
+ public ResultUtil<List<CompanyVo>> getCompany(String areaCode,String name){
+ 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);
+ }
+ Wrapper<Company> in = new EntityWrapper<Company>().eq("type", 2).ne("flag", 3).in("id", companyCities.stream().map(CompanyCity::getCompanyId).collect(Collectors.toList()));
+
+ if(ToolUtil.isNotEmpty( name)){
+ in.like("name", name);
+ }
+ List<Company> companies = companyService.selectList(in);
+ 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
@@ -1412,8 +1749,7 @@
}
}
- @Autowired
- private WeChatUtil weChatUtil;
+
@ResponseBody
@PostMapping("/api/driver/getDriverCode")
@@ -1435,15 +1771,17 @@
//HttpURLConnection httpURLConnection = weChatUtil.getwxacodeunlimit(appletPath, "d=" + driverId + "&k=" + 0, "release",driverId);
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);
+ File file = FileUtil.writeFromStream(inputStream, new File(filePath + "/" + UUID.randomUUID().toString() + ".png"));
+ HttpRequest post = HttpUtil.createPost(adminUrl + "/upload/image");
+ post.form("file", file);
+ HttpResponse execute = post.execute();
+ int status = execute.getStatus();
+ if(200 != status){
+ throw new RuntimeException("上传图片异常");
+ }
+ driver.setQrCode(execute.body());
driverService.updateById(driver);
+ fileName = driver.getQrCode();
}
}
return ResultUtil.success(fileName);
@@ -1477,13 +1815,13 @@
driver.setAuthState(3);
driverService.updateById(driver);
//开始验证当前账号是否在别处登录
- String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driverId);
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + driverId);
if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线
//开始清除redis中无效的数据
- String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
+ String key = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + driver.getPhone());
redisTemplate.delete(key);//删除个人信息数据
- redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
- redisTemplate.delete("DRIVER_" + driverId);//清除存储的token
+ redisTemplate.delete("dache:DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+ redisTemplate.delete("dache:DRIVER_" + driverId);//清除存储的token
}
return ResultUtil.success();
} catch (Exception e) {
@@ -1492,16 +1830,59 @@
}
}
-
@ResponseBody
- @GetMapping("/base/driver/getDriverInfo")
- public void getDriverInfo(String lsu, String ssologinid, String ticket, HttpSession session) {
+ @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 ResultUtil<String> getZLToken(String ip, String mac, String type, HttpServletRequest request){
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) {
+ Integer driverId = driverService.getUserIdFormRedis(request);
+ if (null == driverId) {
+ return ResultUtil.tokenErr();
+ }
+ Driver driver = driverService.selectById(driverId);
+ 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 ResultUtil.success(token);
+ }catch (Exception e){
e.printStackTrace();
+ return ResultUtil.runErr();
}
}
+
+
+ /**
+ * 证联通知回调
+ * @param messageBody
+ * @param request
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/base/driver/zlCallback")
+ public void zlCallback(@RequestBody MessageBody messageBody, HttpServletRequest request){
+ String callback = CallbackUtil.callback(messageBody);
+ System.err.println("证联通知回调:" + callback);
+ log.info("证联通知回调:" + callback);
+ }
}
--
Gitblit v1.7.1