Browse Source

login swagger-ui

master
6 years ago
parent
commit
d9fd9d64c3
  1. 55
      cloudutil/src/main/java/com/ccsens/cloudutil/config/FeignConfig.java
  2. 13
      cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java
  3. 16
      ht/src/main/java/com/ccsens/ht/annotation/MustLogin.java
  4. 4
      ht/src/main/java/com/ccsens/ht/api/DoctorController.java
  5. 7
      ht/src/main/java/com/ccsens/ht/api/PatientController.java
  6. 6
      ht/src/main/java/com/ccsens/ht/api/PatientReportController.java
  7. 4
      ht/src/main/java/com/ccsens/ht/api/PositionController.java
  8. 4
      ht/src/main/java/com/ccsens/ht/api/QuestionController.java
  9. 2
      ht/src/main/java/com/ccsens/ht/aspect/DoctorAuditAspect.java
  10. 80
      ht/src/main/java/com/ccsens/ht/aspect/MustLoginAspect.java
  11. 4
      ht/src/main/java/com/ccsens/ht/bean/dto/QueryDto.java
  12. 56
      ht/src/main/java/com/ccsens/ht/config/SwaggerConfigure.java
  13. 2
      ht/src/main/resources/application-test.yml
  14. 4
      ht/src/main/resources/application.yml
  15. 56
      tall/src/main/java/com/ccsens/tall/config/SwaggerConfigure.java
  16. 3
      tall/src/main/java/com/ccsens/tall/web/UserController.java
  17. 6
      util/pom.xml
  18. 73
      util/src/main/java/com/ccsens/util/CodeEnum.java
  19. 112
      util/src/main/java/com/ccsens/util/config/SwaggerConfigure.java

55
cloudutil/src/main/java/com/ccsens/cloudutil/config/FeignConfig.java

@ -0,0 +1,55 @@
//package com.ccsens.cloudutil.config;
//
//import com.fasterxml.jackson.databind.DeserializationFeature;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import com.fasterxml.jackson.databind.module.SimpleModule;
//import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
//import feign.codec.Decoder;
//import feign.codec.Encoder;
//import feign.form.spring.SpringFormEncoder;
//import org.springframework.beans.factory.ObjectFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
//import org.springframework.cloud.openfeign.support.ResponseEntityDecoder;
//import org.springframework.cloud.openfeign.support.SpringDecoder;
//import org.springframework.cloud.openfeign.support.SpringEncoder;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.http.MediaType;
//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @description:
// * @author: wuHuiJuan
// * @create: 2019/12/09 15:27
// */
//@Configuration
//public class FeignConfig {
//
// @Autowired
// private ObjectFactory<HttpMessageConverters> messageConverters;
//
// @Bean
// public Encoder feignFormEncoder() {
// return new SpringFormEncoder(new SpringEncoder(messageConverters));
// }
//
// @Bean
// public Decoder feignDecoder() {
// return new ResponseEntityDecoder(new SpringDecoder(() -> {
// MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
// List<MediaType> mediaTypeList = new ArrayList<>();
// mediaTypeList.add(MediaType.TEXT_HTML);
// mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8);
// converter.setSupportedMediaTypes(mediaTypeList);
//
// ObjectMapper objectMapper = new ObjectMapper();
// objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// converter.setObjectMapper(objectMapper); return new HttpMessageConverters(converter);
// }));
// }
//
//}

13
cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java

@ -56,6 +56,14 @@ public interface TallFeignClient {
@RequestMapping("deleteRoles")
JsonResponse deleteRoles(MemberRoleDto.Delete deleteDto);
/**
* 根据token获取userId
* @param token
* @return
*/
@GetMapping("users/token")
JsonResponse getUserIdByToken(@RequestParam(required = true, name = "token") String token);
}
@ -89,6 +97,11 @@ class TallFeignClientFallBack implements FallbackFactory<TallFeignClient> {
public JsonResponse deleteRoles(MemberRoleDto.Delete deleteDto) {
return JsonResponse.newInstance().fail();
}
@Override
public JsonResponse getUserIdByToken(String token) {
return JsonResponse.newInstance().fail();
}
};
}

16
ht/src/main/java/com/ccsens/ht/annotation/MustLogin.java

