|
...
|
...
|
@@ -5,6 +5,7 @@ import ( |
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
|
|
|
|
"opp/models"
|
|
|
|
"opp/protocol"
|
|
|
|
"opp/services/contrab"
|
|
|
|
)
|
|
|
|
|
|
|
|
//排行榜
|
|
...
|
...
|
@@ -32,6 +33,16 @@ func GetRankList(header *protocol.RequestHeader, request *protocol.GetRankListRe |
|
|
|
Lists: make([][]protocol.RankItem, 0),
|
|
|
|
}
|
|
|
|
rsp.SortItems = itemNames
|
|
|
|
if rankRange.Type == protocol.RankRangeTypeAllCompanyDepartment || rankRange.Type == protocol.RankRangeTypeAllSpecifyDepartment {
|
|
|
|
if departments, err = models.GetDepartmentByUser(header.UserId); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if len(departments) == 0 {
|
|
|
|
hasDepartmentInRank = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for i := range itemKeys {
|
|
|
|
key := itemKeys[i]
|
|
|
|
if rankRange.Type == protocol.RankRangeTypeAllCompanyDepartment || rankRange.Type == protocol.RankRangeTypeAllSpecifyDepartment {
|
|
...
|
...
|
@@ -42,35 +53,25 @@ func GetRankList(header *protocol.RequestHeader, request *protocol.GetRankListRe |
|
|
|
if !hasDepartmentInRank {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
if hasDepartmentInRank || departmentId > 0 {
|
|
|
|
if departments, err = models.GetDepartmentByUser(header.UserId); err != nil {
|
|
|
|
if departmentId > 0 {
|
|
|
|
if err = models.GetRanksByDepartmentSelf(header.CompanyId, request.RankTypeId, request.RankRangeId, request.RankPeriodId, key, departmentId, &selfRank); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if len(departments) == 0 {
|
|
|
|
hasDepartmentInRank = false
|
|
|
|
} else {
|
|
|
|
if departmentId == 0 {
|
|
|
|
for i := range departments {
|
|
|
|
d := departments[i]
|
|
|
|
if err = models.GetRanksByDepartmentSelf(header.CompanyId, request.RankTypeId, request.RankRangeId, request.RankPeriodId, key, int64(d.Id), &selfRank); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if selfRank != nil {
|
|
|
|
departmentId = int64(d.Id)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if departmentId == 0 {
|
|
|
|
hasDepartmentInRank = false
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if err = models.GetRanksByDepartmentSelf(header.CompanyId, request.RankTypeId, request.RankRangeId, request.RankPeriodId, key, departmentId, &selfRank); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
} else if hasDepartmentInRank {
|
|
|
|
for i := range departments {
|
|
|
|
d := departments[i]
|
|
|
|
if err = models.GetRanksByDepartmentSelf(header.CompanyId, request.RankTypeId, request.RankRangeId, request.RankPeriodId, key, int64(d.Id), &selfRank); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if selfRank != nil {
|
|
|
|
departmentId = int64(d.Id)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if departmentId == 0 {
|
|
|
|
hasDepartmentInRank = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if rankRange.Type == protocol.RankRangeTypeAllCompanyUser || rankRange.Type == protocol.RankRangeTypeSpecifyUser {
|
|
...
|
...
|
@@ -118,6 +119,9 @@ func GetRankRange(header *protocol.RequestHeader, request *protocol.GetRankRange |
|
|
|
var (
|
|
|
|
lists []*models.RankRange
|
|
|
|
)
|
|
|
|
rsp = &protocol.GetRankRangeResponse{
|
|
|
|
List: make([]protocol.NameItem, 0),
|
|
|
|
}
|
|
|
|
if lists, err = models.GetRankRanges(int(header.CompanyId), request.RankTypeId); err != nil {
|
|
|
|
if err == orm.ErrNoRows {
|
|
|
|
err = nil
|
|
...
|
...
|
@@ -126,7 +130,6 @@ func GetRankRange(header *protocol.RequestHeader, request *protocol.GetRankRange |
|
|
|
log.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
rsp = &protocol.GetRankRangeResponse{}
|
|
|
|
for i := range lists {
|
|
|
|
rsp.List = append(rsp.List, protocol.NameItem{Id: lists[i].Id, Name: lists[i].Name})
|
|
|
|
}
|
|
...
|
...
|
@@ -158,3 +161,16 @@ func GetRankPeriods(header *protocol.RequestHeader, request *protocol.GetRankPer |
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
//手动计算排行榜
|
|
|
|
func ComputeRankScore(header *protocol.RequestHeader, request *protocol.ComputeRankScoreRequest) (rsp *protocol.ComputeRankScoreResponse, err error) {
|
|
|
|
var ()
|
|
|
|
rsp = &protocol.ComputeRankScoreResponse{}
|
|
|
|
if err = contrab.ComputeRankScore(); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
err = protocol.NewCustomMessage(1, err.Error())
|
|
|
|
return
|
|
|
|
}
|
|
|
|
err = protocol.NewSuccessWithMessage("排行榜统计成功")
|
|
|
|
return
|
|
|
|
} |
...
|
...
|
|