Selaa lähdekoodia

结算界面两个接口完成

“liushuai” 2 vuotta sitten
vanhempi
commit
492b8aa756
69 muutettua tiedostoa jossa 6823 lisäystä ja 8 poistoa
  1. 0 0
      .history/db/Settle_20230409143823.go
  2. 321 0
      .history/db/Settle_20230409145238.go
  3. 146 0
      .history/db/Settle_20230409154616.go
  4. 146 0
      .history/db/Settle_20230409154618.go
  5. 145 0
      .history/db/Settle_20230409154646.go
  6. 145 0
      .history/db/Settle_20230409154651.go
  7. 145 0
      .history/db/Settle_20230409154652.go
  8. 145 0
      .history/db/Settle_20230409160253.go
  9. 378 0
      .history/db/number_info_20230408160507.go
  10. 401 0
      .history/db/number_info_20230408223420.go
  11. 401 0
      .history/db/number_info_20230408223440.go
  12. 73 0
      .history/handler/SpecialTaskDataList_20230408160507.go
  13. 74 0
      .history/handler/SpecialTaskDataList_20230409142026.go
  14. 74 0
      .history/handler/SpecialTaskDataList_20230409142031.go
  15. 74 0
      .history/handler/SpecialTaskDataList_20230409142144.go
  16. 74 0
      .history/handler/SpecialTaskDataList_20230409142154.go
  17. 74 0
      .history/handler/SpecialTaskDataList_20230409142300.go
  18. 0 0
      .history/handler/getSpecialSettleNumber_20230408221028.go
  19. 59 0
      .history/handler/getSpecialSettleNumber_20230408221059.go
  20. 59 0
      .history/handler/getSpecialSettleNumber_20230408221432.go
  21. 59 0
      .history/handler/getSpecialSettleNumber_20230408221554.go
  22. 0 0
      .history/handler/specialTaskSettleList_20230409141710.go
  23. 74 0
      .history/handler/specialTaskSettleList_20230409153734.go
  24. 15 0
      .history/model/common_model/talent_condition_20230408160507.go
  25. 16 0
      .history/model/common_model/talent_condition_20230409150405.go
  26. 0 0
      .history/model/http_model/SpecialTaskSettleList_20230409142613.go
  27. 76 0
      .history/model/http_model/SpecialTaskSettleList_20230409142759.go
  28. 76 0
      .history/model/http_model/SpecialTaskSettleList_20230409142857.go
  29. 76 0
      .history/model/http_model/SpecialTaskSettleList_20230409142918.go
  30. 76 0
      .history/model/http_model/SpecialTaskSettleList_20230409142920.go
  31. 76 0
      .history/model/http_model/SpecialTaskSettleList_20230409150325.go
  32. 76 0
      .history/model/http_model/SpecialTaskSettleList_20230409150554.go
  33. 0 0
      .history/model/http_model/getSpecialSettleNumber_20230408221230.go
  34. 21 0
      .history/model/http_model/getSpecialSettleNumber_20230408221426.go
  35. 21 0
      .history/model/http_model/getSpecialSettleNumber_20230408221548.go
  36. 0 0
      .history/pack/special_task_settle_list_20230409153856.go
  37. 72 0
      .history/pack/special_task_settle_list_20230409154145.go
  38. 72 0
      .history/pack/special_task_settle_list_20230409154146.go
  39. 0 0
      .history/pack/special_task_settle_list_condition_20230409150222.go
  40. 16 0
      .history/pack/special_task_settle_list_condition_20230409150439.go
  41. 180 0
      .history/route/init_20230408160508.go
  42. 181 0
      .history/route/init_20230409135907.go
  43. 183 0
      .history/route/init_20230409140943.go
  44. 183 0
      .history/route/init_20230409141000.go
  45. 183 0
      .history/route/init_20230409141016.go
  46. 183 0
      .history/route/init_20230409153621.go
  47. 88 0
      .history/service/SpecialTask_20230408160508.go
  48. 101 0
      .history/service/SpecialTask_20230409143447.go
  49. 101 0
      .history/service/SpecialTask_20230409155535.go
  50. 269 0
      .history/service/auto_task_20230408211730.go
  51. 269 0
      .history/service/auto_task_20230408215853.go
  52. 136 0
      .history/service/data_20230408160508.go
  53. 136 0
      .history/service/data_20230408215043.go
  54. 169 0
      .history/service/number_info_20230408160508.go
  55. 181 0
      .history/service/number_info_20230408223501.go
  56. 145 0
      db/Settle.go
  57. 23 0
      db/number_info.go
  58. 2 1
      handler/SpecialTaskDataList.go
  59. 59 0
      handler/getSpecialSettleNumber.go
  60. 74 0
      handler/specialTaskSettleList.go
  61. 1 0
      model/common_model/talent_condition.go
  62. 76 0
      model/http_model/SpecialTaskSettleList.go
  63. 21 0
      model/http_model/getSpecialSettleNumber.go
  64. 72 0
      pack/special_task_settle_list.go
  65. 16 0
      pack/special_task_settle_list_condition.go
  66. 4 1
      route/init.go
  67. 16 3
      service/SpecialTask.go
  68. 2 2
      service/auto_task.go
  69. 13 1
      service/number_info.go

+ 0 - 0
.history/db/Settle_20230409143823.go


+ 321 - 0
.history/db/Settle_20230409145238.go

