Commit 83cb5889459bdb318a19787fa91118165a996a0c

Authored by 李强
1 parent 5bb75329

master update

Showing 58 changed files with 2405 additions and 2364 deletions

Too many changes to show.

To preserve performance only 58 of 438 files are displayed.

src/main/java/com/bsth/Application.java
1   -package com.bsth;
2   -
3   -import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.*;
5   -
6   -@SpringBootApplication
7   -public class Application{
8   -
9   - public static void main(String[] args) throws Exception {
10   - SpringApplication.run(Application.class, args);
11   - }
  1 +package com.bsth;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.*;
  5 +
  6 +@SpringBootApplication
  7 +public class Application{
  8 +
  9 + public static void main(String[] args) throws Exception {
  10 + SpringApplication.run(Application.class, args);
  11 + }
12 12 }
13 13 \ No newline at end of file
... ...
src/main/java/com/bsth/WebAppConfiguration.java
1   -package com.bsth;
2   -
3   -import javax.servlet.Filter;
4   -
5   -import org.springframework.boot.context.embedded.FilterRegistrationBean;
6   -import org.springframework.context.annotation.Bean;
7   -import org.springframework.context.annotation.ComponentScan;
8   -import org.springframework.context.annotation.Configuration;
9   -import org.springframework.web.filter.CharacterEncodingFilter;
10   -import org.springframework.web.filter.HttpPutFormContentFilter;
11   -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
12   -import org.springframework.web.socket.config.annotation.EnableWebSocket;
13   -import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
14   -import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
15   -
16   -import com.bsth.filter.ResourceFilter;
17   -
18   -@Configuration
19   -@EnableWebSocket
20   -@ComponentScan
21   -public class WebAppConfiguration extends WebMvcConfigurerAdapter implements WebSocketConfigurer{
22   -
23   - /**
24   - *
25   - * @Title: httpPutFormContentFilter
26   - * @Description: TODO(弥补浏览器不支持PUT/DELETE,对携带 _method 参数的请求进行转换)
27   - * @return Filter 返回类型
28   - * @throws
29   - */
30   - @Bean
31   - public Filter httpPutFormContentFilter() {
32   - return new HttpPutFormContentFilter();
33   - }
34   -
35   - /**
36   - *
37   - * @Title: characterEncodingFilter
38   - * @Description: TODO(编码过滤器)
39   - * @return Filter 返回类型
40   - * @throws
41   - */
42   - @Bean
43   - public Filter characterEncodingFilter(){
44   - return new CharacterEncodingFilter("UTF-8");
45   - }
46   -
47   - /**
48   - *
49   - * @Title: resourceFilterRegistration
50   - * @Description: TODO(静态资源过滤器, 只处理 /pages 目录下的片段请求 )
51   - * @return FilterRegistrationBean 返回类型
52   - * @throws
53   - */
54   - @Bean
55   - public FilterRegistrationBean resourceFilterRegistration(){
56   - FilterRegistrationBean registration = new FilterRegistrationBean();
57   - registration.setFilter(new ResourceFilter());
58   - registration.addUrlPatterns("/pages/*");
59   - return registration;
60   - }
61   -
62   - @Override
63   - public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
64   -
65   - }
66   -}
  1 +package com.bsth;
  2 +
  3 +import javax.servlet.Filter;
  4 +
  5 +import org.springframework.boot.context.embedded.FilterRegistrationBean;
  6 +import org.springframework.context.annotation.Bean;
  7 +import org.springframework.context.annotation.ComponentScan;
  8 +import org.springframework.context.annotation.Configuration;
  9 +import org.springframework.web.filter.CharacterEncodingFilter;
  10 +import org.springframework.web.filter.HttpPutFormContentFilter;
  11 +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  12 +import org.springframework.web.socket.config.annotation.EnableWebSocket;
  13 +import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
  14 +import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
  15 +
  16 +import com.bsth.filter.ResourceFilter;
  17 +
  18 +@Configuration
  19 +@EnableWebSocket
  20 +@ComponentScan
  21 +public class WebAppConfiguration extends WebMvcConfigurerAdapter implements WebSocketConfigurer{
  22 +
  23 + /**
  24 + *
  25 + * @Title: httpPutFormContentFilter
  26 + * @Description: TODO(弥补浏览器不支持PUT/DELETE,对携带 _method 参数的请求进行转换)
  27 + * @return Filter 返回类型
  28 + * @throws
  29 + */
  30 + @Bean
  31 + public Filter httpPutFormContentFilter() {
  32 + return new HttpPutFormContentFilter();
  33 + }
  34 +
  35 + /**
  36 + *
  37 + * @Title: characterEncodingFilter
  38 + * @Description: TODO(编码过滤器)
  39 + * @return Filter 返回类型
  40 + * @throws
  41 + */
  42 + @Bean
  43 + public Filter characterEncodingFilter(){
  44 + return new CharacterEncodingFilter("UTF-8");
  45 + }
  46 +
  47 + /**
  48 + *
  49 + * @Title: resourceFilterRegistration
  50 + * @Description: TODO(静态资源过滤器, 只处理 /pages 目录下的片段请求 )
  51 + * @return FilterRegistrationBean 返回类型
  52 + * @throws
  53 + */
  54 + @Bean
  55 + public FilterRegistrationBean resourceFilterRegistration(){
  56 + FilterRegistrationBean registration = new FilterRegistrationBean();
  57 + registration.setFilter(new ResourceFilter());
  58 + registration.addUrlPatterns("/pages/*");
  59 + return registration;
  60 + }
  61 +
  62 + @Override
  63 + public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
  64 +
  65 + }
  66 +}
... ...
src/main/java/com/bsth/common/Constants.java
1   -package com.bsth.common;
2   -
3   -/**
4   - *
5   - * @ClassName: Constants
6   - * @Description: TODO(常量类)
7   - * @author PanZhao
8   - * @date 2016年3月18日 下午11:06:53
9   - *
10   - */
11   -public class Constants {
12   -
13   -
14   - /**
15   - * 不需要拦截的资源
16   - */
17   - public static final String LOGIN = "/login";
18   - public static final String LOGIN_PAGE = "/login.html";
19   - public static final String ASSETS_URL = "/assets/**";
20   - public static final String FAVICON_URL = "/favicon.ico";
21   - public static final String METRONIC_URL = "/metronic_v4.5.4/**";
22   - public static final String LOGIN_FAILURE = "/user/loginFailure";
23   -}
  1 +package com.bsth.common;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: Constants
  6 + * @Description: TODO(常量类)
  7 + * @author PanZhao
  8 + * @date 2016年3月18日 下午11:06:53
  9 + *
  10 + */
  11 +public class Constants {
  12 +
  13 +
  14 + /**
  15 + * 不需要拦截的资源
  16 + */
  17 + public static final String LOGIN = "/login";
  18 + public static final String LOGIN_PAGE = "/login.html";
  19 + public static final String ASSETS_URL = "/assets/**";
  20 + public static final String FAVICON_URL = "/favicon.ico";
  21 + public static final String METRONIC_URL = "/metronic_v4.5.4/**";
  22 + public static final String LOGIN_FAILURE = "/user/loginFailure";
  23 +}
... ...
src/main/java/com/bsth/common/ResponseCode.java
1   -package com.bsth.common;
2   -
3   -/**
4   - *
5   - * @ClassName: ResponseCode
6   - * @Description: TODO(响应状态码)
7   - * @author PanZhao
8   - * @date 2016年3月18日 下午11:12:08
9   - *
10   - */
11   -public enum ResponseCode {
12   -
13   - SUCCESS("操作成功", 200),
14   - NO_PERMISSION("无资源访问权限", 403),
15   - NO_AUTHENTICATION("客户端未授权", 407),
16   - ERROR("服务器异常", 500);
17   -
18   - private String text;
19   - private int code;
20   -
21   - ResponseCode(String text, int code) {
22   - this.text = text;
23   - this.code = code;
24   - }
25   -
26   - @Override
27   - public String toString() {
28   - return this.code + "";
29   - }
30   -
31   - public String getText() {
32   - return this.text;
33   - }
34   -}
  1 +package com.bsth.common;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: ResponseCode
  6 + * @Description: TODO(响应状态码)
  7 + * @author PanZhao
  8 + * @date 2016年3月18日 下午11:12:08
  9 + *
  10 + */
  11 +public enum ResponseCode {
  12 +
  13 + SUCCESS("操作成功", 200),
  14 + NO_PERMISSION("无资源访问权限", 403),
  15 + NO_AUTHENTICATION("客户端未授权", 407),
  16 + ERROR("服务器异常", 500);
  17 +
  18 + private String text;
  19 + private int code;
  20 +
  21 + ResponseCode(String text, int code) {
  22 + this.text = text;
  23 + this.code = code;
  24 + }
  25 +
  26 + @Override
  27 + public String toString() {
  28 + return this.code + "";
  29 + }
  30 +
  31 + public String getText() {
  32 + return this.text;
  33 + }
  34 +}
... ...
src/main/java/com/bsth/controller/BaseController.java
1   -package com.bsth.controller;
2   -
3   -import java.io.Serializable;
4   -import java.util.Map;
5   -
6   -import org.springframework.beans.factory.annotation.Autowired;
7   -import org.springframework.data.domain.Page;
8   -import org.springframework.data.domain.PageRequest;
9   -import org.springframework.data.domain.Sort;
10   -import org.springframework.data.domain.Sort.Direction;
11   -import org.springframework.web.bind.annotation.PathVariable;
12   -import org.springframework.web.bind.annotation.RequestMapping;
13   -import org.springframework.web.bind.annotation.RequestMethod;
14   -import org.springframework.web.bind.annotation.RequestParam;
15   -
16   -import com.bsth.service.BaseService;
17   -
18   -/**
19   - *
20   - * @ClassName: BaseController
21   - * @Description: TODO(基础的Controller实现)
22   - * @author PanZhao
23   - * @date 2016年3月17日 下午12:44:06
24   - *
25   - * @param <T>
26   - * @param <ID> 主键类型
27   - */
28   -public class BaseController<T, ID extends Serializable> {
29   -
30   - @Autowired
31   - BaseService<T, ID> baseService;
32   -
33   - /**
34   - *
35   - * @Title: list
36   - * @Description: TODO(多条件分页查询)
37   - * @param @param map 查询条件
38   - * @param @param page 页码
39   - * @param @param size 每页显示数量
40   - * @throws
41   - */
42   - @RequestMapping(method = RequestMethod.GET)
43   - public Page<T> list(@RequestParam Map<String, Object> map,
44   - @RequestParam(defaultValue = "0") int page,
45   - @RequestParam(defaultValue = "10") int size,
46   - @RequestParam(defaultValue = "id") String order,
47   - @RequestParam(defaultValue = "DESC") String direction){
48   -
49   - Direction d;
50   -
51   - if(null != direction && direction.equals("ASC"))
52   - d = Direction.ASC;
53   - else
54   - d = Direction.DESC;
55   -
56   - return baseService.list(map, new PageRequest(page, size, new Sort(d, order)));
57   - }
58   -
59   - /**
60   - *
61   - * @Title: list
62   - * @Description: TODO(多条件查询)
63   - * @param @param map
64   - * @throws
65   - */
66   - @RequestMapping(value = "/all", method = RequestMethod.GET)
67   - public Iterable<T> list(@RequestParam Map<String, Object> map){
68   - return baseService.list(map);
69   - }
70   -
71   - /**
72   - *
73   - * @Title: save
74   - * @Description: TODO(持久化对象)
75   - * @param @param t
76   - * @param @return 设定文件
77   - * @return Map<String,Object> {status: 1(成功),-1(失败)}
78   - * @throws
79   - */
80   - @RequestMapping(method = RequestMethod.POST)
81   - public Map<String, Object> save(T t){
82   - return baseService.save(t);
83   - }
84   -
85   - /**
86   - *
87   - * @Title: findById
88   - * @Description: TODO(根据主键获取单个对象)
89   - * @param @param id
90   - * @throws
91   - */
92   - @RequestMapping(value="/{id}",method = RequestMethod.GET)
93   - public T findById(@PathVariable("id") ID id){
94   - return baseService.findById(id);
95   - }
96   -
97   - /**
98   - *
99   - * @Title: delete
100   - * @Description: TODO(根据主键删除对象)
101   - * @param @param id
102   - * @throws
103   - */
104   - @RequestMapping(value="/{id}",method = RequestMethod.DELETE)
105   - public Map<String, Object> delete(@PathVariable("id") ID id){
106   - return baseService.delete(id);
107   - }
108   -
109   -}
  1 +package com.bsth.controller;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Map;
  5 +
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.data.domain.Page;
  8 +import org.springframework.data.domain.PageRequest;
  9 +import org.springframework.data.domain.Sort;
  10 +import org.springframework.data.domain.Sort.Direction;
  11 +import org.springframework.web.bind.annotation.PathVariable;
  12 +import org.springframework.web.bind.annotation.RequestMapping;
  13 +import org.springframework.web.bind.annotation.RequestMethod;
  14 +import org.springframework.web.bind.annotation.RequestParam;
  15 +
  16 +import com.bsth.service.BaseService;
  17 +
  18 +/**
  19 + *
  20 + * @ClassName: BaseController
  21 + * @Description: TODO(基础的Controller实现)
  22 + * @author PanZhao
  23 + * @date 2016年3月17日 下午12:44:06
  24 + *
  25 + * @param <T>
  26 + * @param <ID> 主键类型
  27 + */
  28 +public class BaseController<T, ID extends Serializable> {
  29 +
  30 + @Autowired
  31 + BaseService<T, ID> baseService;
  32 +
  33 + /**
  34 + *
  35 + * @Title: list
  36 + * @Description: TODO(多条件分页查询)
  37 + * @param @param map 查询条件
  38 + * @param @param page 页码
  39 + * @param @param size 每页显示数量
  40 + * @throws
  41 + */
  42 + @RequestMapping(method = RequestMethod.GET)
  43 + public Page<T> list(@RequestParam Map<String, Object> map,
  44 + @RequestParam(defaultValue = "0") int page,
  45 + @RequestParam(defaultValue = "10") int size,
  46 + @RequestParam(defaultValue = "id") String order,
  47 + @RequestParam(defaultValue = "DESC") String direction){
  48 +
  49 + Direction d;
  50 +
  51 + if(null != direction && direction.equals("ASC"))
  52 + d = Direction.ASC;
  53 + else
  54 + d = Direction.DESC;
  55 +
  56 + return baseService.list(map, new PageRequest(page, size, new Sort(d, order)));
  57 + }
  58 +
  59 + /**
  60 + *
  61 + * @Title: list
  62 + * @Description: TODO(多条件查询)
  63 + * @param @param map
  64 + * @throws
  65 + */
  66 + @RequestMapping(value = "/all", method = RequestMethod.GET)
  67 + public Iterable<T> list(@RequestParam Map<String, Object> map){
  68 + return baseService.list(map);
  69 + }
  70 +
  71 + /**
  72 + *
  73 + * @Title: save
  74 + * @Description: TODO(持久化对象)
  75 + * @param @param t
  76 + * @param @return 设定文件
  77 + * @return Map<String,Object> {status: 1(成功),-1(失败)}
  78 + * @throws
  79 + */
  80 + @RequestMapping(method = RequestMethod.POST)
  81 + public Map<String, Object> save(T t){
  82 + return baseService.save(t);
  83 + }
  84 +
  85 + /**
  86 + *
  87 + * @Title: findById
  88 + * @Description: TODO(根据主键获取单个对象)
  89 + * @param @param id
  90 + * @throws
  91 + */
  92 + @RequestMapping(value="/{id}",method = RequestMethod.GET)
  93 + public T findById(@PathVariable("id") ID id){
  94 + return baseService.findById(id);
  95 + }
  96 +
  97 + /**
  98 + *
  99 + * @Title: delete
  100 + * @Description: TODO(根据主键删除对象)
  101 + * @param @param id
  102 + * @throws
  103 + */
  104 + @RequestMapping(value="/{id}",method = RequestMethod.DELETE)
  105 + public Map<String, Object> delete(@PathVariable("id") ID id){
  106 + return baseService.delete(id);
  107 + }
  108 +
  109 +}
... ...
src/main/java/com/bsth/controller/DictionaryController.java
1   -package com.bsth.controller;
2   -
3   -import org.springframework.web.bind.annotation.RequestMapping;
4   -import org.springframework.web.bind.annotation.RestController;
5   -
6   -import com.bsth.entity.sys.Dictionary;
7   -
8   -@RestController
9   -@RequestMapping("dictionary")
10   -public class DictionaryController extends BaseController<Dictionary, Integer>{
11   -
12   -}
  1 +package com.bsth.controller;
  2 +
  3 +import org.springframework.web.bind.annotation.RequestMapping;
  4 +import org.springframework.web.bind.annotation.RestController;
  5 +
  6 +import com.bsth.entity.sys.Dictionary;
  7 +
  8 +@RestController
  9 +@RequestMapping("dictionary")
  10 +public class DictionaryController extends BaseController<Dictionary, Integer>{
  11 +
  12 +}
... ...
src/main/java/com/bsth/controller/ModuleController.java
1   -package com.bsth.controller;
2   -
3   -import java.util.List;
4   -
5   -import org.springframework.beans.factory.annotation.Autowired;
6   -import org.springframework.web.bind.annotation.RequestMapping;
7   -import org.springframework.web.bind.annotation.RequestParam;
8   -import org.springframework.web.bind.annotation.RestController;
9   -
10   -import com.bsth.entity.sys.Module;
11   -import com.bsth.service.ModuleService;
12   -
13   -@RestController
14   -@RequestMapping("module")
15   -public class ModuleController extends BaseController<Module, Integer>{
16   -
17   - @Autowired
18   - ModuleService moduleService;
19   -
20   - @RequestMapping(value = "/findByGroupType")
21   - public List<Module> findByGroupType(@RequestParam String group){
22   - return moduleService.findByGroupType(group);
23   - }
24   -
25   - /**
26   - *
27   - * @Title: findByRoleId
28   - * @Description: TODO(根据角色获取功能模块)
29   - * @param @param roleId
30   - * @throws
31   - */
32   - @RequestMapping(value = "/findByCurrentUser")
33   - public List<Module> findByCurrentUser(){
34   - return moduleService.findByCurrentUser();
35   - }
36   -}
  1 +package com.bsth.controller;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.web.bind.annotation.RequestMapping;
  7 +import org.springframework.web.bind.annotation.RequestParam;
  8 +import org.springframework.web.bind.annotation.RestController;
  9 +
  10 +import com.bsth.entity.sys.Module;
  11 +import com.bsth.service.ModuleService;
  12 +
  13 +@RestController
  14 +@RequestMapping("module")
  15 +public class ModuleController extends BaseController<Module, Integer>{
  16 +
  17 + @Autowired
  18 + ModuleService moduleService;
  19 +
  20 + @RequestMapping(value = "/findByGroupType")
  21 + public List<Module> findByGroupType(@RequestParam String group){
  22 + return moduleService.findByGroupType(group);
  23 + }
  24 +
  25 + /**
  26 + *
  27 + * @Title: findByRoleId
  28 + * @Description: TODO(根据角色获取功能模块)
  29 + * @param @param roleId
  30 + * @throws
  31 + */
  32 + @RequestMapping(value = "/findByCurrentUser")
  33 + public List<Module> findByCurrentUser(){
  34 + return moduleService.findByCurrentUser();
  35 + }
  36 +}
