implements SysLogService {
+ @Override
+ public void cleanLog() {
+ baseMapper.cleanLog();
+ }
}
diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java
index bf14338..4a5af01 100644
--- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java
+++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java
@@ -17,14 +17,23 @@
package com.chushang.common.mybatis;
import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
+import com.chushang.common.core.constant.SecurityConstants;
+import com.chushang.common.core.util.ServletUtils;
+import com.chushang.common.core.util.StringUtils;
import com.chushang.common.mybatis.config.MybatisPlusMapperRefresh;
import com.chushang.common.mybatis.config.MybatisPlusMetaObjectHandler;
import com.chushang.common.mybatis.resolver.SqlFilterArgumentResolver;
+import lombok.extern.slf4j.Slf4j;
+import net.sf.jsqlparser.expression.Expression;
+import net.sf.jsqlparser.expression.LongValue;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,10 +45,8 @@ import org.springframework.core.io.Resource;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import java.util.Arrays;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
/**
* @author lengleng
@@ -47,6 +54,7 @@ import java.util.Set;
*
* mybatis plus 统一配置
*/
+@Slf4j
@Configuration(proxyBeanMethods = false)
@MapperScan({"com.chushang.**.mapper"})
public class MybatisAutoConfiguration implements WebMvcConfigurer {
@@ -72,6 +80,27 @@ public class MybatisAutoConfiguration implements WebMvcConfigurer {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ /**
+ * 新多租户插件配置,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存万一出现问题
+ */
+ interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
+ @Override
+ public Expression getTenantId() {
+ String tenantId = ServletUtils.getRequest().getHeader(SecurityConstants.TENANT_ID);
+ // 租户id, 应当就是其
+ return new LongValue(tenantId);
+ }
+
+ // 这是 default 方法,默认返回 false 表示所有表都需要拼多租户条件
+ @Override
+ public boolean ignoreTable(String tableName) {
+ log.info("tableName {}", tableName);
+ String tenantId = ServletUtils.getRequest().getHeader(SecurityConstants.TENANT_ID);
+ // 租户id 为空不拼接租户, 否则拼接租户id
+ return StringUtils.isEmpty(tenantId);
+ }
+ }));
+
// 分页插件, 对于单一数据库类型来说,都建议配置该值,避免每次分页都去抓取数据库类型
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
// 乐观锁
@@ -88,6 +117,10 @@ public class MybatisAutoConfiguration implements WebMvcConfigurer {
return new MybatisPlusMetaObjectHandler();
}
+
+
+
+
// @Bean
// public MybatisPlusMapperRefresh mybatisPlusMapperRefresh(ApplicationContext applicationContext, SqlSessionFactory sqlSessionFactory){
// Set mapperLocations = new LinkedHashSet<>();
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java
index 7952d5b..fc00c3f 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java
@@ -32,8 +32,10 @@ public class InnerAuthAspect implements Ordered
String userid = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USER_ID);
String username = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USERNAME);
+ // 设置租户id
+ String tenantId = ServletUtils.getRequest().getHeader(SecurityConstants.TENANT_ID);
// 用户信息验证
- if (innerAuth.isUser() && (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)))
+ if (innerAuth.isUser() && (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username) || StringUtils.isEmpty(tenantId)))
{
throw new InnerAuthException("没有设置用户信息,不允许访问 ");
}
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java
index 7560c0e..a2ee455 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java
@@ -52,9 +52,9 @@ public class SecurityContextHolder
THREAD_LOCAL.set(threadLocalMap);
}
- public static Integer getUserId()
+ public static Long getUserId()
{
- return Convert.toInt(get(SecurityConstants.DETAILS_USER_ID), 0);
+ return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L);
}
public static void setUserId(String account)
@@ -96,4 +96,11 @@ public class SecurityContextHolder
{
set(SecurityConstants.ROLE_PERMISSION, permissions);
}
+
+ public static void setTenantId(String tenantId){
+ set(SecurityConstants.TENANT_ID, tenantId);
+ }
+ public static String getTenantId(){
+ return get(SecurityConstants.TENANT_ID);
+ }
}
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java
index 06a5465..9593803 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java
@@ -3,6 +3,7 @@ package com.chushang.security.entity.vo;
import lombok.Data;
import java.io.Serializable;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -10,7 +11,7 @@ import java.util.Set;
* by zhaowenyuan create 2022/5/19 12:09
*/
@Data
-public class LoginUser implements Serializable
+public class LoginUser implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -22,7 +23,7 @@ public class LoginUser implements Serializable
/**
* 用户名id
*/
- private Integer userId;
+ private Long userId;
/**
* 用户名
@@ -53,12 +54,18 @@ public class LoginUser implements Serializable
* 角色对象
*/
private Set roles;
-
+ /**
+ * 用户数据权限
+ */
+ private List scopes;
/**
* 用户信息
*/
private T sysUser;
-
+ /**
+ * 租户ID
+ */
+ private Long tenantId;
/**
* 当前用户对应的 数据权限
*/
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java
index 8eb2ee4..d7b28df 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java
@@ -47,6 +47,11 @@ public class FeignRequestInterceptor implements RequestInterceptor
{
requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication);
}
+ // 租户id
+ String tenantId = headers.get(SecurityConstants.TENANT_ID);
+ if (StringUtils.isNotEmpty(tenantId)){
+ requestTemplate.header(SecurityConstants.TENANT_ID, tenantId);
+ }
// 配置客户端IP
requestTemplate.header("X-Forwarded-For", IPUtils.clientIp(ServletUtils.getRequest()));
}
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java
index 186c660..cd3c9a1 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java
@@ -32,6 +32,7 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));
+ SecurityContextHolder.setTenantId(ServletUtils.getHeader(request, SecurityConstants.TENANT_ID));
String token = SecurityUtils.getToken();
if (StringUtils.isNotEmpty(token))
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java
index a872f6c..f6da4b8 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java
@@ -42,8 +42,9 @@ public class TokenService
public Map createToken(LoginUser loginUser)
{
String token = IdUtils.getId(31);
- Integer userId = loginUser.getUserId();
+ Long userId = loginUser.getUserId();
String username = loginUser.getUsername();
+ Long tenantId = loginUser.getTenantId();
String tokenKey = token + "#" + userId;
loginUser.setToken(tokenKey);
loginUser.setIpaddr(IPUtils.clientIp(ServletUtils.getRequest()));
@@ -55,6 +56,8 @@ public class TokenService
claimsMap.put(SecurityConstants.USER_KEY, tokenKey);
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, username);
+ // 租户id
+ claimsMap.put(SecurityConstants.TENANT_ID, tenantId);
// 接口返回信息
Map rspMap = new HashMap<>();
@@ -186,7 +189,7 @@ public class TokenService
/**
* 根据 用户ID 进行用户强退
*/
- public void forcedRetreat(Integer userId){
+ public void forcedRetreat(Long userId){
RKeys rKeys = redissonClient.getKeys();
long l = rKeys.deleteByPattern(CacheConstants.LOGIN_TOKEN_KEY + "*" + "#" + userId);
if (log.isDebugEnabled()){
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java
index 5eb9662..b5a3881 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java
@@ -23,15 +23,15 @@ public class SecurityUtils
/**
* 获取用户ID
*/
- public static Integer getUserId()
+ public static Long getUserId()
{
return SecurityContextHolder.getUserId();
}
public static boolean isAdmin(){
- Integer userId = SecurityContextHolder.getUserId();
+ Long userId = SecurityContextHolder.getUserId();
- LoginUser> loginUser = getLoginUser();
+ LoginUser, ?> loginUser = getLoginUser();
Set roles = loginUser.getRoles();
// 包含 admin 的账号 或者 id == 1 的就是 admin -- 必须是 admin 的才是超管权限
boolean flag = roles.contains(AuthUtil.SUPER_ADMIN);
diff --git a/chushang-common/pom.xml b/chushang-common/pom.xml
index af04778..e106bd6 100644
--- a/chushang-common/pom.xml
+++ b/chushang-common/pom.xml
@@ -17,6 +17,7 @@
chushang-common-bom
chushang-common-canal
chushang-common-core
+ chushang-common-data-scope
chushang-common-easy-es
chushang-common-excel
chushang-common-feign
diff --git a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java
index 4bd71a9..1e71aad 100644
--- a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java
+++ b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java
@@ -4,11 +4,13 @@ import com.chushang.auth.service.UserService;
import com.chushang.common.core.util.JwtUtils;
import com.chushang.common.core.util.StringUtils;
import com.chushang.common.core.web.AjaxResult;
+import com.chushang.datascope.entity.DataScopeEntity;
import com.chushang.security.auth.AuthUtil;
import com.chushang.security.service.TokenService;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.entity.bo.LoginBody;
import com.chushang.security.entity.vo.LoginUser;
+import com.chushang.system.entity.po.SysUser;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +35,7 @@ public class UserController
public AjaxResult login(@RequestBody LoginBody form)
{
// 用户登录
- LoginUser loginUser = userService.login(form.getUsername(), form.getPassword());
+ LoginUser loginUser = userService.login(form.getUsername(), form.getPassword());
// 获取登录token
return AjaxResult.success(tokenService.createToken(loginUser));
}
diff --git a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java
index cd82a64..10a8738 100644
--- a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java
+++ b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java
@@ -5,6 +5,7 @@ import com.chushang.common.core.exception.ResultException;
import com.chushang.common.core.util.IPUtils;
import com.chushang.common.core.util.ServletUtils;
import com.chushang.common.core.web.Result;
+import com.chushang.datascope.entity.DataScopeEntity;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.entity.enums.LoginStatusEnum;
import com.chushang.system.entity.po.SysLoginInfo;
@@ -33,11 +34,11 @@ public class UserService {
/**
* 登录
*/
- public LoginUser login(String username, String password)
+ public LoginUser login(String username, String password)
{
// 查询用户信息
long start = System.currentTimeMillis();
- Result> rLoginUser = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
+ Result> rLoginUser = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
long end = System.currentTimeMillis();
log.info("time : {}",end - start);
if (Result.FAIL_CODE == rLoginUser.getCode()){
@@ -48,7 +49,7 @@ public class UserService {
recordLoginInfo(username, LoginStatusEnum.LOGIN_FAIL_STATUS, "登录用户不存在");
throw new ResultException("登录用户:" + username + " 不存在");
}
- LoginUser loginUser = rLoginUser.getData();
+ LoginUser loginUser = rLoginUser.getData();
SysUser sysUser = loginUser.getSysUser();
Boolean status = sysUser.getStatus();
if (!status)
@@ -63,12 +64,16 @@ public class UserService {
throw new ResultException("用户不存在/密码错误");
}
recordLoginInfo(username, LoginStatusEnum.LOGIN_SUCCESS, "登录成功");
- sysUser.setPassword("");
- sysUser.setSalt("");
loginUser.setSysUser(sysUser);
+ loginUser.setTenantId(sysUser.getTenantId());
return loginUser;
}
+ public static void main(String[] args) {
+ String s = SecurityUtils.encryptPassword("123456", "h2HheUVZmF");
+ System.out.println(s);
+ }
+
public void logout(String username) {
recordLoginInfo(username, LoginStatusEnum.LOGOUT_SUCCESS, "退出成功");
}
diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java
index b61e11f..4faeea4 100644
--- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java
+++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java
@@ -84,6 +84,7 @@ public class AuthFilter implements GlobalFilter, Ordered
}
String userid = JwtUtils.getUserId(claims);
String username = JwtUtils.getUserName(claims);
+ String tenantId = JwtUtils.getTenantId(claims);
if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))
{
return unauthorizedResponse(exchange, "令牌验证失败");
@@ -93,6 +94,8 @@ public class AuthFilter implements GlobalFilter, Ordered
addHeader(mutate, SecurityConstants.USER_KEY, userkey);
addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
+ // 租户Id
+ addHeader(mutate, SecurityConstants.TENANT_ID, tenantId);
// 内部请求来源参数清除
removeHeader(mutate);
diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java
index c7352e4..fcdb262 100644
--- a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java
+++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java
@@ -1,6 +1,7 @@
package com.chushang.oss.entity;
import com.baomidou.mybatisplus.annotation.*;
+import com.chushang.common.mybatis.base.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -9,33 +10,68 @@ import java.time.LocalDateTime;
@Data
@TableName("tb_oss_source_info")
@NoArgsConstructor
-public class FileSourceInfo {
-
- public FileSourceInfo(String fid) {
- this.fid = fid;
- }
+public class FileSourceInfo extends BaseEntity{
@TableId(value = "fid", type = IdType.INPUT)
private String fid;
+ /**
+ * 文件原始名称
+ */
@TableField("name")
private String name;
+ /**
+ * 文件类型
+ */
@TableField("mime_type")
private String mimeType;
+ /**
+ * 文件 所属类型
+ * 查看字典 sys_file_type
+ */
+ @TableField("file_type")
+ private String fileType;
+ /**
+ * 文件大小
+ */
@TableField("size")
private Long size;
+ /**
+ * 文件md5
+ */
@TableField("md5")
private String md5;
+ /**
+ * 文件存储路径
+ */
@TableField("path")
private String path;
+ /**
+ * 存储桶名称
+ */
+ @TableField(value = "bucket_name")
+ private String bucketName;
+ /**
+ * 真实路径 -- 携带http(s)
+ */
@TableField("real_path")
private String realPath;
+ /**
+ * 上传IP
+ */
@TableField("upload_ip")
private String uploadIp;
+ /**
+ * 文件存储域
+ */
@TableField("storage_region")
private String storageRegion;
- @TableField("if_del")
- private Integer ifDel;
- @TableField(value = "create_time", fill = FieldFill.INSERT)
- private LocalDateTime createTime;
+ /**
+ * 创建人
+ */
+ @TableField(
+ value = "create_by",
+ updateStrategy = FieldStrategy.NEVER
+ )
+ protected String createBy;
}
diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/dto/OcrDTO.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/dto/OcrDTO.java
new file mode 100644
index 0000000..cbb16a1
--- /dev/null
+++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/dto/OcrDTO.java
@@ -0,0 +1,13 @@
+package com.chushang.oss.entity.dto;
+
+import com.chushang.oss.enums.OcrTypeEnum;
+import lombok.Data;
+
+@Data
+public class OcrDTO {
+
+ private String imgPath;
+
+ private OcrTypeEnum ocrType;
+
+}
diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/vo/FileSourceVo.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/vo/FileSourceVo.java
new file mode 100644
index 0000000..aea019c
--- /dev/null
+++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/vo/FileSourceVo.java
@@ -0,0 +1,16 @@
+package com.chushang.oss.entity.vo;
+
+import com.alibaba.fastjson2.JSONObject;
+import lombok.Data;
+
+@Data
+public class FileSourceVo {
+ private String fid;
+ private String name;
+ private Long size;
+ private JSONObject ocr;
+ /**
+ * 文件路径
+ */
+ private String filePath;
+}
diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/enums/OcrTypeEnum.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/enums/OcrTypeEnum.java
new file mode 100644
index 0000000..46f4dfb
--- /dev/null
+++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/enums/OcrTypeEnum.java
@@ -0,0 +1,29 @@
+package com.chushang.oss.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum OcrTypeEnum {
+ COMM("comm","文字识别"),
+ DRIVING("driving","行驶证"),
+ BANKCARD("bankcard","银行卡"),
+ BIZLICENSE("bizlicense","营业执照"),
+ DRIVINGLICENSE("drivinglicense","驾驶证"),
+ IDCARD("idcard","身份证"),
+ NONE("none","未知")
+ ;
+
+ private final String code;
+ private final String name;
+
+ public static OcrTypeEnum findByCode(String code) {
+ for(OcrTypeEnum e:OcrTypeEnum.values()) {
+ if(e.getCode().equals(code)) {
+ return e;
+ }
+ }
+ return NONE;
+ }
+}
diff --git a/chushang-modules/chushang-module-oss/oss-service/pom.xml b/chushang-modules/chushang-module-oss/oss-service/pom.xml
index 7ca08ca..2a8f9e3 100644
--- a/chushang-modules/chushang-module-oss/oss-service/pom.xml
+++ b/chushang-modules/chushang-module-oss/oss-service/pom.xml
@@ -13,6 +13,10 @@
com.chushang
oss-feign