From 5cb77ad77796224358b93607a8e5f9e697ed58c6 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 11 Sep 2020 09:57:51 +0800
Subject: [PATCH] BS登陆接口测试

---
 src/main/resources/system/sysConfig.properties             |    2 
 src/main/java/com/moral/controller/WebController.java      |   91 ++++++++++++++++++
 src/main/java/com/moral/Webinterceptor/WebInterceptor.java |   39 +++++++
 src/main/java/com/moral/ScreenApiApplication.java          |   24 +++-
 pom.xml                                                    |    2 
 src/main/java/com/moral/config/WebLoginConfig.java         |  110 ++++++++++++++++++++++
 6 files changed, 259 insertions(+), 9 deletions(-)

diff --git a/pom.xml b/pom.xml
index 6ec9b1f..ab5834a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,7 @@
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-tomcat</artifactId>
-			<scope>provided</scope>
+			<scope>compile</scope>
 		</dependency>
 
 		<dependency>
diff --git a/src/main/java/com/moral/ScreenApiApplication.java b/src/main/java/com/moral/ScreenApiApplication.java
index 1c276ba..2a7e881 100644
--- a/src/main/java/com/moral/ScreenApiApplication.java
+++ b/src/main/java/com/moral/ScreenApiApplication.java
@@ -3,19 +3,29 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
 import org.springframework.boot.web.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.Bean;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @SpringBootApplication
 @EnableTransactionManagement
 public class ScreenApiApplication extends SpringBootServletInitializer {
 
-	@Override
-	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
-		return application.sources(ScreenApiApplication.class);
-	}
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+        return application.sources(ScreenApiApplication.class);
+    }
 
-	public static void main(String[] args) {
-		SpringApplication.run(ScreenApiApplication.class, args);
-	}
+    //Session������������
+    @Bean
+    public EmbeddedServletContainerCustomizer containerCustomizer() {
+        return container -> {
+            container.setSessionTimeout(28800);/*���������S*/
+        };
+    }
+
+    public static void main(String[] args) {
+        SpringApplication.run(ScreenApiApplication.class, args);
+    }
 }
