From c27ad3dcb8b67a6c10a99c98b9bd6dd1f08b7967 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 01 三月 2022 10:43:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/sc/manager/controller/AppController.java |  221 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 112 insertions(+), 109 deletions(-)

diff --git a/src/main/java/com/zy/sc/manager/controller/AppController.java b/src/main/java/com/zy/sc/manager/controller/AppController.java
index b4d6ab1..c8fd7a6 100644
--- a/src/main/java/com/zy/sc/manager/controller/AppController.java
+++ b/src/main/java/com/zy/sc/manager/controller/AppController.java
@@ -1,21 +1,32 @@
 package com.zy.sc.manager.controller;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
 import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
+import com.core.exception.CoolException;
 import com.zy.sc.common.service.GeoService;
 import com.zy.sc.common.web.BaseController;
+import com.zy.sc.manager.controller.param.MobileIssueParam;
+import com.zy.sc.manager.controller.result.AppHostIssueVo;
+import com.zy.sc.manager.controller.result.AppIssueVo;
+import com.zy.sc.manager.entity.Issue;
 import com.zy.sc.manager.entity.IssueType;
+import com.zy.sc.manager.service.IssueService;
 import com.zy.sc.manager.service.IssueTypeService;
 import com.zy.sc.system.entity.Host;
 import com.zy.sc.system.service.HostService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