@ -0,0 +1,16 @@
package com.ccsens.ht.annotation;
import java.lang.annotation.*;
/**
* @description: 用于标识方法需要登录获取userId
* 如果未登录直接返回用户未登录
* @author: wuHuiJuan
* @create: 2019/12/09 09:48
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MustLogin {
}

4
ht/src/main/java/com/ccsens/ht/api/DoctorController.java

@ -1,6 +1,7 @@
package com.ccsens.ht.api;
import com.ccsens.ht.annotation.MustLogin;
import com.ccsens.ht.annotation.DoctorAudit;
import com.ccsens.ht.bean.dto.DoctorDto;
import com.ccsens.ht.bean.dto.QueryDto;
@ -32,6 +33,7 @@ public class DoctorController {
@Autowired
private IDoctorService doctorService;
@MustLogin
@ApiOperation(value = "资格认证",notes = "医生提交基本信息进行资格认证")
@ApiImplicitParams({
@ApiImplicitParam(name = "json", value = "医生基本信息", required = true)
@ -44,6 +46,7 @@ public class DoctorController {
}
@MustLogin
@DoctorAudit
@ApiOperation(value = "资格认证列表",notes = "医生资格认证列表")
@ApiImplicitParams({
@ -56,6 +59,7 @@ public class DoctorController {
return JsonResponse.newInstance().ok(CodeEnum.SUCCESS, dtos);
}
@MustLogin
@DoctorAudit
@ApiOperation(value = "资格审核",notes = "医生资格审核 通过/拒绝")
@ApiImplicitParams({

7
ht/src/main/java/com/ccsens/ht/api/PatientController.java

@ -2,6 +2,7 @@ package com.ccsens.ht.api;
import cn.hutool.core.util.IdcardUtil;
import com.ccsens.ht.annotation.DoctorAudit;
import com.ccsens.ht.annotation.MustLogin;
import com.ccsens.ht.bean.dto.PatientDto;
import com.ccsens.ht.bean.dto.QueryDto;
import com.ccsens.ht.bean.po.HtPatient;
@ -43,6 +44,7 @@ public class PatientController {
*@Author: wuhuijuan
*@date: 2019/10/29 9:24
*/
@MustLogin
@DoctorAudit
@ApiOperation(value = "基础信息查询",notes = "病友基础信息查询")
@ApiImplicitParams({
@ -66,6 +68,7 @@ public class PatientController {
*@Author: wuhuijuan
*@date: 2019/10/30 9:27
*/
@MustLogin
@DoctorAudit
@ApiOperation(value = "基础信息编辑",notes = "病友基础信息编辑")
@ApiImplicitParams({
@ -103,7 +106,7 @@ public class PatientController {
return JsonResponse.newInstance().ok(idModel);
}
@MustLogin
@DoctorAudit
@ApiOperation(value = "病友其他信息查询",notes = "病友其他信息查询")
@ApiImplicitParams({
@ -115,6 +118,8 @@ public class PatientController {
List list = patientService.queryPatientOtherMsg(params.getParam(), params.getUserId());
return JsonResponse.newInstance().ok(list);
}
@MustLogin
@DoctorAudit
@ApiOperation(value = "编辑其他病友信息",notes = "编辑其他病友信息")
@ApiImplicitParams({

6
ht/src/main/java/com/ccsens/ht/api/PatientReportController.java

@ -2,6 +2,7 @@ package com.ccsens.ht.api;
import com.ccsens.ht.annotation.DoctorAudit;
import com.ccsens.ht.annotation.MustLogin;
import com.ccsens.ht.bean.dto.PatientReportDto;
import com.ccsens.ht.bean.dto.QueryDto;
import com.ccsens.ht.bean.vo.PatientReportVo;
@ -32,6 +33,7 @@ public class PatientReportController {
@Autowired
private IPatientReportService patientReportService;
@MustLogin
@DoctorAudit
@ApiOperation(value = "生成报告单",notes = "生成报告单")
@ApiImplicitParams({
@ -49,6 +51,7 @@ public class PatientReportController {
log.info("生成病友报告单返回:{}", response);
return JsonResponse.newInstance().ok(response);
}
@MustLogin
@DoctorAudit
@ApiOperation(value = "编辑报告单",notes = "编辑报告单")
@ApiImplicitParams({
@ -64,6 +67,7 @@ public class PatientReportController {
return JsonResponse.newInstance().ok(codeEnum);
}
@MustLogin
@ApiOperation(value = "查询报告单列表",notes = "根据病人ID查询报告单列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "json", value = "编辑报告单信息", required = true)
@ -77,6 +81,7 @@ public class PatientReportController {
log.info("查询报告单结果:{}", reportNamePageInfo);
return JsonResponse.newInstance().ok(reportNamePageInfo);
}
@ApiOperation(value = "查询报告单详情",notes = "根据病人ID查询报告单详情")
@ApiImplicitParams({
@ApiImplicitParam(name = "json", value = "查询报告单详情", required = true)
@ -90,6 +95,7 @@ public class PatientReportController {
return JsonResponse.newInstance().ok(detail);
}
@MustLogin
@ApiOperation(value = "查询医生对报告单的权限",notes = "查询医生对报告单的权限")
@ApiImplicitParams({
@ApiImplicitParam(name = "json", value = "报告单ID", required = true)

4
ht/src/main/java/com/ccsens/ht/api/PositionController.java

@ -1,5 +1,6 @@
package com.ccsens.ht.api;
import com.ccsens.ht.annotation.MustLogin;
import com.ccsens.ht.bean.dto.PositionDto;
import com.ccsens.ht.bean.dto.QueryDto;
import com.ccsens.ht.bean.vo.PositionVo;
@ -29,6 +30,7 @@ public class PositionController {
@Autowired
private IPositionService positionService;
@MustLogin
@ApiOperation(value = "医院/部门/职务查询",notes = "医院/部门/职务查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "json", value = "医院/部门/职务查询", required = true)
@ -39,6 +41,8 @@ public class PositionController {
List<PositionVo.Position> positions = positionService.queryPosition(params.getParam(), params.getUserId());
return JsonResponse.newInstance().ok(positions);
}
@MustLogin
@ApiOperation(value = "职称查询",notes = "职称查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "json", value = "职称查询", required = true)

4
ht/src/main/java/com/ccsens/ht/api/QuestionController.java

@ -2,6 +2,7 @@ package com.ccsens.ht.api;
import com.ccsens.ht.annotation.DoctorAudit;
import com.ccsens.ht.annotation.MustLogin;
import com.ccsens.ht.bean.dto.QueryDto;
import com.ccsens.ht.bean.dto.QuestionDto;
import com.ccsens.ht.bean.vo.QuestionVo;
@ -33,6 +34,7 @@ public class QuestionController {
@Autowired
private IQuestionService questionService;
@MustLogin
@DoctorAudit
@ApiOperation(value = "测评试题查询",notes = "测评试题查询")
@ApiImplicitParams({
@ -45,6 +47,8 @@ public class QuestionController {
log.info("查询试题结果:{}", query);
return JsonResponse.newInstance().ok(query);
}
@MustLogin
@DoctorAudit
@ApiOperation(value = "保存试题得分",notes = "保存试题得分")
@ApiImplicitParams({

2
ht/src/main/java/com/ccsens/ht/aspect/DoctorAuditAspect.java

@ -14,6 +14,7 @@ import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@ -24,6 +25,7 @@ import java.util.List;
* @author: wuHuiJuan
* @create: 2019/11/21 10:51
*/
@Order(2)
@Slf4j
@Aspect
@Component

80
ht/src/main/java/com/ccsens/ht/aspect/MustLoginAspect.java

@ -0,0 +1,80 @@
package com.ccsens.ht.aspect;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.cloudutil.feign.TallFeignClient;
import com.ccsens.ht.bean.dto.QueryDto;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
/**
* @description:
* @author: wuHuiJuan
* @create: 2019/12/09 09:54
*/
@Order(1)
@Slf4j
@Aspect
@Component
public class MustLoginAspect {
@Autowired
private TallFeignClient tallFeignClient;
@Pointcut("@annotation(com.ccsens.ht.annotation.MustLogin)")
public void loginAdvice(){}
@Around("loginAdvice()")
public Object around(ProceedingJoinPoint pjp){
// HttpServletRequest request = ((ServletRequestAttributes)
// RequestContextHolder.getRequestAttributes()).getRequest();
// final String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
Object[] args = pjp.getArgs();
QueryDto dto = (QueryDto) args[0];
final String authHeader = dto.getToken();
JsonResponse response = tallFeignClient.getUserIdByToken(authHeader);
log.info("{}获取userId:{}", authHeader, response);
if (response.getCode().intValue() != CodeEnum.SUCCESS.getCode().intValue()) {
return response;
}
if (response.getData() == null) {
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
}
JSONObject json = JSONObject.parseObject(JSON.toJSONString(response.getData()));
Long userId = json.getLong("id");
if (userId == null || userId == 0) {
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
}
dto.setUserId(userId);
Object result;
try {
result = pjp.proceed();
} catch (Throwable throwable) {
log.error("doctorAudit运行异常", throwable);
throw new BaseException(CodeEnum.SYS_ERROR);
}
return result;
}
}

4
ht/src/main/java/com/ccsens/ht/bean/dto/QueryDto.java

@ -15,6 +15,8 @@ import lombok.Data;
public class QueryDto<T> {
@ApiModelProperty("真正的请求参数")
private T param;
@ApiModelProperty("登录用户ID")
@ApiModelProperty("登录用户ID 前端不为userId赋值")
private Long userId;
@ApiModelProperty("token")
private String token;
}

56
ht/src/main/java/com/ccsens/ht/config/SwaggerConfigure.java

@ -0,0 +1,56 @@
package com.ccsens.ht.config;
import com.ccsens.util.WebConstant;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableSwagger2
@ConditionalOnExpression("${swagger.enable}")
//public class SwaggerConfigure extends WebMvcConfigurationSupport {
public class SwaggerConfigure /*implements WebMvcConfigurer*/ {
@Bean
public Docket customDocket() {
//
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors
.basePackage("com.ccsens.ht.api"))
.build()
.globalOperationParameters(setHeaderToken());
}
private ApiInfo apiInfo() {
return new ApiInfo("Swagger Tall-ptpro",//大标题 title
"This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题
"1.0.0",//版本
"http://swagger.io/terms/",//termsOfServiceUrl
"zhangsan",//作者
"Apache 2.0",//链接显示文字
"http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接
);
}
private List<Parameter> setHeaderToken() {
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token")
.defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX)
.modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
return pars;
}
}

2
ht/src/main/resources/application-test.yml

@ -27,7 +27,7 @@ spring:
swagger:
enable: false
enable: true
file:
path: /home/www-test/
#domain: https://api.ccsens.com/test/

4
ht/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: test
include: common, util-test
active: dev
include: common, util-dev

56
tall/src/main/java/com/ccsens/tall/config/SwaggerConfigure.java

@ -0,0 +1,56 @@
package com.ccsens.tall.config;
import com.ccsens.util.WebConstant;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableSwagger2
@ConditionalOnExpression("${swagger.enable}")
//public class SwaggerConfigure extends WebMvcConfigurationSupport {
public class SwaggerConfigure /*implements WebMvcConfigurer*/ {
@Bean
public Docket customDocket() {
//
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors
.basePackage("com.ccsens.tall.web"))
.build()
.globalOperationParameters(setHeaderToken());
}
private ApiInfo apiInfo() {
return new ApiInfo("Swagger Tall-ptpro",//大标题 title
"This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题
"1.0.0",//版本
"http://swagger.io/terms/",//termsOfServiceUrl
"zhangsan",//作者
"Apache 2.0",//链接显示文字
"http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接
);
}
private List<Parameter> setHeaderToken() {
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token")
.defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX)
.modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
return pars;
}
}

3
tall/src/main/java/com/ccsens/tall/web/UserController.java

@ -194,7 +194,7 @@ public class UserController {
@ApiImplicitParam(name="token",value = "token",required = true,paramType = "query")
})
@RequestMapping(value = "token",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse<UserVo.TokenToUserId> getNodeMessage(HttpServletRequest request, @RequestParam(required = true) String token) throws Exception {
public JsonResponse<UserVo.TokenToUserId> getNodeMessage(@RequestParam(required = true) String token) throws Exception {
//验证token是否有效
UserVo.TokenToUserId tokenToUserId = new UserVo.TokenToUserId();
Claims claims = null;
@ -208,6 +208,7 @@ public class UserController {
}catch(ExpiredJwtException e){
flag = false;
}catch(Exception e){
e.printStackTrace();
flag = false;
}
}

6
util/pom.xml

@ -10,6 +10,12 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>util</artifactId>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
</dependencies>
</project>

73
util/src/main/java/com/ccsens/util/CodeEnum.java

@ -22,44 +22,45 @@ public enum CodeEnum {
QUESTION_NOT_FOUND(11,"试题未找到。", true),
WSB_NOT_PROJECT_HEADER(12,"没有项目信息的表头",true),
WSB_NOT_MEMBER_HEADER(12,"没有项目成员的表头",true),
WSB_NOT_TASK_HEADER(12,"没有项目任务分解的表头",true),
WBS_PROJECT_TIME_ERROR(13,"时间格式异常",true),
WBS_NOT_PROJECT_TIME(13,"项目时间不能为空",true),
WBS_NOT_PROJECT_NAME(13,"找不到项目信息",true),
WBS_NOT_MEMBER_SHEET(14,"未找到项目成员表",true),
WBS_NOT_PHONE(15,"手机号为空",true),
WBS_STAKEHOLDER_PHONE(16,"奖惩干系人和手机号不匹配",true),
WBS_REPEAT_MEMBER_PHONE(16,"成员或手机号重复",true),
WBS_NOT_FIRST_ROLE(17,"系统角色名称错误",true),
WBS_REPEAT_ROLE_NAME(17,"角色名称重复",true),
WSB_NOT_MEMBER(14,"未找到对应成员,请检查成员姓名是否正确", true),
WBS_NOT_FIND_ROLE(18,"找不到对应的角色,请检查对谁不可见一列的名字与格式",true),
WBS_NOT_TASK_NAME(18,"任务名不能为空",true),
WBS_NOT_FIND_EXECUTOR_ROLE(18,"找不到负责人,请检查负责人的名称",true),
WBS_NOT_FIND_CHECKER_ROLE(18,"找不到检查人,请检查检查人的名称",true),
WBS_DELAY_ERROR(18,"任务切换模式填写错误",true),
WBS_SUB_TASK_ANALYSIS(18,"无法解析此子日程表",true),
WBS_NOT_SUB_TASK(18,"找不到对应的子日程表,请检查子日程表的名字是否正确",true),
WBS_NOT_PLUGIN_SHEET(18,"未找到插件表",true),
WBS_NOT_PLUGIN(18,"找不到对应的插件,请确认是否填写正确",true),
PROJECT_DATE_FORMAT_ERROR(18,"输入的日期格式错误,有效日期格式 例:2019-01-01或2019-01",true),
TASK_NOT_UPLOAD_DELIVER(19,"交付物未上传,无法完成任务",true),
NOT_PROJECT(20,"找不到该项目",true),
NOT_ROLE(20,"找不到该角色",true),
NOT_DELIVER(20,"找不到对应的交付物",true),
NOT_TASK(20,"找不到对应的任务",true),
NOT_DELIVER_FILE(20,"找不到文件",true),
IS_NOT_EXECUTOR(21,"您不是该任务负责人",true),
NOT_CHECKER(21,"请选择检查人",true),
SUB_TASK_IS_NOT_FINISH(21,"分组内任务未全部完成",true),
IS_NOT_CHECKER(22,"你不是该交付物的检查人",true),
NOT_POWER(23,"权限不足,无法操作",true),
SMS_CODE_CORRECT(24,"验证信息错误",true),
WSB_NOT_MEMBER_HEADER(13,"没有项目成员的表头",true),
WSB_NOT_TASK_HEADER(14,"没有项目任务分解的表头",true),
WBS_PROJECT_TIME_ERROR(15,"时间格式异常",true),
WBS_NOT_PROJECT_TIME(16,"项目时间不能为空",true),
WBS_NOT_PROJECT_NAME(17,"找不到项目信息",true),
WBS_NOT_MEMBER_SHEET(18,"未找到项目成员表",true),
WBS_NOT_PHONE(19,"手机号为空",true),
WBS_STAKEHOLDER_PHONE(20,"奖惩干系人和手机号不匹配",true),
WBS_REPEAT_MEMBER_PHONE(21,"成员或手机号重复",true),
WBS_NOT_FIRST_ROLE(22,"系统角色名称错误",true),
WBS_REPEAT_ROLE_NAME(23,"角色名称重复",true),
WSB_NOT_MEMBER(24,"未找到对应成员,请检查成员姓名是否正确", true),
WBS_NOT_FIND_ROLE(25,"找不到对应的角色,请检查对谁不可见一列的名字与格式",true),
WBS_NOT_TASK_NAME(26,"任务名不能为空",true),
WBS_NOT_FIND_EXECUTOR_ROLE(27,"找不到负责人,请检查负责人的名称",true),
WBS_NOT_FIND_CHECKER_ROLE(28,"找不到检查人,请检查检查人的名称",true),
WBS_DELAY_ERROR(29,"任务切换模式填写错误",true),
WBS_SUB_TASK_ANALYSIS(30,"无法解析此子日程表",true),
WBS_NOT_SUB_TASK(31,"找不到对应的子日程表,请检查子日程表的名字是否正确",true),
WBS_NOT_PLUGIN_SHEET(32,"未找到插件表",true),
WBS_NOT_PLUGIN(33,"找不到对应的插件,请确认是否填写正确",true),
PROJECT_DATE_FORMAT_ERROR(34,"输入的日期格式错误,有效日期格式 例:2019-01-01或2019-01",true),
TASK_NOT_UPLOAD_DELIVER(35,"交付物未上传,无法完成任务",true),
NOT_PROJECT(36,"找不到该项目",true),
NOT_ROLE(37,"找不到该角色",true),
NOT_DELIVER(38,"找不到对应的交付物",true),
NOT_TASK(39,"找不到对应的任务",true),
NOT_DELIVER_FILE(40,"找不到文件",true),
IS_NOT_EXECUTOR(41,"您不是该任务负责人",true),
NOT_CHECKER(42,"请选择检查人",true),
SUB_TASK_IS_NOT_FINISH(43,"分组内任务未全部完成",true),
IS_NOT_CHECKER(44,"你不是该交付物的检查人",true),
NOT_POWER(45,"权限不足,无法操作",true),
SMS_CODE_CORRECT(46,"验证信息错误",true),
QUESTION_RULE_NOT_FOUND(25,"该评测规则未知,请联系开发人员。", true),
REPORT_DOCTOR_ERROR(26, "对不起,您没有修改报告单结果的权限", true),
QUESTION_RULE_NOT_FOUND(47,"该评测规则未知,请联系开发人员。", true),
REPORT_DOCTOR_ERROR(48, "对不起,您没有修改报告单结果的权限。", true),
NOT_LOGIN(49, "对不起,您尚未登录或登录已失效,请重新登录。", true),
;
public CodeEnum addMsg(String msg){

112
util/src/main/java/com/ccsens/util/config/SwaggerConfigure.java

@ -1,56 +1,56 @@
package com.ccsens.util.config;
import com.ccsens.util.WebConstant;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableSwagger2
@ConditionalOnExpression("${swagger.enable}")
//public class SwaggerConfigure extends WebMvcConfigurationSupport {
public class SwaggerConfigure /*implements WebMvcConfigurer*/ {
@Bean
public Docket customDocket() {
//
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors
.basePackage("com.ccsens.ptpro.web"))
.build()
.globalOperationParameters(setHeaderToken());
}
private ApiInfo apiInfo() {
return new ApiInfo("Swagger Tall-ptpro",//大标题 title
"This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题
"1.0.0",//版本
"http://swagger.io/terms/",//termsOfServiceUrl
"zhangsan",//作者
"Apache 2.0",//链接显示文字
"http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接
);
}
private List<Parameter> setHeaderToken() {
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token")
.defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX)
.modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
return pars;
}
}
//package com.ccsens.util.config;
//
//import com.ccsens.util.WebConstant;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import springfox.documentation.builders.ParameterBuilder;
//import springfox.documentation.builders.RequestHandlerSelectors;
//import springfox.documentation.schema.ModelRef;
//import springfox.documentation.service.ApiInfo;
//import springfox.documentation.service.Parameter;
//import springfox.documentation.spi.DocumentationType;
//import springfox.documentation.spring.web.plugins.Docket;
//import springfox.documentation.swagger2.annotations.EnableSwagger2;
//
//import java.util.ArrayList;
//import java.util.List;
//
//@Configuration
//@EnableSwagger2
//@ConditionalOnExpression("${swagger.enable}")
////public class SwaggerConfigure extends WebMvcConfigurationSupport {
//public class SwaggerConfigure /*implements WebMvcConfigurer*/ {
// @Bean
// public Docket customDocket() {
// //
// return new Docket(DocumentationType.SWAGGER_2)
// .apiInfo(apiInfo())
// .select()
// .apis(RequestHandlerSelectors
// .basePackage("com.ccsens.tall.web,com.ccsens.ht.api"))
// .build()
// .globalOperationParameters(setHeaderToken());
// }
//
// private ApiInfo apiInfo() {
// return new ApiInfo("Swagger Tall-ptpro",//大标题 title
// "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题
// "1.0.0",//版本
// "http://swagger.io/terms/",//termsOfServiceUrl
// "zhangsan",//作者
// "Apache 2.0",//链接显示文字
// "http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接
// );
// }
//
// private List<Parameter> setHeaderToken() {
// ParameterBuilder tokenPar = new ParameterBuilder();
// List<Parameter> pars = new ArrayList<>();
// tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token")
// .defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX)
// .modelRef(new ModelRef("string")).parameterType("header").required(false).build();
// pars.add(tokenPar.build());
// return pars;
// }
//}

Loading…
Cancel
Save