fengxiang
2018-02-05 baaff76ba638ac37f5b1dcffb27ba9f5a9fff937
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.moral.controller;
 
 
import com.alibaba.fastjson.JSONObject;
import com.moral.common.bean.Constants;
import com.moral.common.bean.PageBean;
import com.moral.common.bean.PageResult;
import com.moral.common.bean.ResultBean;
import com.moral.entity.Account;
import com.moral.entity.Device;
import com.moral.entity.MapBounds;
import com.moral.entity.MonitorPoint;
import com.moral.security.auth.JwtAuthenticationToken;
import com.moral.security.config.WebSecurityConfig;
import com.moral.service.*;
import lombok.extern.log4j.Log4j;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
 
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 *  所有地图接口都放在此处
 */
@Controller
@RequestMapping("map")
public class MapController {
    public  final  static String REFRESH_TOKEN = "_refresh_token";
    public  static Logger log = Logger.getLogger(MapController.class);
    @Resource
    DeviceService deviceService;
    @Resource
    AreaService areaService;
    @Resource
    AccountService accountService;
    @Resource
    SensorService sensorService;
    @Resource
    MonitorPointService monitorPointService;
 
    @RequestMapping(value = "/screen-main", method = RequestMethod.GET)
    public String map(Model model,
                      @RequestParam("areaCode")int code,
                      @RequestParam(WebSecurityConfig.AUTHENTICATION_PARAM_NAME)String token,
                      @RequestParam(REFRESH_TOKEN)String refreshToke,
                      JwtAuthenticationToken authenticationToken){
        String accountName = authenticationToken.getPrincipal().getUsername();
        Account account = accountService.getAccountByAccountName(accountName);
        String regionName = areaService.selectFullNameByCode(code);
        if(account!=null&&regionName!=null){
            Object sensors = sensorService.queryAll();
            JSONObject params = new JSONObject();
            params.put("regionCode",code);
            params.put("regionName",regionName);
            //token 回传页面
            params.put(WebSecurityConfig.AUTHENTICATION_PARAM_NAME, token);
            params.put(REFRESH_TOKEN,refreshToke);
            params.put("sensors", sensors);
            String paramsJson = params.toJSONString();
            model.addAttribute("mapParams",paramsJson);
            return "map";
        } else {
            StringBuilder msg = new StringBuilder();
            msg.append(" param[0] areaCode:");
            msg.append(code);
            msg.append(" param[0] token:");
            msg.append(token);
            log.warn(msg);
            return "401";
        }
    }
    @RequestMapping(value="get-monitorpoints",method = RequestMethod.GET)
    @ResponseBody
    public ResultBean getMonitorpointList(JwtAuthenticationToken authenticationToken,MapBounds mapBounds){
        ResultBean< List<MonitorPoint>> resultBean = new ResultBean();
        Map<String,Object> paramMap = new HashMap<String, Object>();
        Integer orgId = authenticationToken.getPrincipal().getOrganizationId();
        paramMap.put("orgId", orgId);
        paramMap.put("mapBounds",mapBounds);
        List<MonitorPoint> list = monitorPointService.queryWithStateByMap(paramMap);
        resultBean.setData(list);
        resultBean.setCode(ResultBean.SUCCESS);
        return resultBean;
    }
    @RequestMapping(value = "get-devices-for-popup",method = RequestMethod.GET)
    @ResponseBody
    public PageResult getDevicesForPopup(
            JwtAuthenticationToken authenticationToken,
            String name,
            Integer pageSize,
            Integer pageNo
    ){  Integer orgId = authenticationToken.getPrincipal().getOrganizationId();
        return  deviceService.query(orgId,name,pageSize,pageNo);
    }
}