diff --git a/src/main/java/com/moral/Webinterceptor/WebInterceptor.java b/src/main/java/com/moral/Webinterceptor/WebInterceptor.java
new file mode 100644
index 0000000..931913a
--- /dev/null
+++ b/src/main/java/com/moral/Webinterceptor/WebInterceptor.java
@@ -0,0 +1,39 @@
+package com.moral.Webinterceptor;
+
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.util.HashMap;
+
+public class WebInterceptor implements HandlerInterceptor {
+    public static final String SESSION_KEY = "USER_LOGIN";
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
+        if (request.getSession().getAttribute(SESSION_KEY) == null) {
+            HashMap resultMap = new HashMap<String, Object>();
+            resultMap.put("msg", "���������");
+            resultMap.put("accountId", -1);
+            JSONObject json = new JSONObject(resultMap);
+            response.setContentType("application/json; charset=utf-8");
+            PrintWriter writer = response.getWriter();
+            writer.write(json.toString());
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
+
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
+
+    }
+}
diff --git a/src/main/java/com/moral/config/WebLoginConfig.java b/src/main/java/com/moral/config/WebLoginConfig.java
new file mode 100644
index 0000000..35960c8
--- /dev/null
+++ b/src/main/java/com/moral/config/WebLoginConfig.java
@@ -0,0 +1,110 @@
+package com.moral.config;
+
+import com.moral.Webinterceptor.WebInterceptor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.format.FormatterRegistry;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.validation.MessageCodesResolver;
+import org.springframework.validation.Validator;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.config.annotation.*;
+
+import java.util.List;
+
+@Configuration
+public class WebLoginConfig implements WebMvcConfigurer {
+
+    @Override
+    public void addInterceptors(InterceptorRegistry interceptorRegistry) {
+        InterceptorRegistration registration = interceptorRegistry.addInterceptor(new WebInterceptor());
+        registration.addPathPatterns("/web/**");
+        registration.excludePathPatterns("/web/login");
+    }
+
+    @Override
+    public void configurePathMatch(PathMatchConfigurer pathMatchConfigurer) {
+
+    }
+
+    @Override
+    public void configureContentNegotiation(ContentNegotiationConfigurer contentNegotiationConfigurer) {
+
+    }
+
+    @Override
+    public void configureAsyncSupport(AsyncSupportConfigurer asyncSupportConfigurer) {
+
+    }
+
+    @Override
+    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer defaultServletHandlerConfigurer) {
+
+    }
+
+    @Override
+    public void addFormatters(FormatterRegistry formatterRegistry) {
+
+    }
+
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry resourceHandlerRegistry) {
+
+    }
+
+    @Override
+    public void addCorsMappings(CorsRegistry corsRegistry) {
+
+    }
+
+    @Override
+    public void addViewControllers(ViewControllerRegistry viewControllerRegistry) {
+
+    }
+
+    @Override
+    public void configureViewResolvers(ViewResolverRegistry viewResolverRegistry) {
+
+    }
+
+    @Override
+    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> list) {
+
+    }
+
+    @Override
+    public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> list) {
+
+    }
+
+    @Override
+    public void configureMessageConverters(List<HttpMessageConverter<?>> list) {
+
+    }
+
+    @Override
+    public void extendMessageConverters(List<HttpMessageConverter<?>> list) {
+
+    }
+
+    @Override
+    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> list) {
+
+    }
+
+    @Override
+    public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> list) {
+
+    }
+
+    @Override
+    public Validator getValidator() {
+        return null;
+    }
+
+    @Override
+    public MessageCodesResolver getMessageCodesResolver() {
+        return null;
+    }
+}
diff --git a/src/main/java/com/moral/controller/WebController.java b/src/main/java/com/moral/controller/WebController.java
new file mode 100644
index 0000000..fcec4ca
--- /dev/null
+++ b/src/main/java/com/moral/controller/WebController.java
@@ -0,0 +1,91 @@
+package com.moral.controller;
+
+import com.moral.Webinterceptor.WebInterceptor;
+import com.moral.common.util.BeanUtils;
+import com.moral.entity.AreaNames;
+import com.moral.entity.Organization;
+import com.moral.service.AccountService;
+import com.moral.service.DictionaryDataService;
+import com.moral.service.OrganizationService;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static com.moral.common.util.WebUtils.getParametersStartingWith;
+
+@RestController
+@RequestMapping("/web")
+@CrossOrigin(origins = "*", maxAge = 3600)
+@SuppressWarnings({"rawtypes", "unchecked", "unused"})
+public class WebController {
+    @Resource
+    AccountService accountService;
+    @Resource
+    DictionaryDataService dictionaryDataService;
+    OrganizationService organizationService;
+
+    @RequestMapping("login")
+    public Map<String, Object> login(HttpServletRequest request){
+        Map<String, Object> resultMap = new HashMap<String, Object>();
+        Map<String, Object> parameters = getParametersStartingWith(request, null);
+        if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
+            resultMap.put("msg", "������������������������������������");
+            resultMap.put("accountId", -1);
+        } else {
+            resultMap = accountService.screenLoginNew(parameters);
+            // ������������������������������������������
+            Object orgId = resultMap.get("orgId");
+            if (resultMap.get("orgId") != null && resultMap.get("orgId") instanceof Integer) {
+                StringBuilder areaNamesBuilder = new StringBuilder("������");
+                if (!((Integer) orgId).equals(dictionaryDataService.querySupperOrgId())) {
+                    Organization organization = organizationService.getOrganizationById((Integer) orgId);
+                    if (organization.getAreaNames() != null) {
+                        Map<String, String> areaNameMap = BeanUtils.beanToMap(organization.getAreaNames());
+                        List<String> names = areaNameMap.entrySet().stream().filter(item -> {
+                            return item.getValue() != null;
+                        }).map(item -> {
+                            return item.getValue();
+                        }).collect(Collectors.toList());
+                        AreaNames areaNames = organization.getAreaNames();
+                        areaNamesBuilder.append("/");
+                        areaNamesBuilder.append(String.join("/", names));
+                    }
+                    // ������������
+                    if (organization.getRank() != null && organization.getRank() == 0) {
+                        resultMap.put("type", "enterprise");
+                    } else {
+                        resultMap.put("type", "government");
+                    }
+                    Number mapAreaCode = null;
+                    if (organization.getVillageCode() != null) {
+                        mapAreaCode = organization.getVillageCode();
+                    } else if (organization.getTownCode() != null) {
+                        mapAreaCode = organization.getTownCode();
+                    } else if (organization.getAreaCode() != null) {
+                        mapAreaCode = organization.getAreaCode();
+                    } else if (organization.getCityCode() != null) {
+                        mapAreaCode = organization.getCityCode();
+                    } else if (organization.getProvinceCode() != null) {
+                        mapAreaCode = organization.getProvinceCode();
+                    }
+                    resultMap.put("mapAreaCode", mapAreaCode.toString());
+                }
+                resultMap.put("mapPath", areaNamesBuilder.toString());
+            }
+        }
+        request.getSession().setAttribute(WebInterceptor.SESSION_KEY,resultMap);
+        return resultMap;
+    }
+
+    @RequestMapping("add")
+    public String add(){
+        return "123123";
+    }
+}
diff --git a/src/main/resources/system/sysConfig.properties b/src/main/resources/system/sysConfig.properties
index 5e07f0b..cd16b9f 100644
--- a/src/main/resources/system/sysConfig.properties
+++ b/src/main/resources/system/sysConfig.properties
@@ -27,5 +27,5 @@
 e19-standard=50
 orgId=5
 password=123456
-noFilters=/**/*.css,/**/*.json,/alarm/**,/screen/**,/**/*.jsp,/**/*.js,/**/*.gif,/**/*.png,/**/*.ico,/**/*.html,/**/*.map,/machineactivate/**,/device/**,/sensor/**,/mobile/**,/page/**,/swagger*/**,/v2/**,/webjars/**,/demo/**,/weixin/alarm-show
+noFilters=/web/**,/**/*.css,/**/*.json,/alarm/**,/screen/**,/**/*.jsp,/**/*.js,/**/*.gif,/**/*.png,/**/*.ico,/**/*.html,/**/*.map,/machineactivate/**,/device/**,/sensor/**,/mobile/**,/page/**,/swagger*/**,/v2/**,/webjars/**,/demo/**,/weixin/alarm-show
 specialOrgIds=5
\ No newline at end of file

--
Gitblit v1.8.0