... ...
src/main/java/com/bsth/controller/ResourceController.java
1   -package com.bsth.controller;
2   -
3   -import java.util.Map;
4   -
5   -import org.springframework.beans.factory.annotation.Autowired;
6   -import org.springframework.web.bind.annotation.RequestMapping;
7   -import org.springframework.web.bind.annotation.RequestMethod;
8   -import org.springframework.web.bind.annotation.RequestParam;
9   -import org.springframework.web.bind.annotation.RestController;
10   -
11   -import com.alibaba.fastjson.JSON;
12   -import com.bsth.entity.sys.Resource;
13   -import com.bsth.service.ResourceService;
14   -
15   -@RestController
16   -@RequestMapping("resource")
17   -public class ResourceController extends BaseController<Resource, Integer>{
18   -
19   - @Autowired
20   - ResourceService resourceService;
21   -
22   - @RequestMapping(value = "/batch", method = RequestMethod.POST)
23   - public Map<String, Object> save(@RequestParam String array){
24   - return resourceService.saveList(JSON.parseArray(array, Resource.class));
25   - }
26   -}
  1 +package com.bsth.controller;
  2 +
  3 +import java.util.Map;
  4 +
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.web.bind.annotation.RequestMapping;
  7 +import org.springframework.web.bind.annotation.RequestMethod;
  8 +import org.springframework.web.bind.annotation.RequestParam;
  9 +import org.springframework.web.bind.annotation.RestController;
  10 +
  11 +import com.alibaba.fastjson.JSON;
  12 +import com.bsth.entity.sys.Resource;
  13 +import com.bsth.service.ResourceService;
  14 +
  15 +@RestController
  16 +@RequestMapping("resource")
  17 +public class ResourceController extends BaseController<Resource, Integer>{
  18 +
  19 + @Autowired
  20 + ResourceService resourceService;
  21 +
  22 + @RequestMapping(value = "/batch", method = RequestMethod.POST)
  23 + public Map<String, Object> save(@RequestParam String array){
  24 + return resourceService.saveList(JSON.parseArray(array, Resource.class));
  25 + }
  26 +}
... ...
src/main/java/com/bsth/controller/RoleController.java
1   -package com.bsth.controller;
2   -
3   -import java.util.Map;
4   -
5   -import org.springframework.beans.factory.annotation.Autowired;
6   -import org.springframework.web.bind.annotation.RequestMapping;
7   -import org.springframework.web.bind.annotation.RequestMethod;
8   -import org.springframework.web.bind.annotation.RequestParam;
9   -import org.springframework.web.bind.annotation.RestController;
10   -
11   -import com.bsth.entity.sys.Role;
12   -import com.bsth.service.RoleService;
13   -
14   -@RestController
15   -@RequestMapping("role")
16   -public class RoleController extends BaseController<Role, Integer>{
17   -
18   -
19   - @Autowired
20   - RoleService roleService;
21   -
22   - /**
23   - *
24   - * @Title: settRoleModules
25   - * @Description: TODO(为角色设置模块,全量覆盖)
26   - * @param @param roleId 角色ID
27   - * @param @param mIds 模块ID字符串(1,2,3,4)
28   - * @throws
29   - */
30   - @RequestMapping(value = "/settModules", method = RequestMethod.POST)
31   - public Map<String, Object> settRoleModules(@RequestParam Integer roleId,@RequestParam String mIds){
32   - return roleService.settRoleModules(roleId, mIds);
33   - }
34   -}
  1 +package com.bsth.controller;
  2 +
  3 +import java.util.Map;
  4 +
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.web.bind.annotation.RequestMapping;
  7 +import org.springframework.web.bind.annotation.RequestMethod;
  8 +import org.springframework.web.bind.annotation.RequestParam;
  9 +import org.springframework.web.bind.annotation.RestController;
  10 +
  11 +import com.bsth.entity.sys.Role;
  12 +import com.bsth.service.RoleService;
  13 +
  14 +@RestController
  15 +@RequestMapping("role")
  16 +public class RoleController extends BaseController<Role, Integer>{
  17 +
  18 +
  19 + @Autowired
  20 + RoleService roleService;
  21 +
  22 + /**
  23 + *
  24 + * @Title: settRoleModules
  25 + * @Description: TODO(为角色设置模块,全量覆盖)
  26 + * @param @param roleId 角色ID
  27 + * @param @param mIds 模块ID字符串(1,2,3,4)
  28 + * @throws
  29 + */
  30 + @RequestMapping(value = "/settModules", method = RequestMethod.POST)
  31 + public Map<String, Object> settRoleModules(@RequestParam Integer roleId,@RequestParam String mIds){
  32 + return roleService.settRoleModules(roleId, mIds);
  33 + }
  34 +}
... ...
src/main/java/com/bsth/controller/StationController.java
1 1 package com.bsth.controller;
2 2  
  3 +import java.util.Map;
  4 +
  5 +import org.hibernate.annotations.Parameter;
  6 +import org.springframework.beans.factory.annotation.Autowired;
3 7 import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RequestMethod;
  9 +import org.springframework.web.bind.annotation.RequestParam;
4 10 import org.springframework.web.bind.annotation.RestController;
5 11  
  12 +import com.alibaba.fastjson.JSONArray;
6 13 import com.bsth.entity.Station;
  14 +import com.bsth.service.StationService;
7 15  
8 16 /**
9 17 *
... ... @@ -24,5 +32,23 @@ import com.bsth.entity.Station;
24 32 @RestController
25 33 @RequestMapping("station")
26 34 public class StationController extends BaseController<Station, Integer> {
27   -
  35 +
  36 + @Autowired
  37 + private StationService service;
  38 +
  39 + @RequestMapping(value="collection" , method = RequestMethod.POST)
  40 + public Map<String, Object> collection(@RequestParam Map<String, Object> map) {
  41 +
  42 + String strJSON = map.get("json").toString().equals("") ? "" : map.get("json").toString();
  43 +
  44 + if(!strJSON.equals("")) {
  45 +
  46 + JSONArray stationsArray = JSONArray.parseArray(strJSON);
  47 +
  48 +
  49 +
  50 + }
  51 +
  52 + return null;
  53 + }
28 54 }
... ...
src/main/java/com/bsth/controller/UserController.java
1   -package com.bsth.controller;
2   -
3   -import javax.servlet.http.HttpServletRequest;
4   -import javax.servlet.http.HttpServletResponse;
5   -import javax.servlet.http.HttpSession;
6   -
7   -import org.springframework.security.authentication.BadCredentialsException;
8   -import org.springframework.security.core.Authentication;
9   -import org.springframework.security.core.context.SecurityContextHolder;
10   -import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
11   -import org.springframework.security.web.authentication.session.SessionAuthenticationException;
12   -import org.springframework.web.bind.annotation.RequestMapping;
13   -import org.springframework.web.bind.annotation.RestController;
14   -import org.springframework.web.servlet.ModelAndView;
15   -
16   -import com.bsth.entity.sys.SysUser;
17   -
18   -@RestController
19   -@RequestMapping("user")
20   -public class UserController extends BaseController<SysUser, Integer>{
21   -
22   - /**
23   - *
24   - * @Title: loginFailure
25   - * @Description: TODO(查询登录失败的详细信息)
26   - * @param @param request
27   - * @return String 返回类型
28   - * @throws
29   - */
30   - @RequestMapping("/loginFailure")
31   - public String loginFailure(HttpServletRequest request){
32   - String msg = "";
33   - HttpSession session = request.getSession();
34   -
35   - Object obj = session.getAttribute("SPRING_SECURITY_LAST_EXCEPTION");
36   -
37   - if(obj instanceof BadCredentialsException)
38   - msg = "登录失败,用户名或密码错误.";
39   - else if(obj instanceof SessionAuthenticationException)
40   - msg = "登录失败,当前策略不允许重复登录.";
41   - session.removeAttribute("SPRING_SECURITY_LAST_EXCEPTION");
42   - return msg;
43   - }
44   -
45   - /**
46   - *
47   - * @Title: logout
48   - * @Description: TODO(注销吧皮卡丘)
49   - * @param @param request
50   - * @return ModelAndView 返回类型
51   - * @throws
52   - */
53   - @RequestMapping("/logout")
54   - public ModelAndView logout(HttpServletRequest request, HttpServletResponse response){
55   - Authentication auth = SecurityContextHolder.getContext().getAuthentication();
56   - if (auth != null){
57   - new SecurityContextLogoutHandler().logout(request, response, auth);
58   - }
59   - return new ModelAndView("/");
60   - }
61   -}
  1 +package com.bsth.controller;
  2 +
  3 +import javax.servlet.http.HttpServletRequest;
  4 +import javax.servlet.http.HttpServletResponse;
  5 +import javax.servlet.http.HttpSession;
  6 +
  7 +import org.springframework.security.authentication.BadCredentialsException;
  8 +import org.springframework.security.core.Authentication;
  9 +import org.springframework.security.core.context.SecurityContextHolder;
  10 +import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
  11 +import org.springframework.security.web.authentication.session.SessionAuthenticationException;
  12 +import org.springframework.web.bind.annotation.RequestMapping;
  13 +import org.springframework.web.bind.annotation.RestController;
  14 +import org.springframework.web.servlet.ModelAndView;
  15 +
  16 +import com.bsth.entity.sys.SysUser;
  17 +
  18 +@RestController
  19 +@RequestMapping("user")
  20 +public class UserController extends BaseController<SysUser, Integer>{
  21 +
  22 + /**
  23 + *
  24 + * @Title: loginFailure
  25 + * @Description: TODO(查询登录失败的详细信息)
  26 + * @param @param request
  27 + * @return String 返回类型
  28 + * @throws
  29 + */
  30 + @RequestMapping("/loginFailure")
  31 + public String loginFailure(HttpServletRequest request){
  32 + String msg = "";
  33 + HttpSession session = request.getSession();
  34 +
  35 + Object obj = session.getAttribute("SPRING_SECURITY_LAST_EXCEPTION");
  36 +
  37 + if(obj instanceof BadCredentialsException)
  38 + msg = "登录失败,用户名或密码错误.";
  39 + else if(obj instanceof SessionAuthenticationException)
  40 + msg = "登录失败,当前策略不允许重复登录.";
  41 + session.removeAttribute("SPRING_SECURITY_LAST_EXCEPTION");
  42 + return msg;
  43 + }
  44 +
  45 + /**
  46 + *
  47 + * @Title: logout
  48 + * @Description: TODO(注销吧皮卡丘)
  49 + * @param @param request
  50 + * @return ModelAndView 返回类型
  51 + * @throws
  52 + */
  53 + @RequestMapping("/logout")
  54 + public ModelAndView logout(HttpServletRequest request, HttpServletResponse response){
  55 + Authentication auth = SecurityContextHolder.getContext().getAuthentication();
  56 + if (auth != null){
  57 + new SecurityContextLogoutHandler().logout(request, response, auth);
  58 + }
  59 + return new ModelAndView("/");
  60 + }
  61 +}
... ...
src/main/java/com/bsth/controller/schedule/BusinessInfoController.java
1   -package com.bsth.controller.schedule;
2   -
3   -import com.bsth.controller.BaseController;
4   -import com.bsth.entity.schedule.BusinessInfo;
5   -import org.springframework.web.bind.annotation.RequestMapping;
6   -import org.springframework.web.bind.annotation.RestController;
7   -
8   -/**
9   - * Created by xu on 16/5/11.
10   - */
11   -@RestController
12   -@RequestMapping("bic")
13   -public class BusinessInfoController extends BaseController<BusinessInfo, Long> {
14   -}
  1 +package com.bsth.controller.schedule;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.entity.schedule.BusinessInfo;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * Created by xu on 16/5/11.
  10 + */
  11 +@RestController
  12 +@RequestMapping("bic")
  13 +public class BusinessInfoController extends BaseController<BusinessInfo, Long> {
  14 +}
... ...
src/main/java/com/bsth/controller/schedule/CarConfigInfoController.java
1   -package com.bsth.controller.schedule;
2   -
3   -import com.bsth.controller.BaseController;
4   -import com.bsth.entity.schedule.CarConfigInfo;
5   -import org.springframework.web.bind.annotation.RequestMapping;
6   -import org.springframework.web.bind.annotation.RestController;
7   -
8   -/**
9   - * Created by xu on 16/5/9.
10   - */
11   -@RestController
12   -@RequestMapping("cci")
13   -public class CarConfigInfoController extends BaseController<CarConfigInfo, Long> {
14   -}
  1 +package com.bsth.controller.schedule;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.entity.schedule.CarConfigInfo;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * Created by xu on 16/5/9.
  10 + */
  11 +@RestController
  12 +@RequestMapping("cci")
  13 +public class CarConfigInfoController extends BaseController<CarConfigInfo, Long> {
  14 +}
... ...
src/main/java/com/bsth/controller/schedule/EmployeeConfigInfoController.java
1   -package com.bsth.controller.schedule;
2   -
3   -import com.bsth.controller.BaseController;
4   -import com.bsth.entity.schedule.EmployeeConfigInfo;
5   -import org.springframework.web.bind.annotation.RequestMapping;
6   -import org.springframework.web.bind.annotation.RestController;
7   -
8   -/**
9   - * Created by xu on 16/5/10.
10   - */
11   -@RestController
12   -@RequestMapping("eci")
13   -public class EmployeeConfigInfoController extends BaseController<EmployeeConfigInfo, Long> {
14   -}
  1 +package com.bsth.controller.schedule;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.entity.schedule.EmployeeConfigInfo;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * Created by xu on 16/5/10.
  10 + */
  11 +@RestController
  12 +@RequestMapping("eci")
  13 +public class EmployeeConfigInfoController extends BaseController<EmployeeConfigInfo, Long> {
  14 +}
... ...
src/main/java/com/bsth/controller/schedule/GuideboardInfoController.java
1   -package com.bsth.controller.schedule;
2   -
3   -import com.bsth.controller.BaseController;
4   -import com.bsth.entity.schedule.GuideboardInfo;
5   -import org.springframework.web.bind.annotation.RequestMapping;
6   -import org.springframework.web.bind.annotation.RestController;
7   -
8   -/**
9   - * Created by xu on 16/5/11.
10   - */
11   -@RestController
12   -@RequestMapping("gic")
13   -public class GuideboardInfoController extends BaseController<GuideboardInfo, Long> {
14   -}
  1 +package com.bsth.controller.schedule;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.entity.schedule.GuideboardInfo;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * Created by xu on 16/5/11.
  10 + */
  11 +@RestController
  12 +@RequestMapping("gic")
  13 +public class GuideboardInfoController extends BaseController<GuideboardInfo, Long> {
  14 +}
... ...
src/main/java/com/bsth/controller/schedule/TTInfoController.java
1   -package com.bsth.controller.schedule;
2   -
3   -import com.bsth.controller.BaseController;
4   -import com.bsth.entity.schedule.TTInfo;
5   -import org.springframework.web.bind.annotation.RequestMapping;
6   -import org.springframework.web.bind.annotation.RestController;
7   -
8   -/**
9   - * Created by xu on 16/5/12.
10   - */
11   -@RestController
12   -@RequestMapping("tic")
13   -public class TTInfoController extends BaseController<TTInfo, Long> {
14   -}
  1 +package com.bsth.controller.schedule;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.entity.schedule.TTInfo;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * Created by xu on 16/5/12.
  10 + */
  11 +@RestController
  12 +@RequestMapping("tic")
  13 +public class TTInfoController extends BaseController<TTInfo, Long> {
  14 +}
... ...
src/main/java/com/bsth/entity/CarDevice.java
1   -package com.bsth.entity;
2   -
3   -import javax.persistence.*;
4   -import java.util.Date;
5   -
6   -/**
7   - * 车辆设备信息(记录车辆设备变更情况,因为是历史表,字段不做关联)
8   - */
9   -@Entity
10   -@Table(name = "bsth_c_car_device")
11   -public class CarDevice {
12   -
13   - /** 主键 */
14   - @Id
15   - @GeneratedValue
16   - private Long id;
17   -
18   - /** 公司名称 */
19   - @Column(nullable = false)
20   - private String gsName;
21   - /** 内部编号(自编号) */
22   - private String clZbh;
23   - /** 线路名称 */
24   - private String xlName;
25   -
26   - /** 旧终端号 */
27   - private String oldDeviceNo;
28   - /** 新终端号 */
29   - private String newDeviceNo;
30   - /** 旧SIM卡号 */
31   - private String oldSimNo;
32   - /** 新SIM卡号 */
33   - private String newSimNo;
34   -
35   - /** 故障描述 */
36   - private String troubleDesc;
37   - /** 保修描述 */
38   - private String guaranteeDesc;
39   -
40   - // 创建日期
41   - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
42   - private Date createDate;
43   -
44   - // 修改日期
45   - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
46   - private Date updateDate;
47   -
48   - public Long getId() {
49   - return id;
50   - }
51   -
52   - public void setId(Long id) {
53   - this.id = id;
54   - }
55   -
56   - public String getGsName() {
57   - return gsName;
58   - }
59   -
60   - public void setGsName(String gsName) {
61   - this.gsName = gsName;
62   - }
63   -
64   - public String getClZbh() {
65   - return clZbh;
66   - }
67   -
68   - public void setClZbh(String clZbh) {
69   - this.clZbh = clZbh;
70   - }
71   -
72   - public String getXlName() {
73   - return xlName;
74   - }
75   -
76   - public void setXlName(String xlName) {
77   - this.xlName = xlName;
78   - }
79   -
80   - public String getOldDeviceNo() {
81   - return oldDeviceNo;
82   - }
83   -
84   - public void setOldDeviceNo(String oldDeviceNo) {
85   - this.oldDeviceNo = oldDeviceNo;
86   - }
87   -
88   - public String getNewDeviceNo() {
89   - return newDeviceNo;
90   - }
91   -
92   - public void setNewDeviceNo(String newDeviceNo) {
93   - this.newDeviceNo = newDeviceNo;
94   - }
95   -
96   - public String getOldSimNo() {
97   - return oldSimNo;
98   - }
99   -
100   - public void setOldSimNo(String oldSimNo) {
101   - this.oldSimNo = oldSimNo;
102   - }
103   -
104   - public String getNewSimNo() {
105   - return newSimNo;
106   - }
107   -
108   - public void setNewSimNo(String newSimNo) {
109   - this.newSimNo = newSimNo;
110   - }
111   -
112   - public String getTroubleDesc() {
113   - return troubleDesc;
114   - }
115   -
116   - public void setTroubleDesc(String troubleDesc) {
117   - this.troubleDesc = troubleDesc;
118   - }
119   -
120   - public String getGuaranteeDesc() {
121   - return guaranteeDesc;
122   - }
123   -
124   - public void setGuaranteeDesc(String guaranteeDesc) {
125   - this.guaranteeDesc = guaranteeDesc;
126   - }
127   -
128   - public Date getCreateDate() {
129   - return createDate;
130   - }
131   -
132   - public void setCreateDate(Date createDate) {
133   - this.createDate = createDate;
134   - }
135   -
136   - public Date getUpdateDate() {
137   - return updateDate;
138   - }
139   -
140   - public void setUpdateDate(Date updateDate) {
141   - this.updateDate = updateDate;
142   - }
143   -}
  1 +package com.bsth.entity;
  2 +
  3 +import javax.persistence.*;
  4 +import java.util.Date;
  5 +
  6 +/**
  7 + * 车辆设备信息(记录车辆设备变更情况,因为是历史表,字段不做关联)
  8 + */
  9 +@Entity
  10 +@Table(name = "bsth_c_car_device")
  11 +public class CarDevice {
  12 +
  13 + /** 主键 */
  14 + @Id
  15 + @GeneratedValue
  16 + private Long id;
  17 +
  18 + /** 公司名称 */
  19 + @Column(nullable = false)
  20 + private String gsName;
  21 + /** 内部编号(自编号) */
  22 + private String clZbh;
  23 + /** 线路名称 */
  24 + private String xlName;
  25 +
  26 + /** 旧终端号 */
  27 + private String oldDeviceNo;
  28 + /** 新终端号 */
  29 + private String newDeviceNo;
  30 + /** 旧SIM卡号 */
  31 + private String oldSimNo;
  32 + /** 新SIM卡号 */
  33 + private String newSimNo;
  34 +
  35 + /** 故障描述 */
  36 + private String troubleDesc;
  37 + /** 保修描述 */
  38 + private String guaranteeDesc;
  39 +
  40 + // 创建日期
  41 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  42 + private Date createDate;
  43 +
  44 + // 修改日期
  45 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  46 + private Date updateDate;
  47 +
  48 + public Long getId() {
  49 + return id;
  50 + }
  51 +
  52 + public void setId(Long id) {
  53 + this.id = id;
  54 + }
  55 +
  56 + public String getGsName() {
  57 + return gsName;
  58 + }
  59 +
  60 + public void setGsName(String gsName) {
  61 + this.gsName = gsName;
  62 + }
  63 +
  64 + public String getClZbh() {
  65 + return clZbh;
  66 + }
  67 +
  68 + public void setClZbh(String clZbh) {
  69 + this.clZbh = clZbh;
  70 + }
  71 +
  72 + public String getXlName() {
  73 + return xlName;
  74 + }
  75 +
  76 + public void setXlName(String xlName) {
  77 + this.xlName = xlName;
  78 + }
  79 +
  80 + public String getOldDeviceNo() {
  81 + return oldDeviceNo;
  82 + }
  83 +
  84 + public void setOldDeviceNo(String oldDeviceNo) {
  85 + this.oldDeviceNo = oldDeviceNo;
  86 + }
  87 +
  88 + public String getNewDeviceNo() {
  89 + return newDeviceNo;
  90 + }
  91 +
  92 + public void setNewDeviceNo(String newDeviceNo) {
  93 + this.newDeviceNo = newDeviceNo;
  94 + }
  95 +
  96 + public String getOldSimNo() {
  97 + return oldSimNo;
  98 + }
  99 +
  100 + public void setOldSimNo(String oldSimNo) {
  101 + this.oldSimNo = oldSimNo;
  102 + }
  103 +
  104 + public String getNewSimNo() {
  105 + return newSimNo;
  106 + }
  107 +
  108 + public void setNewSimNo(String newSimNo) {
  109 + this.newSimNo = newSimNo;
  110 + }
  111 +
  112 + public String getTroubleDesc() {
  113 + return troubleDesc;
  114 + }
  115 +
  116 + public void setTroubleDesc(String troubleDesc) {
  117 + this.troubleDesc = troubleDesc;
  118 + }
  119 +
  120 + public String getGuaranteeDesc() {
  121 + return guaranteeDesc;
  122 + }
  123 +
  124 + public void setGuaranteeDesc(String guaranteeDesc) {
  125 + this.guaranteeDesc = guaranteeDesc;
  126 + }
  127 +
  128 + public Date getCreateDate() {
  129 + return createDate;
  130 + }
  131 +
  132 + public void setCreateDate(Date createDate) {
  133 + this.createDate = createDate;
  134 + }
  135 +
  136 + public Date getUpdateDate() {
  137 + return updateDate;
  138 + }
  139 +
  140 + public void setUpdateDate(Date updateDate) {
  141 + this.updateDate = updateDate;
  142 + }
  143 +}
