无关风月
2025-04-22 d7536094a9e0a1160a97c7a44cb9343feff53d2a
bug
修改
5个文件已修改
3个文件已添加
295 ■■■■■ 已修改文件
ruoyi-service/ruoyi-admin/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MonitorController.java 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/MonitorCodeDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MonitorInfoVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/MasterWorker.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/pom.xml
@@ -18,6 +18,12 @@
    </properties>
    <dependencies>
        <!--hutool-all-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.0.3</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
@@ -5,8 +5,10 @@
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.entity.MasterWorker;
import com.ruoyi.admin.request.MonitorCodeDTO;
import com.ruoyi.admin.service.MasterWorkerService;
import com.ruoyi.admin.vo.MasterWorkerDetailVO;
import com.ruoyi.admin.vo.MonitorInfoVO;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
@@ -51,6 +53,14 @@
    private EvaluateClient evaluateClient;
    @Resource
    private TokenService tokenService;
    @ApiOperation(value = "设置师傅终端编号")
    @PostMapping(value = "/setMonitorCode")
    public R monitorInfo(@RequestBody MonitorCodeDTO monitorCodeDTO) {
        MasterWorker byId = masterWorkerService.getById(monitorCodeDTO.getId());
        byId.setTerminalCode(monitorCodeDTO.getTerminalCode());
        masterWorkerService.updateById(byId);
        return R.ok();
    }
    /**
     * 师傅列表分页查询 (添加订单-选择师傅列表)
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MonitorController.java
New file
@@ -0,0 +1,219 @@
package com.ruoyi.admin.controller;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.entity.Agreement;
import com.ruoyi.admin.entity.MasterWorker;
import com.ruoyi.admin.entity.Notices;
import com.ruoyi.admin.service.AgreementService;
import com.ruoyi.admin.service.MasterWorkerService;
import com.ruoyi.admin.vo.MonitorInfoVO;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Random;
/**
 * <p>
 * 监控
 * </p>
 *
 * @author hjl
 * @since 2024-05-29
 */
@RestController
@RequestMapping("/monitor")
@Api(tags = {"大屏-监控"})
public class MonitorController {
    @Autowired
    private MasterWorkerService masterWorkerService;
    public static void main(String[] args) {
        HttpRequest post = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/devices?key=zT908g2j9niqrwO6ENIm5MZriXb0ZC%2Fq0hlFOWfm1Qs%3D");
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            return;
        }
        System.err.println(execute.body());
        JSONObject jsonObject = JSONObject.parseObject(execute.body());
        JSONArray data = jsonObject.getJSONArray("data");
        // 终端设备id
        List<JSONObject> strings = new ArrayList<>();
        for (Object datum : data) {
            JSONObject jsonObject1 = (JSONObject) datum;
            JSONObject jsonObject2 = new JSONObject();
            jsonObject2.put("terid", jsonObject1.getString("terid"));
            jsonObject2.put("deviceusername", jsonObject1.getString("deviceusername"));
            strings.add(jsonObject2);
        }
        System.err.println(strings);
    }
