diff --git a/coolstore-partner-common/coolstore-partner-common.iml b/coolstore-partner-common/coolstore-partner-common.iml index 1de68ac5e..e709ede93 100644 --- a/coolstore-partner-common/coolstore-partner-common.iml +++ b/coolstore-partner-common/coolstore-partner-common.iml @@ -17,5 +17,9 @@ + + + + \ No newline at end of file diff --git a/coolstore-partner-common/pom.xml b/coolstore-partner-common/pom.xml index d1a2206a8..7c5cf3ffd 100644 --- a/coolstore-partner-common/pom.xml +++ b/coolstore-partner-common/pom.xml @@ -41,6 +41,19 @@ redis.clients jedis + + org.apache.tika + tika-core + 1.9 + + + xerces + xercesImpl + + + org.slf4j + slf4j-api + \ No newline at end of file diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java new file mode 100644 index 000000000..e983622f8 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java @@ -0,0 +1,53 @@ +package com.cool.store.constants; + +/** + * @author zhangchenbiao + * @FileName: CommonConstatns + * @Description: + * @date 2023-05-18 14:47 + */ +public class CommonConstants { + + public static final String DEFAULT_DB = "coolcollege_intelligent_config"; + + public static final String REQUEST_ID = "requestId"; + + public static final int ACTION_TOKEN_EXPIRE = 14400; + + public static final int ZERO = 0; + public static final int ONE = 1; + public static final int TWO = 2; + public static final int THREE = 3; + public static final int FOUR = 4; + public static final int FIVE = 5; + public static final int SIX = 6; + public static final int SEVEN = 7; + public static final int EIGHT = 8; + public static final int NINE = 9; + public static final int TEN = 10; + public static final int TWENTY = 20; + public static final int THIRTY = 30; + public static final int FORTY = 40; + public static final int FIFTY = 50; + public static final int SIXTY = 60; + public static final int SEVENTY = 70; + public static final int EIGHTY = 80; + public static final int NINETY = 90; + public static final int HUNDRED = 100; + + + + + public static final String ZERO_STR = "0"; + public static final String ONE_STR = "1"; + public static final String TWO_STR = "2"; + public static final String THREE_STR = "3"; + public static final String FOUR_STR = "4"; + public static final String FIVE_STR = "5"; + public static final String SIX_STR = "6"; + public static final String SEVEN_STR = "7"; + public static final String EIGHT_STR = "8"; + public static final String NINE_STR = "9"; + public static final String TEN_STR = "10"; + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java new file mode 100644 index 000000000..bf83b7d3d --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -0,0 +1,62 @@ +package com.cool.store.enums; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * * 通用错误返回处理,后续全部将使用这个返回,请遵守以下规范。 + * * 1.枚举名必须要大写。 + * * 2.枚举中包含属性:code,msg,en(英文尽量写) + * * 3.code的命名以系统模块划分,前三位为模块划分。逐级细分。(7位数字先到先取原则,细化不浪费) + * @author zhangchenbiao + * @FileName: ErrorCodeEnum + * @Description: 返回响应状态和文案枚举 + * @date 2023-05-19 04:30 + */ +public enum ErrorCodeEnum { + + /** + * 000000 未知错误 + */ + UNKNOWN(000000, "未知错误", null), + /** + * 2000001 token与当前登录企业不匹配 + */ + TOKEN_ERROR(2000001,"请求异常,与当前登录企业不匹配",null), + FAIL(400000, "FAIL", null), + ACCESS_TOKEN_INVALID(400005, "Invalid token", null), + PARAMS_VALIDATE_ERROR(400003, "参数校验失败!", null), + ; + + + + protected static final Map map = Arrays.stream(values()).collect( + Collectors.toMap(ErrorCodeEnum::getCode, Function.identity(), (a, b)->a)); + private int code; + + private String message; + private String en; + + ErrorCodeEnum(int code, String message, String en) { + this.code = code; + this.message = message; + this.en=en; + } + + + public int getCode() { + return code; + } + + public String getMessage() { + return message; + } + + public static ErrorCodeEnum getByCode(Integer code) { + return map.get(code); + } + + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ResponseCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ResponseCodeEnum.java new file mode 100644 index 000000000..3305b8d0d --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ResponseCodeEnum.java @@ -0,0 +1,38 @@ +package com.cool.store.enums; + + +/** + * @author Aaron + * @Description 业务统一返回码 + * @date 2019/12/20 + */ +public enum ResponseCodeEnum { + /** + * 成功返回 + */ + SUCCESS(200000, "SUCCESS"); + + /** + * 返回码 + */ + private int code; + + /** + * 返回信息 + */ + private String message; + + ResponseCodeEnum(int code, String message) { + this.code = code; + this.message = message; + } + + public int getCode() { + return code; + } + + public String getMessage() { + return message; + } + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java b/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java new file mode 100644 index 000000000..b66102b4f --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java @@ -0,0 +1,93 @@ +package com.cool.store.exception; + +import com.cool.store.enums.ErrorCodeEnum; +import lombok.Data; + +import java.text.MessageFormat; + +/** + * @Description 业务异常类返回 + * @author Aaron + * @date 2019/12/20 + */ +@Data +public class ServiceException extends RuntimeException{ + private static final long serialVersionUID = -5068776742356414959L; + + /** + * 返回码 + */ + private Integer errorCode; + + /** + * 返回信息 + */ + private String errorMessage; + + private Object data; + + /** + * 构造函数 + * @param errorCode + * @param errorMessage + */ + @Deprecated + public ServiceException(Integer errorCode, String errorMessage) { + super(errorMessage); + this.errorCode = errorCode; + this.errorMessage = errorMessage; + } + + + /** + * 构造函数 + * @param errorCode + * @param errorMessage + */ + @Deprecated + public ServiceException(Integer errorCode, String errorMessage, Object data) { + super(errorMessage); + this.errorCode = errorCode; + this.errorMessage = errorMessage; + this.data = data; + } + + /** + * 构造函数 + * @param errorMessage + */ + @Deprecated + public ServiceException(String errorMessage) { + super(errorMessage); + this.errorMessage = errorMessage; + } + + /** + * 构造函数 + * @param errorCode + * @param errorMessage + * @param cause + */ + @Deprecated + public ServiceException(Integer errorCode, String errorMessage, Throwable cause) { + super(errorMessage, cause); + this.errorCode = errorCode; + this.errorMessage = errorMessage; + } + + public ServiceException(ErrorCodeEnum responseEnum) { + super(responseEnum.getMessage()); + this.errorCode = responseEnum.getCode(); + this.errorMessage = responseEnum.getMessage(); + } + + public ServiceException(ErrorCodeEnum responseEnum, Object... objects) { + super(responseEnum.getMessage()); + String message = MessageFormat.format(responseEnum.getMessage(), objects); + this.errorCode = responseEnum.getCode(); + this.errorMessage = message; + } + + + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/model/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/model/constants/CommonConstants.java deleted file mode 100644 index b1d27e08e..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/model/constants/CommonConstants.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.cool.store.model.constants; - -/** - * @author zhangchenbiao - * @FileName: CommonConstatns - * @Description: - * @date 2023-05-18 14:47 - */ -public class CommonConstants { - - public static final String DEFAULT_DB = "coolcollege_intelligent_config"; - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/response/ResponseResult.java b/coolstore-partner-common/src/main/java/com/cool/store/response/ResponseResult.java new file mode 100644 index 000000000..c8d9740b0 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/response/ResponseResult.java @@ -0,0 +1,95 @@ +package com.cool.store.response; + +import com.cool.store.constants.CommonConstants; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.ResponseCodeEnum; +import lombok.Data; +import lombok.ToString; +import org.slf4j.MDC; + +import java.text.MessageFormat; + +/** + * 统一返回结果 + * + * @author Aaron + * @date 2019/12/20 + */ +@Data +@ToString +public class ResponseResult implements Result { + private static final long serialVersionUID = -2217360460304088285L; + + public ResponseResult(int code, String message, T data) { + this.code = code; + this.message = message; + this.data = data; + this.requestId = MDC.get(CommonConstants.REQUEST_ID); + } + + public ResponseResult(int code, String message, T data, String stackTrace) { + this.code = code; + this.message = message; + this.data = data; + this.stackTrace = stackTrace; + this.requestId = MDC.get(CommonConstants.REQUEST_ID); + } + + public ResponseResult(int code, String message) { + this.code = code; + this.message = message; + this.requestId = MDC.get(CommonConstants.REQUEST_ID); + } + + /** + * 返回码 + */ + private int code; + + /** + * 返回信息 + */ + private String message; + + /** + * 返回数据 + */ + private T data; + + /** + * 异常堆栈信息 + */ + private String stackTrace; + + private String requestId; + + public long getSystemCurrentTime() { + return System.currentTimeMillis(); + } + + public static ResponseResult success(T data) { + return new ResponseResult(ResponseCodeEnum.SUCCESS.getCode(), "操作成功", data); + } + + public static ResponseResult success() { + return new ResponseResult(ResponseCodeEnum.SUCCESS.getCode(), "操作成功"); + } + + public static ResponseResult fail(int code, String msg) { + return new ResponseResult(code, msg, false); + } + + public static ResponseResult fail(int code, String msg, String stackTrace) { + return new ResponseResult(code, msg, false, stackTrace); + } + + public static ResponseResult fail(ErrorCodeEnum responseEnum){ + return new ResponseResult(responseEnum.getCode(), responseEnum.getMessage(), false); + } + + public static ResponseResult fail(ErrorCodeEnum responseEnum, Object... objects){ + String message = MessageFormat.format(responseEnum.getMessage(), objects); + return new ResponseResult(responseEnum.getCode(), message, false); + } + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/response/Result.java b/coolstore-partner-common/src/main/java/com/cool/store/response/Result.java new file mode 100644 index 000000000..986c4dfe0 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/response/Result.java @@ -0,0 +1,11 @@ +package com.cool.store.response; + +import java.io.Serializable; + +/** + * @Description 响应格式父接口 + * @author Aaron + * @date 2019/12/20 + */ +public interface Result extends Serializable { +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/model/utils/RedisUtilPool.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtilPool.java similarity index 99% rename from coolstore-partner-common/src/main/java/com/cool/store/model/utils/RedisUtilPool.java rename to coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtilPool.java index a6a529a73..4326f6ce3 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/model/utils/RedisUtilPool.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtilPool.java @@ -1,4 +1,4 @@ -package com.cool.store.model.utils; +package com.cool.store.utils; import org.apache.commons.lang3.StringUtils; import redis.clients.jedis.*; diff --git a/coolstore-partner-dao/coolstore-partner-dao.iml b/coolstore-partner-dao/coolstore-partner-dao.iml index 6371d2466..44eddfdde 100644 --- a/coolstore-partner-dao/coolstore-partner-dao.iml +++ b/coolstore-partner-dao/coolstore-partner-dao.iml @@ -20,12 +20,12 @@ - + - + @@ -37,25 +37,25 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + @@ -63,12 +63,15 @@ + + + + - - + diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseConfigDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseConfigDAO.java index 27b0a4324..078d3c3a9 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseConfigDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseConfigDAO.java @@ -1,7 +1,7 @@ package com.cool.store.dao; import com.cool.store.mapper.EnterpriseConfigMapper; -import com.cool.store.model.entity.EnterpriseConfigDO; +import com.cool.store.entity.EnterpriseConfigDO; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java new file mode 100644 index 000000000..a58c37149 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 02:58 + */ +@Service +public class EnterpriseUserDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java new file mode 100644 index 000000000..c52b5ebd7 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 02:59 + */ +@Service +public class EnterpriseUserRoleDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java new file mode 100644 index 000000000..c2cdc0bb4 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 02:59 + */ +@Service +public class RegionDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysDepartmentDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysDepartmentDAO.java new file mode 100644 index 000000000..d552a2b05 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysDepartmentDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 03:00 + */ +@Service +public class SysDepartmentDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleDAO.java new file mode 100644 index 000000000..fbc1c69a0 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 03:00 + */ +@Service +public class SysRoleDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleMenuDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleMenuDAO.java new file mode 100644 index 000000000..692fe938f --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleMenuDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 03:01 + */ +@Service +public class SysRoleMenuDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserAuthMappingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserAuthMappingDAO.java new file mode 100644 index 000000000..a5f9286d4 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserAuthMappingDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 02:54 + */ +@Service +public class UserAuthMappingDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java new file mode 100644 index 000000000..fa85070a7 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java @@ -0,0 +1,12 @@ +package com.cool.store.dao; + +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @date 2023-05-19 03:00 + */ +@Service +public class UserRegionMappingDAO { + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseConfigMapper.java index 5b96ea6a0..285d4a788 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseConfigMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseConfigMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.EnterpriseConfigDO; +import com.cool.store.entity.EnterpriseConfigDO; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index 8d660cbb6..e5e0a8c8e 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.EnterpriseUserDO; +import com.cool.store.entity.EnterpriseUserDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java index 33987d2fa..1486761f4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.EnterpriseUserRoleDO; +import com.cool.store.entity.EnterpriseUserRoleDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java index 918319844..f09f9f91b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.RegionDO; +import com.cool.store.entity.RegionDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysDepartmentMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysDepartmentMapper.java index 3048ea450..aba1c9ea7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysDepartmentMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysDepartmentMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.SysDepartmentDO; +import com.cool.store.entity.SysDepartmentDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java index baea9a6fb..b508820c7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.SysRoleDO; +import com.cool.store.entity.SysRoleDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java index 0dcbf4999..ac5674a70 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.SysRoleMenuDO; +import com.cool.store.entity.SysRoleMenuDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserAuthMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserAuthMappingMapper.java index 6b41118e8..c25272e02 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserAuthMappingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserAuthMappingMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.UserAuthMappingDO; +import com.cool.store.entity.UserAuthMappingDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java index 721d5b918..63e34ca52 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java @@ -1,6 +1,6 @@ package com.cool.store.mapper; -import com.cool.store.model.entity.UserRegionMappingDO; +import com.cool.store.entity.UserRegionMappingDO; import org.apache.ibatis.annotations.Param; /** diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseConfigMapper.xml index e48cec091..b0d890c9a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseConfigMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseConfigMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index fee91ca39..e425c4ba8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -1,7 +1,7 @@ - + @@ -34,7 +34,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml index cc6840109..a0d6235ba 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml index 496901fb3..6a1680ad9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/SysDepartmentMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SysDepartmentMapper.xml index 7190d935d..62368939b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/SysDepartmentMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/SysDepartmentMapper.xml @@ -1,7 +1,7 @@ - + @@ -19,7 +19,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml index bfe1100c9..6ccf1128d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml index cae140a4c..005ec2ed6 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/UserAuthMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/UserAuthMappingMapper.xml index dad666347..47474315b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/UserAuthMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/UserAuthMappingMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml index 768551133..b487250f1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/coolstore-partner-manage.iml b/coolstore-partner-manage.iml index c035f0b00..f409c0ea8 100644 --- a/coolstore-partner-manage.iml +++ b/coolstore-partner-manage.iml @@ -4,9 +4,6 @@ - - - diff --git a/coolstore-partner-model/coolstore-partner-model.iml b/coolstore-partner-model/coolstore-partner-model.iml index 8bec2a814..3b1207751 100644 --- a/coolstore-partner-model/coolstore-partner-model.iml +++ b/coolstore-partner-model/coolstore-partner-model.iml @@ -18,32 +18,35 @@ + + + + - - + - + - - - - - - + + + + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/dto/DatasourceInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/DatasourceInfoDTO.java similarity index 93% rename from coolstore-partner-model/src/main/java/com/cool/store/model/dto/DatasourceInfoDTO.java rename to coolstore-partner-model/src/main/java/com/cool/store/dto/DatasourceInfoDTO.java index bae572937..af409231a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/dto/DatasourceInfoDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/DatasourceInfoDTO.java @@ -1,6 +1,6 @@ -package com.cool.store.model.dto; +package com.cool.store.dto; -import com.cool.store.model.entity.EnterpriseConfigDO; +import com.cool.store.entity.EnterpriseConfigDO; import lombok.Data; import org.apache.commons.collections4.CollectionUtils; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/login/FeiShuLoginDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/login/FeiShuLoginDTO.java new file mode 100644 index 000000000..00c15fda9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/login/FeiShuLoginDTO.java @@ -0,0 +1,21 @@ +package com.cool.store.dto.login; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: FeiShuLoginDTO + * @Description: + * @date 2023-05-19 19:25 + */ +@Data +public class FeiShuLoginDTO { + + @ApiModelProperty("code") + private String code; + + @ApiModelProperty("应用id") + private String appId; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseConfigDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseConfigDO.java similarity index 98% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseConfigDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseConfigDO.java index c946a0eed..0319d2205 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseConfigDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseConfigDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import java.io.Serializable; import java.util.Date; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseUserDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java similarity index 99% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseUserDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java index addce26fc..bed7f2bc7 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseUserDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseUserRoleDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserRoleDO.java similarity index 95% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseUserRoleDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserRoleDO.java index b40b42544..0ece9b1db 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/EnterpriseUserRoleDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserRoleDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/RegionDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/RegionDO.java similarity index 97% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/RegionDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/RegionDO.java index ab3ad29ab..c7733ba68 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/RegionDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/RegionDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysDepartmentDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysDepartmentDO.java similarity index 98% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysDepartmentDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/SysDepartmentDO.java index e815ea6b3..becaf8024 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysDepartmentDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysDepartmentDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysRoleDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleDO.java similarity index 97% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysRoleDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleDO.java index ef512e4b1..3fe2c2736 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysRoleDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysRoleMenuDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleMenuDO.java similarity index 94% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysRoleMenuDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleMenuDO.java index 1cda20a1c..f04e7f959 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/SysRoleMenuDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleMenuDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/UserAuthMappingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/UserAuthMappingDO.java similarity index 96% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/UserAuthMappingDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/UserAuthMappingDO.java index 6edcb14f6..33b61e8be 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/UserAuthMappingDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/UserAuthMappingDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/UserRegionMappingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/UserRegionMappingDO.java similarity index 95% rename from coolstore-partner-model/src/main/java/com/cool/store/model/entity/UserRegionMappingDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/UserRegionMappingDO.java index e5ee9bc6f..9dc80feb2 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/model/entity/UserRegionMappingDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/UserRegionMappingDO.java @@ -1,4 +1,4 @@ -package com.cool.store.model.entity; +package com.cool.store.entity; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; diff --git a/coolstore-partner-service/coolstore-partner-service.iml b/coolstore-partner-service/coolstore-partner-service.iml index ffa07d6c7..6aea3b64b 100644 --- a/coolstore-partner-service/coolstore-partner-service.iml +++ b/coolstore-partner-service/coolstore-partner-service.iml @@ -18,33 +18,36 @@ + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - - + @@ -61,12 +64,12 @@ - + - + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseConfigService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseConfigService.java index 62e7ecae6..972517884 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseConfigService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseConfigService.java @@ -1,7 +1,7 @@ package com.cool.store.service; -import com.cool.store.model.entity.EnterpriseConfigDO; +import com.cool.store.entity.EnterpriseConfigDO; import java.util.List; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/config/redis/RedisUtilConfig.java b/coolstore-partner-service/src/main/java/com/cool/store/service/config/redis/RedisUtilConfig.java index 09e6cdacf..02d0cf1ea 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/config/redis/RedisUtilConfig.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/config/redis/RedisUtilConfig.java @@ -1,6 +1,6 @@ package com.cool.store.service.config.redis; -import com.cool.store.model.utils.RedisUtilPool; +import com.cool.store.utils.RedisUtilPool; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/context/CurrentUser.java b/coolstore-partner-service/src/main/java/com/cool/store/service/context/CurrentUser.java index c7923b416..4c0ceda4c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/context/CurrentUser.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/context/CurrentUser.java @@ -8,6 +8,8 @@ public class CurrentUser { private String userId; + private String name; + private String enterpriseId; private String dingCorpId; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseConfigServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseConfigServiceImpl.java index cf1a852e9..2cf10ce56 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseConfigServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseConfigServiceImpl.java @@ -1,7 +1,7 @@ package com.cool.store.service.impl; import com.cool.store.dao.EnterpriseConfigDAO; -import com.cool.store.model.entity.EnterpriseConfigDO; +import com.cool.store.entity.EnterpriseConfigDO; import com.cool.store.service.EnterpriseConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index f1752556b..342a0426b 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -19,16 +19,19 @@ + + + + - - - + + + - @@ -49,47 +52,51 @@ - + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/CommonBeanConfig.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/CommonBeanConfig.java index 2e2f268cb..471e260c8 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/CommonBeanConfig.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/CommonBeanConfig.java @@ -2,7 +2,7 @@ package com.cool.store.config; import com.alibaba.fastjson.JSONObject; import com.cool.store.config.datasource.DynamicDataSourceServiceImpl; -import com.cool.store.model.dto.DatasourceInfoDTO; +import com.cool.store.dto.DatasourceInfoDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -15,7 +15,7 @@ import java.util.List; * @author zhangchenbiao * @FileName: CommonBeanConfig * @Description: - * @date 2022-01-25 18:41 + * @date 2023-05-19 18:41 */ @Slf4j @Component diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java new file mode 100644 index 000000000..589d874bc --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -0,0 +1,125 @@ +package com.cool.store.config; + +import com.alibaba.fastjson.JSON; +import com.cool.store.constants.CommonConstants; +import com.cool.store.entity.SysRoleDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.mapper.SysRoleMapper; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.context.DataSourceContext; +import com.cool.store.service.context.UserContext; +import com.cool.store.service.utils.DataSourceHelper; +import com.cool.store.utils.RedisUtilPool; +import com.cool.store.service.context.CurrentUser; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.util.AntPathMatcher; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @author ydw + * @Description 权限校验 + * @date 2020/1/15 + */ +@Component +@Order(3) +@Slf4j +public class TokenValidateFilter implements Filter { + + @Autowired + private RedisUtilPool redisUtilPool; + + private static AntPathMatcher matcher = new AntPathMatcher(); + + private static List patternList = + + Lists.newArrayList("/web/check/ok","/check/ok", "/partner/doc.html", + "/**/swagger*/**", + "/**/webjars/**"); + + + /** + * @param uri + * @return boolean + * @throws + * @Title excludePath + * @Description 是否是放行的请求 + */ + private boolean excludePath(String uri) { + for (String pattern : patternList) { + if (matcher.match(pattern, uri)) { + return true; + } + } + return false; + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) servletResponse; + HttpServletRequest reqs = (HttpServletRequest) servletRequest; + String uri = reqs.getRequestURI(); + String method = reqs.getMethod(); + String userStr = ""; + CurrentUser currentUser = null; + boolean isInWhiteList = excludePath(uri); + String accessToken = reqs.getParameter("access_token"); + String key = "access_token:" + accessToken; + if(StringUtils.isNotBlank(accessToken)){ + userStr = redisUtilPool.getString(key); + if(StringUtils.isNotBlank(userStr)){ + currentUser = JSON.parseObject(userStr, CurrentUser.class); + } + } + log.info("url:{}", uri); + if ( !isInWhiteList && !method.equals("OPTIONS")) { + if (StringUtils.isEmpty(accessToken)) { + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + if (Objects.isNull(currentUser)) { + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + log.info("url:{}, access_token:{}, userId:{}, username:{}, enterpriseId:{}", uri, accessToken, currentUser.getUserId(), currentUser.getName(), currentUser.getEnterpriseId()); + } + if(StringUtils.isBlank(userStr) && !isInWhiteList){ + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + try { + UserContext.setUser(userStr); + DataSourceHelper.changeToMy(); + filterChain.doFilter(servletRequest, servletResponse); + } finally { + UserContext.removeUser(); + } + } + + @Override + public void destroy() { + + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java index eade83d3a..b78b0ae50 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java @@ -1,6 +1,6 @@ package com.cool.store.config.datasource; -import com.cool.store.model.constants.CommonConstants; +import com.cool.store.constants.CommonConstants; import com.cool.store.service.context.DataSourceContext; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java index 3ebffb86a..746dac1b2 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java @@ -1,9 +1,9 @@ package com.cool.store.config.datasource; -import com.cool.store.model.constants.CommonConstants; -import com.cool.store.model.dto.DatasourceInfoDTO; -import com.cool.store.model.entity.EnterpriseConfigDO; -import com.cool.store.model.utils.RedisUtilPool; +import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.DatasourceInfoDTO; +import com.cool.store.entity.EnterpriseConfigDO; +import com.cool.store.utils.RedisUtilPool; import com.cool.store.service.EnterpriseConfigService; import com.cool.store.service.context.DataSourceContext; import com.github.pagehelper.Page; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/swagger/Swagger2Config.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/swagger/Swagger2Config.java new file mode 100644 index 000000000..cbf3ab00a --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/swagger/Swagger2Config.java @@ -0,0 +1,115 @@ +package com.cool.store.config.swagger; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import org.apache.commons.lang3.StringUtils; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import springfox.documentation.RequestHandler; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author zhangchenbiao + * @description: + * @date 2023/05/15 02:52 + */ +@Profile({"local", "dev", "ab", "test"}) +@Configuration +@EnableSwagger2 +@EnableKnife4j +public class Swagger2Config { + + /** + * 扫描接口地址的包名 + */ + public static final String BASE_PACKAGE = "com.cool.store.controller"; + + private ApiInfo getApiInfo() { + return new ApiInfoBuilder() + .title("coolstore-partner-manage") + .description("接口文档") + .version("1.0") + .build(); + } + + private Docket createDocket (String groupName, String... packages){ + List pars = getParameters(); + return new Docket(DocumentationType.SWAGGER_2) + .enable(Boolean.TRUE) + .apiInfo(this.getApiInfo()) + .groupName(groupName) + .select() + .apis(this.scanBasePackage(packages)) + .build() + .globalOperationParameters(pars); + } + + private Docket createDocketByPath (String groupName, String... paths){ + List pars = getParameters(); + return new Docket(DocumentationType.SWAGGER_2) + .enable(Boolean.TRUE) + .apiInfo(this.getApiInfo()) + .groupName(groupName) + .select() + .paths(this.scanPath(paths)) + .build() + .globalOperationParameters(pars); + } + + private List getParameters() { + List pars = new ArrayList<>(); + pars.add(new ParameterBuilder().name("access_token").description("令牌").required(true) + .modelRef(new ModelRef("string")) + .defaultValue("{{access_token}}") + .parameterType("query").build()); + pars.add(new ParameterBuilder().name("enterprise-id").required(true) + .modelRef(new ModelRef("string")) + .defaultValue("45f92210375346858b6b6694967f44de") + .parameterType("path").build()); + return pars; + } + + private Predicate scanBasePackage(final String... controllerPack) { + Predicate predicate = null; + for (String strBasePackage : controllerPack) { + if(StringUtils.isNotBlank(strBasePackage)){ + Predicate tempPredicate = RequestHandlerSelectors.basePackage(strBasePackage); + predicate = predicate == null ? tempPredicate : Predicates.or(tempPredicate,predicate); + } + } + return predicate; + } + + private Predicate scanPath(final String... paths) { + Predicate predicate = null; + for (String path : paths) { + if(StringUtils.isNotBlank(path)){ + Predicate tempPredicate = PathSelectors.ant(path); + predicate = predicate == null ? tempPredicate : Predicates.or(tempPredicate,predicate); + } + } + return predicate; + } + + + @Bean + public Docket allApi() { + return this.createDocket("全部", BASE_PACKAGE); + } + +} + diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java new file mode 100644 index 000000000..c599ea029 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java @@ -0,0 +1,65 @@ +package com.cool.store.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.cool.store.dto.login.FeiShuLoginDTO; +import com.cool.store.enums.ErrorCodeEnum; +import com.google.protobuf.ServiceException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author zhangchenbiao + * @FileName: LoginController + * @Description:登录 + * @date 2023-05-19 17:22 + */ +@RestController +@Slf4j +public class LoginController { + + /*@PostMapping(value = "/v3/feiShuLogin") + public Object feiShuLogin(@RequestBody FeiShuLoginDTO param) { + log.info("isvLoginV2 data={}", JSONObject.toJSONString(param)); + String code = param.getCode(); + String appId = param.getAppId(); + + String userId = "", corpId = "", appType = AppTypeEnum.FEI_SHU.getValue(); + try { + String value = "code=" + code + "&appType=" + appType + "&appId=" + appId; + log.info("url:{}", ding_token_userId + value); + JSONObject userInfo = JSON.parseObject(HttpRequest.sendGet(ding_token_userId, value)); + logger.info("userInfo:{}", JSONObject.toJSONString(userInfo)); + userId = userInfo.getString("openId"); + corpId = userInfo.getString("corpId"); + String errorCode = userInfo.getString("error_code"); + if (StringUtils.isBlank(userId) && StringUtils.isNotBlank(errorCode)) { + DingLoginErrorEnum dingLoginErrorEnum = DingLoginErrorEnum.getByCode(Integer.getInteger(errorCode)); + if (dingLoginErrorEnum != null) { + throw new ServiceException(dingLoginErrorEnum.getCode(), dingLoginErrorEnum.getMsg()); + } + } + } catch (Exception e) { + log.error(e.getMessage(), e); + if (e instanceof ServiceException) { + throw e; + } else { + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR.getCode(), "用户不存在"); + } + } + + try { + return loginService.isvLogin(userId, corpId, Boolean.TRUE, appType, StringUtils.EMPTY); + } catch (ServiceException e) { + log.error(e.getMessage(), e); + throw new ServiceException(e.getErrorCode(), e.getErrorMessage()); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR.getCode(), "登陆失败"); + } + }*/ + +} diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml index cc4a66ce8..5d7e05397 100644 --- a/coolstore-partner-webc/coolstore-partner-webc.iml +++ b/coolstore-partner-webc/coolstore-partner-webc.iml @@ -19,16 +19,19 @@ + + + + - - - + + + - @@ -49,47 +52,51 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java index 2e2f268cb..471e260c8 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java @@ -2,7 +2,7 @@ package com.cool.store.config; import com.alibaba.fastjson.JSONObject; import com.cool.store.config.datasource.DynamicDataSourceServiceImpl; -import com.cool.store.model.dto.DatasourceInfoDTO; +import com.cool.store.dto.DatasourceInfoDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -15,7 +15,7 @@ import java.util.List; * @author zhangchenbiao * @FileName: CommonBeanConfig * @Description: - * @date 2022-01-25 18:41 + * @date 2023-05-19 18:41 */ @Slf4j @Component diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/TokenValidateFilter.java new file mode 100644 index 000000000..9076b9e4e --- /dev/null +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -0,0 +1,121 @@ +package com.cool.store.config; + +import com.alibaba.fastjson.JSON; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.context.CurrentUser; +import com.cool.store.service.context.UserContext; +import com.cool.store.service.utils.DataSourceHelper; +import com.cool.store.utils.RedisUtilPool; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.util.AntPathMatcher; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @author ydw + * @Description 权限校验 + * @date 2020/1/15 + */ +@Component +@Order(3) +@Slf4j +public class TokenValidateFilter implements Filter { + + @Autowired + private RedisUtilPool redisUtilPool; + + private static AntPathMatcher matcher = new AntPathMatcher(); + + private static List patternList = + + Lists.newArrayList("/web/check/ok","/check/ok", "/partner/doc.html", + "/**/swagger*/**", + "/**/webjars/**"); + + + /** + * @param uri + * @return boolean + * @throws + * @Title excludePath + * @Description 是否是放行的请求 + */ + private boolean excludePath(String uri) { + for (String pattern : patternList) { + if (matcher.match(pattern, uri)) { + return true; + } + } + return false; + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) servletResponse; + HttpServletRequest reqs = (HttpServletRequest) servletRequest; + String uri = reqs.getRequestURI(); + String method = reqs.getMethod(); + String userStr = ""; + CurrentUser currentUser = null; + boolean isInWhiteList = excludePath(uri); + String accessToken = reqs.getParameter("access_token"); + String key = "access_token:" + accessToken; + if(StringUtils.isNotBlank(accessToken)){ + userStr = redisUtilPool.getString(key); + if(StringUtils.isNotBlank(userStr)){ + currentUser = JSON.parseObject(userStr, CurrentUser.class); + } + } + log.info("url:{}", uri); + if ( !isInWhiteList && !method.equals("OPTIONS")) { + if (StringUtils.isEmpty(accessToken)) { + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + if (Objects.isNull(currentUser)) { + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + log.info("url:{}, access_token:{}, userId:{}, username:{}, enterpriseId:{}", uri, accessToken, currentUser.getUserId(), currentUser.getName(), currentUser.getEnterpriseId()); + } + if(StringUtils.isBlank(userStr) && !isInWhiteList){ + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + try { + UserContext.setUser(userStr); + DataSourceHelper.changeToMy(); + filterChain.doFilter(servletRequest, servletResponse); + } finally { + UserContext.removeUser(); + } + } + + @Override + public void destroy() { + + } +} diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java index eade83d3a..b78b0ae50 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java @@ -1,6 +1,6 @@ package com.cool.store.config.datasource; -import com.cool.store.model.constants.CommonConstants; +import com.cool.store.constants.CommonConstants; import com.cool.store.service.context.DataSourceContext; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java index 3ebffb86a..746dac1b2 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java @@ -1,9 +1,9 @@ package com.cool.store.config.datasource; -import com.cool.store.model.constants.CommonConstants; -import com.cool.store.model.dto.DatasourceInfoDTO; -import com.cool.store.model.entity.EnterpriseConfigDO; -import com.cool.store.model.utils.RedisUtilPool; +import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.DatasourceInfoDTO; +import com.cool.store.entity.EnterpriseConfigDO; +import com.cool.store.utils.RedisUtilPool; import com.cool.store.service.EnterpriseConfigService; import com.cool.store.service.context.DataSourceContext; import com.github.pagehelper.Page; diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/swagger/Swagger2Config.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/swagger/Swagger2Config.java new file mode 100644 index 000000000..cbf3ab00a --- /dev/null +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/swagger/Swagger2Config.java @@ -0,0 +1,115 @@ +package com.cool.store.config.swagger; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import org.apache.commons.lang3.StringUtils; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import springfox.documentation.RequestHandler; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author zhangchenbiao + * @description: + * @date 2023/05/15 02:52 + */ +@Profile({"local", "dev", "ab", "test"}) +@Configuration +@EnableSwagger2 +@EnableKnife4j +public class Swagger2Config { + + /** + * 扫描接口地址的包名 + */ + public static final String BASE_PACKAGE = "com.cool.store.controller"; + + private ApiInfo getApiInfo() { + return new ApiInfoBuilder() + .title("coolstore-partner-manage") + .description("接口文档") + .version("1.0") + .build(); + } + + private Docket createDocket (String groupName, String... packages){ + List pars = getParameters(); + return new Docket(DocumentationType.SWAGGER_2) + .enable(Boolean.TRUE) + .apiInfo(this.getApiInfo()) + .groupName(groupName) + .select() + .apis(this.scanBasePackage(packages)) + .build() + .globalOperationParameters(pars); + } + + private Docket createDocketByPath (String groupName, String... paths){ + List pars = getParameters(); + return new Docket(DocumentationType.SWAGGER_2) + .enable(Boolean.TRUE) + .apiInfo(this.getApiInfo()) + .groupName(groupName) + .select() + .paths(this.scanPath(paths)) + .build() + .globalOperationParameters(pars); + } + + private List getParameters() { + List pars = new ArrayList<>(); + pars.add(new ParameterBuilder().name("access_token").description("令牌").required(true) + .modelRef(new ModelRef("string")) + .defaultValue("{{access_token}}") + .parameterType("query").build()); + pars.add(new ParameterBuilder().name("enterprise-id").required(true) + .modelRef(new ModelRef("string")) + .defaultValue("45f92210375346858b6b6694967f44de") + .parameterType("path").build()); + return pars; + } + + private Predicate scanBasePackage(final String... controllerPack) { + Predicate predicate = null; + for (String strBasePackage : controllerPack) { + if(StringUtils.isNotBlank(strBasePackage)){ + Predicate tempPredicate = RequestHandlerSelectors.basePackage(strBasePackage); + predicate = predicate == null ? tempPredicate : Predicates.or(tempPredicate,predicate); + } + } + return predicate; + } + + private Predicate scanPath(final String... paths) { + Predicate predicate = null; + for (String path : paths) { + if(StringUtils.isNotBlank(path)){ + Predicate tempPredicate = PathSelectors.ant(path); + predicate = predicate == null ? tempPredicate : Predicates.or(tempPredicate,predicate); + } + } + return predicate; + } + + + @Bean + public Docket allApi() { + return this.createDocket("全部", BASE_PACKAGE); + } + +} + diff --git a/pom.xml b/pom.xml index 64a376ae2..8da86a16d 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.11 + 2.2.6.RELEASE @@ -111,6 +111,16 @@ knife4j-spring-boot-starter 2.0.4 + + org.slf4j + slf4j-api + 1.7.30 + + + xerces + xercesImpl + 2.11.0 +