Van333
2022-09-02 2234cee8e872fd7633b95eef5b0c760cbbb8eabf
20220902林平凡离职交接(新增北理工大气数据获取)
已修改17个文件
已添加9个文件
已删除1个文件
1247 ■■■■ 文件已修改
.idea/git_toolbox_prj.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/misc.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/sonarlint/issuestore/index.pb 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/APIApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/bean/AccessEntity.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/bean/PoleSensorV2SoilVOEntity.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/bean/PoleSensorV2VOEntity.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/bean/ReqParams.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/bean/TimerRequest.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/controller/CameraController.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/controller/SinglelampDataController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/controller/TimerController.java 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/controller/WeatherV2Controller.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/dao/AccessDao.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/dao/SinglelampDataDao.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/dao/WeatherV2Dao.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/service/AccessService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/service/SinglelampDataServer.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/service/WeatherV2Service.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/api/utils/httpClient.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PoleSinglelampDataMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WeatherV2Dao.xml 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
target/api-1.0-SNAPSHOT.jar.original 补丁 | 查看 | 原始文档 | blame | 历史
target/classes/mapper/PoleSinglelampDataMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/git_toolbox_prj.xml
@@ -6,10 +6,10 @@
        <option name="enabled" value="true" />
      </BoolValueOverride>
    </option>
    <option name="commitMessageValidationConfigOverride">
      <CommitMessageValidationOverride>
    <option name="commitMessageValidationEnabledOverride">
      <BoolValueOverride>
        <option name="enabled" value="true" />
      </CommitMessageValidationOverride>
      </BoolValueOverride>
    </option>
  </component>
</project>
.idea/misc.xml
@@ -24,7 +24,7 @@
      </list>
    </option>
  </component>
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="jdk8u322-b06" project-jdk-type="JavaSDK" />
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="temurin-1.8" project-jdk-type="JavaSDK" />
  <component name="ProjectType">
    <option name="id" value="jpab" />
  </component>
.idea/sonarlint/issuestore/index.pb
@@ -0,0 +1,3 @@
c
3src/main/java/api/controller/WeatherController.java,a\6\a679d63f2053a2d504b84084e321ec7f09f6cf28
pom.xml
@@ -86,7 +86,12 @@
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.6</version>
            <version>4.4.15</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.5</version>
        </dependency>
        <!--分页插件-->
src/main/java/api/APIApplication.java
@@ -3,6 +3,7 @@
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
 * @program: wog
