Quellcode durchsuchen

执行中、招募中

lin-jim-leon vor 5 Monaten
Ursprung
Commit
fbe6258868

+ 34 - 8
db/data.go

@@ -152,14 +152,27 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 }
 
 // DataOpinion 提交意见
-func DataOpinion(ctx context.Context, TaskID string, ReviseOpinion string) error {
+func DataOpinion(ctx context.Context, TaskID string, ReviseOpinion string, operatorid string, operatetype int, projectid string) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeDataInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1}).Error
+	err := db.Model(gorm_model.YounggeeDataInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1, "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Data db] Update YounggeeDataInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{DataStatus: 3}).Error
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
+		return err
+	}
+
+	var data_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&data_default).Error
+	if err != nil {
+		return err
+	}
+	duration := time.Duration(data_default.CaseCloseDefault) * time.Hour
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{DataStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Data db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err
@@ -173,9 +186,9 @@ func DataOpinion(ctx context.Context, TaskID string, ReviseOpinion string) error
 }
 
 // AcceptData 同意数据-结案
-func AcceptData(ctx context.Context, TaskIDs []string) error {
+func AcceptData(ctx context.Context, TaskIDs []string, operatorid string, operatetype int) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeDataInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now()}).Error
+	err := db.Model(gorm_model.YounggeeDataInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Data db] Update YounggeeDataInfo error,err:%+v", err)
 		return err
@@ -184,14 +197,27 @@ func AcceptData(ctx context.Context, TaskIDs []string) error {
 }
 
 // RejectData 拒绝数据-结案
-func RejectData(ctx context.Context, TaskIDs []string) error {
+func RejectData(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeDataInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"reject_at": time.Now(), "is_review": 1}).Error
+	err := db.Model(gorm_model.YounggeeDataInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"reject_at": time.Now(), "is_review": 1, "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Data db] Update YounggeeDataInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{DataStatus: 3}).Error
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
+		return err
+	}
+
+	var data_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&data_default).Error
+	if err != nil {
+		return err
+	}
+	duration := time.Duration(data_default.CaseCloseDefault) * time.Hour
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{DataStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Data db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err

+ 74 - 11
db/link.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"fmt"
 	"reflect"
+	"strconv"
 	"strings"
 	"time"
 	"youngee_b_api/model/common_model"
@@ -127,14 +128,27 @@ func GetTaskLinkList(ctx context.Context, projectID string, pageSize, pageNum in
 }
 
 // LinkOpinion 提交意见
-func LinkOpinion(ctx context.Context, TaskID string, ReviseOpinion string) error {
+func LinkOpinion(ctx context.Context, TaskID string, ReviseOpinion string, operatorid string, operatetype int, projectid string) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1}).Error
+	err := db.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1, "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link db] Update YounggeeLinkInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{LinkStatus: 3}).Error
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
+		return err
+	}
+
+	var link_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&link_default).Error
+	if err != nil {
+		return err
+	}
+	duration := time.Duration(link_default.LinkBreach) * time.Hour
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{LinkStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err
@@ -148,19 +162,55 @@ func LinkOpinion(ctx context.Context, TaskID string, ReviseOpinion string) error
 }
 
 // AcceptLink 同意链接
-func AcceptLink(ctx context.Context, TaskIDs []string) error {
+func AcceptLink(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string, isspecial int) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now()}).Error
+	err := db.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link db] Update YounggeeLinkInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{LinkStatus: 5}).Error
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
+		return err
+	}
+	taskstages := 13
+	nextstage := [6]int{0, 0, 0, 0, 0, 0} // 数组长度为6,表示6种工具 4,9,11,13
+	if isspecial == 1 {
+
+		toolList := strings.Split(project.Tools, ",")
+		for _, tool := range toolList {
+			// 将 tool 转换为整数
+			if t, err := strconv.Atoi(tool); err == nil && t >= 0 && t <= len(nextstage) {
+				nextstage[t-1] = 1
+			}
+		}
+		for i := 4; i < len(nextstage); i++ { // 从位置1开始
+			if nextstage[i] == 1 {
+				switch i {
+				case 4:
+					taskstages = 13
+				case 5:
+					taskstages = 15
+				}
+				break
+			}
+		}
+	}
+	var data_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&data_default).Error
+	if err != nil {
+		return err
+	}
+	duration := time.Duration(data_default.CaseCloseDefault) * time.Hour
+
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{LinkStatus: 5, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{TaskStage: 13}).Error
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{TaskStage: taskstages}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err
@@ -168,15 +218,28 @@ func AcceptLink(ctx context.Context, TaskIDs []string) error {
 	return nil
 }
 
