Commit 9c9f8a96dba978ad8cf63f6649691d918c5b004b

Authored by 王通
1 parent d0d99dd2

1.初始化companyListMap

src/main/java/com/bsth/server_rs/base_info/line/buffer/LineBufferData.java
1   -package com.bsth.server_rs.base_info.line.buffer;
2   -
3   -import com.bsth.Application;
4   -import com.bsth.server_rs.base_info.line.Line;
5   -import com.google.common.collect.ArrayListMultimap;
6   -import org.springframework.beans.factory.annotation.Autowired;
7   -import org.springframework.boot.CommandLineRunner;
8   -import org.springframework.core.annotation.Order;
9   -import org.springframework.stereotype.Component;
10   -
11   -import java.util.ArrayList;
12   -import java.util.HashMap;
13   -import java.util.List;
14   -import java.util.Map;
15   -import java.util.concurrent.TimeUnit;
16   -
17   -/**
18   - * 线路数据缓存(自更新)
19   - * Created by panzhao on 2017/3/27.
20   - */
21   -@Component
22   -@Order(5)
23   -public class LineBufferData implements CommandLineRunner {
24   -
25   - @Autowired
26   - LineRefreshThread lineRefreshThread;
27   -
28   - private static List<Line> data;
29   - private static Map<String, Line> idMap;
30   - private static ArrayListMultimap<String, Line> companyListMap;
31   -
32   - public static List<Line> findAll(){
33   - return data;
34   - }
35   -
36   - public static Line findOne(String lineCode){
37   - return idMap.get(lineCode);
38   - }
39   -
40   - public static List<Line> findByCompany(String company){
41   - return companyListMap.get(company);
42   - }
43   -
44   - public static void replaceAll(List<Line> newData){
45   - data = newData;
46   - Map<String, Line> idMapCopy = new HashMap<>();
47   - ArrayListMultimap<String, Line> listMap = ArrayListMultimap.create();
48   -
49   - for(Line line : data){
50   - idMapCopy.put(line.getLineCode(), line);
51   - listMap.put(line.getCompany(), line);
52   - }
53   - idMap = idMapCopy;
54   -
55   - companyListMap = listMap;
56   - }
57   -
58   - @Override
59   - public void run(String... strings) throws Exception {
60   - Application.mainServices.scheduleWithFixedDelay(lineRefreshThread, 10, 60 * 60, TimeUnit.SECONDS);
61   - }
62   -
63   - public static List<String> findCodesByCompany(String company) {
64   - List<Line> list = companyListMap.get(company);
65   - List<String> codes = new ArrayList<>(list.size());
66   -
67   - for(Line line : list)
68   - codes.add(line.getLineCode());
69   - return codes;
70   - }
71   -}
  1 +package com.bsth.server_rs.base_info.line.buffer;
  2 +
  3 +import com.bsth.Application;
  4 +import com.bsth.server_rs.base_info.line.Line;
  5 +import com.google.common.collect.ArrayListMultimap;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.boot.CommandLineRunner;
  8 +import org.springframework.core.annotation.Order;
  9 +import org.springframework.stereotype.Component;
  10 +
  11 +import java.util.ArrayList;
  12 +import java.util.HashMap;
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +import java.util.concurrent.TimeUnit;
  16 +
  17 +/**
  18 + * 线路数据缓存(自更新)
  19 + * Created by panzhao on 2017/3/27.
  20 + */
  21 +@Component
  22 +@Order(5)
  23 +public class LineBufferData implements CommandLineRunner {
  24 +
  25 + @Autowired
  26 + LineRefreshThread lineRefreshThread;
  27 +
  28 + private static List<Line> data;
  29 + private static Map<String, Line> idMap;
  30 + private static ArrayListMultimap<String, Line> companyListMap = ArrayListMultimap.create();
  31 +
  32 + public static List<Line> findAll(){
  33 + return data;
  34 + }
  35 +
  36 + public static Line findOne(String lineCode){
  37 + return idMap.get(lineCode);
  38 + }
  39 +
  40 + public static List<Line> findByCompany(String company){
  41 + return companyListMap.get(company);
  42 + }
  43 +
  44 + public static void replaceAll(List<Line> newData){
  45 + data = newData;
  46 + Map<String, Line> idMapCopy = new HashMap<>();
  47 + ArrayListMultimap<String, Line> listMap = ArrayListMultimap.create();
  48 +
  49 + for(Line line : data){
  50 + idMapCopy.put(line.getLineCode(), line);
  51 + listMap.put(line.getCompany(), line);
  52 + }
  53 + idMap = idMapCopy;
  54 +
  55 + companyListMap = listMap;
  56 + }
  57 +
  58 + @Override
  59 + public void run(String... strings) throws Exception {
  60 + Application.mainServices.scheduleWithFixedDelay(lineRefreshThread, 10, 60 * 60, TimeUnit.SECONDS);
  61 + }
  62 +
  63 + public static List<String> findCodesByCompany(String company) {
  64 + List<Line> list = companyListMap.get(company);
  65 + List<String> codes = new ArrayList<>(list.size());
  66 +
  67 + for(Line line : list)
  68 + codes.add(line.getLineCode());
  69 + return codes;
  70 + }
  71 +}
... ...