@@ -13,6 +14,7 @@
@SpringBootApplication
@MapperScan(basePackages = "api.dao")
@EnableScheduling
public class APIApplication {
    public static void main(String[] args) {
src/main/java/api/bean/AccessEntity.java
@@ -25,14 +25,8 @@
    private Date updateTime;
    @Override
    public String toString() {
        return "AccessEntity{" +
                "userId=" + userId +
                ", accessId=" + accessId +
                ", accessKey='" + accessKey + '\'' +
                ", accessSercet='" + accessSercet + '\'' +
                ", accessToken='" + accessToken + '\'' +
                '}';
    }
    private String ys7AccessToken;
    private String ys7AccountId;
}
src/main/java/api/bean/PoleSensorV2SoilVOEntity.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package api.bean;
import lombok.Data;
import java.util.Date;
/**
 * @author van
 * @version 1.0
 * msg:
 * @date 2022/9/1 15:20
 */
@Data
public class PoleSensorV2SoilVOEntity  {
    private Long id;
    private String mac;
    //土壤体积含水量
    private Double soilMoisture;
    //土壤温度
    private Double soilTemperature;
    //电导率
    private Double soilEc;
    private Date soilCreateDate;
    //ph
    private Double soilPh;
    private String deviceType;
    private String streetlightName;
    private Long streetlightId;
}
src/main/java/api/bean/PoleSensorV2VOEntity.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package api.bean;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * è€•农大气 åŒ—理工定制 7相数
 * HCD6817七要素微气象仪(温度、湿度、大气压力、风速、风向、降雨量、光照度)
 */
@Data
public class PoleSensorV2VOEntity implements Serializable {
    /**
     * ä¸»é”®ID
     */
    private Integer id;
    private String streetlightName;
    /**
     * è·¯ç¯ID
     */
    private Integer streetlightId;
    /**
     * ç©ºæ°”温度
     */
    private BigDecimal airTemperature;
    /**
     * ç©ºæ°”湿度
     */
    private BigDecimal airHumidity;
    /**
     * å¤§æ°”压强
     */
    private BigDecimal airPressure;
    /**
     * é£Žå‘
     */
    private BigDecimal windDirection;
    /**
     * é£Žé€Ÿ
     */
    private BigDecimal windSpeed;
    /**
     * ååˆ†é’Ÿé›¨é‡
     */
    private BigDecimal tenRainfallMin;
    /**
     * å…‰ç…§
     */
    private BigDecimal illumination;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
}
src/main/java/api/bean/ReqParams.java
@@ -3,6 +3,7 @@
import lombok.Data;
import java.io.Serializable;
import java.util.Timer;
/**
 * @program: wog
@@ -33,7 +34,18 @@
    private String key;
//    æŽ§ç¯æŽ¥æ”¶
    private PoleLightBatchEntity poleLightBatch;
//     å®šæ—¶ä»»åŠ¡æŽ¥æ”¶
    private TimerRequest timerRequest;
    private Long[] streetlightIds;
    private Integer timerId;
    //  å®šæ—¶åç§°
    private String timerName;
    //  å®šæ—¶è¡¨è¾¾å¼
    private String timerExp;
    //    ç¯å¤´åºå·
    private Integer lightNumber;
    public String getApiKey() {
        return "84b5f9d6b37c47edb1adae628aaaf3e5";
    }
src/main/java/api/bean/TimerRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package api.bean;
import lombok.Data;
import java.util.List;
/**
 * @author van
 * @version 1.0
 * msg:
 * @date 2022/6/9 15:01
 */
@Data
public class TimerRequest {
    //  å®šæ—¶åç§°
    private String timerName;
    //  å®šæ—¶è¡¨è¾¾å¼
    private String timerExp;
    //  ç»„ID
    private Long groupId;
    //  ç¯æ†ID列表
    private List<Long> ids;
    //  é¡µç 
    private Integer page;
    //  é¡¹æ•°
    private Integer limit;
    //  æœç´¢è¯
    private String key;
    //  å®šæ—¶ID
    private Integer timerId;
    //  æ—¶é—´æˆ³
    private Long timestamp;
    //  æ“ä½œæ—¶
    private String operateHour;
    //    ç¯å¤´åºå·
    private Integer lightNumber;
}
src/main/java/api/controller/CameraController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package api.controller;
import api.bean.ReqParams;
import api.result.Msg;
import api.service.AccessService;
import api.utils.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.util.concurrent.RateLimiter;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
 * @author van
 * @version 1.0
 * msg:
 * @date 2022/8/9 13:57
 */
@RestController
@RequestMapping("/Camera")
public class CameraController {
    @Autowired
    private AccessService accessService;
    RateLimiter rateLimiter = RateLimiter.create(10.0);
    @RequestMapping(value = "/getToken",method = RequestMethod.POST)
    public Msg listWithNotStatus(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("accessToken exception!!!");
        }
        //父accesstoken
        Map<String, String> parms =new HashMap<>(2);
        parms.put("appKey","51a534ebadf54c31a0848dc575dfa206");
        parms.put("appSecret","8c32c67a73c87b9e461b2e3bdf58967a");
        String post = HttpUtil.httpRequestToString("https://open.ys7.com/api/lapp/token/get","post",parms);
        String accessToken= JSON.parseObject(JSON.parseObject(post).getString("data")).getString("accessToken");
        //子accesstoken
        String ys7AccountId = accessService.getYs7AccountId(reqParams.getAccessToken());
        Map<String, String> parms02 =new HashMap<>(2);
        parms02.put("accessToken",accessToken);
        parms02.put("accountId",ys7AccountId);
        String post02 = HttpUtil.httpRequestToString("https://open.ys7.com/api/lapp/ram/token/get","post",parms02);
        System.out.println(post02);
        JSONObject data = JSON.parseObject(JSON.parseObject(post02).getString("data"));
        return Msg.ok(data);
    }
}
src/main/java/api/controller/SinglelampDataController.java
@@ -36,13 +36,13 @@
    @RequestMapping(value = "/list",method = RequestMethod.POST)
    public Msg list(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        if (reqParams.getLimit()>50){
        if (reqParams.getLimit()>200){
            return Msg.error("limit exception!!!");
        }
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("server exception!!!");
            return Msg.error("accessToken exception!!!");
        }
        reqParams.toString();
@@ -50,7 +50,9 @@
        Map data = new HashMap();
        data.put("total",info.getTotal());
        data.put("dataSize",info.getStartRow());
        data.put("lampSize",info.getEndRow());
        data.put("totalPage",Math.ceil(info.getStartRow()*1.0/reqParams.getLimit()));
        data.put("list",info.getList());
        return Msg.ok().put("data",data);
@@ -65,7 +67,7 @@
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("server exception!!!");
            return Msg.error("accessToken exception!!!");
        }
        PageInfo<SinglelampDataEntity> info = singlelampDataServer.selectByStreetlightId(reqParams);
