Commit 528952fd034ac58410041a6435a9943615c84b0e

Authored by 王通
1 parent 8f8d69ce

1.车辆提供刷新车辆缓存接口

src/main/java/com/bsth/server_rs/base_info/car/CarRestService.java
1 -package com.bsth.server_rs.base_info.car;  
2 -  
3 -import com.alibaba.fastjson.JSON;  
4 -import com.alibaba.fastjson.TypeReference;  
5 -import com.bsth.server_rs.base_info.car.buffer.CarBufferData;  
6 -import com.bsth.server_rs.base_info.dto.BusCardDto;  
7 -import org.apache.commons.lang3.StringEscapeUtils;  
8 -  
9 -import javax.ws.rs.*;  
10 -import javax.ws.rs.core.MediaType;  
11 -import java.util.List;  
12 -import java.util.Map;  
13 -  
14 -/**  
15 - * Created by panzhao on 2017/3/30.  
16 - */  
17 -@Path("/car")  
18 -@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})  
19 -public class CarRestService {  
20 -  
21 - @GET  
22 - @Path("/all")  
23 - public List<Car> findAll(){  
24 - return CarBufferData.findAll();  
25 - }  
26 -  
27 - @GET  
28 - @Path("/company/{companyId}")  
29 - public List<Car> findByCompany(@PathParam("companyId") String companyId) {  
30 - return companyId.equals("-9999") ? CarBufferData.findAll() : CarBufferData.findByCompany(companyId);  
31 - }  
32 -  
33 - @GET  
34 - @Path("/{nbbm}")  
35 - public Car findOne(@PathParam("nbbm") String nbbm) {  
36 - return CarBufferData.findOne(nbbm);  
37 - }  
38 -  
39 - @POST  
40 - @Path("/setCards")  
41 - public Map<String, Object> multiPostCards(String bodyStr){  
42 - bodyStr = StringEscapeUtils.unescapeHtml4(bodyStr);  
43 - List<BusCardDto> list = JSON.parseObject(bodyStr, new TypeReference<List<BusCardDto>>() {});  
44 - return CarBufferData.multiSaveCards(list);  
45 - }  
46 -} 1 +package com.bsth.server_rs.base_info.car;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.TypeReference;
  5 +import com.bsth.server_rs.base_info.car.buffer.CarBufferData;
  6 +import com.bsth.server_rs.base_info.car.buffer.CarRefreshThread;
  7 +import com.bsth.server_rs.base_info.dto.BusCardDto;
  8 +import org.apache.commons.lang3.StringEscapeUtils;
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +
  13 +import javax.ws.rs.*;
  14 +import javax.ws.rs.core.MediaType;
  15 +import java.util.HashMap;
  16 +import java.util.List;
  17 +import java.util.Map;
  18 +
  19 +/**
  20 + * Created by panzhao on 2017/3/30.
  21 + */
  22 +@Path("/car")
  23 +@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
  24 +public class CarRestService {
  25 +
  26 + private final static Logger log = LoggerFactory.getLogger(CarRestService.class);
  27 +
  28 + /**
  29 + * 上一次刷新数据时间(refresh)
  30 + */
  31 + private long lastTime;
  32 +
  33 + @Autowired
  34 + private CarRefreshThread carRefreshThread;
  35 +
  36 + @GET
  37 + @Path("/all")
  38 + public List<Car> findAll(){
  39 + return CarBufferData.findAll();
  40 + }
  41 +
  42 + @GET
  43 + @Path("/company/{companyId}")
  44 + public List<Car> findByCompany(@PathParam("companyId") String companyId) {
  45 + return companyId.equals("-9999") ? CarBufferData.findAll() : CarBufferData.findByCompany(companyId);
  46 + }
  47 +
  48 + @GET
  49 + @Path("/{nbbm}")
  50 + public Car findOne(@PathParam("nbbm") String nbbm) {
  51 + return CarBufferData.findOne(nbbm);
  52 + }
  53 +
  54 + @POST
  55 + @Path("/setCards")
  56 + public Map<String, Object> multiPostCards(String bodyStr){
  57 + bodyStr = StringEscapeUtils.unescapeHtml4(bodyStr);
  58 + List<BusCardDto> list = JSON.parseObject(bodyStr, new TypeReference<List<BusCardDto>>() {});
  59 + return CarBufferData.multiSaveCards(list);
  60 + }
  61 +
  62 + @GET
  63 + @Path("/refresh")
  64 + public Map<String, Object> refresh() {
  65 + Map<String, Object> result = new HashMap<>();
  66 +
  67 + if (System.currentTimeMillis() - lastTime < 30000) {
  68 + lastTime = System.currentTimeMillis();
  69 + result.put("errCode", "C0001");
  70 + result.put("msg", "刷新频率过高");
  71 +
  72 + return result;
  73 + }
  74 + try {
  75 + lastTime = System.currentTimeMillis();
  76 + carRefreshThread.run();
  77 + result.put("errCode", "0");
  78 + result.put("msg", "成功");
  79 + } catch (Exception e) {
  80 + log.error("refresh exception", e);
  81 + result.put("errCode", "S0001");
  82 + result.put("msg", e.getMessage());
  83 + }
  84 +
  85 + return result;
  86 + }
  87 +}