... ...
src/main/java/com/bsth/entity/schedule/BusinessInfo.java
1   -package com.bsth.entity.schedule;
2   -
3   -import javax.persistence.*;
4   -import java.util.Date;
5   -
6   -/**
7   - * 线路运营信息汇总。
8   - * TODO:暂时这样写,演示后重新修正
9   - */
10   -@Entity
11   -@Table(name = "bsth_c_s_bi")
12   -public class BusinessInfo {
13   -
14   - /** 主键Id */
15   - @Id
16   - @GeneratedValue
17   - private Long id;
18   -
19   - /** TODO:之后修正 */
20   - /** 线路名称 */
21   - private String xlName;
22   - /** 线路编码 */
23   - private String xlBm;
24   - /** 公司名称 */
25   - private String gsName;
26   - /** 分公司名称 */
27   - private String fgsName;
28   -
29   - /** 配车数 */
30   - private int pcCount;
31   - /** 人员数 */
32   - private int ryCount;
33   - /** 路牌数 */
34   - private int lpCount;
35   - /** 套跑数 */
36   - private int tpCount;
37   - /** 时刻表数 */
38   - private int ttCount;
39   - /** 调度规则数 */
40   - private int srCount;
41   - /** 调度计划数 */
42   - private int spCount;
43   -
44   - // 创建日期
45   - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
46   - private Date createDate;
47   - // 修改日期
48   - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
49   - private Date updateDate;
50   -
51   - public Long getId() {
52   - return id;
53   - }
54   -
55   - public void setId(Long id) {
56   - this.id = id;
57   - }
58   -
59   - public String getXlName() {
60   - return xlName;
61   - }
62   -
63   - public void setXlName(String xlName) {
64   - this.xlName = xlName;
65   - }
66   -
67   - public String getXlBm() {
68   - return xlBm;
69   - }
70   -
71   - public void setXlBm(String xlBm) {
72   - this.xlBm = xlBm;
73   - }
74   -
75   - public String getGsName() {
76   - return gsName;
77   - }
78   -
79   - public void setGsName(String gsName) {
80   - this.gsName = gsName;
81   - }
82   -
83   - public String getFgsName() {
84   - return fgsName;
85   - }
86   -
87   - public void setFgsName(String fgsName) {
88   - this.fgsName = fgsName;
89   - }
90   -
91   - public int getPcCount() {
92   - return pcCount;
93   - }
94   -
95   - public void setPcCount(int pcCount) {
96   - this.pcCount = pcCount;
97   - }
98   -
99   - public int getRyCount() {
100   - return ryCount;
101   - }
102   -
103   - public void setRyCount(int ryCount) {
104   - this.ryCount = ryCount;
105   - }
106   -
107   - public int getLpCount() {
108   - return lpCount;
109   - }
110   -
111   - public void setLpCount(int lpCount) {
112   - this.lpCount = lpCount;
113   - }
114   -
115   - public int getTpCount() {
116   - return tpCount;
117   - }
118   -
119   - public void setTpCount(int tpCount) {
120   - this.tpCount = tpCount;
121   - }
122   -
123   - public int getTtCount() {
124   - return ttCount;
125   - }
126   -
127   - public void setTtCount(int ttCount) {
128   - this.ttCount = ttCount;
129   - }
130   -
131   - public int getSrCount() {
132   - return srCount;
133   - }
134   -
135   - public void setSrCount(int srCount) {
136   - this.srCount = srCount;
137   - }
138   -
139   - public int getSpCount() {
140   - return spCount;
141   - }
142   -
143   - public void setSpCount(int spCount) {
144   - this.spCount = spCount;
145   - }
146   -
147   - public Date getCreateDate() {
148   - return createDate;
149   - }
150   -
151   - public void setCreateDate(Date createDate) {
152   - this.createDate = createDate;
153   - }
154   -
155   - public Date getUpdateDate() {
156   - return updateDate;
157   - }
158   -
159   - public void setUpdateDate(Date updateDate) {
160   - this.updateDate = updateDate;
161   - }
162   -}
  1 +package com.bsth.entity.schedule;
  2 +
  3 +import javax.persistence.*;
  4 +import java.util.Date;
  5 +
  6 +/**
  7 + * 线路运营信息汇总。
  8 + * TODO:暂时这样写,演示后重新修正
  9 + */
  10 +@Entity
  11 +@Table(name = "bsth_c_s_bi")
  12 +public class BusinessInfo {
  13 +
  14 + /** 主键Id */
  15 + @Id
  16 + @GeneratedValue
  17 + private Long id;
  18 +
  19 + /** TODO:之后修正 */
  20 + /** 线路名称 */
  21 + private String xlName;
  22 + /** 线路编码 */
  23 + private String xlBm;
  24 + /** 公司名称 */
  25 + private String gsName;
  26 + /** 分公司名称 */
  27 + private String fgsName;
  28 +
  29 + /** 配车数 */
  30 + private int pcCount;
  31 + /** 人员数 */
  32 + private int ryCount;
  33 + /** 路牌数 */
  34 + private int lpCount;
  35 + /** 套跑数 */
  36 + private int tpCount;
  37 + /** 时刻表数 */
  38 + private int ttCount;
  39 + /** 调度规则数 */
  40 + private int srCount;
  41 + /** 调度计划数 */
  42 + private int spCount;
  43 +
  44 + // 创建日期
  45 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  46 + private Date createDate;
  47 + // 修改日期
  48 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  49 + private Date updateDate;
  50 +
  51 + public Long getId() {
  52 + return id;
  53 + }
  54 +
  55 + public void setId(Long id) {
  56 + this.id = id;
  57 + }
  58 +
  59 + public String getXlName() {
  60 + return xlName;
  61 + }
  62 +
  63 + public void setXlName(String xlName) {
  64 + this.xlName = xlName;
  65 + }
  66 +
  67 + public String getXlBm() {
  68 + return xlBm;
  69 + }
  70 +
  71 + public void setXlBm(String xlBm) {
  72 + this.xlBm = xlBm;
  73 + }
  74 +
  75 + public String getGsName() {
  76 + return gsName;
  77 + }
  78 +
  79 + public void setGsName(String gsName) {
  80 + this.gsName = gsName;
  81 + }
  82 +
  83 + public String getFgsName() {
  84 + return fgsName;
  85 + }
  86 +
  87 + public void setFgsName(String fgsName) {
  88 + this.fgsName = fgsName;
  89 + }
  90 +
  91 + public int getPcCount() {
  92 + return pcCount;
  93 + }
  94 +
  95 + public void setPcCount(int pcCount) {
  96 + this.pcCount = pcCount;
  97 + }
  98 +
  99 + public int getRyCount() {
  100 + return ryCount;
  101 + }
  102 +
  103 + public void setRyCount(int ryCount) {
  104 + this.ryCount = ryCount;
  105 + }
  106 +
  107 + public int getLpCount() {
  108 + return lpCount;
  109 + }
  110 +
  111 + public void setLpCount(int lpCount) {
  112 + this.lpCount = lpCount;
  113 + }
  114 +
  115 + public int getTpCount() {
  116 + return tpCount;
  117 + }
  118 +
  119 + public void setTpCount(int tpCount) {
  120 + this.tpCount = tpCount;
  121 + }
  122 +
  123 + public int getTtCount() {
  124 + return ttCount;
  125 + }
  126 +
  127 + public void setTtCount(int ttCount) {
  128 + this.ttCount = ttCount;
  129 + }
  130 +
  131 + public int getSrCount() {
  132 + return srCount;
  133 + }
  134 +
  135 + public void setSrCount(int srCount) {
  136 + this.srCount = srCount;
  137 + }
  138 +
  139 + public int getSpCount() {
  140 + return spCount;
  141 + }
  142 +
  143 + public void setSpCount(int spCount) {
  144 + this.spCount = spCount;
  145 + }
  146 +
  147 + public Date getCreateDate() {
  148 + return createDate;
  149 + }
  150 +
  151 + public void setCreateDate(Date createDate) {
  152 + this.createDate = createDate;
  153 + }
  154 +
  155 + public Date getUpdateDate() {
  156 + return updateDate;
  157 + }
  158 +
  159 + public void setUpdateDate(Date updateDate) {
  160 + this.updateDate = updateDate;
  161 + }
  162 +}
... ...
src/main/java/com/bsth/entity/search/CustomerSpecs.java
1   -package com.bsth.entity.search;
2   -
3   -import java.lang.reflect.Method;
4   -import java.util.ArrayList;
5   -import java.util.List;
6   -import java.util.Map;
7   -import java.util.Set;
8   -import java.util.TreeSet;
9   -
10   -import javax.persistence.criteria.CriteriaBuilder;
11   -import javax.persistence.criteria.CriteriaQuery;
12   -import javax.persistence.criteria.Path;
13   -import javax.persistence.criteria.Predicate;
14   -import javax.persistence.criteria.Root;
15   -
16   -import org.apache.commons.lang3.StringUtils;
17   -import org.slf4j.Logger;
18   -import org.slf4j.LoggerFactory;
19   -import org.springframework.data.jpa.domain.Specification;
20   -
21   -import com.bsth.entity.search.exception.UnrecognizableSearchSymbolException;
22   -
23   -/**
24   - *
25   - * @ClassName: CustomerSpecs
26   - * @Description: 用于动态条件查询的Specification
27   - * @author PanZhao
28   - * @date 2016年3月16日 下午4:05:22
29   - *
30   - * @param <T>
31   - */
32   -public class CustomerSpecs<T> implements Specification<T> {
33   -
34   - Logger logger = LoggerFactory.getLogger(this.getClass());
35   -
36   - private Map<String, Object> map;
37   -
38   - // 查询操作符
39   - private static Set<String> eSet;
40   -
41   - static {
42   - eSet = new TreeSet<String>();
43   - for (SearchOperator s : SearchOperator.values()) {
44   - eSet.add(s.toString());
45   - }
46   - }
47   -
48   - private static Class<PredicatesBuilder> preBuilderClazz = PredicatesBuilder.class;
49   - private static Class<CriteriaBuilder> cBuilderClazz = CriteriaBuilder.class;
50   - private static Class<Object> objClazz = Object.class;
51   -
52   - // 查询参数分隔符
53   - public static final String separator = "_";
54   -
55   - /**
56   - * 构造函数
57   - *
58   - * @param map
59   - */
60   - public CustomerSpecs(Map<String, Object> map) {
61   - this.map = map;
62   - }
63   -
64   - @Override
65   - public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query,
66   - CriteriaBuilder cb) {
67   - List<Predicate> predicates = new ArrayList<>();
68   -
69   - for (Map.Entry<String, Object> entry : map.entrySet()) {
70   - Object value = entry.getValue();
71   - String[] searchs = StringUtils.split(entry.getKey(), separator);
72   - if (null == searchs || searchs.length < 2)
73   - continue;
74   - // 值为空的不参与查询
75   - if (value == null || (value instanceof String && value.equals("")))
76   - continue;
77   -
78   - try {
79   - if(!eSet.contains(searchs[1]))
80   - throw new UnrecognizableSearchSymbolException(searchs[1]);
81   -
82   - // 根据操作符调用对应静态函数
83   - Method method = preBuilderClazz.getMethod(searchs[1],
84   - cBuilderClazz, Path.class, objClazz);
85   -
86   - Predicate predicate = (Predicate) method.invoke(null, cb,
87   - createPath(root, searchs[0]), value);
88   -
89   - predicates.add(predicate);
90   - } catch (Exception e) {
91   - logger.error("Specification search error.", e);
92   - }
93   - }
94   - Predicate[] pre = new Predicate[predicates.size()];
95   - return query.where(predicates.toArray(pre)).getRestriction();
96   - }
97   -
98   - /**
99   - * 生成Path
100   - * @param root
101   - * @param field
102   - * @return
103   - */
104   - public Path<T> createPath(Root<T> root, String field){
105   - Path<T> p = null;
106   -
107   - if(field.indexOf(".") == -1)
108   - p = root.get(field);
109   - else{
110   - String[] fs = field.split("\\.");
111   -
112   - p = root.get(fs[0]);
113   - for(int i = 1; i < fs.length; i ++){
114   - p = p.get(fs[i]);
115   - }
116   - }
117   - return p;
118   - }
119   -}
  1 +package com.bsth.entity.search;
  2 +
  3 +import java.lang.reflect.Method;
  4 +import java.util.ArrayList;
  5 +import java.util.List;
  6 +import java.util.Map;
  7 +import java.util.Set;
  8 +import java.util.TreeSet;
  9 +
  10 +import javax.persistence.criteria.CriteriaBuilder;
  11 +import javax.persistence.criteria.CriteriaQuery;
  12 +import javax.persistence.criteria.Path;
  13 +import javax.persistence.criteria.Predicate;
  14 +import javax.persistence.criteria.Root;
  15 +
  16 +import org.apache.commons.lang3.StringUtils;
  17 +import org.slf4j.Logger;
  18 +import org.slf4j.LoggerFactory;
  19 +import org.springframework.data.jpa.domain.Specification;
  20 +
  21 +import com.bsth.entity.search.exception.UnrecognizableSearchSymbolException;
  22 +
  23 +/**
  24 + *
  25 + * @ClassName: CustomerSpecs
  26 + * @Description: 用于动态条件查询的Specification
  27 + * @author PanZhao
  28 + * @date 2016年3月16日 下午4:05:22
  29 + *
  30 + * @param <T>
  31 + */
  32 +public class CustomerSpecs<T> implements Specification<T> {
  33 +
  34 + Logger logger = LoggerFactory.getLogger(this.getClass());
  35 +
  36 + private Map<String, Object> map;
  37 +
  38 + // 查询操作符
  39 + private static Set<String> eSet;
  40 +
  41 + static {
  42 + eSet = new TreeSet<String>();
  43 + for (SearchOperator s : SearchOperator.values()) {
  44 + eSet.add(s.toString());
  45 + }
  46 + }
  47 +
  48 + private static Class<PredicatesBuilder> preBuilderClazz = PredicatesBuilder.class;
  49 + private static Class<CriteriaBuilder> cBuilderClazz = CriteriaBuilder.class;
  50 + private static Class<Object> objClazz = Object.class;
  51 +
  52 + // 查询参数分隔符
  53 + public static final String separator = "_";
  54 +
  55 + /**
  56 + * 构造函数
  57 + *
  58 + * @param map
  59 + */
  60 + public CustomerSpecs(Map<String, Object> map) {
  61 + this.map = map;
  62 + }
  63 +
  64 + @Override
  65 + public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query,
  66 + CriteriaBuilder cb) {
  67 + List<Predicate> predicates = new ArrayList<>();
  68 +
  69 + for (Map.Entry<String, Object> entry : map.entrySet()) {
  70 + Object value = entry.getValue();
  71 + String[] searchs = StringUtils.split(entry.getKey(), separator);
  72 + if (null == searchs || searchs.length < 2)
  73 + continue;
  74 + // 值为空的不参与查询
  75 + if (value == null || (value instanceof String && value.equals("")))
  76 + continue;
  77 +
  78 + try {
  79 + if(!eSet.contains(searchs[1]))
  80 + throw new UnrecognizableSearchSymbolException(searchs[1]);
  81 +
  82 + // 根据操作符调用对应静态函数
  83 + Method method = preBuilderClazz.getMethod(searchs[1],
  84 + cBuilderClazz, Path.class, objClazz);
  85 +
  86 + Predicate predicate = (Predicate) method.invoke(null, cb,
  87 + createPath(root, searchs[0]), value);
  88 +
  89 + predicates.add(predicate);
  90 + } catch (Exception e) {
  91 + logger.error("Specification search error.", e);
  92 + }
  93 + }
  94 + Predicate[] pre = new Predicate[predicates.size()];
  95 + return query.where(predicates.toArray(pre)).getRestriction();
  96 + }
  97 +
  98 + /**
  99 + * 生成Path
  100 + * @param root
  101 + * @param field
  102 + * @return
  103 + */
  104 + public Path<T> createPath(Root<T> root, String field){
  105 + Path<T> p = null;
  106 +
  107 + if(field.indexOf(".") == -1)
  108 + p = root.get(field);
  109 + else{
  110 + String[] fs = field.split("\\.");
  111 +
  112 + p = root.get(fs[0]);
  113 + for(int i = 1; i < fs.length; i ++){
  114 + p = p.get(fs[i]);
  115 + }
  116 + }
  117 + return p;
  118 + }
  119 +}