@@ -0,0 +1,321 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+	"time"
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetTaskSettleList 查询结算的task list
+func GetTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.TaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "data_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 14")
+			} else {
+				db = db.Where("task_stage > 14 and task_stage <> 16")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" || tag == "strategy_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	db2 := GetReadDB(ctx)
+	// db2 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit = 1", taskIds)
+	fmt.Printf("conditions %+v", conditions)
+	if conditions.DataStatus == int64(0) {
+		db2 = db2.Where("is_review = 0")
+	} else {
+		db2 = db2.Where("is_ok = 1")
+	}
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.TaskSettle
+	var TaskSettles []*http_model.TaskSettleInfo
+	var newTaskSettles []*http_model.TaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.TaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.TaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}
+
+// DataOpinion 提交意见
+func DataOpinion(ctx context.Context, TaskID string, ReviseOpinion 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
+	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
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data db] Update YoungeeTaskInfo error,err:%+v", err)
+		return err
+	}
+	err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{TaskStage: 13}).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data db] Update YoungeeTaskInfo error,err:%+v", err)
+		return err
+	}
+	return nil
+}
+
+// AcceptData 同意数据-结案
+func AcceptData(ctx context.Context, TaskIDs []string) 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
+	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: 5, TaskStage: 15, CompleteStatus: 2}).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data db] Update YoungeeTaskInfo error,err:%+v", err)
+		return err
+	}
+	return nil
+}
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "data_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 14")
+			} else {
+				db = db.Where("task_stage > 14 and task_stage <> 16")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit = 1", taskIds)
+	if conditions.DataStatus == int64(0) {
+		db2 = db2.Where("is_review = 0")
+	} else {
+		db2 = db2.Where("is_ok = 1")
+	}
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 146 - 0
.history/db/Settle_20230409154616.go

@@ -0,0 +1,146 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+
+	// "time"
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "settle_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 15 and settle_status = 1")
+			} else {
+				db = db.Where("task_stage = 15 and settle_status = 2")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	// 查询数据
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 146 - 0
.history/db/Settle_20230409154618.go

@@ -0,0 +1,146 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+
+	// "time"
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "settle_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 15 and settle_status = 1")
+			} else {
+				db = db.Where("task_stage = 15 and settle_status = 2")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	// 查询数据
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 145 - 0
.history/db/Settle_20230409154646.go

@@ -0,0 +1,145 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "settle_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 15 and settle_status = 1")
+			} else {
+				db = db.Where("task_stage = 15 and settle_status = 2")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	// 查询数据
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 145 - 0
.history/db/Settle_20230409154651.go

@@ -0,0 +1,145 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "settle_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 15 and settle_status = 1")
+			} else {
+				db = db.Where("task_stage = 15 and settle_status = 2")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	// 查询数据
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 145 - 0
.history/db/Settle_20230409154652.go

@@ -0,0 +1,145 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "settle_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 15 and settle_status = 1")
+			} else {
+				db = db.Where("task_stage = 15 and settle_status = 2")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	// 查询数据
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 145 - 0
.history/db/Settle_20230409160253.go

@@ -0,0 +1,145 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "settle_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 15 and settle_status = 1")
+			} else {
+				db = db.Where("task_stage = 15 and settle_status = 2")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	// 查询数据
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 378 - 0
.history/db/number_info_20230408160507.go

@@ -0,0 +1,378 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"strconv"
+	"time"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+
+	"github.com/sirupsen/logrus"
+)
+
+func GetLogisticsNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetLogisticsNumberInfoData, error) {
+	var LogisticsNumberInfoDataList http_model.GetLogisticsNumberInfoData
+	for _, strategyId := range strategyIds {
+		var LogisticsNumberInfoData http_model.LogisticsNumberInfo
+		LogisticsNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("logistics_status = 1").Count(&LogisticsNumberInfoData.UndeliveredNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("logistics_status = 2").Count(&LogisticsNumberInfoData.DeliveredNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("logistics_status = 3").Count(&LogisticsNumberInfoData.SignedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&LogisticsNumberInfoData.DeliverNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		LogisticsNumberInfoDataList.LogisticsNumberInfoList = append(LogisticsNumberInfoDataList.LogisticsNumberInfoList, &LogisticsNumberInfoData)
+	}
+	return &LogisticsNumberInfoDataList, nil
+}
+
+func GetReviewNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetReviewNumberInfoData, error) {
+	var ReviewNumberInfoDataList http_model.GetReviewNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var ReviewNumberInfoData http_model.ReviewNumberInfo
+		ReviewNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 8").Count(&ReviewNumberInfoData.ScriptUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 8").Count(&ReviewNumberInfoData.ScriptPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 10").Count(&ReviewNumberInfoData.SketchUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 10").Count(&ReviewNumberInfoData.SketchPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&ReviewNumberInfoData.ReviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		ReviewNumberInfoDataList.ReviewNumberInfoList = append(ReviewNumberInfoDataList.ReviewNumberInfoList, &ReviewNumberInfoData)
+	}
+	return &ReviewNumberInfoDataList, nil
+}
+
+func GetLinkNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetLinkNumberInfoData, error) {
+	var LinkNumberInfoDataList http_model.GetLinkNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var LinkNumberInfoData http_model.LinkNumberInfo
+		LinkNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 12").Count(&LinkNumberInfoData.LinkUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 12").Count(&LinkNumberInfoData.LinkPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&LinkNumberInfoData.LinkNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		LinkNumberInfoDataList.LinkNumberInfoList = append(LinkNumberInfoDataList.LinkNumberInfoList, &LinkNumberInfoData)
+	}
+	return &LinkNumberInfoDataList, nil
+}
+
+func GetDataNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetDataNumberInfoData, error) {
+	var DataNumberInfoDataList http_model.GetDataNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var DataNumberInfoData http_model.DataNumberInfo
+		DataNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 14").Count(&DataNumberInfoData.DataUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 15").Count(&DataNumberInfoData.DataPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2 and task_stage < 16", projectId, strategyId)
+		err = db.Count(&DataNumberInfoData.DataNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		DataNumberInfoDataList.DataNumberInfoList = append(DataNumberInfoDataList.DataNumberInfoList, &DataNumberInfoData)
+	}
+	return &DataNumberInfoDataList, nil
+}
+
+func GetDefaultNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetDefaultNumberInfoData, error) {
+	var DefaultNumberInfoDataList http_model.GetDefaultNumberInfoData
+	for _, strategyId := range strategyIds {
+		var DefaultNumberInfoData http_model.DefaultNumberInfo
+		DefaultNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("complete_status <> 4").Count(&DefaultNumberInfoData.ShouldFinishNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 1").Count(&DefaultNumberInfoData.UnuploadScriptNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 3").Count(&DefaultNumberInfoData.UnuploadSketchNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 5").Count(&DefaultNumberInfoData.UnuploadLinkNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 7").Count(&DefaultNumberInfoData.UnuploadDataNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("complete_status = 4").Count(&DefaultNumberInfoData.TerminateNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		DefaultNumberInfoDataList.DefaultNumberInfoList = append(DefaultNumberInfoDataList.DefaultNumberInfoList, &DefaultNumberInfoData)
+	}
+	return &DefaultNumberInfoDataList, nil
+}
+
+func GetFinishNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetFinishNumberInfoData, error) {
+	var FinishNumberInfoDataList http_model.GetFinishNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var FinishNumberInfoData http_model.FinishNumberInfo
+		FinishNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Count(&FinishNumberInfoData.ShouldFinishNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 15").Count(&FinishNumberInfoData.FinishedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		FinishNumberInfoDataList.FinishNumberInfoList = append(FinishNumberInfoDataList.FinishNumberInfoList, &FinishNumberInfoData)
+	}
+	return &FinishNumberInfoDataList, nil
+}
+
+func GetLogisticsNum() [][]string {
+	var logisticNumsInfos [][]string
+	db := GetReadDB(context.Background())
+	var logisticInfos []*gorm_model.YoungeeTaskLogistics
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Where("things_type = 1 AND status = 0").Find(&logisticInfos)
+	for _, logisticInfo := range logisticInfos {
+		var logisticNumsInfo []string
+		logisticNumsInfo = append(logisticNumsInfo, logisticInfo.CompanyName, logisticInfo.LogisticsNumber, strconv.FormatInt(logisticInfo.LogisticsID, 10))
+		logisticNumsInfos = append(logisticNumsInfos, logisticNumsInfo)
+	}
+	fmt.Println("logisticNumsInfos:", logisticNumsInfos)
+	return logisticNumsInfos
+}
+
+func SignLogistic(logisticId int64) string {
+	db := GetReadDB(context.Background())
+	var taskId, projectId string
+	var contentType int64
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Select("task_id").Where("logistics_id = ?", logisticId).Find(&taskId)
+	db.Model(gorm_model.YoungeeTaskInfo{}).Select("project_id").Where("task_id = ?", taskId).Find(&projectId)
+	db.Model(gorm_model.ProjectInfo{}).Select("content_type").Where("project_id = ?", projectId).Find(&contentType)
+	t := time.Now()
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Where("logistics_id = ?", logisticId).Updates(&gorm_model.YoungeeTaskLogistics{SignedTime: &t, Status: 1})
+	if contentType == 1 {
+		db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 9})
+		fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传初稿\n", taskId)
+	} else {
+		db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 7})
+		fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传脚本\n", taskId)
+	}
+	return taskId
+}
+
+func GetSpecialInviteNumber(ctx context.Context, projectId string) (*http_model.GetSpecialInviteNumberData, error) {
+	var specialInviteNumberData http_model.GetSpecialInviteNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_stage != 3", projectId)
+	err := db.Where("task_status <> 2").Count(&specialInviteNumberData.UnpassNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ?", projectId)
+	err = db.Where("task_status = 2").Count(&specialInviteNumberData.PassNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialInviteNumberData, nil
+}
+
+func GetSpecialLogisticNumber(ctx context.Context, projectId string) (*http_model.GetSpecialLogisticNumberData, error) {
+	var specialLogisticNumberData http_model.GetSpecialLogisticNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_stage != 3", projectId)
+	err := db.Where("task_status = 2").Count(&specialLogisticNumberData.DeliverNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 3").Count(&specialLogisticNumberData.SignedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 1").Count(&specialLogisticNumberData.UndeliveredNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 2").Count(&specialLogisticNumberData.DeliveredNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialLogisticNumberData, nil
+}
+
+func GetSpecialReviewNumber(ctx context.Context, projectId string) (*http_model.GetSpecialReviewNumberData, error) {
+	var specialReviewNumber http_model.GetSpecialReviewNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialReviewNumber.ReviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 8").Count(&specialReviewNumber.ScriptUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 8").Count(&specialReviewNumber.ScriptPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 10").Count(&specialReviewNumber.SketchUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 10").Count(&specialReviewNumber.SketchPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialReviewNumber, nil
+}
+
+func GetSpecialLinkNumber(ctx context.Context, projectId string) (*http_model.GetSpecialLinkNumberData, error) {
+	var specialLinkNumber http_model.GetSpecialLinkNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialLinkNumber.LinkNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 12").Count(&specialLinkNumber.LinkUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 12").Count(&specialLinkNumber.LinkPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialLinkNumber, nil
+}
+
+func GetSpecialDataNumber(ctx context.Context, projectId string) (*http_model.GetSpecialDataNumberData, error) {
+	var specialDataNumber http_model.GetSpecialDataNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialDataNumber.DataNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 14").Count(&specialDataNumber.DataUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 14").Count(&specialDataNumber.DataPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialDataNumber, nil
+}

+ 401 - 0
.history/db/number_info_20230408223420.go

@@ -0,0 +1,401 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"strconv"
+	"time"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+
+	"github.com/sirupsen/logrus"
+)
+
+func GetLogisticsNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetLogisticsNumberInfoData, error) {
+	var LogisticsNumberInfoDataList http_model.GetLogisticsNumberInfoData
+	for _, strategyId := range strategyIds {
+		var LogisticsNumberInfoData http_model.LogisticsNumberInfo
+		LogisticsNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("logistics_status = 1").Count(&LogisticsNumberInfoData.UndeliveredNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("logistics_status = 2").Count(&LogisticsNumberInfoData.DeliveredNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("logistics_status = 3").Count(&LogisticsNumberInfoData.SignedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&LogisticsNumberInfoData.DeliverNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		LogisticsNumberInfoDataList.LogisticsNumberInfoList = append(LogisticsNumberInfoDataList.LogisticsNumberInfoList, &LogisticsNumberInfoData)
+	}
+	return &LogisticsNumberInfoDataList, nil
+}
+
+func GetReviewNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetReviewNumberInfoData, error) {
+	var ReviewNumberInfoDataList http_model.GetReviewNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var ReviewNumberInfoData http_model.ReviewNumberInfo
+		ReviewNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 8").Count(&ReviewNumberInfoData.ScriptUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 8").Count(&ReviewNumberInfoData.ScriptPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 10").Count(&ReviewNumberInfoData.SketchUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 10").Count(&ReviewNumberInfoData.SketchPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&ReviewNumberInfoData.ReviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		ReviewNumberInfoDataList.ReviewNumberInfoList = append(ReviewNumberInfoDataList.ReviewNumberInfoList, &ReviewNumberInfoData)
+	}
+	return &ReviewNumberInfoDataList, nil
+}
+
+func GetLinkNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetLinkNumberInfoData, error) {
+	var LinkNumberInfoDataList http_model.GetLinkNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var LinkNumberInfoData http_model.LinkNumberInfo
+		LinkNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 12").Count(&LinkNumberInfoData.LinkUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 12").Count(&LinkNumberInfoData.LinkPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&LinkNumberInfoData.LinkNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		LinkNumberInfoDataList.LinkNumberInfoList = append(LinkNumberInfoDataList.LinkNumberInfoList, &LinkNumberInfoData)
+	}
+	return &LinkNumberInfoDataList, nil
+}
+
+func GetDataNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetDataNumberInfoData, error) {
+	var DataNumberInfoDataList http_model.GetDataNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var DataNumberInfoData http_model.DataNumberInfo
+		DataNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 14").Count(&DataNumberInfoData.DataUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 15").Count(&DataNumberInfoData.DataPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2 and task_stage < 16", projectId, strategyId)
+		err = db.Count(&DataNumberInfoData.DataNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		DataNumberInfoDataList.DataNumberInfoList = append(DataNumberInfoDataList.DataNumberInfoList, &DataNumberInfoData)
+	}
+	return &DataNumberInfoDataList, nil
+}
+
+func GetDefaultNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetDefaultNumberInfoData, error) {
+	var DefaultNumberInfoDataList http_model.GetDefaultNumberInfoData
+	for _, strategyId := range strategyIds {
+		var DefaultNumberInfoData http_model.DefaultNumberInfo
+		DefaultNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("complete_status <> 4").Count(&DefaultNumberInfoData.ShouldFinishNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 1").Count(&DefaultNumberInfoData.UnuploadScriptNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 3").Count(&DefaultNumberInfoData.UnuploadSketchNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 5").Count(&DefaultNumberInfoData.UnuploadLinkNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 7").Count(&DefaultNumberInfoData.UnuploadDataNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("complete_status = 4").Count(&DefaultNumberInfoData.TerminateNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		DefaultNumberInfoDataList.DefaultNumberInfoList = append(DefaultNumberInfoDataList.DefaultNumberInfoList, &DefaultNumberInfoData)
+	}
+	return &DefaultNumberInfoDataList, nil
+}
+
+func GetFinishNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetFinishNumberInfoData, error) {
+	var FinishNumberInfoDataList http_model.GetFinishNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var FinishNumberInfoData http_model.FinishNumberInfo
+		FinishNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Count(&FinishNumberInfoData.ShouldFinishNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 15").Count(&FinishNumberInfoData.FinishedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		FinishNumberInfoDataList.FinishNumberInfoList = append(FinishNumberInfoDataList.FinishNumberInfoList, &FinishNumberInfoData)
+	}
+	return &FinishNumberInfoDataList, nil
+}
+
+func GetLogisticsNum() [][]string {
+	var logisticNumsInfos [][]string
+	db := GetReadDB(context.Background())
+	var logisticInfos []*gorm_model.YoungeeTaskLogistics
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Where("things_type = 1 AND status = 0").Find(&logisticInfos)
+	for _, logisticInfo := range logisticInfos {
+		var logisticNumsInfo []string
+		logisticNumsInfo = append(logisticNumsInfo, logisticInfo.CompanyName, logisticInfo.LogisticsNumber, strconv.FormatInt(logisticInfo.LogisticsID, 10))
+		logisticNumsInfos = append(logisticNumsInfos, logisticNumsInfo)
+	}
+	fmt.Println("logisticNumsInfos:", logisticNumsInfos)
+	return logisticNumsInfos
+}
+
+func SignLogistic(logisticId int64) string {
+	db := GetReadDB(context.Background())
+	var taskId, projectId string
+	var contentType int64
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Select("task_id").Where("logistics_id = ?", logisticId).Find(&taskId)
+	db.Model(gorm_model.YoungeeTaskInfo{}).Select("project_id").Where("task_id = ?", taskId).Find(&projectId)
+	db.Model(gorm_model.ProjectInfo{}).Select("content_type").Where("project_id = ?", projectId).Find(&contentType)
+	t := time.Now()
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Where("logistics_id = ?", logisticId).Updates(&gorm_model.YoungeeTaskLogistics{SignedTime: &t, Status: 1})
+	if contentType == 1 {
+		db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 9})
+		fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传初稿\n", taskId)
+	} else {
+		db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 7})
+		fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传脚本\n", taskId)
+	}
+	return taskId
+}
+
+func GetSpecialInviteNumber(ctx context.Context, projectId string) (*http_model.GetSpecialInviteNumberData, error) {
+	var specialInviteNumberData http_model.GetSpecialInviteNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_stage != 3", projectId)
+	err := db.Where("task_status <> 2").Count(&specialInviteNumberData.UnpassNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ?", projectId)
+	err = db.Where("task_status = 2").Count(&specialInviteNumberData.PassNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialInviteNumberData, nil
+}
+
+func GetSpecialLogisticNumber(ctx context.Context, projectId string) (*http_model.GetSpecialLogisticNumberData, error) {
+	var specialLogisticNumberData http_model.GetSpecialLogisticNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_stage != 3", projectId)
+	err := db.Where("task_status = 2").Count(&specialLogisticNumberData.DeliverNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 3").Count(&specialLogisticNumberData.SignedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 1").Count(&specialLogisticNumberData.UndeliveredNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 2").Count(&specialLogisticNumberData.DeliveredNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialLogisticNumberData, nil
+}
+
+func GetSpecialReviewNumber(ctx context.Context, projectId string) (*http_model.GetSpecialReviewNumberData, error) {
+	var specialReviewNumber http_model.GetSpecialReviewNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialReviewNumber.ReviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 8").Count(&specialReviewNumber.ScriptUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 8").Count(&specialReviewNumber.ScriptPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 10").Count(&specialReviewNumber.SketchUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 10").Count(&specialReviewNumber.SketchPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialReviewNumber, nil
+}
+
+func GetSpecialLinkNumber(ctx context.Context, projectId string) (*http_model.GetSpecialLinkNumberData, error) {
+	var specialLinkNumber http_model.GetSpecialLinkNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialLinkNumber.LinkNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 12").Count(&specialLinkNumber.LinkUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 12").Count(&specialLinkNumber.LinkPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialLinkNumber, nil
+}
+
+func GetSpecialDataNumber(ctx context.Context, projectId string) (*http_model.GetSpecialDataNumberData, error) {
+	var specialDataNumber http_model.GetSpecialDataNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialDataNumber.DataNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 14").Count(&specialDataNumber.DataUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 14").Count(&specialDataNumber.DataPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialDataNumber, nil
+}
+
+func GetSpecialSettleNumber(ctx context.Context, projectId string) (*http_model.GetSpecialSettleNumberData, error) {
+	var specialSettleNumber http_model.GetSpecialSettleNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15", projectId)
+	err := db.Where("").Count(&specialSettleNumber.SettleNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15 and settle_status = 1", projectId)
+	err = db.Where("task_stage = 14").Count(&specialSettleNumber.UnsettleNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15 and settle_status = 2", projectId)
+	err = db.Where("task_stage > 14").Count(&specialSettleNumber.SettledNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialSettleNumber, nil
+}

+ 401 - 0
.history/db/number_info_20230408223440.go

@@ -0,0 +1,401 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"strconv"
+	"time"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+
+	"github.com/sirupsen/logrus"
+)
+
+func GetLogisticsNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetLogisticsNumberInfoData, error) {
+	var LogisticsNumberInfoDataList http_model.GetLogisticsNumberInfoData
+	for _, strategyId := range strategyIds {
+		var LogisticsNumberInfoData http_model.LogisticsNumberInfo
+		LogisticsNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("logistics_status = 1").Count(&LogisticsNumberInfoData.UndeliveredNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("logistics_status = 2").Count(&LogisticsNumberInfoData.DeliveredNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("logistics_status = 3").Count(&LogisticsNumberInfoData.SignedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&LogisticsNumberInfoData.DeliverNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		LogisticsNumberInfoDataList.LogisticsNumberInfoList = append(LogisticsNumberInfoDataList.LogisticsNumberInfoList, &LogisticsNumberInfoData)
+	}
+	return &LogisticsNumberInfoDataList, nil
+}
+
+func GetReviewNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetReviewNumberInfoData, error) {
+	var ReviewNumberInfoDataList http_model.GetReviewNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var ReviewNumberInfoData http_model.ReviewNumberInfo
+		ReviewNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 8").Count(&ReviewNumberInfoData.ScriptUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 8").Count(&ReviewNumberInfoData.ScriptPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 10").Count(&ReviewNumberInfoData.SketchUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 10").Count(&ReviewNumberInfoData.SketchPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&ReviewNumberInfoData.ReviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		ReviewNumberInfoDataList.ReviewNumberInfoList = append(ReviewNumberInfoDataList.ReviewNumberInfoList, &ReviewNumberInfoData)
+	}
+	return &ReviewNumberInfoDataList, nil
+}
+
+func GetLinkNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetLinkNumberInfoData, error) {
+	var LinkNumberInfoDataList http_model.GetLinkNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var LinkNumberInfoData http_model.LinkNumberInfo
+		LinkNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 12").Count(&LinkNumberInfoData.LinkUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage > 12").Count(&LinkNumberInfoData.LinkPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Count(&LinkNumberInfoData.LinkNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		LinkNumberInfoDataList.LinkNumberInfoList = append(LinkNumberInfoDataList.LinkNumberInfoList, &LinkNumberInfoData)
+	}
+	return &LinkNumberInfoDataList, nil
+}
+
+func GetDataNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetDataNumberInfoData, error) {
+	var DataNumberInfoDataList http_model.GetDataNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var DataNumberInfoData http_model.DataNumberInfo
+		DataNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("task_stage = 14").Count(&DataNumberInfoData.DataUnreviewNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 15").Count(&DataNumberInfoData.DataPassedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2 and task_stage < 16", projectId, strategyId)
+		err = db.Count(&DataNumberInfoData.DataNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		DataNumberInfoDataList.DataNumberInfoList = append(DataNumberInfoDataList.DataNumberInfoList, &DataNumberInfoData)
+	}
+	return &DataNumberInfoDataList, nil
+}
+
+func GetDefaultNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetDefaultNumberInfoData, error) {
+	var DefaultNumberInfoDataList http_model.GetDefaultNumberInfoData
+	for _, strategyId := range strategyIds {
+		var DefaultNumberInfoData http_model.DefaultNumberInfo
+		DefaultNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Where("complete_status <> 4").Count(&DefaultNumberInfoData.ShouldFinishNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 1").Count(&DefaultNumberInfoData.UnuploadScriptNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 3").Count(&DefaultNumberInfoData.UnuploadSketchNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 5").Count(&DefaultNumberInfoData.UnuploadLinkNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("cur_default_type = 7").Count(&DefaultNumberInfoData.UnuploadDataNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("complete_status = 4").Count(&DefaultNumberInfoData.TerminateNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+
+		DefaultNumberInfoDataList.DefaultNumberInfoList = append(DefaultNumberInfoDataList.DefaultNumberInfoList, &DefaultNumberInfoData)
+	}
+	return &DefaultNumberInfoDataList, nil
+}
+
+func GetFinishNumberInfo(ctx context.Context, projectId string, strategyIds []int64) (*http_model.GetFinishNumberInfoData, error) {
+	var FinishNumberInfoDataList http_model.GetFinishNumberInfoData
+
+	for _, strategyId := range strategyIds {
+		var FinishNumberInfoData http_model.FinishNumberInfo
+		FinishNumberInfoData.StrategyId = strategyId
+		db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err := db.Count(&FinishNumberInfoData.ShouldFinishNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
+		err = db.Where("task_stage = 15").Count(&FinishNumberInfoData.FinishedNumber).Error
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+			return nil, err
+		}
+		FinishNumberInfoDataList.FinishNumberInfoList = append(FinishNumberInfoDataList.FinishNumberInfoList, &FinishNumberInfoData)
+	}
+	return &FinishNumberInfoDataList, nil
+}
+
+func GetLogisticsNum() [][]string {
+	var logisticNumsInfos [][]string
+	db := GetReadDB(context.Background())
+	var logisticInfos []*gorm_model.YoungeeTaskLogistics
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Where("things_type = 1 AND status = 0").Find(&logisticInfos)
+	for _, logisticInfo := range logisticInfos {
+		var logisticNumsInfo []string
+		logisticNumsInfo = append(logisticNumsInfo, logisticInfo.CompanyName, logisticInfo.LogisticsNumber, strconv.FormatInt(logisticInfo.LogisticsID, 10))
+		logisticNumsInfos = append(logisticNumsInfos, logisticNumsInfo)
+	}
+	fmt.Println("logisticNumsInfos:", logisticNumsInfos)
+	return logisticNumsInfos
+}
+
+func SignLogistic(logisticId int64) string {
+	db := GetReadDB(context.Background())
+	var taskId, projectId string
+	var contentType int64
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Select("task_id").Where("logistics_id = ?", logisticId).Find(&taskId)
+	db.Model(gorm_model.YoungeeTaskInfo{}).Select("project_id").Where("task_id = ?", taskId).Find(&projectId)
+	db.Model(gorm_model.ProjectInfo{}).Select("content_type").Where("project_id = ?", projectId).Find(&contentType)
+	t := time.Now()
+	db.Model(gorm_model.YoungeeTaskLogistics{}).Where("logistics_id = ?", logisticId).Updates(&gorm_model.YoungeeTaskLogistics{SignedTime: &t, Status: 1})
+	if contentType == 1 {
+		db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 9})
+		fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传初稿\n", taskId)
+	} else {
+		db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 7})
+		fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传脚本\n", taskId)
+	}
+	return taskId
+}
+
+func GetSpecialInviteNumber(ctx context.Context, projectId string) (*http_model.GetSpecialInviteNumberData, error) {
+	var specialInviteNumberData http_model.GetSpecialInviteNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_stage != 3", projectId)
+	err := db.Where("task_status <> 2").Count(&specialInviteNumberData.UnpassNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ?", projectId)
+	err = db.Where("task_status = 2").Count(&specialInviteNumberData.PassNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialInviteNumberData, nil
+}
+
+func GetSpecialLogisticNumber(ctx context.Context, projectId string) (*http_model.GetSpecialLogisticNumberData, error) {
+	var specialLogisticNumberData http_model.GetSpecialLogisticNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_stage != 3", projectId)
+	err := db.Where("task_status = 2").Count(&specialLogisticNumberData.DeliverNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 3").Count(&specialLogisticNumberData.SignedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 1").Count(&specialLogisticNumberData.UndeliveredNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("logistics_status = 2").Count(&specialLogisticNumberData.DeliveredNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialLogisticNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialLogisticNumberData, nil
+}
+
+func GetSpecialReviewNumber(ctx context.Context, projectId string) (*http_model.GetSpecialReviewNumberData, error) {
+	var specialReviewNumber http_model.GetSpecialReviewNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialReviewNumber.ReviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 8").Count(&specialReviewNumber.ScriptUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 8").Count(&specialReviewNumber.ScriptPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 10").Count(&specialReviewNumber.SketchUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 10").Count(&specialReviewNumber.SketchPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialReviewNumber, nil
+}
+
+func GetSpecialLinkNumber(ctx context.Context, projectId string) (*http_model.GetSpecialLinkNumberData, error) {
+	var specialLinkNumber http_model.GetSpecialLinkNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialLinkNumber.LinkNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 12").Count(&specialLinkNumber.LinkUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 12").Count(&specialLinkNumber.LinkPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialLinkNumber, nil
+}
+
+func GetSpecialDataNumber(ctx context.Context, projectId string) (*http_model.GetSpecialDataNumberData, error) {
+	var specialDataNumber http_model.GetSpecialDataNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err := db.Where("").Count(&specialDataNumber.DataNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage = 14").Count(&specialDataNumber.DataUnreviewNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2", projectId)
+	err = db.Where("task_stage > 14").Count(&specialDataNumber.DataPassedNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialDataNumber, nil
+}
+
+func GetSpecialSettleNumber(ctx context.Context, projectId string) (*http_model.GetSpecialSettleNumberData, error) {
+	var specialSettleNumber http_model.GetSpecialSettleNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15", projectId)
+	err := db.Where("").Count(&specialSettleNumber.SettleNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialSettleNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15 and settle_status = 1", projectId)
+	err = db.Where("task_stage = 14").Count(&specialSettleNumber.UnsettleNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialSettleNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15 and settle_status = 2", projectId)
+	err = db.Where("task_stage > 14").Count(&specialSettleNumber.SettledNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialSettleNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialSettleNumber, nil
+}

+ 73 - 0
.history/handler/SpecialTaskDataList_20230408160507.go

@@ -0,0 +1,73 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"github.com/cstockton/go-conv"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskDataListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskDataListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskDataListHandler(ctx *gin.Context) *SpecialTaskDataListHandler {
+	return &SpecialTaskDataListHandler{
+		req:  http_model.NewSpecialTaskDataListRequest(),
+		resp: http_model.NewSpecialTaskDataListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskDataListHandler struct {
+	req  *http_model.SpecialTaskDataListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskDataListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskDataListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskDataListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskDataListHandler) run() {
+	conditions := pack.HttpSpecialTaskDataListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskDataList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskDataListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.DataStatus = util.IsNull(h.req.DataStatus)
+	if _, err := conv.Int64(h.req.DataStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 74 - 0
.history/handler/SpecialTaskDataList_20230409142026.go

@@ -0,0 +1,74 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/cstockton/go-conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskSettleListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskSettleListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskSettleListHandler(ctx *gin.Context) *SpecialTaskSettleListHandler {
+	return &SpecialTaskSettleListHandler{
+		req:  http_model.NewSpecialTaskSettleListRequest(),
+		resp: http_model.NewSpecialTaskSettleListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskSettleListHandler struct {
+	req  *http_model.SpecialTaskSettleListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskSettleListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskSettleListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskSettleListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskSettleListHandler) run() {
+	conditions := pack.HttpSpecialTaskSettleListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskSettleList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskSettleListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.DataStatus = util.IsNull(h.req.DataStatus)
+	if _, err := conv.Int64(h.req.DataStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 74 - 0
.history/handler/SpecialTaskDataList_20230409142031.go

@@ -0,0 +1,74 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/cstockton/go-conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskSettleListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskSettleListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskSettleListHandler(ctx *gin.Context) *SpecialTaskSettleListHandler {
+	return &SpecialTaskSettleListHandler{
+		req:  http_model.NewSpecialTaskSettleListRequest(),
+		resp: http_model.NewSpecialTaskSettleListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskSettleListHandler struct {
+	req  *http_model.SpecialTaskSettleListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskSettleListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskSettleListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskSettleListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskSettleListHandler) run() {
+	conditions := pack.HttpSpecialTaskSettleListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskSettleList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskSettleListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.DataStatus = util.IsNull(h.req.DataStatus)
+	if _, err := conv.Int64(h.req.DataStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 74 - 0
.history/handler/SpecialTaskDataList_20230409142144.go

@@ -0,0 +1,74 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/cstockton/go-conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskDataListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskDataListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskDataListHandler(ctx *gin.Context) *SpecialTaskDataListHandler {
+	return &SpecialTaskDataListHandler{
+		req:  http_model.NewSpecialTaskDataListRequest(),
+		resp: http_model.NewSpecialTaskDataListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskDataListHandler struct {
+	req  *http_model.SpecialTaskDataListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskDataListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskDataListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskDataListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskDataListHandler) run() {
+	conditions := pack.HttpSpecialTaskDataListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskDataList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskDataListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.DataStatus = util.IsNull(h.req.DataStatus)
+	if _, err := conv.Int64(h.req.DataStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 74 - 0
.history/handler/SpecialTaskDataList_20230409142154.go

@@ -0,0 +1,74 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/cstockton/go-conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskDataListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskDataListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskDataListHandler(ctx *gin.Context) *SpecialTaskDataListHandler {
+	return &SpecialTaskDataListHandler{
+		req:  http_model.NewSpecialTaskDataListRequest(),
+		resp: http_model.NewSpecialTaskDataListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskDataListHandler struct {
+	req  *http_model.SpecialTaskDataListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskDataListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskDataListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskDataListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskDataListHandler) run() {
+	conditions := pack.HttpSpecialTaskDataListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskDataList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskDataListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.DataStatus = util.IsNull(h.req.DataStatus)
+	if _, err := conv.Int64(h.req.DataStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 74 - 0
.history/handler/SpecialTaskDataList_20230409142300.go

@@ -0,0 +1,74 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/cstockton/go-conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskDataListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskDataListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskDataListHandler(ctx *gin.Context) *SpecialTaskDataListHandler {
+	return &SpecialTaskDataListHandler{
+		req:  http_model.NewSpecialTaskDataListRequest(),
+		resp: http_model.NewSpecialTaskDataListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskDataListHandler struct {
+	req  *http_model.SpecialTaskDataListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskDataListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskDataListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskDataListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskDataListHandler) run() {
+	conditions := pack.HttpSpecialTaskDataListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskDataList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskDataListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.DataStatus = util.IsNull(h.req.DataStatus)
+	if _, err := conv.Int64(h.req.DataStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 0 - 0
.history/handler/getSpecialSettleNumber_20230408221028.go


+ 59 - 0
.history/handler/getSpecialSettleNumber_20230408221059.go

@@ -0,0 +1,59 @@
+package handler
+
+import (
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	log "github.com/sirupsen/logrus"
+)
+
+func WrapGetSpecialSettleNumberHandler(ctx *gin.Context) {
+	handler := newGetSpecialSettleNumberHandler(ctx)
+	BaseRun(handler)
+}
+
+func newGetSpecialSettleNumberHandler(ctx *gin.Context) *GetSpecialSettleNumberHandler {
+	return &GetSpecialSettleNumberHandler{
+		req:  http_model.NewGetSpecialSettleNumberRequest(),
+		resp: http_model.NewGetSpecialSettleNumberResponse(),
+		ctx:  ctx,
+	}
+}
+
+type GetSpecialSettleNumberHandler struct {
+	req  *http_model.GetSpecialSettleNumberRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *GetSpecialSettleNumberHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *GetSpecialSettleNumberHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *GetSpecialSettleNumberHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *GetSpecialSettleNumberHandler) run() {
+	data := http_model.GetSpecialSettleNumberRequest{}
+	data = *h.req
+	res, err := service.Number.GetSpecialSettleNumber(h.ctx, data)
+	if err != nil {
+		logrus.Errorf("[GetSpecialSettleNumberHandler] call GetSpecialSettleNumber err:%+v\n", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, "")
+		log.Info("GetSpecialSettleNumber fail,req:%+v", h.req)
+		return
+	}
+	h.resp.Message = ""
+	h.resp.Data = res
+}
+
+func (h *GetSpecialSettleNumberHandler) checkParam() error {
+	return nil
+}

+ 59 - 0
.history/handler/getSpecialSettleNumber_20230408221432.go

@@ -0,0 +1,59 @@
+package handler
+
+import (
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	log "github.com/sirupsen/logrus"
+)
+
+func WrapGetSpecialSettleNumberHandler(ctx *gin.Context) {
+	handler := newGetSpecialSettleNumberHandler(ctx)
+	BaseRun(handler)
+}
+
+func newGetSpecialSettleNumberHandler(ctx *gin.Context) *GetSpecialSettleNumberHandler {
+	return &GetSpecialSettleNumberHandler{
+		req:  http_model.NewGetSpecialSettleNumberRequest(),
+		resp: http_model.NewGetSpecialSettleNumberResponse(),
+		ctx:  ctx,
+	}
+}
+
+type GetSpecialSettleNumberHandler struct {
+	req  *http_model.GetSpecialSettleNumberRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *GetSpecialSettleNumberHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *GetSpecialSettleNumberHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *GetSpecialSettleNumberHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *GetSpecialSettleNumberHandler) run() {
+	data := http_model.GetSpecialSettleNumberRequest{}
+	data = *h.req
+	res, err := service.Number.GetSpecialSettleNumber(h.ctx, data)
+	if err != nil {
+		logrus.Errorf("[GetSpecialSettleNumberHandler] call GetSpecialSettleNumber err:%+v\n", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, "")
+		log.Info("GetSpecialSettleNumber fail,req:%+v", h.req)
+		return
+	}
+	h.resp.Message = ""
+	h.resp.Data = res
+}
+
+func (h *GetSpecialSettleNumberHandler) checkParam() error {
+	return nil
+}

+ 59 - 0
.history/handler/getSpecialSettleNumber_20230408221554.go

@@ -0,0 +1,59 @@
+package handler
+
+import (
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	log "github.com/sirupsen/logrus"
+)
+
+func WrapGetSpecialSettleNumberHandler(ctx *gin.Context) {
+	handler := newGetSpecialSettleNumberHandler(ctx)
+	BaseRun(handler)
+}
+
+func newGetSpecialSettleNumberHandler(ctx *gin.Context) *GetSpecialSettleNumberHandler {
+	return &GetSpecialSettleNumberHandler{
+		req:  http_model.NewGetSpecialSettleNumberRequest(),
+		resp: http_model.NewGetSpecialSettleNumberResponse(),
+		ctx:  ctx,
+	}
+}
+
+type GetSpecialSettleNumberHandler struct {
+	req  *http_model.GetSpecialSettleNumberRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *GetSpecialSettleNumberHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *GetSpecialSettleNumberHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *GetSpecialSettleNumberHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *GetSpecialSettleNumberHandler) run() {
+	data := http_model.GetSpecialSettleNumberRequest{}
+	data = *h.req
+	res, err := service.Number.GetSpecialSettleNumber(h.ctx, data)
+	if err != nil {
+		logrus.Errorf("[GetSpecialSettleNumberHandler] call GetSpecialSettleNumber err:%+v\n", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, "")
+		log.Info("GetSpecialSettleNumber fail,req:%+v", h.req)
+		return
+	}
+	h.resp.Message = ""
+	h.resp.Data = res
+}
+
+func (h *GetSpecialSettleNumberHandler) checkParam() error {
+	return nil
+}

+ 0 - 0
.history/handler/specialTaskSettleList_20230409141710.go


+ 74 - 0
.history/handler/specialTaskSettleList_20230409153734.go

@@ -0,0 +1,74 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/cstockton/go-conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskSettleListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskSettleListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskSettleListHandler(ctx *gin.Context) *SpecialTaskSettleListHandler {
+	return &SpecialTaskSettleListHandler{
+		req:  http_model.NewSpecialTaskSettleListRequest(),
+		resp: http_model.NewSpecialTaskSettleListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskSettleListHandler struct {
+	req  *http_model.SpecialTaskSettleListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskSettleListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskSettleListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskSettleListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskSettleListHandler) run() {
+	conditions := pack.HttpSpecialTaskSettleListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskSettleList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskSettleListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.SettleStatus = util.IsNull(h.req.SettleStatus)
+	if _, err := conv.Int64(h.req.SettleStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 15 - 0
.history/model/common_model/talent_condition_20230408160507.go

@@ -0,0 +1,15 @@
+package common_model
+
+type TalentConditions struct {
+	ProjectId        string `condition:"project_id"`        // 项目ID
+	TaskStatus       int64  `condition:"task_status"`       // 任务状态
+	LogisticsStatus  int64  `condition:"logistics_status"`  // 物流状态
+	ScriptStatus     int64  `condition:"script_status"`     // 脚本状态
+	SketchStatus     int64  `condition:"sketch_status"`     // 初稿状态
+	LinkStatus       int64  `condition:"link_status"`       // 链接状态
+	DataStatus       int64  `condition:"data_status"`       // 数据状态
+	DefaultStatus    int64  `condition:"default_status"`    // 违约状态
+	StrategyId       int64  `condition:"strategy_id"`       // 策略ID
+	TaskId           string `condition:"task_id"`           // 任务ID
+	PlatformNickname string `condition:"platform_nickname"` // 账号昵称
+}

+ 16 - 0
.history/model/common_model/talent_condition_20230409150405.go

@@ -0,0 +1,16 @@
+package common_model
+
+type TalentConditions struct {
+	ProjectId        string `condition:"project_id"`        // 项目ID
+	TaskStatus       int64  `condition:"task_status"`       // 任务状态
+	LogisticsStatus  int64  `condition:"logistics_status"`  // 物流状态
+	ScriptStatus     int64  `condition:"script_status"`     // 脚本状态
+	SketchStatus     int64  `condition:"sketch_status"`     // 初稿状态
+	LinkStatus       int64  `condition:"link_status"`       // 链接状态
+	DataStatus       int64  `condition:"data_status"`       // 数据状态
+	SettleStatus     int64  `condition:"settle_status"`     // 结算状态
+	DefaultStatus    int64  `condition:"default_status"`    // 违约状态
+	StrategyId       int64  `condition:"strategy_id"`       // 策略ID
+	TaskId           string `condition:"task_id"`           // 任务ID
+	PlatformNickname string `condition:"platform_nickname"` // 账号昵称
+}

+ 0 - 0
.history/model/http_model/SpecialTaskSettleList_20230409142613.go


+ 76 - 0
.history/model/http_model/SpecialTaskSettleList_20230409142759.go

@@ -0,0 +1,76 @@
+package http_model
+
+import (
+	"time"
+	"youngee_m_api/model/gorm_model"
+)
+
+type SpecialTaskSettleListRequest struct {
+	PageSize         int64  `json:"page_size"`
+	PageNum          int64  `json:"page_num"`
+	ProjectId        string `json:"project_id"`        // 项目ID
+	TaskId           string `json:"task_id"`           // 任务ID
+	DataStatus       string `json:"data_status"`       // 稿件状态
+	PlatformNickname string `json:"platform_nickname"` // 账号昵称
+}
+
+type SpecialTaskSettlePreview struct {
+	TaskID           string  `json:"task_id"`           // 任务ID
+	PlatformNickname string  `json:"platform_nickname"` // 账号昵称
+	FansCount        string  `json:"fans_count"`        // 粉丝数
+	PlayNumber       int     `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int     `json:"like_number"`       // 点赞数
+	CommentNumber    int     `json:"comment_number"`    // 评论数
+	CollectNumber    int     `json:"collect_number"`    // 收藏数
+	LinkUrl          string  `json:"link_url"`          // 上传链接url
+	PhotoUrl         string  `json:"photo_url"`         // 数据截图url
+	AllPayment       float64 `json:"all_payment"`       // 企业支付
+	RealPayment      float64 `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	Phone            string  `json:"phone"`             // 联系方式
+	SubmitAt         string  `json:"submit_at"`         // 提交时间
+	AgreeAt          string  `json:"agree_at"`          // 同意时间
+	ReviseOpinion    string  `json:"revise_opinion"`    // 审稿意见
+}
+
+type SpecialTaskDataInfo struct {
+	TaskID           string    `json:"task_id"`           // 任务ID
+	PlatformNickname string    `json:"platform_nickname"` // 账号昵称
+	FansCount        string    `json:"fans_count"`        // 粉丝数
+	DataId           int       `json:"data_id"`           // 数据ID
+	PlayNumber       int       `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int       `json:"like_number"`       // 点赞数
+	CommentNumber    int       `json:"comment_number"`    // 评论数
+	CollectNumber    int       `json:"collect_number"`    // 收藏数
+	LinkUrl          string    `json:"link_url"`          // 上传链接url
+	PhotoUrl         string    `json:"photo_url"`         // 数据截图url
+	AllPayment       float64   `json:"all_payment"`       // 企业支付
+	RealPayment      float64   `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	ReviseOpinion    string    `json:"revise_opinion"`    // 审稿意见
+	Phone            string    `json:"phone"`             // 联系方式
+	CreateAt         time.Time `json:"create_at"`         // 创建时间
+	SubmitAt         time.Time `json:"submit_at"`         // 提交时间
+	AgreeAt          time.Time `json:"agree_at"`          // 同意时间
+	RejectAt         time.Time `json:"reject_at"`         // 拒绝时间
+	IsReview         int       `json:"is_review"`         // 是否审核
+}
+
+type SpecialTaskData struct {
+	Talent gorm_model.YoungeeTaskInfo
+	Data   gorm_model.YounggeeDataInfo
+	Link   gorm_model.YounggeeLinkInfo
+}
+
+type SpecialTaskSettleListData struct {
+	SpecialTaskDataPreview []*SpecialTaskDataPreview `json:"project_task_pre_view"`
+	Total                  string                    `json:"total"`
+}
+
+func NewSpecialTaskSettleListRequest() *SpecialTaskSettleListRequest {
+	return new(SpecialTaskSettleListRequest)
+}
+
+func NewSpecialTaskSettleListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(SpecialTaskSettleListData)
+	return resp
+}

+ 76 - 0
.history/model/http_model/SpecialTaskSettleList_20230409142857.go

@@ -0,0 +1,76 @@
+package http_model
+
+import (
+	"time"
+	"youngee_m_api/model/gorm_model"
+)
+
+type SpecialTaskSettleListRequest struct {
+	PageSize         int64  `json:"page_size"`
+	PageNum          int64  `json:"page_num"`
+	ProjectId        string `json:"project_id"`        // 项目ID
+	TaskId           string `json:"task_id"`           // 任务ID
+	DataStatus       string `json:"data_status"`       // 稿件状态
+	PlatformNickname string `json:"platform_nickname"` // 账号昵称
+}
+
+type SpecialTaskSettlePreview struct {
+	TaskID           string  `json:"task_id"`           // 任务ID
+	PlatformNickname string  `json:"platform_nickname"` // 账号昵称
+	FansCount        string  `json:"fans_count"`        // 粉丝数
+	PlayNumber       int     `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int     `json:"like_number"`       // 点赞数
+	CommentNumber    int     `json:"comment_number"`    // 评论数
+	CollectNumber    int     `json:"collect_number"`    // 收藏数
+	LinkUrl          string  `json:"link_url"`          // 上传链接url
+	PhotoUrl         string  `json:"photo_url"`         // 数据截图url
+	AllPayment       float64 `json:"all_payment"`       // 企业支付
+	RealPayment      float64 `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	Phone            string  `json:"phone"`             // 联系方式
+	SubmitAt         string  `json:"submit_at"`         // 提交时间
+	AgreeAt          string  `json:"agree_at"`          // 同意时间
+	ReviseOpinion    string  `json:"revise_opinion"`    // 审稿意见
+}
+
+type SpecialTaskSettleInfo struct {
+	TaskID           string    `json:"task_id"`           // 任务ID
+	PlatformNickname string    `json:"platform_nickname"` // 账号昵称
+	FansCount        string    `json:"fans_count"`        // 粉丝数
+	DataId           int       `json:"data_id"`           // 数据ID
+	PlayNumber       int       `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int       `json:"like_number"`       // 点赞数
+	CommentNumber    int       `json:"comment_number"`    // 评论数
+	CollectNumber    int       `json:"collect_number"`    // 收藏数
+	LinkUrl          string    `json:"link_url"`          // 上传链接url
+	PhotoUrl         string    `json:"photo_url"`         // 数据截图url
+	AllPayment       float64   `json:"all_payment"`       // 企业支付
+	RealPayment      float64   `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	ReviseOpinion    string    `json:"revise_opinion"`    // 审稿意见
+	Phone            string    `json:"phone"`             // 联系方式
+	CreateAt         time.Time `json:"create_at"`         // 创建时间
+	SubmitAt         time.Time `json:"submit_at"`         // 提交时间
+	AgreeAt          time.Time `json:"agree_at"`          // 同意时间
+	RejectAt         time.Time `json:"reject_at"`         // 拒绝时间
+	IsReview         int       `json:"is_review"`         // 是否审核
+}
+
+type SpecialTaskSettle struct {
+	Talent gorm_model.YoungeeTaskInfo
+	Data   gorm_model.YounggeeDataInfo
+	Link   gorm_model.YounggeeLinkInfo
+}
+
+type SpecialTaskSettleListData struct {
+	SpecialTaskDataPreview []*SpecialTaskDataPreview `json:"project_task_pre_view"`
+	Total                  string                    `json:"total"`
+}
+
+func NewSpecialTaskSettleListRequest() *SpecialTaskSettleListRequest {
+	return new(SpecialTaskSettleListRequest)
+}
+
+func NewSpecialTaskSettleListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(SpecialTaskSettleListData)
+	return resp
+}

+ 76 - 0
.history/model/http_model/SpecialTaskSettleList_20230409142918.go

@@ -0,0 +1,76 @@
+package http_model
+
+import (
+	"time"
+	"youngee_m_api/model/gorm_model"
+)
+
+type SpecialTaskSettleListRequest struct {
+	PageSize         int64  `json:"page_size"`
+	PageNum          int64  `json:"page_num"`
+	ProjectId        string `json:"project_id"`        // 项目ID
+	TaskId           string `json:"task_id"`           // 任务ID
+	DataStatus       string `json:"data_status"`       // 稿件状态
+	PlatformNickname string `json:"platform_nickname"` // 账号昵称
+}
+
+type SpecialTaskSettlePreview struct {
+	TaskID           string  `json:"task_id"`           // 任务ID
+	PlatformNickname string  `json:"platform_nickname"` // 账号昵称
+	FansCount        string  `json:"fans_count"`        // 粉丝数
+	PlayNumber       int     `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int     `json:"like_number"`       // 点赞数
+	CommentNumber    int     `json:"comment_number"`    // 评论数
+	CollectNumber    int     `json:"collect_number"`    // 收藏数
+	LinkUrl          string  `json:"link_url"`          // 上传链接url
+	PhotoUrl         string  `json:"photo_url"`         // 数据截图url
+	AllPayment       float64 `json:"all_payment"`       // 企业支付
+	RealPayment      float64 `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	Phone            string  `json:"phone"`             // 联系方式
+	SubmitAt         string  `json:"submit_at"`         // 提交时间
+	AgreeAt          string  `json:"agree_at"`          // 同意时间
+	ReviseOpinion    string  `json:"revise_opinion"`    // 审稿意见
+}
+
+type SpecialTaskSettleInfo struct {
+	TaskID           string    `json:"task_id"`           // 任务ID
+	PlatformNickname string    `json:"platform_nickname"` // 账号昵称
+	FansCount        string    `json:"fans_count"`        // 粉丝数
+	DataId           int       `json:"data_id"`           // 数据ID
+	PlayNumber       int       `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int       `json:"like_number"`       // 点赞数
+	CommentNumber    int       `json:"comment_number"`    // 评论数
+	CollectNumber    int       `json:"collect_number"`    // 收藏数
+	LinkUrl          string    `json:"link_url"`          // 上传链接url
+	PhotoUrl         string    `json:"photo_url"`         // 数据截图url
+	AllPayment       float64   `json:"all_payment"`       // 企业支付
+	RealPayment      float64   `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	ReviseOpinion    string    `json:"revise_opinion"`    // 审稿意见
+	Phone            string    `json:"phone"`             // 联系方式
+	CreateAt         time.Time `json:"create_at"`         // 创建时间
+	SubmitAt         time.Time `json:"submit_at"`         // 提交时间
+	AgreeAt          time.Time `json:"agree_at"`          // 同意时间
+	RejectAt         time.Time `json:"reject_at"`         // 拒绝时间
+	IsReview         int       `json:"is_review"`         // 是否审核
+}
+
+type SpecialTaskSettle struct {
+	Talent gorm_model.YoungeeTaskInfo
+	Data   gorm_model.YounggeeDataInfo
+	Link   gorm_model.YounggeeLinkInfo
+}
+
+type SpecialTaskSettleListData struct {
+	SpecialTaskDataPreview []*SpecialTaskDataPreview `json:"project_task_pre_view"`
+	Total                  string                    `json:"total"`
+}
+
+func NewSpecialTaskSettleListRequest() *SpecialTaskSettleListRequest {
+	return new(SpecialTaskSettleListRequest)
+}
+
+func NewSpecialTaskSettleListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(SpecialTaskSettleListData)
+	return resp
+}

+ 76 - 0
.history/model/http_model/SpecialTaskSettleList_20230409142920.go

@@ -0,0 +1,76 @@
+package http_model
+
+import (
+	"time"
+	"youngee_m_api/model/gorm_model"
+)
+
+type SpecialTaskSettleListRequest struct {
+	PageSize         int64  `json:"page_size"`
+	PageNum          int64  `json:"page_num"`
+	ProjectId        string `json:"project_id"`        // 项目ID
+	TaskId           string `json:"task_id"`           // 任务ID
+	DataStatus       string `json:"data_status"`       // 稿件状态
+	PlatformNickname string `json:"platform_nickname"` // 账号昵称
+}
+
+type SpecialTaskSettlePreview struct {
+	TaskID           string  `json:"task_id"`           // 任务ID
+	PlatformNickname string  `json:"platform_nickname"` // 账号昵称
+	FansCount        string  `json:"fans_count"`        // 粉丝数
+	PlayNumber       int     `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int     `json:"like_number"`       // 点赞数
+	CommentNumber    int     `json:"comment_number"`    // 评论数
+	CollectNumber    int     `json:"collect_number"`    // 收藏数
+	LinkUrl          string  `json:"link_url"`          // 上传链接url
+	PhotoUrl         string  `json:"photo_url"`         // 数据截图url
+	AllPayment       float64 `json:"all_payment"`       // 企业支付
+	RealPayment      float64 `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	Phone            string  `json:"phone"`             // 联系方式
+	SubmitAt         string  `json:"submit_at"`         // 提交时间
+	AgreeAt          string  `json:"agree_at"`          // 同意时间
+	ReviseOpinion    string  `json:"revise_opinion"`    // 审稿意见
+}
+
+type SpecialTaskSettleInfo struct {
+	TaskID           string    `json:"task_id"`           // 任务ID
+	PlatformNickname string    `json:"platform_nickname"` // 账号昵称
+	FansCount        string    `json:"fans_count"`        // 粉丝数
+	DataId           int       `json:"data_id"`           // 数据ID
+	PlayNumber       int       `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int       `json:"like_number"`       // 点赞数
+	CommentNumber    int       `json:"comment_number"`    // 评论数
+	CollectNumber    int       `json:"collect_number"`    // 收藏数
+	LinkUrl          string    `json:"link_url"`          // 上传链接url
+	PhotoUrl         string    `json:"photo_url"`         // 数据截图url
+	AllPayment       float64   `json:"all_payment"`       // 企业支付
+	RealPayment      float64   `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	ReviseOpinion    string    `json:"revise_opinion"`    // 审稿意见
+	Phone            string    `json:"phone"`             // 联系方式
+	CreateAt         time.Time `json:"create_at"`         // 创建时间
+	SubmitAt         time.Time `json:"submit_at"`         // 提交时间
+	AgreeAt          time.Time `json:"agree_at"`          // 同意时间
+	RejectAt         time.Time `json:"reject_at"`         // 拒绝时间
+	IsReview         int       `json:"is_review"`         // 是否审核
+}
+
+type SpecialTaskSettle struct {
+	Talent gorm_model.YoungeeTaskInfo
+	Data   gorm_model.YounggeeDataInfo
+	Link   gorm_model.YounggeeLinkInfo
+}
+
+type SpecialTaskSettleListData struct {
+	SpecialTaskDataPreview []*SpecialTaskDataPreview `json:"project_task_pre_view"`
+	Total                  string                    `json:"total"`
+}
+
+func NewSpecialTaskSettleListRequest() *SpecialTaskSettleListRequest {
+	return new(SpecialTaskSettleListRequest)
+}
+
+func NewSpecialTaskSettleListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(SpecialTaskSettleListData)
+	return resp
+}

+ 76 - 0
.history/model/http_model/SpecialTaskSettleList_20230409150325.go

@@ -0,0 +1,76 @@
+package http_model
+
+import (
+	"time"
+	"youngee_m_api/model/gorm_model"
+)
+
+type SpecialTaskSettleListRequest struct {
+	PageSize         int64  `json:"page_size"`
+	PageNum          int64  `json:"page_num"`
+	ProjectId        string `json:"project_id"`        // 项目ID
+	TaskId           string `json:"task_id"`           // 任务ID
+	SettleStatus     string `json:"settle_status"`     // 结算状态,待结算、已结算
+	PlatformNickname string `json:"platform_nickname"` // 账号昵称
+}
+
+type SpecialTaskSettlePreview struct {
+	TaskID           string  `json:"task_id"`           // 任务ID
+	PlatformNickname string  `json:"platform_nickname"` // 账号昵称
+	FansCount        string  `json:"fans_count"`        // 粉丝数
+	PlayNumber       int     `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int     `json:"like_number"`       // 点赞数
+	CommentNumber    int     `json:"comment_number"`    // 评论数
+	CollectNumber    int     `json:"collect_number"`    // 收藏数
+	LinkUrl          string  `json:"link_url"`          // 上传链接url
+	PhotoUrl         string  `json:"photo_url"`         // 数据截图url
+	AllPayment       float64 `json:"all_payment"`       // 企业支付
+	RealPayment      float64 `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	Phone            string  `json:"phone"`             // 联系方式
+	SubmitAt         string  `json:"submit_at"`         // 提交时间
+	AgreeAt          string  `json:"agree_at"`          // 同意时间
+	ReviseOpinion    string  `json:"revise_opinion"`    // 审稿意见
+}
+
+type SpecialTaskSettleInfo struct {
+	TaskID           string    `json:"task_id"`           // 任务ID
+	PlatformNickname string    `json:"platform_nickname"` // 账号昵称
+	FansCount        string    `json:"fans_count"`        // 粉丝数
+	DataId           int       `json:"data_id"`           // 数据ID
+	PlayNumber       int       `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int       `json:"like_number"`       // 点赞数
+	CommentNumber    int       `json:"comment_number"`    // 评论数
+	CollectNumber    int       `json:"collect_number"`    // 收藏数
+	LinkUrl          string    `json:"link_url"`          // 上传链接url
+	PhotoUrl         string    `json:"photo_url"`         // 数据截图url
+	AllPayment       float64   `json:"all_payment"`       // 企业支付
+	RealPayment      float64   `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	ReviseOpinion    string    `json:"revise_opinion"`    // 审稿意见
+	Phone            string    `json:"phone"`             // 联系方式
+	CreateAt         time.Time `json:"create_at"`         // 创建时间
+	SubmitAt         time.Time `json:"submit_at"`         // 提交时间
+	AgreeAt          time.Time `json:"agree_at"`          // 同意时间
+	RejectAt         time.Time `json:"reject_at"`         // 拒绝时间
+	IsReview         int       `json:"is_review"`         // 是否审核
+}
+
+type SpecialTaskSettle struct {
+	Talent gorm_model.YoungeeTaskInfo
+	Data   gorm_model.YounggeeDataInfo
+	Link   gorm_model.YounggeeLinkInfo
+}
+
+type SpecialTaskSettleListData struct {
+	SpecialTaskDataPreview []*SpecialTaskDataPreview `json:"project_task_pre_view"`
+	Total                  string                    `json:"total"`
+}
+
+func NewSpecialTaskSettleListRequest() *SpecialTaskSettleListRequest {
+	return new(SpecialTaskSettleListRequest)
+}
+
+func NewSpecialTaskSettleListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(SpecialTaskSettleListData)
+	return resp
+}

+ 76 - 0
.history/model/http_model/SpecialTaskSettleList_20230409150554.go

@@ -0,0 +1,76 @@
+package http_model
+
+import (
+	"time"
+	"youngee_m_api/model/gorm_model"
+)
+
+type SpecialTaskSettleListRequest struct {
+	PageSize         int64  `json:"page_size"`
+	PageNum          int64  `json:"page_num"`
+	ProjectId        string `json:"project_id"`        // 项目ID
+	TaskId           string `json:"task_id"`           // 任务ID
+	SettleStatus     string `json:"settle_status"`     // 结算状态,待结算、已结算
+	PlatformNickname string `json:"platform_nickname"` // 账号昵称
+}
+
+type SpecialTaskSettlePreview struct {
+	TaskID           string  `json:"task_id"`           // 任务ID
+	PlatformNickname string  `json:"platform_nickname"` // 账号昵称
+	FansCount        string  `json:"fans_count"`        // 粉丝数
+	PlayNumber       int     `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int     `json:"like_number"`       // 点赞数
+	CommentNumber    int     `json:"comment_number"`    // 评论数
+	CollectNumber    int     `json:"collect_number"`    // 收藏数
+	LinkUrl          string  `json:"link_url"`          // 上传链接url
+	PhotoUrl         string  `json:"photo_url"`         // 数据截图url
+	AllPayment       float64 `json:"all_payment"`       // 企业支付
+	RealPayment      float64 `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	Phone            string  `json:"phone"`             // 联系方式
+	SubmitAt         string  `json:"submit_at"`         // 提交时间
+	AgreeAt          string  `json:"agree_at"`          // 同意时间
+	ReviseOpinion    string  `json:"revise_opinion"`    // 审稿意见
+}
+
+type SpecialTaskSettleInfo struct {
+	TaskID           string    `json:"task_id"`           // 任务ID
+	PlatformNickname string    `json:"platform_nickname"` // 账号昵称
+	FansCount        string    `json:"fans_count"`        // 粉丝数
+	DataId           int       `json:"data_id"`           // 数据ID
+	PlayNumber       int       `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int       `json:"like_number"`       // 点赞数
+	CommentNumber    int       `json:"comment_number"`    // 评论数
+	CollectNumber    int       `json:"collect_number"`    // 收藏数
+	LinkUrl          string    `json:"link_url"`          // 上传链接url
+	PhotoUrl         string    `json:"photo_url"`         // 数据截图url
+	AllPayment       float64   `json:"all_payment"`       // 企业支付
+	RealPayment      float64   `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	ReviseOpinion    string    `json:"revise_opinion"`    // 审稿意见
+	Phone            string    `json:"phone"`             // 联系方式
+	CreateAt         time.Time `json:"create_at"`         // 创建时间
+	SubmitAt         time.Time `json:"submit_at"`         // 提交时间
+	AgreeAt          time.Time `json:"agree_at"`          // 同意时间
+	RejectAt         time.Time `json:"reject_at"`         // 拒绝时间
+	IsReview         int       `json:"is_review"`         // 是否审核
+}
+
+type SpecialTaskSettle struct {
+	Talent gorm_model.YoungeeTaskInfo
+	Data   gorm_model.YounggeeDataInfo
+	Link   gorm_model.YounggeeLinkInfo
+}
+
+type SpecialTaskSettleListData struct {
+	SpecialTaskSettlePreview []*SpecialTaskSettlePreview `json:"project_task_pre_view"`
+	Total                    string                      `json:"total"`
+}
+
+func NewSpecialTaskSettleListRequest() *SpecialTaskSettleListRequest {
+	return new(SpecialTaskSettleListRequest)
+}
+
+func NewSpecialTaskSettleListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(SpecialTaskSettleListData)
+	return resp
+}

+ 0 - 0
.history/model/http_model/getSpecialSettleNumber_20230408221230.go


+ 21 - 0
.history/model/http_model/getSpecialSettleNumber_20230408221426.go

@@ -0,0 +1,21 @@
+package http_model
+
+type GetSpecialSettleNumberRequest struct {
+	ProjectId string `json:"project_id"` // 项目id
+}
+
+type GetSpecialSettleNumberData struct {
+	SettleNumber   int64 `json:"settle_number"`   // 应结算数量
+	UnsettleNumber int64 `json:"unsettle_number"` // 待结算数量
+	SettledNumber  int64 `json:"settled_number"`  // 已结算数量
+}
+
+func NewGetSpecialSettleNumberRequest() *GetSpecialSettleNumberRequest {
+	return new(GetSpecialSettleNumberRequest)
+}
+
+func NewGetSpecialSettleNumberResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(GetSpecialSettleNumberData)
+	return resp
+}

+ 21 - 0
.history/model/http_model/getSpecialSettleNumber_20230408221548.go

@@ -0,0 +1,21 @@
+package http_model
+
+type GetSpecialSettleNumberRequest struct {
+	ProjectId string `json:"project_id"` // 项目id
+}
+
+type GetSpecialSettleNumberData struct {
+	SettleNumber   int64 `json:"settle_number"`   // 应结算数量
+	UnsettleNumber int64 `json:"unsettle_number"` // 待结算数量
+	SettledNumber  int64 `json:"settled_number"`  // 已结算数量
+}
+
+func NewGetSpecialSettleNumberRequest() *GetSpecialSettleNumberRequest {
+	return new(GetSpecialSettleNumberRequest)
+}
+
+func NewGetSpecialSettleNumberResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(GetSpecialSettleNumberData)
+	return resp
+}

+ 0 - 0
.history/pack/special_task_settle_list_20230409153856.go


+ 72 - 0
.history/pack/special_task_settle_list_20230409154145.go

@@ -0,0 +1,72 @@
+package pack
+
+import (
+	"youngee_m_api/model/http_model"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/tidwall/gjson"
+)
+
+func MGormSpecialTaskSettleInfoListToHttpSpecialTaskSettlePreviewList(gormSpecialTaskSettleInfos []*http_model.SpecialTaskSettleInfo) []*http_model.SpecialTaskSettlePreview {
+	var httpProjectPreviews []*http_model.SpecialTaskSettlePreview
+	for _, gormSpecialTaskSettleInfo := range gormSpecialTaskSettleInfos {
+		httpSpecialTaskSettlePreview := MGormSpecialTaskSettleInfoToHttpSpecialTaskSettlePreview(gormSpecialTaskSettleInfo)
+		httpProjectPreviews = append(httpProjectPreviews, httpSpecialTaskSettlePreview)
+	}
+	return httpProjectPreviews
+}
+
+func MGormSpecialTaskSettleInfoToHttpSpecialTaskSettlePreview(SpecialTaskSettleInfo *http_model.SpecialTaskSettleInfo) *http_model.SpecialTaskSettlePreview {
+	return &http_model.SpecialTaskSettlePreview{
+		TaskID:           conv.MustString(SpecialTaskSettleInfo.TaskID, ""),
+		PlatformNickname: conv.MustString(SpecialTaskSettleInfo.PlatformNickname, ""),
+		FansCount:        conv.MustString(SpecialTaskSettleInfo.FansCount, ""),
+		PlayNumber:       SpecialTaskSettleInfo.PlayNumber,
+		LikeNumber:       SpecialTaskSettleInfo.LikeNumber,
+		CommentNumber:    SpecialTaskSettleInfo.CommentNumber,
+		CollectNumber:    SpecialTaskSettleInfo.CollectNumber,
+		LinkUrl:          SpecialTaskSettleInfo.LinkUrl,
+		PhotoUrl:         SpecialTaskSettleInfo.PhotoUrl,
+		AllPayment:       SpecialTaskSettleInfo.AllPayment,
+		RealPayment:      SpecialTaskSettleInfo.RealPayment,
+		ReviseOpinion:    SpecialTaskSettleInfo.ReviseOpinion,
+		Phone:            SpecialTaskSettleInfo.Phone,
+		SubmitAt:         conv.MustString(SpecialTaskSettleInfo.SubmitAt, "")[0:19],
+		AgreeAt:          conv.MustString(SpecialTaskSettleInfo.AgreeAt, "")[0:19],
+	}
+}
+
+func SpecialTaskSettleToTaskInfo(SpecialTaskSettles []*http_model.SpecialTaskSettle) []*http_model.SpecialTaskSettleInfo {
+	var SpecialTaskSettleInfos []*http_model.SpecialTaskSettleInfo
+	for _, SpecialTaskSettle := range SpecialTaskSettles {
+		SpecialTaskSettle := GetSpecialTaskSettleInfoStruct(SpecialTaskSettle)
+		SpecialTaskSettleInfos = append(SpecialTaskSettleInfos, SpecialTaskSettle)
+	}
+	return SpecialTaskSettleInfos
+}
+
+func GetSpecialTaskSettleInfoStruct(SpecialTaskSettle *http_model.SpecialTaskSettle) *http_model.SpecialTaskSettleInfo {
+	TalentPlatformInfoSnap := SpecialTaskSettle.Talent.TalentPlatformInfoSnap
+	TalentPersonalInfoSnap := SpecialTaskSettle.Talent.TalentPersonalInfoSnap
+	return &http_model.SpecialTaskSettleInfo{
+		TaskID:           SpecialTaskSettle.Talent.TaskId,
+		PlatformNickname: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "platform_nickname"), ""),
+		FansCount:        conv.MustString(gjson.Get(TalentPlatformInfoSnap, "fans_count"), ""),
+		DataId:           SpecialTaskSettle.Data.DataID,
+		PlayNumber:       SpecialTaskSettle.Data.PlayNumber,
+		LikeNumber:       SpecialTaskSettle.Data.LikeNumber,
+		CommentNumber:    SpecialTaskSettle.Data.CommentNumber,
+		CollectNumber:    SpecialTaskSettle.Data.CollectNumber,
+		LinkUrl:          SpecialTaskSettle.Link.LinkUrl,
+		PhotoUrl:         SpecialTaskSettle.Data.PhotoUrl,
+		AllPayment:       SpecialTaskSettle.Talent.AllPayment,
+		RealPayment:      SpecialTaskSettle.Talent.RealPayment,
+		ReviseOpinion:    SpecialTaskSettle.Data.ReviseOpinion,
+		Phone:            conv.MustString(gjson.Get(TalentPersonalInfoSnap, "talent_phone_number"), ""),
+		CreateAt:         SpecialTaskSettle.Data.CreateAt,
+		SubmitAt:         SpecialTaskSettle.Data.SubmitAt,
+		AgreeAt:          SpecialTaskSettle.Data.AgreeAt,
+		RejectAt:         SpecialTaskSettle.Data.RejectAt,
+		IsReview:         SpecialTaskSettle.Data.IsReview,
+	}
+}

+ 72 - 0
.history/pack/special_task_settle_list_20230409154146.go

@@ -0,0 +1,72 @@
+package pack
+
+import (
+	"youngee_m_api/model/http_model"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/tidwall/gjson"
+)
+
+func MGormSpecialTaskSettleInfoListToHttpSpecialTaskSettlePreviewList(gormSpecialTaskSettleInfos []*http_model.SpecialTaskSettleInfo) []*http_model.SpecialTaskSettlePreview {
+	var httpProjectPreviews []*http_model.SpecialTaskSettlePreview
+	for _, gormSpecialTaskSettleInfo := range gormSpecialTaskSettleInfos {
+		httpSpecialTaskSettlePreview := MGormSpecialTaskSettleInfoToHttpSpecialTaskSettlePreview(gormSpecialTaskSettleInfo)
+		httpProjectPreviews = append(httpProjectPreviews, httpSpecialTaskSettlePreview)
+	}
+	return httpProjectPreviews
+}
+
+func MGormSpecialTaskSettleInfoToHttpSpecialTaskSettlePreview(SpecialTaskSettleInfo *http_model.SpecialTaskSettleInfo) *http_model.SpecialTaskSettlePreview {
+	return &http_model.SpecialTaskSettlePreview{
+		TaskID:           conv.MustString(SpecialTaskSettleInfo.TaskID, ""),
+		PlatformNickname: conv.MustString(SpecialTaskSettleInfo.PlatformNickname, ""),
+		FansCount:        conv.MustString(SpecialTaskSettleInfo.FansCount, ""),
+		PlayNumber:       SpecialTaskSettleInfo.PlayNumber,
+		LikeNumber:       SpecialTaskSettleInfo.LikeNumber,
+		CommentNumber:    SpecialTaskSettleInfo.CommentNumber,
+		CollectNumber:    SpecialTaskSettleInfo.CollectNumber,
+		LinkUrl:          SpecialTaskSettleInfo.LinkUrl,
+		PhotoUrl:         SpecialTaskSettleInfo.PhotoUrl,
+		AllPayment:       SpecialTaskSettleInfo.AllPayment,
+		RealPayment:      SpecialTaskSettleInfo.RealPayment,
+		ReviseOpinion:    SpecialTaskSettleInfo.ReviseOpinion,
+		Phone:            SpecialTaskSettleInfo.Phone,
+		SubmitAt:         conv.MustString(SpecialTaskSettleInfo.SubmitAt, "")[0:19],
+		AgreeAt:          conv.MustString(SpecialTaskSettleInfo.AgreeAt, "")[0:19],
+	}
+}
+
+func SpecialTaskSettleToTaskInfo(SpecialTaskSettles []*http_model.SpecialTaskSettle) []*http_model.SpecialTaskSettleInfo {
+	var SpecialTaskSettleInfos []*http_model.SpecialTaskSettleInfo
+	for _, SpecialTaskSettle := range SpecialTaskSettles {
+		SpecialTaskSettle := GetSpecialTaskSettleInfoStruct(SpecialTaskSettle)
+		SpecialTaskSettleInfos = append(SpecialTaskSettleInfos, SpecialTaskSettle)
+	}
+	return SpecialTaskSettleInfos
+}
+
+func GetSpecialTaskSettleInfoStruct(SpecialTaskSettle *http_model.SpecialTaskSettle) *http_model.SpecialTaskSettleInfo {
+	TalentPlatformInfoSnap := SpecialTaskSettle.Talent.TalentPlatformInfoSnap
+	TalentPersonalInfoSnap := SpecialTaskSettle.Talent.TalentPersonalInfoSnap
+	return &http_model.SpecialTaskSettleInfo{
+		TaskID:           SpecialTaskSettle.Talent.TaskId,
+		PlatformNickname: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "platform_nickname"), ""),
+		FansCount:        conv.MustString(gjson.Get(TalentPlatformInfoSnap, "fans_count"), ""),
+		DataId:           SpecialTaskSettle.Data.DataID,
+		PlayNumber:       SpecialTaskSettle.Data.PlayNumber,
+		LikeNumber:       SpecialTaskSettle.Data.LikeNumber,
+		CommentNumber:    SpecialTaskSettle.Data.CommentNumber,
+		CollectNumber:    SpecialTaskSettle.Data.CollectNumber,
+		LinkUrl:          SpecialTaskSettle.Link.LinkUrl,
+		PhotoUrl:         SpecialTaskSettle.Data.PhotoUrl,
+		AllPayment:       SpecialTaskSettle.Talent.AllPayment,
+		RealPayment:      SpecialTaskSettle.Talent.RealPayment,
+		ReviseOpinion:    SpecialTaskSettle.Data.ReviseOpinion,
+		Phone:            conv.MustString(gjson.Get(TalentPersonalInfoSnap, "talent_phone_number"), ""),
+		CreateAt:         SpecialTaskSettle.Data.CreateAt,
+		SubmitAt:         SpecialTaskSettle.Data.SubmitAt,
+		AgreeAt:          SpecialTaskSettle.Data.AgreeAt,
+		RejectAt:         SpecialTaskSettle.Data.RejectAt,
+		IsReview:         SpecialTaskSettle.Data.IsReview,
+	}
+}

+ 0 - 0
.history/pack/special_task_settle_list_condition_20230409150222.go


+ 16 - 0
.history/pack/special_task_settle_list_condition_20230409150439.go

@@ -0,0 +1,16 @@
+package pack
+
+import (
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/http_model"
+
+	"github.com/caixw/lib.go/conv"
+)
+
+func HttpSpecialTaskSettleListRequestToCondition(req *http_model.SpecialTaskSettleListRequest) *common_model.TalentConditions {
+	return &common_model.TalentConditions{
+		ProjectId:        req.ProjectId,
+		SettleStatus:     conv.MustInt64(req.SettleStatus, 0),
+		PlatformNickname: conv.MustString(req.PlatformNickname, ""),
+	}
+}

+ 180 - 0
.history/route/init_20230408160508.go

@@ -0,0 +1,180 @@
+package route
+
+import (
+	"youngee_m_api/handler"
+	"youngee_m_api/handler/operate"
+	"youngee_m_api/middleware"
+	"youngee_m_api/model/http_model"
+
+	"github.com/gin-gonic/gin"
+)
+
+func InitRoute(r *gin.Engine) {
+
+	r.POST("/login", handler.WrapCodeLoginHandler)
+	r.GET("/getLoginUser", handler.WrapGetLoginUserHandler)
+	r.POST("/userInfo", handler.WrapGetUserInfoHandler)
+	r.GET("/test/ping", func(c *gin.Context) {
+		resp := http_model.CommonResponse{
+			Status:  0,
+			Message: "",
+			Data:    "ping",
+		}
+		c.JSON(200, resp)
+	})
+	m := r.Group("/youngee/m")
+	{
+		m.Use(middleware.LoginAuthMiddleware)
+		m.POST("/test", func(c *gin.Context) {
+			resp := http_model.CommonResponse{
+				Status:  0,
+				Message: "",
+				Data:    "ping",
+			}
+			c.JSON(200, resp)
+		})
+		m.GET("/product/getEnterpriseIds", handler.WrapGetEnterpriseIdsHandler)                    // 获取所有企业用户id
+		m.POST("/product/list", handler.WrapFullProjectListHandler)                                // 查询项目列表
+		m.POST("/project/show", handler.WrapShowProjectHandler)                                    // 项目展示查询
+		m.POST("/project/handle", handler.WrapProjectHandleHandler)                                // 项目线索处理
+		m.POST("/product/findall", handler.WrapFindEnterpriseAllProductHandler)                    // 企业用户详情所有产品
+		m.POST("/product/findAllProduct", handler.WrapFindAllProductHandler)                       // 查找企业绑定的所有产品
+		m.POST("/project/create", handler.WrapCreateProjectHandler)                                // 创建项目
+		m.POST("/product/create", handler.WrapCreateProductHandler)                                // 创建产品
+		m.POST("/product/find", handler.WrapFindProductHandler)                                    // 查询产品信息
+		m.POST("/product/deletePhotoUrl", handler.WrapDeletePhotoUrlHandler)                       // 在数据库中删除图片url
+		m.POST("/pay/paysum", handler.WrapPaySumHandler)                                           // 支付
+		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)                                   // 支付
+		m.POST("/pay/getCodeUrl", handler.WrapGetCodeUrlHandler)                                   // 获取微信支付codeURL
+		m.POST("/pay/queryOrderByTradeId", handler.WrapQueryOrderByTradeIdHandler)                 // 根据交易id查询微信是否扫码付款
+		m.POST("/pay/rechargeBalance", handler.WrapRechargeBalanceHandler)                         // 支付成功后修改企业余额
+		m.POST("/project/transferToPublic", handler.WrapTransferToPublicHandler)                   // 对公转账
+		m.POST("/project/update", handler.WrapUpdateProjectHandler)                                // 更新项目信息
+		m.POST("/project/approve", handler.WrapApproveProjectHandler)                              // 审核项目
+		m.POST("/project/all", handler.WrapGetAllProjectHandler)                                   // 查找所有项目
+		m.POST("/project/taskList", handler.WrapProjectTaskListHandler)                            // 招募管理中的任务列表
+		m.POST("/project/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler)            // 更改任务状态
+		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)                 // 获取链接管理相关数据
+		m.POST("/project/getdatanumberinfo", handler.WrapGetDataNumberInfoHandler)                 // 获取数据管理相关数据
+		m.POST("/project/getreviewnumberinfo", handler.WrapGetReviewNumberInfoHandler)             // 获取审稿管理相关数据
+		m.POST("/project/getdefaultnumberinfo", handler.WrapGetDefaultNumberInfoHandler)           // 获取违约管理相关数据
+		m.POST("/project/tasklogisticslist", handler.WrapTaskLogisticsListHandler)                 // 物流信息查询
+		m.POST("/project/createlogistics", handler.WrapCreateLogisticsHandler)                     // 创建物流信息
+		m.POST("/project/signforreceipt", handler.WrapSignForReceiptHandler)                       // 签收订单
+		m.POST("/project/taskscriptlist", handler.WrapTaskScriptListHandler)                       // 查询脚本列表
+		m.POST("/project/scriptopinion", handler.WrapScriptOpinionHandler)                         // 脚本审核意见提交
+		m.POST("/project/acceptscript", handler.WrapAcceptScriptHandler)                           // 同意脚本
+		m.POST("/project/tasksketchlist", handler.WrapTaskSketchListHandler)                       // 查询初稿列表
+		m.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler)                     // 查询脚本配图和视频demo
+		m.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)                         // 初稿审核意见提交
+		m.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)                           // 同意脚本
+		m.POST("/project/tasklinklist", handler.WrapTaskLinkListHandler)                           // 查询链接列表
+		m.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)                             // 链接审核意见提交
+		m.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)                               // 同意链接
+		m.POST("/project/taskdatalist", handler.WrapTaskDataListHandler)                           // 查询数据列表
+		m.POST("/project/dataopinion", handler.WrapDataOpinionHandler)                             // 数据审核意见提交
+		m.POST("/project/acceptdata", handler.WrapAcceptDataHandler)                               // 同意数据
+		m.POST("/project/taskdefaultreviewlist", handler.WrapTaskDefaultReviewListHandler)         // 查询违约列表-脚本、初稿、链接上传违约
+		m.POST("/project/taskdefaultdatalist", handler.WrapTaskDefaultDataListHandler)             // 查询违约列表-数据违约
+		m.POST("/project/taskteminatinglist", handler.WrapTaskTerminatingListHandler)              // 查询违约列表-解约待处理
+		m.POST("/project/taskteminatedlist", handler.WrapTaskTerminatedListHandler)                // 查询违约列表-解约
+		m.POST("/project/taskteminate", handler.WrapTaskTerminateHandler)                          // 解约
+		m.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)                         // 获取初稿
+		m.POST("/project/taskfinishlist", handler.WrapTaskFinishListHandler)                       // 查询违约列表-数据违约
+		m.POST("/project/getfinishnumberinfo", handler.WrapGetFinishNumberInfoHandler)             // 获取结案数量
+		m.POST("/project/getProduceRecords", handler.WrapGetProjectRecordsHandler)                 // 获取项目记录
+		m.POST("/project/recruit/getservicecharge", handler.WrapGetServiceChargeHandler)           // 获取产品置换服务费
+		m.POST("/project/getlogisticsnumberinfo", handler.WrapGetLogisticsNumberInfoHandler)       // 获取物流数量
+		m.POST("/project/getfinishdata", handler.WrapGetFinishDataHandler)                         // 获取结案信息
+		m.POST("/project/getSpecialInviteNumber", handler.WrapGetSpecialInviteNumberHandler)       // 查询专项任务邀请管理任务数量
+		m.POST("/project/getSpecialLogisticNumber", handler.WrapGetSpecialLogisticNumberHandler)   // 查询专项任务发货管理任务数量
+		m.POST("/project/getSpecialLogisticList", handler.WrapGetSpecialLogisticListHandler)       // 查询专项任务发货管理任务列表
+		m.POST("/project/createSpecialLogistics", handler.WrapCreateSpecialLogisticsHandler)       // 创建专项创建物流信息
+		m.POST("/project/signForSpecialLogistic", handler.WrapSignForSpecialLogisticHandler)       // 签收专项创建物流订单
+		m.POST("/project/getSpecialReviewNumber", handler.WrapGetSpecialReviewNumberHandler)       // 查询专项任务审稿管理任务数量
+		m.POST("/project/getSpecialLinkNumber", handler.WrapGetSpecialLinkNumberHandler)           // 查询专项任务发布管理任务数量
+		m.POST("/project/getSpecialDataNumber", handler.WrapGetSpecialDataNumberHandler)           // 查询专项任务数据管理任务数量
+		m.POST("/project/specialTaskInviteList", handler.WrapSpecialTaskInviteListHandler)         // 查询专项任务邀请管理任务列表
+		m.POST("/project/specialTaskSketchList", handler.WrapSpecialTaskSketchListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskScriptList", handler.WrapSpecialTaskScriptListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskLinkList", handler.WrapSpecialTaskLinkListHandler)             // 查询专项任务发布管理任务列表
+		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
+		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler)                              // 获取微信二维码
+	}
+	u := r.Group("/youngee/m/user")
+	{
+		u.Use(middleware.LoginAuthMiddleware)
+		u.POST("/getUserList", handler.WrapGetUserListHandler)       // 查找员工账号信息
+		u.POST("/updateUserInfo", handler.WrapUpdateUserInfoHandler) // 修改员工信息
+		u.POST("/createUser", handler.WrapCreateUserHandler)         // 创建员工账号
+		u.POST("/disabledUser", handler.WrapDisabledUserHandler)     // 禁用员工账号
+		u.POST("/enterpriseUser", handler.WrapEnterpriseUserHandler) // 查找企业用户信息
+		u.POST("/creatorList", handler.WrapCreatorListHandler)       // 查找创作者信息
+		u.POST("/platformAccInfo", handler.WrapPlatformAccInfoHandler)
+		u.POST("/talentInfo", handler.WrapTalentInfoHandler)
+		u.POST("/accountInfo", handler.WrapAccountInfoHandler)     // 达人端账号信息
+		u.POST("/deleteAccount", handler.WrapDeleteAccountHandler) // 解绑达人端账号
+		u.POST("/getTaskRecord", handler.WrapGetTaskRecordHandler)
+		u.POST("/modifyAccInfo", handler.WrapModifyAccInfoHandler) // 更新用户账号信息
+	}
+	o := r.Group("/youngee/m/operate")
+	{
+		o.Use(middleware.LoginAuthMiddleware)
+		o.POST("/addPricing", operate.WrapAddPricingHandler)
+		o.POST("/searchPricing", operate.WrapSearchPricingHandler)
+		o.POST("/modifyPricing", operate.WrapModifyPricingHandler)
+		o.POST("/signInOffline", operate.WrapSignInOfflineHandler)
+		o.POST("/signInVirtual", operate.WrapSignInVirtualHandler)
+		o.POST("/autoReview", operate.WrapAutoReviewHandler)
+		o.POST("/autoReviewUnlimited", operate.WrapAutoReviewUnlimitedHandler)
+		o.POST("/postReview", operate.WrapPostReviewHandler)
+		o.POST("/caseClose", operate.WrapCaseCloseHandler)
+		o.POST("/invalid", operate.WrapInvalidHandler)
+		o.POST("/draftDefaultInPic", operate.WrapDraftDefaultInPicHandler)
+		o.POST("/draftDefaultInMv", operate.WrapDraftDefaultInMvHandler)
+		o.POST("/scriptDefault", operate.WrapScriptDefaultHandler)
+		o.POST("/linkBreach", operate.WrapLinkBreachHandler)
+		o.POST("/caseCloseDefault", operate.WrapCaseCloseDefaultHandler)
+		o.GET("/countNumOfDefaults", operate.WrapCountNumOfDefaultsHandler)
+		o.POST("/breachPending", operate.WrapBreachPendingHandler)
+		o.POST("/contractBreach", operate.WrapContractBreachHandler) // 解约
+		o.POST("/getSketchInfoByTaskId", operate.WrapGetSketchInfoByTaskIdHandler)
+		o.POST("/breachHandled", operate.WrapBreachHandledHandler)
+		o.POST("/sketchReplaceNotUpload", operate.WrapSketchReplaceNotUploadHandler)
+		o.POST("/sketchReplaceTimeOut", operate.WrapSketchReplaceTimeOutHandler)
+		o.POST("/sketchOtherNotUpload", operate.WrapSketchOtherNotUploadHandler)
+		o.POST("/sketchOtherTimeOut", operate.WrapSketchOtherTimeOutHandler)
+		o.POST("/scriptReplaceNotUpload", operate.WrapScriptReplaceNotUploadHandler)
+		o.POST("/scriptReplaceTimeOut", operate.WrapScriptReplaceTimeOutHandler)
+		o.POST("/scriptOtherNotUpload", operate.WrapScriptOtherNotUploadHandler)
+		o.POST("/scriptOtherTimeOut", operate.WrapScriptOtherTimeOutHandler)
+		o.POST("/linkReplaceNotUpload", operate.WrapLinkReplaceNotUploadHandler)
+		o.POST("/linkReplaceTimeOut", operate.WrapLinkReplaceTimeOutHandler)
+		o.POST("/linkOtherNotUpload", operate.WrapLinkOtherNotUploadHandler)
+		o.POST("/linkOtherTimeOut", operate.WrapLinkOtherTimeOutHandler)
+		o.POST("/dataReplaceNotUpload", operate.WrapDataReplaceNotUploadHandler)
+		o.POST("/dataReplaceTimeOut", operate.WrapDataReplaceTimeOutHandler)
+		o.POST("/dataOtherNotUpload", operate.WrapDataOtherNotUploadHandler)
+		o.POST("/dataOtherTimeOut", operate.WrapDataOtherTimeOutHandler)
+		o.GET("/getHours", operate.WrapGetHoursHandler)
+		o.GET("/getPercents", operate.WrapGetPercentsHandler)
+	}
+	f := r.Group("/youngee/m/finance")
+	{
+		f.Use(middleware.LoginAuthMiddleware)
+		f.POST("/withdrawalRecords", handler.WrapWithdrawalRecordsHandler)     // 搜索提现记录
+		f.POST("/getWithdrawalRecord", handler.WrapGetWithdrawalRecordHandler) // 查看提现记录
+		f.GET("/getWithdrawNums", handler.WrapGetWithdrawNumsHandler)          // 获取待提现的数量
+		f.GET("/getInvoiceNums", handler.WrapGetInvoiceNumsHandler)            // 获取待提现的数量
+		f.GET("/getRechargeNums", handler.WrapGetRechargeNumsHandler)          // 获取待开票的数量
+		f.POST("/ConfirmWithdrawal", handler.WrapConfirmWithdrawalHandler)     // 确认提现
+		f.POST("/getBankInfo", handler.WrapGetBankInfoHandler)                 // 获取银行开户地信息
+		f.POST("/getCodeUrl", handler.WrapGetCodeUrlHandler)                   // 获取微信支付链接
+		f.POST("/invoiceRecords", handler.WrapInvoiceRecordsHandler)           // 搜索开票记录
+		f.POST("/confirmInvoice", handler.WrapConfirmInvoiceHandler)           // 确认开票
+		f.POST("/rechargeRecords", handler.WrapRechargeRecordsHandler)         // 搜索充值记录
+		f.POST("/operateRecharge", handler.WrapOperateRechargeHandler)         // 充值记录的修改和确认操作
+	}
+}

+ 181 - 0
.history/route/init_20230409135907.go

@@ -0,0 +1,181 @@
+package route
+
+import (
+	"youngee_m_api/handler"
+	"youngee_m_api/handler/operate"
+	"youngee_m_api/middleware"
+	"youngee_m_api/model/http_model"
+
+	"github.com/gin-gonic/gin"
+)
+
+func InitRoute(r *gin.Engine) {
+
+	r.POST("/login", handler.WrapCodeLoginHandler)
+	r.GET("/getLoginUser", handler.WrapGetLoginUserHandler)
+	r.POST("/userInfo", handler.WrapGetUserInfoHandler)
+	r.GET("/test/ping", func(c *gin.Context) {
+		resp := http_model.CommonResponse{
+			Status:  0,
+			Message: "",
+			Data:    "ping",
+		}
+		c.JSON(200, resp)
+	})
+	m := r.Group("/youngee/m")
+	{
+		m.Use(middleware.LoginAuthMiddleware)
+		m.POST("/test", func(c *gin.Context) {
+			resp := http_model.CommonResponse{
+				Status:  0,
+				Message: "",
+				Data:    "ping",
+			}
+			c.JSON(200, resp)
+		})
+		m.GET("/product/getEnterpriseIds", handler.WrapGetEnterpriseIdsHandler)                    // 获取所有企业用户id
+		m.POST("/product/list", handler.WrapFullProjectListHandler)                                // 查询项目列表
+		m.POST("/project/show", handler.WrapShowProjectHandler)                                    // 项目展示查询
+		m.POST("/project/handle", handler.WrapProjectHandleHandler)                                // 项目线索处理
+		m.POST("/product/findall", handler.WrapFindEnterpriseAllProductHandler)                    // 企业用户详情所有产品
+		m.POST("/product/findAllProduct", handler.WrapFindAllProductHandler)                       // 查找企业绑定的所有产品
+		m.POST("/project/create", handler.WrapCreateProjectHandler)                                // 创建项目
+		m.POST("/product/create", handler.WrapCreateProductHandler)                                // 创建产品
+		m.POST("/product/find", handler.WrapFindProductHandler)                                    // 查询产品信息
+		m.POST("/product/deletePhotoUrl", handler.WrapDeletePhotoUrlHandler)                       // 在数据库中删除图片url
+		m.POST("/pay/paysum", handler.WrapPaySumHandler)                                           // 支付
+		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)                                   // 支付
+		m.POST("/pay/getCodeUrl", handler.WrapGetCodeUrlHandler)                                   // 获取微信支付codeURL
+		m.POST("/pay/queryOrderByTradeId", handler.WrapQueryOrderByTradeIdHandler)                 // 根据交易id查询微信是否扫码付款
+		m.POST("/pay/rechargeBalance", handler.WrapRechargeBalanceHandler)                         // 支付成功后修改企业余额
+		m.POST("/project/transferToPublic", handler.WrapTransferToPublicHandler)                   // 对公转账
+		m.POST("/project/update", handler.WrapUpdateProjectHandler)                                // 更新项目信息
+		m.POST("/project/approve", handler.WrapApproveProjectHandler)                              // 审核项目
+		m.POST("/project/all", handler.WrapGetAllProjectHandler)                                   // 查找所有项目
+		m.POST("/project/taskList", handler.WrapProjectTaskListHandler)                            // 招募管理中的任务列表
+		m.POST("/project/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler)            // 更改任务状态
+		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)                 // 获取链接管理相关数据
+		m.POST("/project/getdatanumberinfo", handler.WrapGetDataNumberInfoHandler)                 // 获取数据管理相关数据
+		m.POST("/project/getreviewnumberinfo", handler.WrapGetReviewNumberInfoHandler)             // 获取审稿管理相关数据
+		m.POST("/project/getdefaultnumberinfo", handler.WrapGetDefaultNumberInfoHandler)           // 获取违约管理相关数据
+		m.POST("/project/tasklogisticslist", handler.WrapTaskLogisticsListHandler)                 // 物流信息查询
+		m.POST("/project/createlogistics", handler.WrapCreateLogisticsHandler)                     // 创建物流信息
+		m.POST("/project/signforreceipt", handler.WrapSignForReceiptHandler)                       // 签收订单
+		m.POST("/project/taskscriptlist", handler.WrapTaskScriptListHandler)                       // 查询脚本列表
+		m.POST("/project/scriptopinion", handler.WrapScriptOpinionHandler)                         // 脚本审核意见提交
+		m.POST("/project/acceptscript", handler.WrapAcceptScriptHandler)                           // 同意脚本
+		m.POST("/project/tasksketchlist", handler.WrapTaskSketchListHandler)                       // 查询初稿列表
+		m.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler)                     // 查询脚本配图和视频demo
+		m.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)                         // 初稿审核意见提交
+		m.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)                           // 同意脚本
+		m.POST("/project/tasklinklist", handler.WrapTaskLinkListHandler)                           // 查询链接列表
+		m.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)                             // 链接审核意见提交
+		m.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)                               // 同意链接
+		m.POST("/project/taskdatalist", handler.WrapTaskDataListHandler)                           // 查询数据列表
+		m.POST("/project/dataopinion", handler.WrapDataOpinionHandler)                             // 数据审核意见提交
+		m.POST("/project/acceptdata", handler.WrapAcceptDataHandler)                               // 同意数据
+		m.POST("/project/taskdefaultreviewlist", handler.WrapTaskDefaultReviewListHandler)         // 查询违约列表-脚本、初稿、链接上传违约
+		m.POST("/project/taskdefaultdatalist", handler.WrapTaskDefaultDataListHandler)             // 查询违约列表-数据违约
+		m.POST("/project/taskteminatinglist", handler.WrapTaskTerminatingListHandler)              // 查询违约列表-解约待处理
+		m.POST("/project/taskteminatedlist", handler.WrapTaskTerminatedListHandler)                // 查询违约列表-解约
+		m.POST("/project/taskteminate", handler.WrapTaskTerminateHandler)                          // 解约
+		m.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)                         // 获取初稿
+		m.POST("/project/taskfinishlist", handler.WrapTaskFinishListHandler)                       // 查询违约列表-数据违约
+		m.POST("/project/getfinishnumberinfo", handler.WrapGetFinishNumberInfoHandler)             // 获取结案数量
+		m.POST("/project/getProduceRecords", handler.WrapGetProjectRecordsHandler)                 // 获取项目记录
+		m.POST("/project/recruit/getservicecharge", handler.WrapGetServiceChargeHandler)           // 获取产品置换服务费
+		m.POST("/project/getlogisticsnumberinfo", handler.WrapGetLogisticsNumberInfoHandler)       // 获取物流数量
+		m.POST("/project/getfinishdata", handler.WrapGetFinishDataHandler)                         // 获取结案信息
+		m.POST("/project/getSpecialInviteNumber", handler.WrapGetSpecialInviteNumberHandler)       // 查询专项任务邀请管理任务数量
+		m.POST("/project/getSpecialLogisticNumber", handler.WrapGetSpecialLogisticNumberHandler)   // 查询专项任务发货管理任务数量
+		m.POST("/project/getSpecialLogisticList", handler.WrapGetSpecialLogisticListHandler)       // 查询专项任务发货管理任务列表
+		m.POST("/project/createSpecialLogistics", handler.WrapCreateSpecialLogisticsHandler)       // 创建专项创建物流信息
+		m.POST("/project/signForSpecialLogistic", handler.WrapSignForSpecialLogisticHandler)       // 签收专项创建物流订单
+		m.POST("/project/getSpecialReviewNumber", handler.WrapGetSpecialReviewNumberHandler)       // 查询专项任务审稿管理任务数量
+		m.POST("/project/getSpecialLinkNumber", handler.WrapGetSpecialLinkNumberHandler)           // 查询专项任务发布管理任务数量
+		m.POST("/project/getSpecialDataNumber", handler.WrapGetSpecialDataNumberHandler)           // 查询专项任务数据管理任务数量
+		m.POST("/project/specialTaskInviteList", handler.WrapSpecialTaskInviteListHandler)         // 查询专项任务邀请管理任务列表
+		m.POST("/project/specialTaskSketchList", handler.WrapSpecialTaskSketchListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskScriptList", handler.WrapSpecialTaskScriptListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskLinkList", handler.WrapSpecialTaskLinkListHandler)             // 查询专项任务发布管理任务列表
+		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
+		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
+		m.POST("/project/getSpecialSettleNumber", handler.WrapGetSpecialSettleNumberHandler)       // 查询专项任务结算管理任务数量
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler)                              // 获取微信二维码
+	}
+	u := r.Group("/youngee/m/user")
+	{
+		u.Use(middleware.LoginAuthMiddleware)
+		u.POST("/getUserList", handler.WrapGetUserListHandler)       // 查找员工账号信息
+		u.POST("/updateUserInfo", handler.WrapUpdateUserInfoHandler) // 修改员工信息
+		u.POST("/createUser", handler.WrapCreateUserHandler)         // 创建员工账号
+		u.POST("/disabledUser", handler.WrapDisabledUserHandler)     // 禁用员工账号
+		u.POST("/enterpriseUser", handler.WrapEnterpriseUserHandler) // 查找企业用户信息
+		u.POST("/creatorList", handler.WrapCreatorListHandler)       // 查找创作者信息
+		u.POST("/platformAccInfo", handler.WrapPlatformAccInfoHandler)
+		u.POST("/talentInfo", handler.WrapTalentInfoHandler)
+		u.POST("/accountInfo", handler.WrapAccountInfoHandler)     // 达人端账号信息
+		u.POST("/deleteAccount", handler.WrapDeleteAccountHandler) // 解绑达人端账号
+		u.POST("/getTaskRecord", handler.WrapGetTaskRecordHandler)
+		u.POST("/modifyAccInfo", handler.WrapModifyAccInfoHandler) // 更新用户账号信息
+	}
+	o := r.Group("/youngee/m/operate")
+	{
+		o.Use(middleware.LoginAuthMiddleware)
+		o.POST("/addPricing", operate.WrapAddPricingHandler)
+		o.POST("/searchPricing", operate.WrapSearchPricingHandler)
+		o.POST("/modifyPricing", operate.WrapModifyPricingHandler)
+		o.POST("/signInOffline", operate.WrapSignInOfflineHandler)
+		o.POST("/signInVirtual", operate.WrapSignInVirtualHandler)
+		o.POST("/autoReview", operate.WrapAutoReviewHandler)
+		o.POST("/autoReviewUnlimited", operate.WrapAutoReviewUnlimitedHandler)
+		o.POST("/postReview", operate.WrapPostReviewHandler)
+		o.POST("/caseClose", operate.WrapCaseCloseHandler)
+		o.POST("/invalid", operate.WrapInvalidHandler)
+		o.POST("/draftDefaultInPic", operate.WrapDraftDefaultInPicHandler)
+		o.POST("/draftDefaultInMv", operate.WrapDraftDefaultInMvHandler)
+		o.POST("/scriptDefault", operate.WrapScriptDefaultHandler)
+		o.POST("/linkBreach", operate.WrapLinkBreachHandler)
+		o.POST("/caseCloseDefault", operate.WrapCaseCloseDefaultHandler)
+		o.GET("/countNumOfDefaults", operate.WrapCountNumOfDefaultsHandler)
+		o.POST("/breachPending", operate.WrapBreachPendingHandler)
+		o.POST("/contractBreach", operate.WrapContractBreachHandler) // 解约
+		o.POST("/getSketchInfoByTaskId", operate.WrapGetSketchInfoByTaskIdHandler)
+		o.POST("/breachHandled", operate.WrapBreachHandledHandler)
+		o.POST("/sketchReplaceNotUpload", operate.WrapSketchReplaceNotUploadHandler)
+		o.POST("/sketchReplaceTimeOut", operate.WrapSketchReplaceTimeOutHandler)
+		o.POST("/sketchOtherNotUpload", operate.WrapSketchOtherNotUploadHandler)
+		o.POST("/sketchOtherTimeOut", operate.WrapSketchOtherTimeOutHandler)
+		o.POST("/scriptReplaceNotUpload", operate.WrapScriptReplaceNotUploadHandler)
+		o.POST("/scriptReplaceTimeOut", operate.WrapScriptReplaceTimeOutHandler)
+		o.POST("/scriptOtherNotUpload", operate.WrapScriptOtherNotUploadHandler)
+		o.POST("/scriptOtherTimeOut", operate.WrapScriptOtherTimeOutHandler)
+		o.POST("/linkReplaceNotUpload", operate.WrapLinkReplaceNotUploadHandler)
+		o.POST("/linkReplaceTimeOut", operate.WrapLinkReplaceTimeOutHandler)
+		o.POST("/linkOtherNotUpload", operate.WrapLinkOtherNotUploadHandler)
+		o.POST("/linkOtherTimeOut", operate.WrapLinkOtherTimeOutHandler)
+		o.POST("/dataReplaceNotUpload", operate.WrapDataReplaceNotUploadHandler)
+		o.POST("/dataReplaceTimeOut", operate.WrapDataReplaceTimeOutHandler)
+		o.POST("/dataOtherNotUpload", operate.WrapDataOtherNotUploadHandler)
+		o.POST("/dataOtherTimeOut", operate.WrapDataOtherTimeOutHandler)
+		o.GET("/getHours", operate.WrapGetHoursHandler)
+		o.GET("/getPercents", operate.WrapGetPercentsHandler)
+	}
+	f := r.Group("/youngee/m/finance")
+	{
+		f.Use(middleware.LoginAuthMiddleware)
+		f.POST("/withdrawalRecords", handler.WrapWithdrawalRecordsHandler)     // 搜索提现记录
+		f.POST("/getWithdrawalRecord", handler.WrapGetWithdrawalRecordHandler) // 查看提现记录
+		f.GET("/getWithdrawNums", handler.WrapGetWithdrawNumsHandler)          // 获取待提现的数量
+		f.GET("/getInvoiceNums", handler.WrapGetInvoiceNumsHandler)            // 获取待提现的数量
+		f.GET("/getRechargeNums", handler.WrapGetRechargeNumsHandler)          // 获取待开票的数量
+		f.POST("/ConfirmWithdrawal", handler.WrapConfirmWithdrawalHandler)     // 确认提现
+		f.POST("/getBankInfo", handler.WrapGetBankInfoHandler)                 // 获取银行开户地信息
+		f.POST("/getCodeUrl", handler.WrapGetCodeUrlHandler)                   // 获取微信支付链接
+		f.POST("/invoiceRecords", handler.WrapInvoiceRecordsHandler)           // 搜索开票记录
+		f.POST("/confirmInvoice", handler.WrapConfirmInvoiceHandler)           // 确认开票
+		f.POST("/rechargeRecords", handler.WrapRechargeRecordsHandler)         // 搜索充值记录
+		f.POST("/operateRecharge", handler.WrapOperateRechargeHandler)         // 充值记录的修改和确认操作
+	}
+}

+ 183 - 0
.history/route/init_20230409140943.go

@@ -0,0 +1,183 @@
+package route
+
+import (
+	"youngee_m_api/handler"
+	"youngee_m_api/handler/operate"
+	"youngee_m_api/middleware"
+	"youngee_m_api/model/http_model"
+
+	"github.com/gin-gonic/gin"
+)
+
+func InitRoute(r *gin.Engine) {
+
+	r.POST("/login", handler.WrapCodeLoginHandler)
+	r.GET("/getLoginUser", handler.WrapGetLoginUserHandler)
+	r.POST("/userInfo", handler.WrapGetUserInfoHandler)
+	r.GET("/test/ping", func(c *gin.Context) {
+		resp := http_model.CommonResponse{
+			Status:  0,
+			Message: "",
+			Data:    "ping",
+		}
+		c.JSON(200, resp)
+	})
+	m := r.Group("/youngee/m")
+	{
+		m.Use(middleware.LoginAuthMiddleware)
+		m.POST("/test", func(c *gin.Context) {
+			resp := http_model.CommonResponse{
+				Status:  0,
+				Message: "",
+				Data:    "ping",
+			}
+			c.JSON(200, resp)
+		})
+		m.GET("/product/getEnterpriseIds", handler.WrapGetEnterpriseIdsHandler)                    // 获取所有企业用户id
+		m.POST("/product/list", handler.WrapFullProjectListHandler)                                // 查询项目列表
+		m.POST("/project/show", handler.WrapShowProjectHandler)                                    // 项目展示查询
+		m.POST("/project/handle", handler.WrapProjectHandleHandler)                                // 项目线索处理
+		m.POST("/product/findall", handler.WrapFindEnterpriseAllProductHandler)                    // 企业用户详情所有产品
+		m.POST("/product/findAllProduct", handler.WrapFindAllProductHandler)                       // 查找企业绑定的所有产品
+		m.POST("/project/create", handler.WrapCreateProjectHandler)                                // 创建项目
+		m.POST("/product/create", handler.WrapCreateProductHandler)                                // 创建产品
+		m.POST("/product/find", handler.WrapFindProductHandler)                                    // 查询产品信息
+		m.POST("/product/deletePhotoUrl", handler.WrapDeletePhotoUrlHandler)                       // 在数据库中删除图片url
+		m.POST("/pay/paysum", handler.WrapPaySumHandler)                                           // 支付
+		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)                                   // 支付
+		m.POST("/pay/getCodeUrl", handler.WrapGetCodeUrlHandler)                                   // 获取微信支付codeURL
+		m.POST("/pay/queryOrderByTradeId", handler.WrapQueryOrderByTradeIdHandler)                 // 根据交易id查询微信是否扫码付款
+		m.POST("/pay/rechargeBalance", handler.WrapRechargeBalanceHandler)                         // 支付成功后修改企业余额
+		m.POST("/project/transferToPublic", handler.WrapTransferToPublicHandler)                   // 对公转账
+		m.POST("/project/update", handler.WrapUpdateProjectHandler)                                // 更新项目信息
+		m.POST("/project/approve", handler.WrapApproveProjectHandler)                              // 审核项目
+		m.POST("/project/all", handler.WrapGetAllProjectHandler)                                   // 查找所有项目
+		m.POST("/project/taskList", handler.WrapProjectTaskListHandler)                            // 招募管理中的任务列表
+		m.POST("/project/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler)            // 更改任务状态
+		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)                 // 获取链接管理相关数据
+		m.POST("/project/getdatanumberinfo", handler.WrapGetDataNumberInfoHandler)                 // 获取数据管理相关数据
+		m.POST("/project/getreviewnumberinfo", handler.WrapGetReviewNumberInfoHandler)             // 获取审稿管理相关数据
+		m.POST("/project/getdefaultnumberinfo", handler.WrapGetDefaultNumberInfoHandler)           // 获取违约管理相关数据
+		m.POST("/project/tasklogisticslist", handler.WrapTaskLogisticsListHandler)                 // 物流信息查询
+		m.POST("/project/createlogistics", handler.WrapCreateLogisticsHandler)                     // 创建物流信息
+		m.POST("/project/signforreceipt", handler.WrapSignForReceiptHandler)                       // 签收订单
+		m.POST("/project/taskscriptlist", handler.WrapTaskScriptListHandler)                       // 查询脚本列表
+		m.POST("/project/scriptopinion", handler.WrapScriptOpinionHandler)                         // 脚本审核意见提交
+		m.POST("/project/acceptscript", handler.WrapAcceptScriptHandler)                           // 同意脚本
+		m.POST("/project/tasksketchlist", handler.WrapTaskSketchListHandler)                       // 查询初稿列表
+		m.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler)                     // 查询脚本配图和视频demo
+		m.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)                         // 初稿审核意见提交
+		m.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)                           // 同意脚本
+		m.POST("/project/tasklinklist", handler.WrapTaskLinkListHandler)                           // 查询链接列表
+		m.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)                             // 链接审核意见提交
+		m.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)                               // 同意链接
+		m.POST("/project/taskdatalist", handler.WrapTaskDataListHandler)                           // 查询数据列表
+		m.POST("/project/dataopinion", handler.WrapDataOpinionHandler)                             // 数据审核意见提交
+		m.POST("/project/acceptdata", handler.WrapAcceptDataHandler)                               // 同意数据
+		m.POST("/project/taskdefaultreviewlist", handler.WrapTaskDefaultReviewListHandler)         // 查询违约列表-脚本、初稿、链接上传违约
+		m.POST("/project/taskdefaultdatalist", handler.WrapTaskDefaultDataListHandler)             // 查询违约列表-数据违约
+		m.POST("/project/taskteminatinglist", handler.WrapTaskTerminatingListHandler)              // 查询违约列表-解约待处理
+		m.POST("/project/taskteminatedlist", handler.WrapTaskTerminatedListHandler)                // 查询违约列表-解约
+		m.POST("/project/taskteminate", handler.WrapTaskTerminateHandler)                          // 解约
+		m.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)                         // 获取初稿
+		m.POST("/project/taskfinishlist", handler.WrapTaskFinishListHandler)                       // 查询违约列表-数据违约
+		m.POST("/project/getfinishnumberinfo", handler.WrapGetFinishNumberInfoHandler)             // 获取结案数量
+		m.POST("/project/getProduceRecords", handler.WrapGetProjectRecordsHandler)                 // 获取项目记录
+		m.POST("/project/recruit/getservicecharge", handler.WrapGetServiceChargeHandler)           // 获取产品置换服务费
+		m.POST("/project/getlogisticsnumberinfo", handler.WrapGetLogisticsNumberInfoHandler)       // 获取物流数量
+		m.POST("/project/getfinishdata", handler.WrapGetFinishDataHandler)                         // 获取结案信息
+		m.POST("/project/getSpecialInviteNumber", handler.WrapGetSpecialInviteNumberHandler)       // 查询专项任务邀请管理任务数量
+		m.POST("/project/getSpecialLogisticNumber", handler.WrapGetSpecialLogisticNumberHandler)   // 查询专项任务发货管理任务数量
+		m.POST("/project/getSpecialLogisticList", handler.WrapGetSpecialLogisticListHandler)       // 查询专项任务发货管理任务列表
+		m.POST("/project/createSpecialLogistics", handler.WrapCreateSpecialLogisticsHandler)       // 创建专项创建物流信息
+		m.POST("/project/signForSpecialLogistic", handler.WrapSignForSpecialLogisticHandler)       // 签收专项创建物流订单
+		m.POST("/project/getSpecialReviewNumber", handler.WrapGetSpecialReviewNumberHandler)       // 查询专项任务审稿管理任务数量
+		m.POST("/project/getSpecialLinkNumber", handler.WrapGetSpecialLinkNumberHandler)           // 查询专项任务发布管理任务数量
+		m.POST("/project/getSpecialSettleNumber", handler.WrapGetSpecialSettleNumberHandler)       // 查询专项任务结算管理任务数量
+		m.POST("/project/getSpecialDataNumber", handler.WrapGetSpecialDataNumberHandler)           // 查询专项任务数据管理任务数量
+		m.POST("/project/specialTaskInviteList", handler.WrapSpecialTaskInviteListHandler)         // 查询专项任务邀请管理任务列表
+		m.POST("/project/specialTaskSketchList", handler.WrapSpecialTaskSketchListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskScriptList", handler.WrapSpecialTaskScriptListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskLinkList", handler.WrapSpecialTaskLinkListHandler)             // 查询专项任务发布管理任务列表
+		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
+		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
+
+		m.POST("/project/specialTaskSettleList", handler.WrapSpecialTaskDataListHandler) // 查询专项任务数据管理任务列表
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler)                    // 获取微信二维码
+	}
+	u := r.Group("/youngee/m/user")
+	{
+		u.Use(middleware.LoginAuthMiddleware)
+		u.POST("/getUserList", handler.WrapGetUserListHandler)       // 查找员工账号信息
+		u.POST("/updateUserInfo", handler.WrapUpdateUserInfoHandler) // 修改员工信息
+		u.POST("/createUser", handler.WrapCreateUserHandler)         // 创建员工账号
+		u.POST("/disabledUser", handler.WrapDisabledUserHandler)     // 禁用员工账号
+		u.POST("/enterpriseUser", handler.WrapEnterpriseUserHandler) // 查找企业用户信息
+		u.POST("/creatorList", handler.WrapCreatorListHandler)       // 查找创作者信息
+		u.POST("/platformAccInfo", handler.WrapPlatformAccInfoHandler)
+		u.POST("/talentInfo", handler.WrapTalentInfoHandler)
+		u.POST("/accountInfo", handler.WrapAccountInfoHandler)     // 达人端账号信息
+		u.POST("/deleteAccount", handler.WrapDeleteAccountHandler) // 解绑达人端账号
+		u.POST("/getTaskRecord", handler.WrapGetTaskRecordHandler)
+		u.POST("/modifyAccInfo", handler.WrapModifyAccInfoHandler) // 更新用户账号信息
+	}
+	o := r.Group("/youngee/m/operate")
+	{
+		o.Use(middleware.LoginAuthMiddleware)
+		o.POST("/addPricing", operate.WrapAddPricingHandler)
+		o.POST("/searchPricing", operate.WrapSearchPricingHandler)
+		o.POST("/modifyPricing", operate.WrapModifyPricingHandler)
+		o.POST("/signInOffline", operate.WrapSignInOfflineHandler)
+		o.POST("/signInVirtual", operate.WrapSignInVirtualHandler)
+		o.POST("/autoReview", operate.WrapAutoReviewHandler)
+		o.POST("/autoReviewUnlimited", operate.WrapAutoReviewUnlimitedHandler)
+		o.POST("/postReview", operate.WrapPostReviewHandler)
+		o.POST("/caseClose", operate.WrapCaseCloseHandler)
+		o.POST("/invalid", operate.WrapInvalidHandler)
+		o.POST("/draftDefaultInPic", operate.WrapDraftDefaultInPicHandler)
+		o.POST("/draftDefaultInMv", operate.WrapDraftDefaultInMvHandler)
+		o.POST("/scriptDefault", operate.WrapScriptDefaultHandler)
+		o.POST("/linkBreach", operate.WrapLinkBreachHandler)
+		o.POST("/caseCloseDefault", operate.WrapCaseCloseDefaultHandler)
+		o.GET("/countNumOfDefaults", operate.WrapCountNumOfDefaultsHandler)
+		o.POST("/breachPending", operate.WrapBreachPendingHandler)
+		o.POST("/contractBreach", operate.WrapContractBreachHandler) // 解约
+		o.POST("/getSketchInfoByTaskId", operate.WrapGetSketchInfoByTaskIdHandler)
+		o.POST("/breachHandled", operate.WrapBreachHandledHandler)
+		o.POST("/sketchReplaceNotUpload", operate.WrapSketchReplaceNotUploadHandler)
+		o.POST("/sketchReplaceTimeOut", operate.WrapSketchReplaceTimeOutHandler)
+		o.POST("/sketchOtherNotUpload", operate.WrapSketchOtherNotUploadHandler)
+		o.POST("/sketchOtherTimeOut", operate.WrapSketchOtherTimeOutHandler)
+		o.POST("/scriptReplaceNotUpload", operate.WrapScriptReplaceNotUploadHandler)
+		o.POST("/scriptReplaceTimeOut", operate.WrapScriptReplaceTimeOutHandler)
+		o.POST("/scriptOtherNotUpload", operate.WrapScriptOtherNotUploadHandler)
+		o.POST("/scriptOtherTimeOut", operate.WrapScriptOtherTimeOutHandler)
+		o.POST("/linkReplaceNotUpload", operate.WrapLinkReplaceNotUploadHandler)
+		o.POST("/linkReplaceTimeOut", operate.WrapLinkReplaceTimeOutHandler)
+		o.POST("/linkOtherNotUpload", operate.WrapLinkOtherNotUploadHandler)
+		o.POST("/linkOtherTimeOut", operate.WrapLinkOtherTimeOutHandler)
+		o.POST("/dataReplaceNotUpload", operate.WrapDataReplaceNotUploadHandler)
+		o.POST("/dataReplaceTimeOut", operate.WrapDataReplaceTimeOutHandler)
+		o.POST("/dataOtherNotUpload", operate.WrapDataOtherNotUploadHandler)
+		o.POST("/dataOtherTimeOut", operate.WrapDataOtherTimeOutHandler)
+		o.GET("/getHours", operate.WrapGetHoursHandler)
+		o.GET("/getPercents", operate.WrapGetPercentsHandler)
+	}
+	f := r.Group("/youngee/m/finance")
+	{
+		f.Use(middleware.LoginAuthMiddleware)
+		f.POST("/withdrawalRecords", handler.WrapWithdrawalRecordsHandler)     // 搜索提现记录
+		f.POST("/getWithdrawalRecord", handler.WrapGetWithdrawalRecordHandler) // 查看提现记录
+		f.GET("/getWithdrawNums", handler.WrapGetWithdrawNumsHandler)          // 获取待提现的数量
+		f.GET("/getInvoiceNums", handler.WrapGetInvoiceNumsHandler)            // 获取待提现的数量
+		f.GET("/getRechargeNums", handler.WrapGetRechargeNumsHandler)          // 获取待开票的数量
+		f.POST("/ConfirmWithdrawal", handler.WrapConfirmWithdrawalHandler)     // 确认提现
+		f.POST("/getBankInfo", handler.WrapGetBankInfoHandler)                 // 获取银行开户地信息
+		f.POST("/getCodeUrl", handler.WrapGetCodeUrlHandler)                   // 获取微信支付链接
+		f.POST("/invoiceRecords", handler.WrapInvoiceRecordsHandler)           // 搜索开票记录
+		f.POST("/confirmInvoice", handler.WrapConfirmInvoiceHandler)           // 确认开票
+		f.POST("/rechargeRecords", handler.WrapRechargeRecordsHandler)         // 搜索充值记录
+		f.POST("/operateRecharge", handler.WrapOperateRechargeHandler)         // 充值记录的修改和确认操作
+	}
+}

