Explorar o código

完善专项数据审核

Ohio-HYF %!s(int64=2) %!d(string=hai) anos
pai
achega
2ef6aa081b
Modificáronse 4 ficheiros con 83 adicións e 26 borrados
  1. 22 3
      db/project.go
  2. 12 0
      db/task.go
  3. 1 0
      model/http_model/data_accept.go
  4. 48 23
      service/data.go

+ 22 - 3
db/project.go

@@ -3,9 +3,6 @@ package db
 import (
 	"context"
 	"fmt"
-	"github.com/caixw/lib.go/conv"
-	"github.com/sirupsen/logrus"
-	"gorm.io/gorm"
 	"log"
 	"reflect"
 	"strconv"
@@ -17,6 +14,10 @@ import (
 	"youngee_m_api/model/http_model"
 	"youngee_m_api/pack"
 	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+	"gorm.io/gorm"
 )
 
 func GetFullProjectList(ctx context.Context, pageSize, pageNum int32, condition *common_model.ProjectCondition, projectType string) ([]*gorm_model.ProjectInfo, int64, error) {
@@ -411,3 +412,21 @@ func SetProjectFinish(ctx context.Context, projectId string) error {
 	}
 	return nil
 }
+
+func SetSpecialProjectFinish(ctx context.Context, projectId string) error {
+	db := GetReadDB(ctx)
+	var finishedNum int64
+	var unfinishedNum int64
+	db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_status = 2 AND task_stage < 15", projectId).Count(&unfinishedNum)
+	db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage >= 15", projectId).Count(&finishedNum)
+	if unfinishedNum == 0 && finishedNum != 0 {
+		// 1. 更新项目状态为已结束
+		t := time.Now()
+		err := db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).Updates(gorm_model.ProjectInfo{ProjectStatus: 10, FinishAt: &t}).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Project db] Update ProjectInfo error,err:%+v", err)
+			return err
+		}
+	}
+	return nil
+}

+ 12 - 0
db/task.go

@@ -253,6 +253,18 @@ func SetTaskFinish(ctx context.Context, TaskIDs []string) error {
 	return nil
 }
 
+// SetTaskFinish 专项任务结案
+func SetSpecialTaskFinish(ctx context.Context, TaskIDs []string) error {
+	db := GetReadDB(ctx)
+	// 1. 修改任务表,更新任务阶段为已结案,结案方式为正常结束,数据状态为已通过,
+	err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{DataStatus: 5, TaskStage: 15, CompleteStatus: 2, WithdrawStatus: 2, CompleteDate: time.Now()}).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Task db] Update YoungeeTaskInfo error,err:%+v", err)
+		return err
+	}
+	return nil
+}
+
 func SetTalentIncome(ctx context.Context, TaskIDs []string) error {
 	db := GetReadDB(ctx)
 	var TaskInfoList []gorm_model.YoungeeTaskInfo

+ 1 - 0
model/http_model/data_accept.go

@@ -4,6 +4,7 @@ type AcceptDataRequest struct {
 	Payment   float64 `json:"payment"`      //招募策略id
 	TaskIds   string  `json:"task_id_list"` //任务id列表
 	ProjectId string  `json:"project_id"`   //项目id
+	IsSpecial int     `json:"is_special"`
 }
 
 type AcceptDataData struct {

+ 48 - 23
service/data.go

@@ -74,38 +74,63 @@ func (*data) AcceptData(ctx context.Context, request http_model.AcceptDataReques
 		}
 	}
 
-	// 2. 更新YoungeeTaskInfo表,将任务结案
-	//fmt.Printf("acc request %+v", TaskIDList)
-	err = db.SetTaskFinish(ctx, TaskIDList)
-	if err != nil {
-		logrus.WithContext(ctx).Errorf("[Data service] call SetTaskFinish error,err:%+v", err)
-		return nil, err
-	}
 	res := &http_model.AcceptDataData{
 		TaskIds: TaskIDList,
 		IsEnd:   0,
 	}
+	if request.IsSpecial == 1 {
+		// 2. 更新YoungeeTaskInfo表,将任务结案
+		err = db.SetSpecialTaskFinish(ctx, TaskIDList)
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Data service] call SetTaskFinish error,err:%+v", err)
+			return nil, err
+		}
+		// 3. 判断是否全部任务已结案,若已全部结案则触发项目结案
+		// 查询task_stage<15的任务数量
+		unFinishedTaskNumber, err1 := db.GetUnfinishedTaskNumber(ctx, request.ProjectId)
+		if err1 != nil {
+			logrus.WithContext(ctx).Errorf("[Data service] call GetUnfinishedTaskNumber error,err:%+v", err)
+			return nil, err
+		}
+		if *unFinishedTaskNumber == 0 { // 若为0则触发项目结案
+			err := db.SetSpecialProjectFinish(ctx, request.ProjectId)
+			if err1 != nil {
+				logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
+				return nil, err
+			}
+			res.IsEnd = 1
+		}
+	} else {
+		// 2. 更新YoungeeTaskInfo表,将任务结案
+		//fmt.Printf("acc request %+v", TaskIDList)
+		err = db.SetTaskFinish(ctx, TaskIDList)
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Data service] call SetTaskFinish error,err:%+v", err)
+			return nil, err
+		}
 
-	err = db.SetTalentIncome(ctx, TaskIDList)
-	if err != nil {
-		logrus.WithContext(ctx).Errorf("[Data service] call SetTalentIncome error,err:%+v", err)
-		return nil, err
-	}
+		err = db.SetTalentIncome(ctx, TaskIDList)
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Data service] call SetTalentIncome error,err:%+v", err)
+			return nil, err
+		}
 
-	// 3. 判断是否全部任务已结案,若已全部结案则触发项目结案
-	// 查询task_stage<15的任务数量
-	unFinishedTaskNumber, err1 := db.GetUnfinishedTaskNumber(ctx, request.ProjectId)
-	if err1 != nil {
-		logrus.WithContext(ctx).Errorf("[Data service] call GetUnfinishedTaskNumber error,err:%+v", err)
-		return nil, err
-	}
-	if *unFinishedTaskNumber == 0 { // 若为0则触发项目结案
-		err := db.SetProjectFinish(ctx, request.ProjectId)
+		// 3. 判断是否全部任务已结案,若已全部结案则触发项目结案
+		// 查询task_stage<15的任务数量
+		unFinishedTaskNumber, err1 := db.GetUnfinishedTaskNumber(ctx, request.ProjectId)
 		if err1 != nil {
-			logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
+			logrus.WithContext(ctx).Errorf("[Data service] call GetUnfinishedTaskNumber error,err:%+v", err)
 			return nil, err
 		}
-		res.IsEnd = 1
+		if *unFinishedTaskNumber == 0 { // 若为0则触发项目结案
+			err := db.SetProjectFinish(ctx, request.ProjectId)
+			if err1 != nil {
+				logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
+				return nil, err
+			}
+			res.IsEnd = 1
+		}
 	}
+
 	return res, nil
 }