... ...
src/main/java/com/bsth/entity/search/PredicatesBuilder.java
1   -package com.bsth.entity.search;
2   -
3   -import java.text.NumberFormat;
4   -import java.text.ParseException;
5   -import javax.persistence.criteria.CriteriaBuilder;
6   -import javax.persistence.criteria.Path;
7   -import javax.persistence.criteria.Predicate;
8   -
9   -/**
10   - *
11   - * @ClassName: PredicatesBuilder
12   - * @author PanZhao
13   - * @date 2016年3月16日 下午4:05:07
14   - *
15   - */
16   -public class PredicatesBuilder {
17   -
18   - /**
19   - * Number转换器
20   - */
21   - private static NumberFormat nf;
22   -
23   - static{
24   - nf = NumberFormat.getInstance();
25   - }
26   -
27   - public static Predicate eq(CriteriaBuilder cb,Path<?> expression, Object object){
28   - return cb.equal(expression, object);
29   - }
30   -
31   - public static Predicate ne(CriteriaBuilder cb,Path<?> expression, Object object){
32   - return cb.notEqual(expression, object);
33   - }
34   -
35   - public static Predicate gt(CriteriaBuilder cb,Path<Number> expression, Object object){
36   - try {
37   - return cb.gt(expression, nf.parse(object.toString()));
38   - } catch (ParseException e) {
39   - e.printStackTrace();
40   - return null;
41   - }
42   - }
43   -
44   - public static Predicate ge(CriteriaBuilder cb,Path<Number> expression, Object object){
45   - try {
46   - return cb.ge(expression, nf.parse(object.toString()));
47   - } catch (ParseException e) {
48   - e.printStackTrace();
49   - return null;
50   - }
51   - }
52   -
53   - public static Predicate lt(CriteriaBuilder cb,Path<Number> expression, Object object){
54   - try {
55   - return cb.lt(expression, nf.parse(object.toString()));
56   - } catch (ParseException e) {
57   - e.printStackTrace();
58   - return null;
59   - }
60   - }
61   -
62   - public static Predicate le(CriteriaBuilder cb,Path<Number> expression, Object object){
63   - try {
64   - return cb.le(expression, nf.parse(object.toString()));
65   - } catch (ParseException e) {
66   - e.printStackTrace();
67   - return null;
68   - }
69   - }
70   -
71   - public static Predicate prefixLike(CriteriaBuilder cb,Path<String> expression, Object object){
72   - return cb.like(expression, object.toString() + "%");
73   - }
74   -
75   - public static Predicate prefixNotLike(CriteriaBuilder cb,Path<String> expression, Object object){
76   - return cb.notLike(expression, object.toString() + "%");
77   - }
78   -
79   - public static Predicate suffixLike(CriteriaBuilder cb,Path<String> expression, Object object){
80   - return cb.like(expression, "%" + object.toString());
81   - }
82   -
83   - public static Predicate suffixNotLike(CriteriaBuilder cb,Path<String> expression, Object object){
84   - return cb.notLike(expression, "%" + object.toString());
85   - }
86   -
87   - public static Predicate like(CriteriaBuilder cb,Path<String> expression, Object object){
88   - return cb.like(expression, "%" + object.toString() + "%");
89   - }
90   -
91   - public static Predicate notLike(CriteriaBuilder cb,Path<String> expression, Object object){
92   - return cb.notLike(expression, "%" + object.toString() + "%");
93   - }
94   -
95   - public static Predicate isNull(CriteriaBuilder cb,Path<String> expression, Object object){
96   - return cb.isNull(expression);
97   - }
98   -
99   - public static Predicate isNotNull(CriteriaBuilder cb,Path<String> expression, Object object){
100   - return cb.isNotNull(expression);
101   - }
102   -}
  1 +package com.bsth.entity.search;
  2 +
  3 +import java.text.NumberFormat;
  4 +import java.text.ParseException;
  5 +import javax.persistence.criteria.CriteriaBuilder;
  6 +import javax.persistence.criteria.Path;
  7 +import javax.persistence.criteria.Predicate;
  8 +
  9 +/**
  10 + *
  11 + * @ClassName: PredicatesBuilder
  12 + * @author PanZhao
  13 + * @date 2016年3月16日 下午4:05:07
  14 + *
  15 + */
  16 +public class PredicatesBuilder {
  17 +
  18 + /**
  19 + * Number转换器
  20 + */
  21 + private static NumberFormat nf;
  22 +
  23 + static{
  24 + nf = NumberFormat.getInstance();
  25 + }
  26 +
  27 + public static Predicate eq(CriteriaBuilder cb,Path<?> expression, Object object){
  28 + return cb.equal(expression, object);
  29 + }
  30 +
  31 + public static Predicate ne(CriteriaBuilder cb,Path<?> expression, Object object){
  32 + return cb.notEqual(expression, object);
  33 + }
  34 +
  35 + public static Predicate gt(CriteriaBuilder cb,Path<Number> expression, Object object){
  36 + try {
  37 + return cb.gt(expression, nf.parse(object.toString()));
  38 + } catch (ParseException e) {
  39 + e.printStackTrace();
  40 + return null;
  41 + }
  42 + }
  43 +
  44 + public static Predicate ge(CriteriaBuilder cb,Path<Number> expression, Object object){
  45 + try {
  46 + return cb.ge(expression, nf.parse(object.toString()));
  47 + } catch (ParseException e) {
  48 + e.printStackTrace();
  49 + return null;
  50 + }
  51 + }
  52 +
  53 + public static Predicate lt(CriteriaBuilder cb,Path<Number> expression, Object object){
  54 + try {
  55 + return cb.lt(expression, nf.parse(object.toString()));
  56 + } catch (ParseException e) {
  57 + e.printStackTrace();
  58 + return null;
  59 + }
  60 + }
  61 +
  62 + public static Predicate le(CriteriaBuilder cb,Path<Number> expression, Object object){
  63 + try {
  64 + return cb.le(expression, nf.parse(object.toString()));
  65 + } catch (ParseException e) {
  66 + e.printStackTrace();
  67 + return null;
  68 + }
  69 + }
  70 +
  71 + public static Predicate prefixLike(CriteriaBuilder cb,Path<String> expression, Object object){
  72 + return cb.like(expression, object.toString() + "%");
  73 + }
  74 +
  75 + public static Predicate prefixNotLike(CriteriaBuilder cb,Path<String> expression, Object object){
  76 + return cb.notLike(expression, object.toString() + "%");
  77 + }
  78 +
  79 + public static Predicate suffixLike(CriteriaBuilder cb,Path<String> expression, Object object){
  80 + return cb.like(expression, "%" + object.toString());
  81 + }
  82 +
  83 + public static Predicate suffixNotLike(CriteriaBuilder cb,Path<String> expression, Object object){
  84 + return cb.notLike(expression, "%" + object.toString());
  85 + }
  86 +
  87 + public static Predicate like(CriteriaBuilder cb,Path<String> expression, Object object){
  88 + return cb.like(expression, "%" + object.toString() + "%");
  89 + }
  90 +
  91 + public static Predicate notLike(CriteriaBuilder cb,Path<String> expression, Object object){
  92 + return cb.notLike(expression, "%" + object.toString() + "%");
  93 + }
  94 +
  95 + public static Predicate isNull(CriteriaBuilder cb,Path<String> expression, Object object){
  96 + return cb.isNull(expression);
  97 + }
  98 +
  99 + public static Predicate isNotNull(CriteriaBuilder cb,Path<String> expression, Object object){
  100 + return cb.isNotNull(expression);
  101 + }
  102 +}
... ...
src/main/java/com/bsth/entity/search/SearchOperator.java
1   -package com.bsth.entity.search;
2   -
3   -/**
4   - *
5   - * @ClassName: SearchOperator
6   - * @Description: 查询操作符
7   - * @author PanZhao
8   - * @date 2016年3月16日 下午4:08:22
9   - *
10   - */
11   -public enum SearchOperator {
12   -
13   - eq, // 等于
14   - ne, // 不等于
15   - gt, // 大于
16   - ge, // 大于等于
17   - lt, // 小于
18   - le, // 小于等于
19   - prefixLike, // 前缀模糊匹配
20   - prefixNotLike, // 前缀模糊不匹配
21   - suffixLike, // 后缀模糊匹配
22   - suffixNotLike, // 后缀模糊不匹配
23   - like, // 模糊匹配
24   - notLike, // 不匹配
25   - isNull, // 空
26   - isNotNull, // 非空
27   -}
  1 +package com.bsth.entity.search;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: SearchOperator
  6 + * @Description: 查询操作符
  7 + * @author PanZhao
  8 + * @date 2016年3月16日 下午4:08:22
  9 + *
  10 + */
  11 +public enum SearchOperator {
  12 +
  13 + eq, // 等于
  14 + ne, // 不等于
  15 + gt, // 大于
  16 + ge, // 大于等于
  17 + lt, // 小于
  18 + le, // 小于等于
  19 + prefixLike, // 前缀模糊匹配
  20 + prefixNotLike, // 前缀模糊不匹配
  21 + suffixLike, // 后缀模糊匹配
  22 + suffixNotLike, // 后缀模糊不匹配
  23 + like, // 模糊匹配
  24 + notLike, // 不匹配
  25 + isNull, // 空
  26 + isNotNull, // 非空
  27 +}
... ...
src/main/java/com/bsth/entity/search/exception/UnrecognizableSearchSymbolException.java
1   -package com.bsth.entity.search.exception;
2   -
3   -/**
4   - *
5   - * @ClassName: UnrecognizableSearchSymbolException
6   - * @Description: TODO(查询操作符无法识别时抛出此异常)
7   - * @author PanZhao
8   - * @date 2016年3月17日 下午3:11:02
9   - *
10   - */
11   -public class UnrecognizableSearchSymbolException extends Exception{
12   -
13   - private static final long serialVersionUID = 1L;
14   -
15   - public UnrecognizableSearchSymbolException(String symbol) {
16   - super("无法识别的查询操作符:" + symbol + " 请参考 com.bsth.entity.search.SearchOperator.java");
17   - }
18   -}
  1 +package com.bsth.entity.search.exception;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: UnrecognizableSearchSymbolException
  6 + * @Description: TODO(查询操作符无法识别时抛出此异常)
  7 + * @author PanZhao
  8 + * @date 2016年3月17日 下午3:11:02
  9 + *
  10 + */
  11 +public class UnrecognizableSearchSymbolException extends Exception{
  12 +
  13 + private static final long serialVersionUID = 1L;
  14 +
  15 + public UnrecognizableSearchSymbolException(String symbol) {
  16 + super("无法识别的查询操作符:" + symbol + " 请参考 com.bsth.entity.search.SearchOperator.java");
  17 + }
  18 +}
... ...
src/main/java/com/bsth/entity/sys/SecurityUser.java
1   -package com.bsth.entity.sys;
2   -
3   -import java.util.ArrayList;
4   -import java.util.Collection;
5   -import java.util.Set;
6   -
7   -import org.springframework.security.core.GrantedAuthority;
8   -import org.springframework.security.core.authority.SimpleGrantedAuthority;
9   -import org.springframework.security.core.userdetails.UserDetails;
10   -
11   -public class SecurityUser extends SysUser implements UserDetails {
12   -
13   - private static final long serialVersionUID = 1L;
14   -
15   - public SecurityUser(SysUser user) {
16   - if (null != user) {
17   - this.setId(user.getId());
18   - this.setUserName(user.getUserName());
19   - this.setName(user.getName());
20   - this.setPassword(user.getPassword());
21   - this.setAgencies(user.getAgencies());
22   - this.setRoles(user.getRoles());
23   - this.setEnabled(user.isEnabled());
24   - }
25   - }
26   -
27   - @Override
28   - public Collection<? extends GrantedAuthority> getAuthorities() {
29   - Collection<GrantedAuthority> authorities = new ArrayList<>();
30   - Set<Role> userRoles = this.getRoles();
31   -
32   - if (userRoles != null) {
33   - for (Role role : userRoles) {
34   - SimpleGrantedAuthority authority = new SimpleGrantedAuthority(
35   - role.getCodeName());
36   - authorities.add(authority);
37   - }
38   - }
39   - return authorities;
40   - }
41   -
42   - @Override
43   - public String getPassword() {
44   - return super.getPassword();
45   - }
46   -
47   - @Override
48   - public boolean isAccountNonExpired() {
49   - return true;
50   - }
51   -
52   - @Override
53   - public boolean isAccountNonLocked() {
54   - return true;
55   - }
56   -
57   - @Override
58   - public boolean isCredentialsNonExpired() {
59   - return true;
60   - }
61   -
62   - @Override
63   - public String getUsername() {
64   - return super.getUserName();
65   - }
66   -
67   - @Override
68   - public boolean equals(Object obj) {
69   - return this.getUserName().equals(((SysUser)obj).getUserName());
70   - }
71   -
72   - @Override
73   - public int hashCode() {
74   - return this.getId() + this.getUserName().hashCode();
75   - }
76   -}
  1 +package com.bsth.entity.sys;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.Collection;
  5 +import java.util.Set;
  6 +
  7 +import org.springframework.security.core.GrantedAuthority;
  8 +import org.springframework.security.core.authority.SimpleGrantedAuthority;
  9 +import org.springframework.security.core.userdetails.UserDetails;
  10 +
  11 +public class SecurityUser extends SysUser implements UserDetails {
  12 +
  13 + private static final long serialVersionUID = 1L;
  14 +
  15 + public SecurityUser(SysUser user) {
  16 + if (null != user) {
  17 + this.setId(user.getId());
  18 + this.setUserName(user.getUserName());
  19 + this.setName(user.getName());
  20 + this.setPassword(user.getPassword());
  21 + this.setAgencies(user.getAgencies());
  22 + this.setRoles(user.getRoles());
  23 + this.setEnabled(user.isEnabled());
  24 + }
  25 + }
  26 +
  27 + @Override
  28 + public Collection<? extends GrantedAuthority> getAuthorities() {
  29 + Collection<GrantedAuthority> authorities = new ArrayList<>();
  30 + Set<Role> userRoles = this.getRoles();
  31 +
  32 + if (userRoles != null) {
  33 + for (Role role : userRoles) {
  34 + SimpleGrantedAuthority authority = new SimpleGrantedAuthority(
  35 + role.getCodeName());
  36 + authorities.add(authority);
  37 + }
  38 + }
  39 + return authorities;
  40 + }
  41 +
  42 + @Override
  43 + public String getPassword() {
  44 + return super.getPassword();
  45 + }
  46 +
  47 + @Override
  48 + public boolean isAccountNonExpired() {
  49 + return true;
  50 + }
  51 +
  52 + @Override
  53 + public boolean isAccountNonLocked() {
  54 + return true;
  55 + }
  56 +
  57 + @Override
  58 + public boolean isCredentialsNonExpired() {
  59 + return true;
  60 + }
  61 +
  62 + @Override
  63 + public String getUsername() {
  64 + return super.getUserName();
  65 + }
  66 +
  67 + @Override
  68 + public boolean equals(Object obj) {
  69 + return this.getUserName().equals(((SysUser)obj).getUserName());
  70 + }
  71 +
  72 + @Override
  73 + public int hashCode() {
  74 + return this.getId() + this.getUserName().hashCode();
  75 + }
  76 +}
... ...
src/main/java/com/bsth/filter/AccessLogFilter.java
1   -package com.bsth.filter;
2   -
3   -import javax.servlet.FilterChain;
4   -import javax.servlet.ServletException;
5   -import javax.servlet.http.HttpServletRequest;
6   -import javax.servlet.http.HttpServletResponse;
7   -
8   -import org.slf4j.Logger;
9   -import org.slf4j.LoggerFactory;
10   -import org.springframework.stereotype.Component;
11   -
12   -import com.alibaba.fastjson.JSON;
13   -import com.bsth.security.util.SecurityUtils;
14   -import com.bsth.util.IpUtils;
15   -import com.google.common.collect.Lists;
16   -import com.google.common.collect.Maps;
17   -
18   -import java.io.IOException;
19   -import java.util.Enumeration;
20   -import java.util.List;
21   -import java.util.Map;
22   -
23   -/**
24   - *
25   - * @ClassName: AccessLogFilter
26   - * @Description: TODO(记录访问日志)
27   - * @author PanZhao
28   - * @date 2016年3月17日 下午4:28:31
29   - *
30   - */
31   -@Component
32   -public class AccessLogFilter extends BaseFilter {
33   -
34   - Logger logger = LoggerFactory.getLogger(this.getClass());
35   -
36   - @Override
37   - public void doFilter(HttpServletRequest request,
38   - HttpServletResponse response, FilterChain chain)
39   - throws IOException, ServletException {
40   -
41   - String username = SecurityUtils.getCurrentUser().getName(); //等集成shiro之后再取
42   - String jsessionId = request.getRequestedSessionId();
43   - String ip = IpUtils.getIpAddr(request);
44   - String userAgent = request.getHeader("User-Agent");
45   - String url = request.getRequestURI();
46   - String params = getParams(request);
47   - String headers = getHeaders(request);
48   -
49   - StringBuilder s = new StringBuilder();
50   - s.append(getBlock(username));
51   - s.append(getBlock(jsessionId));
52   - s.append(getBlock(ip));
53   - s.append(getBlock(userAgent));
54   - s.append(getBlock(url));
55   - s.append(getBlock(params));
56   - s.append(getBlock(headers));
57   - s.append(getBlock(request.getHeader("Referer")));
58   -
59   - logger.info(s.toString());
60   - chain.doFilter(request, response);
61   - }
62   -
63   - private static String getParams(HttpServletRequest request) {
64   - Map<String, String[]> params = request.getParameterMap();
65   - return JSON.toJSONString(params);
66   - }
67   -
68   - private static String getHeaders(HttpServletRequest request) {
69   - Map<String, List<String>> headers = Maps.newHashMap();
70   - Enumeration<String> namesEnumeration = request.getHeaderNames();
71   - while (namesEnumeration.hasMoreElements()) {
72   - String name = namesEnumeration.nextElement();
73   - Enumeration<String> valueEnumeration = request.getHeaders(name);
74   - List<String> values = Lists.newArrayList();
75   - while (valueEnumeration.hasMoreElements()) {
76   - values.add(valueEnumeration.nextElement());
77   - }
78   - headers.put(name, values);
79   - }
80   - return JSON.toJSONString(headers);
81   - }
82   -
83   - public static String getBlock(Object msg) {
84   - if (msg == null) {
85   - msg = "";
86   - }
87   - return "[" + msg.toString() + "]";
88   - }
89   -}
  1 +package com.bsth.filter;
  2 +
  3 +import javax.servlet.FilterChain;
  4 +import javax.servlet.ServletException;
  5 +import javax.servlet.http.HttpServletRequest;
  6 +import javax.servlet.http.HttpServletResponse;
  7 +
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import com.alibaba.fastjson.JSON;
  13 +import com.bsth.security.util.SecurityUtils;
  14 +import com.bsth.util.IpUtils;
  15 +import com.google.common.collect.Lists;
  16 +import com.google.common.collect.Maps;
  17 +
  18 +import java.io.IOException;
  19 +import java.util.Enumeration;
  20 +import java.util.List;
  21 +import java.util.Map;
  22 +
  23 +/**
  24 + *
  25 + * @ClassName: AccessLogFilter
  26 + * @Description: TODO(记录访问日志)
  27 + * @author PanZhao
  28 + * @date 2016年3月17日 下午4:28:31
  29 + *
  30 + */
  31 +@Component
  32 +public class AccessLogFilter extends BaseFilter {
  33 +
  34 + Logger logger = LoggerFactory.getLogger(this.getClass());
  35 +
  36 + @Override
  37 + public void doFilter(HttpServletRequest request,
  38 + HttpServletResponse response, FilterChain chain)
  39 + throws IOException, ServletException {
  40 +
  41 + String username = SecurityUtils.getCurrentUser().getName(); //等集成shiro之后再取
  42 + String jsessionId = request.getRequestedSessionId();
  43 + String ip = IpUtils.getIpAddr(request);
  44 + String userAgent = request.getHeader("User-Agent");
  45 + String url = request.getRequestURI();
  46 + String params = getParams(request);
  47 + String headers = getHeaders(request);
  48 +
  49 + StringBuilder s = new StringBuilder();
  50 + s.append(getBlock(username));
  51 + s.append(getBlock(jsessionId));
  52 + s.append(getBlock(ip));
  53 + s.append(getBlock(userAgent));
  54 + s.append(getBlock(url));
  55 + s.append(getBlock(params));
  56 + s.append(getBlock(headers));
  57 + s.append(getBlock(request.getHeader("Referer")));
  58 +
  59 + logger.info(s.toString());
  60 + chain.doFilter(request, response);
  61 + }
  62 +
  63 + private static String getParams(HttpServletRequest request) {
  64 + Map<String, String[]> params = request.getParameterMap();
  65 + return JSON.toJSONString(params);
  66 + }
  67 +
  68 + private static String getHeaders(HttpServletRequest request) {
  69 + Map<String, List<String>> headers = Maps.newHashMap();
  70 + Enumeration<String> namesEnumeration = request.getHeaderNames();
  71 + while (namesEnumeration.hasMoreElements()) {
  72 + String name = namesEnumeration.nextElement();
  73 + Enumeration<String> valueEnumeration = request.getHeaders(name);
  74 + List<String> values = Lists.newArrayList();
  75 + while (valueEnumeration.hasMoreElements()) {
  76 + values.add(valueEnumeration.nextElement());
  77 + }
  78 + headers.put(name, values);
  79 + }
  80 + return JSON.toJSONString(headers);
  81 + }
  82 +
  83 + public static String getBlock(Object msg) {
  84 + if (msg == null) {
  85 + msg = "";
  86 + }
  87 + return "[" + msg.toString() + "]";
  88 + }
  89 +}