+ 183 - 0
.history/route/init_20230409141000.go

@@ -0,0 +1,183 @@
+package route
+
+import (
+	"youngee_m_api/handler"
+	"youngee_m_api/handler/operate"
+	"youngee_m_api/middleware"
+	"youngee_m_api/model/http_model"
+
+	"github.com/gin-gonic/gin"
+)
+
+func InitRoute(r *gin.Engine) {
+
+	r.POST("/login", handler.WrapCodeLoginHandler)
+	r.GET("/getLoginUser", handler.WrapGetLoginUserHandler)
+	r.POST("/userInfo", handler.WrapGetUserInfoHandler)
+	r.GET("/test/ping", func(c *gin.Context) {
+		resp := http_model.CommonResponse{
+			Status:  0,
+			Message: "",
+			Data:    "ping",
+		}
+		c.JSON(200, resp)
+	})
+	m := r.Group("/youngee/m")
+	{
+		m.Use(middleware.LoginAuthMiddleware)
+		m.POST("/test", func(c *gin.Context) {
+			resp := http_model.CommonResponse{
+				Status:  0,
+				Message: "",
+				Data:    "ping",
+			}
+			c.JSON(200, resp)
+		})
+		m.GET("/product/getEnterpriseIds", handler.WrapGetEnterpriseIdsHandler)                    // 获取所有企业用户id
+		m.POST("/product/list", handler.WrapFullProjectListHandler)                                // 查询项目列表
+		m.POST("/project/show", handler.WrapShowProjectHandler)                                    // 项目展示查询
+		m.POST("/project/handle", handler.WrapProjectHandleHandler)                                // 项目线索处理
+		m.POST("/product/findall", handler.WrapFindEnterpriseAllProductHandler)                    // 企业用户详情所有产品
+		m.POST("/product/findAllProduct", handler.WrapFindAllProductHandler)                       // 查找企业绑定的所有产品
+		m.POST("/project/create", handler.WrapCreateProjectHandler)                                // 创建项目
+		m.POST("/product/create", handler.WrapCreateProductHandler)                                // 创建产品
+		m.POST("/product/find", handler.WrapFindProductHandler)                                    // 查询产品信息
+		m.POST("/product/deletePhotoUrl", handler.WrapDeletePhotoUrlHandler)                       // 在数据库中删除图片url
+		m.POST("/pay/paysum", handler.WrapPaySumHandler)                                           // 支付
+		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)                                   // 支付
+		m.POST("/pay/getCodeUrl", handler.WrapGetCodeUrlHandler)                                   // 获取微信支付codeURL
+		m.POST("/pay/queryOrderByTradeId", handler.WrapQueryOrderByTradeIdHandler)                 // 根据交易id查询微信是否扫码付款
+		m.POST("/pay/rechargeBalance", handler.WrapRechargeBalanceHandler)                         // 支付成功后修改企业余额
+		m.POST("/project/transferToPublic", handler.WrapTransferToPublicHandler)                   // 对公转账
+		m.POST("/project/update", handler.WrapUpdateProjectHandler)                                // 更新项目信息
+		m.POST("/project/approve", handler.WrapApproveProjectHandler)                              // 审核项目
+		m.POST("/project/all", handler.WrapGetAllProjectHandler)                                   // 查找所有项目
+		m.POST("/project/taskList", handler.WrapProjectTaskListHandler)                            // 招募管理中的任务列表
+		m.POST("/project/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler)            // 更改任务状态
+		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)                 // 获取链接管理相关数据
+		m.POST("/project/getdatanumberinfo", handler.WrapGetDataNumberInfoHandler)                 // 获取数据管理相关数据
+		m.POST("/project/getreviewnumberinfo", handler.WrapGetReviewNumberInfoHandler)             // 获取审稿管理相关数据
+		m.POST("/project/getdefaultnumberinfo", handler.WrapGetDefaultNumberInfoHandler)           // 获取违约管理相关数据
+		m.POST("/project/tasklogisticslist", handler.WrapTaskLogisticsListHandler)                 // 物流信息查询
+		m.POST("/project/createlogistics", handler.WrapCreateLogisticsHandler)                     // 创建物流信息
+		m.POST("/project/signforreceipt", handler.WrapSignForReceiptHandler)                       // 签收订单
+		m.POST("/project/taskscriptlist", handler.WrapTaskScriptListHandler)                       // 查询脚本列表
+		m.POST("/project/scriptopinion", handler.WrapScriptOpinionHandler)                         // 脚本审核意见提交
+		m.POST("/project/acceptscript", handler.WrapAcceptScriptHandler)                           // 同意脚本
+		m.POST("/project/tasksketchlist", handler.WrapTaskSketchListHandler)                       // 查询初稿列表
+		m.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler)                     // 查询脚本配图和视频demo
+		m.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)                         // 初稿审核意见提交
+		m.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)                           // 同意脚本
+		m.POST("/project/tasklinklist", handler.WrapTaskLinkListHandler)                           // 查询链接列表
+		m.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)                             // 链接审核意见提交
+		m.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)                               // 同意链接
+		m.POST("/project/taskdatalist", handler.WrapTaskDataListHandler)                           // 查询数据列表
+		m.POST("/project/dataopinion", handler.WrapDataOpinionHandler)                             // 数据审核意见提交
+		m.POST("/project/acceptdata", handler.WrapAcceptDataHandler)                               // 同意数据
+		m.POST("/project/taskdefaultreviewlist", handler.WrapTaskDefaultReviewListHandler)         // 查询违约列表-脚本、初稿、链接上传违约
+		m.POST("/project/taskdefaultdatalist", handler.WrapTaskDefaultDataListHandler)             // 查询违约列表-数据违约
+		m.POST("/project/taskteminatinglist", handler.WrapTaskTerminatingListHandler)              // 查询违约列表-解约待处理
+		m.POST("/project/taskteminatedlist", handler.WrapTaskTerminatedListHandler)                // 查询违约列表-解约
+		m.POST("/project/taskteminate", handler.WrapTaskTerminateHandler)                          // 解约
+		m.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)                         // 获取初稿
+		m.POST("/project/taskfinishlist", handler.WrapTaskFinishListHandler)                       // 查询违约列表-数据违约
+		m.POST("/project/getfinishnumberinfo", handler.WrapGetFinishNumberInfoHandler)             // 获取结案数量
+		m.POST("/project/getProduceRecords", handler.WrapGetProjectRecordsHandler)                 // 获取项目记录
+		m.POST("/project/recruit/getservicecharge", handler.WrapGetServiceChargeHandler)           // 获取产品置换服务费
+		m.POST("/project/getlogisticsnumberinfo", handler.WrapGetLogisticsNumberInfoHandler)       // 获取物流数量
+		m.POST("/project/getfinishdata", handler.WrapGetFinishDataHandler)                         // 获取结案信息
+		m.POST("/project/getSpecialInviteNumber", handler.WrapGetSpecialInviteNumberHandler)       // 查询专项任务邀请管理任务数量
+		m.POST("/project/getSpecialLogisticNumber", handler.WrapGetSpecialLogisticNumberHandler)   // 查询专项任务发货管理任务数量
+		m.POST("/project/getSpecialLogisticList", handler.WrapGetSpecialLogisticListHandler)       // 查询专项任务发货管理任务列表
+		m.POST("/project/createSpecialLogistics", handler.WrapCreateSpecialLogisticsHandler)       // 创建专项创建物流信息
+		m.POST("/project/signForSpecialLogistic", handler.WrapSignForSpecialLogisticHandler)       // 签收专项创建物流订单
+		m.POST("/project/getSpecialReviewNumber", handler.WrapGetSpecialReviewNumberHandler)       // 查询专项任务审稿管理任务数量
+		m.POST("/project/getSpecialLinkNumber", handler.WrapGetSpecialLinkNumberHandler)           // 查询专项任务发布管理任务数量
+		m.POST("/project/getSpecialSettleNumber", handler.WrapGetSpecialSettleNumberHandler)       // 查询专项任务结算管理任务数量
+		m.POST("/project/getSpecialDataNumber", handler.WrapGetSpecialDataNumberHandler)           // 查询专项任务数据管理任务数量
+		m.POST("/project/specialTaskInviteList", handler.WrapSpecialTaskInviteListHandler)         // 查询专项任务邀请管理任务列表
+		m.POST("/project/specialTaskSketchList", handler.WrapSpecialTaskSketchListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskScriptList", handler.WrapSpecialTaskScriptListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskLinkList", handler.WrapSpecialTaskLinkListHandler)             // 查询专项任务发布管理任务列表
+		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskSettleList", handler.WrapSpecialTaskDataListHandler)           // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
+		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
+
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler) // 获取微信二维码
+	}
+	u := r.Group("/youngee/m/user")
+	{
+		u.Use(middleware.LoginAuthMiddleware)
+		u.POST("/getUserList", handler.WrapGetUserListHandler)       // 查找员工账号信息
+		u.POST("/updateUserInfo", handler.WrapUpdateUserInfoHandler) // 修改员工信息
+		u.POST("/createUser", handler.WrapCreateUserHandler)         // 创建员工账号
+		u.POST("/disabledUser", handler.WrapDisabledUserHandler)     // 禁用员工账号
+		u.POST("/enterpriseUser", handler.WrapEnterpriseUserHandler) // 查找企业用户信息
+		u.POST("/creatorList", handler.WrapCreatorListHandler)       // 查找创作者信息
+		u.POST("/platformAccInfo", handler.WrapPlatformAccInfoHandler)
+		u.POST("/talentInfo", handler.WrapTalentInfoHandler)
+		u.POST("/accountInfo", handler.WrapAccountInfoHandler)     // 达人端账号信息
+		u.POST("/deleteAccount", handler.WrapDeleteAccountHandler) // 解绑达人端账号
+		u.POST("/getTaskRecord", handler.WrapGetTaskRecordHandler)
+		u.POST("/modifyAccInfo", handler.WrapModifyAccInfoHandler) // 更新用户账号信息
+	}
+	o := r.Group("/youngee/m/operate")
+	{
+		o.Use(middleware.LoginAuthMiddleware)
+		o.POST("/addPricing", operate.WrapAddPricingHandler)
+		o.POST("/searchPricing", operate.WrapSearchPricingHandler)
+		o.POST("/modifyPricing", operate.WrapModifyPricingHandler)
+		o.POST("/signInOffline", operate.WrapSignInOfflineHandler)
+		o.POST("/signInVirtual", operate.WrapSignInVirtualHandler)
+		o.POST("/autoReview", operate.WrapAutoReviewHandler)
+		o.POST("/autoReviewUnlimited", operate.WrapAutoReviewUnlimitedHandler)
+		o.POST("/postReview", operate.WrapPostReviewHandler)
+		o.POST("/caseClose", operate.WrapCaseCloseHandler)
+		o.POST("/invalid", operate.WrapInvalidHandler)
+		o.POST("/draftDefaultInPic", operate.WrapDraftDefaultInPicHandler)
+		o.POST("/draftDefaultInMv", operate.WrapDraftDefaultInMvHandler)
+		o.POST("/scriptDefault", operate.WrapScriptDefaultHandler)
+		o.POST("/linkBreach", operate.WrapLinkBreachHandler)
+		o.POST("/caseCloseDefault", operate.WrapCaseCloseDefaultHandler)
+		o.GET("/countNumOfDefaults", operate.WrapCountNumOfDefaultsHandler)
+		o.POST("/breachPending", operate.WrapBreachPendingHandler)
+		o.POST("/contractBreach", operate.WrapContractBreachHandler) // 解约
+		o.POST("/getSketchInfoByTaskId", operate.WrapGetSketchInfoByTaskIdHandler)
+		o.POST("/breachHandled", operate.WrapBreachHandledHandler)
+		o.POST("/sketchReplaceNotUpload", operate.WrapSketchReplaceNotUploadHandler)
+		o.POST("/sketchReplaceTimeOut", operate.WrapSketchReplaceTimeOutHandler)
+		o.POST("/sketchOtherNotUpload", operate.WrapSketchOtherNotUploadHandler)
+		o.POST("/sketchOtherTimeOut", operate.WrapSketchOtherTimeOutHandler)
+		o.POST("/scriptReplaceNotUpload", operate.WrapScriptReplaceNotUploadHandler)
+		o.POST("/scriptReplaceTimeOut", operate.WrapScriptReplaceTimeOutHandler)
+		o.POST("/scriptOtherNotUpload", operate.WrapScriptOtherNotUploadHandler)
+		o.POST("/scriptOtherTimeOut", operate.WrapScriptOtherTimeOutHandler)
+		o.POST("/linkReplaceNotUpload", operate.WrapLinkReplaceNotUploadHandler)
+		o.POST("/linkReplaceTimeOut", operate.WrapLinkReplaceTimeOutHandler)
+		o.POST("/linkOtherNotUpload", operate.WrapLinkOtherNotUploadHandler)
+		o.POST("/linkOtherTimeOut", operate.WrapLinkOtherTimeOutHandler)
+		o.POST("/dataReplaceNotUpload", operate.WrapDataReplaceNotUploadHandler)
+		o.POST("/dataReplaceTimeOut", operate.WrapDataReplaceTimeOutHandler)
+		o.POST("/dataOtherNotUpload", operate.WrapDataOtherNotUploadHandler)
+		o.POST("/dataOtherTimeOut", operate.WrapDataOtherTimeOutHandler)
+		o.GET("/getHours", operate.WrapGetHoursHandler)
+		o.GET("/getPercents", operate.WrapGetPercentsHandler)
+	}
+	f := r.Group("/youngee/m/finance")
+	{
+		f.Use(middleware.LoginAuthMiddleware)
+		f.POST("/withdrawalRecords", handler.WrapWithdrawalRecordsHandler)     // 搜索提现记录
+		f.POST("/getWithdrawalRecord", handler.WrapGetWithdrawalRecordHandler) // 查看提现记录
+		f.GET("/getWithdrawNums", handler.WrapGetWithdrawNumsHandler)          // 获取待提现的数量
+		f.GET("/getInvoiceNums", handler.WrapGetInvoiceNumsHandler)            // 获取待提现的数量
+		f.GET("/getRechargeNums", handler.WrapGetRechargeNumsHandler)          // 获取待开票的数量
+		f.POST("/ConfirmWithdrawal", handler.WrapConfirmWithdrawalHandler)     // 确认提现
+		f.POST("/getBankInfo", handler.WrapGetBankInfoHandler)                 // 获取银行开户地信息
+		f.POST("/getCodeUrl", handler.WrapGetCodeUrlHandler)                   // 获取微信支付链接
+		f.POST("/invoiceRecords", handler.WrapInvoiceRecordsHandler)           // 搜索开票记录
+		f.POST("/confirmInvoice", handler.WrapConfirmInvoiceHandler)           // 确认开票
+		f.POST("/rechargeRecords", handler.WrapRechargeRecordsHandler)         // 搜索充值记录
+		f.POST("/operateRecharge", handler.WrapOperateRechargeHandler)         // 充值记录的修改和确认操作
+	}
+}

