|
@@ -4,6 +4,7 @@ import (
|
|
"context"
|
|
"context"
|
|
"fmt"
|
|
"fmt"
|
|
"reflect"
|
|
"reflect"
|
|
|
|
+ "strings"
|
|
"youngee_b_api/consts"
|
|
"youngee_b_api/consts"
|
|
"youngee_b_api/model/common_model"
|
|
"youngee_b_api/model/common_model"
|
|
"youngee_b_api/model/gorm_model"
|
|
"youngee_b_api/model/gorm_model"
|
|
@@ -125,6 +126,7 @@ func GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum
|
|
// 根据Project条件过滤
|
|
// 根据Project条件过滤
|
|
conditionType := reflect.TypeOf(conditions).Elem()
|
|
conditionType := reflect.TypeOf(conditions).Elem()
|
|
conditionValue := reflect.ValueOf(conditions).Elem()
|
|
conditionValue := reflect.ValueOf(conditions).Elem()
|
|
|
|
+ var platform_nickname string = ""
|
|
for i := 0; i < conditionType.NumField(); i++ {
|
|
for i := 0; i < conditionType.NumField(); i++ {
|
|
field := conditionType.Field(i)
|
|
field := conditionType.Field(i)
|
|
tag := field.Tag.Get("condition")
|
|
tag := field.Tag.Get("condition")
|
|
@@ -132,6 +134,7 @@ func GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum
|
|
if !util.IsBlank(value) && tag != "platform_nickname" {
|
|
if !util.IsBlank(value) && tag != "platform_nickname" {
|
|
db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
|
|
db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
|
|
} else if tag == "platform_nickname" {
|
|
} else if tag == "platform_nickname" {
|
|
|
|
+ platform_nickname = fmt.Sprintf("%v", value.Interface())
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -145,43 +148,8 @@ func GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum
|
|
}
|
|
}
|
|
db.Order("task_id").Find(&taskInfos)
|
|
db.Order("task_id").Find(&taskInfos)
|
|
|
|
|
|
- // 查询账号id
|
|
|
|
- var accountIds []int
|
|
|
|
- taskMap := make(map[int]gorm_model.YoungeeTaskInfo)
|
|
|
|
- for _, taskInfo := range taskInfos {
|
|
|
|
- accountIds = append(accountIds, taskInfo.AccountID)
|
|
|
|
- taskMap[taskInfo.AccountID] = taskInfo
|
|
|
|
- }
|
|
|
|
- db1 := GetReadDB(ctx)
|
|
|
|
- db1 = db1.Debug().Model(gorm_model.YoungeePlatformAccountInfo{})
|
|
|
|
- // 根据Project条件过滤
|
|
|
|
- conditionType2 := reflect.TypeOf(conditions).Elem()
|
|
|
|
- conditionValue2 := reflect.ValueOf(conditions).Elem()
|
|
|
|
- for i := 0; i < conditionType2.NumField(); i++ {
|
|
|
|
- field := conditionType2.Field(i)
|
|
|
|
- tag := field.Tag.Get("condition")
|
|
|
|
- value := conditionValue2.FieldByName(field.Name)
|
|
|
|
- if !util.IsBlank(value) && tag == "platform_nickname" { // input:1 taskIdsbase:1,2,3 string
|
|
|
|
- db1 = db1.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- var accountInfos []gorm_model.YoungeePlatformAccountInfo
|
|
|
|
- db1 = db1.Model(gorm_model.YoungeePlatformAccountInfo{}).Where("account_id IN ?", accountIds).Find(&accountInfos)
|
|
|
|
- // 查询总数
|
|
|
|
- var totalAccount int64
|
|
|
|
- if err := db1.Count(&totalAccount).Error; err != nil {
|
|
|
|
- logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
|
|
|
|
- return nil, 0, err
|
|
|
|
- }
|
|
|
|
- var misNum int64
|
|
|
|
- if totalAccount > totalTask {
|
|
|
|
- misNum = totalAccount - totalTask
|
|
|
|
- } else {
|
|
|
|
- misNum = totalTask - totalAccount
|
|
|
|
- }
|
|
|
|
- logrus.Println("totalAccount,totalTask,misNum:", totalAccount, totalTask, misNum)
|
|
|
|
// 查询该页数据
|
|
// 查询该页数据
|
|
- limit := pageSize + misNum
|
|
|
|
|
|
+ limit := pageSize
|
|
offset := pageSize * pageNum // assert pageNum start with 0
|
|
offset := pageSize * pageNum // assert pageNum start with 0
|
|
err := db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
|
|
err := db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -189,38 +157,23 @@ func GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum
|
|
return nil, 0, err
|
|
return nil, 0, err
|
|
}
|
|
}
|
|
|
|
|
|
- accountMap := make(map[int]gorm_model.YoungeePlatformAccountInfo)
|
|
|
|
- for _, accountInfo := range accountInfos {
|
|
|
|
- accountMap[accountInfo.AccountID] = accountInfo
|
|
|
|
- }
|
|
|
|
- var taskAccounts []*http_model.TaskAccount
|
|
|
|
- var projectTasks []*http_model.ProjectTaskInfo
|
|
|
|
- for _, accountId := range accountIds {
|
|
|
|
- taskAccount := new(http_model.TaskAccount)
|
|
|
|
- _, ok := taskMap[accountId]
|
|
|
|
- _, ok2 := accountMap[accountId]
|
|
|
|
- if ok && ok2 {
|
|
|
|
- taskAccount.Task = taskMap[accountId]
|
|
|
|
- taskAccount.Account = accountMap[accountId]
|
|
|
|
- }
|
|
|
|
- taskAccounts = append(taskAccounts, taskAccount)
|
|
|
|
- }
|
|
|
|
|
|
+ var taskDatas []*http_model.ProjectTaskInfo
|
|
|
|
+ var newTaskDatas []*http_model.ProjectTaskInfo
|
|
|
|
|
|
- projectTasks = pack.TaskAccountToTaskInfo(taskAccounts)
|
|
|
|
- var fullProjectTasks []*http_model.ProjectTaskInfo
|
|
|
|
- // 删除只存在于一个表中的元素
|
|
|
|
- for i := 0; i < len(projectTasks); i++ {
|
|
|
|
- if projectTasks[i].TaskID != 0 {
|
|
|
|
- fullProjectTasks = append(fullProjectTasks, projectTasks[i])
|
|
|
|
|
|
+ taskDatas = pack.TaskAccountToTaskInfo(taskInfos)
|
|
|
|
+
|
|
|
|
+ for _, v := range taskDatas {
|
|
|
|
+ if platform_nickname == "" {
|
|
|
|
+ newTaskDatas = append(newTaskDatas, v)
|
|
|
|
+ } else if strings.Contains(v.PlatformNickname, platform_nickname) {
|
|
|
|
+ newTaskDatas = append(newTaskDatas, v)
|
|
|
|
+ } else if strings.Contains(conv.MustString(v.TaskID), platform_nickname) {
|
|
|
|
+ newTaskDatas = append(newTaskDatas, v)
|
|
|
|
+ } else {
|
|
|
|
+ totalTask--
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- var total int64
|
|
|
|
- if totalTask > totalAccount {
|
|
|
|
- total = totalAccount
|
|
|
|
- } else {
|
|
|
|
- total = totalTask
|
|
|
|
- }
|
|
|
|
- return fullProjectTasks, total, nil
|
|
|
|
|
|
+ return newTaskDatas, totalTask, nil
|
|
}
|
|
}
|
|
|
|
|
|
func GetProjectDetail(ctx context.Context, projectID int64) (*gorm_model.ProjectInfo, error) {
|
|
func GetProjectDetail(ctx context.Context, projectID int64) (*gorm_model.ProjectInfo, error) {
|
|
@@ -293,7 +246,7 @@ func GetFeeDetail(ctx context.Context, enterpriseID int64, EndTime string) (*htt
|
|
func SetProjectFinish(ctx context.Context, projectId int64) error {
|
|
func SetProjectFinish(ctx context.Context, projectId int64) error {
|
|
db := GetReadDB(ctx)
|
|
db := GetReadDB(ctx)
|
|
// 1. 更新项目状态为已结束
|
|
// 1. 更新项目状态为已结束
|
|
- err := db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).Updates("project_status = 10").Error
|
|
|
|
|
|
+ err := db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).Updates(map[string]interface{}{"project_status": 10}).Error
|
|
if err != nil {
|
|
if err != nil {
|
|
logrus.WithContext(ctx).Errorf("[Project db] Update ProjectInfo error,err:%+v", err)
|
|
logrus.WithContext(ctx).Errorf("[Project db] Update ProjectInfo error,err:%+v", err)
|
|
return err
|
|
return err
|