//    /**
//     * 回收员监控列表
//     */
//    @ApiOperation(value = "回收员监控列表")
//    @GetMapping(value = "/monitorList")
//    public R monitorList() {
//
//        // 获取token
//        String token = "";
//        HttpRequest post = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/key?username=dakaer&password=dakaer@888");
//        HttpResponse execute = post.execute();
//        if (200 != execute.getStatus()) {
//            return R.fail("获取三方监控token失败");
//        }
//        System.err.println("获取三方平台授权token响应参数" + execute.body());
//        token = JSONObject.parseObject(execute.body()).getJSONObject("data").getString("key");
//
//        // 获取司机列表
//        HttpRequest post1 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/devices?key="+token);
//        HttpResponse execute1 = post1.execute();
//        if (200 != execute1.getStatus()) {
//            return R.fail("获取三方监控司机列表失败");
//        }
//        System.err.println(execute1.body());
//        JSONObject jsonObject = JSONObject.parseObject(execute1.body());
//        JSONArray data = jsonObject.getJSONArray("data");
//        // 终端设备id
//        List<JSONObject> strings = new ArrayList<>();
//        List<String> terIds = new ArrayList<>();
//        for (Object datum : data) {
//            JSONObject jsonObject1 = (JSONObject) datum;
//            JSONObject jsonObject2 = new JSONObject();
//            jsonObject2.put("terid",jsonObject1.getString("terid"));
//            jsonObject2.put("deviceusername",jsonObject1.getString("deviceusername"));
//            strings.add(jsonObject2);
//            terIds.add(jsonObject1.getString("terid"));
//        }
//        System.err.println(strings);
//        // 获取司机位置信息
//        HttpRequest post2 = HttpUtil.createPost("http://8.146.210.16:12056/api/v1/basic/gps/last");
//        JSONObject jsonObject4 = new JSONObject();
//        jsonObject4.put("key",token);
//        jsonObject4.put("terid",terIds);
//        post2.body(jsonObject4.toJSONString());
//
//        HttpResponse execute2 = post2.execute();
//        if (200 != execute2.getStatus()) {
//            return R.fail("获取三方监控司机列表失败");
//        }
//        System.err.println(execute2.body());
//        JSONObject jsonObject1 = JSONObject.parseObject(execute2.body());
//        JSONArray data2 = jsonObject1.getJSONArray("data");
//        // 终端设备id
//        List<JSONObject> strings1 = new ArrayList<>();
//        for (Object datum : data2) {
//            JSONObject jsonObject3 = (JSONObject) datum;
//            JSONObject jsonObject2 = new JSONObject();
//            jsonObject2.put("lat",jsonObject3.getString("gpslat"));
//            jsonObject2.put("lng",jsonObject3.getString("gpslng"));
//            jsonObject2.put("terid",jsonObject3.getString("terid"));
//            strings1.add(jsonObject2);
//        }
//        for (JSONObject object : strings1) {
//            String string = object.getString("terid");
//            for (JSONObject string1 : strings) {
//                if (string1.getString("terid").equals(string)){
//                    object.put("name",string1.getString("deviceusername"));
//                    break;
//                }
//            }
//        }
//        System.err.println(strings1);
//        return R.ok(strings1);
//    }
    /**
     * 回收员监控列表
     */
    @ApiOperation(value = "回收员监控详情")
    @GetMapping(value = "/monitorInfo")
    public R<MonitorInfoVO> monitorInfo(String terid) {
        MonitorInfoVO monitorInfoVO = new MonitorInfoVO();
        MasterWorker one = masterWorkerService.lambdaQuery().eq(MasterWorker::getTerminalCode, terid).last("limit 1").one();
        if (one==null){
            return R.fail("当前师傅未绑定终端编号");
        }
        // 获取token
        String token = "";
        HttpRequest post = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/key?username=dakaer&password=dakaer@888");
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
        }
        System.err.println("获取三方平台授权token响应参数" + execute.body());
        token = JSONObject.parseObject(execute.body()).getJSONObject("data").getString("key");
        // 获取端口
        HttpRequest post9 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/live/port?key="+token);
        HttpResponse execute9 = post9.execute();
        if (200 != execute9.getStatus()) {
        }
        System.err.println(execute9.body());
        JSONObject jsonObject9 = JSONObject.parseObject(execute9.body());
        JSONArray data9 = jsonObject9.getJSONArray("data");
        int i = new Random().nextInt(data9.size());
        Object o = data9.get(i);
        JSONObject temp = (JSONObject) o;
        String port = temp.getString("port");
        // 获取司机列表
        HttpRequest post2 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/devices?key="+token);
        HttpResponse execute2 = post2.execute();
        if (200 != execute2.getStatus()) {
        }
        System.err.println(execute2.body());
        JSONObject jsonObject = JSONObject.parseObject(execute2.body());
        JSONArray data = jsonObject.getJSONArray("data");
        // 终端设备id
        List<JSONObject> strings = new ArrayList<>();
        List<String> terIds = new ArrayList<>();
        for (Object datum : data) {
            JSONObject jsonObject1 = (JSONObject) datum;
            JSONObject jsonObject2 = new JSONObject();
            jsonObject2.put("terid",jsonObject1.getString("terid"));
            jsonObject2.put("deviceusername",jsonObject1.getString("deviceusername"));
            jsonObject2.put("carlicence",jsonObject1.getString("carlicence"));
            strings.add(jsonObject2);
            terIds.add(jsonObject1.getString("terid"));
        }
        System.err.println(strings);
        // 获取url
        HttpRequest post1 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/live/video?key="+token+"&terid="+terid+"&chl=1&audio=1&st=0&port="+port);
        HttpResponse execute1 = post1.execute();
        if (200 != execute1.getStatus()) {
        }
        System.err.println(execute1.body());
        JSONObject jsonObject3 = JSONObject.parseObject(execute1.body());
        JSONObject data3 = jsonObject3.getJSONObject("data");
        String url = data3.getString("url");
        monitorInfoVO.setUrl(url);
        monitorInfoVO.setCityName(one.getCity());
        monitorInfoVO.setName(one.getRealName());
        monitorInfoVO.setPhone(one.getPhone());
        for (JSONObject string : strings) {
            if (string.getString("terid").equals(terid)){
                monitorInfoVO.setLicensePlateNumber(string.getString("carlicence"));
                break;
            }
        }
        return R.ok(monitorInfoVO);
    }
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java
@@ -28,7 +28,9 @@
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    @TableField("terminal_code")
    @ApiModelProperty("终端编号")
    private String terminalCode;
    @ApiModelProperty("服务城市")
    @TableField("city")
    private String city;
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/MonitorCodeDTO.java
New file
@@ -0,0 +1,22 @@
package com.ruoyi.admin.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author HJL
 * @version 1.0
 * @since 2024-07-09 18:10
 */
@Data
@ApiModel("设置师傅终端编号DTO")
public class MonitorCodeDTO {
    @ApiModelProperty("终端编号")
    private String terminalCode;
    @ApiModelProperty("师傅id")
    private Integer id;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MonitorInfoVO.java
New file
@@ -0,0 +1,25 @@
package com.ruoyi.admin.vo;
import com.ruoyi.admin.entity.Franchisee;
import com.ruoyi.admin.entity.Region;
import com.ruoyi.admin.entity.Site;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("监控信息VO")
public class MonitorInfoVO {
    @ApiModelProperty(value = "监控url")
    private String url;
    @ApiModelProperty(value = "师傅姓名")
    private String name;
    @ApiModelProperty(value = "车牌号")
    private String licensePlateNumber;
    @ApiModelProperty(value = "服务城市")
    private String cityName;
    @ApiModelProperty(value = "手机号")
    private String phone;
}
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
@@ -36,12 +36,7 @@
import javax.servlet.http.HttpServletRequest;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/MasterWorker.java
@@ -88,4 +88,6 @@
    @ApiModelProperty("纬度")
    @TableField("worker_lat")
    private String workerLat;
    @TableField("terminal_code")
    private String terminalCode;
}