src/main/java/api/controller/TimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,268 @@
package api.controller;
import api.bean.PoleLightBatchEntity;
import api.bean.ReqParams;
import api.bean.TimerRequest;
import api.result.Msg;
import api.service.AccessService;
import api.utils.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.util.concurrent.RateLimiter;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/**
 * @author van
 * @version 1.0
 * msg:单灯定时任务控制层
 * @date 2021/11/2 15:04
 */
@RestController
@RequestMapping("/pole/timer")
public class TimerController {
    @Autowired
    private AccessService accessService;
    RateLimiter rateLimiter = RateLimiter.create(10.0);
    /**
     * å®šæ—¶ä»»åŠ¡åˆ—è¡¨
     * */
    @RequestMapping(value = "list",method = RequestMethod.POST)
    public Msg listWithNotStatus(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        if (reqParams.getLimit()>50){
            return Msg.error("limit exception!!!");
        }
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("accessToken exception!!!");
        }
        reqParams.setApiKey(reqParams.getApiKey());
        reqParams.setUserId(userId);
        TimerRequest timerRequest = new TimerRequest();
        timerRequest.setLimit(reqParams.getLimit());
        timerRequest.setPage(reqParams.getPage());
        timerRequest.setIds(new ArrayList<>());
        timerRequest.setKey(reqParams.getKey());
        reqParams.setTimerRequest(timerRequest);
        String result = HttpUtil.Post(
                "http://127.0.0.1:8888/machine-fast/serv/api/timer/list",
                new Gson().toJson(reqParams)
        );
        Map msg = JSON.parseObject(result, HashMap.class);
        if (msg.get("msg").equals("success")){
            return Msg.ok().put("data",msg.get("list"));
        }
        else {
            return Msg.error(msg.get("msg").toString());
        }
    }
    /**
     * æŸ¥çœ‹å®šæ—¶ä»»åŠ¡ID对应绑定的灯杆列表
     * */
    @RequestMapping(value = "listByTimerId",method = RequestMethod.POST)
    public Msg getStreetlightListByTimerId(@RequestBody ReqParams reqParams){
        System.out.println(reqParams);
        rateLimiter.acquire(1);
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("accessToken exception!!!");
        }
        reqParams.setApiKey(reqParams.getApiKey());
        reqParams.setUserId(userId);
        TimerRequest timerRequest = new TimerRequest();
        timerRequest.setTimerId(reqParams.getTimerId());
        reqParams.setTimerRequest(timerRequest);
        String result = HttpUtil.Post(
                "http://127.0.0.1:8888/machine-fast/serv/api/timer/listByTimerId",
                new Gson().toJson(reqParams)
        );
        Map msg = JSON.parseObject(result, HashMap.class);
        if (msg.get("msg").equals("success")){
            return Msg.ok().put("data",msg.get("list"));
        }
        else {
            return Msg.error(msg.get("msg").toString());
        }
    }
    /**
     * åˆ é™¤å®šæ—¶ä»»åŠ¡
     * */
    @RequestMapping(value = "deleteTimerByTimerId",method = RequestMethod.POST)
    public Msg deleteTimerByTimerId(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("accessToken exception!!!");
        }
        reqParams.setApiKey(reqParams.getApiKey());
        reqParams.setUserId(userId);
        TimerRequest timerRequest = new TimerRequest();
        timerRequest.setTimerId(reqParams.getTimerId());
        reqParams.setTimerRequest(timerRequest);
        String result = HttpUtil.Post(
                "http://127.0.0.1:8888/machine-fast/serv/api/timer/deleteTimerByTimerId",
                new Gson().toJson(reqParams)
        );
        Map msg = JSON.parseObject(result, HashMap.class);
        assert msg != null;
        if (msg.get("msg").equals("success")){
            return Msg.ok().put("data",msg.get("data"));
        }
        else {
            return Msg.error(msg.get("msg").toString());
        }
    }
    /**
     * æ·»åŠ å®šæ—¶ä»»åŠ¡
     * */
    @RequestMapping(value = "addTimer",method = RequestMethod.POST)
    public Msg addTimer(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("accessToken exception!!!");
        }
        reqParams.setApiKey(reqParams.getApiKey());
        reqParams.setUserId(userId);
        TimerRequest timerRequest = new TimerRequest();
        timerRequest.setIds(Arrays.asList(reqParams.getStreetlightIds()));
        timerRequest.setTimerExp(reqParams.getTimerExp());
        timerRequest.setTimerName(reqParams.getTimerName());
        timerRequest.setLightNumber(reqParams.getLightNumber());
        reqParams.setTimerRequest(timerRequest);
        String result = HttpUtil.Post(
                "http://127.0.0.1:8888/machine-fast/serv/api/timer/addTimer",
                new Gson().toJson(reqParams)
        );
        Map msg = JSON.parseObject(result, HashMap.class);
        assert msg != null;
        if (msg.get("msg").equals("success")){
            return Msg.ok().put("data",msg.get("data"));
        }
        else {
            return Msg.error(msg.get("msg").toString());
        }
    }
    /**
     * ä¿®æ”¹å®šæ—¶ä»»åŠ¡
     * */
    @RequestMapping(value = "updateTimer",method = RequestMethod.POST)
    public Msg updateTimer(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null){
            return Msg.error("accessToken exception!!!");
        }
        reqParams.setApiKey(reqParams.getApiKey());
        reqParams.setUserId(userId);
        TimerRequest timerRequest = new TimerRequest();
        timerRequest.setTimerId(reqParams.getTimerId());
        timerRequest.setIds(Arrays.asList(reqParams.getStreetlightIds()));
        timerRequest.setTimerExp(reqParams.getTimerExp());
        timerRequest.setTimerName(reqParams.getTimerName());
        timerRequest.setLightNumber(reqParams.getLightNumber());
        reqParams.setTimerRequest(timerRequest);
        String result = HttpUtil.Post(
                "http://127.0.0.1:8888/machine-fast/serv/api/timer/updateTimer",
                new Gson().toJson(reqParams)
        );
        Map msg = JSON.parseObject(result, HashMap.class);
        assert msg != null;
        if (msg.get("msg").equals("success")){
            return Msg.ok().put("data",msg.get("data"));
        }
        else {
            return Msg.error(msg.get("msg").toString());
        }
    }
}
src/main/java/api/controller/WeatherV2Controller.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package api.controller;
import api.bean.PoleSensorV2SoilVOEntity;
import api.bean.PoleSensorV2VOEntity;
import api.bean.ReqParams;
import api.bean.WeatherEntity;
import api.result.Msg;
import api.service.AccessService;
import api.service.WeatherService;
import api.service.WeatherV2Service;
import com.github.pagehelper.PageInfo;
import com.google.common.util.concurrent.RateLimiter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/weather/v2")
public class WeatherV2Controller {
    @Autowired
    private AccessService accessService;
    @Autowired
    private WeatherV2Service weatherV2Service;
    RateLimiter rateLimiter = RateLimiter.create(10.0);
    @RequestMapping(value = "/list")
    public Msg list(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        if(reqParams.getLimit() > 200){
            return Msg.error("limit exception!!!");
        }
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null) {
            return Msg.error("server exception");
        }
        PageInfo<PoleSensorV2VOEntity> info = weatherV2Service.list(userId, reqParams);
        Map data = new HashMap();
        data.put("total",info.getTotal());
        data.put("list",info.getList());
        return Msg.ok().put("data",data);
    }
    @RequestMapping(value = "/soil/list")
    public Msg soilList(@RequestBody ReqParams reqParams){
        rateLimiter.acquire(1);
        if(reqParams.getLimit() > 200){
            return Msg.error("limit exception!!!");
        }
        Long userId = accessService.getUserId(reqParams.getAccessToken());
        if(userId == null) {
            return Msg.error("server exception");
        }
        PageInfo<PoleSensorV2SoilVOEntity> info = weatherV2Service.soilList(userId, reqParams);
        Map data = new HashMap();
        data.put("total",info.getTotal());
        data.put("list",info.getList());
        return Msg.ok().put("data",data);
    }
}
src/main/java/api/dao/AccessDao.java
@@ -26,4 +26,6 @@
    @Select("select role_id from sys_user_role where user_id = #{userId}")
    Long selectRoleIdByUserId(@Param("userId") Long userId);
    @Select("select ys7_account_id from wog_user_access where access_token = #{accessToken} limit 1")
    String selectYs7AccountIdByAccessToken(String accessToken);
}
src/main/java/api/dao/SinglelampDataDao.java
@@ -4,6 +4,7 @@
import api.bean.SinglelampDataEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -26,4 +27,7 @@
    //List<SinglelampDataEntity> selectByUserId(Long userId);
    /**单个灯杆数据*/
    List<SinglelampDataEntity> selectByStreetlightId(String mac);
    @Select("select count(*) from pole_streetlight ps where ps.streetlight_id in(select pus.streetlight_id from pole_user_streetlight pus where pus.company_id in(select suc.company_id from sys_user_company suc where suc.user_id=#{userId}))")
    Integer countByCompany(@Param("userId") Long userId);
}
src/main/java/api/dao/WeatherV2Dao.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package api.dao;
import api.bean.PoleSensorV2SoilVOEntity;
import api.bean.PoleSensorV2VOEntity;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * è€•农 åŒ—理工
 **/
