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