Procházet zdrojové kódy

结束本地生活任务

Ethan před 2 týdny
rodič
revize
378ff54a20

+ 6 - 5
app/controller/task_controller.go

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

+ 24 - 8
app/service/local_life_service.go

@@ -977,16 +977,32 @@ func (s LocalLifeService) DeleteLocalLife(localId string) (*string, error) {
 }
 
 // 结束本地生活任务
-func (s LocalLifeService) CloseLocalLife(localId string) (*string, error) {
-	// TODO 根据当前任务状态判断是否有待办
+func (s LocalLifeService) CloseLocalLife(localId string) (string, error) {
 	// 任务待办:待审核、待支付、达人未处理、初稿待审、链接待审、待结算  (待发货、待签收)  达人待预约探店时间、探店时间待确认、达人待探店  未传初稿、未发作品、未传数据
 	// 合作待办:可邀约、邀约中、合作中
-	err := dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{
-		LocalID:    localId,
-		TaskStatus: 10,
-		UpdatedAt:  time.Now(),
-	})
-	return &localId, err
+	localLife, err := dao.LocalLifeDao{}.GetLocalById(localId)
+	if err != nil {
+		return "0", err
+	}
+	if localLife == nil {
+		return "0", errors.New("任务不存在")
+	}
+	var needProcess int64
+	if localLife.TaskStatus == 4 || localLife.TaskStatus == 8 {
+		// 达人未处理 or 物流待办 or 初稿待审、链接待审、待结算
+		_ = dao.Db.Model(&entity.LocalLifeTaskInfo{}).Where("local_id = ? and (task_status = ? or task_stage < ?)", localId, 1, 15).Count(&needProcess).Error // task_status=1待选
+	}
+	if localLife.TaskStatus == 2 || localLife.TaskStatus == 4 || needProcess > 0 {
+		// 存在待办不可结束
+		return "1", nil
+	} else {
+		err := dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{
+			LocalID:    localId,
+			TaskStatus: 10,
+			UpdatedAt:  time.Now(),
+		})
+		return "0", err
+	}
 }
 
 // 草稿箱——本地生活

+ 0 - 1
app/service/project_service.go

@@ -942,7 +942,6 @@ func (s ProjectService) DeleteProject(projectId string) (*string, error) {
 
 // 结束种草任务
 func (s ProjectService) CloseProject(projectId string) (string, error) {
-	// TODO 根据当前任务状态判断是否有待办
 	// 任务待办:待审核、待支付、达人未处理、初稿待审、链接待审、待结算  待发货、待签收  未传初稿、未发作品、未传数据
 	// 合作待办:可邀约、邀约中、合作中
 	project, err := dao.ProjectDAO{}.GetProjectById(projectId)