@Mapper
@Repository
public interface WeatherV2Dao {
    List<PoleSensorV2VOEntity> selectAll();
    List<PoleSensorV2VOEntity> selectByCompany(Long userId);
    List<PoleSensorV2VOEntity> selectByUserId(Long userId);
    List<PoleSensorV2VOEntity> getSensorByPoleId(Long poleId);
    List<PoleSensorV2SoilVOEntity> selectAllForSoil();
    List<PoleSensorV2SoilVOEntity> selectByCompanyForSoil(Long userId);
    List<PoleSensorV2SoilVOEntity> selectByUserIdForSoil(Long userId);
    List<PoleSensorV2SoilVOEntity> getSensorByMac(String mac);
}
src/main/java/api/service/AccessService.java
@@ -51,7 +51,7 @@
            return Msg.error("secret mistake");
        }
        if(new Date().getTime() - accessData.getUpdateTime().getTime() > OUT_EXPRESS_TIME) {
        if(System.currentTimeMillis() - accessData.getUpdateTime().getTime() > OUT_EXPRESS_TIME) {
            accessData.setAccessToken(UUID.randomUUID().toString());
            accessData.setUpdateTime(new Date());
@@ -61,4 +61,13 @@
        }
        return Msg.ok().put("accessToken",accessData.getAccessToken());
    }
    public String getYs7AccountId(String accessKey) {
        String ys7AccountId
                = accessDao.selectYs7AccountIdByAccessToken(accessKey);
        return ys7AccountId;
    }
}
src/main/java/api/service/SinglelampDataServer.java
@@ -3,6 +3,7 @@
import api.bean.ReqParams;
import api.bean.SinglelampDataEntity;
import api.dao.SinglelampDataDao;
import cn.hutool.core.collection.ListUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,21 +28,41 @@
    public PageInfo<SinglelampDataEntity> selectList(Long userId, ReqParams reqParams) {
        Long roleId = accessService.getRoleId(userId);
        if(roleId == null || roleId == 0){
        if (roleId == null || roleId == 0) {
            return null;
        }
        List<SinglelampDataEntity> list = null;
        if(roleId.longValue() == 1 ){
            PageHelper.startPage(reqParams.getPage(),reqParams.getLimit());
        Integer count = null;
        if (roleId.longValue() == 1) {
            PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
            list = singlelampDao.selectAll();
        }else if (roleId.longValue() == 2 || roleId.longValue() == 3){
           PageHelper.startPage(reqParams.getPage(),reqParams.getLimit());
            list = singlelampDao.selectByCompany(reqParams.getPage(),reqParams.getLimit(),userId);
        } else if (roleId.longValue() == 2 || roleId.longValue() == 3) {
            count = singlelampDao.countByCompany(userId);
            list = singlelampDao.selectByCompany(1, count, userId);
        }
        PageInfo<SinglelampDataEntity> page = new PageInfo<>(list);
        Integer listLimit = reqParams.getLimit();
        Integer listPage = reqParams.getPage();
        if ((listLimit > listPage * listLimit)
            || listLimit < listPage){
            listLimit = count;
        }
        List<SinglelampDataEntity> pageList =
                ListUtil.sortByProperty(list,"streetlightId");
        List<SinglelampDataEntity> finalList =
                ListUtil.page(listPage-1, listLimit, pageList);
        PageInfo<SinglelampDataEntity> page = new PageInfo<>(finalList);
        page.setStartRow(list.size());
        page.setEndRow(count);
        return page;
    }
src/main/java/api/service/WeatherV2Service.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
package api.service;
import api.bean.PoleSensorV2SoilVOEntity;
import api.bean.PoleSensorV2VOEntity;
import api.bean.ReqParams;
import api.bean.WeatherEntity;
import api.dao.WeatherDao;
import api.dao.WeatherV2Dao;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * è€•农 åŒ—理工
 **/
@Service
public class WeatherV2Service {
    @Autowired
    private AccessService accessService;
    @Autowired
    private WeatherV2Dao weatherV2Dao;
    public PageInfo<PoleSensorV2VOEntity> list(Long userId, ReqParams reqParams) {
        Long roleId = accessService.getRoleId(userId);
        if (roleId == null || roleId == 0) {
            return null;
        }
        List<PoleSensorV2VOEntity> list = null;
        Long poleId = reqParams.getLightId();
        if(null == poleId || poleId.equals("")){
            if (roleId.longValue() == 1) {
                PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
                list = weatherV2Dao.selectAll();
            } else if (roleId.longValue() == 2) {
                PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
                list = weatherV2Dao.selectByCompany(userId);
            } else if (roleId.longValue() == 3) {
                PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
                list = weatherV2Dao.selectByUserId(userId);
            }
        }else {
            PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
            list = weatherV2Dao.getSensorByPoleId(poleId);
        }
        PageInfo<PoleSensorV2VOEntity> page = new PageInfo<>(list);
        return page;
}
    public PageInfo<PoleSensorV2SoilVOEntity> soilList(Long userId, ReqParams reqParams) {
        Long roleId = accessService.getRoleId(userId);
        if (roleId == null || roleId == 0) {
            return null;
        }
        List<PoleSensorV2SoilVOEntity> list = null;
        String mac = reqParams.getMac();
        if(null == mac || mac.equals("")){
            if (roleId.longValue() == 1) {
                PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
                list = weatherV2Dao.selectAllForSoil();
            } else if (roleId.longValue() == 2) {
                PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
                list = weatherV2Dao.selectByCompanyForSoil(userId);
            } else if (roleId.longValue() == 3) {
                PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
                list = weatherV2Dao.selectByUserIdForSoil(userId);
            }
        }else {
            PageHelper.startPage(reqParams.getPage(), reqParams.getLimit());
            list = weatherV2Dao.getSensorByMac(mac);
        }
        PageInfo<PoleSensorV2SoilVOEntity> page = new PageInfo<>(list);
        return page;
    }
}
src/main/java/api/utils/httpClient.java
ÎļþÒÑɾ³ý
src/main/resources/mapper/PoleSinglelampDataMapper.xml
@@ -71,4 +71,6 @@
            psd.singlelamp_data_id DESC
    </select>
</mapper>
src/main/resources/mapper/WeatherV2Dao.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="api.dao.WeatherV2Dao">
    <select id="selectAll" resultType="api.bean.PoleSensorV2VOEntity">
        SELECT
            p1.streetlight_name,p1.link_method,
            p2.*
        FROM
            pole_streetlight p1
                LEFT JOIN pole_sensor_v2 p2 ON p1.streetlight_id = p2.streetlight_id
        WHERE
                id IN (
                SELECT
                    max(id)
                FROM
                    pole_sensor_v2
                GROUP BY
                    streetlight_id
            )
    </select>
    <select id="selectByCompany" resultType="api.bean.PoleSensorV2VOEntity" parameterType="java.lang.Long">
        SELECT
            p1.streetlight_name,p1.link_method,
            p2.*
        FROM
            pole_streetlight p1
                LEFT JOIN pole_sensor_v2 p2 ON p1.streetlight_id = p2.streetlight_id
        WHERE
                id IN (
                SELECT
                    max(id)
                FROM
                    pole_sensor_v2
                WHERE
                        streetlight_id IN (
                        SELECT
                            streetlight_id
                        FROM
                            pole_user_streetlight
                        WHERE
                                company_id = (
                                SELECT
                                    company_id
                                FROM
                                    sys_user_company
                                WHERE
                                    user_id = #{userId}
                            )
                    )
                GROUP BY
                    streetlight_id
            )
    </select>
    <select id="selectByUserId" resultType="api.bean.PoleSensorV2VOEntity" parameterType="java.lang.Long">
        SELECT
            p1.streetlight_name,p1.link_method,
            p2.*
        FROM
            pole_streetlight p1
                LEFT JOIN pole_sensor_v2 p2 ON p1.streetlight_id = p2.streetlight_id
        WHERE
                id IN (
                SELECT
                    max(id)
                FROM
                    pole_sensor_v2
                WHERE
                        streetlight_id IN (
                        SELECT
                            streetlight_id
                        FROM
                            pole_user_streetlight
                        WHERE
                            user_id = #{userId}
                    )
                GROUP BY
                    streetlight_id
            )
    </select>
    <select id="getSensorByPoleId" resultType="api.bean.PoleSensorV2VOEntity" parameterType="java.lang.Long">
        SELECT
            p1.streetlight_name,p1.link_method,
            p2.*
        FROM
            pole_streetlight p1
                LEFT JOIN pole_sensor_v2 p2 ON p1.streetlight_id = p2.streetlight_id
        WHERE
                id IN (
                SELECT
                    id
                FROM
                    pole_sensor_v2
                WHERE
                    streetlight_id = #{poleId}
            )
        ORDER BY
            create_time DESC
    </select>
    <!--
    åœŸå£¤
    -->
    <select id="selectAllForSoil" resultType="api.bean.PoleSensorV2SoilVOEntity">
        select *
        from
            pole_sensor_v2_soil psvs
                join(
                select
                    max(id) as id
                from
                    pole_sensor_v2_soil
                group by
                    mac
            ) maxid
                    on psvs.id  = maxid.id
                        and psvs.device_type = '51'
                join pole_streetlight  ps on ps.code_number = psvs.mac
        order by psvs.id desc
    </select>
    <select id="selectByCompanyForSoil" resultType="api.bean.PoleSensorV2SoilVOEntity"
            parameterType="java.lang.Long">
        select
            *
        from
            pole_sensor_v2_soil psvs
                join(
                select
                    max(id) as id
                from
                    pole_sensor_v2_soil
                group by
                    mac
            ) maxid
                    on
                                psvs.id = maxid.id
                            and psvs.device_type = '51'
                            and mac in (
                            select
                                ps.code_number
                            from
                                pole_streetlight ps
                            where
                                    ps.streetlight_id in (
                                    select
                                        pus.streetlight_id
                                    from
                                        pole_user_streetlight pus
                                    where
                                            pus.company_id in(
                                            select
                                                suc.company_id
                                            from
                                                sys_user_company suc
                                            where
                                                    suc.user_id =
                                                    #{userId}
                                        )
                                )
                        )
                join pole_streetlight ps on
                ps.code_number = psvs.mac
        order by
            psvs.id desc
    </select>
    <select id="selectByUserIdForSoil" resultType="api.bean.PoleSensorV2SoilVOEntity"
            parameterType="java.lang.Long">
        select
            *
        from
            pole_sensor_v2_soil psvs
                join(
                select
                    max(id) as id
                from
                    pole_sensor_v2_soil
                group by
                    mac
            ) maxid
                    on
                                psvs.id = maxid.id
                            and psvs.device_type = '51'
                            and mac in (
                            select
                                ps.code_number
                            from
                                pole_streetlight ps
                            where
                                    ps.streetlight_id in (
                                    select
                                        pus.streetlight_id
                                    from
                                        pole_user_streetlight pus
                                    where
                                            pus.company_id in(
                                            select
                                                suc.company_id
                                            from
                                                sys_user_company suc
                                            where
                                                    suc.user_id =
                                                    #{userId}
                                        )
                                )
                        )
                join pole_streetlight ps on
                ps.code_number = psvs.mac
        order by
            psvs.id desc
    </select>
    <select id="getSensorByMac" resultType="api.bean.PoleSensorV2SoilVOEntity"
            parameterType="java.lang.String">
        select *
        from
            pole_sensor_v2_soil psvs
                join pole_streetlight  ps on ps.code_number = psvs.mac
        where device_type  = '51'
          and mac = #{mac}
        order by psvs.id desc
    </select>
</mapper>
target/api-1.0-SNAPSHOT.jar.original
Binary files differ
target/classes/mapper/PoleSinglelampDataMapper.xml
@@ -71,4 +71,6 @@
            psd.singlelamp_data_id DESC
    </select>
</mapper>
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -2,22 +2,29 @@
api\service\PoleService.class
api\bean\SinglelampDataEntity.class
api\controller\PoleController.class
api\dao\WeatherV2Dao.class
api\service\WeatherService.class
api\utils\httpClient.class
api\bean\PoleLightBatchEntity.class
api\bean\TimerRequest.class
api\bean\ReqParams.class
api\service\SinglelampDataServer.class
api\controller\CameraController.class
api\service\WeatherV2Service.class
api\utils\HttpUtil.class
api\controller\WeatherController.class
api\controller\SinglelampDataController.class
api\dao\SinglelampDataDao.class
api\bean\PoleSensorV2VOEntity.class
api\controller\TimerController.class
api\dao\AccessDao.class
api\service\AccessService.class
api\bean\PoleSensorV2SoilVOEntity.class
api\bean\LampEntity.class
api\result\Msg.class
api\bean\AccessEntity.class
api\utils\CommonHeader.class
api\APIApplication.class
api\dao\WeatherDao.class
api\controller\WeatherV2Controller.class
api\bean\WeatherEntity.class
api\controller\AccessController.class
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,23 +1,30 @@
D:\Coding\api\src\main\java\api\dao\SinglelampDataDao.java
D:\Coding\api\src\main\java\api\service\WeatherService.java
D:\Coding\api\src\main\java\api\bean\AccessEntity.java
D:\Coding\api\src\main\java\api\service\AccessService.java
D:\Coding\api\src\main\java\api\bean\ReqParams.java
D:\Coding\api\src\main\java\api\controller\PoleController.java
D:\Coding\api\src\main\java\api\service\PoleService.java
D:\Coding\api\src\main\java\api\service\WeatherV2Service.java
D:\Coding\api\src\main\java\api\service\SinglelampDataServer.java
D:\Coding\api\src\main\java\api\utils\httpClient.java
D:\Coding\api\src\main\java\api\utils\HttpUtil.java
D:\Coding\api\src\main\java\api\bean\TimerRequest.java
D:\Coding\api\src\main\java\api\controller\SinglelampDataController.java
D:\Coding\api\src\main\java\api\dao\AccessDao.java
D:\Coding\api\src\main\java\api\controller\AccessController.java
D:\Coding\api\src\main\java\api\bean\LampEntity.java
D:\Coding\api\src\main\java\api\dao\LampDao.java
D:\Coding\api\src\main\java\api\bean\PoleSensorV2SoilVOEntity.java
D:\Coding\api\src\main\java\api\dao\SinglelampDataDao.java
D:\Coding\api\src\main\java\api\bean\AccessEntity.java
D:\Coding\api\src\main\java\api\service\AccessService.java
D:\Coding\api\src\main\java\api\dao\WeatherV2Dao.java
D:\Coding\api\src\main\java\api\bean\ReqParams.java
D:\Coding\api\src\main\java\api\utils\HttpUtil.java
D:\Coding\api\src\main\java\api\controller\TimerController.java
D:\Coding\api\src\main\java\api\bean\PoleSensorV2VOEntity.java
D:\Coding\api\src\main\java\api\dao\WeatherDao.java
D:\Coding\api\src\main\java\api\bean\SinglelampDataEntity.java
D:\Coding\api\src\main\java\api\bean\WeatherEntity.java
D:\Coding\api\src\main\java\api\bean\PoleLightBatchEntity.java
D:\Coding\api\src\main\java\api\dao\AccessDao.java
D:\Coding\api\src\main\java\api\controller\CameraController.java
D:\Coding\api\src\main\java\api\controller\WeatherV2Controller.java
D:\Coding\api\src\main\java\api\result\Msg.java
D:\Coding\api\src\main\java\api\utils\CommonHeader.java
D:\Coding\api\src\main\java\api\controller\AccessController.java
D:\Coding\api\src\main\java\api\bean\LampEntity.java
D:\Coding\api\src\main\java\api\controller\WeatherController.java
D:\Coding\api\src\main\java\api\dao\LampDao.java
D:\Coding\api\src\main\java\api\APIApplication.java