提交 f398bbd2 authored 作者: renjiancai's avatar renjiancai

--no commit message

上级 a29543d0
package com.zrqx.core.enums.env;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import com.zrqx.core.enums.EnvironmentEnum;
import com.zrqx.core.enums.interfaces.EnumsBindBean;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spring.web.plugins.Docket;
/**
* {@link ConfigServerParams}
* 服务环境绑定的操作
* @author lpf
* @date 2019年3月22日上午11:34:19
*/
public interface EnvironmentInterface extends EnumsBindBean<EnvironmentEnum> {
/**
* swaager-ui对象
* @param info
* @return
* @author lpf
* @date: 2019年3月22日 下午1:42:20
*/
Docket createRestApi(ApiInfo info);
/**
* sql异常处理方案 测试环境需要返回出去,生产环境sql异常不能返回出去。
* @param request
* @param e
* @return
* @author lpf
* @date: 2019年10月29日 上午11:48:40
*/
String handlerException(HttpServletRequest request, SQLException e);
/**
* 生成样书申请编码
* 测试环境: ZRQX + YS + 2随机字母 + yyyyMMddHHmmssSSSS
* 生产环境: YS + 2随机字母 + yyyyMMddHHmmssSSSS
* @return
* @author lpf
* @date: 2019年5月15日 下午3:27:13
*/
String createSampleBookApplyCode();
/**
* 生成订单号
* Z + 2随机字母 + yyyyMMddHHmmssSSSS
* @return
* @author lpf
* @date: 2019年8月7日 上午9:47:38
*/
String createOrderCode();
/**
* 生成用户名
* 系统自动生成用户名(4-10位,字母和数字组合,前两位字母)
* 测试环境: Z + 两位字母 + (2-8)位数字
* 生产环境: 两位字母 + (2-8)位数字
* @return
*/
String createAccount();
}
package com.zrqx.core.enums.env.impl;
import java.util.Random;
import java.util.function.Consumer;
import com.zrqx.core.enums.env.EnvironmentInterface;
import com.zrqx.core.util.datatype.StringUtil;
/**
*
* @author lpf
* @date 2020-07-01 13:52
*/
public abstract class AbstractEnvironment implements EnvironmentInterface {
@Override
public String createSampleBookApplyCode() {
return this.initRandomOrderCode(b -> b.append("YS"));
}
@Override
public String createOrderCode() {
return this.initRandomOrderCode(b -> b.append(StringUtil.getRandomEnSign(1,2,0)));
}
@Override
public String createAccount() {
return this.initRandomOrderCode(b -> {
b.append(StringUtil.getRandomEnSign(1,2,0));
Integer num = new Random().nextInt(6) + 2;
b.append(StringUtil.getRandomNumber(num));
});
}
/**
* 基础生成编码规则
* @return
* @author ydm
* @date: 2018年8月13日 下午2:31:44
*/
protected String initRandomOrderCode(Consumer<StringBuffer> before) {
Consumer<StringBuffer> first = this :: beforeCreateCode;
Consumer<StringBuffer> joinConsumer = first.andThen(before);
StringBuffer result = new StringBuffer();
joinConsumer.accept(result);
return result.toString();
}
/**
* 创建编码之前执行程序, 返回值用于拼接到编码上(返回值+创建编码)
* @param code 编码
* @return
* @author lpf
* @date: 2019年5月15日 下午3:31:18
*/
protected abstract void beforeCreateCode(StringBuffer code);
}
package com.zrqx.core.enums.env.impl;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.zrqx.core.enums.EnvironmentEnum;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
* 生产环境绑定操作
* @author lpf
* @date 2019年3月22日上午11:40:41
*/
public class ProductEnvironmentImpl extends AbstractEnvironment{
@Override
public List<EnvironmentEnum> getEnums() {
return Arrays.asList(EnvironmentEnum.PRODUCT);
}
@Override
public Docket createRestApi(ApiInfo info) {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(info)
.select()
//为当前包路径 不存在的包路径
.apis(RequestHandlerSelectors.basePackage("com.zrqx.prod"))
.paths(PathSelectors.any())
.build();
}
@Override
protected void beforeCreateCode(StringBuffer code) {
}
@Override
public String handlerException(HttpServletRequest request, SQLException e) {
return null;
}
}
package com.zrqx.core.enums.env.impl;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.zrqx.core.util.datatype.StringUtil;
import com.zrqx.core.util.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.zrqx.core.enums.EnvironmentEnum;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
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;
/**
* 测试环境操作
* @author lpf
* @date 2019年3月22日上午11:35:54
*/
public class TestEnvironmentImpl extends AbstractEnvironment {
private static final Logger logger = LoggerFactory.getLogger(TestEnvironmentImpl.class);
@Override
public List<EnvironmentEnum> getEnums() {
return Arrays.asList(EnvironmentEnum.TEST);
}
@Override
public Docket createRestApi(ApiInfo info) {
//添加head参数start
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<Parameter>();
tokenPar.name("y-token").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
ParameterBuilder tokenPar1 = new ParameterBuilder();
tokenPar1.name("x-token").description("后台令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
pars.add(tokenPar1.build());
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(info)
.select()
//为当前包路径
.apis(RequestHandlerSelectors.basePackage("com.zrqx"))
.paths(PathSelectors.any())
.build()
.globalOperationParameters(pars);
}
@Override
protected void beforeCreateCode(StringBuffer code) {
code.append("Z");
}
@Override
public String handlerException(HttpServletRequest request, SQLException e) {
return ExceptionUtils.getMessage("请求地址:" + request.getRequestURI() +";", e);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论