-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy patheven_exception.py
183 lines (157 loc) · 6.79 KB
/
even_exception.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#! /usr/bin/env python3.6
# -*- coding: utf-8 -*-
# Author: Lee <[email protected]>
# Date: 2018-02-13
class _EvenException(Exception):
_errcode_dict = {
0: 'OK',
}
def __init__(self, errcode, errmsg=None, data=None):
# print('dict: ', self._errcode_dict)
# print('errcode', type(errcode), errcode)
# print('errmsg', type(errmsg), errmsg)
if not self._check_errcode(errcode):
raise NotImplementedError(
'errcode {0} is not implemented'.format(errcode))
self.errcode = errcode
self.errmsg = errmsg if errmsg else self._errcode_dict[errcode]
self.data = data
def _check_errcode(self, errcode):
if errcode in self._errcode_dict:
return True
return False
class RespOK(_EvenException):
pass
class LogicError(_EvenException):
'''
LogicError 供API层对外抛出异常使用
前两位数字按模块功能分类, 后三位数字按异常递增
'''
_errcode_dict = {
10000: '未知逻辑异常',
10001: '数据异常, 请尝试刷新网页, 或联系系统管理员',
# 模块权限
10002: '此模块细分权限不存在',
10003: '此模块不存在',
10004: '公司没有此模块',
10005: '公司没有此用户角色',
10006: '此用户没有此模块权限',
# 11 系列: 用户相关异常
11001: '用户不存在',
11002: '用户/密码输入错误',
11003: '登陆状态异常',
12001: '请求参数错误',
12002: '信息已存在',
12003: '您没有相关权限',
12004: '已有关联,不能删除',
12005: '无法添加',
12006: '密码格式错误,请输入6-20位的字母、数字、特殊字符',
12007: '修改密码失败',
12008: '登录失败,用户名或密码错误',
12009: '登录失败,用户名或密码不能为空',
12010: '该手机号暂未绑定任何机构',
12011: '该用户已在其他设备登录',
12012: '当前账号没有绑定手机号,请联系后台管理员重置密码',
12013: '绑定微信失败,请重试',
12014: '该用户已有绑定微信',
12015: '解除绑定微信失败,请重试',
12016: '该用户没有绑定的微信',
# 21 系列: 项目相关异常
21001: '流程选择错误, 请检该流程是否存在. 被删除或归档的流程不能选择. ',
21002: '项目创建失败, 请勿创建同名项目',
21003: "您没有在这个项目中",
21004: "请填写完整的地域信息",
21005: "您已经在这个项目中",
21006: "您已经是这个项目的最后管理员,项目中最少需要一个管理员",
21007: "您操作的用户没有存在在这个项目中",
21008: "管理员不能退出项目",
21009: "项目不存在",
21010: "项目重复",
21011: "该项目下存在投资信息,请先删除投资信息",
21012: "该项目进展在审批中,无法进行删除",
21013: "当前您还没有参与任何项目",
21014: "当前条件下找不到你参与的项目",
21015: "获取详细信息失败",
21016: "项目名已存在,修改失败,请确认",
21017: "项目关联不存在",
21018: "项目投资概览查询失败",
21019: "股份变更失败",
# 22: 项目流程具体errorcode
22001: "流程节点不存在,请确认!",
22002: "该审批已过期或不存在,请确认!",
# 23 : 标签类异常
23001: "标签已存在,请勿重复创建",
23002: "标签不存在,请确认",
23003: "标签名超过长度限制",
23004: "该标签已被人才库使用,暂时无法删除",
23005: "公司没有此标签",
# 24 监控
24001: "创建监控预警失败",
24002: "监控预警不存在/已删除",
24003: "更新监控预警失败",
24004: "查询监控预警失败",
24005: "您不是预警参与人,没有操作权限",
24006: "删除监控预警失败",
# 31 系列: 文件相关异常
31001: "文件夹创建失败, 请勿上传同名文件",
31002: "文件接收异常, 请确认!",
31003: "数据错误,文件夹查询失败,请确认!",
31004: "子文件层数已满,不支持新建文件夹",
31005: "文件夹名不能超过30个字符/存在特殊字符/为空",
31006: "文件夹名不存在/已删除",
31007: "文件名不能超过30个字符/存在特殊字符/为空",
31008: "移动失败,暂不支持跨模块移动",
# 41 系列: 全局
41001: "获取公司默认币种失败",
41002: "您没有权限进行操作",
# 42 人脉圈
42001: "获取人脉圈资源失败",
42002: "此用户已存在,不能添加",
42003: "人脉圈创建失败",
42004: "人脉关联信息更新失败",
42005: "人脉关联关系删除失败",
42006: "此人脉已关联项目,不能删除",
# 43 笔记系列
43001: "创建笔记信息失败",
43002: "查询笔记信息失败" ,
43003: "更新笔记信息失败",
43004: "删除笔记信息失败",
43005: "创建笔记评论失败",
43006: "删除笔记评论失败",
43007: "此笔记不属于此项目",
43008: "此笔记不存在/已删除",
43009: "创建笔记评论失败",
43010: "删除笔记评论失败",
43011: "笔记评论不存在/已删除",
43012: "此笔记不能跨模块移动",
43013: "生成笔记长图失败",
# 44 待办
44001: "待办不存在",
# 45 基金
45001: "母基金不存在",
45002: "内部子基金不存在",
45003: "外部子基金不存在",
# 46 设置
46001: "该手机号已被其他账号绑定,请更换手机号码",
46002: "验证码填写错误请重新填写",
46003: "验证码超时,请重新获取",
46004: "验证码错误,请重新输入",
46005: "您没有绑定手机号",
# 47 外部接口调用出错
47001: "外部接口调用出错"
}
class SysError(_EvenException):
'''
SysError 供API层对外抛出异常使用
前两位数字按模块功能分类, 后三位数字按异常递增
'''
_errcode_dict = {
50000: '未知系统异常',
# 54 系列: 权限体系异常
54001: '您不是项目成员, 无权操作该项目',
# 55 数据库异常
55001: '数据查询异常',
55002: '数据创建失败',
55003: '数据更新失败',
55004: '数据删除失败'
}