浏览代码

结束种草任务

Ethan 2 周之前
父节点
当前提交
b4259fcedf
共有 3 个文件被更改,包括 33 次插入18 次删除
  1. 6 5
      app/controller/task_controller.go
  2. 24 7
      app/service/project_service.go
  3. 3 6
      app/service/selection_info_service.go

+ 6 - 5
app/controller/task_controller.go

@@ -413,14 +413,15 @@ func (t TaskController) ProjectClose(c *gin.Context) {
 		returnError(c, 40000, "Parameter Error: "+err.Error())
 		return
 	}
-	projectId, err := service.ProjectService{}.CloseProject(param.ProjectId)
-	if err != nil {
-		logrus.Errorf("[CloseProject] call CloseProject err:%+v\n", err)
-		returnError(c, 40000, err.Error())
+	todo, err1 := service.ProjectService{}.CloseProject(param.ProjectId)
+	if err1 != nil {
+		logrus.Errorf("[CloseProject] call CloseProject err:%+v\n", err1)
+		returnError(c, 40000, err1.Error())
 		return
 	}
 	resultMap := make(map[string]string)
-	resultMap["projectId"] = *projectId
+	resultMap["projectId"] = param.ProjectId
+	resultMap["todo"] = todo
 	returnSuccess(c, 20000, resultMap)
 }
 

+ 24 - 7
app/service/project_service.go

@@ -941,16 +941,33 @@ func (s ProjectService) DeleteProject(projectId string) (*string, error) {
 }
 
 // 结束种草任务
-func (s ProjectService) CloseProject(projectId string) (*string, error) {
+func (s ProjectService) CloseProject(projectId string) (string, error) {
 	// TODO 根据当前任务状态判断是否有待办
 	// 任务待办:待审核、待支付、达人未处理、初稿待审、链接待审、待结算  待发货、待签收  未传初稿、未发作品、未传数据
 	// 合作待办:可邀约、邀约中、合作中
-	err := dao.ProjectDAO{}.UpdateProject(entity.Project{
-		ProjectId:     projectId,
-		ProjectStatus: 10,
-		UpdatedAt:     time.Now(),
-	})
-	return &projectId, err
+	project, err := dao.ProjectDAO{}.GetProjectById(projectId)
+	if err != nil {
+		return "0", err
+	}
+	if project == nil {
+		return "0", errors.New("任务不存在")
+	}
+	var needProcess int64
+	if project.ProjectStatus == 4 || project.ProjectStatus == 8 {
+		// 达人未处理 or 物流待办 or 初稿待审、链接待审、待结算
+		_ = dao.Db.Model(&entity.ProjectTaskInfo{}).Where("project_id = ? and (task_status = ? or task_stage < ?)", projectId, 1, 15).Count(&needProcess).Error // task_status=1待选
+	}
+	if project.ProjectStatus == 2 || project.ProjectStatus == 4 || needProcess > 0 {
+		// 存在待办不可结束
+		return "1", nil
+	} else {
+		err := dao.ProjectDAO{}.UpdateProject(entity.Project{
+			ProjectId:     projectId,
+			ProjectStatus: 10,
+			UpdatedAt:     time.Now(),
+		})
+		return "0", err
+	}
 }
 
 // 草稿箱——品牌种草

+ 3 - 6
app/service/selection_info_service.go

@@ -898,14 +898,11 @@ func (s SelectionInfoService) CloseSelection(selectionId string) (string, error)
 		return "0", errors.New("任务不存在")
 	}
 	var needProcess int64
-	var logisticsToDo int64
 	if selectionInfo.SelectionStatus == 6 {
-		// 达人未处理
-		_ = dao.Db.Model(&entity.SecTaskInfo{}).Where("selection_id = ? and task_status = ?", selectionId, 1).Count(&needProcess).Error // task_status=1待选
-		// 物流待办
-		_ = dao.Db.Model(&entity.SecTaskInfo{}).Where("selection_id = ? and logistics_status != ?", selectionId, 3).Count(&logisticsToDo).Error
+		// 达人未处理 or 物流待办
+		_ = dao.Db.Model(&entity.SecTaskInfo{}).Where("selection_id = ? and (task_status = ? or logistics_status != ?)", selectionId, 1, 3).Count(&needProcess).Error // task_status=1待选
 	}
-	if selectionInfo.SelectionStatus == 2 || selectionInfo.SelectionStatus == 4 || (selectionInfo.SelectionStatus == 6 && needProcess+logisticsToDo > 0) {
+	if selectionInfo.SelectionStatus == 2 || selectionInfo.SelectionStatus == 4 || needProcess > 0 {
 		// 存在待办不可结束
 		return "1", nil
 	} else {