From f0b134801f297894cc6159270be54b4def7cf11d Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期二, 26 一月 2021 00:35:34 +0800
Subject: [PATCH] feat(人力资源微服务、通用工具包): 不良记录管理接口完善、通用工具增加
---
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/FieldInfo.java | 34 ++++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/ReturnResult.java | 142 +++++++++++++++++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/IResult.java | 16 ++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/ResponseResult.java | 23 ++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateSerializer.java | 26 +++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/enums/ResultCodeEnum.java | 111 +++++++++++++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeDeserializer.java | 34 ++++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateDeSerializer.java | 35 ++++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeSerializer.java | 26 +++
9 files changed, 447 insertions(+), 0 deletions(-)
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/FieldInfo.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/FieldInfo.java
new file mode 100644
index 0000000..d7d88e5
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/FieldInfo.java
@@ -0,0 +1,34 @@
+package cc.mrbird.febs.common.core.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * name: FieldInfo
+ * package: cc.mrbird.febs.common.core.annotation
+ * description: 实体属性说明注解
+ * date: 2021-01-25 23:01
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+@Documented
+public @interface FieldInfo {
+ /**
+ * 字段名称
+ */
+ String name() default "";
+
+ /**
+ * 字段类型
+ */
+
+ String type() default "";
+
+ /**
+ * 字段说明
+ */
+ String explain() default "";
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/ResponseResult.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/ResponseResult.java
new file mode 100644
index 0000000..d79e402
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/annotation/ResponseResult.java
@@ -0,0 +1,23 @@
+package cc.mrbird.febs.common.core.annotation;
+
+import cc.mrbird.febs.common.core.response.IResult;
+import cc.mrbird.febs.common.core.response.ReturnResult;
+
+import java.lang.annotation.*;
+
+/**
+ * name: ResponseResult
+ * package: cc.mrbird.febs.common.core.annotation
+ * description: 统一返回结果注解
+ * date: 2021-01-25 23:29
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+@Target({ ElementType.TYPE, ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface ResponseResult {
+ Class<? extends IResult> value() default ReturnResult.class;
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/enums/ResultCodeEnum.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/enums/ResultCodeEnum.java
new file mode 100644
index 0000000..ce001f3
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/enums/ResultCodeEnum.java
@@ -0,0 +1,111 @@
+package cc.mrbird.febs.common.core.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * name: ResultCodeEnum
+ * package: cc.mrbird.febs.common.core.enums
+ * description: 统一返回结果码枚举
+ * date: 2021-01-25 23:12
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public enum ResultCodeEnum {
+ /* 成功状态码 */
+ SUCCESS(200, "请求成功"),
+
+ /* 参数错误:10001-19999 */
+ PARAM_IS_INVALID(10001, "参数无效"),
+ PARAM_IS_BLANK(10002, "参数为空"),
+ PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),
+ PARAM_NOT_COMPLETE(10004, "参数缺失"),
+
+ /* 用户错误:20001-29999*/
+ USER_NOT_LOGGED_IN(20001, "用户未登录"),
+ USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),
+ USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),
+ USER_NOT_EXIST(20004, "用户不存在"),
+ USER_HAS_EXISTED(20005, "用户已存在"),
+ LOGIN_CREDENTIAL_EXISTED(20006, "凭证已存在"),
+
+ /* 业务错误:30001-39999 */
+ SPECIFIED_QUESTIONED_USER_NOT_EXIST(30001, "业务错误"),
+
+ /* 系统错误:40001-49999 */
+ SYSTEM_INNER_ERROR(40001, "系统繁忙,请稍后重试"),
+ BANK_NO_ANSWER(49999, "银行服务器应答超时"),
+
+ /* 数据错误:50001-599999 */
+ RESULT_DATA_NONE(50001, "数据未找到"),
+ DATA_IS_WRONG(50002, "数据有误"),
+ DATA_ALREADY_EXISTED(50003, "数据已存在"),
+
+ /* 接口错误:60001-69999 */
+ INTERFACE_INNER_INVOKE_ERROR(60001, "内部系统接口调用异常"),
+ INTERFACE_OUTTER_INVOKE_ERROR(60002, "外部系统接口调用异常"),
+ INTERFACE_FORBID_VISIT(60003, "该接口禁止访问"),
+ INTERFACE_ADDRESS_INVALID(60004, "接口地址无效"),
+ INTERFACE_REQUEST_TIMEOUT(60005, "接口请求超时"),
+ INTERFACE_EXCEED_LOAD(60006, "接口负载过高"),
+
+ /* 权限错误:70001-79999 */
+ PERMISSION_NO_ACCESS(70001, "无访问权限"),
+ RESOURCE_EXISTED(70002, "资源已存在"),
+ RESOURCE_NOT_EXISTED(70003, "资源不存在");
+
+ private final Integer code;
+
+ private final String message;
+
+ ResultCodeEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer code() {
+ return this.code;
+ }
+
+ public String message() {
+ return this.message;
+ }
+
+ public static String getMessage(String name) {
+ for (ResultCodeEnum item : ResultCodeEnum.values()) {
+ if (item.name().equals(name)) {
+ return item.message;
+ }
+ }
+ return name;
+ }
+
+ public static Integer getCode(String name) {
+ for (ResultCodeEnum item : ResultCodeEnum.values()) {
+ if (item.name().equals(name)) {
+ return item.code;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return this.name();
+ }
+
+ /***
+ * 校验重复的code值
+ */
+ static void main(String[] args) {
+ ResultCodeEnum[] apiResultCodeEnums = ResultCodeEnum.values();
+ List<Integer> codeList = new ArrayList<>();
+ for (ResultCodeEnum apiResultCodeEnum : apiResultCodeEnums) {
+ if (!codeList.contains(apiResultCodeEnum.code)) {
+ codeList.add(apiResultCodeEnum.code());
+ }
+ }
+ }
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/IResult.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/IResult.java
new file mode 100644
index 0000000..06435c1
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/IResult.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.common.core.response;
+
+import java.io.Serializable;
+
+/**
+ * name: IResult
+ * package: cc.mrbird.febs.common.core.response
+ * description: 统一响应返回结果接口
+ * date: 2021-01-25 23:18
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public interface IResult extends Serializable {
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/ReturnResult.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/ReturnResult.java
new file mode 100644
index 0000000..493162c
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/response/ReturnResult.java
@@ -0,0 +1,142 @@
+package cc.mrbird.febs.common.core.response;
+
+import cc.mrbird.febs.common.core.enums.ResultCodeEnum;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * name: ResponseResult
+ * package: cc.mrbird.febs.common.core.response
+ * description: 统一响应返回结果
+ * date: 2021-01-25 23:20
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class ReturnResult implements IResult {
+
+ private static final long serialVersionUID = 6027404969238507190L;
+ /**
+ * 请求是否成功
+ */
+ private boolean success;
+
+ /**
+ * 请求成功或失败的结果码
+ */
+ private Integer code;
+
+ /**
+ * 请求成功或失败的提示消息
+ */
+ private String message;
+
+ /**
+ * 成功时返回的数据,失败时返回具体的异常信息
+ */
+ private Object data;
+
+ /**
+ * 返回成功
+ * <p>
+ * date 2020-06-18 23:38
+ *
+ * @return com.zd.api.standard.core.web.result.ReturnResult
+ * @author: luoyibo
+ */
+ public static ReturnResult success() {
+ ReturnResult result = new ReturnResult();
+ result.setResultCode(ResultCodeEnum.SUCCESS);
+ result.setMessage(ResultCodeEnum.SUCCESS.message());
+ result.setSuccess(true);
+ return result;
+ }
+
+ /**
+ * 返回成功,同时设置返回数据对象
+ * <p>
+ * date 2020-06-18 23:39
+ *
+ * @param data 返回数据对象
+ * @return com.zd.api.standard.core.web.result.ResponseResult
+ * @author: luoyibo
+ */
+ public static ReturnResult success(Object data) {
+ ReturnResult result = new ReturnResult();
+ result.setResultCode(ResultCodeEnum.SUCCESS);
+ result.setMessage(ResultCodeEnum.SUCCESS.message());
+ result.setSuccess(true);
+ result.setData(data);
+ return result;
+ }
+ /**
+ *
+ * 返回失败
+ *
+ * date 2021-01-25 23:25
+ * @author: luoyibo
+ * @param resultCodeEnum 结果码
+ * @return cc.mrbird.febs.common.core.response.ResponseResult
+ */
+ public static ReturnResult failure(ResultCodeEnum resultCodeEnum) {
+ ReturnResult result = new ReturnResult();
+ result.setResultCode(resultCodeEnum);
+ result.setSuccess(false);
+ return result;
+ }
+/**
+ *
+ * 返回失败
+ *
+ * date 2021-01-25 23:26
+ * @author: luoyibo
+ * @param resultCodeEnum 结果码
+ * @param data 返回数据
+ * @return cc.mrbird.febs.common.core.response.ResponseResult
+ */
+ public static ReturnResult failure(ResultCodeEnum resultCodeEnum, Object data) {
+ ReturnResult result = new ReturnResult();
+ result.setResultCode(resultCodeEnum);
+ result.setData(data);
+ result.setSuccess(false);
+ return result;
+ }
+ /**
+ *
+ * 返回失败
+ *
+ * date 2021-01-25 23:27
+ * @author: luoyibo
+ * @param resultCodeEnum 结果码
+ * @param message 提示消息
+ * @return cc.mrbird.febs.common.core.response.ResponseResult
+ */
+ public static ReturnResult failure(ResultCodeEnum resultCodeEnum, String message) {
+ ReturnResult result = new ReturnResult();
+ result.setCode(resultCodeEnum.code());
+ result.setMessage(message);
+ result.setSuccess(false);
+ return result;
+ }
+
+ /**
+ *
+ * 设置结果码
+ *
+ * date 2021-01-25 23:28
+ * @author: luoyibo
+ * @param code 1
+ * @return void
+ */
+ private void setResultCode(ResultCodeEnum code) {
+ this.code = code.code();
+ this.message = code.message();
+ }
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateDeSerializer.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateDeSerializer.java
new file mode 100644
index 0000000..9518e4a
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateDeSerializer.java
@@ -0,0 +1,35 @@
+package cc.mrbird.febs.common.core.utils;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * name: DateDeSerializer
+ * package: cc.mrbird.febs.common.core.utils
+ * description: 日期反序列化工具
+ * date: 2021-01-25 22:26
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class DateDeSerializer extends JsonDeserializer<Date> {
+
+ @Override
+ public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
+ String date=jsonParser.getText();
+ try{
+ return format.parse(date);
+ } catch (ParseException e) {
+ throw new RuntimeException();
+ }
+ }
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateSerializer.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateSerializer.java
new file mode 100644
index 0000000..e3e7677
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateSerializer.java
@@ -0,0 +1,26 @@
+package cc.mrbird.febs.common.core.utils;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.util.Date;
+
+/**
+ * name: DateSerializer
+ * package: cc.mrbird.febs.common.core.utils
+ * description: 日期json序列化工具
+ * date: 2021-01-25 22:30
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class DateSerializer extends JsonSerializer<Date> {
+ private static final String DATE_FORMAT = "yyyy-MM-dd";
+ @Override
+ public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+ jsonGenerator.writeString(DateUtil.getDateFormat(date, DATE_FORMAT));
+ }
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeDeserializer.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeDeserializer.java
new file mode 100644
index 0000000..be7cec1
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeDeserializer.java
@@ -0,0 +1,34 @@
+package cc.mrbird.febs.common.core.utils;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * name: DateTimeDeserializer
+ * package: cc.mrbird.febs.common.core.utils
+ * description: 日期时间json反序列化工具
+ * date: 2021-01-25 22:36
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class DateTimeDeserializer extends JsonDeserializer<Date> {
+ @Override
+ public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String date=jsonParser.getText();
+ try{
+ return format.parse(date);
+ } catch (ParseException e) {
+ throw new RuntimeException();
+ }
+ }
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeSerializer.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeSerializer.java
new file mode 100644
index 0000000..eeedc40
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/DateTimeSerializer.java
@@ -0,0 +1,26 @@
+package cc.mrbird.febs.common.core.utils;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.util.Date;
+
+/**
+ * name: DateTimeSerializer
+ * package: cc.mrbird.febs.common.core.utils
+ * description: 日期时间格式json序列化工具
+ * date: 2021-01-25 22:34
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class DateTimeSerializer extends JsonSerializer<Date> {
+ private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
+ @Override
+ public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+ jsonGenerator.writeString(DateUtil.getDateFormat(date, DATE_FORMAT));
+ }
+}
--
Gitblit v1.8.0