From dda9ffb76b585bb5bcf5282def424999448fa915 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 28 七月 2025 17:57:42 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java |  166 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 89 insertions(+), 77 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 eeb5a38..f459621 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
@@ -6,7 +6,6 @@
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.alipay.api.internal.util.file.IOUtils;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
@@ -23,11 +22,14 @@
 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.NCOSSUtil;
 import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongConfig;
+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;
@@ -38,30 +40,24 @@
 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.http.*;
-import org.springframework.util.Base64Utils;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
 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.ByteArrayInputStream;
-import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.math.BigDecimal;
-import java.security.SecureRandom;
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
-
-import static org.bouncycastle.cms.RecipientId.password;
 
 /**
  * 司机控制器
@@ -90,7 +86,7 @@
     @Autowired
     private ICarService carService;
     
-    @Autowired
+    @Resource
     private RegionMapper regionMapper;
     
     @Autowired
@@ -111,7 +107,6 @@
     @Autowired
     private GunsProperties gunsProperties;
 
-
     @Autowired
     private ICompanyService companyService;
 
@@ -121,9 +116,26 @@
     @Autowired
     private TDriverPromotionActivityService driverPromotionActivityService;
 
-
     @Autowired
     private QianYunTongConfig qianYunTongConfig;
+    
+    @Value("${wx.url}")
+    private String ACCESS_TOKEN_URL;
+    
+    @Value("${wx.appletsAppSecret}")
+    private String memberAppSecret;
+    
+    @Value("${wx.appletsAppid}")
+    private String wxAppId;
+    
+    @Autowired
+    private RestTemplate restTemplate;
+    
+    @Autowired
+    private MongoTemplate mongoTemplate;
+    
+    @Autowired
+    private WeChatUtil weChatUtil;
     
     /**
      * 获取短信验证码
@@ -602,17 +614,7 @@
         return ResultUtil.error("获取二维码失败");
     }
 
-    @Value("${wx.url}")
-    private String ACCESS_TOKEN_URL;
-
-    @Value("${wx.appletsAppSecret}")
-    private String memberAppSecret;
-
-    @Value("${wx.appletsAppid}")
-    private String wxAppId;
-
-    @Autowired
-    private RestTemplate restTemplate;
+    
 
 
     public  String getAccessToken() {
@@ -736,6 +738,17 @@
     @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.setPoint(point);
+            mongoTemplate.save(position);
+            //处理业务上的功能
             orderPositionService.saveData(orderPosition);
             return JSON.toJSONString(ResultUtil.success());
         }catch (Exception e){
@@ -971,17 +984,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();
@@ -1591,7 +1605,7 @@
             if(companyCities.isEmpty()){
                 return ResultUtil.success(companyVos);
             }
-            Wrapper<Company> in = new EntityWrapper<Company>().ne("type", 1).ne("flag", 3).in("id", companyCities.stream().map(CompanyCity::getCompanyId).collect(Collectors.toList()));
+            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);
@@ -1731,8 +1745,7 @@
         }
     }
 
-    @Autowired
-    private WeChatUtil weChatUtil;
+    
     
     @ResponseBody
     @PostMapping("/api/driver/getDriverCode")
@@ -1811,52 +1824,51 @@
         }
     }
     
-    
     @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"),
+    })
+    public ResultUtil<String> getZLToken(String ip, String mac, 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);
+            String token = TokenUtil.getToken(tokenRequest);
+            return ResultUtil.success(token);
+        }catch (Exception e){
             e.printStackTrace();
+            return ResultUtil.runErr();
         }
     }
-
-
-//    @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();
-//        }
-//    }
+    
+    
+    /**
+     * 证联通知回调
+     * @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