-// RejectLink 同意链接
-func RejectLink(ctx context.Context, TaskIDs []string) error {
+// RejectLink 同意链接
+func RejectLink(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 0, "is_review": 1, "reject_at": time.Now()}).Error
+	err := db.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id in ?  and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 0, "is_review": 1, "reject_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link db] Update YounggeeLinkInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{LinkStatus: 3}).Error
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
+		return err
+	}
+
+	var link_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&link_default).Error
+	if err != nil {
+		return err
+	}
+	duration := time.Duration(link_default.LinkBreach) * time.Hour
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{LinkStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err

+ 154 - 23
db/project_task.go

@@ -6,6 +6,8 @@ import (
 	"fmt"
 	"github.com/issue9/conv"
 	"gorm.io/gorm"
+	"strconv"
+	"strings"
 	"time"
 	"youngee_b_api/model/gorm_model"
 	"youngee_b_api/model/http_model"
@@ -25,7 +27,7 @@ func GetProjecttaskList(ctx context.Context, request http_model.GetTaskListReque
 		case 1:
 			query = query.Where("supplier_id = 0 AND supplier_status = 0")
 		case 2:
-			query = query.Where("supplier_id != 0 AND supplier_status = 2")
+			query = query.Where("supplier_id !=0 AND supplier_status = 2")
 		}
 	}
 
@@ -53,7 +55,18 @@ func GetProjecttaskList(ctx context.Context, request http_model.GetTaskListReque
 
 	taskInfoPointers := make([]*http_model.TaskInfo, 0, len(projecrtaskinfo))
 	for _, task := range projecrtaskinfo {
-		boperator := getBOperator(db, task.BOperator)
+		var Time time.Time
+		switch *request.Type {
+		case 0:
+			Time = task.CreateDate
+		case 1:
+			Time = task.SignedTime
+		case 2:
+			Time = task.CompleteDate
+		}
+		boperator := getBOperator(db, task.BOperator, task.BOperatorType)
+		nickname, headurl := getTalentinfo(db, task.TalentID)
+		Iscoop := getIscoop(db, task.TalentID, request.EnterPriseId)
 		response := &http_model.TaskInfo{
 			TaskId:             task.TaskID,
 			ProjectId:          task.ProjectID,
@@ -67,7 +80,11 @@ func GetProjecttaskList(ctx context.Context, request http_model.GetTaskListReque
 			CurrentDefaultType: task.CurDefaultType,
 			From:               determineFrom(task.SupplierId, task.SupplierStatus),
 			Boperator:          boperator,
-			CreateAt:           task.CreateDate,
+			CreateAt:           Time,
+			NickName:           nickname,
+			HeadUrl:            headurl,
+			ISCoop:             Iscoop,
+			Sprojectid:         task.SprojectId,
 		}
 		taskInfoPointers = append(taskInfoPointers, response)
 	}
@@ -78,15 +95,44 @@ func GetProjecttaskList(ctx context.Context, request http_model.GetTaskListReque
 	}, nil
 }
 
-func getBOperator(db *gorm.DB, bOperatorID string) string {
+func getBOperator(db *gorm.DB, bOperatorID string, bOperatorType int) string {
 	if bOperatorID == "" {
 		return ""
 	}
-	var boperatorinfo gorm_model.Enterprise
-	if err := db.Where(gorm_model.Enterprise{EnterpriseID: bOperatorID}).First(&boperatorinfo).Error; err != nil {
-		return ""
+	if bOperatorType == 1 {
+		var boperatorinfo gorm_model.Enterprise
+		if err := db.Where(gorm_model.Enterprise{EnterpriseID: bOperatorID}).First(&boperatorinfo).Error; err != nil {
+			return ""
+		}
+		return boperatorinfo.BusinessName
+	}
+	if bOperatorType == 2 {
+		var bsubaccount gorm_model.YounggeeSubAccount
+		if err := db.Where(gorm_model.YounggeeSubAccount{SubAccountId: conv.MustInt(bOperatorID)}).First(&bsubaccount).Error; err != nil {
+			return ""
+		}
+		return bsubaccount.SubAccountName
+	}
+	if bOperatorType == 3 {
+		return "管理后台"
+	}
+	return ""
+}
+
+func getTalentinfo(db *gorm.DB, talentID string) (string, string) {
+	var talentinfo gorm_model.PlatformKuaishouUserInfo
+	if err := db.Where(gorm_model.PlatformKuaishouUserInfo{TalentId: talentID}).First(&talentinfo).Error; err != nil {
+		return "", ""
+	}
+	return talentinfo.NickName, talentinfo.HeadUri
+}
+
+func getIscoop(db *gorm.DB, talentid string, enterpriseid string) int {
+	var etcoop gorm_model.EnterpriseTalentCooperate
+	if err := db.Where(gorm_model.EnterpriseTalentCooperate{TalentId: talentid, EnterpriseId: enterpriseid}).First(&etcoop).Error; err != nil {
+		return 0
 	}
-	return boperatorinfo.BusinessName
+	return 1
 }
 
 func determineFrom(supplierID, supplierStatus int) int {
@@ -96,7 +142,7 @@ func determineFrom(supplierID, supplierStatus int) int {
 	return 1
 }
 
-func PassProTaskCoop(ctx context.Context, projectId string, taskIds []string, operatorid string, operatetype int) (bool, error) {
+func PassProTaskCoop(ctx context.Context, projectId string, taskIds []string, operatorid string, operatetype int, Isspecial int, req http_model.PassproTaskCoopRequest) (bool, error) {
 	db := GetReadDB(ctx)
 	var count int64
 	fmt.Println("task_ids: ", taskIds)
@@ -123,12 +169,41 @@ func PassProTaskCoop(ctx context.Context, projectId string, taskIds []string, op
 	if err != nil {
 		return false, err
 	}
+
 	var taskstages int
 	if project.ProjectForm == 1 {
 		taskstages = 4
 	} else {
 		taskstages = 9
 	}
+	nextstage := [6]int{0, 0, 0, 0, 0, 0} // 数组长度为6,表示6种工具 4,9,11,13
+	if Isspecial == 1 {
+		toolList := strings.Split(project.Tools, ",")
+		for _, tool := range toolList {
+			// 将 tool 转换为整数
+			if t, err := strconv.Atoi(tool); err == nil && t >= 0 && t <= len(nextstage) {
+				nextstage[t-1] = 1
+			}
+		}
+		fmt.Println(nextstage)
+		for i := 1; i < len(nextstage); i++ { // 从位置1开始
+			if nextstage[i] == 1 {
+				switch i {
+				case 1:
+					taskstages = 4
+				case 2:
+					taskstages = 9
+				case 3:
+					taskstages = 11
+				case 4:
+					taskstages = 13
+				case 5:
+					taskstages = 15
+				}
+				break
+			}
+		}
+	}
 
 	//4.根据达人来源改变状态、阶段、数目
 	var tasks []gorm_model.YoungeeTaskInfo
@@ -146,6 +221,7 @@ func PassProTaskCoop(ctx context.Context, projectId string, taskIds []string, op
 					UpdateAt:      time.Now(),
 					BOperator:     operatorid,
 					BOperatorType: operatetype,
+					SelectDate:    time.Now(),
 				}
 				err = tx.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ? AND task_stage = 1", taskInfo.TaskID).Updates(updateData).Error
 				if err != nil {
@@ -166,18 +242,35 @@ func PassProTaskCoop(ctx context.Context, projectId string, taskIds []string, op
 				}
 				//服务商s_project已招募人数+1
 				var sprojectinfo gorm_model.YounggeeSProjectInfo
-				err = db.Model(gorm_model.YounggeeSProjectInfo{}).Where("project_id = ?", projectId).Find(&sprojectinfo).Error
+				err = db.Model(gorm_model.YounggeeSProjectInfo{}).Where(" s_project_id =?", req.SProjectId).Find(&sprojectinfo).Error
 				if err != nil {
 					return err
 				}
 				sprojectinfo.RecruitNum += 1
-				err = tx.Model(gorm_model.YounggeeSProjectInfo{}).Where("project_id = ? ", projectId).Updates(projectinfo).Error
+				fmt.Println("......", projectinfo.RecruitNum)
+				err = tx.Model(gorm_model.YounggeeSProjectInfo{}).Where(" s_project_id =?", req.SProjectId).Updates(sprojectinfo).Error
 				if err != nil {
 					return err
 				}
 
 			}
 
+			if project.ProjectForm != 1 { //非签收截止时间
+				var draft_default gorm_model.InfoAutoTask
+				err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&draft_default).Error
+				if err != nil {
+					return err
+				}
+				duration := time.Duration(draft_default.DraftDefault) * time.Hour
+				upbreakdate := gorm_model.YoungeeTaskInfo{
+					CurBreakAt: time.Now().Add(duration),
+				}
+				err = tx.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ? ", taskInfo.TaskID).Updates(upbreakdate).Error
+				if err != nil {
+					return err
+				}
+			}
+
 			if taskInfo.SupplierId == 0 && taskInfo.SupplierStatus == 0 { //来源于公海
 				updateData := gorm_model.YoungeeTaskInfo{
 					TaskStage:     taskstages,
@@ -185,6 +278,7 @@ func PassProTaskCoop(ctx context.Context, projectId string, taskIds []string, op
 					UpdateAt:      time.Now(),
 					BOperator:     operatorid,
 					BOperatorType: operatetype,
+					SelectDate:    time.Now(),
 				}
 				err = tx.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ? AND task_stage = 1", taskInfo.TaskID).Updates(updateData).Error
 				if err != nil {
@@ -252,6 +346,7 @@ func RefuseproTaskCoop(ctx context.Context, taskIds []string, operatorid string,
 				UpdateAt:      time.Now(),
 				BOperator:     operatorid,
 				BOperatorType: operatetype,
+				CompleteDate:  time.Now(),
 			}
 			err = tx.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ? AND task_stage = 1", taskInfo.TaskID).Updates(updateData).Error
 		}
@@ -293,7 +388,10 @@ func GetPreSketchList(ctx context.Context, request http_model.PreSketchListReque
 		return nil, err
 	}
 	taskInfoPointers := make([]*http_model.TasksketchInfo, 0, len(projecrtaskinfo))
+
 	for _, task := range projecrtaskinfo {
+		nickname, headurl := getTalentinfo(db, task.TalentID)
+		Iscoop := getIscoop(db, task.TalentID, request.EnterpriseId)
 		taskinfo := &http_model.TaskInfo{
 			TaskId:             task.TaskID,
 			ProjectId:          task.ProjectID,
@@ -306,10 +404,13 @@ func GetPreSketchList(ctx context.Context, request http_model.PreSketchListReque
 			Commentavg:         task.CommitAvg,
 			CurrentDefaultType: task.CurDefaultType,
 			From:               determineFrom(task.SupplierId, task.SupplierStatus),
+			NickName:           nickname,
+			HeadUrl:            headurl,
+			ISCoop:             Iscoop,
 		}
 		response := &http_model.TasksketchInfo{
 			Task: taskinfo,
-			DDl:  time.Now(), //截止时间再改
+			DDl:  task.CurBreakAt,
 		}
 		taskInfoPointers = append(taskInfoPointers, response)
 
@@ -364,11 +465,13 @@ func GetSketchList(ctx context.Context, request http_model.TasksketchlistRequest
 		if err != nil {
 			return nil, err
 		}
+		boperator := getBOperator(db, task.BOperator, task.BOperatorType)
 		response := &http_model.Tasksketchinfo{
 			Task:     taskinfo,
 			SketchId: sketchinfo.SketchID,
 			SubmitAt: sketchinfo.SubmitAt,
 			AgreeAt:  sketchinfo.AgreeAt,
+			Operator: boperator,
 		}
 		taskInfoPointers = append(taskInfoPointers, response)
 
@@ -405,6 +508,8 @@ func GetPreLinkList(ctx context.Context, request http_model.PreLinkListRequest)
 	}
 	taskInfoPointers := make([]*http_model.Tasklinkinfo, 0, len(projecrtaskinfo))
 	for _, task := range projecrtaskinfo {
+		nickname, headurl := getTalentinfo(db, task.TalentID)
+		Iscoop := getIscoop(db, task.TalentID, request.EnterpriseId)
 		taskinfo := &http_model.TaskInfo{
 			TaskId:             task.TaskID,
 			ProjectId:          task.ProjectID,
@@ -417,10 +522,13 @@ func GetPreLinkList(ctx context.Context, request http_model.PreLinkListRequest)
 			Commentavg:         task.CommitAvg,
 			CurrentDefaultType: task.CurDefaultType,
 			From:               determineFrom(task.SupplierId, task.SupplierStatus),
+			NickName:           nickname,
+			HeadUrl:            headurl,
+			ISCoop:             Iscoop,
 		}
 		response := &http_model.Tasklinkinfo{
 			Task: taskinfo,
-			DDl:  time.Now(), //截止时间再改
+			DDl:  task.CurBreakAt,
 		}
 		taskInfoPointers = append(taskInfoPointers, response)
 
@@ -457,6 +565,8 @@ func GetLinkList(ctx context.Context, request http_model.TaskLinklistRequest) (*
 	}
 	taskInfoPointers := make([]*http_model.TaskLinkinfo, 0, len(projecrtaskinfo))
 	for _, task := range projecrtaskinfo {
+		nickname, headurl := getTalentinfo(db, task.TalentID)
+		Iscoop := getIscoop(db, task.TalentID, request.EnterpriseId)
 		taskinfo := &http_model.TaskInfo{
 			TaskId:             task.TaskID,
 			ProjectId:          task.ProjectID,
@@ -469,12 +579,16 @@ func GetLinkList(ctx context.Context, request http_model.TaskLinklistRequest) (*
 			Commentavg:         task.CommitAvg,
 			CurrentDefaultType: task.CurDefaultType,
 			From:               determineFrom(task.SupplierId, task.SupplierStatus),
+			NickName:           nickname,
+			HeadUrl:            headurl,
+			ISCoop:             Iscoop,
 		}
 		var linkinfo gorm_model.YounggeeLinkInfo
 		err := db.Model(&gorm_model.YounggeeLinkInfo{}).Where("task_id = ? and is_review = 0", task.TaskID).First(&linkinfo).Error
 		if err != nil {
 			return nil, err
 		}
+		boperator := getBOperator(db, task.BOperator, task.BOperatorType)
 		response := &http_model.TaskLinkinfo{
 			Task:     taskinfo,
 			LinkId:   linkinfo.LinkID,
@@ -482,6 +596,7 @@ func GetLinkList(ctx context.Context, request http_model.TaskLinklistRequest) (*
 			AgreeAt:  linkinfo.AgreeAt,
 			LinkUrl:  linkinfo.LinkUrl,
 			PhotoUrl: linkinfo.PhotoUrl,
+			Operator: boperator,
 		}
 		taskInfoPointers = append(taskInfoPointers, response)
 
@@ -518,6 +633,8 @@ func GetPreDataList(ctx context.Context, request http_model.PreDataListRequest)
 	}
 	taskInfoPointers := make([]*http_model.Taskdatainfo, 0, len(projecrtaskinfo))
 	for _, task := range projecrtaskinfo {
+		nickname, headurl := getTalentinfo(db, task.TalentID)
+		Iscoop := getIscoop(db, task.TalentID, request.EnterpriseId)
 		taskinfo := &http_model.TaskInfo{
 			TaskId:             task.TaskID,
 			ProjectId:          task.ProjectID,
@@ -530,10 +647,13 @@ func GetPreDataList(ctx context.Context, request http_model.PreDataListRequest)
 			Commentavg:         task.CommitAvg,
 			CurrentDefaultType: task.CurDefaultType,
 			From:               determineFrom(task.SupplierId, task.SupplierStatus),
+			NickName:           nickname,
+			HeadUrl:            headurl,
+			ISCoop:             Iscoop,
 		}
 		response := &http_model.Taskdatainfo{
 			Task: taskinfo,
-			DDl:  time.Now(), //截止时间再改
+			DDl:  task.CurBreakAt,
 		}
 		taskInfoPointers = append(taskInfoPointers, response)
 
@@ -570,22 +690,30 @@ func GetDataList(ctx context.Context, request http_model.TaskDatalistRequest) (*
 	}
 	taskInfoPointers := make([]*http_model.TaskDatainfo, 0, len(projecrtaskinfo))
 	for _, task := range projecrtaskinfo {
+		nickname, headurl := getTalentinfo(db, task.TalentID)
+		Iscoop := getIscoop(db, task.TalentID, request.EnterpriseId)
 		taskinfo := &http_model.TaskInfo{
-			TaskId:       task.TaskID,
-			ProjectId:    task.ProjectID,
-			TalentId:     task.TalentID,
-			FansNum:      task.FansNum,
-			DraftFee:     task.DraftFee,
-			FeeFrom:      task.FeeForm,
-			TaskStage:    task.TaskStage,
-			SettleAmount: task.SettleAmount,
-			From:         determineFrom(task.SupplierId, task.SupplierStatus),
+			TaskId:             task.TaskID,
+			ProjectId:          task.ProjectID,
+			TalentId:           task.TalentID,
+			FansNum:            task.FansNum,
+			DraftFee:           task.DraftFee,
+			Voteavg:            task.VoteAvg,
+			FeeFrom:            task.FeeForm,
+			TaskStage:          task.TaskStage,
+			Commentavg:         task.CommitAvg,
+			CurrentDefaultType: task.CurDefaultType,
+			From:               determineFrom(task.SupplierId, task.SupplierStatus),
+			NickName:           nickname,
+			HeadUrl:            headurl,
+			ISCoop:             Iscoop,
 		}
 		var datainfo gorm_model.YounggeeDataInfo
 		err := db.Model(&gorm_model.YounggeeDataInfo{}).Where("task_id = ? and is_review = 0", task.TaskID).First(&datainfo).Error
 		if err != nil {
 			return nil, err
 		}
+		boperator := getBOperator(db, task.BOperator, task.BOperatorType)
 		response := &http_model.TaskDatainfo{
 			Task:          taskinfo,
 			DataId:        datainfo.DataID,
@@ -596,6 +724,9 @@ func GetDataList(ctx context.Context, request http_model.TaskDatalistRequest) (*
 			LikeNumber:    datainfo.LikeNumber,
 			CollectNumber: datainfo.CollectNumber,
 			CommentNumber: datainfo.CommentNumber,
+			SettleAmount:  task.SettleAmount,
+			Breakrate:     task.SketchBreakRate + task.LinkBreakRate + task.DataBreakRate,
+			Operator:      boperator,
 		}
 		taskInfoPointers = append(taskInfoPointers, response)
 

+ 77 - 10
db/sketch.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"fmt"
 	"reflect"
+	"strconv"
 	"strings"
 	"time"
 	"youngee_b_api/model/common_model"
@@ -130,15 +131,29 @@ func GetTaskSketchList(ctx context.Context, projectID string, pageSize, pageNum
 }
 
 // SketchOption 提交意见
-func SketchOption(ctx context.Context, TaskID string, ReviseOpinion string) error {
+func SketchOption(ctx context.Context, TaskID string, ReviseOpinion string, operatorid string, operatetype int, projectid string) error {
 	db := GetReadDB(ctx)
 	fmt.Printf("初稿意见 %d %+v", TaskID, ReviseOpinion)
-	err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1}).Error
+	err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1, "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch db] call RevisieOption error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 3}).Error
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
+		return err
+	}
+
+	var draft_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&draft_default).Error
+	if err != nil {
+		return err
+	}
+
+	duration := time.Duration(draft_default.DraftDefault) * time.Hour
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err
@@ -152,20 +167,58 @@ func SketchOption(ctx context.Context, TaskID string, ReviseOpinion string) erro
 }
 
 // AcceptSketch 同意初稿
-func AcceptSketch(ctx context.Context, TaskIDs []string) error {
+func AcceptSketch(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string, isspecial int) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now()}).Error
+	err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeSketchInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 5}).Error
+
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
+		return err
+	}
+	taskstages := 11
+	nextstage := [6]int{0, 0, 0, 0, 0, 0} // 数组长度为6,表示6种工具 4,9,11,13
+	if isspecial == 1 {
+
+		toolList := strings.Split(project.Tools, ",")
+		for _, tool := range toolList {
+			// 将 tool 转换为整数
+			if t, err := strconv.Atoi(tool); err == nil && t >= 0 && t <= len(nextstage) {
+				nextstage[t-1] = 1
+			}
+		}
+		for i := 3; i < len(nextstage); i++ { // 从位置1开始
+			if nextstage[i] == 1 {
+				switch i {
+				case 3:
+					taskstages = 11
+				case 4:
+					taskstages = 13
+				case 5:
+					taskstages = 15
+				}
+				break
+			}
+		}
+	}
+	var link_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&link_default).Error
+	if err != nil {
+		return err
+	}
+	duration := time.Duration(link_default.LinkBreach) * time.Hour
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 5, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err
 	}
 
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{TaskStage: 11}).Error
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{TaskStage: taskstages}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err
@@ -174,14 +227,28 @@ func AcceptSketch(ctx context.Context, TaskIDs []string) error {
 }
 
 // RejectSketch 不同意初稿
-func RejectSketch(ctx context.Context, TaskIDs []string) error {
+func RejectSketch(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 0, "is_review": 1, "reject_at": time.Now()}).Error
+	err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 0, "is_review": 1, "reject_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeSketchInfo error,err:%+v", err)
 		return err
 	}
-	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 3}).Error
+
+	var project gorm_model.ProjectInfo
+	err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
+		return err
+	}
+
+	var draft_default gorm_model.InfoAutoTask
+	err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&draft_default).Error
+	if err != nil {
+		return err
+	}
+	duration := time.Duration(draft_default.DraftDefault) * time.Hour
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
 		return err

+ 1 - 1
handler/PassproTaskCoop.go

@@ -44,7 +44,7 @@ func (c PassproTaskCoop) run() {
 		logrus.Info("PassproTaskCoop fail,req:%+v", c.req)
 		return
 	}
-	c.resp.Message = "成功合作公开种草任务"
+	c.resp.Message = "成功合作种草任务"
 	c.resp.Data = res
 }
 

