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());
|
}
|
|
|
}
|
|
@RequestMapping(value = "info",method = RequestMethod.POST)
|
public Msg timerInfo(@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/getStreetlightListByTimerId",
|
new Gson().toJson(reqParams)
|
);
|
|
Map msg = JSON.parseObject(result, HashMap.class);
|
|
System.out.println(result);
|
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 = "getSyncStatusByTimerId",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());
|
}
|
|
|
}
|
|
|
|
}
|