+ 183 - 0
.history/route/init_20230409141016.go

@@ -0,0 +1,183 @@
+package route
+
+import (
+	"youngee_m_api/handler"
+	"youngee_m_api/handler/operate"
+	"youngee_m_api/middleware"
+	"youngee_m_api/model/http_model"
+
+	"github.com/gin-gonic/gin"
+)
+
+func InitRoute(r *gin.Engine) {
+
+	r.POST("/login", handler.WrapCodeLoginHandler)
+	r.GET("/getLoginUser", handler.WrapGetLoginUserHandler)
+	r.POST("/userInfo", handler.WrapGetUserInfoHandler)
+	r.GET("/test/ping", func(c *gin.Context) {
+		resp := http_model.CommonResponse{
+			Status:  0,
+			Message: "",
+			Data:    "ping",
+		}
+		c.JSON(200, resp)
+	})
+	m := r.Group("/youngee/m")
+	{
+		m.Use(middleware.LoginAuthMiddleware)
+		m.POST("/test", func(c *gin.Context) {
+			resp := http_model.CommonResponse{
+				Status:  0,
+				Message: "",
+				Data:    "ping",
+			}
+			c.JSON(200, resp)
+		})
+		m.GET("/product/getEnterpriseIds", handler.WrapGetEnterpriseIdsHandler)                    // 获取所有企业用户id
+		m.POST("/product/list", handler.WrapFullProjectListHandler)                                // 查询项目列表
+		m.POST("/project/show", handler.WrapShowProjectHandler)                                    // 项目展示查询
+		m.POST("/project/handle", handler.WrapProjectHandleHandler)                                // 项目线索处理
+		m.POST("/product/findall", handler.WrapFindEnterpriseAllProductHandler)                    // 企业用户详情所有产品
+		m.POST("/product/findAllProduct", handler.WrapFindAllProductHandler)                       // 查找企业绑定的所有产品
+		m.POST("/project/create", handler.WrapCreateProjectHandler)                                // 创建项目
+		m.POST("/product/create", handler.WrapCreateProductHandler)                                // 创建产品
+		m.POST("/product/find", handler.WrapFindProductHandler)                                    // 查询产品信息
+		m.POST("/product/deletePhotoUrl", handler.WrapDeletePhotoUrlHandler)                       // 在数据库中删除图片url
+		m.POST("/pay/paysum", handler.WrapPaySumHandler)                                           // 支付
+		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)                                   // 支付
+		m.POST("/pay/getCodeUrl", handler.WrapGetCodeUrlHandler)                                   // 获取微信支付codeURL
+		m.POST("/pay/queryOrderByTradeId", handler.WrapQueryOrderByTradeIdHandler)                 // 根据交易id查询微信是否扫码付款
+		m.POST("/pay/rechargeBalance", handler.WrapRechargeBalanceHandler)                         // 支付成功后修改企业余额
+		m.POST("/project/transferToPublic", handler.WrapTransferToPublicHandler)                   // 对公转账
+		m.POST("/project/update", handler.WrapUpdateProjectHandler)                                // 更新项目信息
+		m.POST("/project/approve", handler.WrapApproveProjectHandler)                              // 审核项目
+		m.POST("/project/all", handler.WrapGetAllProjectHandler)                                   // 查找所有项目
+		m.POST("/project/taskList", handler.WrapProjectTaskListHandler)                            // 招募管理中的任务列表
+		m.POST("/project/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler)            // 更改任务状态
+		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)                 // 获取链接管理相关数据
+		m.POST("/project/getdatanumberinfo", handler.WrapGetDataNumberInfoHandler)                 // 获取数据管理相关数据
+		m.POST("/project/getreviewnumberinfo", handler.WrapGetReviewNumberInfoHandler)             // 获取审稿管理相关数据
+		m.POST("/project/getdefaultnumberinfo", handler.WrapGetDefaultNumberInfoHandler)           // 获取违约管理相关数据
+		m.POST("/project/tasklogisticslist", handler.WrapTaskLogisticsListHandler)                 // 物流信息查询
+		m.POST("/project/createlogistics", handler.WrapCreateLogisticsHandler)                     // 创建物流信息
+		m.POST("/project/signforreceipt", handler.WrapSignForReceiptHandler)                       // 签收订单
+		m.POST("/project/taskscriptlist", handler.WrapTaskScriptListHandler)                       // 查询脚本列表
+		m.POST("/project/scriptopinion", handler.WrapScriptOpinionHandler)                         // 脚本审核意见提交
+		m.POST("/project/acceptscript", handler.WrapAcceptScriptHandler)                           // 同意脚本
+		m.POST("/project/tasksketchlist", handler.WrapTaskSketchListHandler)                       // 查询初稿列表
+		m.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler)                     // 查询脚本配图和视频demo
+		m.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)                         // 初稿审核意见提交
+		m.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)                           // 同意脚本
+		m.POST("/project/tasklinklist", handler.WrapTaskLinkListHandler)                           // 查询链接列表
+		m.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)                             // 链接审核意见提交
+		m.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)                               // 同意链接
+		m.POST("/project/taskdatalist", handler.WrapTaskDataListHandler)                           // 查询数据列表
+		m.POST("/project/dataopinion", handler.WrapDataOpinionHandler)                             // 数据审核意见提交
+		m.POST("/project/acceptdata", handler.WrapAcceptDataHandler)                               // 同意数据
+		m.POST("/project/taskdefaultreviewlist", handler.WrapTaskDefaultReviewListHandler)         // 查询违约列表-脚本、初稿、链接上传违约
+		m.POST("/project/taskdefaultdatalist", handler.WrapTaskDefaultDataListHandler)             // 查询违约列表-数据违约
+		m.POST("/project/taskteminatinglist", handler.WrapTaskTerminatingListHandler)              // 查询违约列表-解约待处理
+		m.POST("/project/taskteminatedlist", handler.WrapTaskTerminatedListHandler)                // 查询违约列表-解约
+		m.POST("/project/taskteminate", handler.WrapTaskTerminateHandler)                          // 解约
+		m.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)                         // 获取初稿
+		m.POST("/project/taskfinishlist", handler.WrapTaskFinishListHandler)                       // 查询违约列表-数据违约
+		m.POST("/project/getfinishnumberinfo", handler.WrapGetFinishNumberInfoHandler)             // 获取结案数量
+		m.POST("/project/getProduceRecords", handler.WrapGetProjectRecordsHandler)                 // 获取项目记录
+		m.POST("/project/recruit/getservicecharge", handler.WrapGetServiceChargeHandler)           // 获取产品置换服务费
+		m.POST("/project/getlogisticsnumberinfo", handler.WrapGetLogisticsNumberInfoHandler)       // 获取物流数量
+		m.POST("/project/getfinishdata", handler.WrapGetFinishDataHandler)                         // 获取结案信息
+		m.POST("/project/getSpecialInviteNumber", handler.WrapGetSpecialInviteNumberHandler)       // 查询专项任务邀请管理任务数量
+		m.POST("/project/getSpecialLogisticNumber", handler.WrapGetSpecialLogisticNumberHandler)   // 查询专项任务发货管理任务数量
+		m.POST("/project/getSpecialLogisticList", handler.WrapGetSpecialLogisticListHandler)       // 查询专项任务发货管理任务列表
+		m.POST("/project/createSpecialLogistics", handler.WrapCreateSpecialLogisticsHandler)       // 创建专项创建物流信息
+		m.POST("/project/signForSpecialLogistic", handler.WrapSignForSpecialLogisticHandler)       // 签收专项创建物流订单
+		m.POST("/project/getSpecialReviewNumber", handler.WrapGetSpecialReviewNumberHandler)       // 查询专项任务审稿管理任务数量
+		m.POST("/project/getSpecialLinkNumber", handler.WrapGetSpecialLinkNumberHandler)           // 查询专项任务发布管理任务数量
+		m.POST("/project/getSpecialSettleNumber", handler.WrapGetSpecialSettleNumberHandler)       // 查询专项任务结算管理任务数量
+		m.POST("/project/getSpecialDataNumber", handler.WrapGetSpecialDataNumberHandler)           // 查询专项任务数据管理任务数量
+		m.POST("/project/specialTaskInviteList", handler.WrapSpecialTaskInviteListHandler)         // 查询专项任务邀请管理任务列表
+		m.POST("/project/specialTaskSketchList", handler.WrapSpecialTaskSketchListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskScriptList", handler.WrapSpecialTaskScriptListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskLinkList", handler.WrapSpecialTaskLinkListHandler)             // 查询专项任务发布管理任务列表
+		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskSettleList", handler.WrapSpecialTaskSettleListHandler)         // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
+		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
+
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler) // 获取微信二维码
+	}
+	u := r.Group("/youngee/m/user")
+	{
+		u.Use(middleware.LoginAuthMiddleware)
+		u.POST("/getUserList", handler.WrapGetUserListHandler)       // 查找员工账号信息
+		u.POST("/updateUserInfo", handler.WrapUpdateUserInfoHandler) // 修改员工信息
+		u.POST("/createUser", handler.WrapCreateUserHandler)         // 创建员工账号
+		u.POST("/disabledUser", handler.WrapDisabledUserHandler)     // 禁用员工账号
+		u.POST("/enterpriseUser", handler.WrapEnterpriseUserHandler) // 查找企业用户信息
+		u.POST("/creatorList", handler.WrapCreatorListHandler)       // 查找创作者信息
+		u.POST("/platformAccInfo", handler.WrapPlatformAccInfoHandler)
+		u.POST("/talentInfo", handler.WrapTalentInfoHandler)
+		u.POST("/accountInfo", handler.WrapAccountInfoHandler)     // 达人端账号信息
+		u.POST("/deleteAccount", handler.WrapDeleteAccountHandler) // 解绑达人端账号
+		u.POST("/getTaskRecord", handler.WrapGetTaskRecordHandler)
+		u.POST("/modifyAccInfo", handler.WrapModifyAccInfoHandler) // 更新用户账号信息
+	}
+	o := r.Group("/youngee/m/operate")
+	{
+		o.Use(middleware.LoginAuthMiddleware)
+		o.POST("/addPricing", operate.WrapAddPricingHandler)
+		o.POST("/searchPricing", operate.WrapSearchPricingHandler)
+		o.POST("/modifyPricing", operate.WrapModifyPricingHandler)
+		o.POST("/signInOffline", operate.WrapSignInOfflineHandler)
+		o.POST("/signInVirtual", operate.WrapSignInVirtualHandler)
+		o.POST("/autoReview", operate.WrapAutoReviewHandler)
+		o.POST("/autoReviewUnlimited", operate.WrapAutoReviewUnlimitedHandler)
+		o.POST("/postReview", operate.WrapPostReviewHandler)
+		o.POST("/caseClose", operate.WrapCaseCloseHandler)
+		o.POST("/invalid", operate.WrapInvalidHandler)
+		o.POST("/draftDefaultInPic", operate.WrapDraftDefaultInPicHandler)
+		o.POST("/draftDefaultInMv", operate.WrapDraftDefaultInMvHandler)
+		o.POST("/scriptDefault", operate.WrapScriptDefaultHandler)
+		o.POST("/linkBreach", operate.WrapLinkBreachHandler)
+		o.POST("/caseCloseDefault", operate.WrapCaseCloseDefaultHandler)
+		o.GET("/countNumOfDefaults", operate.WrapCountNumOfDefaultsHandler)
+		o.POST("/breachPending", operate.WrapBreachPendingHandler)
+		o.POST("/contractBreach", operate.WrapContractBreachHandler) // 解约
+		o.POST("/getSketchInfoByTaskId", operate.WrapGetSketchInfoByTaskIdHandler)
+		o.POST("/breachHandled", operate.WrapBreachHandledHandler)
+		o.POST("/sketchReplaceNotUpload", operate.WrapSketchReplaceNotUploadHandler)
+		o.POST("/sketchReplaceTimeOut", operate.WrapSketchReplaceTimeOutHandler)
+		o.POST("/sketchOtherNotUpload", operate.WrapSketchOtherNotUploadHandler)
+		o.POST("/sketchOtherTimeOut", operate.WrapSketchOtherTimeOutHandler)
+		o.POST("/scriptReplaceNotUpload", operate.WrapScriptReplaceNotUploadHandler)
+		o.POST("/scriptReplaceTimeOut", operate.WrapScriptReplaceTimeOutHandler)
+		o.POST("/scriptOtherNotUpload", operate.WrapScriptOtherNotUploadHandler)
+		o.POST("/scriptOtherTimeOut", operate.WrapScriptOtherTimeOutHandler)
+		o.POST("/linkReplaceNotUpload", operate.WrapLinkReplaceNotUploadHandler)
+		o.POST("/linkReplaceTimeOut", operate.WrapLinkReplaceTimeOutHandler)
+		o.POST("/linkOtherNotUpload", operate.WrapLinkOtherNotUploadHandler)
+		o.POST("/linkOtherTimeOut", operate.WrapLinkOtherTimeOutHandler)
+		o.POST("/dataReplaceNotUpload", operate.WrapDataReplaceNotUploadHandler)
+		o.POST("/dataReplaceTimeOut", operate.WrapDataReplaceTimeOutHandler)
+		o.POST("/dataOtherNotUpload", operate.WrapDataOtherNotUploadHandler)
+		o.POST("/dataOtherTimeOut", operate.WrapDataOtherTimeOutHandler)
+		o.GET("/getHours", operate.WrapGetHoursHandler)
+		o.GET("/getPercents", operate.WrapGetPercentsHandler)
+	}
+	f := r.Group("/youngee/m/finance")
+	{
+		f.Use(middleware.LoginAuthMiddleware)
+		f.POST("/withdrawalRecords", handler.WrapWithdrawalRecordsHandler)     // 搜索提现记录
+		f.POST("/getWithdrawalRecord", handler.WrapGetWithdrawalRecordHandler) // 查看提现记录
+		f.GET("/getWithdrawNums", handler.WrapGetWithdrawNumsHandler)          // 获取待提现的数量
+		f.GET("/getInvoiceNums", handler.WrapGetInvoiceNumsHandler)            // 获取待提现的数量
+		f.GET("/getRechargeNums", handler.WrapGetRechargeNumsHandler)          // 获取待开票的数量
+		f.POST("/ConfirmWithdrawal", handler.WrapConfirmWithdrawalHandler)     // 确认提现
+		f.POST("/getBankInfo", handler.WrapGetBankInfoHandler)                 // 获取银行开户地信息
+		f.POST("/getCodeUrl", handler.WrapGetCodeUrlHandler)                   // 获取微信支付链接
+		f.POST("/invoiceRecords", handler.WrapInvoiceRecordsHandler)           // 搜索开票记录
+		f.POST("/confirmInvoice", handler.WrapConfirmInvoiceHandler)           // 确认开票
+		f.POST("/rechargeRecords", handler.WrapRechargeRecordsHandler)         // 搜索充值记录
+		f.POST("/operateRecharge", handler.WrapOperateRechargeHandler)         // 充值记录的修改和确认操作
+	}
+}