... ...
src/main/java/com/bsth/filter/BaseFilter.java
1   -package com.bsth.filter;
2   -
3   -import java.io.IOException;
4   -
5   -import javax.servlet.Filter;
6   -import javax.servlet.FilterChain;
7   -import javax.servlet.FilterConfig;
8   -import javax.servlet.ServletException;
9   -import javax.servlet.ServletRequest;
10   -import javax.servlet.ServletResponse;
11   -import javax.servlet.http.HttpServletRequest;
12   -import javax.servlet.http.HttpServletResponse;
13   -
14   -import org.springframework.util.AntPathMatcher;
15   -import org.springframework.util.PathMatcher;
16   -
17   -import com.bsth.common.Constants;
18   -
19   -public abstract class BaseFilter implements Filter {
20   -
21   - private final PathMatcher pathMatcher = new AntPathMatcher();
22   -
23   - /**
24   - * 白名单
25   - */
26   - private String[] whiteListURLs = { Constants.LOGIN_PAGE,
27   - Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE };
28   -
29   - @Override
30   - public void destroy() {
31   -
32   - }
33   -
34   - @Override
35   - public void doFilter(ServletRequest request, ServletResponse response,
36   - FilterChain chain) throws IOException, ServletException {
37   -
38   - HttpServletRequest httpRequest = (HttpServletRequest) request;
39   - HttpServletResponse httpResponse = (HttpServletResponse) response;
40   -
41   - String currentURL = httpRequest.getServletPath();
42   -
43   - if (isWhiteURL(currentURL)) {
44   - chain.doFilter(request, response);
45   - return;
46   - }
47   -
48   - doFilter(httpRequest, httpResponse, chain);
49   - return;
50   - }
51   -
52   - public void doFilter(HttpServletRequest request,
53   - HttpServletResponse response, FilterChain chain)
54   - throws IOException, ServletException {
55   - chain.doFilter(request, response);
56   - }
57   -
58   - @Override
59   - public void init(FilterConfig arg0) throws ServletException {
60   -
61   - }
62   -
63   - private boolean isWhiteURL(String currentURL) {
64   - for (String whiteURL : whiteListURLs) {
65   - if (pathMatcher.match(whiteURL, currentURL)) {
66   - return true;
67   - }
68   - }
69   - return false;
70   - }
71   -}
  1 +package com.bsth.filter;
  2 +
  3 +import java.io.IOException;
  4 +
  5 +import javax.servlet.Filter;
  6 +import javax.servlet.FilterChain;
  7 +import javax.servlet.FilterConfig;
  8 +import javax.servlet.ServletException;
  9 +import javax.servlet.ServletRequest;
  10 +import javax.servlet.ServletResponse;
  11 +import javax.servlet.http.HttpServletRequest;
  12 +import javax.servlet.http.HttpServletResponse;
  13 +
  14 +import org.springframework.util.AntPathMatcher;
  15 +import org.springframework.util.PathMatcher;
  16 +
  17 +import com.bsth.common.Constants;
  18 +
  19 +public abstract class BaseFilter implements Filter {
  20 +
  21 + private final PathMatcher pathMatcher = new AntPathMatcher();
  22 +
  23 + /**
  24 + * 白名单
  25 + */
  26 + private String[] whiteListURLs = { Constants.LOGIN_PAGE,
  27 + Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE };
  28 +
  29 + @Override
  30 + public void destroy() {
  31 +
  32 + }
  33 +
  34 + @Override
  35 + public void doFilter(ServletRequest request, ServletResponse response,
  36 + FilterChain chain) throws IOException, ServletException {
  37 +
  38 + HttpServletRequest httpRequest = (HttpServletRequest) request;
  39 + HttpServletResponse httpResponse = (HttpServletResponse) response;
  40 +
  41 + String currentURL = httpRequest.getServletPath();
  42 +
  43 + if (isWhiteURL(currentURL)) {
  44 + chain.doFilter(request, response);
  45 + return;
  46 + }
  47 +
  48 + doFilter(httpRequest, httpResponse, chain);
  49 + return;
  50 + }
  51 +
  52 + public void doFilter(HttpServletRequest request,
  53 + HttpServletResponse response, FilterChain chain)
  54 + throws IOException, ServletException {
  55 + chain.doFilter(request, response);
  56 + }
  57 +
  58 + @Override
  59 + public void init(FilterConfig arg0) throws ServletException {
  60 +
  61 + }
  62 +
  63 + private boolean isWhiteURL(String currentURL) {
  64 + for (String whiteURL : whiteListURLs) {
  65 + if (pathMatcher.match(whiteURL, currentURL)) {
  66 + return true;
  67 + }
  68 + }
  69 + return false;
  70 + }
  71 +}
... ...
src/main/java/com/bsth/filter/CORSFilter.java
1   -package com.bsth.filter;
2   -
3   -import java.io.IOException;
4   -
5   -import javax.servlet.FilterChain;
6   -import javax.servlet.FilterConfig;
7   -import javax.servlet.ServletException;
8   -import javax.servlet.http.HttpServletRequest;
9   -import javax.servlet.http.HttpServletResponse;
10   -
11   -import org.springframework.stereotype.Component;
12   -
13   -@Component
14   -public class CORSFilter extends BaseFilter {
15   -
16   - public void init(FilterConfig filterConfig) {
17   - }
18   -
19   - @Override
20   - public void doFilter(HttpServletRequest request,
21   - HttpServletResponse response, FilterChain chain)
22   - throws IOException, ServletException {
23   -
24   - response.setHeader("Access-Control-Allow-Origin", "*");
25   - response.setHeader("Access-Control-Allow-Methods",
26   - "POST, GET, OPTIONS, DELETE");
27   - response.setHeader("Access-Control-Max-Age", "3600");
28   - response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
29   - chain.doFilter(request, response);
30   - }
31   -
32   - public void destroy() {
33   - }
34   -
35   -}
  1 +package com.bsth.filter;
  2 +
  3 +import java.io.IOException;
  4 +
  5 +import javax.servlet.FilterChain;
  6 +import javax.servlet.FilterConfig;
  7 +import javax.servlet.ServletException;
  8 +import javax.servlet.http.HttpServletRequest;
  9 +import javax.servlet.http.HttpServletResponse;
  10 +
  11 +import org.springframework.stereotype.Component;
  12 +
  13 +@Component
  14 +public class CORSFilter extends BaseFilter {
  15 +
  16 + public void init(FilterConfig filterConfig) {
  17 + }
  18 +
  19 + @Override
  20 + public void doFilter(HttpServletRequest request,
  21 + HttpServletResponse response, FilterChain chain)
  22 + throws IOException, ServletException {
  23 +
  24 + response.setHeader("Access-Control-Allow-Origin", "*");
  25 + response.setHeader("Access-Control-Allow-Methods",
  26 + "POST, GET, OPTIONS, DELETE");
  27 + response.setHeader("Access-Control-Max-Age", "3600");
  28 + response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
  29 + chain.doFilter(request, response);
  30 + }
  31 +
  32 + public void destroy() {
  33 + }
  34 +
  35 +}
... ...
src/main/java/com/bsth/repository/BaseRepository.java
1   -package com.bsth.repository;
2   -
3   -import java.io.Serializable;
4   -
5   -import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6   -import org.springframework.data.repository.NoRepositoryBean;
7   -import org.springframework.data.repository.PagingAndSortingRepository;
8   -
9   -@NoRepositoryBean
10   -public interface BaseRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>,JpaSpecificationExecutor<T>{
11   -
12   -}
  1 +package com.bsth.repository;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  6 +import org.springframework.data.repository.NoRepositoryBean;
  7 +import org.springframework.data.repository.PagingAndSortingRepository;
  8 +
  9 +@NoRepositoryBean
  10 +public interface BaseRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>,JpaSpecificationExecutor<T>{
  11 +
  12 +}
... ...
src/main/java/com/bsth/repository/DictionaryRepository.java
1   -package com.bsth.repository;
2   -
3   -import org.springframework.stereotype.Repository;
4   -
5   -import com.bsth.entity.sys.Dictionary;
6   -
7   -@Repository
8   -public interface DictionaryRepository extends BaseRepository<Dictionary, Integer>{
9   -
10   -}
  1 +package com.bsth.repository;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import com.bsth.entity.sys.Dictionary;
  6 +
  7 +@Repository
  8 +public interface DictionaryRepository extends BaseRepository<Dictionary, Integer>{
  9 +
  10 +}
... ...
src/main/java/com/bsth/repository/ModuleRepository.java
1   -package com.bsth.repository;
2   -
3   -import java.util.List;
4   -import java.util.Set;
5   -
6   -import org.springframework.data.jpa.repository.Query;
7   -import org.springframework.stereotype.Repository;
8   -
9   -import com.bsth.entity.sys.Module;
10   -
11   -@Repository
12   -public interface ModuleRepository extends BaseRepository<Module, Integer>{
13   -
14   - @Query("select m from Module m where m.groupType in ?1")
15   - List<Module> findByGroupType(String[] groupType);
16   -
17   - List<Module> findByPId(Integer pId);
18   -
19   - @Query("select m from Module m where m.id in ?1")
20   - Set<Module> findByIds(List<Integer> ids);
21   -}
  1 +package com.bsth.repository;
  2 +
  3 +import java.util.List;
  4 +import java.util.Set;
  5 +
  6 +import org.springframework.data.jpa.repository.Query;
  7 +import org.springframework.stereotype.Repository;
  8 +
  9 +import com.bsth.entity.sys.Module;
  10 +
  11 +@Repository
  12 +public interface ModuleRepository extends BaseRepository<Module, Integer>{
  13 +
  14 + @Query("select m from Module m where m.groupType in ?1")
  15 + List<Module> findByGroupType(String[] groupType);
  16 +
  17 + List<Module> findByPId(Integer pId);
  18 +
  19 + @Query("select m from Module m where m.id in ?1")
  20 + Set<Module> findByIds(List<Integer> ids);
  21 +}
... ...
src/main/java/com/bsth/repository/ResourceRepository.java
1   -package com.bsth.repository;
2   -
3   -import java.util.List;
4   -
5   -import org.springframework.stereotype.Repository;
6   -
7   -import com.bsth.entity.sys.Resource;
8   -
9   -@Repository
10   -public interface ResourceRepository extends BaseRepository<Resource, Integer> {
11   -
12   - List<Resource> findByRolesId(Integer roleId);
13   -}
  1 +package com.bsth.repository;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +import com.bsth.entity.sys.Resource;
  8 +
  9 +@Repository
  10 +public interface ResourceRepository extends BaseRepository<Resource, Integer> {
  11 +
  12 + List<Resource> findByRolesId(Integer roleId);
  13 +}
... ...
src/main/java/com/bsth/repository/RoleRepository.java
1   -package com.bsth.repository;
2   -
3   -
4   -import javax.transaction.Transactional;
5   -
6   -import org.springframework.data.jpa.repository.Modifying;
7   -import org.springframework.data.jpa.repository.Query;
8   -import org.springframework.stereotype.Repository;
9   -
10   -import com.bsth.entity.sys.Role;
11   -
12   -@Repository
13   -public interface RoleRepository extends BaseRepository<Role, Integer>{
14   -
15   - /**
16   - * @Title: update
17   - * @Description: TODO(简洁版更新(不需要级联的))
18   - */
19   - @Modifying
20   - @Transactional
21   - @Query("update Role r set r.codeName=?1, r.roleName=?2, r.enable=?3, r.descriptions=?4 where r.id=?5")
22   - void update(String codeName, String roleName, boolean enable, String descriptions, Integer id);
23   -}
  1 +package com.bsth.repository;
  2 +
  3 +
  4 +import javax.transaction.Transactional;
  5 +
  6 +import org.springframework.data.jpa.repository.Modifying;
  7 +import org.springframework.data.jpa.repository.Query;
  8 +import org.springframework.stereotype.Repository;
  9 +
  10 +import com.bsth.entity.sys.Role;
  11 +
  12 +@Repository
  13 +public interface RoleRepository extends BaseRepository<Role, Integer>{
  14 +
  15 + /**
  16 + * @Title: update
  17 + * @Description: TODO(简洁版更新(不需要级联的))
  18 + */
  19 + @Modifying
  20 + @Transactional
  21 + @Query("update Role r set r.codeName=?1, r.roleName=?2, r.enable=?3, r.descriptions=?4 where r.id=?5")
  22 + void update(String codeName, String roleName, boolean enable, String descriptions, Integer id);
  23 +}
... ...
src/main/java/com/bsth/repository/SysUserRepository.java
1   -package com.bsth.repository;
2   -
3   -import org.springframework.stereotype.Repository;
4   -
5   -import com.bsth.entity.sys.SysUser;
6   -
7   -@Repository
8   -public interface SysUserRepository extends BaseRepository<SysUser, Integer>{
9   -
10   - SysUser findByUserName(String userName);
11   -
12   -}
  1 +package com.bsth.repository;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import com.bsth.entity.sys.SysUser;
  6 +
  7 +@Repository
  8 +public interface SysUserRepository extends BaseRepository<SysUser, Integer>{
  9 +
  10 + SysUser findByUserName(String userName);
  11 +
  12 +}
... ...
src/main/java/com/bsth/repository/schedule/BusinessInfoRepository.java
1   -package com.bsth.repository.schedule;
2   -
3   -import com.bsth.entity.schedule.BusinessInfo;
4   -import com.bsth.repository.BaseRepository;
5   -import org.springframework.stereotype.Repository;
6   -
7   -/**
8   - * Created by xu on 16/5/11.
9   - */
10   -@Repository
11   -public interface BusinessInfoRepository extends BaseRepository<BusinessInfo, Long> {
12   -}
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.BusinessInfo;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by xu on 16/5/11.
  9 + */
  10 +@Repository
  11 +public interface BusinessInfoRepository extends BaseRepository<BusinessInfo, Long> {
  12 +}
... ...
src/main/java/com/bsth/repository/schedule/CarConfigInfoRepository.java
1   -package com.bsth.repository.schedule;
2   -
3   -import com.bsth.entity.schedule.CarConfigInfo;
4   -import com.bsth.repository.BaseRepository;
5   -import org.springframework.stereotype.Repository;
6   -
7   -/**
8   - * Created by xu on 16/5/9.
9   - */
10   -@Repository
11   -public interface CarConfigInfoRepository extends BaseRepository<CarConfigInfo, Long> {
12   -}
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.CarConfigInfo;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by xu on 16/5/9.
  9 + */
  10 +@Repository
  11 +public interface CarConfigInfoRepository extends BaseRepository<CarConfigInfo, Long> {
  12 +}
... ...
src/main/java/com/bsth/repository/schedule/EmployeeConfigInfoRepository.java
1   -package com.bsth.repository.schedule;
2   -
3   -import com.bsth.entity.schedule.EmployeeConfigInfo;
4   -import com.bsth.repository.BaseRepository;
5   -import org.springframework.stereotype.Repository;
6   -
7   -/**
8   - * Created by xu on 16/5/10.
9   - */
10   -@Repository
11   -public interface EmployeeConfigInfoRepository extends BaseRepository<EmployeeConfigInfo, Long> {
12   -}
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.EmployeeConfigInfo;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by xu on 16/5/10.
  9 + */
  10 +@Repository
  11 +public interface EmployeeConfigInfoRepository extends BaseRepository<EmployeeConfigInfo, Long> {
  12 +}
... ...
src/main/java/com/bsth/repository/schedule/GuideboardInfoRepository.java
1   -package com.bsth.repository.schedule;
2   -
3   -import com.bsth.entity.schedule.GuideboardInfo;
4   -import com.bsth.repository.BaseRepository;
5   -import org.springframework.stereotype.Repository;
6   -
7   -/**
8   - * Created by xu on 16/5/11.
9   - */
10   -@Repository
11   -public interface GuideboardInfoRepository extends BaseRepository<GuideboardInfo, Long> {
12   -}
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.GuideboardInfo;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by xu on 16/5/11.
  9 + */
  10 +@Repository
  11 +public interface GuideboardInfoRepository extends BaseRepository<GuideboardInfo, Long> {
  12 +}
... ...
src/main/java/com/bsth/repository/schedule/TTInfoRepository.java
1   -package com.bsth.repository.schedule;
2   -
3   -import com.bsth.entity.schedule.TTInfo;
4   -import com.bsth.repository.BaseRepository;
5   -import org.springframework.stereotype.Repository;
6   -
7   -/**
8   - * Created by xu on 16/5/12.
9   - */
10   -@Repository
11   -public interface TTInfoRepository extends BaseRepository<TTInfo, Long> {
12   -}
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.TTInfo;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by xu on 16/5/12.
  9 + */
  10 +@Repository
  11 +public interface TTInfoRepository extends BaseRepository<TTInfo, Long> {
  12 +}
