作者 yangfu

排行榜修改

@@ -7,11 +7,12 @@ import ( @@ -7,11 +7,12 @@ import (
7 ) 7 )
8 8
9 type ChanceReviseLog struct { 9 type ChanceReviseLog struct {
10 - Id int64 `orm:"column(id);pk" description:"id 主键"`  
11 - ChanceId int64 `orm:"column(chance_id)" description:"机会编号"`  
12 - UserCompanyId int64 `orm:"column(user_company_id);null" description:"用户编号 编辑机会的人"`  
13 - Data string `orm:"column(data);null" description:"机会数据"`  
14 - CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` 10 + Id int64 `orm:"column(id);pk" description:"id 主键"`
  11 + ChanceId int64 `orm:"column(chance_id)" description:"机会编号"`
  12 + UserCompanyId int64 `orm:"column(user_company_id);null" description:"用户编号 编辑机会的人"`
  13 + Data string `orm:"column(data);null" description:"机会数据"`
  14 + CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"`
  15 + AuditFlowLogId int64 `orm:"column(audit_flow_log_id)" description:"审核流日志表"`
15 } 16 }
16 17
17 func (t *ChanceReviseLog) TableName() string { 18 func (t *ChanceReviseLog) TableName() string {
@@ -59,15 +59,16 @@ func init() { @@ -59,15 +59,16 @@ func init() {
59 } 59 }
60 60
61 var ApproveLog = map[int]string{ 61 var ApproveLog = map[int]string{
62 - 1: "提交了机会", //提交人提交机会  
63 - 2: "删除了机会", //提交人删除机会  
64 - 3: "退回了机会", //审批人退回机会  
65 - 4: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过机会(公司公开)  
66 - 5: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:%v", //审批人通过机会(部门公开) 测试部、销售部  
67 - 6: "系统 自动通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过了机会(系统自动通过)  
68 - 7: "修改了公开状态:公司公开", //审批通过后修改公开状态(公司公开)  
69 - 8: "修改了公开状态:%v", //审批通过后修改公开状态(部门公开)  
70 - 9: "修改了基础评分:“修改后的基础评分%v分,修改后的附加评分%v分,修改后的价值评分%v分“", //审批通过后修改评分 62 + 1: "提交了机会", //提交人提交机会
  63 + 2: "删除了机会", //提交人删除机会
  64 + 3: "退回了机会", //审批人退回机会
  65 + 4: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过机会(公司公开)
  66 + 5: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:%v", //审批人通过机会(部门公开) 测试部、销售部
  67 + 6: "系统 自动通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过了机会(系统自动通过)
  68 + 7: "修改了公开状态:公司公开", //审批通过后修改公开状态(公司公开)
  69 + 8: "修改了公开状态:%v", //审批通过后修改公开状态(部门公开)
  70 + 9: "修改了基础评分:“修改后的基础评分%v分,修改后的附加评分%v分,修改后的价值评分%v分“", //审批通过后修改评分
  71 + 10: "补充了机会信息", //审批通过后补充机会
71 } 72 }
72 73
73 //用户项 74 //用户项
@@ -278,6 +278,12 @@ func logMsgWithHeaer(header *protocol.RequestHeader, msg *models.UserMsg, name s @@ -278,6 +278,12 @@ func logMsgWithHeaer(header *protocol.RequestHeader, msg *models.UserMsg, name s
278 278
279 //保查审核日志 279 //保查审核日志
280 func SaveApproveLog(orm orm.Ormer, code int, userId int64, chanceId int64, param ...interface{}) (err error) { 280 func SaveApproveLog(orm orm.Ormer, code int, userId int64, chanceId int64, param ...interface{}) (err error) {
  281 + _, err = SaveApproveLogResult(orm, code, userId, chanceId, param...)
  282 + return
  283 +}
  284 +
  285 +//保查审核日志
  286 +func SaveApproveLogResult(orm orm.Ormer, code int, userId int64, chanceId int64, param ...interface{}) (id int64, err error) {
281 var ( 287 var (
282 message string 288 message string
283 ok bool 289 ok bool
@@ -287,7 +293,7 @@ func SaveApproveLog(orm orm.Ormer, code int, userId int64, chanceId int64, param @@ -287,7 +293,7 @@ func SaveApproveLog(orm orm.Ormer, code int, userId int64, chanceId int64, param
287 return 293 return
288 } 294 }
289 message = fmt.Sprintf(message, param...) 295 message = fmt.Sprintf(message, param...)
290 - if _, err = orm.Insert(&models.AuditFlowLog{ 296 + if id, err = orm.Insert(&models.AuditFlowLog{
291 ChanceId: chanceId, 297 ChanceId: chanceId,
292 Content: message, 298 Content: message,
293 ApproveUserId: userId, 299 ApproveUserId: userId,
@@ -578,7 +578,7 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate @@ -578,7 +578,7 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate
578 } 578 }
579 auditConfig = &protocol.AuditConfig{NoApprover: template.NoApprover} 579 auditConfig = &protocol.AuditConfig{NoApprover: template.NoApprover}
580 580
581 - CheckChanceDifferent(header, chance, request) 581 + go CheckChanceDifferent(header, chance, request)
582 582
583 orm := orm.NewOrm() 583 orm := orm.NewOrm()
584 orm.Begin() 584 orm.Begin()
@@ -727,6 +727,9 @@ func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance, @@ -727,6 +727,9 @@ func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance,
727 if header.UserId == chance.UserId { 727 if header.UserId == chance.UserId {
728 return 728 return
729 } 729 }
  730 + if chance.ReviewStatus != protocol.ReviewStatusPass {
  731 + return
  732 + }
730 var modifyLog = protocol.ChanceReviseLog{} 733 var modifyLog = protocol.ChanceReviseLog{}
731 checkIsSaveLog := func() { 734 checkIsSaveLog := func() {
732 if !isSaveLog { 735 if !isSaveLog {
@@ -799,13 +802,23 @@ func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance, @@ -799,13 +802,23 @@ func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance,
799 if isSaveLog { 802 if isSaveLog {
800 orm := orm.NewOrm() 803 orm := orm.NewOrm()
801 orm.Begin() 804 orm.Begin()
  805 + var logId int64
  806 + //发送日志
  807 + if id, err := agg.SaveApproveLogResult(orm, 10, header.UserId, chance.Id); err != nil {
  808 + log.Error(err)
  809 + orm.Rollback()
  810 + return
  811 + } else {
  812 + logId = id
  813 + }
802 //保存修改详情 814 //保存修改详情
803 chanceReviseLog = &models.ChanceReviseLog{ 815 chanceReviseLog = &models.ChanceReviseLog{
804 - Id: idgen.Next(),  
805 - ChanceId: chance.Id,  
806 - UserCompanyId: header.UserId,  
807 - Data: common.AssertJson(modifyLog),  
808 - CreateAt: time.Now(), 816 + Id: idgen.Next(),
  817 + ChanceId: chance.Id,
  818 + UserCompanyId: header.UserId,
  819 + Data: common.AssertJson(modifyLog),
  820 + CreateAt: time.Now(),
  821 + AuditFlowLogId: logId,
809 } 822 }
810 if _, e := orm.Insert(chanceReviseLog); e != nil { 823 if _, e := orm.Insert(chanceReviseLog); e != nil {
811 log.Error(e) 824 log.Error(e)
@@ -14,6 +14,10 @@ import ( @@ -14,6 +14,10 @@ import (
14 "time" 14 "time"
15 ) 15 )
16 16
  17 +const (
  18 + RankGoroutineNum = 1
  19 +)
  20 +
17 var ComputeRankScoreFlag int32 21 var ComputeRankScoreFlag int32
18 var rankList = initRankList() 22 var rankList = initRankList()
19 23
@@ -44,7 +48,7 @@ type RankOption struct { @@ -44,7 +48,7 @@ type RankOption struct {
44 type RankResult struct{} 48 type RankResult struct{}
45 49
46 //计算排行分 50 //计算排行分
47 -func ComputeRankScore() error { 51 +func ComputeRankScore() (err error) {
48 defer func() { 52 defer func() {
49 if p := recover(); p != nil { 53 if p := recover(); p != nil {
50 log.Error(p) 54 log.Error(p)
@@ -60,7 +64,14 @@ func ComputeRankScore() error { @@ -60,7 +64,14 @@ func ComputeRankScore() error {
60 atomic.CompareAndSwapInt32(&ComputeRankScoreFlag, 1, 0) 64 atomic.CompareAndSwapInt32(&ComputeRankScoreFlag, 1, 0)
61 }() 65 }()
62 //TODO:启用多个协程执行 66 //TODO:启用多个协程执行
63 - return computeRankScore() 67 + if err = computeRankScore(); err != nil {
  68 + log.Error(err)
  69 + }
  70 +
  71 + //更新状态
  72 + //结束过期的到期的榜单
  73 + //开始等待的榜单
  74 + return
64 } 75 }
65 func computeRankScore() (err error) { 76 func computeRankScore() (err error) {
66 var ( 77 var (