Pu Zhibing
7 天以前 eaa61bc9ecd9158f192f9999845cb2f05e6970fb
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -1,11 +1,13 @@
package com.supersavedriving.driver.modular.system.service.impl;
import cn.hutool.core.date.DateUtil;
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.service.impl.ServiceImpl;
import com.heredata.hos.model.bucket.Bucket;
import com.supersavedriving.driver.core.common.constant.JwtConstants;
import com.supersavedriving.driver.core.shiro.ShiroKit;
import com.supersavedriving.driver.core.shiro.ShiroUser;
@@ -19,9 +21,7 @@
import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest;
import com.supersavedriving.driver.modular.system.util.*;
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.mongodb.model.Location;
import com.supersavedriving.driver.modular.system.util.qianyuntong.NCOSSUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.QianYunTongConfig;
import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil;
import com.supersavedriving.driver.modular.system.util.weChat.WeChatUtil;
@@ -50,6 +50,7 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -90,6 +91,9 @@
    @Value("${filePath}")
    private String filePath;
    @Value("${qyt.admin_url}")
    private String adminUrl;
    @Autowired
    private IAppUserService appUserService;
@@ -217,59 +221,29 @@
    public String wechatMiniProgramORCode(Integer driverId) throws Exception{
        InputStream release = weChatUtil.getwxacodeunlimit("pages/index/index", "driverId=" + driverId, "release");
        String pictureName = "driver_" + driverId + ".png";
        QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
        String bucketName = qianYunTongConfig1.getBucketName();
        Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
        if (null == grjyTest) {
            //创建桶
            Boolean bucket = NCOSSUtil.createBucket(bucketName);
            if (!bucket) {
                throw new RuntimeException("创建存储桶失败");
            }
            //设置桶策略
            String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
            Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
            if (!bucketPolicy) {
                throw new RuntimeException("设置桶策略失败");
            }
        File file = FileUtil.writeFromStream(release, new File(filePath + pictureName));
        HttpRequest post = HttpUtil.createPost(adminUrl + "/upload/image");
        HttpRequest form = post.form("file", file);
        HttpResponse execute = form.execute();
        int status = execute.getStatus();
        if(200 != status){
            throw new RuntimeException("上传图片异常");
        }
        //上传对象
        String key = "imgs/daijia/driver/" + pictureName;
        String object = NCOSSUtil.putObject(bucketName, key, release);
        if (null == object) {
            throw new RuntimeException("上传图片失败");
        }
        return "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
        return execute.body();
    }
    //司机下单二维码
    public String wechatMiniOrderQRCode(Integer driverId) throws Exception{
        InputStream release = weChatUtil.getwxacodeunlimitOrder("pages/index/index", "driverIds=" + driverId, "release");
        String pictureName = "driver_" + driverId + ".png";
        QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
        String bucketName = qianYunTongConfig1.getBucketName();
        Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
        if (null == grjyTest) {
            //创建桶
            Boolean bucket = NCOSSUtil.createBucket(bucketName);
            if (!bucket) {
                throw new RuntimeException("创建存储桶失败");
            }
            //设置桶策略
            String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
            Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
            if (!bucketPolicy) {
                throw new RuntimeException("设置桶策略失败");
            }
        File file = FileUtil.writeFromStream(release, new File(filePath + pictureName));
        HttpRequest post = HttpUtil.createPost(adminUrl + "/upload/image");
        HttpRequest form = post.form("file", file);
        HttpResponse execute = form.execute();
        int status = execute.getStatus();
        if(200 != status){
            throw new RuntimeException("上传图片异常");
        }
        //上传对象
        String key = "imgs/daijia/driver/" + pictureName;
        String object = NCOSSUtil.putObject(bucketName, key, release);
        if (null == object) {
            throw new RuntimeException("上传图片失败");
        }
        return "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
        return execute.body();
    }
@@ -559,7 +533,7 @@
        if(null == driverWork){
            return ResultUtil.error("请先上班");
        }
        String value = redisUtil.getValue("DRIVER" + uid);
        String value = redisUtil.getValue("daijia:DRIVER" + uid);
        List<String> list = new ArrayList<>();
        if(ToolUtil.isNotEmpty(value)){
            String[] split = value.split(",");
@@ -587,7 +561,7 @@
                        i = 3;
                    }
                }
                String value1 = redisUtil.getValue("DRIVER" + s.getDriverId());
                String value1 = redisUtil.getValue("daijia:DRIVER" + s.getDriverId());
                if(s.getDriverId().compareTo(uid) != 0 && ToolUtil.isNotEmpty(value1)){
                    list.add(s.getLocation().getX() + "," + s.getLocation().getY()+","+i+","+driver.getName());
                }
@@ -797,6 +771,8 @@
                .eq("state", 2).last(" and failureTime > now() order by failureTime limit 0, 1"));
        if(null != youTuiDriver){
            driverInfo.setYouTuiEnd(youTuiDriver.getType() == 1 ? youTuiDriver.getFailureTime().getTime() : youTuiDriver.getEndTime().getTime());
            driverInfo.setType(youTuiDriver.getType());
            driverInfo.setSurplusQuantity(youTuiDriver.getSurplusQuantity());
        }
        List<Integer> state = Arrays.asList(107, 108, 109);
        int count = orderService.selectCount(new EntityWrapper<Order>().eq("driverId", uid).eq("status", 1).in("state", state).last(" and DATE_FORMAT(createTime, '%Y-%m-%d') = DATE_FORMAT(now(), '%Y-%m-%d')"));