+import java.util.*;
 
 /**
  * Created by vincent on 2021/12/20
@@ -25,10 +36,16 @@
 @RequestMapping("app")
 public class AppController extends BaseController {
 
+    public static final String REGEX_MOBILE = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$";
+
     @Autowired
     private HostService hostService;
     @Autowired
     private IssueTypeService issueTypeService;
+    @Autowired
+    private IssueService issueService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private GeoService geoService;
 
@@ -50,115 +67,101 @@
         return R.ok().add(issueTypes);
     }
 
-//    @RequestMapping("/sensor/save/auth")
-//    @ManagerAuth(memo = "绉诲姩绔坊鍔犺澶�")
-//    public R issueSave(MobileSensorParam param){
-//        Long hostId = getHostId();
-//        if (hostId == null) {
-//            return R.error("璇蜂娇鐢ㄦ纭处鍙风櫥褰�");
-//        }
-//        if (Cools.isEmpty(param.getUuid())) {
-//            return R.error("璇峰~鍐欒澶囩紪鍙�");
-//        }
-//        if (Cools.isEmpty(param.getSensorType())) {
-//            return R.error("璇烽�夋嫨璁惧绫诲瀷");
-//        }
-//        SensorType sensorType = sensorTypeService.selectById(param.getSensorType());
-//        if (sensorType == null) {
-//            return R.error("璇烽�夋嫨姝g‘鐨勮澶囩被鍨�");
-//        }
-//        Sensor sensor = sensorService.selectByCode(param.getUuid());
-//        if (sensor != null) {
-//            return R.error("璁惧缂栧彿宸插瓨鍦紝璇疯仈绯荤鐞嗗憳");
-//        } else {
-//            sensor = new Sensor();
-//        }
-//        Date now = new Date();
-//        sensor.setUuid(param.getUuid());
-//        sensor.setHostId(hostId);
-//        sensor.setSensorType(param.getSensorType());
-//        sensor.setCcid(param.getCcid());
-//        sensor.setAddr(param.getAddr());
-//        sensor.setDesc(param.getDesc());
-//        sensor.setThreshold(String.valueOf(param.getThreshold()));
-//        List<String> imgArr = param.getImgArr();
-//        if (!Cools.isEmpty(imgArr)) {
-//            sensor.setImg(JSONArray.toJSONString(imgArr));
-//        }
-//        if (!Cools.isEmpty(param.getLocationObj())) {
-//            LocationObj locationObj = JSON.parseObject(param.getLocationObj(), LocationObj.class);
-//            sensor.setLon(Double.parseDouble(locationObj.getLongitude()));
-//            sensor.setLat(Double.parseDouble(locationObj.getLatitude()));
-//            GeoCodeDto geoCode = geoService.getGeoCode(sensor.getLon(), sensor.getLat());
-//            if (geoCode != null && geoCode.getAddressComponent() != null) {
-//                sensor.setProvince(geoCode.getAddressComponent().getProvince());
-//                sensor.setCity(geoCode.getAddressComponent().getCity());
-//                sensor.setDistrict(geoCode.getAddressComponent().getDistrict());
-//                sensor.setTownship(geoCode.getAddressComponent().getTownship());
-//            }
-//        }
-//        sensor.setStatus(1);
-//        sensor.setCreateBy(getUserId());
-//        sensor.setCreateTime(now);
-//        sensor.setUpdateBy(getUserId());
-//        sensor.setUpdateTime(now);
-//        sensor.setMemo(param.getMemo());
-//        if (!sensorService.insert(sensor)) {
-//            throw new CoolException("娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
-//        }
-//        return R.ok("娣诲姞璁惧鎴愬姛");
-//    }
-//
-//    @RequestMapping("/sensor/list/auth")
-//    @ManagerAuth
-//    public R sensorList(@RequestParam(required = false) String condition){
-//        Wrapper<Sensor> wrapper = new EntityWrapper<Sensor>()
-//                .like("uuid", condition)
-//                .orderBy("sensor_type").orderBy("create_time");
-//        Long hostId = getHostId();
-//        if (hostId != null) {
-//            wrapper.eq("host_id", hostId);
-//        }
-//        List<Sensor> sensors = sensorService.selectList(wrapper);
-//        List<AppSensorTypeVo> result = new ArrayList<>();
-//        Set<Long> sensorTypeSet = new HashSet<>();
-//        for (Sensor sensor : sensors) {
-//            AppSensorVo sensorVo = new AppSensorVo();
-//            sensorVo.setSensorId(sensor.getId());
-//            sensorVo.setUuid(sensor.getUuid());
-//            String addr = sensor.getProvince()+sensor.getCity()+sensor.getDistrict();
-////            String addr = sensor.getProvince()+","+sensor.getCity()+","+sensor.getDistrict();
-//            if (Cools.isEmpty(addr)) {
-//                addr = "鏈煡瀹氫綅";
-//            }
-//            sensorVo.setAddr(addr);
-//
-//            if (!sensorTypeSet.contains(sensor.getSensorType())) {
-//                sensorTypeSet.add(sensor.getSensorType());
-//                SensorType sensorType = sensorTypeService.selectById(sensor.getSensorType());
-//                AppSensorTypeVo vo = new AppSensorTypeVo();
-//                vo.setSensorTypeFlag(sensorType.getFlag());
-//                vo.setSensorTypeId(sensor.getSensorType());
-//                vo.setSensorTypeName(sensorType.getName());
-//                result.add(vo);
-//                vo.getSensors().add(sensorVo);
-//            } else {
-//                for (AppSensorTypeVo vo : result) {
-//                    if (vo.getSensorTypeId().equals(sensor.getSensorType())) {
-//                        vo.getSensors().add(sensorVo);
-//                    }
-//                }
-//            }
-//        }
-//        return R.ok().add(result);
-//    }
-//
-//    @RequestMapping("/sensor/detl/auth")
-//    @ManagerAuth
-//    public R sensorDetl(@RequestParam Long sensorId){
-//        return R.ok().add(sensorService.selectById(sensorId));
-//    }
+    @RequestMapping("/issue/save/auth")
+    @ManagerAuth(memo = "鏁呴殰涓婃姤")
+    public R issueSave(MobileIssueParam param){
+        if (Cools.isEmpty(param.getHostName())) {
+            return R.error("璇烽�夋嫨鎵�灞為」鐩�");
+        }
+        Host host = hostService.selectByName(param.getHostName());
+        if (Cools.isEmpty(param.getIssueTypeName())) {
+            return R.error("璇烽�夋嫨鏁呴殰绫诲瀷");
+        }
+        IssueType issueType = issueTypeService.selectByName(param.getIssueTypeName());
+        if (Cools.isEmpty(param.getTel())) {
+            return R.error("璇疯緭鍏ヨ仈绯绘柟寮�");
+        }
+        if (!param.getTel().matches(REGEX_MOBILE)) {
+            return R.error("璇疯緭鍏ユ纭殑鎵嬫満鍙�");
+        }
+        if (Cools.isEmpty(param.getTitle())) {
+            return R.error("璇疯緭鍏ラ棶棰樻杩�");
+        }
+        Date now = new Date();
+        Date startTime = DateUtils.convert(param.getStartTime(), DateUtils.yyyyMMdd_F);
+        // 淇濆瓨鏁呴殰
+        Issue issue = new Issue(
+                String.valueOf(snowflakeIdWorker.nextId()),    // 鏁呴殰缂栧彿
+                host.getId(),    // 鎵�灞為」鐩�
+                issueType.getId(),    // 鏁呴殰绫诲瀷
+                param.getTitle(),    // 闂姒傝堪
+                null,    // 鏁呴殰鍘熷洜
+                null,    // 瑙e喅鍔炴硶
+                JSONArray.toJSONString(param.getVideoSrc()),    // 鏂囦欢鍒楄〃
+                JSONArray.toJSONString(param.getImgArr()),    // 鍥剧墖
+                startTime,    // 鍙戠敓鏃ユ湡
+                null,    // 澶勭悊鏃ユ湡
+                null,    // 鏇存柊鏃ユ湡
+                param.getDiscoverer(),    // 鍙戠幇浜�
+                param.getTel(),    // 鑱旂郴鏂瑰紡
+                null,    // 渚涘簲鍟�
+                2,    //
+                1,    // 鐘舵��
+                getUserId(),    // 娣诲姞浜哄憳
+                now,    // 娣诲姞鏃堕棿
+                getUserId(),    // 淇敼浜哄憳
+                now,    // 淇敼鏃堕棿
+                param.getMemo()    // 澶囨敞
+        );
+        if (!issueService.insert(issue)) {
+            throw new CoolException("鍙嶉澶辫触锛岃鑱旂郴绠$悊鍛�");
+        }
+        return R.ok("闂涓婃姤鎴愬姛");
+    }
 
+    @RequestMapping("/issue/list/auth")
+    @ManagerAuth
+    public R sensorList(@RequestParam(required = false) String condition){
+        Wrapper<Issue> wrapper = new EntityWrapper<Issue>()
+                .like("title", condition)
+                .orderBy("settle").orderBy("create_time", false);
+        Long hostId = getHostId();
+        if (hostId != null) {
+            wrapper.eq("host_id", hostId);
+        }
+        List<Issue> issues = issueService.selectList(wrapper);
+        List<AppHostIssueVo> result = new ArrayList<>();
+        Set<Long> hostSet = new HashSet<>();
+        for (Issue issue : issues) {
+            AppIssueVo vo = new AppIssueVo();
+            vo.setIssueId(issue.getId());
+            vo.setTitle(issue.getTitle().length()>12?issue.getTitle().substring(0, 12):issue.getTitle());
+            vo.setStartTime(issue.getStartTime$().length()>11?issue.getStartTime$().substring(0, 11):issue.getStartTime$());
+            vo.setSettle(issue.getSettle$());
 
+            if (!hostSet.contains(issue.getHostId())) {
+                hostSet.add(issue.getHostId());
+                Host host = hostService.selectById(issue.getHostId());
+                AppHostIssueVo hostVo = new AppHostIssueVo();
+                hostVo.setHostId(host.getId());
+                hostVo.setHostName(host.getName());
+                result.add(hostVo);
+                hostVo.getIssues().add(vo);
+            } else {
+                for (AppHostIssueVo hostVo : result) {
+                    if (hostVo.getHostId().equals(issue.getHostId())) {
+                        hostVo.getIssues().add(vo);
+                    }
+                }
+            }
+        }
+        return R.ok().add(result);
+    }
+
+    @RequestMapping("/issue/detl/auth")
+    @ManagerAuth
+    public R issueDetl(@RequestParam Long issueId){
+        return R.ok().add(issueService.selectById(issueId));
+    }
 
 }

--
Gitblit v1.9.1