+ 15 - 0
model/gorm_model/enterprise_talent_cooperate.go

@@ -0,0 +1,15 @@
+package gorm_model
+
+type EnterpriseTalentCooperate struct {
+	CooperateId   int    `gorm:"column:cooperate_id;type:int(11);primary_key;AUTO_INCREMENT;comment:主键ID" json:"cooperate_id"`
+	EnterpriseId  string `gorm:"column:enterprise_id;type:varchar(255);comment:商家ID" json:"enterprise_id"`
+	TalentId      string `gorm:"column:talent_id;type:varchar(255);comment:达人ID" json:"talent_id"`
+	SupplierId    int    `gorm:"column:supplier_id;type:int(11);comment:服务商ID" json:"supplier_id"`
+	TalentOrigin  int    `gorm:"column:talent_origin;type:int(11);comment:达人来源,1公海,2服务商" json:"talent_origin"`
+	CooperateType int    `gorm:"column:cooperate_type;type:int(11);comment:合作关系类型,1带货达人,2种草达人,3本地生活达人" json:"cooperate_type"`
+	CooperateNum  int    `gorm:"column:cooperate_num;type:int(11);comment:累计合作次数" json:"cooperate_num"`
+}
+
+func (m *EnterpriseTalentCooperate) TableName() string {
+	return "enterprise_talent_cooperate"
+}

