Merge branch 'dev' of http://gitlab.fjmaimaimai.com/mmm-go/oppmg into dev
正在显示
20 个修改的文件
包含
241 行增加
和
72 行删除
@@ -39,7 +39,7 @@ func (c *AuditController) AuditList() { | @@ -39,7 +39,7 @@ func (c *AuditController) AuditList() { | ||
39 | uid := c.GetUserId() | 39 | uid := c.GetUserId() |
40 | companyId := c.GetCompanyId() | 40 | companyId := c.GetCompanyId() |
41 | list, err := serveaudit.GetAuditList(param, companyId, uid) | 41 | list, err := serveaudit.GetAuditList(param, companyId, uid) |
42 | - msg = protocol.NewReturnResponse(list, err) | 42 | + msg = protocol.NewPageDataResponse(list, err) |
43 | return | 43 | return |
44 | } | 44 | } |
45 | 45 |
@@ -8,6 +8,8 @@ import ( | @@ -8,6 +8,8 @@ import ( | ||
8 | "oppmg/utils/exceltool" | 8 | "oppmg/utils/exceltool" |
9 | "strconv" | 9 | "strconv" |
10 | 10 | ||
11 | + serveauth "oppmg/services/auth" | ||
12 | + | ||
11 | "github.com/astaxie/beego" | 13 | "github.com/astaxie/beego" |
12 | "github.com/astaxie/beego/context" | 14 | "github.com/astaxie/beego/context" |
13 | "github.com/astaxie/beego/validation" | 15 | "github.com/astaxie/beego/validation" |
@@ -28,16 +30,24 @@ func (this *BaseController) Prepare() { | @@ -28,16 +30,24 @@ func (this *BaseController) Prepare() { | ||
28 | this.Ctx.WriteString("") | 30 | this.Ctx.WriteString("") |
29 | return | 31 | return |
30 | } | 32 | } |
31 | - // p := this.Ctx.Input.GetData("RouterPattern") | ||
32 | - // userid := this.GetUserId() | ||
33 | - // companyid := this.GetCompanyId() | 33 | + if beego.BConfig.RunMode == "dev" { |
34 | + return | ||
35 | + } | ||
36 | + p := fmt.Sprint(this.Ctx.Input.GetData("RouterPattern")) | ||
37 | + userid := this.GetUserId() | ||
38 | + companyid := this.GetCompanyId() | ||
39 | + ok := serveauth.ValidUserPermission(p, userid, companyid) | ||
40 | + if !ok { | ||
41 | + msg := protocol.NewMessage("10080") | ||
42 | + this.ResposeJson(msg) | ||
43 | + return | ||
44 | + } | ||
34 | //权限校验 | 45 | //权限校验 |
35 | - | 46 | + return |
36 | } | 47 | } |
37 | 48 | ||
38 | func (this *BaseController) GetAppHead() (appHead protocol.BaseHeader) { | 49 | func (this *BaseController) GetAppHead() (appHead protocol.BaseHeader) { |
39 | appHead.AccessToken = this.Ctx.Input.Header(protocol.HeaderAccessToken) | 50 | appHead.AccessToken = this.Ctx.Input.Header(protocol.HeaderAccessToken) |
40 | - //appHead.RefreshToken = this.Ctx.Input.Header(protocol.HeaderRefreshToken) | ||
41 | return | 51 | return |
42 | 52 | ||
43 | } | 53 | } |
models/audit_flow_process.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "time" | ||
5 | + | ||
6 | + "github.com/astaxie/beego/orm" | ||
7 | +) | ||
8 | + | ||
9 | +type AuditFlowProcess struct { | ||
10 | + Id int64 `orm:"column(id);pk" description:"唯一标识"` | ||
11 | + ChanceId int64 `orm:"column(chance_id)" description:"实例id,关联chance表id"` | ||
12 | + Uid int64 `orm:"column(uid)" description:"用户id(审批人)"` | ||
13 | + Level int `orm:"column(level)" description:"审批步骤"` | ||
14 | + IsActive int8 `orm:"column(is_active)" description:"是否激活"` | ||
15 | + ApproveTime time.Time `orm:"column(approve_time);type(timestamp);null" description:"审批时间"` | ||
16 | + BasicScore float64 `orm:"column(basic_score);null;digits(4);decimals(1)" description:"基础评分"` | ||
17 | + ExtraScore float64 `orm:"column(extra_score);null;digits(4);decimals(1)" description:"附加评分"` | ||
18 | + ValueScore float64 `orm:"column(value_score);null;digits(4);decimals(1)" description:"价值评分"` | ||
19 | + DiscoveryScore float64 `orm:"column(discovery_score);null;digits(4);decimals(0)" description:"发现评分"` | ||
20 | + ReviewStatus int8 `orm:"column(review_status)" description:"审核状态 审核状态 0:待处理 1:待审核 2:被退回 3:已通过 4:提交 "` | ||
21 | + AuditFlowType int `orm:"column(audit_flow_type)" description:"审核流类型 1.部门长 2.指定成员 3.指定角色 4.特殊审核人"` | ||
22 | + FlowType int `orm:"column(flow_type)" description:"审批类型 1:正常审核 2:特殊审核"` | ||
23 | + ActionType int `orm:"column(action_type)" description:"审批执行方式【1:or】【2:and】"` | ||
24 | + CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"` | ||
25 | + UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | ||
26 | + EnableStatus int8 `orm:"column(enable_status)" description:"有效状态 0:无效 1:有效 (被驳回以后,未完成的审核置为无效)"` | ||
27 | + ApproveData string `orm:"column(approve_data);size(500);null" description:"审核数据 json{公开状态 公开对象 分数}"` | ||
28 | + UserName string `orm:"column(user_name);size(50);null" description:"用户名-冗余"` | ||
29 | + RoleName string `orm:"column(role_name);size(50);null" description:"角色名-冗余"` | ||
30 | + RoleId int `orm:"column(role_id);null" description:"角色id-冗余"` | ||
31 | + ApproveMessage string `orm:"column(approve_message);size(255);null" description:"审核消息-冗余"` | ||
32 | + TemplateId int `orm:"column(template_id);null" description:"模板编号"` | ||
33 | +} | ||
34 | + | ||
35 | +func (t *AuditFlowProcess) TableName() string { | ||
36 | + return "audit_flow_process" | ||
37 | +} | ||
38 | + | ||
39 | +func init() { | ||
40 | + orm.RegisterModel(new(AuditFlowProcess)) | ||
41 | +} | ||
42 | + | ||
43 | +//有效状态 0:无效 1:有效 (被驳回以后,未完成的审核置为无效) | ||
44 | +const ( | ||
45 | + AuditFlowProcessEnableYes int = 1 | ||
46 | + AuditFlowProcessEnableNo int = 0 | ||
47 | +) | ||
48 | + | ||
49 | +//审核状态 审核状态 0:待处理 1:待审核 2:被退回 3:已通过 4:提交 | ||
50 | +const ( | ||
51 | + AuditFlowProcessReviewWait int = 0 | ||
52 | + AuditFlowProcessReviewIng int = 1 | ||
53 | + AuditFlowProcessReviewBack int = 2 | ||
54 | + AuditFlowProcessReviewPass int = 3 | ||
55 | + AuditFlowProcessReviewCommit int = 4 | ||
56 | +) | ||
57 | + | ||
58 | +// GetAuditFlowProcessById retrieves AuditFlowProcess by Id. Returns error if | ||
59 | +// Id doesn't exist | ||
60 | +func GetAuditFlowProcessById(id int64) (v *AuditFlowProcess, err error) { | ||
61 | + o := orm.NewOrm() | ||
62 | + v = &AuditFlowProcess{Id: id} | ||
63 | + if err = o.Read(v); err == nil { | ||
64 | + return v, nil | ||
65 | + } | ||
66 | + return nil, err | ||
67 | +} |
@@ -24,6 +24,7 @@ type Bulletin struct { | @@ -24,6 +24,7 @@ type Bulletin struct { | ||
24 | //AllowCondition int8 `orm:"column(allow_condition);null" description:"关闭条件 (1(bit 0):公告内容查看完 2(bit 1):回答完问题)"` | 24 | //AllowCondition int8 `orm:"column(allow_condition);null" description:"关闭条件 (1(bit 0):公告内容查看完 2(bit 1):回答完问题)"` |
25 | CompanyId int64 `orm:"column(company_id);null" description:"公司Id"` | 25 | CompanyId int64 `orm:"column(company_id);null" description:"公司Id"` |
26 | Status int8 `orm:"column(status)" description:"状态 1-下架 2-上架"` | 26 | Status int8 `orm:"column(status)" description:"状态 1-下架 2-上架"` |
27 | + AllPeople int8 `orm:"column(all_people);null" description:"是否是所有人 0:否 1:是"` | ||
27 | } | 28 | } |
28 | 29 | ||
29 | func (t *Bulletin) TableName() string { | 30 | func (t *Bulletin) TableName() string { |
@@ -31,6 +31,7 @@ type Chance struct { | @@ -31,6 +31,7 @@ type Chance struct { | ||
31 | PublishStatus int `orm:"column(publish_status)" description:"公开状态 -1 未公开、1部门公开、2公司公开"` | 31 | PublishStatus int `orm:"column(publish_status)" description:"公开状态 -1 未公开、1部门公开、2公司公开"` |
32 | AuditLevel int `orm:"column(audit_level)" description:"当前审批步骤"` | 32 | AuditLevel int `orm:"column(audit_level)" description:"当前审批步骤"` |
33 | ApproveData string `orm:"column(approve_data);size(500);null" description:"公开数据 (公开状态 公开对象)"` | 33 | ApproveData string `orm:"column(approve_data);size(500);null" description:"公开数据 (公开状态 公开对象)"` |
34 | + Code string `orm:"column(code)" description:"机会编码"` | ||
34 | } | 35 | } |
35 | 36 | ||
36 | func (t *Chance) TableName() string { | 37 | func (t *Chance) TableName() string { |
@@ -143,3 +143,15 @@ func GetUserCompanyReal(ids []int64) ([]UserCompany, error) { | @@ -143,3 +143,15 @@ func GetUserCompanyReal(ids []int64) ([]UserCompany, error) { | ||
143 | All(&data) | 143 | All(&data) |
144 | return data, err | 144 | return data, err |
145 | } | 145 | } |
146 | + | ||
147 | +//获取公司的所有人员 | ||
148 | +func GetUserCompanyAll(companyId int64) (v []*UserCompany, err error) { | ||
149 | + o := orm.NewOrm() | ||
150 | + sql := `select a.*,b.nick_name from ( | ||
151 | +select id,user_id from user_company where company_id=? and enable=1 | ||
152 | +)a inner join user b on a.user_id = b.id` | ||
153 | + if _, err = o.Raw(sql, companyId).QueryRows(&v); err == nil { | ||
154 | + return v, nil | ||
155 | + } | ||
156 | + return nil, err | ||
157 | +} |
@@ -263,6 +263,8 @@ type RspAuditList struct { | @@ -263,6 +263,8 @@ type RspAuditList struct { | ||
263 | ReviewStatusName string `json:"review_status_name"` | 263 | ReviewStatusName string `json:"review_status_name"` |
264 | EnableStatus int8 `json:"enable_status"` | 264 | EnableStatus int8 `json:"enable_status"` |
265 | EnableStatusName string `json:"enable_status_name"` | 265 | EnableStatusName string `json:"enable_status_name"` |
266 | + DiscoveryScore string `json:"discovery_score"` | ||
267 | + CommentTotal string `json:"comment_total"` | ||
266 | } | 268 | } |
267 | 269 | ||
268 | type ChanceFlowLog struct { | 270 | type ChanceFlowLog struct { |
@@ -20,7 +20,7 @@ type BulletinReleaseRequest struct { | @@ -20,7 +20,7 @@ type BulletinReleaseRequest struct { | ||
20 | //AllowCondition int `json:"allow_condition"` | 20 | //AllowCondition int `json:"allow_condition"` |
21 | QuestionSwitch int `json:"question_switch"` | 21 | QuestionSwitch int `json:"question_switch"` |
22 | Receiver []VisibleObject `json:"receiver"` | 22 | Receiver []VisibleObject `json:"receiver"` |
23 | - SendToAll int `json:"send_to_all"` //所有人 1:是 0:否 | 23 | + AllPeo int8 `json:"allPeo"` //所有人 1:是 0:否 |
24 | Question Question `json:"question"` | 24 | Question Question `json:"question"` |
25 | Cover Cover `json:"cover"` | 25 | Cover Cover `json:"cover"` |
26 | IsPublish int `json:"is_publish"` //是否直接发布 0:否 1:直接发布 | 26 | IsPublish int `json:"is_publish"` //是否直接发布 0:否 1:直接发布 |
@@ -70,6 +70,7 @@ type GetBulletinResponse struct { | @@ -70,6 +70,7 @@ type GetBulletinResponse struct { | ||
70 | Title string `json:"title" valid:"Required"` | 70 | Title string `json:"title" valid:"Required"` |
71 | Content string `json:"content" valid:"Required"` | 71 | Content string `json:"content" valid:"Required"` |
72 | AllowClose int `json:"allow_close"` | 72 | AllowClose int `json:"allow_close"` |
73 | + AllPeo int8 `json:"allPeo"` //所有人 1:是 0:否 | ||
73 | //AllowCondition int `json:"allow_condition"` | 74 | //AllowCondition int `json:"allow_condition"` |
74 | QuestionSwitch int `json:"question_switch"` | 75 | QuestionSwitch int `json:"question_switch"` |
75 | Receiver []VisibleObject `json:"receiver" valid:"Required"` | 76 | Receiver []VisibleObject `json:"receiver" valid:"Required"` |
@@ -90,10 +91,12 @@ type UpdateBulletinRequest struct { | @@ -90,10 +91,12 @@ type UpdateBulletinRequest struct { | ||
90 | Content string `json:"content" valid:"Required"` | 91 | Content string `json:"content" valid:"Required"` |
91 | AllowClose int `json:"allow_close"` | 92 | AllowClose int `json:"allow_close"` |
92 | //AllowCondition int `json:"allow_condition"` | 93 | //AllowCondition int `json:"allow_condition"` |
94 | + AllPeo int8 `json:"allPeo"` //所有人 1:是 0:否 | ||
93 | QuestionSwitch int `json:"question_switch"` | 95 | QuestionSwitch int `json:"question_switch"` |
94 | - Receiver []VisibleObject `json:"receiver" valid:"Required"` | 96 | + Receiver []VisibleObject `json:"receiver"` |
95 | Question Question `json:"question"` | 97 | Question Question `json:"question"` |
96 | Cover Cover `json:"cover" valid:"Required"` | 98 | Cover Cover `json:"cover" valid:"Required"` |
99 | + IsPublish int `json:"is_publish"` //是否直接发布 0:否 1:直接发布 | ||
97 | } | 100 | } |
98 | type UpdateBulletinResponse struct { | 101 | type UpdateBulletinResponse struct { |
99 | } | 102 | } |
@@ -22,6 +22,7 @@ var errmessge ErrorMap = map[string]string{ | @@ -22,6 +22,7 @@ var errmessge ErrorMap = map[string]string{ | ||
22 | "10012": "超过10级的职位限制,请重新选择", | 22 | "10012": "超过10级的职位限制,请重新选择", |
23 | "10013": "同一级职位名称不允许重复", | 23 | "10013": "同一级职位名称不允许重复", |
24 | "10014": "职位名称最多10个字符", | 24 | "10014": "职位名称最多10个字符", |
25 | + "10015": "上级职位不能选择当前职位及其下级职位", | ||
25 | //安全认证相关 | 26 | //安全认证相关 |
26 | "10020": "验证码过期", | 27 | "10020": "验证码过期", |
27 | "10021": "账号或密码不正确", | 28 | "10021": "账号或密码不正确", |
@@ -33,6 +34,7 @@ var errmessge ErrorMap = map[string]string{ | @@ -33,6 +34,7 @@ var errmessge ErrorMap = map[string]string{ | ||
33 | "10027": "无操作权限", | 34 | "10027": "无操作权限", |
34 | "10028": "验证码错误", | 35 | "10028": "验证码错误", |
35 | "10029": "获取验证码失败", | 36 | "10029": "获取验证码失败", |
37 | + "10080": "无操作权限", | ||
36 | 38 | ||
37 | //用户相关 | 39 | //用户相关 |
38 | "10031": "无效角色", | 40 | "10031": "无效角色", |
@@ -47,6 +49,8 @@ var errmessge ErrorMap = map[string]string{ | @@ -47,6 +49,8 @@ var errmessge ErrorMap = map[string]string{ | ||
47 | "10071": "不能删除主管理员", | 49 | "10071": "不能删除主管理员", |
48 | "10072": "不能禁用主管理员", | 50 | "10072": "不能禁用主管理员", |
49 | "10073": "角色组已存在", | 51 | "10073": "角色组已存在", |
52 | + "10074": "删除失败,存在需要用户审批的单子", | ||
53 | + "10075": "禁用失败,存在需要用户审批的单子", | ||
50 | //部门相关 | 54 | //部门相关 |
51 | "10041": "无效的主管设置", | 55 | "10041": "无效的主管设置", |
52 | "10042": "上级部门不能选择当前部门及其子部门", | 56 | "10042": "上级部门不能选择当前部门及其子部门", |
@@ -76,6 +80,7 @@ var errmessge ErrorMap = map[string]string{ | @@ -76,6 +80,7 @@ var errmessge ErrorMap = map[string]string{ | ||
76 | "10276": "最多选择1个角色", | 80 | "10276": "最多选择1个角色", |
77 | "10277": "最多一个小数", | 81 | "10277": "最多一个小数", |
78 | "10278": "公告标题大于30个字符", | 82 | "10278": "公告标题大于30个字符", |
83 | + "10279": "该子分类名称已存在", | ||
79 | 84 | ||
80 | "10170": "请选择指定成员", | 85 | "10170": "请选择指定成员", |
81 | "10171": "请选择审批人类别", | 86 | "10171": "请选择审批人类别", |
@@ -90,6 +95,8 @@ var errmessge ErrorMap = map[string]string{ | @@ -90,6 +95,8 @@ var errmessge ErrorMap = map[string]string{ | ||
90 | //评分配置相关 | 95 | //评分配置相关 |
91 | "12101": "分值范围不符合要求", | 96 | "12101": "分值范围不符合要求", |
92 | "12102": "评分规则不符合要求", | 97 | "12102": "评分规则不符合要求", |
98 | + //权限配置相关 | ||
99 | + "10091": "至少选择一个特定部门", | ||
93 | } | 100 | } |
94 | 101 | ||
95 | //错误码转换 ,兼容需要 | 102 | //错误码转换 ,兼容需要 |
@@ -135,6 +135,8 @@ func GetAuditList(param protocol.RequestAuditList, companyid int64, userid int64 | @@ -135,6 +135,8 @@ func GetAuditList(param protocol.RequestAuditList, companyid int64, userid int64 | ||
135 | ReviewStatus: v.ReviewStatus, | 135 | ReviewStatus: v.ReviewStatus, |
136 | ReviewStatusName: models.ChanceReviewStatusMap[v.ReviewStatus], | 136 | ReviewStatusName: models.ChanceReviewStatusMap[v.ReviewStatus], |
137 | Code: v.Code, | 137 | Code: v.Code, |
138 | + DiscoveryScore: v.DiscoveryScore, | ||
139 | + CommentTotal: v.CommentTotal, | ||
138 | } | 140 | } |
139 | 141 | ||
140 | if t < 0 { | 142 | if t < 0 { |
@@ -35,7 +35,7 @@ func TemplateAdd(uid, companyId int64, request *protocol.TemplateAddRequest) (rs | @@ -35,7 +35,7 @@ func TemplateAdd(uid, companyId int64, request *protocol.TemplateAddRequest) (rs | ||
35 | return | 35 | return |
36 | } | 36 | } |
37 | if _, err = models.GetAuditTemplateByName(companyId, request.Template.Name); err == nil { | 37 | if _, err = models.GetAuditTemplateByName(companyId, request.Template.Name); err == nil { |
38 | - err = protocol.NewErrWithMessage("10271") | 38 | + err = protocol.NewErrWithMessage("10279") |
39 | return | 39 | return |
40 | } | 40 | } |
41 | orm := orm2.NewOrm() | 41 | orm := orm2.NewOrm() |
@@ -111,6 +111,8 @@ func TemplateAdd(uid, companyId int64, request *protocol.TemplateAddRequest) (rs | @@ -111,6 +111,8 @@ func TemplateAdd(uid, companyId int64, request *protocol.TemplateAddRequest) (rs | ||
111 | flowConfig.ToRole = jsonAssertMarsh(getIdsFrom(config.ToRole)) | 111 | flowConfig.ToRole = jsonAssertMarsh(getIdsFrom(config.ToRole)) |
112 | flowConfig.ToUser = jsonAssertMarsh(getIdsFrom(config.ToUser)) | 112 | flowConfig.ToUser = jsonAssertMarsh(getIdsFrom(config.ToUser)) |
113 | flowConfig.ActionType = config.AcitonType | 113 | flowConfig.ActionType = config.AcitonType |
114 | + //flowConfig.FlowType = config.ProcessType | ||
115 | + //flowConfig.AuditFlowType = config.ApproveType | ||
114 | flowConfig.CreateAt = time.Now() | 116 | flowConfig.CreateAt = time.Now() |
115 | flowConfig.AuditGroupId = int64(config.GroupId) | 117 | flowConfig.AuditGroupId = int64(config.GroupId) |
116 | flowConfig.ConfigData = jsonAssertMarsh(config) | 118 | flowConfig.ConfigData = jsonAssertMarsh(config) |
@@ -160,9 +162,11 @@ func TemplateUpdate(uid, companyId int64, request *protocol.TemplateUpdateReques | @@ -160,9 +162,11 @@ func TemplateUpdate(uid, companyId int64, request *protocol.TemplateUpdateReques | ||
160 | log.Error("template_id:%v 不存在 ,err:%v", request.Template.Id, err.Error()) | 162 | log.Error("template_id:%v 不存在 ,err:%v", request.Template.Id, err.Error()) |
161 | return | 163 | return |
162 | } | 164 | } |
163 | - if _, err = models.GetAuditTemplateByName(companyId, request.Template.Name); err == nil { | ||
164 | - err = protocol.NewErrWithMessage("10271") | ||
165 | - return | 165 | + if template.Name != request.Template.Name { |
166 | + if _, err = models.GetAuditTemplateByName(companyId, request.Template.Name); err == nil { | ||
167 | + err = protocol.NewErrWithMessage("10279") | ||
168 | + return | ||
169 | + } | ||
166 | } | 170 | } |
167 | orm := orm2.NewOrm() | 171 | orm := orm2.NewOrm() |
168 | //模板 | 172 | //模板 |
@@ -218,7 +222,7 @@ func TemplateUpdate(uid, companyId int64, request *protocol.TemplateUpdateReques | @@ -218,7 +222,7 @@ func TemplateUpdate(uid, companyId int64, request *protocol.TemplateUpdateReques | ||
218 | for i := range request.AuditFlowConfig.ProcessConfig { | 222 | for i := range request.AuditFlowConfig.ProcessConfig { |
219 | config := request.AuditFlowConfig.ProcessConfig[i] | 223 | config := request.AuditFlowConfig.ProcessConfig[i] |
220 | flowConfig := &models.AuditFlowConfig{ | 224 | flowConfig := &models.AuditFlowConfig{ |
221 | - AuditFlowType: config.ProcessType, | 225 | + //AuditFlowType: config.ApproveType, |
222 | } | 226 | } |
223 | if config.ProcessType == models.FlowTypeNormal { | 227 | if config.ProcessType == models.FlowTypeNormal { |
224 | flowConfig.Level = normalLevel | 228 | flowConfig.Level = normalLevel |
@@ -231,6 +235,8 @@ func TemplateUpdate(uid, companyId int64, request *protocol.TemplateUpdateReques | @@ -231,6 +235,8 @@ func TemplateUpdate(uid, companyId int64, request *protocol.TemplateUpdateReques | ||
231 | flowConfig.ToRole = jsonAssertMarsh(getIdsFrom(config.ToRole)) | 235 | flowConfig.ToRole = jsonAssertMarsh(getIdsFrom(config.ToRole)) |
232 | flowConfig.ToUser = jsonAssertMarsh(getIdsFrom(config.ToUser)) | 236 | flowConfig.ToUser = jsonAssertMarsh(getIdsFrom(config.ToUser)) |
233 | flowConfig.ActionType = config.AcitonType | 237 | flowConfig.ActionType = config.AcitonType |
238 | + flowConfig.FlowType = config.ProcessType | ||
239 | + flowConfig.AuditFlowType = config.ApproveType | ||
234 | flowConfig.CreateAt = time.Now() | 240 | flowConfig.CreateAt = time.Now() |
235 | flowConfig.AuditGroupId = int64(config.GroupId) | 241 | flowConfig.AuditGroupId = int64(config.GroupId) |
236 | flowConfig.ConfigData = jsonAssertMarsh(config) | 242 | flowConfig.ConfigData = jsonAssertMarsh(config) |
@@ -143,30 +143,6 @@ func ChangeLoginToken(userid, companyid int64) (protocol.LoginAuthToken, error) | @@ -143,30 +143,6 @@ func ChangeLoginToken(userid, companyid int64) (protocol.LoginAuthToken, error) | ||
143 | return logintoken, nil | 143 | return logintoken, nil |
144 | } | 144 | } |
145 | 145 | ||
146 | -// func RefreshLoginToken(refreshtoken string) (protocol.LoginAuthToken, error) { | ||
147 | -// var ( | ||
148 | -// logintoken protocol.LoginAuthToken | ||
149 | -// mtoken *MyToken | ||
150 | -// err error | ||
151 | -// storetoken redisdata.RedisLoginToken | ||
152 | -// ) | ||
153 | -// mtoken, err = ValidJWTToken(refreshtoken) | ||
154 | -// if err != nil { | ||
155 | -// log.Debug("token失效 err:%s", err) | ||
156 | -// return logintoken, protocol.NewErrWithMessage("10024") | ||
157 | -// } | ||
158 | -// storetoken, err = redisdata.GetLoginToken(mtoken.UID, mtoken.CompanyID) | ||
159 | -// if err != nil { | ||
160 | -// log.Error("redis err:%s", err) | ||
161 | -// return logintoken, protocol.NewErrWithMessage("10024") | ||
162 | -// } | ||
163 | -// if storetoken.RefreshToken != refreshtoken { | ||
164 | -// return logintoken, protocol.NewErrWithMessage("10024") | ||
165 | -// } | ||
166 | -// logintoken, _ = GenerateAuthToken(mtoken.UID, mtoken.CompanyID) | ||
167 | -// return logintoken, nil | ||
168 | -// } | ||
169 | - | ||
170 | func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, error) { | 146 | func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, error) { |
171 | var ( | 147 | var ( |
172 | err error | 148 | err error |
@@ -239,7 +215,7 @@ func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, erro | @@ -239,7 +215,7 @@ func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, erro | ||
239 | log.Error("更新用户数据失败:%s", err) | 215 | log.Error("更新用户数据失败:%s", err) |
240 | } | 216 | } |
241 | 217 | ||
242 | - InitPermission(usercompanyid) | 218 | + InitPermission(usercompanyid, userdata.Id) |
243 | return logintoken, err | 219 | return logintoken, err |
244 | } | 220 | } |
245 | 221 | ||
@@ -392,22 +368,6 @@ func GetUserHasMenu(userid, companyid int64) ([]protocol.ResponseUserHasMenu, er | @@ -392,22 +368,6 @@ func GetUserHasMenu(userid, companyid int64) ([]protocol.ResponseUserHasMenu, er | ||
392 | return list, nil | 368 | return list, nil |
393 | } | 369 | } |
394 | 370 | ||
395 | -//主管拥有全部的菜单 | ||
396 | -// func getAdminHasMenu() ([]protocol.PermissionItem, error) { | ||
397 | -// const datasql string = `SELECT id,name,icon,parent_id,senior_status,sort,code | ||
398 | -// FROM menu WHERE enabled=1 ORDER BY sort ` | ||
399 | -// var ( | ||
400 | -// list = make([]protocol.PermissionItem, 0) | ||
401 | -// err error | ||
402 | -// ) | ||
403 | -// err = utils.ExecuteQueryAll(&list, datasql) | ||
404 | -// if err != nil { | ||
405 | -// log.Error("EXECUTE SQL err:%s", err) | ||
406 | -// return nil, protocol.NewErrWithMessage("1") | ||
407 | -// } | ||
408 | -// return list, nil | ||
409 | -// } | ||
410 | - | ||
411 | func LoginAuthBySmsCode(phone string, code string) (protocol.LoginAuthToken, error) { | 371 | func LoginAuthBySmsCode(phone string, code string) (protocol.LoginAuthToken, error) { |
412 | var ( | 372 | var ( |
413 | err error | 373 | err error |
@@ -477,7 +437,7 @@ func LoginAuthBySmsCode(phone string, code string) (protocol.LoginAuthToken, err | @@ -477,7 +437,7 @@ func LoginAuthBySmsCode(phone string, code string) (protocol.LoginAuthToken, err | ||
477 | if err != nil { | 437 | if err != nil { |
478 | log.Error("更新用户数据失败:%s", err) | 438 | log.Error("更新用户数据失败:%s", err) |
479 | } | 439 | } |
480 | - InitPermission(usercompanyid) | 440 | + InitPermission(usercompanyid, userdata.Id) |
481 | return logintoken, err | 441 | return logintoken, err |
482 | } | 442 | } |
483 | 443 | ||
@@ -508,7 +468,7 @@ func SmsCodeCheck(phone string, code string) error { | @@ -508,7 +468,7 @@ func SmsCodeCheck(phone string, code string) error { | ||
508 | } | 468 | } |
509 | 469 | ||
510 | //InitPermission 登录时权限初始化 | 470 | //InitPermission 登录时权限初始化 |
511 | -func InitPermission(usercompanyid int64) error { | 471 | +func InitPermission(usercompanyid int64, usercompamyid int64) error { |
512 | var ( | 472 | var ( |
513 | err error | 473 | err error |
514 | permissionMap map[string]serverbac.PermissionOptionObject | 474 | permissionMap map[string]serverbac.PermissionOptionObject |
@@ -518,7 +478,8 @@ func InitPermission(usercompanyid int64) error { | @@ -518,7 +478,8 @@ func InitPermission(usercompanyid int64) error { | ||
518 | log.Error("获取用户的权限失败") | 478 | log.Error("获取用户的权限失败") |
519 | return err | 479 | return err |
520 | } | 480 | } |
521 | - err = redisdata.SetUserPermission(permissionMap, usercompanyid) | 481 | + |
482 | + err = redisdata.SetUserPermission(permissionMap, usercompamyid) | ||
522 | if err != nil { | 483 | if err != nil { |
523 | log.Error("缓存用户权限失败:%s", err) | 484 | log.Error("缓存用户权限失败:%s", err) |
524 | } | 485 | } |
@@ -536,9 +497,18 @@ func ValidUserPermission(urlPath string, userid int64, companyid int64) bool { | @@ -536,9 +497,18 @@ func ValidUserPermission(urlPath string, userid int64, companyid int64) bool { | ||
536 | if !ok { | 497 | if !ok { |
537 | return true | 498 | return true |
538 | } | 499 | } |
500 | + companyinfo, err := models.GetCompanyById(companyid) | ||
501 | + if err != nil { | ||
502 | + log.Error("获取公司数据失败") | ||
503 | + return false | ||
504 | + } | ||
505 | + if companyinfo.AdminId == userid { | ||
506 | + return true | ||
507 | + } | ||
508 | + | ||
539 | permissionObj, err = redisdata.GetUserPermission(userid, permissionbase.CodeName) | 509 | permissionObj, err = redisdata.GetUserPermission(userid, permissionbase.CodeName) |
540 | if err != nil { | 510 | if err != nil { |
541 | - log.Error("未取到权限数据") | 511 | + log.Error("未取到权限数据 err:%s", err) |
542 | return false | 512 | return false |
543 | } | 513 | } |
544 | ok = permissionObj.GetValidFunc(permissionbase.ActionName) | 514 | ok = permissionObj.GetValidFunc(permissionbase.ActionName) |
@@ -45,6 +45,7 @@ func BulletinRelease(uid, companyId int64, request *protocol.BulletinReleaseRequ | @@ -45,6 +45,7 @@ func BulletinRelease(uid, companyId int64, request *protocol.BulletinReleaseRequ | ||
45 | CreateAt: time.Now(), | 45 | CreateAt: time.Now(), |
46 | UpdateAt: time.Now(), | 46 | UpdateAt: time.Now(), |
47 | Status: status, | 47 | Status: status, |
48 | + AllPeople: request.AllPeo, | ||
48 | } | 49 | } |
49 | 50 | ||
50 | orm := orm2.NewOrm() | 51 | orm := orm2.NewOrm() |
@@ -85,7 +86,7 @@ func BulletinRelease(uid, companyId int64, request *protocol.BulletinReleaseRequ | @@ -85,7 +86,7 @@ func BulletinRelease(uid, companyId int64, request *protocol.BulletinReleaseRequ | ||
85 | } | 86 | } |
86 | //TODO:发送公告消息 | 87 | //TODO:发送公告消息 |
87 | if request.IsPublish == 1 { | 88 | if request.IsPublish == 1 { |
88 | - if err = sendBulletinUserMsg(orm, request.Receiver, companyId, int64(id), bulletin.Title); err != nil { | 89 | + if err = sendBulletinUserMsg(orm, request.Receiver, companyId, int64(id), bulletin.Title, request.AllPeo); err != nil { |
89 | log.Error(err.Error()) | 90 | log.Error(err.Error()) |
90 | orm.Rollback() | 91 | orm.Rollback() |
91 | return | 92 | return |
@@ -136,13 +137,23 @@ func getBulletinReceiverIds(orm orm2.Ormer, receivers []protocol.VisibleObject, | @@ -136,13 +137,23 @@ func getBulletinReceiverIds(orm orm2.Ormer, receivers []protocol.VisibleObject, | ||
136 | } | 137 | } |
137 | 138 | ||
138 | //发送公告消息 | 139 | //发送公告消息 |
139 | -func sendBulletinUserMsg(orm orm2.Ormer, receivers []protocol.VisibleObject, companyId int64, sourceId int64, message string) (err error) { | 140 | +func sendBulletinUserMsg(orm orm2.Ormer, receivers []protocol.VisibleObject, companyId int64, sourceId int64, message string, allPeople int8) (err error) { |
140 | var ( | 141 | var ( |
141 | ids []int64 | 142 | ids []int64 |
142 | sended = make(map[int64]int64) | 143 | sended = make(map[int64]int64) |
143 | ) | 144 | ) |
144 | - if ids, err = getBulletinReceiverIds(orm, receivers, companyId, sourceId, message); err != nil { | ||
145 | - return | 145 | + if allPeople == 1 { |
146 | + if userCompanys, e := models.GetUserCompanyAll(companyId); e == nil { | ||
147 | + for i := range userCompanys { | ||
148 | + ids = append(ids, userCompanys[i].Id) | ||
149 | + } | ||
150 | + } else { | ||
151 | + log.Error("%v %v", companyId, e.Error()) | ||
152 | + } | ||
153 | + } else { | ||
154 | + if ids, err = getBulletinReceiverIds(orm, receivers, companyId, sourceId, message); err != nil { | ||
155 | + return | ||
156 | + } | ||
146 | } | 157 | } |
147 | for i := range ids { | 158 | for i := range ids { |
148 | if _, ok := sended[ids[i]]; ok { | 159 | if _, ok := sended[ids[i]]; ok { |
@@ -256,6 +267,7 @@ func GetBulletin(id int, companyId int64, request *protocol.GetBulletinRequest) | @@ -256,6 +267,7 @@ func GetBulletin(id int, companyId int64, request *protocol.GetBulletinRequest) | ||
256 | Title: bulletin.Title, | 267 | Title: bulletin.Title, |
257 | Content: bulletin.Content, | 268 | Content: bulletin.Content, |
258 | AllowClose: int(bulletin.AllowClose), | 269 | AllowClose: int(bulletin.AllowClose), |
270 | + AllPeo: bulletin.AllPeople, | ||
259 | //AllowCondition: int(bulletin.AllowCondition), | 271 | //AllowCondition: int(bulletin.AllowCondition), |
260 | Cover: protocol.Cover(bulletin.Cover), | 272 | Cover: protocol.Cover(bulletin.Cover), |
261 | Question: protocol.Question{ | 273 | Question: protocol.Question{ |
@@ -326,7 +338,11 @@ func UpdateBulletin(companyId int64, request *protocol.UpdateBulletinRequest) (r | @@ -326,7 +338,11 @@ func UpdateBulletin(companyId int64, request *protocol.UpdateBulletinRequest) (r | ||
326 | bulletin.QuestionSwitch = int8(request.QuestionSwitch) | 338 | bulletin.QuestionSwitch = int8(request.QuestionSwitch) |
327 | //bulletin.AllowCondition = int8(request.AllowCondition) | 339 | //bulletin.AllowCondition = int8(request.AllowCondition) |
328 | bulletin.AllowClose = int8(request.AllowClose) | 340 | bulletin.AllowClose = int8(request.AllowClose) |
341 | + bulletin.AllPeople = request.AllPeo | ||
329 | bulletin.UpdateAt = time.Now() | 342 | bulletin.UpdateAt = time.Now() |
343 | + if request.IsPublish == 1 && bulletin.Status == protocol.BulletinUnRelease { | ||
344 | + bulletin.Status = protocol.BulletinRelease | ||
345 | + } | ||
330 | if err = models.UpdateBulletinById(bulletin); err != nil { | 346 | if err = models.UpdateBulletinById(bulletin); err != nil { |
331 | log.Error(err.Error()) | 347 | log.Error(err.Error()) |
332 | return | 348 | return |
@@ -377,6 +393,14 @@ func UpdateBulletin(companyId int64, request *protocol.UpdateBulletinRequest) (r | @@ -377,6 +393,14 @@ func UpdateBulletin(companyId int64, request *protocol.UpdateBulletinRequest) (r | ||
377 | } | 393 | } |
378 | 394 | ||
379 | } | 395 | } |
396 | + orm := orm2.NewOrm() | ||
397 | + if request.IsPublish == 1 && bulletin.Status == protocol.BulletinUnRelease { | ||
398 | + if err = sendBulletinUserMsg(orm, request.Receiver, companyId, int64(bulletin.Id), bulletin.Title, request.AllPeo); err != nil { | ||
399 | + log.Error(err.Error()) | ||
400 | + orm.Rollback() | ||
401 | + return | ||
402 | + } | ||
403 | + } | ||
380 | return | 404 | return |
381 | } | 405 | } |
382 | 406 | ||
@@ -419,7 +443,7 @@ func OperateBulletin(companyId int64, request *protocol.OperateBulletinRequest) | @@ -419,7 +443,7 @@ func OperateBulletin(companyId int64, request *protocol.OperateBulletinRequest) | ||
419 | } | 443 | } |
420 | if request.CmdType == protocol.BulletinRelease { //上架 | 444 | if request.CmdType == protocol.BulletinRelease { //上架 |
421 | status = protocol.BulletinRelease | 445 | status = protocol.BulletinRelease |
422 | - if err = sendBulletinUserMsg(orm, receiver, companyId, int64(bulletin.Id), bulletin.Title); err != nil { | 446 | + if err = sendBulletinUserMsg(orm, receiver, companyId, int64(bulletin.Id), bulletin.Title, bulletin.AllPeople); err != nil { |
423 | log.Error(err.Error()) | 447 | log.Error(err.Error()) |
424 | orm.Rollback() | 448 | orm.Rollback() |
425 | return | 449 | return |
@@ -213,7 +213,7 @@ func positionRelationUpdate(positionUpdate *models.Position, newparent *models.P | @@ -213,7 +213,7 @@ func positionRelationUpdate(positionUpdate *models.Position, newparent *models.P | ||
213 | o.Rollback() | 213 | o.Rollback() |
214 | e := fmt.Errorf("departSubset[i].Id == newparent.Id") | 214 | e := fmt.Errorf("departSubset[i].Id == newparent.Id") |
215 | log.Error(e.Error()) | 215 | log.Error(e.Error()) |
216 | - return protocol.NewErrWithMessage("1", e) | 216 | + return protocol.NewErrWithMessage("10015", e) |
217 | } | 217 | } |
218 | //重建关系树 | 218 | //重建关系树 |
219 | s := strings.TrimPrefix(positionSubset[i].Relation, oldRelation) | 219 | s := strings.TrimPrefix(positionSubset[i].Relation, oldRelation) |
@@ -465,7 +465,14 @@ func UserDelete(userCompanyids []int64, companyid int64) error { | @@ -465,7 +465,14 @@ func UserDelete(userCompanyids []int64, companyid int64) error { | ||
465 | log.Error("获取用户数据失败:%s", err) | 465 | log.Error("获取用户数据失败:%s", err) |
466 | return protocol.NewErrWithMessage("1") | 466 | return protocol.NewErrWithMessage("1") |
467 | } | 467 | } |
468 | - | 468 | + exist := o.QueryTable(&models.AuditFlowProcess{}). |
469 | + Filter("uid__in", userCompanyids). | ||
470 | + Filter("enable_status", models.AuditFlowProcessEnableYes). | ||
471 | + Filter("review_status__in", models.AuditFlowProcessReviewWait, models.AuditFlowProcessReviewIng). | ||
472 | + Exist() | ||
473 | + if exist { | ||
474 | + return protocol.NewErrWithMessage("10074") | ||
475 | + } | ||
469 | var ( | 476 | var ( |
470 | ids []int64 | 477 | ids []int64 |
471 | ) | 478 | ) |
@@ -657,6 +664,14 @@ func UserForbid(userCompanyids []int64, companyid int64) error { | @@ -657,6 +664,14 @@ func UserForbid(userCompanyids []int64, companyid int64) error { | ||
657 | log.Error("获取用户数据失败:%s", err) | 664 | log.Error("获取用户数据失败:%s", err) |
658 | return protocol.NewErrWithMessage("1") | 665 | return protocol.NewErrWithMessage("1") |
659 | } | 666 | } |
667 | + exist := o.QueryTable(&models.AuditFlowProcess{}). | ||
668 | + Filter("uid__in", userCompanyids). | ||
669 | + Filter("enable_status", models.AuditFlowProcessEnableYes). | ||
670 | + Filter("review_status__in", models.AuditFlowProcessReviewWait, models.AuditFlowProcessReviewIng). | ||
671 | + Exist() | ||
672 | + if exist { | ||
673 | + return protocol.NewErrWithMessage("10075") | ||
674 | + } | ||
660 | var ( | 675 | var ( |
661 | ids []int64 | 676 | ids []int64 |
662 | ) | 677 | ) |
@@ -173,6 +173,13 @@ func UpdateSetOpportunity(param OptionOpportunity, roleid int64, companyid int64 | @@ -173,6 +173,13 @@ func UpdateSetOpportunity(param OptionOpportunity, roleid int64, companyid int64 | ||
173 | err error | 173 | err error |
174 | menuinfo *models.Menu | 174 | menuinfo *models.Menu |
175 | ) | 175 | ) |
176 | + | ||
177 | + if param.Check == OpportunityCheckLv3 { | ||
178 | + if len(param.CheckOption.Departments) == 0 { | ||
179 | + return protocol.NewErrWithMessage("10091") | ||
180 | + } | ||
181 | + } | ||
182 | + | ||
176 | menuinfo, err = models.GetMenuByCode(M_SYSTEM_OPPORTUNITY) | 183 | menuinfo, err = models.GetMenuByCode(M_SYSTEM_OPPORTUNITY) |
177 | if err != nil { | 184 | if err != nil { |
178 | log.Error("获取菜单数据失败GetMenuByCode(%s):%s", M_SYSTEM_OPPORTUNITY, err) | 185 | log.Error("获取菜单数据失败GetMenuByCode(%s):%s", M_SYSTEM_OPPORTUNITY, err) |
@@ -53,9 +53,9 @@ var RouterPermission = map[string]PermissionBase{ | @@ -53,9 +53,9 @@ var RouterPermission = map[string]PermissionBase{ | ||
53 | "/v1/rbac/role_group/add": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | 53 | "/v1/rbac/role_group/add": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, |
54 | "/v1/rbac/role_group/edit": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | 54 | "/v1/rbac/role_group/edit": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, |
55 | "/v1/rbac/role_group/delete": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | 55 | "/v1/rbac/role_group/delete": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, |
56 | + "/v1/rbac/role/menu": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | ||
56 | "/v1/rbac/menu/list": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | 57 | "/v1/rbac/menu/list": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, |
57 | - "/v1/rbac/menu": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | ||
58 | - "/v1/rbac/menu/edit": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | 58 | + "/v1/rbac/role/menu/edit": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, |
59 | "/v1/rbac/menu/opportunity": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | 59 | "/v1/rbac/menu/opportunity": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, |
60 | "/v1/rbac/menu/opportunity/edit": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, | 60 | "/v1/rbac/menu/opportunity/edit": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE_ROLE, ActionName: "default"}, |
61 | "/v1/user/list": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE, ActionName: "default"}, | 61 | "/v1/user/list": PermissionBase{CodeName: M_ENTERPRISE_EMPLOYEE, ActionName: "default"}, |
@@ -84,6 +84,9 @@ var RouterPermission = map[string]PermissionBase{ | @@ -84,6 +84,9 @@ var RouterPermission = map[string]PermissionBase{ | ||
84 | "/v1/template/deleteCategory": PermissionBase{CodeName: M_SYSTEM_OPPORTUNITY_TEMPLATE, ActionName: "default"}, | 84 | "/v1/template/deleteCategory": PermissionBase{CodeName: M_SYSTEM_OPPORTUNITY_TEMPLATE, ActionName: "default"}, |
85 | "/v1/config/score": PermissionBase{CodeName: M_SYSTEM_RATING, ActionName: "default"}, | 85 | "/v1/config/score": PermissionBase{CodeName: M_SYSTEM_RATING, ActionName: "default"}, |
86 | "/v1/config/score/get": PermissionBase{CodeName: M_SYSTEM_RATING, ActionName: "default"}, | 86 | "/v1/config/score/get": PermissionBase{CodeName: M_SYSTEM_RATING, ActionName: "default"}, |
87 | + "/v1/audit/list": PermissionBase{CodeName: M_SYSTEM_OPPORTUNITY, ActionName: "check"}, | ||
88 | + "/v1/audit/info": PermissionBase{CodeName: M_SYSTEM_OPPORTUNITY, ActionName: "check"}, | ||
89 | + "/v1/audit/allow_forbid": PermissionBase{CodeName: M_SYSTEM_OPPORTUNITY, ActionName: "close_chance"}, | ||
87 | } | 90 | } |
88 | 91 | ||
89 | type CodeToObject func() PermissionOptionObject | 92 | type CodeToObject func() PermissionOptionObject |
@@ -143,3 +146,26 @@ func GetUserPermission(userCompanyid int64) (map[string]PermissionOptionObject, | @@ -143,3 +146,26 @@ func GetUserPermission(userCompanyid int64) (map[string]PermissionOptionObject, | ||
143 | } | 146 | } |
144 | return objMap, nil | 147 | return objMap, nil |
145 | } | 148 | } |
149 | + | ||
150 | +// func ValidUserPermission(urlPath string, userid int64, companyid int64) bool { | ||
151 | +// var ( | ||
152 | +// err error | ||
153 | +// permissionbase PermissionBase | ||
154 | +// ok bool = false | ||
155 | +// permissionObj PermissionOptionObject | ||
156 | +// ) | ||
157 | +// permissionbase, ok = RouterPermission[urlPath] | ||
158 | +// if !ok { | ||
159 | +// return true | ||
160 | +// } | ||
161 | +// permissionObj, err = redisdata.GetUserPermission(userid, permissionbase.CodeName) | ||
162 | +// if err != nil { | ||
163 | +// log.Error("未取到权限数据") | ||
164 | +// return false | ||
165 | +// } | ||
166 | +// ok = permissionObj.GetValidFunc(permissionbase.ActionName) | ||
167 | +// if ok { | ||
168 | +// return true | ||
169 | +// } | ||
170 | +// return false | ||
171 | +// } |
@@ -134,8 +134,17 @@ func NewOptionOpportunity() PermissionOptionObject { | @@ -134,8 +134,17 @@ func NewOptionOpportunity() PermissionOptionObject { | ||
134 | //GetValidFunc PermissionOptionBase 接口实现 | 134 | //GetValidFunc PermissionOptionBase 接口实现 |
135 | func (p *OptionOpportunity) GetValidFunc(k string) bool { | 135 | func (p *OptionOpportunity) GetValidFunc(k string) bool { |
136 | m := map[string]func() bool{ | 136 | m := map[string]func() bool{ |
137 | - "check": p.ValidCheck, | ||
138 | - } | 137 | + "check": p.ValidCheck, |
138 | + "edit_sorce": p.ValidEditSorce, | ||
139 | + "close_chance": p.ValidCloseChance, | ||
140 | + "edit_public_status": p.ValidEditPublicStatus, | ||
141 | + } | ||
142 | + /* | ||
143 | + EditSorce int `json:"edit_sorce"` | ||
144 | + EditPublicStatus int `json:"edit_public_status"` | ||
145 | + CloseChance int `json:"close_chance"` | ||
146 | + EditChance int `json:"edit_chance"` | ||
147 | + */ | ||
139 | if fn, ok := m[k]; ok { | 148 | if fn, ok := m[k]; ok { |
140 | b := fn() | 149 | b := fn() |
141 | return b | 150 | return b |
@@ -217,6 +226,13 @@ func (p *OptionOpportunity) ValidEditPublicStatus() bool { | @@ -217,6 +226,13 @@ func (p *OptionOpportunity) ValidEditPublicStatus() bool { | ||
217 | return false | 226 | return false |
218 | } | 227 | } |
219 | 228 | ||
229 | +func (p *OptionOpportunity) ValidCloseChance() bool { | ||
230 | + if p.CloseChance > 0 { | ||
231 | + return true | ||
232 | + } | ||
233 | + return false | ||
234 | +} | ||
235 | + | ||
220 | // //StringUnmarshal PermissionOptionBase 接口实现 | 236 | // //StringUnmarshal PermissionOptionBase 接口实现 |
221 | // func (p *OptionOpportunity) StringUnmarshal(s string) error { | 237 | // func (p *OptionOpportunity) StringUnmarshal(s string) error { |
222 | // err := json.Unmarshal([]byte(s), p) | 238 | // err := json.Unmarshal([]byte(s), p) |
@@ -100,8 +100,8 @@ func GetCaptchAuth(phone string) (string, error) { | @@ -100,8 +100,8 @@ func GetCaptchAuth(phone string) (string, error) { | ||
100 | return r, err | 100 | return r, err |
101 | } | 101 | } |
102 | 102 | ||
103 | -func SetUserPermission(objMap map[string]rbac.PermissionOptionObject, usercompanyid int64) error { | ||
104 | - key := GetKeyUserPermission(usercompanyid) | 103 | +func SetUserPermission(objMap map[string]rbac.PermissionOptionObject, userid int64) error { |
104 | + key := GetKeyUserPermission(userid) | ||
105 | client := redis.GetRedis() | 105 | client := redis.GetRedis() |
106 | for k := range objMap { | 106 | for k := range objMap { |
107 | s, err := json.Marshal(objMap[k]) | 107 | s, err := json.Marshal(objMap[k]) |
-
请 注册 或 登录 后发表评论