+ 183 - 0
.history/route/init_20230409153621.go

@@ -0,0 +1,183 @@
+package route
+
+import (
+	"youngee_m_api/handler"
+	"youngee_m_api/handler/operate"
+	"youngee_m_api/middleware"
+	"youngee_m_api/model/http_model"
+
+	"github.com/gin-gonic/gin"
+)
+
+func InitRoute(r *gin.Engine) {
+
+	r.POST("/login", handler.WrapCodeLoginHandler)
+	r.GET("/getLoginUser", handler.WrapGetLoginUserHandler)
+	r.POST("/userInfo", handler.WrapGetUserInfoHandler)
+	r.GET("/test/ping", func(c *gin.Context) {
+		resp := http_model.CommonResponse{
+			Status:  0,
+			Message: "",
+			Data:    "ping",
+		}
+		c.JSON(200, resp)
+	})
+	m := r.Group("/youngee/m")
+	{
+		m.Use(middleware.LoginAuthMiddleware)
+		m.POST("/test", func(c *gin.Context) {
+			resp := http_model.CommonResponse{
+				Status:  0,
+				Message: "",
+				Data:    "ping",
+			}
+			c.JSON(200, resp)
+		})
+		m.GET("/product/getEnterpriseIds", handler.WrapGetEnterpriseIdsHandler)                    // 获取所有企业用户id
+		m.POST("/product/list", handler.WrapFullProjectListHandler)                                // 查询项目列表
+		m.POST("/project/show", handler.WrapShowProjectHandler)                                    // 项目展示查询
+		m.POST("/project/handle", handler.WrapProjectHandleHandler)                                // 项目线索处理
+		m.POST("/product/findall", handler.WrapFindEnterpriseAllProductHandler)                    // 企业用户详情所有产品
+		m.POST("/product/findAllProduct", handler.WrapFindAllProductHandler)                       // 查找企业绑定的所有产品
+		m.POST("/project/create", handler.WrapCreateProjectHandler)                                // 创建项目
+		m.POST("/product/create", handler.WrapCreateProductHandler)                                // 创建产品
+		m.POST("/product/find", handler.WrapFindProductHandler)                                    // 查询产品信息
+		m.POST("/product/deletePhotoUrl", handler.WrapDeletePhotoUrlHandler)                       // 在数据库中删除图片url
+		m.POST("/pay/paysum", handler.WrapPaySumHandler)                                           // 支付
+		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)                                   // 支付
+		m.POST("/pay/getCodeUrl", handler.WrapGetCodeUrlHandler)                                   // 获取微信支付codeURL
+		m.POST("/pay/queryOrderByTradeId", handler.WrapQueryOrderByTradeIdHandler)                 // 根据交易id查询微信是否扫码付款
+		m.POST("/pay/rechargeBalance", handler.WrapRechargeBalanceHandler)                         // 支付成功后修改企业余额
+		m.POST("/project/transferToPublic", handler.WrapTransferToPublicHandler)                   // 对公转账
+		m.POST("/project/update", handler.WrapUpdateProjectHandler)                                // 更新项目信息
+		m.POST("/project/approve", handler.WrapApproveProjectHandler)                              // 审核项目
+		m.POST("/project/all", handler.WrapGetAllProjectHandler)                                   // 查找所有项目
+		m.POST("/project/taskList", handler.WrapProjectTaskListHandler)                            // 招募管理中的任务列表
+		m.POST("/project/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler)            // 更改任务状态
+		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)                 // 获取链接管理相关数据
+		m.POST("/project/getdatanumberinfo", handler.WrapGetDataNumberInfoHandler)                 // 获取数据管理相关数据
+		m.POST("/project/getreviewnumberinfo", handler.WrapGetReviewNumberInfoHandler)             // 获取审稿管理相关数据
+		m.POST("/project/getdefaultnumberinfo", handler.WrapGetDefaultNumberInfoHandler)           // 获取违约管理相关数据
+		m.POST("/project/tasklogisticslist", handler.WrapTaskLogisticsListHandler)                 // 物流信息查询
+		m.POST("/project/createlogistics", handler.WrapCreateLogisticsHandler)                     // 创建物流信息
+		m.POST("/project/signforreceipt", handler.WrapSignForReceiptHandler)                       // 签收订单
+		m.POST("/project/taskscriptlist", handler.WrapTaskScriptListHandler)                       // 查询脚本列表
+		m.POST("/project/scriptopinion", handler.WrapScriptOpinionHandler)                         // 脚本审核意见提交
+		m.POST("/project/acceptscript", handler.WrapAcceptScriptHandler)                           // 同意脚本
+		m.POST("/project/tasksketchlist", handler.WrapTaskSketchListHandler)                       // 查询初稿列表
+		m.POST("/project/findsketchphoto", handler.WrapFindSketchPhotoHandler)                     // 查询脚本配图和视频demo
+		m.POST("/project/sketchopinion", handler.WrapSketchOpinionHandler)                         // 初稿审核意见提交
+		m.POST("/project/acceptsketch", handler.WrapAcceptSketchHandler)                           // 同意脚本
+		m.POST("/project/tasklinklist", handler.WrapTaskLinkListHandler)                           // 查询链接列表
+		m.POST("/project/linkopinion", handler.WrapLinkOpinionHandler)                             // 链接审核意见提交
+		m.POST("/project/acceptlink", handler.WrapAcceptLinkHandler)                               // 同意链接
+		m.POST("/project/taskdatalist", handler.WrapTaskDataListHandler)                           // 查询数据列表
+		m.POST("/project/dataopinion", handler.WrapDataOpinionHandler)                             // 数据审核意见提交
+		m.POST("/project/acceptdata", handler.WrapAcceptDataHandler)                               // 同意数据
+		m.POST("/project/taskdefaultreviewlist", handler.WrapTaskDefaultReviewListHandler)         // 查询违约列表-脚本、初稿、链接上传违约
+		m.POST("/project/taskdefaultdatalist", handler.WrapTaskDefaultDataListHandler)             // 查询违约列表-数据违约
+		m.POST("/project/taskteminatinglist", handler.WrapTaskTerminatingListHandler)              // 查询违约列表-解约待处理
+		m.POST("/project/taskteminatedlist", handler.WrapTaskTerminatedListHandler)                // 查询违约列表-解约
+		m.POST("/project/taskteminate", handler.WrapTaskTerminateHandler)                          // 解约
+		m.POST("/project/getsketchinfo", handler.WrapGetSketchInfoHandler)                         // 获取初稿
+		m.POST("/project/taskfinishlist", handler.WrapTaskFinishListHandler)                       // 查询违约列表-数据违约
+		m.POST("/project/getfinishnumberinfo", handler.WrapGetFinishNumberInfoHandler)             // 获取结案数量
+		m.POST("/project/getProduceRecords", handler.WrapGetProjectRecordsHandler)                 // 获取项目记录
+		m.POST("/project/recruit/getservicecharge", handler.WrapGetServiceChargeHandler)           // 获取产品置换服务费
+		m.POST("/project/getlogisticsnumberinfo", handler.WrapGetLogisticsNumberInfoHandler)       // 获取物流数量
+		m.POST("/project/getfinishdata", handler.WrapGetFinishDataHandler)                         // 获取结案信息
+		m.POST("/project/getSpecialInviteNumber", handler.WrapGetSpecialInviteNumberHandler)       // 查询专项任务邀请管理任务数量
+		m.POST("/project/getSpecialLogisticNumber", handler.WrapGetSpecialLogisticNumberHandler)   // 查询专项任务发货管理任务数量
+		m.POST("/project/getSpecialLogisticList", handler.WrapGetSpecialLogisticListHandler)       // 查询专项任务发货管理任务列表
+		m.POST("/project/createSpecialLogistics", handler.WrapCreateSpecialLogisticsHandler)       // 创建专项创建物流信息
+		m.POST("/project/signForSpecialLogistic", handler.WrapSignForSpecialLogisticHandler)       // 签收专项创建物流订单
+		m.POST("/project/getSpecialReviewNumber", handler.WrapGetSpecialReviewNumberHandler)       // 查询专项任务审稿管理任务数量
+		m.POST("/project/getSpecialLinkNumber", handler.WrapGetSpecialLinkNumberHandler)           // 查询专项任务发布管理任务数量
+		m.POST("/project/getSpecialDataNumber", handler.WrapGetSpecialDataNumberHandler)           // 查询专项任务数据管理任务数量
+		m.POST("/project/specialTaskInviteList", handler.WrapSpecialTaskInviteListHandler)         // 查询专项任务邀请管理任务列表
+		m.POST("/project/specialTaskSketchList", handler.WrapSpecialTaskSketchListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskScriptList", handler.WrapSpecialTaskScriptListHandler)         // 查询专项任务审稿管理任务列表
+		m.POST("/project/specialTaskLinkList", handler.WrapSpecialTaskLinkListHandler)             // 查询专项任务发布管理任务列表
+		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
+		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
+		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
+		m.POST("/project/getSpecialSettleNumber", handler.WrapGetSpecialSettleNumberHandler)       // 查询专项任务结算管理任务数量
+		m.POST("/project/specialTaskSettleList", handler.WrapSpecialTaskSettleListHandler)         // 查询专项任务结算管理任务列表
+
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler) // 获取微信二维码
+	}
+	u := r.Group("/youngee/m/user")
+	{
+		u.Use(middleware.LoginAuthMiddleware)
+		u.POST("/getUserList", handler.WrapGetUserListHandler)       // 查找员工账号信息
+		u.POST("/updateUserInfo", handler.WrapUpdateUserInfoHandler) // 修改员工信息
+		u.POST("/createUser", handler.WrapCreateUserHandler)         // 创建员工账号
+		u.POST("/disabledUser", handler.WrapDisabledUserHandler)     // 禁用员工账号
+		u.POST("/enterpriseUser", handler.WrapEnterpriseUserHandler) // 查找企业用户信息
+		u.POST("/creatorList", handler.WrapCreatorListHandler)       // 查找创作者信息
+		u.POST("/platformAccInfo", handler.WrapPlatformAccInfoHandler)
+		u.POST("/talentInfo", handler.WrapTalentInfoHandler)
+		u.POST("/accountInfo", handler.WrapAccountInfoHandler)     // 达人端账号信息
+		u.POST("/deleteAccount", handler.WrapDeleteAccountHandler) // 解绑达人端账号
+		u.POST("/getTaskRecord", handler.WrapGetTaskRecordHandler)
+		u.POST("/modifyAccInfo", handler.WrapModifyAccInfoHandler) // 更新用户账号信息
+	}
+	o := r.Group("/youngee/m/operate")
+	{
+		o.Use(middleware.LoginAuthMiddleware)
+		o.POST("/addPricing", operate.WrapAddPricingHandler)
+		o.POST("/searchPricing", operate.WrapSearchPricingHandler)
+		o.POST("/modifyPricing", operate.WrapModifyPricingHandler)
+		o.POST("/signInOffline", operate.WrapSignInOfflineHandler)
+		o.POST("/signInVirtual", operate.WrapSignInVirtualHandler)
+		o.POST("/autoReview", operate.WrapAutoReviewHandler)
+		o.POST("/autoReviewUnlimited", operate.WrapAutoReviewUnlimitedHandler)
+		o.POST("/postReview", operate.WrapPostReviewHandler)
+		o.POST("/caseClose", operate.WrapCaseCloseHandler)
+		o.POST("/invalid", operate.WrapInvalidHandler)
+		o.POST("/draftDefaultInPic", operate.WrapDraftDefaultInPicHandler)
+		o.POST("/draftDefaultInMv", operate.WrapDraftDefaultInMvHandler)
+		o.POST("/scriptDefault", operate.WrapScriptDefaultHandler)
+		o.POST("/linkBreach", operate.WrapLinkBreachHandler)
+		o.POST("/caseCloseDefault", operate.WrapCaseCloseDefaultHandler)
+		o.GET("/countNumOfDefaults", operate.WrapCountNumOfDefaultsHandler)
+		o.POST("/breachPending", operate.WrapBreachPendingHandler)
+		o.POST("/contractBreach", operate.WrapContractBreachHandler) // 解约
+		o.POST("/getSketchInfoByTaskId", operate.WrapGetSketchInfoByTaskIdHandler)
+		o.POST("/breachHandled", operate.WrapBreachHandledHandler)
+		o.POST("/sketchReplaceNotUpload", operate.WrapSketchReplaceNotUploadHandler)
+		o.POST("/sketchReplaceTimeOut", operate.WrapSketchReplaceTimeOutHandler)
+		o.POST("/sketchOtherNotUpload", operate.WrapSketchOtherNotUploadHandler)
+		o.POST("/sketchOtherTimeOut", operate.WrapSketchOtherTimeOutHandler)
+		o.POST("/scriptReplaceNotUpload", operate.WrapScriptReplaceNotUploadHandler)
+		o.POST("/scriptReplaceTimeOut", operate.WrapScriptReplaceTimeOutHandler)
+		o.POST("/scriptOtherNotUpload", operate.WrapScriptOtherNotUploadHandler)
+		o.POST("/scriptOtherTimeOut", operate.WrapScriptOtherTimeOutHandler)
+		o.POST("/linkReplaceNotUpload", operate.WrapLinkReplaceNotUploadHandler)
+		o.POST("/linkReplaceTimeOut", operate.WrapLinkReplaceTimeOutHandler)
+		o.POST("/linkOtherNotUpload", operate.WrapLinkOtherNotUploadHandler)
+		o.POST("/linkOtherTimeOut", operate.WrapLinkOtherTimeOutHandler)
+		o.POST("/dataReplaceNotUpload", operate.WrapDataReplaceNotUploadHandler)
+		o.POST("/dataReplaceTimeOut", operate.WrapDataReplaceTimeOutHandler)
+		o.POST("/dataOtherNotUpload", operate.WrapDataOtherNotUploadHandler)
+		o.POST("/dataOtherTimeOut", operate.WrapDataOtherTimeOutHandler)
+		o.GET("/getHours", operate.WrapGetHoursHandler)
+		o.GET("/getPercents", operate.WrapGetPercentsHandler)
+	}
+	f := r.Group("/youngee/m/finance")
+	{
+		f.Use(middleware.LoginAuthMiddleware)
+		f.POST("/withdrawalRecords", handler.WrapWithdrawalRecordsHandler)     // 搜索提现记录
+		f.POST("/getWithdrawalRecord", handler.WrapGetWithdrawalRecordHandler) // 查看提现记录
+		f.GET("/getWithdrawNums", handler.WrapGetWithdrawNumsHandler)          // 获取待提现的数量
+		f.GET("/getInvoiceNums", handler.WrapGetInvoiceNumsHandler)            // 获取待提现的数量
+		f.GET("/getRechargeNums", handler.WrapGetRechargeNumsHandler)          // 获取待开票的数量
+		f.POST("/ConfirmWithdrawal", handler.WrapConfirmWithdrawalHandler)     // 确认提现
+		f.POST("/getBankInfo", handler.WrapGetBankInfoHandler)                 // 获取银行开户地信息
+		f.POST("/getCodeUrl", handler.WrapGetCodeUrlHandler)                   // 获取微信支付链接
+		f.POST("/invoiceRecords", handler.WrapInvoiceRecordsHandler)           // 搜索开票记录
+		f.POST("/confirmInvoice", handler.WrapConfirmInvoiceHandler)           // 确认开票
+		f.POST("/rechargeRecords", handler.WrapRechargeRecordsHandler)         // 搜索充值记录
+		f.POST("/operateRecharge", handler.WrapOperateRechargeHandler)         // 充值记录的修改和确认操作
+	}
+}

