diff --git a/keller-dependencies/pom.xml b/keller-dependencies/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..6bf66079a821f83e2b5928260a95fc5695effe05 --- /dev/null +++ b/keller-dependencies/pom.xml @@ -0,0 +1,75 @@ + + + + 4.0.0 + com.cheri + keller-dependencies + 1.0-SNAPSHOT + pom + + + Greenwich.RELEASE + 2.1.1 + 1.2.51 + 2.8.5 + 1.4.7 + 1.18.10 + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + ${mybatis-springboot.version} + + + + mysql + mysql-connector-java + runtime + + + + com.alibaba + fastjson + ${alibaba-fastjson.version} + + + + com.google.code.gson + gson + ${google.gson.version} + + + + javax.mail + mail + ${javax-mail.version} + + + + org.xmlunit + xmlunit-core + + + + org.projectlombok + lombok + ${lombok.version} + + + + + \ No newline at end of file diff --git a/keller-public/pom.xml b/keller-public/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..887cfa0b192eca2b861626fbdc6647e4dda46582 --- /dev/null +++ b/keller-public/pom.xml @@ -0,0 +1,20 @@ + + + + keller-all + com.cheri + 1.0-SNAPSHOT + + 4.0.0 + + keller-public + + + org.projectlombok + lombok + compile + + + \ No newline at end of file diff --git a/keller-public/src/main/java/com/cheri/keller/pub/exception/BaseException.java b/keller-public/src/main/java/com/cheri/keller/pub/exception/BaseException.java new file mode 100644 index 0000000000000000000000000000000000000000..1b34bd7999647383d62da3c9030b22c7c0dfcabb --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/exception/BaseException.java @@ -0,0 +1,34 @@ +package com.cheri.keller.pub.exception; + +import com.cheri.keller.pub.judge.IResponseEnum; +import lombok.Getter; + +/** + * @author ouka + * @ClassName BaseException + * @Package com.cheri.keller.pub.exception + * @Description: 基础异常 + * @date 2020/6/4 15:55 + */ +@Getter +public class BaseException extends RuntimeException { + protected IResponseEnum iResponseEnum; + protected Object[] args; + + public BaseException(IResponseEnum iResponseEnum) { + super(iResponseEnum.getMsg()); + this.iResponseEnum = iResponseEnum; + } + + public BaseException(IResponseEnum responseEnum, Object[] args, String message) { + super(message); + this.iResponseEnum = responseEnum; + this.args = args; + } + + public BaseException(IResponseEnum responseEnum, Object[] args, String message, Throwable cause) { + super(message, cause); + this.iResponseEnum = responseEnum; + this.args = args; + } +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/exception/ServerException.java b/keller-public/src/main/java/com/cheri/keller/pub/exception/ServerException.java new file mode 100644 index 0000000000000000000000000000000000000000..05a036bdcc0087c20612e295f6cc1e4be14a8304 --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/exception/ServerException.java @@ -0,0 +1,21 @@ +package com.cheri.keller.pub.exception; + +import com.cheri.keller.pub.judge.IResponseEnum; + +/** + * @author ouka + * @ClassName ServerException + * @Package com.cheri.keller.pub.exception + * @Description: 系统异常 + * @date 2020/6/4 16:13 + */ +public class ServerException extends BaseException{ + + public ServerException(IResponseEnum responseEnum, Object[] args, String message) { + super(responseEnum, args, message); + } + + public ServerException(IResponseEnum responseEnum, Object[] args, String message, Throwable cause) { + super(responseEnum, args, message, cause); + } +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/exception/handler/DefaultExceptionHandler.java b/keller-public/src/main/java/com/cheri/keller/pub/exception/handler/DefaultExceptionHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..9a4819e1206e7d7d5ddad917e5b9b1273633c969 --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/exception/handler/DefaultExceptionHandler.java @@ -0,0 +1,166 @@ +package com.cheri.keller.pub.exception.handler; + +import com.cheri.keller.pub.exception.BaseException; +import com.cheri.keller.pub.response.CommonResponseEnum; +import com.cheri.keller.pub.response.ResponseMsg; +import com.cheri.keller.pub.response.ServletResponseEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.ConversionNotSupportedException; +import org.springframework.beans.TypeMismatchException; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.http.converter.HttpMessageNotWritableException; +import org.springframework.validation.BindException; +import org.springframework.validation.BindingResult; +import org.springframework.validation.ObjectError; +import org.springframework.web.HttpMediaTypeNotAcceptableException; +import org.springframework.web.HttpMediaTypeNotSupportedException; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingPathVariableException; +import org.springframework.web.bind.MissingServletRequestParameterException; +import org.springframework.web.bind.ServletRequestBindingException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.async.AsyncRequestTimeoutException; +import org.springframework.web.multipart.support.MissingServletRequestPartException; +import org.springframework.web.servlet.NoHandlerFoundException; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author ouka + * @ClassName DefaultExceptionHandler + * @Package com.cheri.keller.pub.exception.handler + * @Description: TODO + * @date 2020/6/4 16:15 + */ +@Slf4j +@RestControllerAdvice +public class DefaultExceptionHandler { + /*生产环境*/ + private static final String ENV_PRO = "PRO"; + /*国际化*/ + final UnifiedMessageSource unifiedMessageSource; + /*当前环境*/ + final String profile; + + public DefaultExceptionHandler(UnifiedMessageSource unifiedMessageSource, + @Value("${spring.profiles.active}") String profile) { + this.unifiedMessageSource = unifiedMessageSource; + this.profile = profile; + } + + /** + * 获取国际化消息 + * + * @param e 异常 + * @return + */ + public String getMessage(BaseException e) { + String code = "response." + e.getIResponseEnum().toString(); + String message = unifiedMessageSource.getMessage(code, e.getArgs()); + + if (message == null || message.isEmpty()) { + return e.getMessage(); + } + + return message; + } + + /** + * Controller上一层相关异常 + * + * @param e 异常 + * @return 异常结果 + */ + @ExceptionHandler({ + NoHandlerFoundException.class, + HttpRequestMethodNotSupportedException.class, + HttpMediaTypeNotSupportedException.class, + HttpMediaTypeNotAcceptableException.class, + MissingPathVariableException.class, + MissingServletRequestParameterException.class, + TypeMismatchException.class, + HttpMessageNotReadableException.class, + HttpMessageNotWritableException.class, + ServletRequestBindingException.class, + ConversionNotSupportedException.class, + MissingServletRequestPartException.class, + AsyncRequestTimeoutException.class + }) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ResponseBody + public ResponseMsg handleServletException(Exception e) { + log.error(e.getMessage(), e); + int code = CommonResponseEnum.SERVER_ERROR.getCode(); + try { + ServletResponseEnum servletExceptionEnum = ServletResponseEnum.valueOf(e.getClass().getSimpleName()); + code = servletExceptionEnum.getCode(); + } catch (IllegalArgumentException e1) { + log.error("class [{}] not defined in enum {}", e.getClass().getName(), ServletResponseEnum.class.getName()); + } + + if (ENV_PRO.equals(profile)) { + // 当为生产环境, 不适合把具体的异常信息展示给用户, 比如404. + code = CommonResponseEnum.SERVER_ERROR.getCode(); + BaseException baseException = new BaseException(CommonResponseEnum.SERVER_ERROR); + String message = getMessage(baseException); + return ResponseMsg.wrapperFailResult(code, message,ResponseMsg.ExceptionType.SYS_EXCEPTION); + } + return ResponseMsg.wrapperFailResult(code, e.getMessage(),ResponseMsg.ExceptionType.SYS_EXCEPTION); + } + + /** + * 参数绑定异常 + * + * @param e 异常 + * @return 异常结果 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(value = BindException.class) + @ResponseBody + public ResponseMsg handleBindException(BindException e) { + log.error("参数绑定校验异常", e); + + return wrapperBindingResult(e.getBindingResult()); + } + + /** + * 参数校验(Valid)异常,将校验失败的所有异常组合成一条错误信息 + * + * @param e 异常 + * @return 异常结果 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(value = MethodArgumentNotValidException.class) + @ResponseBody + public ResponseMsg handleValidException(MethodArgumentNotValidException e) { + log.error("参数绑定校验异常", e); + + return wrapperBindingResult(e.getBindingResult()); + } + + + + /** + * 包装绑定异常结果 + * + * @param bindingResult 绑定结果 + * @return 异常结果 + */ + private ResponseMsg wrapperBindingResult(BindingResult bindingResult) { + List list = new ArrayList<>(); + + for (ObjectError error : bindingResult.getAllErrors()) { + list.add(error.getDefaultMessage()); + } + /* TODO: 此处只是暂时写做500后续待定*/ + return ResponseMsg.wrapperFailResult(500, list,ResponseMsg.ExceptionType.BUS_EXCEPTION); + } + +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/exception/handler/UnifiedMessageSource.java b/keller-public/src/main/java/com/cheri/keller/pub/exception/handler/UnifiedMessageSource.java new file mode 100644 index 0000000000000000000000000000000000000000..239b7d40db58b6d0479c8103a98c42be305cc564 --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/exception/handler/UnifiedMessageSource.java @@ -0,0 +1,51 @@ +package com.cheri.keller.pub.exception.handler; + + +import org.springframework.context.MessageSource; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Locale; + +@Service +public class UnifiedMessageSource { + + + @Resource + private MessageSource messageSource; + + /** + * 获取国际化消息 + * @param code 消息code + * @return + */ + public String getMessage(String code) { + + return getMessage(code, null); + } + + /** + * 获取国际化消息 + * @param code 消息code + * @param args 参数 + * @return + */ + public String getMessage(String code, Object[] args) { + + return getMessage(code, args, ""); + } + + /** + * 获取国际化消息 + * @param code 消息code + * @param args 参数 + * @param defaultMessage 默认消息 + * @return + */ + public String getMessage(String code, Object[] args, String defaultMessage) { + Locale locale = LocaleContextHolder.getLocale(); + + return messageSource.getMessage(code, args, defaultMessage, locale); + } +} \ No newline at end of file diff --git a/keller-public/src/main/java/com/cheri/keller/pub/judge/Assert.java b/keller-public/src/main/java/com/cheri/keller/pub/judge/Assert.java new file mode 100644 index 0000000000000000000000000000000000000000..5725ca4b1b5cc305fb829fdd35dcccdfe7fe269b --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/judge/Assert.java @@ -0,0 +1,296 @@ +package com.cheri.keller.pub.judge; + +import com.cheri.keller.pub.exception.BaseException; + +import java.util.Collection; +import java.util.Map; + +/** + * @author ouka + * @ClassName Assert + * @Package com.cheri.keller.pub.judge + * @Description: 断言判断 + * @date 2020/6/4 15:54 + */ +public interface Assert { + /** + * 创建异常 + * @param args + * @return + */ + BaseException newException(Object... args); + + /** + * 创建异常 + * @param t + * @param args + * @return + */ + BaseException newException(Throwable t, Object... args); + + /** + *

断言对象obj非空。如果对象obj为空,则抛出异常 + * + * @param obj 待判断对象 + */ + default void assertNotNull(Object obj) { + if (obj == null) { + throw newException(); + } + } + + /** + *

断言对象obj非空。如果对象obj为空,则抛出异常 + *

异常信息message支持传递参数方式,避免在判断之前进行字符串拼接操作 + * + * @param obj 待判断对象 + * @param args message占位符对应的参数列表 + */ + default void assertNotNull(Object obj, Object... args) { + if (obj == null) { + throw newException(args); + } + } + + /** + *

断言字符串str不为空串(长度为0)。如果字符串str为空串,则抛出异常 + * + * @param str 待判断字符串 + */ + default void assertNotEmpty(String str) { + if (null == str || "".equals(str.trim())) { + throw newException(); + } + } + + /** + *

断言字符串str不为空串(长度为0)。如果字符串str为空串,则抛出异常 + *

异常信息message支持传递参数方式,避免在判断之前进行字符串拼接操作 + * + * @param str 待判断字符串 + * @param args message占位符对应的参数列表 + */ + default void assertNotEmpty(String str, Object... args) { + if (str == null || "".equals(str.trim())) { + throw newException(args); + } + } + + /** + *

断言数组arrays大小不为0。如果数组arrays大小不为0,则抛出异常 + * + * @param arrays 待判断数组 + */ + default void assertNotEmpty(Object[] arrays) { + if (arrays == null || arrays.length == 0) { + throw newException(); + } + } + + /** + *

断言数组arrays大小不为0。如果数组arrays大小不为0,则抛出异常 + *

异常信息message支持传递参数方式,避免在判断之前进行字符串拼接操作 + * + * @param arrays 待判断数组 + * @param args message占位符对应的参数列表 + */ + default void assertNotEmpty(Object[] arrays, Object... args) { + if (arrays == null || arrays.length == 0) { + throw newException(args); + } + } + + /** + *

断言集合c大小不为0。如果集合c大小不为0,则抛出异常 + * + * @param c 待判断数组 + */ + default void assertNotEmpty(Collection c) { + if (c == null || c.isEmpty()) { + throw newException(); + } + } + + /** + *

断言集合c大小不为0。如果集合c大小不为0,则抛出异常 + * + * @param c 待判断数组 + * @param args message占位符对应的参数列表 + */ + default void assertNotEmpty(Collection c, Object... args) { + if (c == null || c.isEmpty()) { + throw newException(args); + } + } + + /** + *

断言Mapmap大小不为0。如果Mapmap大小不为0,则抛出异常 + * + * @param map 待判断Map + */ + default void assertNotEmpty(Map map) { + if (map == null || map.isEmpty()) { + throw newException(); + } + } + + /** + *

断言Mapmap大小不为0。如果Mapmap大小不为0,则抛出异常 + * + * @param map 待判断Map + * @param args message占位符对应的参数列表 + */ + default void assertNotEmpty(Map map, Object... args) { + if (map == null || map.isEmpty()) { + throw newException(args); + } + } + + /** + *

断言布尔值expression为false。如果布尔值expression为true,则抛出异常 + * + * @param expression 待判断布尔变量 + */ + default void assertIsFalse(boolean expression) { + if (expression) { + throw newException(); + } + } + + /** + *

断言布尔值expression为false。如果布尔值expression为true,则抛出异常 + * + * @param expression 待判断布尔变量 + * @param args message占位符对应的参数列表 + */ + default void assertIsFalse(boolean expression, Object... args) { + if (expression) { + throw newException(args); + } + } + + /** + *

断言布尔值expression为true。如果布尔值expression为false,则抛出异常 + * + * @param expression 待判断布尔变量 + */ + default void assertIsTrue(boolean expression) { + if (!expression) { + throw newException(); + } + } + + /** + *

断言布尔值expression为true。如果布尔值expression为false,则抛出异常 + * + * @param expression 待判断布尔变量 + * @param args message占位符对应的参数列表 + */ + default void assertIsTrue(boolean expression, Object... args) { + if (!expression) { + throw newException(args); + } + } + + /** + *

断言对象objnull。如果对象obj不为null,则抛出异常 + * + * @param obj 待判断对象 + */ + default void assertIsNull(Object obj) { + if (obj != null) { + throw newException(); + } + } + + /** + *

断言对象objnull。如果对象obj不为null,则抛出异常 + * + * @param obj 待判断布尔变量 + * @param args message占位符对应的参数列表 + */ + default void assertIsNull(Object obj, Object... args) { + if (obj != null) { + throw newException(args); + } + } + + /** + *

直接抛出异常 + * + */ + default void assertFail() { + throw newException(); + } + + /** + *

直接抛出异常 + * + * @param args message占位符对应的参数列表 + */ + default void assertFail(Object... args) { + throw newException(args); + } + + /** + *

直接抛出异常,并包含原异常信息 + *

当捕获非运行时异常(非继承{@link RuntimeException})时,并该异常进行业务描述时, + * 必须传递原始异常,作为新异常的cause + * + * @param t 原始异常 + */ + default void assertFail(Throwable t) { + throw newException(t); + } + + /** + *

直接抛出异常,并包含原异常信息 + *

当捕获非运行时异常(非继承{@link RuntimeException})时,并该异常进行业务描述时, + * 必须传递原始异常,作为新异常的cause + * + * @param t 原始异常 + * @param args message占位符对应的参数列表 + */ + default void assertFail(Throwable t, Object... args) { + throw newException(t, args); + } + + /** + *

断言对象o1与对象o2相等,此处的相等指(o1.equals(o2)为true)。 + * 如果两对象不相等,则抛出异常 + * + * @param o1 待判断对象,若o1为null,也当作不相等处理 + * @param o2 待判断对象 + */ + default void assertEquals(Object o1, Object o2) { + if (o1 == o2) { + return; + } + if (o1 == null) { + throw newException(); + } + if (!o1.equals(o2)) { + throw newException(); + } + } + + /** + *

断言对象o1与对象o2相等,此处的相等指(o1.equals(o2)为true)。 + * 如果两对象不相等,则抛出异常 + * + * @param o1 待判断对象,若o1为null,也当作不相等处理 + * @param o2 待判断对象 + * @param args message占位符对应的参数列表 + */ + default void assertEquals(Object o1, Object o2, Object... args) { + if (o1 == o2) { + return; + } + if (o1 == null) { + throw newException(args); + } + if (!o1.equals(o2)) { + throw newException(args); + } + } +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/judge/IResponseEnum.java b/keller-public/src/main/java/com/cheri/keller/pub/judge/IResponseEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..473c637e874b88327fcce0468cb441a100cc715f --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/judge/IResponseEnum.java @@ -0,0 +1,22 @@ +package com.cheri.keller.pub.judge; + +import org.hibernate.type.IntegerType; + +/** + * @author ouka + * @ClassName IResponseEnum + * @Package com.cheri.keller.pub.judge + * @Description: 异常信息响应接口 + * @date 2020/6/4 15:56 + */ +public interface IResponseEnum { + /** + * @return 响应码 + */ + Integer getCode(); + + /** + * @return 响应信息 + */ + String getMsg(); +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/judge/ServerErrorExceptionAssert.java b/keller-public/src/main/java/com/cheri/keller/pub/judge/ServerErrorExceptionAssert.java new file mode 100644 index 0000000000000000000000000000000000000000..135d94d0ffc08bb56f960e1b3e3eaf3403f6f0ea --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/judge/ServerErrorExceptionAssert.java @@ -0,0 +1,31 @@ +package com.cheri.keller.pub.judge; + +import com.cheri.keller.pub.exception.BaseException; +import com.cheri.keller.pub.exception.ServerException; +import lombok.extern.java.Log; +import lombok.extern.log4j.Log4j2; + +import java.text.MessageFormat; + +/** + * @author ouka + * @ClassName ServerErrorException + * @Package com.cheri.keller.pub.judge + * @Description: TODO + * @date 2020/6/4 16:11 + */ +public interface ServerErrorExceptionAssert extends Assert,IResponseEnum{ + @Override + default BaseException newException(Object... args){ + String msg = MessageFormat.format(this.getMsg(), args); + + return new ServerException(this, args, msg); + } + + @Override + default BaseException newException(Throwable t, Object... args){ + String msg = MessageFormat.format(this.getMsg(), args); + + return new ServerException(this, args, msg, t); + } +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/response/CommonResponseEnum.java b/keller-public/src/main/java/com/cheri/keller/pub/response/CommonResponseEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..f79181091b9e26f6bfe797dacd81267a6095333d --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/response/CommonResponseEnum.java @@ -0,0 +1,65 @@ +package com.cheri.keller.pub.response; + + +import com.cheri.keller.pub.exception.BaseException; +import com.cheri.keller.pub.judge.ServerErrorExceptionAssert; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author ouka + * @ClassName ResponseMsg + * @Package com.cheri.keller.pub.response + * @Description: 异常响应 + * @date 2020/6/4 15:59 + */ +@AllArgsConstructor +public enum CommonResponseEnum implements ServerErrorExceptionAssert { + ERROR(500,"错误"), + /** + * 成功 + */ + SUCCESS(0, "SUCCESS"), + /** + * 服务器繁忙,请稍后重试 + */ + SERVER_BUSY(9998, "服务器繁忙"), + /** + * 服务器异常,无法识别的异常,尽可能对通过判断减少未定义异常抛出 + */ + SERVER_ERROR(9999, "网络异常"), + + + // Time + DATE_NOT_NULL(5001, "日期不能为空"), + DATETIME_NOT_NULL(5001, "时间不能为空"), + TIME_NOT_NULL(5001, "时间不能为空"), + DATE_PATTERN_MISMATCH(5002, "日期[%s]与格式[%s]不匹配,无法解析"), + PATTERN_NOT_NULL(5003, "日期格式不能为空"), + PATTERN_INVALID(5003, "日期格式[%s]无法识别"), + ; + + /** + * 返回码 + */ + private int code; + /** + * 返回消息 + */ + private String message; + + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMsg() { + return message; + } + + public String getMessage() { + return message; + } +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/response/ResponseMsg.java b/keller-public/src/main/java/com/cheri/keller/pub/response/ResponseMsg.java new file mode 100644 index 0000000000000000000000000000000000000000..c5adf0d7fce0a5fb3ee8a50088e286eb22aadeb1 --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/response/ResponseMsg.java @@ -0,0 +1,71 @@ +package com.cheri.keller.pub.response; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +import java.io.Serializable; + +/** + * @author ouka + * @ClassName ResponseMsg + * @Package com.cheri.keller.pub.response + * @Description: 返回信息实体类 + * @date 2020/6/4 15:58 + */ +@Data +@Builder +@ToString +public class ResponseMsg implements Serializable { + public enum ExceptionType { + SYS_EXCEPTION, + BUS_EXCEPTION + } + + private static final Integer DEFAULT_BUSSUCESS_HTTPCODE = 200; + private static final Integer DEFAULT_BUSFAIL_HTTPCODE = 400; + private static final Integer DEFAULT_SYSFAIL_HTTPCODE = 500; + private static final Integer DEFAULT_SUCESS_CODE = 200; + private static final Integer DEFAULT_FAIL_CODE = 500; + private static final String DEFAULT_SUCESS_MSG = "成功"; + private static final String DEFAULT_FAIL_MSG = "失败"; + private Integer code; + private T data; + private DOMAIN msg; + @JsonIgnore + private Integer httpStatus; + + /** + * 成功返回 + * + * @param data 数据 + * @param msg 提示 缺省值为 成功 + * @param 数据类型 + * @return 返回结果 + */ + public static ResponseMsg wrapperBusSuccessResult(T data, DOMAIN msg) { + if (null == msg) { + return ResponseMsg.builder().code(DEFAULT_SUCESS_CODE).msg(DEFAULT_SUCESS_MSG).data(data).httpStatus(DEFAULT_BUSSUCESS_HTTPCODE).build(); + } + return ResponseMsg.builder().code(DEFAULT_SUCESS_CODE).msg(msg).data(data).httpStatus(DEFAULT_BUSSUCESS_HTTPCODE).build(); + } + + /** + * 失败返回 + * + * @param code 状态码 缺省值为 200 + * @param msg 提示信息 缺省值为 失败 + * @return 返回结果 + */ + public static ResponseMsg wrapperFailResult(Integer code, DOMAIN msg, ExceptionType type) { + if (null == code) { + return ResponseMsg.builder().code(DEFAULT_FAIL_CODE).msg(msg).httpStatus(type == ExceptionType.SYS_EXCEPTION ? DEFAULT_SYSFAIL_HTTPCODE : DEFAULT_BUSFAIL_HTTPCODE).build(); + } + if (null == msg) { + return ResponseMsg.builder().code(code).msg(DEFAULT_FAIL_MSG).httpStatus(type == ExceptionType.SYS_EXCEPTION ? DEFAULT_SYSFAIL_HTTPCODE : DEFAULT_BUSFAIL_HTTPCODE).build(); + } + return ResponseMsg.builder().code(code).msg(msg).httpStatus(type == ExceptionType.SYS_EXCEPTION ? DEFAULT_SYSFAIL_HTTPCODE : DEFAULT_BUSFAIL_HTTPCODE).build(); + } + +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/response/ServletResponseEnum.java b/keller-public/src/main/java/com/cheri/keller/pub/response/ServletResponseEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..1cc1f528f860043b53934d4e35c50b93df8820fd --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/response/ServletResponseEnum.java @@ -0,0 +1,49 @@ +package com.cheri.keller.pub.response; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import javax.servlet.http.HttpServletResponse; + +/** + * @author ouka + * @ClassName ServletResponseEnum + * @Package com.cheri.keller.pub.response + * @Description: ServletResponseEnum + * @date 2020/6/4 15:58 + */ +@Getter +@AllArgsConstructor +public enum ServletResponseEnum { + MethodArgumentNotValidException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + MethodArgumentTypeMismatchException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + MissingServletRequestPartException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + MissingPathVariableException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + BindException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + MissingServletRequestParameterException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + TypeMismatchException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + ServletRequestBindingException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + HttpMessageNotReadableException(4400, "", HttpServletResponse.SC_BAD_REQUEST), + NoHandlerFoundException(4404, "", HttpServletResponse.SC_NOT_FOUND), + NoSuchRequestHandlingMethodException(4404, "", HttpServletResponse.SC_NOT_FOUND), + HttpRequestMethodNotSupportedException(4405, "", HttpServletResponse.SC_METHOD_NOT_ALLOWED), + HttpMediaTypeNotAcceptableException(4406, "", HttpServletResponse.SC_NOT_ACCEPTABLE), + HttpMediaTypeNotSupportedException(4415, "", HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE), + ConversionNotSupportedException(4500, "", HttpServletResponse.SC_INTERNAL_SERVER_ERROR), + HttpMessageNotWritableException(4500, "", HttpServletResponse.SC_INTERNAL_SERVER_ERROR), + AsyncRequestTimeoutException(4503, "", HttpServletResponse.SC_SERVICE_UNAVAILABLE) + ; + + /** + * 返回码,目前与{@link #statusCode}相同 + */ + private int code; + /** + * 返回信息,直接读取异常的message + */ + private String message; + /** + * HTTP状态码 + */ + private int statusCode; +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/unifiedreruen/IgnoreUnified.java b/keller-public/src/main/java/com/cheri/keller/pub/unifiedreruen/IgnoreUnified.java new file mode 100644 index 0000000000000000000000000000000000000000..227968eb8ae8cc2e8e287549d2bd77b6b2066af0 --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/unifiedreruen/IgnoreUnified.java @@ -0,0 +1,18 @@ +package com.cheri.keller.pub.unifiedreruen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author ouka + * @ClassName IgnoreUnified + * @Package com.cheri.keller.pub.unifiedreruen + * @Description: 忽略统一返回的注解 + * @date 2020/6/4 16:35 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface IgnoreUnified { +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/unifiedreruen/ReturnAdvice.java b/keller-public/src/main/java/com/cheri/keller/pub/unifiedreruen/ReturnAdvice.java new file mode 100644 index 0000000000000000000000000000000000000000..247d2aa3697f2547cb3b6120d1a788fd2bdc8c70 --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/unifiedreruen/ReturnAdvice.java @@ -0,0 +1,42 @@ +package com.cheri.keller.pub.unifiedreruen; + +import com.cheri.keller.pub.response.ResponseMsg; +import org.springframework.core.MethodParameter; +import org.springframework.http.MediaType; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +import java.util.Objects; + +/** + * @author ouka + * @ClassName ReturnAdvice + * @Package com.cheri.keller.pub.unifiedreruen + * @Description: 统一返回 + * @date 2020/6/4 16:09 + */ +@RestControllerAdvice +public class ReturnAdvice implements ResponseBodyAdvice { + private static final String API_PACKAGE_END_STR = ".api"; + private static final String EXCEPTION_HANDLER_PACKAGE_END_STR = ".exception.api"; + + @Override + public boolean supports(MethodParameter returnType, Class converterType) { + IgnoreUnified annotation = returnType.getExecutable().getDeclaredAnnotation(IgnoreUnified.class); + return (returnType.getContainingClass().getPackage().getName().endsWith(API_PACKAGE_END_STR) || + returnType.getContainingClass().getPackage().getName().endsWith(EXCEPTION_HANDLER_PACKAGE_END_STR)) + && Objects.isNull(annotation); + } + + @Override + public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { + if (body instanceof ResponseMsg) { + return body; + } else { + ResponseMsg resultMsg = ResponseMsg.wrapperBusSuccessResult(body, null); + return resultMsg; + } + } +} diff --git a/keller-public/src/main/java/com/cheri/keller/pub/util/json/GsonUtil.java b/keller-public/src/main/java/com/cheri/keller/pub/util/json/GsonUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..dd6e81d34d39409772b71786fdbf57d000a7dd68 --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/util/json/GsonUtil.java @@ -0,0 +1,111 @@ +package com.cheri.keller.pub.util.json; + +import com.google.gson.*; +import com.google.gson.reflect.TypeToken; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author ouka + * @ClassName GsonUtils + * @Package com.cheri.keller.pub.util.json + * @Description: gson + * @date 2020/6/4 16:42 + */ +public class GsonUtil { + private static Gson gson = null; + + static { + if (gson == null) { + gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); + } + } + + //无参的私有构造方法 + private GsonUtil() { + } + + /** + * 将对象转成json格式 + * + * @param object + * @return String + */ + public static String GsonString(Object object) { + String gsonString = null; + if (gson != null) { + gsonString = gson.toJson(object); + } + return gsonString; + } + + /** + * 将json转成特定的cls的对象 + * + * @param gsonString + * @param cls + * @return + */ + public static T GsonToBean(String gsonString, Class cls) { + T t = null; + if (gson != null) { + //传入json对象和对象类型,将json转成对象 + t = gson.fromJson(gsonString, cls); + } + return t; + } + + /** + * json字符串转成list + * + * @param gsonString + * @param cls + * @return + */ + public static List GsonToList(String gsonString, Class cls) { + List list = null; + if (gson != null) { + //根据泛型返回解析指定的类型,TypeToken>{}.getType()获取返回类型 + list = gson.fromJson(gsonString, new TypeToken>() { + }.getType()); + } + return list; + } + + public static List jsonToList(String json, Class cls) { + ArrayList mList = new ArrayList(); + JsonArray array = new JsonParser().parse(json).getAsJsonArray(); + for (final JsonElement elem : array) { + mList.add(gson.fromJson(elem, cls)); + } + return mList; + } + + public static List> GsonToListMaps(String gsonString) { + List> list = null; + if (gson != null) { + list = gson.fromJson(gsonString, + new TypeToken>>() { + }.getType()); + } + return list; + } + + /** + * json字符串转成map的 + * + * @param gsonString + * @return + */ + public static Map GsonToMaps(String gsonString) { + Map map = null; + if (gson != null) { + map = gson.fromJson(gsonString, new TypeToken>() { + }.getType()); + } + return map; + } +} + diff --git a/keller-public/src/main/java/com/cheri/keller/pub/util/spring/SpringUtils.java b/keller-public/src/main/java/com/cheri/keller/pub/util/spring/SpringUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..8f6a239c9d0dfc71bf9fdf9e59ba640580f7ac5b --- /dev/null +++ b/keller-public/src/main/java/com/cheri/keller/pub/util/spring/SpringUtils.java @@ -0,0 +1,98 @@ +package com.cheri.keller.pub.util.spring; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.stereotype.Component; + +/** + * @author ouka + * @ClassName SpringUtils + * @Package com.cheri.keller.pub.util + * @Description: spring + * @date 2020/6/4 16:40 + */ +@Component +public final class SpringUtils implements BeanFactoryPostProcessor { + + private static ConfigurableListableBeanFactory beanFactory; // Spring应用上下文环境 + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { + SpringUtils.beanFactory = beanFactory; + } + + /** + * 获取对象 + * + * @param name + * @return Object 一个以所给名字注册的bean的实例 + * @throws BeansException + * + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException { + return (T) beanFactory.getBean(name); + } + + /** + * 获取类型为requiredType的对象 + * + * @param clz + * @return + * @throws BeansException + * + */ + public static T getBean(Class clz) throws BeansException { + T result = (T) beanFactory.getBean(clz); + return result; + } + + /** + * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true + * + * @param name + * @return boolean + */ + public static boolean containsBean(String name) { + return beanFactory.containsBean(name); + } + + /** + * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 + * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) + * + * @param name + * @return boolean + * @throws NoSuchBeanDefinitionException + * + */ + public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { + return beanFactory.isSingleton(name); + } + + /** + * @param name + * @return Class 注册对象的类型 + * @throws NoSuchBeanDefinitionException + * + */ + public static Class getType(String name) throws NoSuchBeanDefinitionException { + return beanFactory.getType(name); + } + + /** + * 如果给定的bean名字在bean定义中有别名,则返回这些别名 + * + * @param name + * @return + * @throws NoSuchBeanDefinitionException + * + */ + public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { + return beanFactory.getAliases(name); + } + +} + diff --git a/keller/pom.xml b/keller/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..4dda5ae6ad720d89c2b8f6252c94d52f777e206d --- /dev/null +++ b/keller/pom.xml @@ -0,0 +1,48 @@ + + + + keller-all + com.cheri + 1.0-SNAPSHOT + + 4.0.0 + jar + keller + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.alibaba + fastjson + + + + com.google.code.gson + gson + + + + org.xmlunit + xmlunit-core + + + + \ No newline at end of file diff --git a/src/main/java/com/cheri/keller/KellerApplication.java b/keller/src/main/java/com/cheri/keller/KellerApplication.java similarity index 100% rename from src/main/java/com/cheri/keller/KellerApplication.java rename to keller/src/main/java/com/cheri/keller/KellerApplication.java diff --git a/src/main/java/com/cheri/keller/common/KellerRunner.java b/keller/src/main/java/com/cheri/keller/common/KellerRunner.java similarity index 100% rename from src/main/java/com/cheri/keller/common/KellerRunner.java rename to keller/src/main/java/com/cheri/keller/common/KellerRunner.java diff --git a/src/main/java/com/cheri/keller/common/config/CommonConfig.java b/keller/src/main/java/com/cheri/keller/common/config/CommonConfig.java similarity index 100% rename from src/main/java/com/cheri/keller/common/config/CommonConfig.java rename to keller/src/main/java/com/cheri/keller/common/config/CommonConfig.java diff --git a/src/main/java/com/cheri/keller/common/config/PublicConstant.java b/keller/src/main/java/com/cheri/keller/common/config/PublicConstant.java similarity index 100% rename from src/main/java/com/cheri/keller/common/config/PublicConstant.java rename to keller/src/main/java/com/cheri/keller/common/config/PublicConstant.java diff --git a/src/main/java/com/cheri/keller/common/config/RequestConfig.java b/keller/src/main/java/com/cheri/keller/common/config/RequestConfig.java similarity index 100% rename from src/main/java/com/cheri/keller/common/config/RequestConfig.java rename to keller/src/main/java/com/cheri/keller/common/config/RequestConfig.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/BaseEntity.java b/keller/src/main/java/com/cheri/keller/common/mybatis/BaseEntity.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/BaseEntity.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/BaseEntity.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/BaseException.java b/keller/src/main/java/com/cheri/keller/common/mybatis/BaseException.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/BaseException.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/BaseException.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/BaseMapper.java b/keller/src/main/java/com/cheri/keller/common/mybatis/BaseMapper.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/BaseMapper.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/BaseMapper.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/SqlFieldReader.java b/keller/src/main/java/com/cheri/keller/common/mybatis/SqlFieldReader.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/SqlFieldReader.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/SqlFieldReader.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/TypeCaster.java b/keller/src/main/java/com/cheri/keller/common/mybatis/TypeCaster.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/TypeCaster.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/TypeCaster.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/annotation/FieldAttribute.java b/keller/src/main/java/com/cheri/keller/common/mybatis/annotation/FieldAttribute.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/annotation/FieldAttribute.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/annotation/FieldAttribute.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/annotation/IndexAttribute.java b/keller/src/main/java/com/cheri/keller/common/mybatis/annotation/IndexAttribute.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/annotation/IndexAttribute.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/annotation/IndexAttribute.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/annotation/KeyAttribute.java b/keller/src/main/java/com/cheri/keller/common/mybatis/annotation/KeyAttribute.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/annotation/KeyAttribute.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/annotation/KeyAttribute.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/annotation/SortAttribute.java b/keller/src/main/java/com/cheri/keller/common/mybatis/annotation/SortAttribute.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/annotation/SortAttribute.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/annotation/SortAttribute.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/annotation/TableAttribute.java b/keller/src/main/java/com/cheri/keller/common/mybatis/annotation/TableAttribute.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/annotation/TableAttribute.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/annotation/TableAttribute.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/provider/BaseCreateProvider.java b/keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseCreateProvider.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/provider/BaseCreateProvider.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseCreateProvider.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/provider/BaseDeleteProvider.java b/keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseDeleteProvider.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/provider/BaseDeleteProvider.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseDeleteProvider.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/provider/BaseInsertProvider.java b/keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseInsertProvider.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/provider/BaseInsertProvider.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseInsertProvider.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/provider/BaseSelectProvider.java b/keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseSelectProvider.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/provider/BaseSelectProvider.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseSelectProvider.java diff --git a/src/main/java/com/cheri/keller/common/mybatis/provider/BaseUpdateProvider.java b/keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseUpdateProvider.java similarity index 100% rename from src/main/java/com/cheri/keller/common/mybatis/provider/BaseUpdateProvider.java rename to keller/src/main/java/com/cheri/keller/common/mybatis/provider/BaseUpdateProvider.java diff --git a/src/main/java/com/cheri/keller/common/proxy/ApiController.java b/keller/src/main/java/com/cheri/keller/common/proxy/ApiController.java similarity index 100% rename from src/main/java/com/cheri/keller/common/proxy/ApiController.java rename to keller/src/main/java/com/cheri/keller/common/proxy/ApiController.java diff --git a/src/main/java/com/cheri/keller/common/proxy/FormController.java b/keller/src/main/java/com/cheri/keller/common/proxy/FormController.java similarity index 100% rename from src/main/java/com/cheri/keller/common/proxy/FormController.java rename to keller/src/main/java/com/cheri/keller/common/proxy/FormController.java diff --git a/src/main/java/com/cheri/keller/common/response/Response.java b/keller/src/main/java/com/cheri/keller/common/response/Response.java similarity index 100% rename from src/main/java/com/cheri/keller/common/response/Response.java rename to keller/src/main/java/com/cheri/keller/common/response/Response.java diff --git a/src/main/java/com/cheri/keller/common/response/ResultData.java b/keller/src/main/java/com/cheri/keller/common/response/ResultData.java similarity index 100% rename from src/main/java/com/cheri/keller/common/response/ResultData.java rename to keller/src/main/java/com/cheri/keller/common/response/ResultData.java diff --git a/src/main/java/com/cheri/keller/common/util/Console.java b/keller/src/main/java/com/cheri/keller/common/util/Console.java similarity index 100% rename from src/main/java/com/cheri/keller/common/util/Console.java rename to keller/src/main/java/com/cheri/keller/common/util/Console.java diff --git a/src/main/java/com/cheri/keller/common/util/RequestUtil.java b/keller/src/main/java/com/cheri/keller/common/util/RequestUtil.java similarity index 100% rename from src/main/java/com/cheri/keller/common/util/RequestUtil.java rename to keller/src/main/java/com/cheri/keller/common/util/RequestUtil.java diff --git a/src/main/java/com/cheri/keller/common/util/ResponseUtils.java b/keller/src/main/java/com/cheri/keller/common/util/ResponseUtils.java similarity index 100% rename from src/main/java/com/cheri/keller/common/util/ResponseUtils.java rename to keller/src/main/java/com/cheri/keller/common/util/ResponseUtils.java diff --git a/src/main/java/com/cheri/keller/common/util/SendEmailUtils.java b/keller/src/main/java/com/cheri/keller/common/util/SendEmailUtils.java similarity index 100% rename from src/main/java/com/cheri/keller/common/util/SendEmailUtils.java rename to keller/src/main/java/com/cheri/keller/common/util/SendEmailUtils.java diff --git a/src/main/java/com/cheri/keller/common/util/StringUtils.java b/keller/src/main/java/com/cheri/keller/common/util/StringUtils.java similarity index 100% rename from src/main/java/com/cheri/keller/common/util/StringUtils.java rename to keller/src/main/java/com/cheri/keller/common/util/StringUtils.java diff --git a/src/main/java/com/cheri/keller/controller/BaseController.java b/keller/src/main/java/com/cheri/keller/controller/BaseController.java similarity index 100% rename from src/main/java/com/cheri/keller/controller/BaseController.java rename to keller/src/main/java/com/cheri/keller/controller/BaseController.java diff --git a/src/main/java/com/cheri/keller/controller/JsonResourceUtils.java b/keller/src/main/java/com/cheri/keller/controller/JsonResourceUtils.java similarity index 100% rename from src/main/java/com/cheri/keller/controller/JsonResourceUtils.java rename to keller/src/main/java/com/cheri/keller/controller/JsonResourceUtils.java diff --git a/src/main/java/com/cheri/keller/controller/PageUtil.java b/keller/src/main/java/com/cheri/keller/controller/PageUtil.java similarity index 100% rename from src/main/java/com/cheri/keller/controller/PageUtil.java rename to keller/src/main/java/com/cheri/keller/controller/PageUtil.java diff --git a/src/main/java/com/cheri/keller/controller/TestTableController.java b/keller/src/main/java/com/cheri/keller/controller/TestTableController.java similarity index 100% rename from src/main/java/com/cheri/keller/controller/TestTableController.java rename to keller/src/main/java/com/cheri/keller/controller/TestTableController.java diff --git a/src/main/java/com/cheri/keller/controller/UserController.java b/keller/src/main/java/com/cheri/keller/controller/UserController.java similarity index 100% rename from src/main/java/com/cheri/keller/controller/UserController.java rename to keller/src/main/java/com/cheri/keller/controller/UserController.java diff --git a/src/main/java/com/cheri/keller/entity/EmailLog.java b/keller/src/main/java/com/cheri/keller/entity/EmailLog.java similarity index 100% rename from src/main/java/com/cheri/keller/entity/EmailLog.java rename to keller/src/main/java/com/cheri/keller/entity/EmailLog.java diff --git a/src/main/java/com/cheri/keller/entity/TestTable.java b/keller/src/main/java/com/cheri/keller/entity/TestTable.java similarity index 100% rename from src/main/java/com/cheri/keller/entity/TestTable.java rename to keller/src/main/java/com/cheri/keller/entity/TestTable.java diff --git a/src/main/java/com/cheri/keller/entity/UserInfo.java b/keller/src/main/java/com/cheri/keller/entity/UserInfo.java similarity index 100% rename from src/main/java/com/cheri/keller/entity/UserInfo.java rename to keller/src/main/java/com/cheri/keller/entity/UserInfo.java diff --git a/src/main/java/com/cheri/keller/mapper/EmailMapper.java b/keller/src/main/java/com/cheri/keller/mapper/EmailMapper.java similarity index 100% rename from src/main/java/com/cheri/keller/mapper/EmailMapper.java rename to keller/src/main/java/com/cheri/keller/mapper/EmailMapper.java diff --git a/src/main/java/com/cheri/keller/mapper/TestTableMapper.java b/keller/src/main/java/com/cheri/keller/mapper/TestTableMapper.java similarity index 100% rename from src/main/java/com/cheri/keller/mapper/TestTableMapper.java rename to keller/src/main/java/com/cheri/keller/mapper/TestTableMapper.java diff --git a/src/main/java/com/cheri/keller/mapper/UserMapper.java b/keller/src/main/java/com/cheri/keller/mapper/UserMapper.java similarity index 100% rename from src/main/java/com/cheri/keller/mapper/UserMapper.java rename to keller/src/main/java/com/cheri/keller/mapper/UserMapper.java diff --git a/src/main/java/com/cheri/keller/service/EmailService.java b/keller/src/main/java/com/cheri/keller/service/EmailService.java similarity index 100% rename from src/main/java/com/cheri/keller/service/EmailService.java rename to keller/src/main/java/com/cheri/keller/service/EmailService.java diff --git a/src/main/java/com/cheri/keller/service/UserService.java b/keller/src/main/java/com/cheri/keller/service/UserService.java similarity index 100% rename from src/main/java/com/cheri/keller/service/UserService.java rename to keller/src/main/java/com/cheri/keller/service/UserService.java diff --git a/src/main/resources/application.properties b/keller/src/main/resources/application.properties similarity index 92% rename from src/main/resources/application.properties rename to keller/src/main/resources/application.properties index b51b9433f29ff87e6870afb5f41e4641c869c674..151d64134cc595dbc8ec7a0d425c9038c0bfe776 100644 --- a/src/main/resources/application.properties +++ b/keller/src/main/resources/application.properties @@ -6,7 +6,7 @@ spring.application.name=KellerNotes #mysql\u9A71\u52A8\u7C7B spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver #mysql\u8FDE\u63A5\u5730\u5740 -spring.datasource.url = jdbc:mysql://localhost:3307/kyle_notes?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=GMT +spring.datasource.url = jdbc:mysql://localhost:3306/kyle_notes?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=GMT #mysql\u7528\u6237\u540D spring.datasource.username = root #mysql\u5BC6\u7801 diff --git a/src/main/resources/config/json.json b/keller/src/main/resources/config/json.json similarity index 100% rename from src/main/resources/config/json.json rename to keller/src/main/resources/config/json.json diff --git a/src/main/resources/dbinfo/user_info.sql b/keller/src/main/resources/dbinfo/user_info.sql similarity index 100% rename from src/main/resources/dbinfo/user_info.sql rename to keller/src/main/resources/dbinfo/user_info.sql diff --git a/src/main/resources/mappers/TestTableMapper.xml b/keller/src/main/resources/mappers/TestTableMapper.xml similarity index 100% rename from src/main/resources/mappers/TestTableMapper.xml rename to keller/src/main/resources/mappers/TestTableMapper.xml diff --git a/mvnw b/mvnw deleted file mode 100644 index a16b5431b4c3cab50323a3f558003fd0abd87dad..0000000000000000000000000000000000000000 --- a/mvnw +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd deleted file mode 100644 index c8d43372c986d97911cdc21bd87e0cbe3d83bdda..0000000000000000000000000000000000000000 --- a/mvnw.cmd +++ /dev/null @@ -1,182 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - -FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml index bab71a659dea3cfc7ed2bbdd470f7e11264a127c..22696ef3409188a9cc259a27ed077c732ef68eac 100644 --- a/pom.xml +++ b/pom.xml @@ -1,73 +1,32 @@ - + 4.0.0 + pom + + keller-dependencies + keller + keller-public + + spring-boot-test-autoconfigure org.springframework.boot - spring-boot-starter-parent 2.2.6.RELEASE - com.cheri - keller - 0.0.1-SNAPSHOT - keller - Demo project for Spring Boot + keller-all + 1.0-SNAPSHOT - - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - 2.1.1 - - - - mysql - mysql-connector-java - runtime - - - org.springframework.boot - spring-boot-starter-test - test - - - org.junit.vintage - junit-vintage-engine - - - - - javax.mail - mail - 1.4.7 - - - com.alibaba - fastjson - 1.2.51 - - - org.xmlunit - xmlunit-core - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - + + + + com.cheri + keller-dependencies + ${project.version} + pom + import + + + + \ No newline at end of file diff --git a/src/test/java/com/cheri/keller/KellerApplicationTests.java b/src/test/java/com/cheri/keller/KellerApplicationTests.java deleted file mode 100644 index bd9d65ab757c7a11caf59998c111fb552df6f047..0000000000000000000000000000000000000000 --- a/src/test/java/com/cheri/keller/KellerApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.cheri.keller; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class KellerApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/src/test/java/com/cheri/keller/mapper/TestTableMapperTest.java b/src/test/java/com/cheri/keller/mapper/TestTableMapperTest.java deleted file mode 100644 index 15671002c925303277a6b199eab79f1446670e8f..0000000000000000000000000000000000000000 --- a/src/test/java/com/cheri/keller/mapper/TestTableMapperTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.cheri.keller.mapper; - -import com.cheri.keller.entity.TestTable; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * @author Aaron Du - * @version V1.0 - * @date 2020/5/23 17:46 - **/ -@SpringBootTest -class TestTableMapperTest { - - @Autowired - TestTableMapper mapper; - - @Test - void bacthSelect() { - List testTables = mapper.bacthSelect(Arrays.asList(1L,2L,3L,4L,4L,5L,6L)); - System.out.println(testTables); - } - - @Test - void batchUpdate() { - - mapper.batchUpdate("1",Arrays.asList(1L,2L,3L,4L,4L,5L,6L),"9"); - } - - public static void main(String[] args) { - String s = "1,2,3,3,5,"; - String[] S1 = s.split(","); - System.out.println(S1.length); - } -} \ No newline at end of file diff --git a/src/test/java/com/cheri/keller/mapper/UserMapperTest.java b/src/test/java/com/cheri/keller/mapper/UserMapperTest.java deleted file mode 100644 index 7a3cf2572a5a9368a737ae4cc020fde23546942f..0000000000000000000000000000000000000000 --- a/src/test/java/com/cheri/keller/mapper/UserMapperTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.cheri.keller.mapper; - -import com.cheri.keller.common.util.Console; -import com.cheri.keller.common.util.StringUtils; -import com.cheri.keller.entity.EmailLog; -import com.cheri.keller.entity.UserInfo; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @author Aaron Du - * @version V1.0 - * @date 2020/5/5 13:11 - **/ -@SpringBootTest -class UserMapperTest { - - @Resource - private UserMapper userMapper; - @Resource - private EmailMapper emailMapper; - - @Test - void contextLoads() { - } - - - @Test - public void initTestData() { - for (int i = 0; i < 10; i++) { - UserInfo userInfo = new UserInfo(); - userInfo.setType(1); - userInfo.setEmail(StringUtils.getAllCharString(10)); - userInfo.setPassword("123456"); - userMapper.baseInsertAndReturnKey(userInfo); - Console.println(userInfo.getId() + "", userInfo); - } - } - - @Test - public void getAll() { - List list = userMapper.baseSelectAll(new UserInfo()); - for (UserInfo userInfo : list) { - Console.println(userInfo.getId() + "", userInfo); - } - } - - @Test - public void createUserInfoTable() { - emailMapper.baseCreate(new EmailLog()); - } -}