... ...
src/main/java/com/bsth/security/CustomAccessDecisionManager.java
1   -package com.bsth.security;
2   -
3   -import java.util.Collection;
4   -import java.util.Iterator;
5   -
6   -import org.springframework.security.access.AccessDecisionManager;
7   -import org.springframework.security.access.AccessDeniedException;
8   -import org.springframework.security.access.ConfigAttribute;
9   -import org.springframework.security.access.SecurityConfig;
10   -import org.springframework.security.authentication.InsufficientAuthenticationException;
11   -import org.springframework.security.core.Authentication;
12   -import org.springframework.security.core.GrantedAuthority;
13   -import org.springframework.stereotype.Component;
14   -
15   -@Component
16   -public class CustomAccessDecisionManager implements AccessDecisionManager{
17   -
18   - @Override
19   - public void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes)
20   - throws AccessDeniedException, InsufficientAuthenticationException {
21   -
22   - Iterator<ConfigAttribute> iter = configAttributes.iterator();
23   - Object obj;
24   - while (iter.hasNext())
25   - {
26   - obj = iter.next();
27   - if(null == obj)
28   - continue;
29   -
30   - String accessResourceNeedRole = ((SecurityConfig) obj)
31   - .getAttribute();
32   - for (GrantedAuthority grantedAuthority : authentication.getAuthorities())
33   - {
34   - String userOwnRole = grantedAuthority.getAuthority();
35   - if (accessResourceNeedRole.equals(userOwnRole))
36   - {
37   - return;
38   - }
39   - }
40   - }
41   - throw new AccessDeniedException("访问被拒绝!");
42   - }
43   -
44   - @Override
45   - public boolean supports(ConfigAttribute arg0) {
46   - return false;
47   - }
48   -
49   - @Override
50   - public boolean supports(Class<?> arg0) {
51   - return false;
52   - }
53   -
54   -}
  1 +package com.bsth.security;
  2 +
  3 +import java.util.Collection;
  4 +import java.util.Iterator;
  5 +
  6 +import org.springframework.security.access.AccessDecisionManager;
  7 +import org.springframework.security.access.AccessDeniedException;
  8 +import org.springframework.security.access.ConfigAttribute;
  9 +import org.springframework.security.access.SecurityConfig;
  10 +import org.springframework.security.authentication.InsufficientAuthenticationException;
  11 +import org.springframework.security.core.Authentication;
  12 +import org.springframework.security.core.GrantedAuthority;
  13 +import org.springframework.stereotype.Component;
  14 +
  15 +@Component
  16 +public class CustomAccessDecisionManager implements AccessDecisionManager{
  17 +
  18 + @Override
  19 + public void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes)
  20 + throws AccessDeniedException, InsufficientAuthenticationException {
  21 +
  22 + Iterator<ConfigAttribute> iter = configAttributes.iterator();
  23 + Object obj;
  24 + while (iter.hasNext())
  25 + {
  26 + obj = iter.next();
  27 + if(null == obj)
  28 + continue;
  29 +
  30 + String accessResourceNeedRole = ((SecurityConfig) obj)
  31 + .getAttribute();
  32 + for (GrantedAuthority grantedAuthority : authentication.getAuthorities())
  33 + {
  34 + String userOwnRole = grantedAuthority.getAuthority();
  35 + if (accessResourceNeedRole.equals(userOwnRole))
  36 + {
  37 + return;
  38 + }
  39 + }
  40 + }
  41 + throw new AccessDeniedException("访问被拒绝!");
  42 + }
  43 +
  44 + @Override
  45 + public boolean supports(ConfigAttribute arg0) {
  46 + return false;
  47 + }
  48 +
  49 + @Override
  50 + public boolean supports(Class<?> arg0) {
  51 + return false;
  52 + }
  53 +
  54 +}
... ...
src/main/java/com/bsth/security/LoginSuccessHandler.java
1   -package com.bsth.security;
2   -
3   -import java.io.IOException;
4   -import javax.servlet.ServletException;
5   -import javax.servlet.http.HttpServletRequest;
6   -import javax.servlet.http.HttpServletResponse;
7   -
8   -import org.springframework.security.core.Authentication;
9   -import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
10   -
11   -import com.bsth.entity.sys.SysUser;
12   -import com.bsth.util.IpUtils;
13   -
14   -public class LoginSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler{
15   -
16   - @Override
17   - public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
18   - Authentication authentication) throws ServletException, IOException {
19   -
20   - SysUser user = (SysUser) authentication.getPrincipal();
21   -
22   - System.out.println("管理员 " + user.getUserName() + " 登录");
23   - System.out.println("IP :"+IpUtils.getIpAddr(request));
24   -
25   - super.onAuthenticationSuccess(request, response, authentication);
26   - }
27   -
28   -}
  1 +package com.bsth.security;
  2 +
  3 +import java.io.IOException;
  4 +import javax.servlet.ServletException;
  5 +import javax.servlet.http.HttpServletRequest;
  6 +import javax.servlet.http.HttpServletResponse;
  7 +
  8 +import org.springframework.security.core.Authentication;
  9 +import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
  10 +
  11 +import com.bsth.entity.sys.SysUser;
  12 +import com.bsth.util.IpUtils;
  13 +
  14 +public class LoginSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler{
  15 +
  16 + @Override
  17 + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
  18 + Authentication authentication) throws ServletException, IOException {
  19 +
  20 + SysUser user = (SysUser) authentication.getPrincipal();
  21 +
  22 + System.out.println("管理员 " + user.getUserName() + " 登录");
  23 + System.out.println("IP :"+IpUtils.getIpAddr(request));
  24 +
  25 + super.onAuthenticationSuccess(request, response, authentication);
  26 + }
  27 +
  28 +}
... ...
src/main/java/com/bsth/security/SecurityMetadataSourceService.java
1   -package com.bsth.security;
2   -
3   -import java.util.Collection;
4   -import java.util.Iterator;
5   -import java.util.List;
6   -import java.util.Set;
7   -
8   -import org.springframework.beans.factory.annotation.Autowired;
9   -import org.springframework.security.access.ConfigAttribute;
10   -import org.springframework.security.access.SecurityConfig;
11   -import org.springframework.security.web.FilterInvocation;
12   -import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource;
13   -import org.springframework.stereotype.Component;
14   -import org.springframework.util.AntPathMatcher;
15   -import org.springframework.util.PathMatcher;
16   -
17   -import com.bsth.entity.sys.Resource;
18   -import com.bsth.entity.sys.Role;
19   -import com.bsth.service.ResourceService;
20   -import com.bsth.service.RoleService;
21   -import com.google.common.collect.ArrayListMultimap;
22   -import com.google.common.collect.Multimap;
23   -
24   -@Component
25   -public class SecurityMetadataSourceService implements
26   - FilterInvocationSecurityMetadataSource {
27   -
28   - @Autowired
29   - RoleService roleService;
30   -
31   - @Autowired
32   - ResourceService resourceService;
33   -
34   - private PathMatcher matcher = new AntPathMatcher();
35   -
36   - private Multimap<String, ConfigAttribute> multimap;
37   -
38   -
39   - public void loadResourceDefine() throws Exception {
40   -
41   -
42   - multimap = ArrayListMultimap.create();
43   - //获取所有资源
44   - List<Resource> resList = (List<Resource>) resourceService.findAll();
45   -
46   - Set<Role> roles;
47   - String url;
48   - for(Resource res : resList){
49   - url = res.getMethod() + "#" + replacePlaceholders(res.getUrl());
50   - roles = res.getRoles();
51   -
52   - if(null == roles || roles.size() == 0)
53   - multimap.put(url, null);
54   - else{
55   - for(Role role : roles)
56   - multimap.put(url , new SecurityConfig(role.getCodeName()));
57   - }
58   - }
59   - System.out.println(multimap);
60   - }
61   -
62   - public Collection<ConfigAttribute> getAttributes(Object object)
63   - throws IllegalArgumentException {
64   -
65   - FilterInvocation invocation = ((FilterInvocation) object);
66   - String method = invocation.getRequest().getMethod();
67   - String url = method.toLowerCase() + "#" + invocation.getRequestUrl();
68   -
69   - System.out.println(url);
70   -
71   - int symIndex = url.indexOf("?");
72   - if(symIndex != -1){
73   - url = url.substring(0, symIndex);
74   - }
75   -
76   - Iterator<String> iter = multimap.keySet().iterator();
77   -
78   - while(iter.hasNext()){
79   - String temp = iter.next();
80   -
81   - if(matcher.match(temp, url)){
82   - return multimap.get(url);
83   - }
84   - }
85   -
86   - return null;
87   - }
88   -
89   - /**
90   - *
91   - * @Title: replacePlaceholders
92   - * @Description: TODO(把/{xx}占位符替换成*)
93   - * @param @param url
94   - * @throws
95   - */
96   - public String replacePlaceholders(String url){
97   - int s = url.indexOf("/{");
98   - int e = url.indexOf("}");
99   - if(s != -1 && e != -1){
100   - String newUrl = url.substring(0, s) + "/*" + url.substring(e + 1, url.length());
101   - return replacePlaceholders(newUrl);
102   - }
103   - else
104   - return url;
105   - }
106   -
107   - public boolean supports(Class<?> clazz) {
108   - return true;
109   - }
110   -
111   - public Collection<ConfigAttribute> getAllConfigAttributes() {
112   - return null;
113   - }
114   -}
  1 +package com.bsth.security;
  2 +
  3 +import java.util.Collection;
  4 +import java.util.Iterator;
  5 +import java.util.List;
  6 +import java.util.Set;
  7 +
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.security.access.ConfigAttribute;
  10 +import org.springframework.security.access.SecurityConfig;
  11 +import org.springframework.security.web.FilterInvocation;
  12 +import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource;
  13 +import org.springframework.stereotype.Component;
  14 +import org.springframework.util.AntPathMatcher;
  15 +import org.springframework.util.PathMatcher;
  16 +
  17 +import com.bsth.entity.sys.Resource;
  18 +import com.bsth.entity.sys.Role;
  19 +import com.bsth.service.ResourceService;
  20 +import com.bsth.service.RoleService;
  21 +import com.google.common.collect.ArrayListMultimap;
  22 +import com.google.common.collect.Multimap;
  23 +
  24 +@Component
  25 +public class SecurityMetadataSourceService implements
  26 + FilterInvocationSecurityMetadataSource {
  27 +
  28 + @Autowired
  29 + RoleService roleService;
  30 +
  31 + @Autowired
  32 + ResourceService resourceService;
  33 +
  34 + private PathMatcher matcher = new AntPathMatcher();
  35 +
  36 + private Multimap<String, ConfigAttribute> multimap;
  37 +
  38 +
  39 + public void loadResourceDefine() throws Exception {
  40 +
  41 +
  42 + multimap = ArrayListMultimap.create();
  43 + //获取所有资源
  44 + List<Resource> resList = (List<Resource>) resourceService.findAll();
  45 +
  46 + Set<Role> roles;
  47 + String url;
  48 + for(Resource res : resList){
  49 + url = res.getMethod() + "#" + replacePlaceholders(res.getUrl());
  50 + roles = res.getRoles();
  51 +
  52 + if(null == roles || roles.size() == 0)
  53 + multimap.put(url, null);
  54 + else{
  55 + for(Role role : roles)
  56 + multimap.put(url , new SecurityConfig(role.getCodeName()));
  57 + }
  58 + }
  59 + System.out.println(multimap);
  60 + }
  61 +
  62 + public Collection<ConfigAttribute> getAttributes(Object object)
  63 + throws IllegalArgumentException {
  64 +
  65 + FilterInvocation invocation = ((FilterInvocation) object);
  66 + String method = invocation.getRequest().getMethod();
  67 + String url = method.toLowerCase() + "#" + invocation.getRequestUrl();
  68 +
  69 + System.out.println(url);
  70 +
  71 + int symIndex = url.indexOf("?");
  72 + if(symIndex != -1){
  73 + url = url.substring(0, symIndex);
  74 + }
  75 +
  76 + Iterator<String> iter = multimap.keySet().iterator();
  77 +
  78 + while(iter.hasNext()){
  79 + String temp = iter.next();
  80 +
  81 + if(matcher.match(temp, url)){
  82 + return multimap.get(url);
  83 + }
  84 + }
  85 +
  86 + return null;
  87 + }
  88 +
  89 + /**
  90 + *
  91 + * @Title: replacePlaceholders
  92 + * @Description: TODO(把/{xx}占位符替换成*)
  93 + * @param @param url
  94 + * @throws
  95 + */
  96 + public String replacePlaceholders(String url){
  97 + int s = url.indexOf("/{");
  98 + int e = url.indexOf("}");
  99 + if(s != -1 && e != -1){
  100 + String newUrl = url.substring(0, s) + "/*" + url.substring(e + 1, url.length());
  101 + return replacePlaceholders(newUrl);
  102 + }
  103 + else
  104 + return url;
  105 + }
  106 +
  107 + public boolean supports(Class<?> clazz) {
  108 + return true;
  109 + }
  110 +
  111 + public Collection<ConfigAttribute> getAllConfigAttributes() {
  112 + return null;
  113 + }
  114 +}
... ...
src/main/java/com/bsth/security/UserDetailServiceImpl.java
1   -package com.bsth.security;
2   -
3   -import org.springframework.beans.factory.annotation.Autowired;
4   -import org.springframework.dao.DataAccessException;
5   -import org.springframework.security.core.userdetails.UserDetails;
6   -import org.springframework.security.core.userdetails.UserDetailsService;
7   -import org.springframework.security.core.userdetails.UsernameNotFoundException;
8   -import org.springframework.stereotype.Component;
9   -
10   -import com.bsth.entity.sys.SecurityUser;
11   -import com.bsth.entity.sys.SysUser;
12   -import com.bsth.service.SysUserService;
13   -
14   -@Component
15   -public class UserDetailServiceImpl implements UserDetailsService{
16   -
17   - @Autowired
18   - SysUserService sysUserService;
19   -
20   - public UserDetails loadUserByUsername(String username)throws UsernameNotFoundException, DataAccessException {
21   -
22   - SysUser user = sysUserService.findByUserName(username);
23   - if(null == user){
24   - throw new UsernameNotFoundException("UserName " + username + " not found");
25   - }
26   - return new SecurityUser(user);
27   - }
28   -}
  1 +package com.bsth.security;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.dao.DataAccessException;
  5 +import org.springframework.security.core.userdetails.UserDetails;
  6 +import org.springframework.security.core.userdetails.UserDetailsService;
  7 +import org.springframework.security.core.userdetails.UsernameNotFoundException;
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import com.bsth.entity.sys.SecurityUser;
  11 +import com.bsth.entity.sys.SysUser;
  12 +import com.bsth.service.SysUserService;
  13 +
  14 +@Component
  15 +public class UserDetailServiceImpl implements UserDetailsService{
  16 +
  17 + @Autowired
  18 + SysUserService sysUserService;
  19 +
  20 + public UserDetails loadUserByUsername(String username)throws UsernameNotFoundException, DataAccessException {
  21 +
  22 + SysUser user = sysUserService.findByUserName(username);
  23 + if(null == user){
  24 + throw new UsernameNotFoundException("UserName " + username + " not found");
  25 + }
  26 + return new SecurityUser(user);
  27 + }
  28 +}
... ...
src/main/java/com/bsth/security/WebSecurityConfig.java
1   -package com.bsth.security;
2   -
3   -import org.springframework.beans.factory.annotation.Autowired;
4   -import org.springframework.boot.context.embedded.ServletListenerRegistrationBean;
5   -import org.springframework.context.annotation.Bean;
6   -import org.springframework.context.annotation.Configuration;
7   -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
8   -import org.springframework.security.config.annotation.web.builders.HttpSecurity;
9   -import org.springframework.security.config.annotation.web.builders.WebSecurity;
10   -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
11   -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
12   -import org.springframework.security.core.session.SessionRegistry;
13   -import org.springframework.security.core.session.SessionRegistryImpl;
14   -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
15   -import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
16   -import org.springframework.security.web.session.HttpSessionEventPublisher;
17   -
18   -import com.bsth.common.Constants;
19   -import com.bsth.security.filter.LoginInterceptor;
20   -
21   -@Configuration
22   -@EnableWebSecurity
23   -public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
24   -
25   - @Autowired
26   - UserDetailServiceImpl customUserDetailService;
27   -
28   - @Autowired
29   - CustomAccessDecisionManager customAccessDecisionManager;
30   -
31   - @Autowired
32   - SecurityMetadataSourceService securityMetadataSourceService;
33   -
34   - @Override
35   - public void configure(WebSecurity web) throws Exception {
36   - // 白名单
37   - web.ignoring().antMatchers(Constants.ASSETS_URL, Constants.FAVICON_URL,
38   - Constants.METRONIC_URL, Constants.LOGIN_PAGE,
39   - Constants.LOGIN_FAILURE);
40   - }
41   -
42   - @Override
43   - protected void configure(AuthenticationManagerBuilder auth)
44   - throws Exception {
45   - auth.userDetailsService(customUserDetailService).passwordEncoder(
46   - new BCryptPasswordEncoder(4));
47   - }
48   -
49   - @Override
50   - protected void configure(HttpSecurity http) throws Exception {
51   - http.authorizeRequests().antMatchers("/").permitAll().anyRequest()
52   - .authenticated().and()
53   - .formLogin()
54   - //指定登录页
55   - .loginPage(Constants.LOGIN_PAGE)
56   - .loginProcessingUrl(Constants.LOGIN).permitAll()
57   - //登录失败跳转的链接
58   - .failureUrl(Constants.LOGIN_PAGE + "?error=true")
59   - //登录成功后处理
60   - .successHandler(loginSuccessHandler())
61   - //禁用CXRF
62   - .and().csrf().disable()
63   - //禁用匿名用户功能
64   - .anonymous().disable();
65   -
66   - // 同时只保持一个回话
67   - http.sessionManagement().maximumSessions(1)
68   - .expiredUrl(Constants.LOGIN_PAGE + "?error=true")
69   - .maxSessionsPreventsLogin(false)//让之前的登录过期
70   - .sessionRegistry(sessionRegistry());
71   -
72   - http.addFilterBefore(new LoginInterceptor(), FilterSecurityInterceptor.class);
73   - http.addFilter(filterSecurityInterceptor());
74   - }
75   -
76   - private FilterSecurityInterceptor filterSecurityInterceptor()
77   - throws Exception {
78   - FilterSecurityInterceptor filterSecurityInterceptor = new FilterSecurityInterceptor();
79   - filterSecurityInterceptor
80   - .setAccessDecisionManager(customAccessDecisionManager);
81   - filterSecurityInterceptor
82   - .setSecurityMetadataSource(securityMetadataSourceService);
83   - filterSecurityInterceptor
84   - .setAuthenticationManager(authenticationManager());
85   - return filterSecurityInterceptor;
86   - }
87   -
88   - @Bean
89   - public LoginSuccessHandler loginSuccessHandler(){
90   - return new LoginSuccessHandler();
91   - }
92   -
93   - @Bean
94   - public SessionRegistry sessionRegistry() {
95   - SessionRegistry sessionRegistry = new SessionRegistryImpl();
96   - return sessionRegistry;
97   - }
98   -
99   - @Bean
100   - public static ServletListenerRegistrationBean<HttpSessionEventPublisher> httpSessionEventPublisher() {
101   - return new ServletListenerRegistrationBean<HttpSessionEventPublisher>(
102   - new HttpSessionEventPublisher());
103   - }
104   -}
  1 +package com.bsth.security;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.boot.context.embedded.ServletListenerRegistrationBean;
  5 +import org.springframework.context.annotation.Bean;
  6 +import org.springframework.context.annotation.Configuration;
  7 +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
  8 +import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  9 +import org.springframework.security.config.annotation.web.builders.WebSecurity;
  10 +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
  11 +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  12 +import org.springframework.security.core.session.SessionRegistry;
  13 +import org.springframework.security.core.session.SessionRegistryImpl;
  14 +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  15 +import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
  16 +import org.springframework.security.web.session.HttpSessionEventPublisher;
  17 +
  18 +import com.bsth.common.Constants;
  19 +import com.bsth.security.filter.LoginInterceptor;
  20 +
  21 +@Configuration
  22 +@EnableWebSecurity
  23 +public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
  24 +
  25 + @Autowired
  26 + UserDetailServiceImpl customUserDetailService;
  27 +
  28 + @Autowired
  29 + CustomAccessDecisionManager customAccessDecisionManager;
  30 +
  31 + @Autowired
  32 + SecurityMetadataSourceService securityMetadataSourceService;
  33 +
  34 + @Override
  35 + public void configure(WebSecurity web) throws Exception {
  36 + // 白名单
  37 + web.ignoring().antMatchers(Constants.ASSETS_URL, Constants.FAVICON_URL,
  38 + Constants.METRONIC_URL, Constants.LOGIN_PAGE,
  39 + Constants.LOGIN_FAILURE);
  40 + }
  41 +
  42 + @Override
  43 + protected void configure(AuthenticationManagerBuilder auth)
  44 + throws Exception {
  45 + auth.userDetailsService(customUserDetailService).passwordEncoder(
  46 + new BCryptPasswordEncoder(4));
  47 + }
  48 +
  49 + @Override
  50 + protected void configure(HttpSecurity http) throws Exception {
  51 + http.authorizeRequests().antMatchers("/").permitAll().anyRequest()
  52 + .authenticated().and()
  53 + .formLogin()
  54 + //指定登录页
  55 + .loginPage(Constants.LOGIN_PAGE)
  56 + .loginProcessingUrl(Constants.LOGIN).permitAll()
  57 + //登录失败跳转的链接
  58 + .failureUrl(Constants.LOGIN_PAGE + "?error=true")
  59 + //登录成功后处理
  60 + .successHandler(loginSuccessHandler())
  61 + //禁用CXRF
  62 + .and().csrf().disable()
  63 + //禁用匿名用户功能
  64 + .anonymous().disable();
  65 +
  66 + // 同时只保持一个回话
  67 + http.sessionManagement().maximumSessions(1)
  68 + .expiredUrl(Constants.LOGIN_PAGE + "?error=true")
  69 + .maxSessionsPreventsLogin(false)//让之前的登录过期
  70 + .sessionRegistry(sessionRegistry());
  71 +
  72 + http.addFilterBefore(new LoginInterceptor(), FilterSecurityInterceptor.class);
  73 + http.addFilter(filterSecurityInterceptor());
  74 + }
  75 +
  76 + private FilterSecurityInterceptor filterSecurityInterceptor()
  77 + throws Exception {
  78 + FilterSecurityInterceptor filterSecurityInterceptor = new FilterSecurityInterceptor();
  79 + filterSecurityInterceptor
  80 + .setAccessDecisionManager(customAccessDecisionManager);
  81 + filterSecurityInterceptor
  82 + .setSecurityMetadataSource(securityMetadataSourceService);
  83 + filterSecurityInterceptor
  84 + .setAuthenticationManager(authenticationManager());
  85 + return filterSecurityInterceptor;
  86 + }
  87 +
  88 + @Bean
  89 + public LoginSuccessHandler loginSuccessHandler(){
  90 + return new LoginSuccessHandler();
  91 + }
  92 +
  93 + @Bean
  94 + public SessionRegistry sessionRegistry() {
  95 + SessionRegistry sessionRegistry = new SessionRegistryImpl();
  96 + return sessionRegistry;
  97 + }
  98 +
  99 + @Bean
  100 + public static ServletListenerRegistrationBean<HttpSessionEventPublisher> httpSessionEventPublisher() {
  101 + return new ServletListenerRegistrationBean<HttpSessionEventPublisher>(
  102 + new HttpSessionEventPublisher());
  103 + }
  104 +}