+ 88 - 0
.history/service/SpecialTask_20230408160508.go

@@ -0,0 +1,88 @@
+package service
+
+import (
+	"github.com/caixw/lib.go/conv"
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	"youngee_m_api/db"
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+)
+
+var SpecialTask *specialTask
+
+type specialTask struct {
+}
+
+func (p *specialTask) GetSpecialTaskInviteList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskInviteListData, error) {
+	TaskInvites, total, err := db.GetSpecialTaskInviteList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskInviteList error,err:%+v", err)
+		return nil, err
+	}
+	TaskInviteListData := new(http_model.SpecialTaskInviteListData)
+	TaskInviteListData.SpecialTaskInvitePreview = pack.MGormSpecialTaskInviteInfoListToHttpSpecialTaskInvitePreviewList(TaskInvites)
+	TaskInviteListData.Total = conv.MustString(total, "")
+	return TaskInviteListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskScriptList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskScriptListData, error) {
+	TaskScripts, total, err := db.GetSpecialTaskScriptList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskScriptList error,err:%+v", err)
+		return nil, err
+	}
+	TaskScriptListData := new(http_model.SpecialTaskScriptListData)
+	TaskScriptListData.SpecialTaskScriptPreview = pack.MGormSpecialTaskScriptInfoListToHttpSpecialTaskScriptPreviewList(TaskScripts)
+	TaskScriptListData.Total = conv.MustString(total, "")
+	return TaskScriptListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskSketchList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskSketchListData, error) {
+	TaskSketchs, total, err := db.GetSpecialTaskSketchList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskSketchList error,err:%+v", err)
+		return nil, err
+	}
+	TaskSketchListData := new(http_model.SpecialTaskSketchListData)
+	TaskSketchListData.SpecialTaskSketchPreview = pack.MGormSpecialTaskSketchInfoListToHttpSpecialTaskSketchPreviewList(TaskSketchs)
+	TaskSketchListData.Total = conv.MustString(total, "")
+	return TaskSketchListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskLinkList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskLinkListData, error) {
+	TaskLinks, total, err := db.GetSpecialTaskLinkList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskLinkList error,err:%+v", err)
+		return nil, err
+	}
+	TaskLinkListData := new(http_model.SpecialTaskLinkListData)
+	TaskLinkListData.SpecialTaskLinkPreview = pack.MGormSpecialTaskLinkInfoListToHttpSpecialTaskLinkPreviewList(TaskLinks)
+	TaskLinkListData.Total = conv.MustString(total, "")
+	return TaskLinkListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskDataList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskDataListData, error) {
+	TaskDatas, total, err := db.GetSpecialTaskDataList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskDataList error,err:%+v", err)
+		return nil, err
+	}
+	TaskDataListData := new(http_model.SpecialTaskDataListData)
+	TaskDataListData.SpecialTaskDataPreview = pack.MGormSpecialTaskDataInfoListToHttpSpecialTaskDataPreviewList(TaskDatas)
+	TaskDataListData.Total = conv.MustString(total, "")
+	return TaskDataListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskFinishDataList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskFinishDataListData, error) {
+	TaskFinishDatas, total, err := db.GetSpecialTaskFinishList(ctx, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskFinishList error,err:%+v", err)
+		return nil, err
+	}
+	TaskFinishListData := new(http_model.SpecialTaskFinishDataListData)
+	TaskFinishListData.SpecialTaskFinishDataPreview = pack.MGormSpecialTaskFinishDataInfoListToHttpSpecialTaskFinishDataPreviewList(TaskFinishDatas)
+	TaskFinishListData.Total = conv.MustString(total, "")
+	return TaskFinishListData, nil
+}

