Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
4397cbe6
提交
4397cbe6
authored
7月 18, 2020
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
重构错误码的设计,第一次提交~
上级
c5596919
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
126 行增加
和
96 行删除
+126
-96
MallConstants.java
...java/cn/iocoder/common/framework/enums/MallConstants.java
+0
-44
ErrorCode.java
...java/cn/iocoder/common/framework/exception/ErrorCode.java
+37
-0
GlobalException.java
...n/iocoder/common/framework/exception/GlobalException.java
+41
-0
ServiceException.java
.../iocoder/common/framework/exception/ServiceException.java
+5
-2
GlobalErrorCodeEnum.java
...common/framework/exception/enums/GlobalErrorCodeEnum.java
+2
-2
ServiceErrorCodeRange.java
...mmon/framework/exception/enums/ServiceErrorCodeRange.java
+24
-12
MallUtils.java
...main/java/cn/iocoder/common/framework/util/MallUtils.java
+0
-29
ServiceExceptionUtil.java
...n/iocoder/common/framework/util/ServiceExceptionUtil.java
+5
-0
CommonResult.java
...ain/java/cn/iocoder/common/framework/vo/CommonResult.java
+6
-1
DubboProviderExceptionFilter.java
.../mall/dubbo/core/filter/DubboProviderExceptionFilter.java
+1
-1
AdminSecurityInterceptor.java
...rity/admin/core/interceptor/AdminSecurityInterceptor.java
+1
-1
UserSecurityInterceptor.java
...curity/user/core/interceptor/UserSecurityInterceptor.java
+1
-1
GlobalExceptionHandler.java
...iocoder/mall/web/core/handler/GlobalExceptionHandler.java
+1
-1
PermissionManager.java
...l/systemservice/manager/permission/PermissionManager.java
+1
-1
PermissionService.java
...l/systemservice/service/permission/PermissionService.java
+1
-1
没有找到文件。
common/common-framework/src/main/java/cn/iocoder/common/framework/enums/MallConstants.java
deleted
100644 → 0
浏览文件 @
c5596919
package
cn
.
iocoder
.
common
.
framework
.
enums
;
/**
* Mall 全局枚举
*/
public
interface
MallConstants
{
// 全局请求路径枚举类,用于定义不同用户类型的根请求路径
/**
* 根路径 - 用户
*/
String
ROOT_PATH_USER
=
"/users"
;
/**
* 根路径 - 管理员
*/
String
ROOT_PATH_ADMIN
=
"/admins"
;
// 用户类型
/**
* 用户类型 - 用户
*/
@Deprecated
Integer
USER_TYPE_USER
=
1
;
/**
* 用户类型 - 管理员
*/
@Deprecated
Integer
USER_TYPE_ADMIN
=
2
;
// HTTP Request Attr
/**
* HTTP Request Attr - 用户编号
*/
String
REQUEST_ATTR_USER_ID_KEY
=
"mall_user_id"
;
/**
* HTTP Request Attr - 用户类型
*/
String
REQUEST_ATTR_USER_TYPE_KEY
=
"mall_user_type"
;
/**
* HTTP Request Attr - Controller 执行返回
*/
String
REQUEST_ATTR_COMMON_RESULT
=
"mall_common_result"
;
}
common/common-framework/src/main/java/cn/iocoder/common/framework/exception/ErrorCode.java
0 → 100644
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
common
.
framework
.
exception
;
import
cn.iocoder.common.framework.exception.enums.ServiceErrorCodeRange
;
/**
* 错误码对象
*
* 全局错误码,占用 [0, 999],参见 {@link GlobalException}
* 业务异常错误码,占用 [1 000 000 000, +∞),参见 {@link ServiceErrorCodeRange}
*
* TODO 错误码设计成对象的原因,为未来的 i18 国际化做准备
*/
public
class
ErrorCode
{
/**
* 错误码
*/
private
final
Integer
code
;
/**
* 错误提示
*/
private
final
String
message
;
public
ErrorCode
(
Integer
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
Integer
getCode
()
{
return
code
;
}
public
String
getMessage
()
{
return
message
;
}
}
common/common-framework/src/main/java/cn/iocoder/common/framework/exception/GlobalException.java
0 → 100644
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
common
.
framework
.
exception
;
import
cn.iocoder.common.framework.exception.enums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.vo.CommonResult
;
/**
* 全局异常 Exception
*/
public
class
GlobalException
extends
RuntimeException
{
/**
* 全局错误码
*
* @see GlobalErrorCodeEnum
*/
private
final
Integer
code
;
/**
* 错误明细,内部调试错误
* * 和 {@link CommonResult#getDetailMessage()} 一致的设计
*/
private
String
detailMessage
;
public
GlobalException
(
Integer
code
,
String
message
)
{
super
(
message
);
this
.
code
=
code
;
}
public
Integer
getCode
()
{
return
code
;
}
public
String
getDetailMessage
()
{
return
detailMessage
;
}
public
GlobalException
setDetailMessage
(
String
detailMessage
)
{
this
.
detailMessage
=
detailMessage
;
return
this
;
}
}
common/common-framework/src/main/java/cn/iocoder/common/framework/exception/ServiceException.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
common
.
framework
.
exception
;
import
cn.iocoder.common.framework.exception.enums.ServiceErrorCodeRange
;
import
cn.iocoder.common.framework.vo.CommonResult
;
/**
*
服务异常
*
业务逻辑异常 Exception
*
* 参考 https://www.kancloud.cn/onebase/ob/484204 文章
*
...
...
@@ -32,7 +33,9 @@ import cn.iocoder.common.framework.vo.CommonResult;
public
final
class
ServiceException
extends
RuntimeException
{
/**
* 错误码
* 业务错误码
*
* @see ServiceErrorCodeRange
*/
private
final
Integer
code
;
/**
...
...
common/common-framework/src/main/java/cn/iocoder/common/framework/enums/GlobalErrorCodeEnum.java
→
common/common-framework/src/main/java/cn/iocoder/common/framework/e
xception/e
nums/GlobalErrorCodeEnum.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
common
.
framework
.
enums
;
package
cn
.
iocoder
.
common
.
framework
.
e
xception
.
e
nums
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
/**
* 全局错误码枚举
*
1
-999 系统异常编码保留
*
0
-999 系统异常编码保留
*
* 一般情况下,{@link GlobalErrorCodeEnum#getCode()} ()} 使用 HTTP 响应状态码 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
* 虽然说,HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的
...
...
common/common-framework/src/main/java/cn/iocoder/common/framework/e
nums/ModuleErrorCodeInterval
.java
→
common/common-framework/src/main/java/cn/iocoder/common/framework/e
xception/enums/ServiceErrorCodeRange
.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
common
.
framework
.
enums
;
package
cn
.
iocoder
.
common
.
framework
.
e
xception
.
e
nums
;
/**
*
模块错误码区间
*
业务异常的错误码区间,解决:解决各模块错误码定义,避免重复,在此只声明不做实际使用
*
*
解决:解决各模块错误码定义,避免重复,在此只声明不做实际使用
*
一共 10 位,分成四段
*
*
* 错误码定义说明:
*
* [0-000-000-000] 1 开头,给业务系统,2 开头,给框架使用
*
* 如:用户系统,使用 1-001-000-000 段
* 第一段,1 位,类型
* 1 - 业务级别异常
* x - 预留
* 第二段,3 位,系统类型
* 001 - 用户系统
* 002 - 商品系统
* 003 - 订单系统
* 004 - 支付系统
* 005 - 优惠劵系统
* ... - ...
* 第三段,3 位,模块
* 不限制规则。
* 一般建议,每个系统里面,可能有多个模块,可以再去做分段。以用户系统为例子:
* 001 - OAuth2 模块
* 002 - User 模块
* 003 - MobileCode 模块
* 第四段,3 位,错误码
* 不限制规则。
* 一般建议,每个模块自增。
*
* @author Sin
* @time 2019-03-23 11:28
*/
public
class
ModuleErrorCodeInterval
{
public
class
ServiceErrorCodeRange
{
// order 错误码区间 [1-000-001-000 ~ 1-000-002-000]
// user 错误码区间 [1-001-000-000 ~ 1-002-000-000)
//
admin
错误码区间 [1-002-000-000 ~ 1-003-000-000)
//
system-service 服务 =>
错误码区间 [1-002-000-000 ~ 1-003-000-000)
// product 错误码区间 [1-003-000-000 ~ 1-004-000-000)
...
...
@@ -31,5 +44,4 @@ public class ModuleErrorCodeInterval {
// promotion 错误码区间 [1-006-000-000 ~ 1-007-000-000)
}
common/common-framework/src/main/java/cn/iocoder/common/framework/util/MallUtils.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
common
.
framework
.
util
;
import
cn.iocoder.common.framework.enums.MallConstants
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
org.apache.skywalking.apm.toolkit.trace.TraceContext
;
import
javax.servlet.ServletRequest
;
import
java.util.UUID
;
public
class
MallUtils
{
public
static
Integer
getUserId
(
ServletRequest
request
)
{
return
(
Integer
)
request
.
getAttribute
(
MallConstants
.
REQUEST_ATTR_USER_ID_KEY
);
}
public
static
void
setUserId
(
ServletRequest
request
,
Integer
userId
)
{
request
.
setAttribute
(
MallConstants
.
REQUEST_ATTR_USER_ID_KEY
,
userId
);
}
public
static
Integer
getUserType
(
ServletRequest
request
)
{
return
(
Integer
)
request
.
getAttribute
(
MallConstants
.
REQUEST_ATTR_USER_TYPE_KEY
);
}
public
static
void
setUserType
(
ServletRequest
request
,
Integer
userType
)
{
request
.
setAttribute
(
MallConstants
.
REQUEST_ATTR_USER_TYPE_KEY
,
userType
);
}
@Deprecated
public
static
CommonResult
getCommonResult
(
ServletRequest
request
)
{
return
(
CommonResult
)
request
.
getAttribute
(
MallConstants
.
REQUEST_ATTR_COMMON_RESULT
);
}
@Deprecated
public
static
void
setCommonResult
(
ServletRequest
request
,
CommonResult
result
)
{
request
.
setAttribute
(
MallConstants
.
REQUEST_ATTR_COMMON_RESULT
,
result
);
}
/**
* 获得链路追踪编号
*
...
...
common/common-framework/src/main/java/cn/iocoder/common/framework/util/ServiceExceptionUtil.java
浏览文件 @
4397cbe6
...
...
@@ -52,10 +52,13 @@ public class ServiceExceptionUtil {
public
static
void
put
(
Integer
code
,
String
message
)
{
ServiceExceptionUtil
.
messages
.
put
(
code
,
message
);
}
public
static
void
delete
(
Integer
code
,
String
message
)
{
ServiceExceptionUtil
.
messages
.
remove
(
code
,
message
);
}
// ========== 和 CommonResult 的集成 ==========
public
static
<
T
>
CommonResult
<
T
>
error
(
Enumerable
enumerable
)
{
return
error
(
enumerable
.
getCode
());
}
...
...
@@ -73,6 +76,8 @@ public class ServiceExceptionUtil {
return
CommonResult
.
error
(
code
,
message
);
}
// ========== 和 ServiceException 的集成 ==========
public
static
ServiceException
exception
(
Enumerable
enumerable
)
{
String
messagePattern
=
messages
.
getOrDefault
(
enumerable
.
getCode
(),
enumerable
.
getMessage
());
return
exception0
(
enumerable
.
getCode
(),
messagePattern
);
...
...
common/common-framework/src/main/java/cn/iocoder/common/framework/vo/CommonResult.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
common
.
framework
.
vo
;
import
cn.iocoder.common.framework.enums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.exception.ErrorCode
;
import
cn.iocoder.common.framework.exception.enums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
org.springframework.util.Assert
;
...
...
@@ -18,6 +19,8 @@ public final class CommonResult<T> implements Serializable {
/**
* 错误码
*
* @see ErrorCode#getCode()
*/
private
Integer
code
;
/**
...
...
@@ -26,6 +29,8 @@ public final class CommonResult<T> implements Serializable {
private
T
data
;
/**
* 错误提示,用户可阅读
*
* @see ErrorCode#getMsg()
*/
private
String
message
;
/**
...
...
common/mall-spring-boot-starter-dubbo/src/main/java/cn/iocoder/mall/dubbo/core/filter/DubboProviderExceptionFilter.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
mall
.
dubbo
.
core
.
filter
;
import
cn.iocoder.common.framework.enums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.e
xception.e
nums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.exception.ServiceException
;
import
cn.iocoder.common.framework.util.ExceptionUtil
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
...
...
common/mall-spring-boot-starter-security-admin/src/main/java/cn/iocoder/mall/security/admin/core/interceptor/AdminSecurityInterceptor.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
mall
.
security
.
admin
.
core
.
interceptor
;
import
cn.iocoder.common.framework.enums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.e
xception.e
nums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.enums.UserTypeEnum
;
import
cn.iocoder.common.framework.util.CollectionUtils
;
import
cn.iocoder.common.framework.util.HttpUtil
;
...
...
common/mall-spring-boot-starter-security-user/src/main/java/cn/iocoder/mall/security/user/core/interceptor/UserSecurityInterceptor.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
mall
.
security
.
user
.
core
.
interceptor
;
import
cn.iocoder.common.framework.enums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.e
xception.e
nums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.enums.UserTypeEnum
;
import
cn.iocoder.common.framework.util.HttpUtil
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
...
...
common/mall-spring-boot-starter-web/src/main/java/cn/iocoder/mall/web/core/handler/GlobalExceptionHandler.java
浏览文件 @
4397cbe6
package
cn
.
iocoder
.
mall
.
web
.
core
.
handler
;
import
cn.iocoder.common.framework.enums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.e
xception.e
nums.GlobalErrorCodeEnum
;
import
cn.iocoder.common.framework.exception.ServiceException
;
import
cn.iocoder.common.framework.util.ExceptionUtil
;
import
cn.iocoder.common.framework.util.HttpUtil
;
...
...
system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/manager/permission/PermissionManager.java
浏览文件 @
4397cbe6
...
...
@@ -18,7 +18,7 @@ import java.util.Collections;
import
java.util.Map
;
import
java.util.Set
;
import
static
cn
.
iocoder
.
common
.
framework
.
enums
.
GlobalErrorCodeEnum
.
FORBIDDEN
;
import
static
cn
.
iocoder
.
common
.
framework
.
e
xception
.
e
nums
.
GlobalErrorCodeEnum
.
FORBIDDEN
;
/**
* 权限 Manager
...
...
system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/permission/PermissionService.java
浏览文件 @
4397cbe6
...
...
@@ -21,7 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
cn
.
iocoder
.
common
.
framework
.
enums
.
GlobalErrorCodeEnum
.
FORBIDDEN
;
import
static
cn
.
iocoder
.
common
.
framework
.
e
xception
.
e
nums
.
GlobalErrorCodeEnum
.
FORBIDDEN
;
import
static
cn
.
iocoder
.
mall
.
systemservice
.
enums
.
SystemErrorCodeEnum
.*;
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论