kaiyu
2020-09-11 5cb77ad77796224358b93607a8e5f9e697ed58c6
BS登陆接口测试
3 files added
3 files modified
268 ■■■■■ changed files
pom.xml 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/ScreenApiApplication.java 24 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/Webinterceptor/WebInterceptor.java 39 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/config/WebLoginConfig.java 110 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/WebController.java 91 ●●●●● patch | view | raw | blame | history
src/main/resources/system/sysConfig.properties 2 ●●● patch | view | raw | blame | history
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>
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);
    }
}
src/main/java/com/moral/Webinterceptor/WebInterceptor.java
New file
@@ -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 {
    }
}
src/main/java/com/moral/config/WebLoginConfig.java
New file
@@ -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;
    }
}
src/main/java/com/moral/controller/WebController.java
New file
@@ -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";
    }
}
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