正在显示
8 个修改的文件
包含
228 行增加
和
13 行删除
models/audit_flow_log.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + "time" | ||
6 | + | ||
7 | + "github.com/astaxie/beego/orm" | ||
8 | +) | ||
9 | + | ||
10 | +type AuditFlowLog struct { | ||
11 | + Id int `orm:"column(id);auto" description:"唯一编号"` | ||
12 | + ChanceId int64 `orm:"column(chance_id)" description:"表chance.id 所属机会编号"` | ||
13 | + Content string `orm:"column(content);size(500)" description:"内容 json"` | ||
14 | + ApproveUserId int64 `orm:"column(approve_user_id)" description:"审核人用户编号"` | ||
15 | + CreateAt time.Time `orm:"column(create_at);type(timestamp);auto_now" description:"创建时间"` | ||
16 | + Code int `orm:"column(code)" description:"消息编码"` | ||
17 | +} | ||
18 | + | ||
19 | +func (t *AuditFlowLog) TableName() string { | ||
20 | + return "audit_flow_log" | ||
21 | +} | ||
22 | + | ||
23 | +func init() { | ||
24 | + orm.RegisterModel(new(AuditFlowLog)) | ||
25 | +} | ||
26 | + | ||
27 | +// AddAuditFlowLog insert a new AuditFlowLog into database and returns | ||
28 | +// last inserted Id on success. | ||
29 | +func AddAuditFlowLog(m *AuditFlowLog) (id int64, err error) { | ||
30 | + o := orm.NewOrm() | ||
31 | + id, err = o.Insert(m) | ||
32 | + return | ||
33 | +} | ||
34 | + | ||
35 | +// GetAuditFlowLogById retrieves AuditFlowLog by Id. Returns error if | ||
36 | +// Id doesn't exist | ||
37 | +func GetAuditFlowLogById(id int) (v *AuditFlowLog, err error) { | ||
38 | + o := orm.NewOrm() | ||
39 | + v = &AuditFlowLog{Id: id} | ||
40 | + if err = o.Read(v); err == nil { | ||
41 | + return v, nil | ||
42 | + } | ||
43 | + return nil, err | ||
44 | +} | ||
45 | + | ||
46 | +// UpdateAuditFlowLog updates AuditFlowLog by Id and returns error if | ||
47 | +// the record to be updated doesn't exist | ||
48 | +func UpdateAuditFlowLogById(m *AuditFlowLog) (err error) { | ||
49 | + o := orm.NewOrm() | ||
50 | + v := AuditFlowLog{Id: m.Id} | ||
51 | + // ascertain id exists in the database | ||
52 | + if err = o.Read(&v); err == nil { | ||
53 | + var num int64 | ||
54 | + if num, err = o.Update(m); err == nil { | ||
55 | + fmt.Println("Number of records updated in database:", num) | ||
56 | + } | ||
57 | + } | ||
58 | + return | ||
59 | +} | ||
60 | + | ||
61 | +// DeleteAuditFlowLog deletes AuditFlowLog by Id and returns error if | ||
62 | +// the record to be deleted doesn't exist | ||
63 | +func DeleteAuditFlowLog(id int) (err error) { | ||
64 | + o := orm.NewOrm() | ||
65 | + v := AuditFlowLog{Id: id} | ||
66 | + // ascertain id exists in the database | ||
67 | + if err = o.Read(&v); err == nil { | ||
68 | + var num int64 | ||
69 | + if num, err = o.Delete(&AuditFlowLog{Id: id}); err == nil { | ||
70 | + fmt.Println("Number of records deleted in database:", num) | ||
71 | + } | ||
72 | + } | ||
73 | + return | ||
74 | +} |
@@ -131,10 +131,9 @@ func GetAuditFlowProcessList(chanceId int64) (v []*AuditFlowProcess, err error) | @@ -131,10 +131,9 @@ func GetAuditFlowProcessList(chanceId int64) (v []*AuditFlowProcess, err error) | ||
131 | } | 131 | } |
132 | 132 | ||
133 | //删除机会时关闭所有审核信息 | 133 | //删除机会时关闭所有审核信息 |
134 | -func CloseAuditFlowProcess(chanceId int64) (err error) { | ||
135 | - o := orm.NewOrm() | 134 | +func CloseAuditFlowProcess(orm orm.Ormer, chanceId int64) (err error) { |
136 | sql := "update audit_flow_process set enable_status =0,is_active=0,update_at=now() where chance_id=?" | 135 | sql := "update audit_flow_process set enable_status =0,is_active=0,update_at=now() where chance_id=?" |
137 | - if err = utils.ExecuteSQLWithOrmer(o, sql, chanceId); err != nil { | 136 | + if err = utils.ExecuteSQLWithOrmer(orm, sql, chanceId); err != nil { |
138 | return | 137 | return |
139 | } | 138 | } |
140 | return | 139 | return |
@@ -154,7 +153,7 @@ func GetAuditFlowProcessApproved(chanceId int64, level int) (v *[]AuditFlowProce | @@ -154,7 +153,7 @@ func GetAuditFlowProcessApproved(chanceId int64, level int) (v *[]AuditFlowProce | ||
154 | func GetAuditFlowProcessByReview(chanceId int64, level int, reviewStatus int) (v *AuditFlowProcess, err error) { | 153 | func GetAuditFlowProcessByReview(chanceId int64, level int, reviewStatus int) (v *AuditFlowProcess, err error) { |
155 | o := orm.NewOrm() | 154 | o := orm.NewOrm() |
156 | sql := "select * from audit_flow_process where chance_id=? and level=? and is_active=1 and review_status=? and enable_status=1" | 155 | sql := "select * from audit_flow_process where chance_id=? and level=? and is_active=1 and review_status=? and enable_status=1" |
157 | - if err = o.Raw(sql, chanceId, level, reviewStatus).QueryRow(&v); err != nil { | 156 | + if err = utils.ExecuteQueryOneWithOrmer(o, &v, sql, chanceId, level, reviewStatus); err != nil { |
158 | return | 157 | return |
159 | } | 158 | } |
160 | return | 159 | return |
@@ -32,6 +32,7 @@ type Chance struct { | @@ -32,6 +32,7 @@ type Chance struct { | ||
32 | PublishStatus int `orm:"column(publish_status)" description:"公开状态 0未公开、1部门公开、2公司公开"` | 32 | PublishStatus int `orm:"column(publish_status)" description:"公开状态 0未公开、1部门公开、2公司公开"` |
33 | ApproveData string `orm:"column(approve_data)" description:"审核数据 冗余"` | 33 | ApproveData string `orm:"column(approve_data)" description:"审核数据 冗余"` |
34 | AuditLevel int `orm:"column(audit_level)" description:"当前审批步骤"` | 34 | AuditLevel int `orm:"column(audit_level)" description:"当前审批步骤"` |
35 | + ApproveTime time.Time `orm:"column(approve_time);type(timestamp)" description:"审批时间"` | ||
35 | } | 36 | } |
36 | 37 | ||
37 | func (t *Chance) TableName() string { | 38 | func (t *Chance) TableName() string { |
@@ -103,7 +104,7 @@ func DeleteChance(id int64) (err error) { | @@ -103,7 +104,7 @@ func DeleteChance(id int64) (err error) { | ||
103 | func GetChanceMyChance(uid, cid int64, reviewStatus []int8, lastId int64, pageSize int, v interface{}) (total int, err error) { | 104 | func GetChanceMyChance(uid, cid int64, reviewStatus []int8, lastId int64, pageSize int, v interface{}) (total int, err error) { |
104 | sql := `select a.*,b.images,speechs,videos | 105 | sql := `select a.*,b.images,speechs,videos |
105 | from ( | 106 | from ( |
106 | -select id,user_id,create_at,source_content,approve_data,review_status from chance | 107 | +select id,user_id,create_at,update_at,approve_time chance_approve_time,source_content,approve_data,review_status from chance |
107 | where user_id=? and company_id=? and review_status in (?) and (?=0 or id<?) | 108 | where user_id=? and company_id=? and review_status in (?) and (?=0 or id<?) |
108 | order by create_at desc | 109 | order by create_at desc |
109 | limit ? | 110 | limit ? |
@@ -126,7 +127,7 @@ where user_id=? and company_id=? and review_status in (%v) | @@ -126,7 +127,7 @@ where user_id=? and company_id=? and review_status in (%v) | ||
126 | 127 | ||
127 | func GetChanceMyApproveChance(uid, cid int64, reviewStatus []int8, lastId int64, pageSize int, v interface{}) (total int, err error) { | 128 | func GetChanceMyApproveChance(uid, cid int64, reviewStatus []int8, lastId int64, pageSize int, v interface{}) (total int, err error) { |
128 | sql := fmt.Sprintf(`select a.*,b.images,b.speechs,b.videos from ( | 129 | sql := fmt.Sprintf(`select a.*,b.images,b.speechs,b.videos from ( |
129 | -select a.*,b.user_id,b.source_content,b.enable_status,b.review_status from ( | 130 | +select a.*,b.user_id,b.source_content,b.enable_status,b.review_status,b.create_at,b.update_at,b.approve_time chance_approve_time from ( |
130 | select id,approve_time,approve_data,uid,chance_id,approve_message,create_at process_create_time | 131 | select id,approve_time,approve_data,uid,chance_id,approve_message,create_at process_create_time |
131 | from audit_flow_process where uid=? and enable_status =1 and review_status in (%v) and (?=0 or id<?) | 132 | from audit_flow_process where uid=? and enable_status =1 and review_status in (%v) and (?=0 or id<?) |
132 | )a left outer join chance b on a.chance_id = b.id | 133 | )a left outer join chance b on a.chance_id = b.id |
@@ -184,6 +184,8 @@ type ChanceItemOrm struct { | @@ -184,6 +184,8 @@ type ChanceItemOrm struct { | ||
184 | Id int64 `orm:"column(id)"` | 184 | Id int64 `orm:"column(id)"` |
185 | Uid int64 `orm:"column(user_id)"` | 185 | Uid int64 `orm:"column(user_id)"` |
186 | CreateTime time.Time `orm:"column(create_at)"` | 186 | CreateTime time.Time `orm:"column(create_at)"` |
187 | + UpdateTime time.Time `orm:"column(update_at)"` | ||
188 | + ApproveTime time.Time `orm:"column(approve_time)"` | ||
187 | SourceContent string `orm:"column(source_content)"` | 189 | SourceContent string `orm:"column(source_content)"` |
188 | Images string `orm:"column(images)"` | 190 | Images string `orm:"column(images)"` |
189 | Voices string `orm:"column(speechs)"` | 191 | Voices string `orm:"column(speechs)"` |
@@ -43,7 +43,7 @@ var errmessge ErrorMap = map[int]string{ | @@ -43,7 +43,7 @@ var errmessge ErrorMap = map[int]string{ | ||
43 | 5204: "评分或者公开状态不能为空", | 43 | 5204: "评分或者公开状态不能为空", |
44 | 5205: "机会未审核通过,不能修改评分或者公开状态", | 44 | 5205: "机会未审核通过,不能修改评分或者公开状态", |
45 | 5206: "未找到审批节点或者无权限", | 45 | 5206: "未找到审批节点或者无权限", |
46 | - //5207:"部门不存在", | 46 | + 5207: "公司管理员未设置", |
47 | 47 | ||
48 | //模板相关 | 48 | //模板相关 |
49 | 5301: "机会模板不存在", | 49 | 5301: "机会模板不存在", |
@@ -152,6 +152,26 @@ func logMsg(msg *models.UserMsg, name string) { | @@ -152,6 +152,26 @@ func logMsg(msg *models.UserMsg, name string) { | ||
152 | msg.MsgType, msg.ReceiveUserId, name, msg.Message, msg.SourceId, msg.SourceType)) | 152 | msg.MsgType, msg.ReceiveUserId, name, msg.Message, msg.SourceId, msg.SourceType)) |
153 | } | 153 | } |
154 | 154 | ||
155 | -func SaveApproveLog(orm orm.Ormer, code int, userId int64, param ...interface{}) (err error) { | 155 | +//保查审核日志 |
156 | +func SaveApproveLog(orm orm.Ormer, code int, userId int64, chanceId int64, param ...interface{}) (err error) { | ||
157 | + var ( | ||
158 | + message string | ||
159 | + ok bool | ||
160 | + ) | ||
161 | + if message, ok = protocol.ApproveLog[code]; !ok { | ||
162 | + err = fmt.Errorf("approve log not exists code:%v", code) | ||
163 | + return | ||
164 | + } | ||
165 | + message = fmt.Sprintf(message, param...) | ||
166 | + if _, err = orm.Insert(&models.AuditFlowLog{ | ||
167 | + ChanceId: chanceId, | ||
168 | + Content: message, | ||
169 | + ApproveUserId: userId, | ||
170 | + CreateAt: time.Now(), | ||
171 | + Code: code, | ||
172 | + }); err != nil { | ||
173 | + log.Error(err) | ||
174 | + } | ||
175 | + log.Debug(fmt.Sprintf("保存审核日志: code:%v userId:%v chanceId:%v message:%v", code, userId, chanceId, message)) | ||
156 | return | 176 | return |
157 | } | 177 | } |
@@ -15,6 +15,7 @@ import ( | @@ -15,6 +15,7 @@ import ( | ||
15 | "opp/models" | 15 | "opp/models" |
16 | "opp/protocol" | 16 | "opp/protocol" |
17 | "opp/services/agg" | 17 | "opp/services/agg" |
18 | + "strings" | ||
18 | "time" | 19 | "time" |
19 | ) | 20 | ) |
20 | 21 | ||
@@ -320,6 +321,8 @@ func ChanceApprove(header *protocol.RequestHeader, request *protocol.ChanceAppro | @@ -320,6 +321,8 @@ func ChanceApprove(header *protocol.RequestHeader, request *protocol.ChanceAppro | ||
320 | { | 321 | { |
321 | mapProcess["ReviewStatus"] = int8(request.ReviewStatus) | 322 | mapProcess["ReviewStatus"] = int8(request.ReviewStatus) |
322 | mapProcess["ApproveTime"] = time.Now() | 323 | mapProcess["ApproveTime"] = time.Now() |
324 | + mapProcess["IsActive"] = int8(0) | ||
325 | + mapChance["ApproveTime"] = time.Now() | ||
323 | if request.ReviewStatus == protocol.ReviewStatusPass { | 326 | if request.ReviewStatus == protocol.ReviewStatusPass { |
324 | mapProcess["BasicScore"] = request.ApproveData.Score.BasicScore | 327 | mapProcess["BasicScore"] = request.ApproveData.Score.BasicScore |
325 | mapProcess["ExtraScore"] = request.ApproveData.Score.ExtraScore | 328 | mapProcess["ExtraScore"] = request.ApproveData.Score.ExtraScore |
@@ -408,6 +411,11 @@ func ChanceApprove(header *protocol.RequestHeader, request *protocol.ChanceAppro | @@ -408,6 +411,11 @@ func ChanceApprove(header *protocol.RequestHeader, request *protocol.ChanceAppro | ||
408 | } | 411 | } |
409 | } | 412 | } |
410 | } | 413 | } |
414 | + if err = saveApproveMsgByApproveData(orm, request.ReviewStatus, chance, request.ApproveData); err != nil { | ||
415 | + orm.Rollback() | ||
416 | + log.Error("发送审核日志失败", err) | ||
417 | + return | ||
418 | + } | ||
411 | if err = utils.UpdateTableByMapWithOrmer(orm, process, mapProcess); err != nil { | 419 | if err = utils.UpdateTableByMapWithOrmer(orm, process, mapProcess); err != nil { |
412 | log.Error("更新机会审核流程 状态失败 process_id:", process.Id, err) | 420 | log.Error("更新机会审核流程 状态失败 process_id:", process.Id, err) |
413 | orm.Rollback() | 421 | orm.Rollback() |
@@ -465,6 +473,40 @@ func ProcessIntegrate(header *protocol.RequestHeader, request *ProcessIntegrateR | @@ -465,6 +473,40 @@ func ProcessIntegrate(header *protocol.RequestHeader, request *ProcessIntegrateR | ||
465 | return | 473 | return |
466 | } | 474 | } |
467 | 475 | ||
476 | +//发送审核日志 | ||
477 | +func saveApproveMsgByApproveData(orm orm.Ormer, reviewStatus int, chance *models.Chance, approveData protocol.ApproveData) (err error) { | ||
478 | + var ( | ||
479 | + parames = make([]interface{}, 0) | ||
480 | + code = 0 | ||
481 | + ) | ||
482 | + if reviewStatus == protocol.ReviewStatusReturn { | ||
483 | + //发送退回日志 | ||
484 | + code = 3 | ||
485 | + } | ||
486 | + if reviewStatus == protocol.ReviewStatusPass { | ||
487 | + //发送通过日志 | ||
488 | + score := approveData.Score | ||
489 | + parames = append(parames, []interface{}{score.BasicScore, score.ExtraScore, score.ValueScore}...) | ||
490 | + if approveData.PublicData.PublishStatus == protocol.PublicToCompany { | ||
491 | + code = 4 | ||
492 | + } | ||
493 | + if approveData.PublicData.PublishStatus == protocol.PublicToDepartment { | ||
494 | + code = 5 | ||
495 | + var department []string | ||
496 | + for i := range approveData.PublicData.VisibleObjects { | ||
497 | + v := approveData.PublicData.VisibleObjects[i] | ||
498 | + department = append(department, v.Name) | ||
499 | + } | ||
500 | + parames = append(parames, strings.Join(department, ",")) | ||
501 | + } | ||
502 | + } | ||
503 | + if err = agg.SaveApproveLog(orm, code, chance.UserId, chance.Id, parames...); err != nil { | ||
504 | + log.Error(err) | ||
505 | + return | ||
506 | + } | ||
507 | + return | ||
508 | +} | ||
509 | + | ||
468 | //系统审核状态转为审核类型 reviewStatus - > approveType | 510 | //系统审核状态转为审核类型 reviewStatus - > approveType |
469 | func ConverReviewStatus(reviewStatus int) (approveType int) { | 511 | func ConverReviewStatus(reviewStatus int) (approveType int) { |
470 | if reviewStatus == protocol.ReviewStatusPass { | 512 | if reviewStatus == protocol.ReviewStatusPass { |
@@ -12,6 +12,7 @@ import ( | @@ -12,6 +12,7 @@ import ( | ||
12 | "opp/models" | 12 | "opp/models" |
13 | "opp/protocol" | 13 | "opp/protocol" |
14 | "opp/services/agg" | 14 | "opp/services/agg" |
15 | + "strings" | ||
15 | "time" | 16 | "time" |
16 | ) | 17 | ) |
17 | 18 | ||
@@ -403,6 +404,12 @@ func ChanceSubmit(header *protocol.RequestHeader, request *protocol.ChanceSubmit | @@ -403,6 +404,12 @@ func ChanceSubmit(header *protocol.RequestHeader, request *protocol.ChanceSubmit | ||
403 | return | 404 | return |
404 | } | 405 | } |
405 | } | 406 | } |
407 | + //发送提交日志 | ||
408 | + if err = agg.SaveApproveLog(orm, 1, header.UserId, chance.Id); err != nil { | ||
409 | + log.Error(err) | ||
410 | + orm.Rollback() | ||
411 | + return | ||
412 | + } | ||
406 | orm.Commit() | 413 | orm.Commit() |
407 | 414 | ||
408 | rsp = &protocol.ChanceSubmitResponse{} | 415 | rsp = &protocol.ChanceSubmitResponse{} |
@@ -449,10 +456,13 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate | @@ -449,10 +456,13 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate | ||
449 | if _, e := models.GetAuditFlowProcessByReview(request.Id, 0, protocol.ReviewStatusWait); e == nil { | 456 | if _, e := models.GetAuditFlowProcessByReview(request.Id, 0, protocol.ReviewStatusWait); e == nil { |
450 | request.IsPublish = true | 457 | request.IsPublish = true |
451 | updateMap["DepartmentId"] = request.RelatedDepartment | 458 | updateMap["DepartmentId"] = request.RelatedDepartment |
459 | + //log.Info(fmt.Sprintf("机会编辑 is_publish:%v chance.review_status:%v 是否是本人:%v",request.IsPublish,chance.ReviewStatus,chance.UserId==header.UserId)) | ||
460 | + } else { | ||
461 | + log.Info(fmt.Sprintf("机会编辑 chance_id:%v chance.review_status:%v 无待处理 审核数据", request.Id, chance.ReviewStatus)) | ||
452 | } | 462 | } |
453 | - | ||
454 | } else { | 463 | } else { |
455 | request.IsPublish = false | 464 | request.IsPublish = false |
465 | + log.Info(fmt.Sprintf("机会编辑 is_publish:%v chance.review_status:%v 是否是本人:%v", request.IsPublish, chance.ReviewStatus, chance.UserId == header.UserId)) | ||
456 | } | 466 | } |
457 | //TODO:非本人 1.需要验证角色权限 2是否是审核人 3.是否是本人 (目前本人才可以审核) | 467 | //TODO:非本人 1.需要验证角色权限 2是否是审核人 3.是否是本人 (目前本人才可以审核) |
458 | if chance.UserId != header.UserId { | 468 | if chance.UserId != header.UserId { |
@@ -561,6 +571,12 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate | @@ -561,6 +571,12 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate | ||
561 | } | 571 | } |
562 | } | 572 | } |
563 | } | 573 | } |
574 | + //发送提交日志 | ||
575 | + if err = agg.SaveApproveLog(orm, 1, chance.UserId, chance.Id); err != nil { | ||
576 | + log.Error(err) | ||
577 | + orm.Rollback() | ||
578 | + return | ||
579 | + } | ||
564 | } | 580 | } |
565 | } | 581 | } |
566 | orm.Commit() | 582 | orm.Commit() |
@@ -621,12 +637,43 @@ func ChanceChangePublish(header *protocol.RequestHeader, request *protocol.Chanc | @@ -621,12 +637,43 @@ func ChanceChangePublish(header *protocol.RequestHeader, request *protocol.Chanc | ||
621 | } | 637 | } |
622 | } | 638 | } |
623 | } | 639 | } |
640 | + | ||
641 | + if err = saveApproveMsgChangePublic(orm, chance, request.PublicData); err != nil { | ||
642 | + log.Error(err) | ||
643 | + orm.Rollback() | ||
644 | + return | ||
645 | + } | ||
624 | orm.Commit() | 646 | orm.Commit() |
625 | //TODO:添加log | 647 | //TODO:添加log |
626 | rsp = &protocol.ChanceChangePublishResponse{} | 648 | rsp = &protocol.ChanceChangePublishResponse{} |
627 | return | 649 | return |
628 | } | 650 | } |
629 | 651 | ||
652 | +//发送审核日志 | ||
653 | +func saveApproveMsgChangePublic(orm orm.Ormer, chance *models.Chance, approveData protocol.PublicData) (err error) { | ||
654 | + var ( | ||
655 | + parames = make([]interface{}, 0) | ||
656 | + code = 0 | ||
657 | + ) | ||
658 | + if approveData.PublishStatus == protocol.PublicToCompany { | ||
659 | + code = 7 | ||
660 | + } | ||
661 | + if approveData.PublishStatus == protocol.PublicToDepartment { | ||
662 | + code = 8 | ||
663 | + var department []string | ||
664 | + for i := range approveData.VisibleObjects { | ||
665 | + v := approveData.VisibleObjects[i] | ||
666 | + department = append(department, v.Name) | ||
667 | + } | ||
668 | + parames = append(parames, strings.Join(department, ",")) | ||
669 | + } | ||
670 | + if err = agg.SaveApproveLog(orm, code, chance.UserId, chance.Id, parames...); err != nil { | ||
671 | + log.Error(err) | ||
672 | + return | ||
673 | + } | ||
674 | + return | ||
675 | +} | ||
676 | + | ||
630 | //修改评分 | 677 | //修改评分 |
631 | func ChanceChangeScore(header *protocol.RequestHeader, request *protocol.ChanceChangeScoreRequest) (rsp *protocol.ChanceChangeScoreResponse, err error) { | 678 | func ChanceChangeScore(header *protocol.RequestHeader, request *protocol.ChanceChangeScoreRequest) (rsp *protocol.ChanceChangeScoreResponse, err error) { |
632 | var ( | 679 | var ( |
@@ -668,6 +715,17 @@ func ChanceChangeScore(header *protocol.RequestHeader, request *protocol.ChanceC | @@ -668,6 +715,17 @@ func ChanceChangeScore(header *protocol.RequestHeader, request *protocol.ChanceC | ||
668 | orm.Rollback() | 715 | orm.Rollback() |
669 | return | 716 | return |
670 | } | 717 | } |
718 | + //修改评分日志 | ||
719 | + if err = agg.SaveApproveLog(orm, 9, chance.UserId, chance.Id, request.Score.BasicScore, request.Score.ExtraScore, request.Score.ValueScore); err != nil { | ||
720 | + log.Error(err) | ||
721 | + return | ||
722 | + } | ||
723 | + | ||
724 | + //if err = agg.SaveApproveLog(orm,9,chance.UserId,chance.Id,request.Score.BasicScore,request.Score.ExtraScore,request.Score.ValueScore);err!=nil{ | ||
725 | + // log.Error(err) | ||
726 | + // return | ||
727 | + //} | ||
728 | + | ||
671 | orm.Commit() | 729 | orm.Commit() |
672 | rsp = &protocol.ChanceChangeScoreResponse{ | 730 | rsp = &protocol.ChanceChangeScoreResponse{ |
673 | DiscoveryScore: result.DiscoveryScore, | 731 | DiscoveryScore: result.DiscoveryScore, |
@@ -844,11 +902,13 @@ func GenAuditFlowProcess(header *protocol.RequestHeader, chanceId int64, related | @@ -844,11 +902,13 @@ func GenAuditFlowProcess(header *protocol.RequestHeader, chanceId int64, related | ||
844 | 902 | ||
845 | if company.AdminId == 0 { | 903 | if company.AdminId == 0 { |
846 | err = fmt.Errorf("GenAuditFlowProcess:company.admin is not set") | 904 | err = fmt.Errorf("GenAuditFlowProcess:company.admin is not set") |
905 | + err = protocol.NewErrWithMessage(5207) | ||
847 | return | 906 | return |
848 | } | 907 | } |
849 | 908 | ||
850 | if admin, err = models.GetUserCompanyByUserId(company.AdminId, header.CompanyId); err != nil { | 909 | if admin, err = models.GetUserCompanyByUserId(company.AdminId, header.CompanyId); err != nil { |
851 | err = fmt.Errorf("GenAuditFlowProcess:company.admin is not set") | 910 | err = fmt.Errorf("GenAuditFlowProcess:company.admin is not set") |
911 | + err = protocol.NewErrWithMessage(5207) | ||
852 | return | 912 | return |
853 | } | 913 | } |
854 | 914 | ||
@@ -943,6 +1003,7 @@ func resolveActionType(t uint) string { | @@ -943,6 +1003,7 @@ func resolveActionType(t uint) string { | ||
943 | func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) (ids []int64, err error) { | 1003 | func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) (ids []int64, err error) { |
944 | var ( | 1004 | var ( |
945 | departments *models.Department | 1005 | departments *models.Department |
1006 | + lastDepartmentId int | ||
946 | ) | 1007 | ) |
947 | //if err = models.GetUserDepartments(header.UserId, header.CompanyId, &departments); err != nil { | 1008 | //if err = models.GetUserDepartments(header.UserId, header.CompanyId, &departments); err != nil { |
948 | // log.Error(header.UserId,header.CompanyId,err) | 1009 | // log.Error(header.UserId,header.CompanyId,err) |
@@ -952,6 +1013,7 @@ func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) | @@ -952,6 +1013,7 @@ func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) | ||
952 | log.Error(relatedDeparmentId, err) | 1013 | log.Error(relatedDeparmentId, err) |
953 | return | 1014 | return |
954 | } | 1015 | } |
1016 | + //部门长 | ||
955 | for { | 1017 | for { |
956 | if len(departments.Managers) > 0 { | 1018 | if len(departments.Managers) > 0 { |
957 | var tmpIds []int64 | 1019 | var tmpIds []int64 |
@@ -966,7 +1028,9 @@ func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) | @@ -966,7 +1028,9 @@ func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) | ||
966 | //break | 1028 | //break |
967 | } | 1029 | } |
968 | if departments.ParentId != 0 { | 1030 | if departments.ParentId != 0 { |
969 | - if departments, err = models.GetDepartmentById(int(relatedDeparmentId)); err != nil { | 1031 | + //relatedDeparmentId = int64departments.ParentId |
1032 | + lastDepartmentId = departments.ParentId | ||
1033 | + if departments, err = models.GetDepartmentById(int(departments.ParentId)); err != nil { | ||
970 | log.Error(relatedDeparmentId, err) | 1034 | log.Error(relatedDeparmentId, err) |
971 | err = nil | 1035 | err = nil |
972 | break | 1036 | break |
@@ -979,7 +1043,7 @@ func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) | @@ -979,7 +1043,7 @@ func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) | ||
979 | if len(ids) == 0 { | 1043 | if len(ids) == 0 { |
980 | ids = append(ids, 0) | 1044 | ids = append(ids, 0) |
981 | } | 1045 | } |
982 | - log.Info(fmt.Sprintf("生成机会审批流-部门:department_id:%v managers:%v ids:%v", relatedDeparmentId, departments.Managers, ids)) | 1046 | + log.Info(fmt.Sprintf("生成机会审批流-部门:department_id:%v managers:%v ids:%v last_department_id:%v", relatedDeparmentId, departments.Managers, ids, lastDepartmentId)) |
983 | return | 1047 | return |
984 | } | 1048 | } |
985 | 1049 | ||
@@ -1083,6 +1147,8 @@ func MySubmitChance(header *protocol.RequestHeader, request *protocol.MySubmitCh | @@ -1083,6 +1147,8 @@ func MySubmitChance(header *protocol.RequestHeader, request *protocol.MySubmitCh | ||
1083 | Id: chance.Id, | 1147 | Id: chance.Id, |
1084 | Provider: provider, | 1148 | Provider: provider, |
1085 | CreateTime: chance.CreateTime.Unix() * 1000, | 1149 | CreateTime: chance.CreateTime.Unix() * 1000, |
1150 | + UpdateTime: chance.UpdateTime.Unix() * 1000, | ||
1151 | + ApproveTime: chance.ApproveTime.Unix() * 1000, | ||
1086 | } | 1152 | } |
1087 | jsonUnmarshal(chance.SourceContent, &item.FormList) | 1153 | jsonUnmarshal(chance.SourceContent, &item.FormList) |
1088 | item.FormList = clearEmptyForm(item.FormList) | 1154 | item.FormList = clearEmptyForm(item.FormList) |
@@ -1638,15 +1704,26 @@ func ChanceDelete(header *protocol.RequestHeader, request *protocol.ChanceDelete | @@ -1638,15 +1704,26 @@ func ChanceDelete(header *protocol.RequestHeader, request *protocol.ChanceDelete | ||
1638 | err = protocol.NewErrWithMessage(5202) | 1704 | err = protocol.NewErrWithMessage(5202) |
1639 | return | 1705 | return |
1640 | } | 1706 | } |
1641 | - if err = utils.UpdateTableByMap(chance, map[string]interface{}{ | 1707 | + orm := orm.NewOrm() |
1708 | + orm.Begin() | ||
1709 | + //发送提交日志 | ||
1710 | + if err = agg.SaveApproveLog(orm, 2, chance.UserId, chance.Id); err != nil { | ||
1711 | + log.Error(err) | ||
1712 | + orm.Rollback() | ||
1713 | + return | ||
1714 | + } | ||
1715 | + if err = utils.UpdateTableByMapWithOrmer(orm, chance, map[string]interface{}{ | ||
1642 | "EnableStatus": int8(0), | 1716 | "EnableStatus": int8(0), |
1643 | }); err != nil { | 1717 | }); err != nil { |
1644 | log.Error(err) | 1718 | log.Error(err) |
1719 | + orm.Rollback() | ||
1645 | return | 1720 | return |
1646 | } | 1721 | } |
1647 | - if err = models.CloseAuditFlowProcess(chance.Id); err != nil { | 1722 | + if err = models.CloseAuditFlowProcess(orm, chance.Id); err != nil { |
1648 | log.Error(err) | 1723 | log.Error(err) |
1724 | + orm.Rollback() | ||
1649 | return | 1725 | return |
1650 | } | 1726 | } |
1727 | + orm.Commit() | ||
1651 | return | 1728 | return |
1652 | } | 1729 | } |
-
请 注册 或 登录 后发表评论