+ 101 - 0
.history/service/SpecialTask_20230409143447.go

@@ -0,0 +1,101 @@
+package service
+
+import (
+	"youngee_m_api/db"
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+var SpecialTask *specialTask
+
+type specialTask struct {
+}
+
+func (p *specialTask) GetSpecialTaskInviteList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskInviteListData, error) {
+	TaskInvites, total, err := db.GetSpecialTaskInviteList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskInviteList error,err:%+v", err)
+		return nil, err
+	}
+	TaskInviteListData := new(http_model.SpecialTaskInviteListData)
+	TaskInviteListData.SpecialTaskInvitePreview = pack.MGormSpecialTaskInviteInfoListToHttpSpecialTaskInvitePreviewList(TaskInvites)
+	TaskInviteListData.Total = conv.MustString(total, "")
+	return TaskInviteListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskScriptList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskScriptListData, error) {
+	TaskScripts, total, err := db.GetSpecialTaskScriptList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskScriptList error,err:%+v", err)
+		return nil, err
+	}
+	TaskScriptListData := new(http_model.SpecialTaskScriptListData)
+	TaskScriptListData.SpecialTaskScriptPreview = pack.MGormSpecialTaskScriptInfoListToHttpSpecialTaskScriptPreviewList(TaskScripts)
+	TaskScriptListData.Total = conv.MustString(total, "")
+	return TaskScriptListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskSketchList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskSketchListData, error) {
+	TaskSketchs, total, err := db.GetSpecialTaskSketchList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskSketchList error,err:%+v", err)
+		return nil, err
+	}
+	TaskSketchListData := new(http_model.SpecialTaskSketchListData)
+	TaskSketchListData.SpecialTaskSketchPreview = pack.MGormSpecialTaskSketchInfoListToHttpSpecialTaskSketchPreviewList(TaskSketchs)
+	TaskSketchListData.Total = conv.MustString(total, "")
+	return TaskSketchListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskLinkList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskLinkListData, error) {
+	TaskLinks, total, err := db.GetSpecialTaskLinkList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskLinkList error,err:%+v", err)
+		return nil, err
+	}
+	TaskLinkListData := new(http_model.SpecialTaskLinkListData)
+	TaskLinkListData.SpecialTaskLinkPreview = pack.MGormSpecialTaskLinkInfoListToHttpSpecialTaskLinkPreviewList(TaskLinks)
+	TaskLinkListData.Total = conv.MustString(total, "")
+	return TaskLinkListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskDataList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskDataListData, error) {
+	TaskDatas, total, err := db.GetSpecialTaskDataList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskDataList error,err:%+v", err)
+		return nil, err
+	}
+	TaskDataListData := new(http_model.SpecialTaskDataListData)
+	TaskDataListData.SpecialTaskDataPreview = pack.MGormSpecialTaskDataInfoListToHttpSpecialTaskDataPreviewList(TaskDatas)
+	TaskDataListData.Total = conv.MustString(total, "")
+	return TaskDataListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskFinishDataList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskFinishDataListData, error) {
+	TaskFinishDatas, total, err := db.GetSpecialTaskFinishList(ctx, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskFinishList error,err:%+v", err)
+		return nil, err
+	}
+	TaskFinishListData := new(http_model.SpecialTaskFinishDataListData)
+	TaskFinishListData.SpecialTaskFinishDataPreview = pack.MGormSpecialTaskFinishDataInfoListToHttpSpecialTaskFinishDataPreviewList(TaskFinishDatas)
+	TaskFinishListData.Total = conv.MustString(total, "")
+	return TaskFinishListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskSettleList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskSettleListData, error) {
+	TaskDatas, total, err := db.GetSpecialTaskSettleList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskSettleList error,err:%+v", err)
+		return nil, err
+	}
+	TaskSettleListData := new(http_model.SpecialTaskSettleListData)
+	TaskSettleListData.SpecialTaskDataPreview = pack.MGormSpecialTaskDataInfoListToHttpSpecialTaskDataPreviewList(TaskDatas)
+	TaskSettleListData.Total = conv.MustString(total, "")
+	return TaskSettleListData, nil
+}

+ 101 - 0
.history/service/SpecialTask_20230409155535.go

@@ -0,0 +1,101 @@
+package service
+
+import (
+	"youngee_m_api/db"
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+var SpecialTask *specialTask
+
+type specialTask struct {
+}
+
+func (p *specialTask) GetSpecialTaskInviteList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskInviteListData, error) {
+	TaskInvites, total, err := db.GetSpecialTaskInviteList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskInviteList error,err:%+v", err)
+		return nil, err
+	}
+	TaskInviteListData := new(http_model.SpecialTaskInviteListData)
+	TaskInviteListData.SpecialTaskInvitePreview = pack.MGormSpecialTaskInviteInfoListToHttpSpecialTaskInvitePreviewList(TaskInvites)
+	TaskInviteListData.Total = conv.MustString(total, "")
+	return TaskInviteListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskScriptList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskScriptListData, error) {
+	TaskScripts, total, err := db.GetSpecialTaskScriptList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskScriptList error,err:%+v", err)
+		return nil, err
+	}
+	TaskScriptListData := new(http_model.SpecialTaskScriptListData)
+	TaskScriptListData.SpecialTaskScriptPreview = pack.MGormSpecialTaskScriptInfoListToHttpSpecialTaskScriptPreviewList(TaskScripts)
+	TaskScriptListData.Total = conv.MustString(total, "")
+	return TaskScriptListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskSketchList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskSketchListData, error) {
+	TaskSketchs, total, err := db.GetSpecialTaskSketchList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskSketchList error,err:%+v", err)
+		return nil, err
+	}
+	TaskSketchListData := new(http_model.SpecialTaskSketchListData)
+	TaskSketchListData.SpecialTaskSketchPreview = pack.MGormSpecialTaskSketchInfoListToHttpSpecialTaskSketchPreviewList(TaskSketchs)
+	TaskSketchListData.Total = conv.MustString(total, "")
+	return TaskSketchListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskLinkList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskLinkListData, error) {
+	TaskLinks, total, err := db.GetSpecialTaskLinkList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskLinkList error,err:%+v", err)
+		return nil, err
+	}
+	TaskLinkListData := new(http_model.SpecialTaskLinkListData)
+	TaskLinkListData.SpecialTaskLinkPreview = pack.MGormSpecialTaskLinkInfoListToHttpSpecialTaskLinkPreviewList(TaskLinks)
+	TaskLinkListData.Total = conv.MustString(total, "")
+	return TaskLinkListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskDataList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskDataListData, error) {
+	TaskDatas, total, err := db.GetSpecialTaskDataList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskDataList error,err:%+v", err)
+		return nil, err
+	}
+	TaskDataListData := new(http_model.SpecialTaskDataListData)
+	TaskDataListData.SpecialTaskDataPreview = pack.MGormSpecialTaskDataInfoListToHttpSpecialTaskDataPreviewList(TaskDatas)
+	TaskDataListData.Total = conv.MustString(total, "")
+	return TaskDataListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskFinishDataList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskFinishDataListData, error) {
+	TaskFinishDatas, total, err := db.GetSpecialTaskFinishList(ctx, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskFinishList error,err:%+v", err)
+		return nil, err
+	}
+	TaskFinishListData := new(http_model.SpecialTaskFinishDataListData)
+	TaskFinishListData.SpecialTaskFinishDataPreview = pack.MGormSpecialTaskFinishDataInfoListToHttpSpecialTaskFinishDataPreviewList(TaskFinishDatas)
+	TaskFinishListData.Total = conv.MustString(total, "")
+	return TaskFinishListData, nil
+}
+
+func (p *specialTask) GetSpecialTaskSettleList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskSettleListData, error) {
+	TaskSettles, total, err := db.GetSpecialTaskSettleList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskSettleList error,err:%+v", err)
+		return nil, err
+	}
+	TaskSettleListData := new(http_model.SpecialTaskSettleListData)
+	TaskSettleListData.SpecialTaskSettlePreview = pack.MGormSpecialTaskSettleInfoListToHttpSpecialTaskSettlePreviewList(TaskSettles)
+	TaskSettleListData.Total = conv.MustString(total, "")
+	return TaskSettleListData, nil
+}

+ 269 - 0
.history/service/auto_task_20230408211730.go