+ 2 - 1
model/gorm_model/info_auto_task.go

@@ -15,7 +15,8 @@ type InfoAutoTask struct {
 	DraftDefaultInMv  int `gorm:"column:draft_default_in_mv"`                     // 视频初稿违约自动处理
 	ScriptDefault     int `gorm:"column:script_default"`                          // 脚本违约自动处理
 	LinkBreach        int `gorm:"column:link_breach"`                             // 链接违约自动处理
-	CaseCloseDefault  int `gorm:"column:case_close_default"`                      // 结案违约自动处理
+	CaseCloseDefault  int `gorm:"column:case_close_default"`                      // 数据违约时间
+	DraftDefault      int `gorm:"column:draft_default;NOT NULL"`                  // 初稿违约时间
 }
 
 func (m *InfoAutoTask) TableName() string {

+ 2 - 0
model/gorm_model/link.go

@@ -20,6 +20,8 @@ type YounggeeLinkInfo struct {
 	AutoAgreeAt     time.Time `gorm:"column:auto_agree_at"`                      // 发布审核自动处理时间
 	AutoDataBreakAt time.Time `gorm:"column:auto_data_break_at"`                 // 结案违约自动处理时间
 	AutoLinkBreakAt time.Time `gorm:"column:auto_link_break_at"`                 // 链接违约自动处理时间
+	BOperator       string    `gorm:"column:b_operator"`                         //商家确定操作人ID
+	BOperatorType   int       `gorm:"column:b_operator_type"`                    //商家操作人类型,1商家用户,2商家子账号,3管理后台
 }
 
 func (m *YounggeeLinkInfo) TableName() string {

+ 30 - 0
model/gorm_model/platform_kuaishou_user_info.go

@@ -0,0 +1,30 @@
+package gorm_model
+
+import (
+	"time"
+)
+
+type PlatformKuaishouUserInfo struct {
+	Id           int       `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:主键,自增长" json:"id"`
+	OpenId       string    `gorm:"column:open_id;type:varchar(255);comment:快手用户唯一表示" json:"open_id"`
+	PlatformId   int       `gorm:"column:platform_id;type:int(11);comment:平台id,与third_platform_info中的id相同" json:"platform_id"`
+	TalentId     string    `gorm:"column:talent_id;type:varchar(255);comment:达人id" json:"talent_id"`
+	Code         string    `gorm:"column:code;type:varchar(255);comment:扫码后获得的临时票据" json:"code"`
+	AccessToken  string    `gorm:"column:access_token;type:varchar(1000);comment:调用API需要的参数" json:"access_token"`
+	RefreshToken string    `gorm:"column:refresh_token;type:varchar(1000);comment:用于刷新access_token" json:"refresh_token"`
+	NickName     string    `gorm:"column:nick_name;type:varchar(255);comment:快手昵称" json:"nick_name"`
+	HeadUri      string    `gorm:"column:head_uri;type:varchar(255);comment:用户头像" json:"head_uri"`
+	Fan          string    `gorm:"column:fan;type:varchar(255);comment:用户粉丝数" json:"fan"`
+	Expired      int       `gorm:"column:expired;type:tinyint(4);comment:access_token是否可用" json:"expired"`
+	SaleNum30Day int       `gorm:"column:sale_num_30day;type:int(11);comment:30日销量" json:"sale_num_30day"`
+	SaleNumTotal int       `gorm:"column:sale_num_total;type:int(11);comment:总销量" json:"sale_num_total"`
+	CreateTime   time.Time `gorm:"column:create_time;type:datetime;comment:创建时间" json:"create_time"`
+	UpdateTime   time.Time `gorm:"column:update_time;type:datetime;comment:更新时间" json:"update_time"`
+	IsDelete     int       `gorm:"column:is_delete;type:int(11);default:0;comment:是否被删除" json:"is_delete"`
+	LikeNum      int       `gorm:"column:like_num;type:int(11);default:0;comment:点赞数" json:"like_num"`
+	VideoNum     int       `gorm:"column:video_num;type:int(11);default:0;comment:作品数" json:"video_num"`
+}
+
+func (m *PlatformKuaishouUserInfo) TableName() string {
+	return "platform_kuaishou_user_info"
+}

+ 42 - 33
model/gorm_model/project.go

@@ -6,39 +6,48 @@ import (
 )
 
 type ProjectInfo struct {
-	ProjectID         string      `gorm:"column:project_id;primary_key;"` // 项目id 项目ID生成规则:年(2位)+一年中的第几天(3位)+5位数随机数,雪花算法也可,生成10位订单号
-	ProjectName       string     `gorm:"column:project_name"`                          // 项目名称
-	ProjectStatus     int64      `gorm:"column:project_status"`                        // 项目状态,1-10分别代表创建中、待审核、审核通过、招募中、招募完毕、待支付、已支付、失效、执行中、已结案
-	ProjectType       int64      `gorm:"column:project_type"`                          // 项目类型,1代表全流程项目,2代表专项项目
-	ProjectPlatform   int64      `gorm:"column:project_platform"`                      // 项目平台,1-7分别代表红book、抖音、微博、快手、b站、大众点评、知乎
-	ProjectForm       int64      `gorm:"column:project_form"`                          // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
-	TalentType        string     `gorm:"column:talent_type"`                           // 达人类型
-	RecruitDdl        *time.Time `gorm:"column:recruit_ddl"`                           // 招募截止时间
-	ContentType       int64      `gorm:"column:content_type"`                          // 内容形式,1代表图文,2代表视频
-	ProjectDetail     string     `gorm:"column:project_detail"`                        // 项目详情
-	ApplyNum          int64      `gorm:"column:apply_num;default:0;NOT NULL"`          // 报名人数
-	RecruitNum        int64      `gorm:"column:recruit_num;default:0;NOT NULL"`        // 已招募人数
-	EnterpriseID      string      `gorm:"column:enterprise_id"`                         // 所属企业id
-	ProductID         int64      `gorm:"column:product_id"`                            // 关联商品id
-	CreatedAt         *time.Time `gorm:"column:created_at"`                            // 创建时间
-	UpdatedAt         *time.Time `gorm:"column:updated_at"`                            // 修改时间
-	FeeForm           string     `gorm:"column:fee_form"`                              // 稿费形式列表
-	AutoFailAt        *time.Time `gorm:"column:auto_fail_at"`                          // 失效自动处理时间
-	AutoTaskID        int64      `gorm:"column:auto_task_id;NOT NULL"`                 // 定时任务id
-	AutoDefaultID     int64      `gorm:"column:auto_default_id;NOT NULL"`              // 违约状态id
-	PaymentAmount     float64    `gorm:"column:payment_amount"`                        // 支付金额
-	PayAt             *time.Time `gorm:"column:pay_at"`                                // 支付时间
-	AutoScriptBreakAt *time.Time `gorm:"column:auto_script_break_at"`                  // 脚本违约自动处理时间
-	AutoSketchBreakAt *time.Time `gorm:"column:auto_sketch_break_at"`                  // 初稿违约自动处理时间
-	FailReason        int64      `gorm:"column:fail_reason"`                           // 失效原因,1、2分别表示逾期未支付、项目存在风险
-	PassAt            *time.Time `gorm:"column:pass_at"`                               // 审核通过时间
-	FinishAt          *time.Time `gorm:"column:finish_at"`                             // 结案时间
-	SubmitAt          *time.Time `gorm:"column:submit_at"`                             // 结案时间
-	EstimatedCost     float64    `gorm:"column:estimated_cost"`                        // 预估成本
-	IsRead            int64      `gorm:"column:is_read"`                               // 是否已读
-	SettlementAmount  float64    `gorm:"column:settlement_amount"`                     // 结算金额
-	ProductSnap       string     `gorm:"column:product_snap"`                          // 商品信息快照
-	ProductPhotoSnap  string     `gorm:"column:product_photo_snap"`                    // 商品图片快照
+	ProjectID         string     `gorm:"column:project_id;primary_key;"`        // 项目id 项目ID生成规则:年(2位)+一年中的第几天(3位)+5位数随机数,雪花算法也可,生成10位订单号
+	ProjectName       string     `gorm:"column:project_name"`                   // 项目名称
+	ProjectStatus     int64      `gorm:"column:project_status"`                 // 项目状态,1-10分别代表创建中、待审核、审核通过、招募中、招募完毕、待支付、已支付、失效、执行中、已结案
+	ProjectType       int64      `gorm:"column:project_type"`                   // 项目类型,1代表全流程项目,2代表专项项目
+	ProjectPlatform   int64      `gorm:"column:project_platform"`               // 项目平台,1-7分别代表红book、抖音、微博、快手、b站、大众点评、知乎
+	ProjectForm       int64      `gorm:"column:project_form"`                   // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
+	TalentType        string     `gorm:"column:talent_type"`                    // 达人类型
+	RecruitDdl        *time.Time `gorm:"column:recruit_ddl"`                    // 招募截止时间
+	ContentType       int64      `gorm:"column:content_type"`                   // 内容形式,1代表图文,2代表视频
+	ProjectDetail     string     `gorm:"column:project_detail"`                 // 项目详情
+	ApplyNum          int64      `gorm:"column:apply_num;default:0;NOT NULL"`   // 报名人数
+	RecruitNum        int64      `gorm:"column:recruit_num;default:0;NOT NULL"` // 已招募人数
+	EnterpriseID      string     `gorm:"column:enterprise_id"`                  // 所属企业id
+	ProductID         int64      `gorm:"column:product_id"`                     // 关联商品id
+	CreatedAt         *time.Time `gorm:"column:created_at"`                     // 创建时间
+	UpdatedAt         *time.Time `gorm:"column:updated_at"`                     // 修改时间
+	FeeForm           string     `gorm:"column:fee_form"`                       // 稿费形式列表
+	AutoFailAt        *time.Time `gorm:"column:auto_fail_at"`                   // 失效自动处理时间
+	AutoTaskID        int64      `gorm:"column:auto_task_id;NOT NULL"`          // 定时任务id
+	AutoDefaultID     int64      `gorm:"column:auto_default_id;NOT NULL"`       // 违约状态id
+	PaymentAmount     float64    `gorm:"column:payment_amount"`                 // 支付金额
+	PayAt             *time.Time `gorm:"column:pay_at"`                         // 支付时间
+	AutoScriptBreakAt *time.Time `gorm:"column:auto_script_break_at"`           // 脚本违约自动处理时间
+	AutoSketchBreakAt *time.Time `gorm:"column:auto_sketch_break_at"`           // 初稿违约自动处理时间
+	FailReason        int64      `gorm:"column:fail_reason"`                    // 失效原因,1、2分别表示逾期未支付、项目存在风险
+	PassAt            *time.Time `gorm:"column:pass_at"`                        // 审核通过时间
+	FinishAt          *time.Time `gorm:"column:finish_at"`                      // 结案时间
+	SubmitAt          *time.Time `gorm:"column:submit_at"`                      // 结案时间
+	EstimatedCost     float64    `gorm:"column:estimated_cost"`                 // 预估成本
+	IsRead            int64      `gorm:"column:is_read"`                        // 是否已读
+	SettlementAmount  float64    `gorm:"column:settlement_amount"`              // 结算金额
+	ProductSnap       string     `gorm:"column:product_snap"`                   // 商品信息快照
+	ProductPhotoSnap  string     `gorm:"column:product_photo_snap"`             // 商品图片快照
+	NeedReview        int64      `gorm:"column:need_review"`                    // 待审稿
+	NeedQuality       int64      `gorm:"column:need_quality"`                   // 待质检
+	NeedCalculate     int64      `gorm:"column:need_calculate"`                 // 待结算
+	ServiceChargeRate float64    `gorm:"column:service_charge_rate"`            // 公开服务费率
+	OperatorType      *int64     `gorm:"column:operator_type"`                  // 创建者类型,1商家主账号,2商家子账号
+	TotalRecruitNum   *int64     `gorm:"column:total_recruit_num"`              // 此任务各策略招募人数总和
+	ViewNum           int64      `gorm:"column:view_num"`                       // 浏览量
+	Tools             string     `gorm:"column:tools"`                          // 工具选择,1邀约招募 2结算账单 3样品物流 4审稿工具 5作品审查 6数据巡检(,分隔)
+	InvoiceStatus     int64      `gorm:"column:invoice_status"`                 // 开票状态(1开票中 2已开票)
 }
 
 func (m *ProjectInfo) TableName() string {

+ 16 - 0
model/gorm_model/project_task.go

@@ -54,6 +54,22 @@ type YoungeeTaskInfo struct {
 	SOperatorType          int       `gorm:"column:s_operator_type"`                      // 服务商操作人类型,1服务商主账号,2服务商子账号,3管理后台
 	OpenId                 string    `gorm:"column:open_id"`                              // 达人报名的快手唯一标识
 	SupportFee             float64   `gorm:"column:support_fee"`                          //提报价格
+	SprojectId             int       `gorm:"column:s_project_id"`                         //服务商种草任务ID
+	CurBreakAt             time.Time `gorm:"column:cur_break_at;type:datetime;comment:当前阶段截止时间" json:"cur_break_at"`
+	SketchMissingTime      time.Time `gorm:"column:sketch_missing_time;type:datetime;comment:未传初稿违约时间" json:"sketch_missing_time"`
+	SketchMissingStatus    int       `gorm:"column:sketch_missing_status;type:int(11);default:0;comment:未传初稿违约状态,0无违约,1有违约" json:"sketch_missing_status"`
+	LinkMissingTime        time.Time `gorm:"column:link_missing_time;type:datetime;comment:未发作品违约时间" json:"link_missing_time"`
+	LinkMissingStatus      int       `gorm:"column:link_missing_status;type:int(11);default:0;comment:未发作品违约状态,0无违约,1有违约" json:"link_missing_status"`
+	DataMissingTime        time.Time `gorm:"column:data_missing_time;type:datetime;comment:未传数据违约时间" json:"data_missing_time"`
+	DataMissingStatus      int       `gorm:"column:data_missing_status;type:int(11);default:0;comment:未传数据违约状态,0无违约,1有违约" json:"data_missing_status"`
+	TerminateOperatorType  int       `gorm:"column:terminate_operator_type;type:int(11);comment:终止合作操作人类型,1商家用户,2商家子账号,3管理后台" json:"terminate_operator_type"`
+	TerminateOperator      string    `gorm:"column:terminate_operator;type:varchar(255);comment:终止合作操作人ID" json:"terminate_operator"`
+	TerminateReason        string    `gorm:"column:terminate_reason;type:varchar(255);comment:终止理由" json:"terminate_reason"`
+	TerminateTime          time.Time `gorm:"column:terminate_time;type:datetime;comment:终止合作时间" json:"terminate_time"`
+	CancelOperatorType     int       `gorm:"column:cancel_operator_type;type:int(11);comment:解约操作人类型,1商家用户,2商家子账号,3管理后台" json:"cancel_operator_type"`
+	CancelOperator         string    `gorm:"column:cancel_operator;type:varchar(255);comment:解约操作人ID" json:"cancel_operator"`
+	CancelReason           string    `gorm:"column:cancel_reason;type:varchar(255);comment:解约原因" json:"cancel_reason"`
+	CancelTime             time.Time `gorm:"column:cancel_time;type:datetime;comment:解约时间" json:"cancel_time"`
 }
 
 func (m *YoungeeTaskInfo) TableName() string {

+ 4 - 3
model/gorm_model/sketch.go

@@ -3,12 +3,12 @@ package gorm_model
 // Code generated by sql2gorm. DO NOT EDIT.
 
 import (
-"time"
+	"time"
 )
 
 type YounggeeSketchInfo struct {
 	SketchID          int       `gorm:"column:sketch_id;primary_key;AUTO_INCREMENT"` // 初稿id
-	TaskID            string       `gorm:"column:task_id;NOT NULL"`                     // 任务id
+	TaskID            string    `gorm:"column:task_id;NOT NULL"`                     // 任务id
 	Title             string    `gorm:"column:title"`                                // 标题
 	Type              int       `gorm:"column:type"`                                 // 初稿形式,1为图片,2为视频
 	Content           string    `gorm:"column:content"`                              // 正文
@@ -23,9 +23,10 @@ type YounggeeSketchInfo struct {
 	AutoAgreeAt       time.Time `gorm:"column:auto_agree_at"`                        // 初稿自动审核时间
 	AutoLinkBreakAt   time.Time `gorm:"column:auto_link_break_at"`                   // 链接违约自动处理时间
 	AutoSketchBreakAt time.Time `gorm:"column:auto_sketch_break_at"`                 // 初稿违约自动处理时间
+	BOperator         string    `gorm:"column:b_operator"`                           //商家确定操作人ID
+	BOperatorType     int       `gorm:"column:b_operator_type"`                      //商家操作人类型,1商家用户,2商家子账号,3管理后台
 }
 
 func (m *YounggeeSketchInfo) TableName() string {
 	return "younggee_sketch_info"
 }
-

+ 2 - 0
model/http_model/PassproTaskCoopRequest.go

@@ -3,8 +3,10 @@ package http_model
 type PassproTaskCoopRequest struct {
 	ProjectId   string   `json:"project_id"`
 	TaskIds     []string `json:"task_ids"`
+	SProjectId  *int     `json:"s_project_id"`
 	OperatorId  string   `json:"operator_id"`
 	OperateType int      `json:"operate_type"`
+	IsSpecial   int      `json:"is_special"`
 }
 
 type PassproTaskCoopData struct {

+ 5 - 4
model/http_model/PreLinkList.go

@@ -3,10 +3,11 @@ package http_model
 import "time"
 
 type PreLinkListRequest struct {
-	PageSize   int    `json:"page_size"`
-	PageNum    int    `json:"page_num"`
-	ProjectId  string `json:"project_id"`  // 项目ID
-	LinkStatus string `json:"link_status"` // 链接状态,11待传链接
+	PageSize     int    `json:"page_size"`
+	PageNum      int    `json:"page_num"`
+	ProjectId    string `json:"project_id"`  // 项目ID
+	LinkStatus   string `json:"link_status"` // 链接状态,11待传链接
+	EnterpriseId string `json:"enterprise_id"`
 }
 
 type GetprelinkListData struct {

+ 5 - 3
model/http_model/data_accept.go

@@ -2,9 +2,11 @@ package http_model
 
 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"`   // 是否为专项项目
+	TaskIds     string `json:"task_id_list"` //任务id列表
+	ProjectId   string `json:"project_id"`   //项目id
+	IsSpecial   int    `json:"is_special"`   // 是否为专项项目
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
 }
 
 type AcceptDataData struct {

+ 4 - 1
model/http_model/data_opinion.go

@@ -1,8 +1,11 @@
 package http_model
 
 type DataOpinionRequest struct {
-	TaskID      string `json:"task_id"`      //任务-id
+	TaskID      string `json:"task_id"` //任务-id
+	ProjectId   string `json:"project_id"`
 	DataOpinion string `json:"Data_opinion"` //数据审核意见
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
 }
 
 type DataOpinionData struct {

+ 11 - 6
model/http_model/gettasklist.go

@@ -3,12 +3,13 @@ package http_model
 import "time"
 
 type GetTaskListRequest struct {
-	PageSize  int    `json:"page_size"`
-	PageNum   int    `json:"page_num"`
-	FeeFrom   *int   `json:"fee_from,omitempty"`
-	Type      *int   `json:"type,omitempty"` // 查询类型,1、2分别表示达人来源于公海(商家端),服务商
-	ProjectId string `json:"project_id"`
-	CoopType  int    `json:"coop_type"` //1未处理,2同意,3拒绝
+	PageSize     int    `json:"page_size"`
+	PageNum      int    `json:"page_num"`
+	FeeFrom      *int   `json:"fee_from,omitempty"`
+	Type         *int   `json:"type,omitempty"` // 查询类型,1、2分别表示达人来源于公海(商家端),服务商
+	ProjectId    string `json:"project_id"`
+	CoopType     int    `json:"coop_type"` //1未处理,2同意,3拒绝
+	EnterPriseId string `json:"enterprise_id"`
 }
 
 type GetTaskListData struct {
@@ -32,6 +33,10 @@ type TaskInfo struct {
 	Boperator          string    `json:"b_operator"`
 	SettleAmount       float64   `json:"settle_amount"`
 	CreateAt           time.Time `json:"create_time"`
+	ISCoop             int       `json:"is_coop"`
+	NickName           string    `json:"nick_name"`
+	HeadUrl            string    `json:"head_url"`
+	Sprojectid         int       `json:"sprojectid"`
 }
 
 func NewGetTaskListRequest() *GetTaskListRequest {

+ 5 - 1
model/http_model/link_accept.go

@@ -1,7 +1,11 @@
 package http_model
 
 type AcceptLinkRequest struct {
-	TaskIds string `json:"task_id_list"` //任务id列表
+	TaskIds     string `json:"task_id_list"` //任务id列表
+	ProjectId   string `json:"project_id"`
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
+	Isspecial   int    `json:"is_special"`
 }
 
 type AcceptLinkData struct {

+ 4 - 1
model/http_model/link_opinion.go

@@ -1,8 +1,11 @@
 package http_model
 
 type LinkOpinionRequest struct {
-	TaskID      string `json:"task_id"`      //任务-id
+	TaskID      string `json:"task_id"` //任务-id
+	ProjectId   string `json:"project_id"`
 	LinkOpinion string `json:"Link_opinion"` //链接审核意见
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
 }
 
 type LinkOpinionData struct {

+ 5 - 4
model/http_model/predatalist.go

@@ -3,10 +3,11 @@ package http_model
 import "time"
 
 type PreDataListRequest struct {
-	PageSize   int    `json:"page_size"`
-	PageNum    int    `json:"page_num"`
-	ProjectId  string `json:"project_id"`  // 项目ID
-	DataStatus string `json:"data_status"` // 数据状态,13待传数据
+	PageSize     int    `json:"page_size"`
+	PageNum      int    `json:"page_num"`
+	ProjectId    string `json:"project_id"`  // 项目ID
+	DataStatus   string `json:"data_status"` // 数据状态,13待传数据
+	EnterpriseId string `json:"enterprise_id"`
 }
 
 type GetPreDataListData struct {

+ 1 - 0
model/http_model/presketchlist.go

@@ -7,6 +7,7 @@ type PreSketchListRequest struct {
 	PageNum      int    `json:"page_num"`
 	ProjectId    string `json:"project_id"`    // 项目ID
 	ScriptStatus int    `json:"script_status"` // 稿件状态,10初稿待审
+	EnterpriseId string `json:"enterprise_id"`
 }
 
 type GetSketchTaskListData struct {

+ 4 - 1
model/http_model/reject_data.go

@@ -1,7 +1,10 @@
 package http_model
 
 type RejectDataRequest struct {
-	TaskIds string `json:"task_id_list"` //任务id列表
+	TaskIds     string `json:"task_id_list"` //任务id列表
+	ProjectId   string `json:"project_id"`
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
 }
 
 type RejectDataData struct {

+ 4 - 1
model/http_model/reject_link.go

@@ -1,7 +1,10 @@
 package http_model
 
 type RejectLinkRequest struct {
-	TaskIds string `json:"task_id_list"` //任务id列表
+	TaskIds     string `json:"task_id_list"` //任务id列表
+	ProjectId   string `json:"project_id"`
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
 }
 
 type RejectLinkData struct {

+ 5 - 1
model/http_model/sketch_accept.go

@@ -1,7 +1,11 @@
 package http_model
 
 type AcceptSketchRequest struct {
-	TaskIds string `json:"task_id_list"` //任务id列表
+	TaskIds     string `json:"task_id_list"` //任务id列表
+	ProjectId   string `json:"project_id"`
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
+	IsSpecial   int    `json:"is_special"`
 }
 
 type AcceptSketchData struct {

+ 4 - 1
model/http_model/sketch_opinion.go

@@ -1,8 +1,11 @@
 package http_model
 
 type SketchOpinionRequest struct {
-	TaskID        string `json:"task_id"`        //任务-id
+	TaskID        string `json:"task_id"` //任务-id
+	ProjectId     string `json:"project_id"`
 	SketchOpinion string `json:"sketch_opinion"` //初稿意见
+	OperatorId    string `json:"operator_id"`
+	OperateType   int    `json:"operate_type"`
 }
 
 type SketchOpinionData struct {

+ 4 - 1
model/http_model/sketch_reject.go

@@ -1,7 +1,10 @@
 package http_model
 
 type RejectSketchRequest struct {
-	TaskIds string `json:"task_id_list"` //任务id列表
+	TaskIds     string `json:"task_id_list"` //任务id列表
+	ProjectId   string `json:"project_id"`
+	OperatorId  string `json:"operator_id"`
+	OperateType int    `json:"operate_type"`
 }
 
 type RejectSketchData struct {

+ 8 - 4
model/http_model/taskdatalist.go

@@ -3,10 +3,11 @@ package http_model
 import "time"
 
 type TaskDatalistRequest struct {
-	PageSize   int    `json:"page_size"`
-	PageNum    int    `json:"page_num"`
-	ProjectId  string `json:"project_id"`  // 项目ID
-	DataStatus string `json:"data_status"` // 链接状态,14
+	PageSize     int    `json:"page_size"`
+	PageNum      int    `json:"page_num"`
+	ProjectId    string `json:"project_id"`  // 项目ID
+	DataStatus   string `json:"data_status"` // 链接状态,14
+	EnterpriseId string `json:"enterprise_id"`
 }
 
 type GetTaskDatalistData struct {
@@ -24,6 +25,9 @@ type TaskDatainfo struct {
 	LikeNumber    int       `json:"like_number"`
 	CommentNumber int       `json:"comment_number"`
 	CollectNumber int       `json:"collect_number"`
+	SettleAmount  float64   `json:"settle_amount"`
+	Breakrate     int       `json:"breakrate"`
+	Operator      string    `json:"operator"`
 }
 
 func NewTaskDatalistRequest() *TaskDatalistRequest {

+ 6 - 4
model/http_model/tasklinklist.go

@@ -3,10 +3,11 @@ package http_model
 import "time"
 
 type TaskLinklistRequest struct {
-	PageSize   int    `json:"page_size"`
-	PageNum    int    `json:"page_num"`
-	ProjectId  string `json:"project_id"`  // 项目ID
-	LinkStatus string `json:"link_status"` // 链接状态,12待审
+	PageSize     int    `json:"page_size"`
+	PageNum      int    `json:"page_num"`
+	ProjectId    string `json:"project_id"`  // 项目ID
+	LinkStatus   string `json:"link_status"` // 链接状态,12待审
+	EnterpriseId string `json:"enterprise_id"`
 }
 
 type GettasklinkListData struct {
@@ -21,6 +22,7 @@ type TaskLinkinfo struct {
 	LinkId   int       `json:"link_id"` //初稿ID
 	LinkUrl  string    `json:"link_url"`
 	PhotoUrl string    `json:"photo_url"`
+	Operator string    `json:"operator"`
 }
 
 func NewTaskLinklistRequest() *TaskLinklistRequest {

+ 1 - 0
model/http_model/tasksketchlist.go

@@ -18,6 +18,7 @@ type Tasksketchinfo struct {
 	Task     *TaskInfo `json:"task_info"`
 	SubmitAt time.Time `json:"submit_at"` // 提交时间
 	AgreeAt  time.Time `json:"agree_at"`
+	Operator string    `json:"operator"`
 	SketchId int       `json:"sketch_id"` //初稿ID
 }
 

+ 33 - 31
route/init.go

@@ -36,7 +36,7 @@ func InitRoute(r *gin.Engine) {
 	//	c.JSON(200, resp)
 	//	// 注意这里只是debug用的 接口要写成handler形式
 	//})
-	m := r.Group("/youngee/b")
+	m := r.Group("/youngee/m")
 	{
 		m.Use(middleware.LoginAuthMiddleware)
 		m.POST("/test", func(c *gin.Context) {
@@ -130,36 +130,8 @@ func InitRoute(r *gin.Engine) {
 		m.POST("/product/deletePhotoUrl", handler.WrapDeletePhotoUrlHandler)                     // 在数据库中删除图片url
 		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler)                            // 获取微信二维码
 
-		m.POST("/project/getAllProduct", handler.WrapGetAllProjectHandler)        // 查询项目广场项目列表
-		m.POST("/project/getTasklist", handler.WrapGetTaskListHandler)            //招募中选达人列表/查名单
-		m.POST("/project/task/coop/pass", handler.WrapPassproTaskCoopHandler)     // 同意任务合作
-		m.POST("/project/task/coop/refuse", handler.WrapRefuseproTaskCoopHandler) // 拒绝任务合作
-
-		m.POST("/project/projectdata", handler.WrapProjectDataHandler) //看数据
-		m.POST("/project/endtask", handler.WrapEndTaskHandler)         //暂时终止
-
-		m.POST("/project/presketchlist", handler.WrapPreSketchListHandler)     //初稿待传列表?
-		m.POST("/project/tasksketchlist", handler.WrapTasksketchlistHandler)   //初稿待审列表.审核通过
-		m.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)     // 初稿审核意见提交
-		m.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)       // 同意初稿
-		m.POST("/project/rejectsketch", handler.WrapRejectSketchHandler)       // 拒绝初稿
-		m.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler) // 查询脚本配图和视频demo
-		m.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)     // 获取初稿
-
-		m.POST("/project/prelinklist", handler.WrapPreLinkListHandler)   //待传链接列表
-		m.POST("/project/tasklinklist", handler.WrapTaskLinklistHandler) //链接待审列表,通过
-		m.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)   // 链接审核意见提交
-		m.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)     // 同意链接
-		m.POST("/project/rejectlink", handler.WrapRejectLinkHandler)     // 拒绝链接
-
-		m.POST("/project/predatalist", handler.WrapPreDataListHandler)   //待传数据列表
-		m.POST("/project/taskdatalist", handler.WrapTaskDatalistHandler) //数据待审列表?结算金额
-		m.POST("/project/dataopinion", handler.WrapDataOpinionHandler)   // 数据审核意见提交
-		m.POST("/project/acceptdata", handler.WrapAcceptDataHandler)     // 同意数据
-		m.POST("/project/rejectdata", handler.WrapRejectDataHandler)     // 拒绝数据
-
-		m.POST("/project/executedata", handler.WrapExecuteDataHandler) //看数据
-		m.POST("/project/data", handler.WrapDataHandler)
+		m.POST("/project/getAllProduct", handler.WrapGetAllProjectHandler) // 查询项目广场项目列表
+
 	}
 
 	// 选品广场相关接口
@@ -211,6 +183,36 @@ func InitRoute(r *gin.Engine) {
 		task.POST("/project/task/list", controller.TaskController{}.ProjectTaskList)         // 公开种草任务列表
 		task.POST("/project/del", controller.TaskController{}.ProjectDel)                    // 删除种草任务
 
+		task.POST("/project/getTasklist", handler.WrapGetTaskListHandler)            //招募中选达人列表/查名单
+		task.POST("/project/task/coop/pass", handler.WrapPassproTaskCoopHandler)     // 同意任务合作
+		task.POST("/project/task/coop/refuse", handler.WrapRefuseproTaskCoopHandler) // 拒绝任务合作
+
+		task.POST("/project/projectdata", handler.WrapProjectDataHandler) //看数据
+		task.POST("/project/endtask", handler.WrapEndTaskHandler)         //暂时终止
+
+		task.POST("/project/presketchlist", handler.WrapPreSketchListHandler)     //初稿待传列表
+		task.POST("/project/tasksketchlist", handler.WrapTasksketchlistHandler)   //初稿待审列表.审核通过
+		task.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)     // 初稿审核意见提交
+		task.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)       // 同意初稿
+		task.POST("/project/rejectsketch", handler.WrapRejectSketchHandler)       // 拒绝初稿
+		task.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler) // 查询脚本配图和视频demo
+		task.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)     // 获取初稿
+
+		task.POST("/project/prelinklist", handler.WrapPreLinkListHandler)   //待传链接列表
+		task.POST("/project/tasklinklist", handler.WrapTaskLinklistHandler) //链接待审列表,通过
+		task.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)   // 链接审核意见提交
+		task.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)     // 同意链接
+		task.POST("/project/rejectlink", handler.WrapRejectLinkHandler)     // 拒绝链接
+
+		task.POST("/project/predatalist", handler.WrapPreDataListHandler)   //待传数据列表
+		task.POST("/project/taskdatalist", handler.WrapTaskDatalistHandler) //数据待审列表
+		task.POST("/project/dataopinion", handler.WrapDataOpinionHandler)   // 数据审核意见提交
+		task.POST("/project/acceptdata", handler.WrapAcceptDataHandler)     // 同意数据
+		task.POST("/project/rejectdata", handler.WrapRejectDataHandler)     // 拒绝数据
+
+		task.POST("/project/executedata", handler.WrapExecuteDataHandler) //看数据
+		task.POST("/project/data", handler.WrapDataHandler)
+
 		task.POST("/draft/selection/list", controller.TaskController{}.GetSelectionDraftList) // 草稿箱——电商带货列表
 		task.POST("/draft/project/list", controller.TaskController{}.GetProjectDraftList)     // 草稿箱——品牌种草列表
 

+ 1 - 1
service/Task.go

@@ -22,7 +22,7 @@ func (*task) GetList(ctx context.Context, request http_model.GetTaskListRequest)
 }
 
 func (*task) PassCoop(ctx context.Context, request http_model.PassproTaskCoopRequest) (*http_model.PassSecTaskCoopData, error) {
-	_, err := db.PassProTaskCoop(ctx, request.ProjectId, request.TaskIds, request.OperatorId, request.OperateType)
+	_, err := db.PassProTaskCoop(ctx, request.ProjectId, request.TaskIds, request.OperatorId, request.OperateType, request.IsSpecial, request)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[sectask_service service] call PassCoop error,err:%+v", err)
 		return nil, err

+ 3 - 3
service/data.go

@@ -22,7 +22,7 @@ func (*data) DataOpinion(ctx context.Context, request http_model.DataOpinionRequ
 		TaskID:        request.TaskID,
 		ReviseOpinion: request.DataOpinion,
 	}
-	err := db.DataOpinion(ctx, Data.TaskID, Data.ReviseOpinion)
+	err := db.DataOpinion(ctx, Data.TaskID, Data.ReviseOpinion, request.OperatorId, request.OperateType, request.ProjectId)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
 		return nil, err
@@ -56,7 +56,7 @@ func (*data) AcceptData(ctx context.Context, request http_model.AcceptDataReques
 
 	// 1. 更新YounggeeDataInfo表,通过数据
 	fmt.Printf("acc request %+v", TaskIDList)
-	err := db.AcceptData(ctx, TaskIDList)
+	err := db.AcceptData(ctx, TaskIDList, request.OperatorId, request.OperateType)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Data service] call AcceptData error,err:%+v", err)
 		return nil, err
@@ -143,7 +143,7 @@ func (*data) RejectData(ctx context.Context, request http_model.RejectDataReques
 		TaskIDList = append(TaskIDList, taskId)
 	}
 	fmt.Printf("acc request %+v", TaskIDList)
-	err := db.RejectData(ctx, TaskIDList)
+	err := db.RejectData(ctx, TaskIDList, request.OperatorId, request.OperateType, request.ProjectId)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link service] call CreateLink error,err:%+v", err)
 		return nil, err

+ 3 - 3
service/link.go

@@ -22,7 +22,7 @@ func (*link) LinkOpinion(ctx context.Context, request http_model.LinkOpinionRequ
 		TaskID:        request.TaskID,
 		ReviseOpinion: request.LinkOpinion,
 	}
-	err := db.LinkOpinion(ctx, Link.TaskID, Link.ReviseOpinion)
+	err := db.LinkOpinion(ctx, Link.TaskID, Link.ReviseOpinion, request.OperatorId, request.OperateType, request.ProjectId)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link service] call CreateLink error,err:%+v", err)
 		return nil, err
@@ -54,7 +54,7 @@ func (*link) AcceptLink(ctx context.Context, request http_model.AcceptLinkReques
 		TaskIDList = append(TaskIDList, taskId)
 	}
 	fmt.Printf("acc request %+v", TaskIDList)
-	err := db.AcceptLink(ctx, TaskIDList)
+	err := db.AcceptLink(ctx, TaskIDList, request.OperatorId, request.OperateType, request.ProjectId, request.Isspecial)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link service] call CreateLink error,err:%+v", err)
 		return nil, err
@@ -87,7 +87,7 @@ func (*link) RejectLink(ctx context.Context, request http_model.RejectLinkReques
 		TaskIDList = append(TaskIDList, taskId)
 	}
 	fmt.Printf("acc request %+v", TaskIDList)
-	err := db.RejectLink(ctx, TaskIDList)
+	err := db.RejectLink(ctx, TaskIDList, request.OperatorId, request.OperateType, request.ProjectId)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Link service] call CreateLink error,err:%+v", err)
 		return nil, err

+ 3 - 3
service/sketch.go

@@ -24,7 +24,7 @@ func (*sketch) SketchOption(ctx context.Context, request http_model.SketchOpinio
 		TaskID:        request.TaskID,
 		ReviseOpinion: request.SketchOpinion,
 	}
-	err := db.SketchOption(ctx, Sketch.TaskID, Sketch.ReviseOpinion)
+	err := db.SketchOption(ctx, Sketch.TaskID, Sketch.ReviseOpinion, request.OperatorId, request.OperateType, request.ProjectId)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch service] call CreateSketch error,err:%+v", err)
 		return nil, err
@@ -57,7 +57,7 @@ func (*sketch) AcceptSketch(ctx context.Context, request http_model.AcceptSketch
 		TaskIDList = append(TaskIDList, taskId)
 	}
 	fmt.Printf("acc request %+v", TaskIDList)
-	err := db.AcceptSketch(ctx, TaskIDList)
+	err := db.AcceptSketch(ctx, TaskIDList, request.OperatorId, request.OperateType, request.ProjectId, request.IsSpecial)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch service] call CreateSketch error,err:%+v", err)
 		return nil, err
@@ -141,7 +141,7 @@ func (*sketch) RejectSketch(ctx context.Context, request http_model.RejectSketch
 		TaskIDList = append(TaskIDList, taskId)
 	}
 	fmt.Printf("acc request %+v", TaskIDList)
-	err := db.RejectSketch(ctx, TaskIDList)
+	err := db.RejectSketch(ctx, TaskIDList, request.OperatorId, request.OperateType, request.ProjectId)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[Sketch service] call CreateSketch error,err:%+v", err)
 		return nil, err