作者 yangfu

排行榜修改

... ... @@ -7,11 +7,12 @@ import (
)
type ChanceReviseLog struct {
Id int64 `orm:"column(id);pk" description:"id 主键"`
ChanceId int64 `orm:"column(chance_id)" description:"机会编号"`
UserCompanyId int64 `orm:"column(user_company_id);null" description:"用户编号 编辑机会的人"`
Data string `orm:"column(data);null" description:"机会数据"`
CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"`
Id int64 `orm:"column(id);pk" description:"id 主键"`
ChanceId int64 `orm:"column(chance_id)" description:"机会编号"`
UserCompanyId int64 `orm:"column(user_company_id);null" description:"用户编号 编辑机会的人"`
Data string `orm:"column(data);null" description:"机会数据"`
CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"`
AuditFlowLogId int64 `orm:"column(audit_flow_log_id)" description:"审核流日志表"`
}
func (t *ChanceReviseLog) TableName() string {
... ...
... ... @@ -59,15 +59,16 @@ func init() {
}
var ApproveLog = map[int]string{
1: "提交了机会", //提交人提交机会
2: "删除了机会", //提交人删除机会
3: "退回了机会", //审批人退回机会
4: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过机会(公司公开)
5: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:%v", //审批人通过机会(部门公开) 测试部、销售部
6: "系统 自动通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过了机会(系统自动通过)
7: "修改了公开状态:公司公开", //审批通过后修改公开状态(公司公开)
8: "修改了公开状态:%v", //审批通过后修改公开状态(部门公开)
9: "修改了基础评分:“修改后的基础评分%v分,修改后的附加评分%v分,修改后的价值评分%v分“", //审批通过后修改评分
1: "提交了机会", //提交人提交机会
2: "删除了机会", //提交人删除机会
3: "退回了机会", //审批人退回机会
4: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过机会(公司公开)
5: "通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:%v", //审批人通过机会(部门公开) 测试部、销售部
6: "系统 自动通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过了机会(系统自动通过)
7: "修改了公开状态:公司公开", //审批通过后修改公开状态(公司公开)
8: "修改了公开状态:%v", //审批通过后修改公开状态(部门公开)
9: "修改了基础评分:“修改后的基础评分%v分,修改后的附加评分%v分,修改后的价值评分%v分“", //审批通过后修改评分
10: "补充了机会信息", //审批通过后补充机会
}
//用户项
... ...
... ... @@ -278,6 +278,12 @@ func logMsgWithHeaer(header *protocol.RequestHeader, msg *models.UserMsg, name s
//保查审核日志
func SaveApproveLog(orm orm.Ormer, code int, userId int64, chanceId int64, param ...interface{}) (err error) {
_, err = SaveApproveLogResult(orm, code, userId, chanceId, param...)
return
}
//保查审核日志
func SaveApproveLogResult(orm orm.Ormer, code int, userId int64, chanceId int64, param ...interface{}) (id int64, err error) {
var (
message string
ok bool
... ... @@ -287,7 +293,7 @@ func SaveApproveLog(orm orm.Ormer, code int, userId int64, chanceId int64, param
return
}
message = fmt.Sprintf(message, param...)
if _, err = orm.Insert(&models.AuditFlowLog{
if id, err = orm.Insert(&models.AuditFlowLog{
ChanceId: chanceId,
Content: message,
ApproveUserId: userId,
... ...
... ... @@ -578,7 +578,7 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate
}
auditConfig = &protocol.AuditConfig{NoApprover: template.NoApprover}
CheckChanceDifferent(header, chance, request)
go CheckChanceDifferent(header, chance, request)
orm := orm.NewOrm()
orm.Begin()
... ... @@ -727,6 +727,9 @@ func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance,
if header.UserId == chance.UserId {
return
}
if chance.ReviewStatus != protocol.ReviewStatusPass {
return
}
var modifyLog = protocol.ChanceReviseLog{}
checkIsSaveLog := func() {
if !isSaveLog {
... ... @@ -799,13 +802,23 @@ func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance,
if isSaveLog {
orm := orm.NewOrm()
orm.Begin()
var logId int64
//发送日志
if id, err := agg.SaveApproveLogResult(orm, 10, header.UserId, chance.Id); err != nil {
log.Error(err)
orm.Rollback()
return
} else {
logId = id
}
//保存修改详情
chanceReviseLog = &models.ChanceReviseLog{
Id: idgen.Next(),
ChanceId: chance.Id,
UserCompanyId: header.UserId,
Data: common.AssertJson(modifyLog),
CreateAt: time.Now(),
Id: idgen.Next(),
ChanceId: chance.Id,
UserCompanyId: header.UserId,
Data: common.AssertJson(modifyLog),
CreateAt: time.Now(),
AuditFlowLogId: logId,
}
if _, e := orm.Insert(chanceReviseLog); e != nil {
log.Error(e)
... ...
... ... @@ -14,6 +14,10 @@ import (
"time"
)
const (
RankGoroutineNum = 1
)
var ComputeRankScoreFlag int32
var rankList = initRankList()
... ... @@ -44,7 +48,7 @@ type RankOption struct {
type RankResult struct{}
//计算排行分
func ComputeRankScore() error {
func ComputeRankScore() (err error) {
defer func() {
if p := recover(); p != nil {
log.Error(p)
... ... @@ -60,7 +64,14 @@ func ComputeRankScore() error {
atomic.CompareAndSwapInt32(&ComputeRankScoreFlag, 1, 0)
}()
//TODO:启用多个协程执行
return computeRankScore()
if err = computeRankScore(); err != nil {
log.Error(err)
}
//更新状态
//结束过期的到期的榜单
//开始等待的榜单
return
}
func computeRankScore() (err error) {
var (
... ...