@@ -0,0 +1,269 @@
+package service
+
+import (
+	"context"
+	"log"
+	"time"
+	"youngee_m_api/consts"
+	"youngee_m_api/db"
+	"youngee_m_api/model/gorm_model"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/robfig/cron/v3"
+	"github.com/sirupsen/logrus"
+)
+
+func AutoTask() error {
+	// 新建一个定时任务对象
+	// 根据cron表达式进行时间调度,cron可以精确到秒,大部分表达式格式也是从秒开始。
+	// crontab := cron.New()  默认从分开始进行时间调度
+	crontab := cron.New(cron.WithSeconds()) //精确到秒
+	// 定义定时器调用的任务函数
+	taskKDStatus := func() {
+		logisticNums := db.GetLogisticsNum()
+		for i := 0; i < len(logisticNums); i++ {
+			logisticNum := logisticNums[i]
+			status := GetKDStatus(consts.GetKD(logisticNum[0]), logisticNum[1])
+			if status == "1" {
+				taskId := db.SignLogistic(conv.MustInt64(logisticNum[2], 0))
+				// 记录任务日志
+				err := db.CreateTaskLog(context.Background(), taskId, "签收时间")
+				if err != nil {
+					logrus.WithContext(context.Background()).Errorf("[logistics service] call CreateTaskLog error,err:%+v", err)
+					return
+				}
+			}
+		}
+	}
+	//定时任务1 ,线下探店打卡的自动签收操作
+	task1 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.SignInOffline != 0 {
+			err := db.GetSignInOfflineTask(3)
+			if err != nil {
+				logrus.Error("[GetSignInOfflineTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetSignInOfflineTask is running ,Time :", time.Now())
+	}
+	// 定时任务2 ,虚拟产品测评的自动签收操作
+	task2 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.SignInVirtual != 0 {
+			err := db.GetSignInOfflineTask(2)
+			if err != nil {
+				logrus.Error("[GetSignInVirtualTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetSignInVirtualTask is running ,Time :", time.Now())
+	}
+	// 定时任务3 ,视频形式的审稿处理
+	task3 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.ReviewInMv != 0 {
+			err := db.GetAutoReviewTask(2)
+			if err != nil {
+				logrus.Error("[GetAutoReviewTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoReviewTask is running ,Time :", time.Now())
+	}
+	// 定时任务4 ,不限形式的审稿处理
+	task4 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.ReviewUnlimited != 0 {
+			err := db.GetAutoReviewTask(0)
+			if err != nil {
+				logrus.Error("[GetAutoReviewUnlimitedTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoReviewUnlimitedTask is running ,Time :", time.Now())
+	}
+	// 定时任务5 ,发布审核自动处理
+	task5 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.Postreview != 0 {
+			err := db.GetAutoPostReviewTask()
+			if err != nil {
+				logrus.Error("[GetAutoPostReviewTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoPostReviewTask is running ,Time :", time.Now())
+	}
+	// 定时任务6 ,结案自动处理
+	task6 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.CaseClose != 0 {
+			err := db.GetAutoCaseCloseTask()
+			if err != nil {
+				logrus.Error("[GetAutoCaseCloseTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoCaseCloseTask is running ,Time :", time.Now())
+	}
+	// 定时任务7  失效自动处理
+	task7 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.Invalid != 0 {
+			err := db.GetAutoInvalidTask()
+			if err != nil {
+				logrus.Error("[GetAutoInvalidTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoInvalidTask is running ,Time :", time.Now())
+	}
+	// 定时任务8.图文形式的初稿违约自动处理
+	task8 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.DraftDefaultInPic != 0 {
+			err := db.GetAutoDraftDefaultInPicTask()
+			if err != nil {
+				logrus.Error("[GetAutoDraftDefaultInPicTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoDraftDefaultInPicTask is running ,Time :", time.Now())
+	}
+	// 定时任务9.视频形式的初稿违约自动处理
+	task9 := func() {
+		DB := db.GetReadDB(context.Background())
+		var DraftDefaultInMvTime int32
+		DB.Select("draft_default_in_mv").Model(gorm_model.InfoAutoTask{}).Last(&DraftDefaultInMvTime)
+		if DraftDefaultInMvTime != 0 {
+			err := db.GetAutoDraftDefaultInMvTask()
+			if err != nil {
+				logrus.Error("[GetAutoDraftDefaultInMvTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoDraftDefaultInMvTask is running ,Time :", time.Now())
+	}
+	// 定时任务10.视频形式的脚本违约自动处理
+	task10 := func() {
+		DB := db.GetReadDB(context.Background())
+		var scriptDefault int32
+		DB.Select("script_default").Model(gorm_model.InfoAutoTask{}).Last(&scriptDefault)
+		if scriptDefault != 0 {
+			err := db.GetAutoScriptDefaultTask()
+			if err != nil {
+				logrus.Error("[GetAutoScriptDefaultTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoScriptDefaultTask is running ,Time :", time.Now())
+	}
+	// 定时任务11.链接违约自动处理
+	task11 := func() {
+		DB := db.GetReadDB(context.Background())
+		var LinkBreach int32
+		DB.Select("link_breach").Model(gorm_model.InfoAutoTask{}).Last(&LinkBreach)
+		if LinkBreach != 0 {
+			err := db.GetAutoLinkBreachTask()
+			if err != nil {
+				logrus.Error("[GetAutoLinkBreachTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoLinkBreachTask is running ,Time :", time.Now())
+	}
+	// 定时任务12.数据违约自动处理
+	task12 := func() {
+		DB := db.GetReadDB(context.Background())
+		var LinkBreach int32
+		DB.Select("case_close_default").Model(gorm_model.InfoAutoTask{}).Last(&LinkBreach)
+		if LinkBreach != 0 {
+			err := db.GetAutoCaseCloseDefaultTask()
+			if err != nil {
+				logrus.Error("[GetAutoCaseCloseDefaultTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoCaseCloseDefaultTask is running ,Time :", time.Now())
+	}
+	//定时任务
+	//spec := "*/30 * * * * ?" //cron表达式,每30秒一次
+	spec := "0 */1 * * * ?" //cron表达式,每一分钟执行一次
+	// spec := "0 0 * * * *" //每小时执行
+	// 添加定时任务,
+	_, err := crontab.AddFunc("0 0 * * * *", taskKDStatus)
+	//_, err := crontab.AddFunc("*/30 * * * * ?", taskKDStatus)
+	if err != nil {
+		return err
+	}
+	_, err1 := crontab.AddFunc(spec, task1)
+	if err1 != nil {
+		return err1
+	}
+	_, err2 := crontab.AddFunc(spec, task2)
+	if err2 != nil {
+		return err2
+	}
+	_, err3 := crontab.AddFunc(spec, task3)
+	if err3 != nil {
+		return err3
+	}
+	_, err4 := crontab.AddFunc(spec, task4)
+	if err4 != nil {
+		return err4
+	}
+	_, err5 := crontab.AddFunc(spec, task5)
+	if err5 != nil {
+		return err5
+	}
+	_, err6 := crontab.AddFunc(spec, task6)
+	if err6 != nil {
+		return err6
+	}
+	_, err7 := crontab.AddFunc(spec, task7)
+	if err7 != nil {
+		return err7
+	}
+	_, err8 := crontab.AddFunc(spec, task8)
+	if err8 != nil {
+		return err8
+	}
+	_, err9 := crontab.AddFunc(spec, task9)
+	if err9 != nil {
+		return err9
+	}
+	_, err10 := crontab.AddFunc(spec, task10)
+	if err10 != nil {
+		return err10
+	}
+	_, err11 := crontab.AddFunc(spec, task11)
+	if err11 != nil {
+		return err11
+	}
+	_, err12 := crontab.AddFunc(spec, task12)
+	if err12 != nil {
+		return err12
+	}
+	// 启动定时器
+	crontab.Start()
+	// 定时任务是另起协程执行的,这里使用 select 简单阻塞.需要根据实际情况进行控制
+	//select {} //阻塞主线程停止
+	return nil
+}

+ 269 - 0
.history/service/auto_task_20230408215853.go

@@ -0,0 +1,269 @@
+package service
+
+import (
+	"context"
+	"log"
+	"time"
+	"youngee_m_api/consts"
+	"youngee_m_api/db"
+	"youngee_m_api/model/gorm_model"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/robfig/cron/v3"
+	"github.com/sirupsen/logrus"
+)
+
+func AutoTask() error {
+	// 新建一个定时任务对象
+	// 根据cron表达式进行时间调度,cron可以精确到秒,大部分表达式格式也是从秒开始。
+	// crontab := cron.New()  默认从分开始进行时间调度
+	crontab := cron.New(cron.WithSeconds()) //精确到秒
+	// 定义定时器调用的任务函数
+	taskKDStatus := func() {
+		logisticNums := db.GetLogisticsNum()
+		for i := 0; i < len(logisticNums); i++ {
+			logisticNum := logisticNums[i]
+			status := GetKDStatus(consts.GetKD(logisticNum[0]), logisticNum[1])
+			if status == "1" {
+				taskId := db.SignLogistic(conv.MustInt64(logisticNum[2], 0))
+				// 记录任务日志
+				err := db.CreateTaskLog(context.Background(), taskId, "签收时间")
+				if err != nil {
+					logrus.WithContext(context.Background()).Errorf("[logistics service] call CreateTaskLog error,err:%+v", err)
+					return
+				}
+			}
+		}
+	}
+	//定时任务1 ,线下探店打卡的自动签收操作
+	task1 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.SignInOffline != 0 {
+			err := db.GetSignInOfflineTask(3)
+			if err != nil {
+				logrus.Error("[GetSignInOfflineTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetSignInOfflineTask is running ,Time :", time.Now())
+	}
+	// 定时任务2 ,虚拟产品测评的自动签收操作
+	task2 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.SignInVirtual != 0 {
+			err := db.GetSignInOfflineTask(2)
+			if err != nil {
+				logrus.Error("[GetSignInVirtualTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetSignInVirtualTask is running ,Time :", time.Now())
+	}
+	// 定时任务3 ,视频形式的审稿处理
+	task3 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.ReviewInMv != 0 {
+			err := db.GetAutoReviewTask(2)
+			if err != nil {
+				logrus.Error("[GetAutoReviewTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoReviewTask is running ,Time :", time.Now())
+	}
+	// 定时任务4 ,不限形式的审稿处理
+	task4 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.ReviewUnlimited != 0 {
+			err := db.GetAutoReviewTask(0)
+			if err != nil {
+				logrus.Error("[GetAutoReviewUnlimitedTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoReviewUnlimitedTask is running ,Time :", time.Now())
+	}
+	// 定时任务5 ,发布审核自动处理
+	task5 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.Postreview != 0 {
+			err := db.GetAutoPostReviewTask()
+			if err != nil {
+				logrus.Error("[GetAutoPostReviewTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoPostReviewTask is running ,Time :", time.Now())
+	}
+	// 定时任务6 ,结案自动处理
+	task6 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.CaseClose != 0 {
+			err := db.GetAutoCaseCloseTask()
+			if err != nil {
+				logrus.Error("[GetAutoCaseCloseTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoCaseCloseTask is running ,Time :", time.Now())
+	}
+	// 定时任务7  失效自动处理
+	task7 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.Invalid != 0 {
+			err := db.GetAutoInvalidTask()
+			if err != nil {
+				logrus.Error("[GetAutoInvalidTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoInvalidTask is running ,Time :", time.Now())
+	}
+	// 定时任务8.图文形式的初稿违约自动处理
+	task8 := func() {
+		DB := db.GetReadDB(context.Background())
+		autoTaskTime := gorm_model.InfoAutoTask{}
+		DB.Model(gorm_model.InfoAutoTask{}).Last(&autoTaskTime)
+		if autoTaskTime.DraftDefaultInPic != 0 {
+			err := db.GetAutoDraftDefaultInPicTask()
+			if err != nil {
+				logrus.Error("[GetAutoDraftDefaultInPicTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoDraftDefaultInPicTask is running ,Time :", time.Now())
+	}
+	// 定时任务9.视频形式的初稿违约自动处理
+	task9 := func() {
+		DB := db.GetReadDB(context.Background())
+		var DraftDefaultInMvTime int32
+		DB.Select("draft_default_in_mv").Model(gorm_model.InfoAutoTask{}).Last(&DraftDefaultInMvTime)
+		if DraftDefaultInMvTime != 0 {
+			err := db.GetAutoDraftDefaultInMvTask()
+			if err != nil {
+				logrus.Error("[GetAutoDraftDefaultInMvTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoDraftDefaultInMvTask is running ,Time :", time.Now())
+	}
+	// 定时任务10.视频形式的脚本违约自动处理
+	task10 := func() {
+		DB := db.GetReadDB(context.Background())
+		var scriptDefault int32
+		DB.Select("script_default").Model(gorm_model.InfoAutoTask{}).Last(&scriptDefault)
+		if scriptDefault != 0 {
+			err := db.GetAutoScriptDefaultTask()
+			if err != nil {
+				logrus.Error("[GetAutoScriptDefaultTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoScriptDefaultTask is running ,Time :", time.Now())
+	}
+	// 定时任务11.链接违约自动处理
+	task11 := func() {
+		DB := db.GetReadDB(context.Background())
+		var LinkBreach int32
+		DB.Select("link_breach").Model(gorm_model.InfoAutoTask{}).Last(&LinkBreach)
+		if LinkBreach != 0 {
+			err := db.GetAutoLinkBreachTask()
+			if err != nil {
+				logrus.Error("[GetAutoLinkBreachTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoLinkBreachTask is running ,Time :", time.Now())
+	}
+	// 定时任务12.数据违约自动处理
+	task12 := func() {
+		DB := db.GetReadDB(context.Background())
+		var LinkBreach int32
+		DB.Select("case_close_default").Model(gorm_model.InfoAutoTask{}).Last(&LinkBreach)
+		if LinkBreach != 0 {
+			err := db.GetAutoCaseCloseDefaultTask()
+			if err != nil {
+				logrus.Error("[GetAutoCaseCloseDefaultTask] in DB error %+v", err)
+				return
+			}
+		}
+		log.Println("GetAutoCaseCloseDefaultTask is running ,Time :", time.Now())
+	}
+	//定时任务
+	//spec := "*/30 * * * * ?" //cron表达式,每30秒一次
+	// spec := "0 */1 * * * ?" //cron表达式,每一分钟执行一次
+	spec := "0 0 * * * *" //每小时执行
+	// 添加定时任务,
+	_, err := crontab.AddFunc("0 0 * * * *", taskKDStatus)
+	//_, err := crontab.AddFunc("*/30 * * * * ?", taskKDStatus)
+	if err != nil {
+		return err
+	}
+	_, err1 := crontab.AddFunc(spec, task1)
+	if err1 != nil {
+		return err1
+	}
+	_, err2 := crontab.AddFunc(spec, task2)
+	if err2 != nil {
+		return err2
+	}
+	_, err3 := crontab.AddFunc(spec, task3)
+	if err3 != nil {
+		return err3
+	}
+	_, err4 := crontab.AddFunc(spec, task4)
+	if err4 != nil {
+		return err4
+	}
+	_, err5 := crontab.AddFunc(spec, task5)
+	if err5 != nil {
+		return err5
+	}
+	_, err6 := crontab.AddFunc(spec, task6)
+	if err6 != nil {
+		return err6
+	}
+	_, err7 := crontab.AddFunc(spec, task7)
+	if err7 != nil {
+		return err7
+	}
+	_, err8 := crontab.AddFunc(spec, task8)
+	if err8 != nil {
+		return err8
+	}
+	_, err9 := crontab.AddFunc(spec, task9)
+	if err9 != nil {
+		return err9
+	}
+	_, err10 := crontab.AddFunc(spec, task10)
+	if err10 != nil {
+		return err10
+	}
+	_, err11 := crontab.AddFunc(spec, task11)
+	if err11 != nil {
+		return err11
+	}
+	_, err12 := crontab.AddFunc(spec, task12)
+	if err12 != nil {
+		return err12
+	}
+	// 启动定时器
+	crontab.Start()
+	// 定时任务是另起协程执行的,这里使用 select 简单阻塞.需要根据实际情况进行控制
+	//select {} //阻塞主线程停止
+	return nil
+}

+ 136 - 0
.history/service/data_20230408160508.go

@@ -0,0 +1,136 @@
+package service
+
+import (
+	"context"
+	"strings"
+	"youngee_m_api/db"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+
+	"github.com/sirupsen/logrus"
+)
+
+var Data *data
+
+type data struct {
+}
+
+// DataOpinion 在上传脚本表上提交修改意见
+func (*data) DataOpinion(ctx context.Context, request http_model.DataOpinionRequest) (*http_model.DataOpinionData, error) {
+	Data := gorm_model.YounggeeDataInfo{
+		TaskID:        request.TaskID,
+		ReviseOpinion: request.DataOpinion,
+	}
+	err := db.DataOpinion(ctx, Data.TaskID, Data.ReviseOpinion)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+	// 记录任务日志
+	err = db.CreateTaskLog(ctx, Data.TaskID, "数据驳回")
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Link service] call CreateTaskLog error,err:%+v", err)
+		return nil, err
+	}
+	err = db.CreateMessageByTaskId(ctx, 19, 3, Data.TaskID)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateMessageByTaskId error,err:%+v", err)
+		return nil, err
+	}
+
+	res := &http_model.DataOpinionData{
+		TaskID: Data.TaskID,
+	}
+	return res, nil
+}
+
+// 任务结案service
+func (*data) AcceptData(ctx context.Context, request http_model.AcceptDataRequest) (*http_model.AcceptDataData, error) {
+	var TaskIDList []string
+	TaskIDs := strings.Split(request.TaskIds, ",")
+	for _, taskId := range TaskIDs {
+		TaskIDList = append(TaskIDList, taskId)
+	}
+
+	// 1. 更新YounggeeDataInfo表,通过数据
+	//fmt.Printf("acc request %+v", TaskIDList)
+	err := db.AcceptData(ctx, TaskIDList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call AcceptData error,err:%+v", err)
+		return nil, err
+	}
+
+	// 记录任务日志
+	for _, taskId := range TaskIDList {
+		err = db.CreateTaskLog(ctx, taskId, "数据通过")
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Data service] call CreateTaskLog error,err:%+v", err)
+			return nil, err
+		}
+		err = db.CreateMessageByTaskId(ctx, 5, 1, taskId)
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Script service] call CreateTaskLog 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
+		}
+
+		// 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 err1 != nil {
+				logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
+				return nil, err
+			}
+			res.IsEnd = 1
+		}
+	}
+
+	return res, nil
+}

+ 136 - 0
.history/service/data_20230408215043.go

@@ -0,0 +1,136 @@
+package service
+
+import (
+	"context"
+	"strings"
+	"youngee_m_api/db"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+
+	"github.com/sirupsen/logrus"
+)
+
+var Data *data
+
+type data struct {
+}
+
+// DataOpinion 在上传脚本表上提交修改意见
+func (*data) DataOpinion(ctx context.Context, request http_model.DataOpinionRequest) (*http_model.DataOpinionData, error) {
+	Data := gorm_model.YounggeeDataInfo{
+		TaskID:        request.TaskID,
+		ReviseOpinion: request.DataOpinion,
+	}
+	err := db.DataOpinion(ctx, Data.TaskID, Data.ReviseOpinion)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+	// 记录任务日志
+	err = db.CreateTaskLog(ctx, Data.TaskID, "数据驳回")
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Link service] call CreateTaskLog error,err:%+v", err)
+		return nil, err
+	}
+	err = db.CreateMessageByTaskId(ctx, 19, 3, Data.TaskID)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateMessageByTaskId error,err:%+v", err)
+		return nil, err
+	}
+
+	res := &http_model.DataOpinionData{
+		TaskID: Data.TaskID,
+	}
+	return res, nil
+}
+
+// 任务结案service
+func (*data) AcceptData(ctx context.Context, request http_model.AcceptDataRequest) (*http_model.AcceptDataData, error) {
+	var TaskIDList []string
+	TaskIDs := strings.Split(request.TaskIds, ",")
+	for _, taskId := range TaskIDs {
+		TaskIDList = append(TaskIDList, taskId)
+	}
+
+	// 1. 更新YounggeeDataInfo表,通过数据
+	//fmt.Printf("acc request %+v", TaskIDList)
+	err := db.AcceptData(ctx, TaskIDList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call AcceptData error,err:%+v", err)
+		return nil, err
+	}
+
+	// 记录任务日志
+	for _, taskId := range TaskIDList {
+		err = db.CreateTaskLog(ctx, taskId, "数据通过")
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Data service] call CreateTaskLog error,err:%+v", err)
+			return nil, err
+		}
+		err = db.CreateMessageByTaskId(ctx, 5, 1, taskId)
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[Script service] call CreateTaskLog 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
+		}
+
+		// 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 err1 != nil {
+				logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
+				return nil, err
+			}
+			res.IsEnd = 1
+		}
+	}
+
+	return res, nil
+}

+ 169 - 0
.history/service/number_info_20230408160508.go

@@ -0,0 +1,169 @@
+package service
+
+import (
+	"context"
+	"github.com/caixw/lib.go/conv"
+	"strings"
+	"youngee_m_api/db"
+	"youngee_m_api/model/http_model"
+
+	"github.com/sirupsen/logrus"
+)
+
+var Number *number
+
+type number struct {
+}
+
+func (*number) GetReviewNumberInfo(ctx context.Context, request http_model.GetReviewNumberInfoRequest) (*http_model.GetReviewNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetReviewNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetLinkNumberInfo(ctx context.Context, request http_model.GetLinkNumberInfoRequest) (*http_model.GetLinkNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetLinkNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetDataNumberInfo(ctx context.Context, request http_model.GetDataNumberInfoRequest) (*http_model.GetDataNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetDataNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetDefaultNumberInfo(ctx context.Context, request http_model.GetDefaultNumberInfoRequest) (*http_model.GetDefaultNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetDefaultNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetFinishNumberInfo(ctx context.Context, request http_model.GetFinishNumberInfoRequest) (*http_model.GetFinishNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetFinishNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetLogisticsNumberInfo(ctx context.Context, request http_model.GetLogisticsNumberInfoRequest) (*http_model.GetLogisticsNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetLogisticsNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+	return NumberData, nil
+}
+
+func (*number) GetSpecialInviteNumber(ctx context.Context, request http_model.GetSpecialInviteNumberRequest) (*http_model.GetSpecialInviteNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialInviteNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call GetSpecialInviteNumber error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialLogisticNumber(ctx context.Context, request http_model.GetSpecialLogisticNumberRequest) (*http_model.GetSpecialLogisticNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialLogisticNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call GetSpecialLogisticNumber error,err:%+v", err)
+		return nil, err
+	}
+	return NumberData, nil
+}
+
+func (*number) GetSpecialReviewNumber(ctx context.Context, request http_model.GetSpecialReviewNumberRequest) (*http_model.GetSpecialReviewNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialReviewNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialLinkNumber(ctx context.Context, request http_model.GetSpecialLinkNumberRequest) (*http_model.GetSpecialLinkNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialLinkNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialDataNumber(ctx context.Context, request http_model.GetSpecialDataNumberRequest) (*http_model.GetSpecialDataNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialDataNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialFinishData(ctx context.Context, request http_model.GetSpecialFinishDataRequest) (*http_model.GetSpecialFinishDataData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialFinishDataNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+	return NumberData, nil
+}

+ 181 - 0
.history/service/number_info_20230408223501.go

@@ -0,0 +1,181 @@
+package service
+
+import (
+	"context"
+	"strings"
+	"youngee_m_api/db"
+	"youngee_m_api/model/http_model"
+
+	"github.com/caixw/lib.go/conv"
+
+	"github.com/sirupsen/logrus"
+)
+
+var Number *number
+
+type number struct {
+}
+
+func (*number) GetReviewNumberInfo(ctx context.Context, request http_model.GetReviewNumberInfoRequest) (*http_model.GetReviewNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetReviewNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetLinkNumberInfo(ctx context.Context, request http_model.GetLinkNumberInfoRequest) (*http_model.GetLinkNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetLinkNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetDataNumberInfo(ctx context.Context, request http_model.GetDataNumberInfoRequest) (*http_model.GetDataNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetDataNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetDefaultNumberInfo(ctx context.Context, request http_model.GetDefaultNumberInfoRequest) (*http_model.GetDefaultNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetDefaultNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetFinishNumberInfo(ctx context.Context, request http_model.GetFinishNumberInfoRequest) (*http_model.GetFinishNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetFinishNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetLogisticsNumberInfo(ctx context.Context, request http_model.GetLogisticsNumberInfoRequest) (*http_model.GetLogisticsNumberInfoData, error) {
+	var StrategyIdList []int64
+	StrategyIds := strings.Split(request.StrategyIds, ",")
+	for _, strategyId := range StrategyIds {
+		StrategyIdList = append(StrategyIdList, conv.MustInt64(strategyId, 0))
+	}
+	NumberData, err := db.GetLogisticsNumberInfo(ctx, request.ProjectId, StrategyIdList)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+	return NumberData, nil
+}
+
+func (*number) GetSpecialInviteNumber(ctx context.Context, request http_model.GetSpecialInviteNumberRequest) (*http_model.GetSpecialInviteNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialInviteNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call GetSpecialInviteNumber error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialLogisticNumber(ctx context.Context, request http_model.GetSpecialLogisticNumberRequest) (*http_model.GetSpecialLogisticNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialLogisticNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call GetSpecialLogisticNumber error,err:%+v", err)
+		return nil, err
+	}
+	return NumberData, nil
+}
+
+func (*number) GetSpecialReviewNumber(ctx context.Context, request http_model.GetSpecialReviewNumberRequest) (*http_model.GetSpecialReviewNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialReviewNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialLinkNumber(ctx context.Context, request http_model.GetSpecialLinkNumberRequest) (*http_model.GetSpecialLinkNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialLinkNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialDataNumber(ctx context.Context, request http_model.GetSpecialDataNumberRequest) (*http_model.GetSpecialDataNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialDataNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}
+
+func (*number) GetSpecialFinishData(ctx context.Context, request http_model.GetSpecialFinishDataRequest) (*http_model.GetSpecialFinishDataData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialFinishDataNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
+		return nil, err
+	}
+	return NumberData, nil
+}
+
+func (*number) GetSpecialSettleNumber(ctx context.Context, request http_model.GetSpecialSettleNumberRequest) (*http_model.GetSpecialSettleNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialSettleNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Number service] call GetSpecialSettleNumber error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}

+ 145 - 0
db/Settle.go

@@ -0,0 +1,145 @@
+package db
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"strings"
+
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/gorm_model"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/util"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/sirupsen/logrus"
+)
+
+// GetSpecialTaskSettleList 专项任务-查询上传链接的task list
+func GetSpecialTaskSettleList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSettleInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 查询Task表信息
+	db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(conditions).Elem()
+	conditionValue := reflect.ValueOf(conditions).Elem()
+	var platform_nickname string = ""
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+
+		if tag == "settle_status" {
+			fmt.Printf("Data %+v", value.Interface() == int64(0))
+			if value.Interface() == int64(0) {
+				db = db.Where("task_stage = 15 and settle_status = 1")
+			} else {
+				db = db.Where("task_stage = 15 and settle_status = 2")
+			}
+			continue
+		} else if !util.IsBlank(value) {
+			if tag == "platform_nickname" {
+				platform_nickname = fmt.Sprintf("%v", value.Interface())
+				continue
+			} else if tag == "project_id" {
+				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+			}
+		}
+	}
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	db = db.Model(gorm_model.YoungeeTaskInfo{})
+	// 查询总数
+	var totalTask int64
+	if err := db.Count(&totalTask).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	db.Order("task_id").Find(&taskInfos)
+
+	// 查询任务id
+	var taskIds []string
+	taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
+	for _, taskInfo := range taskInfos {
+		taskIds = append(taskIds, taskInfo.TaskId)
+		taskMap[taskInfo.TaskId] = taskInfo
+	}
+
+	// 查询链接
+	db1 := GetReadDB(ctx)
+	// db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	var LinkInfos []gorm_model.YounggeeLinkInfo
+	db1 = db1.Model(gorm_model.YounggeeLinkInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err := db1.Find(&LinkInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	LinkMap := make(map[string]gorm_model.YounggeeLinkInfo)
+	for _, LinkInfo := range LinkInfos {
+		LinkMap[LinkInfo.TaskID] = LinkInfo
+	}
+
+	// 查询数据
+	db2 := GetReadDB(ctx)
+	var DataInfos []gorm_model.YounggeeDataInfo
+	db2 = db2.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit= 1 AND is_ok = 1", taskIds)
+	err = db2.Find(&DataInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	DataMap := make(map[string]gorm_model.YounggeeDataInfo)
+	for _, DataInfo := range DataInfos {
+		DataMap[DataInfo.TaskID] = DataInfo
+	}
+	// 查询总数
+	var totalData int64
+	if err := db2.Count(&totalData).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	var misNum int64
+	if totalData > totalTask {
+		misNum = totalData - totalTask
+	} else {
+		misNum = totalTask - totalData
+	}
+	logrus.Println("totalData,totalTalent,misNum:", totalData, totalTask, misNum)
+
+	// 查询该页数据
+	limit := pageSize + misNum
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskSettleList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+
+	var TaskSettles []*http_model.SpecialTaskSettle
+	var taskSettles []*http_model.SpecialTaskSettleInfo
+	var newTaskSettles []*http_model.SpecialTaskSettleInfo
+	for _, taskId := range taskIds {
+		TaskSettle := new(http_model.SpecialTaskSettle)
+		TaskSettle.Talent = taskMap[taskId]
+		TaskSettle.Data = DataMap[taskId]
+		TaskSettle.Link = LinkMap[taskId]
+		TaskSettles = append(TaskSettles, TaskSettle)
+	}
+
+	taskSettles = pack.SpecialTaskSettleToTaskInfo(TaskSettles)
+
+	for _, v := range taskSettles {
+		if platform_nickname == "" {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskSettles = append(newTaskSettles, v)
+		} else {
+			totalTask--
+		}
+	}
+	// return fulltaskSettle, total, nil
+	return newTaskSettles, totalTask, nil
+}

+ 23 - 0
db/number_info.go

@@ -376,3 +376,26 @@ func GetSpecialDataNumber(ctx context.Context, projectId string) (*http_model.Ge
 	}
 	return &specialDataNumber, nil
 }
+
+func GetSpecialSettleNumber(ctx context.Context, projectId string) (*http_model.GetSpecialSettleNumberData, error) {
+	var specialSettleNumber http_model.GetSpecialSettleNumberData
+	db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15", projectId)
+	err := db.Where("").Count(&specialSettleNumber.SettleNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialSettleNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15 and settle_status = 1", projectId)
+	err = db.Where("task_stage = 14").Count(&specialSettleNumber.UnsettleNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialSettleNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and task_status = 2 and task_stage = 15 and settle_status = 2", projectId)
+	err = db.Where("task_stage > 14").Count(&specialSettleNumber.SettledNumber).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetSpecialSettleNumber] error query mysql total, err:%+v", err)
+		return nil, err
+	}
+	return &specialSettleNumber, nil
+}

+ 2 - 1
handler/SpecialTaskDataList.go

@@ -3,13 +3,14 @@ package handler
 import (
 	"errors"
 	"fmt"
-	"github.com/cstockton/go-conv"
 	"youngee_m_api/consts"
 	"youngee_m_api/model/http_model"
 	"youngee_m_api/pack"
 	"youngee_m_api/service"
 	"youngee_m_api/util"
 
+	"github.com/cstockton/go-conv"
+
 	"github.com/gin-gonic/gin"
 	"github.com/sirupsen/logrus"
 )

+ 59 - 0
handler/getSpecialSettleNumber.go

@@ -0,0 +1,59 @@
+package handler
+
+import (
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	log "github.com/sirupsen/logrus"
+)
+
+func WrapGetSpecialSettleNumberHandler(ctx *gin.Context) {
+	handler := newGetSpecialSettleNumberHandler(ctx)
+	BaseRun(handler)
+}
+
+func newGetSpecialSettleNumberHandler(ctx *gin.Context) *GetSpecialSettleNumberHandler {
+	return &GetSpecialSettleNumberHandler{
+		req:  http_model.NewGetSpecialSettleNumberRequest(),
+		resp: http_model.NewGetSpecialSettleNumberResponse(),
+		ctx:  ctx,
+	}
+}
+
+type GetSpecialSettleNumberHandler struct {
+	req  *http_model.GetSpecialSettleNumberRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *GetSpecialSettleNumberHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *GetSpecialSettleNumberHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *GetSpecialSettleNumberHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *GetSpecialSettleNumberHandler) run() {
+	data := http_model.GetSpecialSettleNumberRequest{}
+	data = *h.req
+	res, err := service.Number.GetSpecialSettleNumber(h.ctx, data)
+	if err != nil {
+		logrus.Errorf("[GetSpecialSettleNumberHandler] call GetSpecialSettleNumber err:%+v\n", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, "")
+		log.Info("GetSpecialSettleNumber fail,req:%+v", h.req)
+		return
+	}
+	h.resp.Message = ""
+	h.resp.Data = res
+}
+
+func (h *GetSpecialSettleNumberHandler) checkParam() error {
+	return nil
+}

+ 74 - 0
handler/specialTaskSettleList.go

@@ -0,0 +1,74 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"youngee_m_api/consts"
+	"youngee_m_api/model/http_model"
+	"youngee_m_api/pack"
+	"youngee_m_api/service"
+	"youngee_m_api/util"
+
+	"github.com/cstockton/go-conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapSpecialTaskSettleListHandler(ctx *gin.Context) {
+	handler := newSpecialTaskSettleListHandler(ctx)
+	BaseRun(handler)
+}
+
+func newSpecialTaskSettleListHandler(ctx *gin.Context) *SpecialTaskSettleListHandler {
+	return &SpecialTaskSettleListHandler{
+		req:  http_model.NewSpecialTaskSettleListRequest(),
+		resp: http_model.NewSpecialTaskSettleListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type SpecialTaskSettleListHandler struct {
+	req  *http_model.SpecialTaskSettleListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *SpecialTaskSettleListHandler) getRequest() interface{} {
+	return h.req
+}
+
+func (h *SpecialTaskSettleListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+
+func (h *SpecialTaskSettleListHandler) getResponse() interface{} {
+	return h.resp
+}
+
+func (h *SpecialTaskSettleListHandler) run() {
+	conditions := pack.HttpSpecialTaskSettleListRequestToCondition(h.req)
+	data, err := service.SpecialTask.GetSpecialTaskSettleList(h.ctx, h.req.ProjectId, h.req.PageSize, h.req.PageNum, conditions)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[TaskLogisticsListHandler] error GetProjectTaskList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+
+func (h *SpecialTaskSettleListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.SettleStatus = util.IsNull(h.req.SettleStatus)
+	if _, err := conv.Int64(h.req.SettleStatus); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 1 - 0
model/common_model/talent_condition.go

@@ -8,6 +8,7 @@ type TalentConditions struct {
 	SketchStatus     int64  `condition:"sketch_status"`     // 初稿状态
 	LinkStatus       int64  `condition:"link_status"`       // 链接状态
 	DataStatus       int64  `condition:"data_status"`       // 数据状态
+	SettleStatus     int64  `condition:"settle_status"`     // 结算状态
 	DefaultStatus    int64  `condition:"default_status"`    // 违约状态
 	StrategyId       int64  `condition:"strategy_id"`       // 策略ID
 	TaskId           string `condition:"task_id"`           // 任务ID

+ 76 - 0
model/http_model/SpecialTaskSettleList.go

@@ -0,0 +1,76 @@
+package http_model
+
+import (
+	"time"
+	"youngee_m_api/model/gorm_model"
+)
+
+type SpecialTaskSettleListRequest struct {
+	PageSize         int64  `json:"page_size"`
+	PageNum          int64  `json:"page_num"`
+	ProjectId        string `json:"project_id"`        // 项目ID
+	TaskId           string `json:"task_id"`           // 任务ID
+	SettleStatus     string `json:"settle_status"`     // 结算状态,待结算、已结算
+	PlatformNickname string `json:"platform_nickname"` // 账号昵称
+}
+
+type SpecialTaskSettlePreview struct {
+	TaskID           string  `json:"task_id"`           // 任务ID
+	PlatformNickname string  `json:"platform_nickname"` // 账号昵称
+	FansCount        string  `json:"fans_count"`        // 粉丝数
+	PlayNumber       int     `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int     `json:"like_number"`       // 点赞数
+	CommentNumber    int     `json:"comment_number"`    // 评论数
+	CollectNumber    int     `json:"collect_number"`    // 收藏数
+	LinkUrl          string  `json:"link_url"`          // 上传链接url
+	PhotoUrl         string  `json:"photo_url"`         // 数据截图url
+	AllPayment       float64 `json:"all_payment"`       // 企业支付
+	RealPayment      float64 `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	Phone            string  `json:"phone"`             // 联系方式
+	SubmitAt         string  `json:"submit_at"`         // 提交时间
+	AgreeAt          string  `json:"agree_at"`          // 同意时间
+	ReviseOpinion    string  `json:"revise_opinion"`    // 审稿意见
+}
+
+type SpecialTaskSettleInfo struct {
+	TaskID           string    `json:"task_id"`           // 任务ID
+	PlatformNickname string    `json:"platform_nickname"` // 账号昵称
+	FansCount        string    `json:"fans_count"`        // 粉丝数
+	DataId           int       `json:"data_id"`           // 数据ID
+	PlayNumber       int       `json:"play_number"`       // 播放量/阅读量
+	LikeNumber       int       `json:"like_number"`       // 点赞数
+	CommentNumber    int       `json:"comment_number"`    // 评论数
+	CollectNumber    int       `json:"collect_number"`    // 收藏数
+	LinkUrl          string    `json:"link_url"`          // 上传链接url
+	PhotoUrl         string    `json:"photo_url"`         // 数据截图url
+	AllPayment       float64   `json:"all_payment"`       // 企业支付
+	RealPayment      float64   `json:"real_payment"`      // 企业实际支付(扣除违约扣款)
+	ReviseOpinion    string    `json:"revise_opinion"`    // 审稿意见
+	Phone            string    `json:"phone"`             // 联系方式
+	CreateAt         time.Time `json:"create_at"`         // 创建时间
+	SubmitAt         time.Time `json:"submit_at"`         // 提交时间
+	AgreeAt          time.Time `json:"agree_at"`          // 同意时间
+	RejectAt         time.Time `json:"reject_at"`         // 拒绝时间
+	IsReview         int       `json:"is_review"`         // 是否审核
+}
+
+type SpecialTaskSettle struct {
+	Talent gorm_model.YoungeeTaskInfo
+	Data   gorm_model.YounggeeDataInfo
+	Link   gorm_model.YounggeeLinkInfo
+}
+
+type SpecialTaskSettleListData struct {
+	SpecialTaskSettlePreview []*SpecialTaskSettlePreview `json:"project_task_pre_view"`
+	Total                    string                      `json:"total"`
+}
+
+func NewSpecialTaskSettleListRequest() *SpecialTaskSettleListRequest {
+	return new(SpecialTaskSettleListRequest)
+}
+
+func NewSpecialTaskSettleListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(SpecialTaskSettleListData)
+	return resp
+}

+ 21 - 0
model/http_model/getSpecialSettleNumber.go

@@ -0,0 +1,21 @@
+package http_model
+
+type GetSpecialSettleNumberRequest struct {
+	ProjectId string `json:"project_id"` // 项目id
+}
+
+type GetSpecialSettleNumberData struct {
+	SettleNumber   int64 `json:"settle_number"`   // 应结算数量
+	UnsettleNumber int64 `json:"unsettle_number"` // 待结算数量
+	SettledNumber  int64 `json:"settled_number"`  // 已结算数量
+}
+
+func NewGetSpecialSettleNumberRequest() *GetSpecialSettleNumberRequest {
+	return new(GetSpecialSettleNumberRequest)
+}
+
+func NewGetSpecialSettleNumberResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(GetSpecialSettleNumberData)
+	return resp
+}

+ 72 - 0
pack/special_task_settle_list.go

@@ -0,0 +1,72 @@
+package pack
+
+import (
+	"youngee_m_api/model/http_model"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/tidwall/gjson"
+)
+
+func MGormSpecialTaskSettleInfoListToHttpSpecialTaskSettlePreviewList(gormSpecialTaskSettleInfos []*http_model.SpecialTaskSettleInfo) []*http_model.SpecialTaskSettlePreview {
+	var httpProjectPreviews []*http_model.SpecialTaskSettlePreview
+	for _, gormSpecialTaskSettleInfo := range gormSpecialTaskSettleInfos {
+		httpSpecialTaskSettlePreview := MGormSpecialTaskSettleInfoToHttpSpecialTaskSettlePreview(gormSpecialTaskSettleInfo)
+		httpProjectPreviews = append(httpProjectPreviews, httpSpecialTaskSettlePreview)
+	}
+	return httpProjectPreviews
+}
+
+func MGormSpecialTaskSettleInfoToHttpSpecialTaskSettlePreview(SpecialTaskSettleInfo *http_model.SpecialTaskSettleInfo) *http_model.SpecialTaskSettlePreview {
+	return &http_model.SpecialTaskSettlePreview{
+		TaskID:           conv.MustString(SpecialTaskSettleInfo.TaskID, ""),
+		PlatformNickname: conv.MustString(SpecialTaskSettleInfo.PlatformNickname, ""),
+		FansCount:        conv.MustString(SpecialTaskSettleInfo.FansCount, ""),
+		PlayNumber:       SpecialTaskSettleInfo.PlayNumber,
+		LikeNumber:       SpecialTaskSettleInfo.LikeNumber,
+		CommentNumber:    SpecialTaskSettleInfo.CommentNumber,
+		CollectNumber:    SpecialTaskSettleInfo.CollectNumber,
+		LinkUrl:          SpecialTaskSettleInfo.LinkUrl,
+		PhotoUrl:         SpecialTaskSettleInfo.PhotoUrl,
+		AllPayment:       SpecialTaskSettleInfo.AllPayment,
+		RealPayment:      SpecialTaskSettleInfo.RealPayment,
+		ReviseOpinion:    SpecialTaskSettleInfo.ReviseOpinion,
+		Phone:            SpecialTaskSettleInfo.Phone,
+		SubmitAt:         conv.MustString(SpecialTaskSettleInfo.SubmitAt, "")[0:19],
+		AgreeAt:          conv.MustString(SpecialTaskSettleInfo.AgreeAt, "")[0:19],
+	}
+}
+
+func SpecialTaskSettleToTaskInfo(SpecialTaskSettles []*http_model.SpecialTaskSettle) []*http_model.SpecialTaskSettleInfo {
+	var SpecialTaskSettleInfos []*http_model.SpecialTaskSettleInfo
+	for _, SpecialTaskSettle := range SpecialTaskSettles {
+		SpecialTaskSettle := GetSpecialTaskSettleInfoStruct(SpecialTaskSettle)
+		SpecialTaskSettleInfos = append(SpecialTaskSettleInfos, SpecialTaskSettle)
+	}
+	return SpecialTaskSettleInfos
+}
+
+func GetSpecialTaskSettleInfoStruct(SpecialTaskSettle *http_model.SpecialTaskSettle) *http_model.SpecialTaskSettleInfo {
+	TalentPlatformInfoSnap := SpecialTaskSettle.Talent.TalentPlatformInfoSnap
+	TalentPersonalInfoSnap := SpecialTaskSettle.Talent.TalentPersonalInfoSnap
+	return &http_model.SpecialTaskSettleInfo{
+		TaskID:           SpecialTaskSettle.Talent.TaskId,
+		PlatformNickname: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "platform_nickname"), ""),
+		FansCount:        conv.MustString(gjson.Get(TalentPlatformInfoSnap, "fans_count"), ""),
+		DataId:           SpecialTaskSettle.Data.DataID,
+		PlayNumber:       SpecialTaskSettle.Data.PlayNumber,
+		LikeNumber:       SpecialTaskSettle.Data.LikeNumber,
+		CommentNumber:    SpecialTaskSettle.Data.CommentNumber,
+		CollectNumber:    SpecialTaskSettle.Data.CollectNumber,
+		LinkUrl:          SpecialTaskSettle.Link.LinkUrl,
+		PhotoUrl:         SpecialTaskSettle.Data.PhotoUrl,
+		AllPayment:       SpecialTaskSettle.Talent.AllPayment,
+		RealPayment:      SpecialTaskSettle.Talent.RealPayment,
+		ReviseOpinion:    SpecialTaskSettle.Data.ReviseOpinion,
+		Phone:            conv.MustString(gjson.Get(TalentPersonalInfoSnap, "talent_phone_number"), ""),
+		CreateAt:         SpecialTaskSettle.Data.CreateAt,
+		SubmitAt:         SpecialTaskSettle.Data.SubmitAt,
+		AgreeAt:          SpecialTaskSettle.Data.AgreeAt,
+		RejectAt:         SpecialTaskSettle.Data.RejectAt,
+		IsReview:         SpecialTaskSettle.Data.IsReview,
+	}
+}

+ 16 - 0
pack/special_task_settle_list_condition.go

@@ -0,0 +1,16 @@
+package pack
+
+import (
+	"youngee_m_api/model/common_model"
+	"youngee_m_api/model/http_model"
+
+	"github.com/caixw/lib.go/conv"
+)
+
+func HttpSpecialTaskSettleListRequestToCondition(req *http_model.SpecialTaskSettleListRequest) *common_model.TalentConditions {
+	return &common_model.TalentConditions{
+		ProjectId:        req.ProjectId,
+		SettleStatus:     conv.MustInt64(req.SettleStatus, 0),
+		PlatformNickname: conv.MustString(req.PlatformNickname, ""),
+	}
+}

+ 4 - 1
route/init.go

@@ -101,7 +101,10 @@ func InitRoute(r *gin.Engine) {
 		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
 		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
 		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
-		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler)                              // 获取微信二维码
+		m.POST("/project/getSpecialSettleNumber", handler.WrapGetSpecialSettleNumberHandler)       // 查询专项任务结算管理任务数量
+		m.POST("/project/specialTaskSettleList", handler.WrapSpecialTaskSettleListHandler)         // 查询专项任务结算管理任务列表
+
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler) // 获取微信二维码
 	}
 	u := r.Group("/youngee/m/user")
 	{

+ 16 - 3
service/SpecialTask.go

@@ -1,13 +1,14 @@
 package service
 
 import (
-	"github.com/caixw/lib.go/conv"
-	"github.com/gin-gonic/gin"
-	"github.com/sirupsen/logrus"
 	"youngee_m_api/db"
 	"youngee_m_api/model/common_model"
 	"youngee_m_api/model/http_model"
 	"youngee_m_api/pack"
+
+	"github.com/caixw/lib.go/conv"
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
 )
 
 var SpecialTask *specialTask
@@ -86,3 +87,15 @@ func (p *specialTask) GetSpecialTaskFinishDataList(ctx *gin.Context, projectID s
 	TaskFinishListData.Total = conv.MustString(total, "")
 	return TaskFinishListData, nil
 }
+
+func (p *specialTask) GetSpecialTaskSettleList(ctx *gin.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) (*http_model.SpecialTaskSettleListData, error) {
+	TaskSettles, total, err := db.GetSpecialTaskSettleList(ctx, projectID, pageSize, pageNum, conditions)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetTaskSettleList error,err:%+v", err)
+		return nil, err
+	}
+	TaskSettleListData := new(http_model.SpecialTaskSettleListData)
+	TaskSettleListData.SpecialTaskSettlePreview = pack.MGormSpecialTaskSettleInfoListToHttpSpecialTaskSettlePreviewList(TaskSettles)
+	TaskSettleListData.Total = conv.MustString(total, "")
+	return TaskSettleListData, nil
+}

+ 2 - 2
service/auto_task.go

@@ -205,8 +205,8 @@ func AutoTask() error {
 	}
 	//定时任务
 	//spec := "*/30 * * * * ?" //cron表达式,每30秒一次
-	spec := "0 */1 * * * ?" //cron表达式,每一分钟执行一次
-	// spec := "0 0 * * * *" //每小时执行
+	// spec := "0 */1 * * * ?" //cron表达式,每一分钟执行一次
+	spec := "0 0 * * * *" //每小时执行
 	// 添加定时任务,
 	_, err := crontab.AddFunc("0 0 * * * *", taskKDStatus)
 	//_, err := crontab.AddFunc("*/30 * * * * ?", taskKDStatus)

+ 13 - 1
service/number_info.go

@@ -2,11 +2,12 @@ package service
 
 import (
 	"context"
-	"github.com/caixw/lib.go/conv"
 	"strings"
 	"youngee_m_api/db"
 	"youngee_m_api/model/http_model"
 
+	"github.com/caixw/lib.go/conv"
+
 	"github.com/sirupsen/logrus"
 )
 
@@ -167,3 +168,14 @@ func (*number) GetSpecialFinishData(ctx context.Context, request http_model.GetS
 	}
 	return NumberData, nil
 }
+
+func (*number) GetSpecialSettleNumber(ctx context.Context, request http_model.GetSpecialSettleNumberRequest) (*http_model.GetSpecialSettleNumberData, error) {
+	projectId := request.ProjectId
+	NumberData, err := db.GetSpecialSettleNumber(ctx, projectId)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[Number service] call GetSpecialSettleNumber error,err:%+v", err)
+		return nil, err
+	}
+
+	return NumberData, nil
+}