... ...
src/main/java/com/bsth/security/filter/LoginInterceptor.java
1   -package com.bsth.security.filter;
2   -
3   -import java.io.IOException;
4   -import java.util.HashMap;
5   -import java.util.Map;
6   -
7   -import javax.servlet.Filter;
8   -import javax.servlet.FilterChain;
9   -import javax.servlet.FilterConfig;
10   -import javax.servlet.ServletException;
11   -import javax.servlet.ServletRequest;
12   -import javax.servlet.ServletResponse;
13   -import javax.servlet.http.HttpServletRequest;
14   -import javax.servlet.http.HttpServletResponse;
15   -
16   -import org.springframework.security.access.SecurityMetadataSource;
17   -import org.springframework.security.access.intercept.AbstractSecurityInterceptor;
18   -import org.springframework.security.core.Authentication;
19   -import org.springframework.security.core.context.SecurityContextHolder;
20   -
21   -import com.bsth.common.Constants;
22   -import com.bsth.common.ResponseCode;
23   -import com.bsth.util.RequestUtils;
24   -
25   -/**
26   - *
27   - * @ClassName: LoginInterceptor
28   - * @Description: TODO(登录校验)
29   - * @author PanZhao
30   - * @date 2016年3月24日 上午11:49:20
31   - *
32   - */
33   -public class LoginInterceptor extends AbstractSecurityInterceptor implements Filter{
34   -
35   - @Override
36   - public void destroy() {
37   -
38   - }
39   -
40   - @Override
41   - public void doFilter(ServletRequest arg0, ServletResponse arg1,
42   - FilterChain arg2) throws IOException, ServletException {
43   -
44   - Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
45   -
46   - if(null == authentication){
47   - //没有登录
48   - HttpServletRequest request = (HttpServletRequest)arg0;
49   - HttpServletResponse response = ((HttpServletResponse)arg1);
50   -
51   - if(RequestUtils.isAjaxRequest(request)){
52   - Map<String, Object> map = new HashMap<>();
53   - map.put("status",
54   - ResponseCode.NO_AUTHENTICATION);
55   - response.getWriter().print(map);
56   - }
57   - else
58   - response.sendRedirect(Constants.LOGIN_PAGE);
59   -
60   - return;
61   - }
62   -
63   - arg2.doFilter(arg0, arg1);
64   - }
65   -
66   - @Override
67   - public void init(FilterConfig arg0) throws ServletException {
68   -
69   - }
70   -
71   - @Override
72   - public Class<?> getSecureObjectClass() {
73   - // TODO Auto-generated method stub
74   - return null;
75   - }
76   -
77   - @Override
78   - public SecurityMetadataSource obtainSecurityMetadataSource() {
79   - // TODO Auto-generated method stub
80   - return null;
81   - }
82   -
83   -}
  1 +package com.bsth.security.filter;
  2 +
  3 +import java.io.IOException;
  4 +import java.util.HashMap;
  5 +import java.util.Map;
  6 +
  7 +import javax.servlet.Filter;
  8 +import javax.servlet.FilterChain;
  9 +import javax.servlet.FilterConfig;
  10 +import javax.servlet.ServletException;
  11 +import javax.servlet.ServletRequest;
  12 +import javax.servlet.ServletResponse;
  13 +import javax.servlet.http.HttpServletRequest;
  14 +import javax.servlet.http.HttpServletResponse;
  15 +
  16 +import org.springframework.security.access.SecurityMetadataSource;
  17 +import org.springframework.security.access.intercept.AbstractSecurityInterceptor;
  18 +import org.springframework.security.core.Authentication;
  19 +import org.springframework.security.core.context.SecurityContextHolder;
  20 +
  21 +import com.bsth.common.Constants;
  22 +import com.bsth.common.ResponseCode;
  23 +import com.bsth.util.RequestUtils;
  24 +
  25 +/**
  26 + *
  27 + * @ClassName: LoginInterceptor
  28 + * @Description: TODO(登录校验)
  29 + * @author PanZhao
  30 + * @date 2016年3月24日 上午11:49:20
  31 + *
  32 + */
  33 +public class LoginInterceptor extends AbstractSecurityInterceptor implements Filter{
  34 +
  35 + @Override
  36 + public void destroy() {
  37 +
  38 + }
  39 +
  40 + @Override
  41 + public void doFilter(ServletRequest arg0, ServletResponse arg1,
  42 + FilterChain arg2) throws IOException, ServletException {
  43 +
  44 + Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
  45 +
  46 + if(null == authentication){
  47 + //没有登录
  48 + HttpServletRequest request = (HttpServletRequest)arg0;
  49 + HttpServletResponse response = ((HttpServletResponse)arg1);
  50 +
  51 + if(RequestUtils.isAjaxRequest(request)){
  52 + Map<String, Object> map = new HashMap<>();
  53 + map.put("status",
  54 + ResponseCode.NO_AUTHENTICATION);
  55 + response.getWriter().print(map);
  56 + }
  57 + else
  58 + response.sendRedirect(Constants.LOGIN_PAGE);
  59 +
  60 + return;
  61 + }
  62 +
  63 + arg2.doFilter(arg0, arg1);
  64 + }
  65 +
  66 + @Override
  67 + public void init(FilterConfig arg0) throws ServletException {
  68 +
  69 + }
  70 +
  71 + @Override
  72 + public Class<?> getSecureObjectClass() {
  73 + // TODO Auto-generated method stub
  74 + return null;
  75 + }
  76 +
  77 + @Override
  78 + public SecurityMetadataSource obtainSecurityMetadataSource() {
  79 + // TODO Auto-generated method stub
  80 + return null;
  81 + }
  82 +
  83 +}
