浏览代码

完善专项数据审核

Ohio-HYF 2 年之前
父节点
当前提交
484bc6af93
共有 4 个文件被更改,包括 80 次插入24 次删除
  1. 18 0
      db/project.go
  2. 12 0
      db/task.go
  3. 1 0
      model/http_model/data_accept.go
  4. 49 24
      service/data.go

+ 18 - 0
db/project.go

@@ -299,6 +299,24 @@ 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
+}
+
 func GetCreatingNumber(ctx context.Context, enterpriseID string) (*int64, error) {
 	db := GetReadDB(ctx)
 	var creatingNumber int64

+ 12 - 0
db/task.go

@@ -200,6 +200,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 GetSpecialTaskInviteList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskInviteInfo, int64, error) {
 	db := GetReadDB(ctx)
 	// 查询task表信息

+ 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 {

+ 49 - 24
service/data.go

@@ -62,7 +62,7 @@ func (*data) AcceptData(ctx context.Context, request http_model.AcceptDataReques
 		return nil, err
 	}
 
-	// 记录任务日志
+	// 记录任务日志和达人消息
 	for _, taskId := range TaskIDList {
 		err = db.CreateTaskLog(ctx, taskId, "数据通过")
 		if err != nil {
@@ -76,36 +76,61 @@ 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,
 	}
-	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)
+
+	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
+		}
+		// 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
 }