... ...
src/main/java/com/bsth/security/util/SecurityUtils.java
1   -package com.bsth.security.util;
2   -
3   -import org.slf4j.Logger;
4   -import org.slf4j.LoggerFactory;
5   -import org.springframework.security.core.context.SecurityContextHolder;
6   -
7   -import com.bsth.entity.sys.SysUser;
8   -
9   -/**
10   - *
11   - * @ClassName: SecurityUtils
12   - * @author PanZhao
13   - * @date 2016年3月30日 上午11:28:24
14   - *
15   - */
16   -public class SecurityUtils {
17   -
18   - static Logger logger = LoggerFactory.getLogger(SecurityUtils.class);
19   -
20   - /**
21   - *
22   - * @Title: getCurrentUser
23   - * @Description: TODO(获取当前用户)
24   - * @return SysUser 返回类型
25   - * @throws
26   - */
27   - public static SysUser getCurrentUser(){
28   - SysUser user = null;
29   - try{
30   - user = (SysUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
31   - }catch(Exception e){
32   - logger.error("", e);
33   - }
34   - return user;
35   - }
36   -}
  1 +package com.bsth.security.util;
  2 +
  3 +import org.slf4j.Logger;
  4 +import org.slf4j.LoggerFactory;
  5 +import org.springframework.security.core.context.SecurityContextHolder;
  6 +
  7 +import com.bsth.entity.sys.SysUser;
  8 +
  9 +/**
  10 + *
  11 + * @ClassName: SecurityUtils
  12 + * @author PanZhao
  13 + * @date 2016年3月30日 上午11:28:24
  14 + *
  15 + */
  16 +public class SecurityUtils {
  17 +
  18 + static Logger logger = LoggerFactory.getLogger(SecurityUtils.class);
  19 +
  20 + /**
  21 + *
  22 + * @Title: getCurrentUser
  23 + * @Description: TODO(获取当前用户)
  24 + * @return SysUser 返回类型
  25 + * @throws
  26 + */
  27 + public static SysUser getCurrentUser(){
  28 + SysUser user = null;
  29 + try{
  30 + user = (SysUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  31 + }catch(Exception e){
  32 + logger.error("", e);
  33 + }
  34 + return user;
  35 + }
  36 +}
... ...
src/main/java/com/bsth/service/BaseService.java
1   -package com.bsth.service;
2   -
3   -import java.io.Serializable;
4   -import java.util.Map;
5   -
6   -import org.springframework.data.domain.Page;
7   -import org.springframework.data.domain.Pageable;
8   -
9   -/**
10   - *
11   - * @ClassName: BaseService
12   - * @Description: TODO(基础的Service接口)
13   - * @author PanZhao
14   - * @date 2016年3月17日 下午12:48:43
15   - *
16   - * @param <T>
17   - * @param <ID>
18   - */
19   -public interface BaseService<T, ID extends Serializable> {
20   - /**
21   - * 根据主键获取单个对象
22   - * @param id
23   - * @return
24   - */
25   - T findById(ID id);
26   -
27   - /**
28   - * 保存
29   - * @param t
30   - * @return
31   - */
32   - Map<String, Object> save(T t);
33   -
34   - /**
35   - *
36   - * @Title: list
37   - * @Description: TODO(多条件分页查询)
38   - * @param @param map 查询条件
39   - * @param @param pageable 分页对象
40   - * @throws
41   - */
42   - Page<T> list(Map<String, Object> map, Pageable pageable);
43   -
44   - /**
45   - *
46   - * @Title: list
47   - * @Description: TODO(多条件查询)
48   - * @throws
49   - */
50   - Iterable<T> list(Map<String, Object> map);
51   -
52   - /**
53   - * 获取所有
54   - * @return
55   - */
56   - Iterable<T> findAll();
57   -
58   - /**
59   - *
60   - * @Title: deleteById
61   - * @Description: TODO(根据主键删除对象)
62   - * @param @param id
63   - * @throws
64   - */
65   - Map<String, Object> delete(ID id);
66   -}
  1 +package com.bsth.service;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Map;
  5 +
  6 +import org.springframework.data.domain.Page;
  7 +import org.springframework.data.domain.Pageable;
  8 +
  9 +/**
  10 + *
  11 + * @ClassName: BaseService
  12 + * @Description: TODO(基础的Service接口)
  13 + * @author PanZhao
  14 + * @date 2016年3月17日 下午12:48:43
  15 + *
  16 + * @param <T>
  17 + * @param <ID>
  18 + */
  19 +public interface BaseService<T, ID extends Serializable> {
  20 + /**
  21 + * 根据主键获取单个对象
  22 + * @param id
  23 + * @return
  24 + */
  25 + T findById(ID id);
  26 +
  27 + /**
  28 + * 保存
  29 + * @param t
  30 + * @return
  31 + */
  32 + Map<String, Object> save(T t);
  33 +
  34 + /**
  35 + *
  36 + * @Title: list
  37 + * @Description: TODO(多条件分页查询)
  38 + * @param @param map 查询条件
  39 + * @param @param pageable 分页对象
  40 + * @throws
  41 + */
  42 + Page<T> list(Map<String, Object> map, Pageable pageable);
  43 +
  44 + /**
  45 + *
  46 + * @Title: list
  47 + * @Description: TODO(多条件查询)
  48 + * @throws
  49 + */
  50 + Iterable<T> list(Map<String, Object> map);
  51 +
  52 + /**
  53 + * 获取所有
  54 + * @return
  55 + */
  56 + Iterable<T> findAll();
  57 +
  58 + /**
  59 + *
  60 + * @Title: deleteById
  61 + * @Description: TODO(根据主键删除对象)
  62 + * @param @param id
  63 + * @throws
  64 + */
  65 + Map<String, Object> delete(ID id);
  66 +}
... ...
src/main/java/com/bsth/service/DictionaryService.java
1   -package com.bsth.service;
2   -
3   -import com.bsth.entity.sys.Dictionary;
4   -
5   -public interface DictionaryService extends BaseService<Dictionary, Integer>{
6   -
7   -}
  1 +package com.bsth.service;
  2 +
  3 +import com.bsth.entity.sys.Dictionary;
  4 +
  5 +public interface DictionaryService extends BaseService<Dictionary, Integer>{
  6 +
  7 +}
... ...
src/main/java/com/bsth/service/ModuleService.java
1   -package com.bsth.service;
2   -
3   -import java.util.List;
4   -
5   -import com.bsth.entity.sys.Module;
6   -
7   -public interface ModuleService extends BaseService<Module, Integer>{
8   -
9   - public List<Module> findByGroupType(String group);
10   -
11   - public List<Module> findByCurrentUser();
12   -
13   -}
  1 +package com.bsth.service;
  2 +
  3 +import java.util.List;
  4 +
  5 +import com.bsth.entity.sys.Module;
  6 +
  7 +public interface ModuleService extends BaseService<Module, Integer>{
  8 +
  9 + public List<Module> findByGroupType(String group);
  10 +
  11 + public List<Module> findByCurrentUser();
  12 +
  13 +}
... ...
src/main/java/com/bsth/service/ResourceService.java
1   -package com.bsth.service;
2   -
3   -import java.util.List;
4   -import java.util.Map;
5   -
6   -import com.bsth.entity.sys.Resource;
7   -
8   -public interface ResourceService extends BaseService<Resource, Integer> {
9   -
10   - Map<String, Object> saveList(List<Resource> parseArray);
11   -
12   - List<Resource> findByRolesId(Integer id);
13   -
14   -}
  1 +package com.bsth.service;
  2 +
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +import com.bsth.entity.sys.Resource;
  7 +
  8 +public interface ResourceService extends BaseService<Resource, Integer> {
  9 +
  10 + Map<String, Object> saveList(List<Resource> parseArray);
  11 +
  12 + List<Resource> findByRolesId(Integer id);
  13 +
  14 +}
... ...
src/main/java/com/bsth/service/RoleService.java
1   -package com.bsth.service;
2   -
3   -import java.util.Map;
4   -
5   -import com.bsth.entity.sys.Role;
6   -
7   -public interface RoleService extends BaseService<Role, Integer>{
8   -
9   - Map<String, Object> settRoleModules(Integer roleId, String mIds);
10   -
11   -}
  1 +package com.bsth.service;
  2 +
  3 +import java.util.Map;
  4 +
  5 +import com.bsth.entity.sys.Role;
  6 +
  7 +public interface RoleService extends BaseService<Role, Integer>{
  8 +
  9 + Map<String, Object> settRoleModules(Integer roleId, String mIds);
  10 +
  11 +}
... ...
src/main/java/com/bsth/service/StationService.java
1 1 package com.bsth.service;
2 2  
  3 +import java.util.Map;
  4 +
3 5 import com.bsth.entity.Station;
4 6  
5 7 /**
... ... @@ -18,5 +20,7 @@ import com.bsth.entity.Station;
18 20 *
19 21 */
20 22 public interface StationService extends BaseService<Station, Integer> {
21   -
  23 +
  24 + Map<String, Object> systemSaveStations(Map<String, Object> map);
  25 +
22 26 }
... ...
src/main/java/com/bsth/service/SysUserService.java
1   -package com.bsth.service;
2   -
3   -import com.bsth.entity.sys.SysUser;
4   -
5   -public interface SysUserService extends BaseService<SysUser, Integer>{
6   -
7   - SysUser findByUserName(String name);
8   -}
  1 +package com.bsth.service;
  2 +
  3 +import com.bsth.entity.sys.SysUser;
  4 +
  5 +public interface SysUserService extends BaseService<SysUser, Integer>{
  6 +
  7 + SysUser findByUserName(String name);
  8 +}
... ...
src/main/java/com/bsth/service/impl/BaseServiceImpl.java
1   -package com.bsth.service.impl;
2   -
3   -import java.io.Serializable;
4   -import java.util.HashMap;
5   -import java.util.Map;
6   -
7   -import org.slf4j.Logger;
8   -import org.slf4j.LoggerFactory;
9   -import org.springframework.beans.factory.annotation.Autowired;
10   -import org.springframework.dao.DataIntegrityViolationException;
11   -import org.springframework.data.domain.Page;
12   -import org.springframework.data.domain.Pageable;
13   -
14   -import com.bsth.common.ResponseCode;
15   -import com.bsth.entity.search.CustomerSpecs;
16   -import com.bsth.repository.BaseRepository;
17   -import com.bsth.service.BaseService;
18   -
19   -public class BaseServiceImpl<T, ID extends Serializable> implements BaseService<T, ID>{
20   -
21   - @Autowired
22   - private BaseRepository<T, ID> baseRepository;
23   -
24   - Logger logger = LoggerFactory.getLogger(this.getClass());
25   -
26   - @Override
27   - public Page<T> list(Map<String, Object> map, Pageable pageable) {
28   - return this.baseRepository.findAll(new CustomerSpecs<T>(map), pageable);
29   - }
30   -
31   - @Override
32   - public Iterable<T> list(Map<String, Object> map) {
33   - return this.baseRepository.findAll(new CustomerSpecs<T>(map));
34   - }
35   -
36   - @Override
37   - public T findById(ID id) {
38   - return baseRepository.findOne(id);
39   - }
40   -
41   - @Override
42   - public Map<String, Object> save(T t) {
43   - Map<String, Object> map = new HashMap<>();
44   - try{
45   - baseRepository.save(t);
46   - map.put("status", ResponseCode.SUCCESS);
47   - map.put("t", t);
48   - }catch(Exception e){
49   - map.put("status", ResponseCode.ERROR);
50   - logger.error("save erro.", e);
51   - }
52   - return map;
53   - }
54   -
55   -
56   - @Override
57   - public Iterable<T> findAll() {
58   - return baseRepository.findAll();
59   - }
60   -
61   - @Override
62   - public Map<String, Object> delete(ID id) {
63   - Map<String, Object> map = new HashMap<>();
64   - try{
65   - baseRepository.delete(id);
66   - map.put("status", ResponseCode.SUCCESS);
67   - }catch(DataIntegrityViolationException de){
68   - map.put("status", ResponseCode.ERROR);
69   - map.put("msg", "“完整性约束”校验失败,请检查要删除的对象是否存在外键约束");
70   - }
71   - return map;
72   - }
73   -}
  1 +package com.bsth.service.impl;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.HashMap;
  5 +import java.util.Map;
  6 +
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.dao.DataIntegrityViolationException;
  11 +import org.springframework.data.domain.Page;
  12 +import org.springframework.data.domain.Pageable;
  13 +
  14 +import com.bsth.common.ResponseCode;
  15 +import com.bsth.entity.search.CustomerSpecs;
  16 +import com.bsth.repository.BaseRepository;
  17 +import com.bsth.service.BaseService;
  18 +
  19 +public class BaseServiceImpl<T, ID extends Serializable> implements BaseService<T, ID>{
  20 +
  21 + @Autowired
  22 + private BaseRepository<T, ID> baseRepository;
  23 +
  24 + Logger logger = LoggerFactory.getLogger(this.getClass());
  25 +
  26 + @Override
  27 + public Page<T> list(Map<String, Object> map, Pageable pageable) {
  28 + return this.baseRepository.findAll(new CustomerSpecs<T>(map), pageable);
  29 + }
  30 +
  31 + @Override
  32 + public Iterable<T> list(Map<String, Object> map) {
  33 + return this.baseRepository.findAll(new CustomerSpecs<T>(map));
  34 + }
  35 +
  36 + @Override
  37 + public T findById(ID id) {
  38 + return baseRepository.findOne(id);
  39 + }
  40 +
  41 + @Override
  42 + public Map<String, Object> save(T t) {
  43 + Map<String, Object> map = new HashMap<>();
  44 + try{
  45 + baseRepository.save(t);
  46 + map.put("status", ResponseCode.SUCCESS);
  47 + map.put("t", t);
  48 + }catch(Exception e){
  49 + map.put("status", ResponseCode.ERROR);
  50 + logger.error("save erro.", e);
  51 + }
  52 + return map;
  53 + }
  54 +
  55 +
  56 + @Override
  57 + public Iterable<T> findAll() {
  58 + return baseRepository.findAll();
  59 + }
  60 +
  61 + @Override
  62 + public Map<String, Object> delete(ID id) {
  63 + Map<String, Object> map = new HashMap<>();
  64 + try{
  65 + baseRepository.delete(id);
  66 + map.put("status", ResponseCode.SUCCESS);
  67 + }catch(DataIntegrityViolationException de){
  68 + map.put("status", ResponseCode.ERROR);
  69 + map.put("msg", "“完整性约束”校验失败,请检查要删除的对象是否存在外键约束");
  70 + }
  71 + return map;
  72 + }
  73 +}
... ...
src/main/java/com/bsth/service/impl/DictionaryServiceImpl.java
1   -package com.bsth.service.impl;
2   -
3   -import org.springframework.stereotype.Service;
4   -
5   -import com.bsth.entity.sys.Dictionary;
6   -import com.bsth.service.DictionaryService;
7   -
8   -@Service
9   -public class DictionaryServiceImpl extends BaseServiceImpl<Dictionary, Integer> implements DictionaryService{
10   -
11   -}
  1 +package com.bsth.service.impl;
  2 +
  3 +import org.springframework.stereotype.Service;
  4 +
  5 +import com.bsth.entity.sys.Dictionary;
  6 +import com.bsth.service.DictionaryService;
  7 +
  8 +@Service
  9 +public class DictionaryServiceImpl extends BaseServiceImpl<Dictionary, Integer> implements DictionaryService{
  10 +
  11 +}
... ...
src/main/java/com/bsth/service/impl/ModuleServiceImpl.java
1   -package com.bsth.service.impl;
2   -
3   -import java.util.ArrayList;
4   -import java.util.HashMap;
5   -import java.util.HashSet;
6   -import java.util.List;
7   -import java.util.Map;
8   -import java.util.Set;
9   -
10   -import org.springframework.beans.factory.annotation.Autowired;
11   -import org.springframework.stereotype.Service;
12   -
13   -import com.bsth.common.ResponseCode;
14   -import com.bsth.entity.sys.Module;
15   -import com.bsth.entity.sys.Role;
16   -import com.bsth.entity.sys.SysUser;
17   -import com.bsth.repository.ModuleRepository;
18   -import com.bsth.security.util.SecurityUtils;
19   -import com.bsth.service.ModuleService;
20   -
21   -@Service
22   -public class ModuleServiceImpl extends BaseServiceImpl<Module, Integer> implements ModuleService{
23   -
24   - @Autowired
25   - ModuleRepository moduleRepository;
26   -
27   - @Override
28   - public List<Module> findByGroupType(String group) {
29   - String[] array;
30   - if(group.indexOf(",") != -1){
31   - array = group.split(",");
32   - }
33   - else
34   - array = new String[]{group};
35   - return moduleRepository.findByGroupType(array);
36   - }
37   -
38   - @Override
39   - public Map<String, Object> delete(Integer id) {
40   -
41   - Map<String, Object> map = new HashMap<>();
42   -
43   - //判断删除的节点是否有子节点
44   - List<Module> list = moduleRepository.findByPId(id);
45   -
46   - if(null != list && list.size() > 0){
47   - map.put("status", ResponseCode.ERROR);
48   - map.put("msg", "失败,要删除的项还存在子节点");
49   - }
50   - else{
51   - map = super.delete(id);
52   - }
53   - return map;
54   - }
55   -
56   - @Override
57   - public List<Module> findByCurrentUser() {
58   -
59   - SysUser user = SecurityUtils.getCurrentUser();
60   - Set<Role> roles = user.getRoles();
61   -
62   - List<Module> all = (List<Module>) moduleRepository.findAll()
63   - ,results = new ArrayList<>();
64   -
65   - Map<Integer, Module> map = new HashMap<>();
66   - for(Module m : all){
67   - map.put(m.getId(), m);
68   - for(Role r : roles){
69   - if(m.getRoles().contains(r))
70   - results.add(m);
71   - }
72   - }
73   -
74   - //上层目录和组节点
75   - Set<Module> pSet = new HashSet<>();
76   - for(Module m : results){
77   - searchParentNode(m, map, pSet);
78   - }
79   - results.addAll(pSet);
80   - return results;
81   - }
82   -
83   - /**
84   - *
85   - * @Title: searchParentNode
86   - * @Description: TODO(搜索上层节点)
87   - * @param @param m 当前节点
88   - * @param @param idMap 全量的ID和节点对照
89   - * @param @param pSet 上层节点容器
90   - * @throws
91   - */
92   - public void searchParentNode(Module m, Map<Integer, Module> idMap, Set<Module> pSet){
93   - int pId = m.getpId();
94   - if(pId > 0){
95   - Module pModule = idMap.get(pId);
96   - pSet.add(pModule);
97   -
98   - if(null != pModule &&
99   - null != pModule.getpId()
100   - && pModule.getpId() > 0)
101   - searchParentNode(pModule, idMap, pSet);
102   - }
103   - }
104   -}
  1 +package com.bsth.service.impl;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.HashMap;
  5 +import java.util.HashSet;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +import java.util.Set;
  9 +
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.stereotype.Service;
  12 +
  13 +import com.bsth.common.ResponseCode;
  14 +import com.bsth.entity.sys.Module;
  15 +import com.bsth.entity.sys.Role;
  16 +import com.bsth.entity.sys.SysUser;
  17 +import com.bsth.repository.ModuleRepository;
  18 +import com.bsth.security.util.SecurityUtils;
  19 +import com.bsth.service.ModuleService;
  20 +
  21 +@Service
  22 +public class ModuleServiceImpl extends BaseServiceImpl<Module, Integer> implements ModuleService{
  23 +
  24 + @Autowired
  25 + ModuleRepository moduleRepository;
  26 +
  27 + @Override
  28 + public List<Module> findByGroupType(String group) {
  29 + String[] array;
  30 + if(group.indexOf(",") != -1){
  31 + array = group.split(",");
  32 + }
  33 + else
  34 + array = new String[]{group};
  35 + return moduleRepository.findByGroupType(array);
  36 + }
  37 +
  38 + @Override
  39 + public Map<String, Object> delete(Integer id) {
  40 +
  41 + Map<String, Object> map = new HashMap<>();
  42 +
  43 + //判断删除的节点是否有子节点
  44 + List<Module> list = moduleRepository.findByPId(id);
  45 +
  46 + if(null != list && list.size() > 0){
  47 + map.put("status", ResponseCode.ERROR);
  48 + map.put("msg", "失败,要删除的项还存在子节点");
  49 + }
  50 + else{
  51 + map = super.delete(id);
  52 + }
  53 + return map;
  54 + }
  55 +
  56 + @Override
  57 + public List<Module> findByCurrentUser() {
  58 +
  59 + SysUser user = SecurityUtils.getCurrentUser();
  60 + Set<Role> roles = user.getRoles();
  61 +
  62 + List<Module> all = (List<Module>) moduleRepository.findAll()
  63 + ,results = new ArrayList<>();
  64 +
  65 + Map<Integer, Module> map = new HashMap<>();
  66 + for(Module m : all){
  67 + map.put(m.getId(), m);
  68 + for(Role r : roles){
  69 + if(m.getRoles().contains(r))
  70 + results.add(m);
  71 + }
  72 + }
  73 +
  74 + //上层目录和组节点
  75 + Set<Module> pSet = new HashSet<>();
  76 + for(Module m : results){
  77 + searchParentNode(m, map, pSet);
  78 + }
  79 + results.addAll(pSet);
  80 + return results;
  81 + }
  82 +
  83 + /**
  84 + *
  85 + * @Title: searchParentNode
  86 + * @Description: TODO(搜索上层节点)
  87 + * @param @param m 当前节点
  88 + * @param @param idMap 全量的ID和节点对照
  89 + * @param @param pSet 上层节点容器
  90 + * @throws
  91 + */
  92 + public void searchParentNode(Module m, Map<Integer, Module> idMap, Set<Module> pSet){
  93 + int pId = m.getpId();
  94 + if(pId > 0){
  95 + Module pModule = idMap.get(pId);
  96 + pSet.add(pModule);
  97 +
  98 + if(null != pModule &&
  99 + null != pModule.getpId()
  100 + && pModule.getpId() > 0)
  101 + searchParentNode(pModule, idMap, pSet);
  102 + }
  103 + }
  104 +}
... ...
src/main/java/com/bsth/service/impl/ResourceServiceImpl.java
1   -package com.bsth.service.impl;
2   -
3   -import java.util.HashMap;
4   -import java.util.List;
5   -import java.util.Map;
6   -
7   -import org.springframework.beans.factory.annotation.Autowired;
8   -import org.springframework.stereotype.Service;
9   -
10   -import com.bsth.common.ResponseCode;
11   -import com.bsth.entity.sys.Resource;
12   -import com.bsth.repository.ResourceRepository;
13   -import com.bsth.service.ResourceService;
14   -
15   -@Service
16   -public class ResourceServiceImpl extends BaseServiceImpl<Resource, Integer> implements ResourceService{
17   -
18   - @Autowired
19   - ResourceRepository resourceRepository;
20   -
21   - @Override
22   - public Map<String, Object> saveList(List<Resource> array) {
23   - Map<String, Object> map = new HashMap<>();
24   - try{
25   - resourceRepository.save(array);
26   - map.put("status", ResponseCode.SUCCESS);
27   - }catch(Exception e){
28   - map.put("status", ResponseCode.ERROR);
29   - logger.error("", e);
30   - }
31   - return map;
32   - }
33   -
34   - @Override
35   - public List<Resource> findByRolesId(Integer id) {
36   - return resourceRepository.findByRolesId(id);
37   - }
38   -}
  1 +package com.bsth.service.impl;
  2 +
  3 +import java.util.HashMap;
  4 +import java.util.List;
  5 +import java.util.Map;
  6 +
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.stereotype.Service;
  9 +
  10 +import com.bsth.common.ResponseCode;
  11 +import com.bsth.entity.sys.Resource;
  12 +import com.bsth.repository.ResourceRepository;
  13 +import com.bsth.service.ResourceService;
  14 +
  15 +@Service
  16 +public class ResourceServiceImpl extends BaseServiceImpl<Resource, Integer> implements ResourceService{
  17 +
  18 + @Autowired
  19 + ResourceRepository resourceRepository;
  20 +
  21 + @Override
  22 + public Map<String, Object> saveList(List<Resource> array) {
  23 + Map<String, Object> map = new HashMap<>();
  24 + try{
  25 + resourceRepository.save(array);
  26 + map.put("status", ResponseCode.SUCCESS);
  27 + }catch(Exception e){
  28 + map.put("status", ResponseCode.ERROR);
  29 + logger.error("", e);
  30 + }
  31 + return map;
  32 + }
  33 +
  34 + @Override
  35 + public List<Resource> findByRolesId(Integer id) {
  36 + return resourceRepository.findByRolesId(id);
  37 + }
  38 +}
... ...
src/main/java/com/bsth/service/impl/RoleServiceImpl.java
1   -package com.bsth.service.impl;
2   -
3   -import java.util.ArrayList;
4   -import java.util.HashMap;
5   -import java.util.List;
6   -import java.util.Map;
7   -import java.util.Set;
8   -
9   -import org.slf4j.Logger;
10   -import org.slf4j.LoggerFactory;
11   -import org.springframework.beans.factory.annotation.Autowired;
12   -import org.springframework.stereotype.Service;
13   -
14   -import com.bsth.common.ResponseCode;
15   -import com.bsth.entity.sys.Module;
16   -import com.bsth.entity.sys.Role;
17   -import com.bsth.repository.ModuleRepository;
18   -import com.bsth.repository.RoleRepository;
19   -import com.bsth.service.RoleService;
20   -
21   -@Service
22   -public class RoleServiceImpl extends BaseServiceImpl<Role, Integer> implements
23   - RoleService {
24   -
25   - Logger logger = LoggerFactory.getLogger(this.getClass());
26   -
27   - @Autowired
28   - RoleRepository roleRepository;
29   -
30   - @Autowired
31   - ModuleRepository moduleRepository;
32   -
33   - @Override
34   - public Map<String, Object> save(Role t) {
35   - if (t.getId() != null) {
36   - // 更新
37   - Map<String, Object> map = new HashMap<>();
38   - try {
39   - roleRepository.update(t.getCodeName(), t.getRoleName(),
40   - t.isEnable(), t.getDescriptions(), t.getId());
41   - map.put("status", ResponseCode.SUCCESS);
42   - } catch (Exception e) {
43   - map.put("status", ResponseCode.ERROR);
44   - }
45   - return map;
46   - }
47   - return super.save(t);
48   - }
49   -
50   - @Override
51   - public Map<String, Object> settRoleModules(Integer roleId, String mIds) {
52   -
53   - Map<String, Object> map = new HashMap<>();
54   - try {
55   - Role role = roleRepository.findOne(roleId);
56   -
57   - List<Integer> idList = new ArrayList<>();
58   - String[] array = mIds.split(",");
59   - for (String id : array) {
60   - if (null == id || id.trim().equals(""))
61   - continue;
62   - idList.add(Integer.parseInt(id));
63   - }
64   -
65   - Set<Module> mList = moduleRepository.findByIds(idList);
66   - role.setModules(mList);
67   - roleRepository.save(role);
68   - map.put("status", ResponseCode.SUCCESS);
69   - } catch (Exception e) {
70   - logger.error("", e);
71   - map.put("status", ResponseCode.ERROR);
72   - }
73   - return map;
74   - }
75   -}
  1 +package com.bsth.service.impl;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.HashMap;
  5 +import java.util.List;
  6 +import java.util.Map;
  7 +import java.util.Set;
  8 +
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.stereotype.Service;
  13 +
  14 +import com.bsth.common.ResponseCode;
  15 +import com.bsth.entity.sys.Module;
  16 +import com.bsth.entity.sys.Role;
  17 +import com.bsth.repository.ModuleRepository;
  18 +import com.bsth.repository.RoleRepository;
  19 +import com.bsth.service.RoleService;
  20 +
  21 +@Service
  22 +public class RoleServiceImpl extends BaseServiceImpl<Role, Integer> implements
  23 + RoleService {
  24 +
  25 + Logger logger = LoggerFactory.getLogger(this.getClass());
  26 +
  27 + @Autowired
  28 + RoleRepository roleRepository;
  29 +
  30 + @Autowired
  31 + ModuleRepository moduleRepository;
  32 +
  33 + @Override
  34 + public Map<String, Object> save(Role t) {
  35 + if (t.getId() != null) {
  36 + // 更新
  37 + Map<String, Object> map = new HashMap<>();
  38 + try {
  39 + roleRepository.update(t.getCodeName(), t.getRoleName(),
  40 + t.isEnable(), t.getDescriptions(), t.getId());
  41 + map.put("status", ResponseCode.SUCCESS);
  42 + } catch (Exception e) {
  43 + map.put("status", ResponseCode.ERROR);
  44 + }
  45 + return map;
  46 + }
  47 + return super.save(t);
  48 + }
  49 +
  50 + @Override
  51 + public Map<String, Object> settRoleModules(Integer roleId, String mIds) {
  52 +
  53 + Map<String, Object> map = new HashMap<>();
  54 + try {
  55 + Role role = roleRepository.findOne(roleId);
  56 +
  57 + List<Integer> idList = new ArrayList<>();
  58 + String[] array = mIds.split(",");
  59 + for (String id : array) {
  60 + if (null == id || id.trim().equals(""))
  61 + continue;
  62 + idList.add(Integer.parseInt(id));
  63 + }
  64 +
  65 + Set<Module> mList = moduleRepository.findByIds(idList);
  66 + role.setModules(mList);
  67 + roleRepository.save(role);
  68 + map.put("status", ResponseCode.SUCCESS);
  69 + } catch (Exception e) {
  70 + logger.error("", e);
  71 + map.put("status", ResponseCode.ERROR);
  72 + }
  73 + return map;
  74 + }
  75 +}
... ...
src/main/java/com/bsth/service/impl/StationServiceImpl.java
1 1 package com.bsth.service.impl;
2 2  
  3 +import java.util.HashMap;
  4 +import java.util.Map;
  5 +
3 6 import org.springframework.stereotype.Service;
4 7  
5 8 import com.bsth.entity.Station;
... ... @@ -24,4 +27,12 @@ import com.bsth.service.StationService;
24 27 @Service
25 28 public class StationServiceImpl extends BaseServiceImpl<Station, Integer> implements StationService{
26 29  
  30 + @Override
  31 + public Map<String, Object> systemSaveStations(Map<String, Object> map) {
  32 +
  33 + Map<String, Object> resultMap = new HashMap<String,Object>();
  34 +
  35 + return null;
  36 + }
  37 +
27 38 }
... ...
src/main/java/com/bsth/service/impl/SysUserServiceImpl.java
1   -package com.bsth.service.impl;
2   -
3   -import org.springframework.beans.factory.annotation.Autowired;
4   -import org.springframework.stereotype.Service;
5   -
6   -import com.bsth.entity.sys.SysUser;
7   -import com.bsth.repository.SysUserRepository;
8   -import com.bsth.service.SysUserService;
9   -
10   -@Service
11   -public class SysUserServiceImpl extends BaseServiceImpl<SysUser, Integer> implements SysUserService{
12   -
13   - @Autowired
14   - SysUserRepository sysUserRepository;
15   -
16   - @Override
17   - public SysUser findByUserName(String name) {
18   - return sysUserRepository.findByUserName(name);
19   - }
20   -}
  1 +package com.bsth.service.impl;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +import com.bsth.entity.sys.SysUser;
  7 +import com.bsth.repository.SysUserRepository;
  8 +import com.bsth.service.SysUserService;
  9 +
  10 +@Service
  11 +public class SysUserServiceImpl extends BaseServiceImpl<SysUser, Integer> implements SysUserService{
  12 +
  13 + @Autowired
  14 + SysUserRepository sysUserRepository;
  15 +
  16 + @Override
  17 + public SysUser findByUserName(String name) {
  18 + return sysUserRepository.findByUserName(name);
  19 + }
  20 +}
... ...