Kaynağa Gözat

物流管理

Ethan 5 ay önce
ebeveyn
işleme
cead78cc4f

+ 31 - 0
app/controller/task_controller.go

@@ -573,6 +573,18 @@ func (o TaskController) InviteSupplier(c *gin.Context) {
 	returnSuccess(c, 20000, nil)
 }
 
+// 门店类目
+func (t TaskController) GetStoreCategory(c *gin.Context) {
+	res, err := service.StoreService{}.GetStoreCategory()
+	if err != nil {
+		logrus.Errorf("[GetStoreCategory] call Show err:%+v\n", err)
+		returnError(c, 40000, "error")
+		return
+	}
+
+	returnSuccess(c, 20000, res)
+}
+
 // 关联门店-已有门店展示
 func (t TaskController) GetAllStore(c *gin.Context) {
 	search := vo.GetAllStoreParam{}
@@ -749,3 +761,22 @@ func (t TaskController) LocalLifeToReview(c *gin.Context) {
 	resultMap["localId"] = *localId
 	returnSuccess(c, 20000, resultMap)
 }
+
+// 达人物流列表
+func (t TaskController) LogisticsTalentList(c *gin.Context) {
+	param := &vo.LogisticsTalentParam{}
+	err := c.BindJSON(param)
+	if err != nil || "" == param.ProjectId {
+		logrus.Errorf("Request bind err:%+v\n", err)
+		returnError(c, 40000, "参数错误")
+		return
+	}
+	res, err := service.TaskInfoService{}.LogisticsTalentList(param)
+	if err != nil {
+		logrus.Errorf("[LogisticsTalentList] call Show err:%+v\n", err)
+		returnError(c, 40000, err.Error())
+		return
+	}
+
+	returnSuccess(c, 20000, res)
+}

+ 6 - 0
app/dao/project_dao.go

@@ -106,6 +106,12 @@ func (d ProjectDAO) GetProjectPreviews(param *vo.ProjectSearchParam) ([]vo.RePro
 	if param.ContentType != 0 {
 		query = query.Where("content_type = ?", param.ContentType)
 	}
+	if param.ProjectId != "" {
+		query = query.Where("project_id = ?", param.ProjectId)
+	}
+	if param.ProjectName != "" {
+		query = query.Where("project_name LIKE ?", "%"+param.ProjectName+"%")
+	}
 	query.Count(&total)
 	query = query.Select("enterprise_id, sub_account_id, project_id, project_platform, project_status, estimated_cost, project_form, content_type, need_review, need_quality, need_calculate, product_id, tools")
 	offset := (param.Page - 1) * param.PageSize

+ 22 - 0
app/dao/project_task_info_dao.go

@@ -21,6 +21,28 @@ func (d ProjectTaskInfoDao) CountByTaskStage(projectId string, taskStage int64)
 	return total
 }
 
+// 获取指定任务阶段的种草子任务
+func (d ProjectTaskInfoDao) GetListByTaskStage(projectId string, taskStage int64, page int, pageSize int) ([]*entity.ProjectTaskInfo, int64, error) {
+	var taskInfos []*entity.ProjectTaskInfo
+	var total int64
+	query := Db.Model(&entity.ProjectTaskInfo{}).Where("project_id = ? AND task_stage = ?", projectId, taskStage)
+	query.Count(&total)
+	// 计算偏移量
+	offset := (page - 1) * pageSize
+	var err error
+	if taskStage == 4 {
+		err = query.Order("create_date desc").Offset(offset).Limit(pageSize).Find(&taskInfos).Error
+	} else if taskStage == 5 {
+		err = query.Order("delivery_date desc").Offset(offset).Limit(pageSize).Find(&taskInfos).Error
+	} else if taskStage == 6 {
+		err = query.Order("signed_time desc").Offset(offset).Limit(pageSize).Find(&taskInfos).Error
+	}
+	if err != nil {
+		return nil, 0, err
+	}
+	return taskInfos, total, nil
+}
+
 // 获取未传初稿的种草子任务数据
 func (d ProjectTaskInfoDao) GetListBySketchDefault(param *vo.DefaultSearchParam) ([]entity.ProjectTaskInfo, int64, error) {
 	projectTaskInfos := []entity.ProjectTaskInfo{}

+ 11 - 0
app/dao/region_info_dao.go

@@ -0,0 +1,11 @@
+package dao
+
+import "youngee_b_api/app/entity"
+
+type RegionInfoDao struct{}
+
+func (d RegionInfoDao) SelectRegion(selfCode int64) (string, error) {
+	var regionName string
+	err := Db.Model(&entity.RegionInfo{}).Where("self_code = ?", selfCode).Select("region_name").Find(&regionName).Error
+	return regionName, err
+}

+ 6 - 0
app/dao/selection_info_dao.go

@@ -95,6 +95,12 @@ func (d SelectionInfoDAO) GetSelectionPreviews(param *vo.SelectionSearchParam) (
 	} else if param.RewardFlag == 2 {
 		query = query.Where("task_mode = ?", 2)
 	}
+	if param.SelectionId != "" {
+		query = query.Where("selection_id = ?", param.SelectionId)
+	}
+	if param.SelectionName != "" {
+		query = query.Where("selection_name LIKE ?", "%"+param.SelectionName+"%")
+	}
 	query.Count(&total)
 	query = query.Select("enterprise_id, sub_account_id, selection_id, platform, selection_status, created_at, task_ddl, sample_num, enroll_num, choose_num, product_id")
 	offset := (param.Page - 1) * param.PageSize

+ 7 - 0
app/dao/store_dao.go

@@ -80,3 +80,10 @@ func (d StoreDao) IncrementTeamNum(storeId int64) error {
 	err := Db.Model(&entity.Store{}).Where("store_id = ?", storeId).Update("team_num", gorm.Expr("team_num + ?", 1)).Error
 	return err
 }
+
+// 获取所有门店类目
+func (d StoreDao) GetStoreCategory() ([]entity.StoreCategory, error) {
+	var storeCategory []entity.StoreCategory
+	err := Db.Model(&entity.StoreCategory{}).Find(&storeCategory).Error
+	return storeCategory, err
+}

+ 14 - 0
app/dao/talent_info_dao.go

@@ -1,6 +1,7 @@
 package dao
 
 import (
+	"database/sql"
 	"github.com/sirupsen/logrus"
 	"youngee_b_api/app/entity"
 )
@@ -16,3 +17,16 @@ func (d TalentInfoDao) SelectTalentPhone(talentId string) (*string, error) {
 	}
 	return &talentInfo.TalentPhoneNumber, nil
 }
+
+func (d TalentInfoDao) SelectTalentInfo(talentId string) (*entity.YoungeeTalentInfo, error) {
+	var talentInfo *entity.YoungeeTalentInfo
+	err := Db.Model(&entity.YoungeeTalentInfo{}).Where("id = ?", talentId).Find(&talentInfo).Error
+	if err != nil {
+		if err.Error() == sql.ErrNoRows.Error() {
+			return nil, nil
+		}
+		logrus.Errorf("[SelectTalentInfo] error query, err:%+v", err)
+		return nil, err
+	}
+	return talentInfo, nil
+}

+ 21 - 0
app/dao/task_logistics_dao.go

@@ -0,0 +1,21 @@
+package dao
+
+import (
+	"errors"
+	"gorm.io/gorm"
+	"youngee_b_api/app/entity"
+)
+
+type TaskLogisticsDao struct{}
+
+func (d TaskLogisticsDao) SelectTaskLogistics(taskId string) (*entity.TaskLogistics, error) {
+	var taskLogistics *entity.TaskLogistics
+	err := Db.Model(&entity.TaskLogistics{}).Where("task_id = ?", taskId).Find(&taskLogistics).Error
+	if err != nil {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
+			return nil, nil
+		}
+		return nil, err
+	}
+	return taskLogistics, nil
+}

+ 1 - 0
app/entity/project_task_info.go

@@ -42,6 +42,7 @@ type ProjectTaskInfo struct {
 	WithdrawStatus         int       `gorm:"column:withdraw_status;default:1"`            // 提现状态,1-4分别代表不可提现、可提现、提现中、已提现
 	SettleStatus           int       `gorm:"column:settle_status;default:1"`              // 结算状态,1、2分别表示待结算、已结算
 	DraftFee               float64   `gorm:"column:draft_fee;NOT NULL"`                   // 达人稿费,达人所见的稿费金额
+	SignedTime             time.Time `gorm:"column:signed_time"`                          // 签收时间
 	TerminateTime          time.Time `gorm:"column:terminate_time"`
 	TerminateReason        string    `gorm:"column:terminate_reason"`
 	CancelTime             time.Time `gorm:"column:cancel_time"`

+ 14 - 0
app/entity/region_info.go

@@ -0,0 +1,14 @@
+// Code generated by sql2gorm. DO NOT EDIT.
+package entity
+
+type RegionInfo struct {
+	RegionID    int64  `gorm:"column:region_id;primary_key;AUTO_INCREMENT"`
+	SelfCode    int64  `gorm:"column:self_code;NOT NULL"`
+	RegionLevel int64  `gorm:"column:region_level;NOT NULL"`
+	ParentCode  int64  `gorm:"column:parent_code"`
+	RegionName  string `gorm:"column:region_name;NOT NULL"`
+}
+
+func (m *RegionInfo) TableName() string {
+	return "info_region"
+}

+ 3 - 3
app/entity/store_category.go

@@ -2,12 +2,12 @@
 package entity
 
 // 门店类目表
-type YounggeeStoreCategory struct {
-	ID       int    `gorm:"column:id;primary_key;AUTO_INCREMENT"` // id
+type StoreCategory struct {
+	ID       int64  `gorm:"column:id;primary_key;AUTO_INCREMENT"` // id
 	Category string `gorm:"column:category;NOT NULL"`             // 一级类目
 	Detail   string `gorm:"column:detail;NOT NULL"`               // 二级类目
 }
 
-func (m *YounggeeStoreCategory) TableName() string {
+func (m *StoreCategory) TableName() string {
 	return "younggee_store_category"
 }

+ 11 - 11
app/entity/talent_info.go

@@ -6,23 +6,23 @@ import (
 )
 
 type YoungeeTalentInfo struct {
-	ID                string    `gorm:"column:id;primary_key"`               // 达人id
-	TalentWxOpenid    string    `gorm:"column:talent_wx_openid;NOT NULL"`    // 达人的微信openid
+	ID                string    `gorm:"column:id;primary_key"`            // 达人id
+	TalentWxOpenid    string    `gorm:"column:talent_wx_openid;NOT NULL"` // 达人的微信openid
+	Avatar            string    `gorm:"column:avatar;NOT NULL"`
 	TalentWxNickname  string    `gorm:"column:talent_wx_nickname"`           // 达人的微信昵称
 	TalentWxNumber    string    `gorm:"column:talent_wx_number"`             // 达人微信号
-	Income            int64     `gorm:"column:income;default:0"`             // 收益总数
-	Withdrawing       int64     `gorm:"column:withdrawing;default:0"`        // 提现中金额
-	Canwithdraw       int64     `gorm:"column:canwithdraw;default:0"`        // 可提现金额
-	Withdrawed        int64     `gorm:"column:withdrawed;default:0"`         // 已提现金额
-	TalentGender      int64     `gorm:"column:talent_gender"`                // 性别,0未知 1男 2女
+	Income            float64   `gorm:"column:income;default:0"`             // 收益总数
+	Withdrawing       float64   `gorm:"column:withdrawing;default:0"`        // 提现中金额
+	Canwithdraw       float64   `gorm:"column:canwithdraw;default:0"`        // 可提现金额
+	Withdrawed        float64   `gorm:"column:withdrawed;default:0"`         // 已提现金额
 	TalentPhoneNumber string    `gorm:"column:talent_phone_number"`          // 电话号码
 	TalentAgeBracket  int64     `gorm:"column:talent_age_bracket"`           // 年龄段,取tallent_age_bracket表id
 	TalentNationality int64     `gorm:"column:talent_nationality"`           // 国籍,取tallent_nationality表id
 	VisitStoreRegion  int64     `gorm:"column:visit_store_region"`           // 探店区域,取region_info表中的self_code
-	IsBindInfo        uint      `gorm:"column:is_bind_info;default:0"`       // 是否填写个人资料
-	IsBindLocation    uint      `gorm:"column:is_bind_location;default:0"`   // 是否绑定收货地址
-	IsBindBank        uint      `gorm:"column:is_bind_bank;default:0"`       // 是否绑定银行账户信息
-	InBlacklist       uint      `gorm:"column:in_blacklist;default:0"`       // 是否加入黑名单 0否 1是
+	IsBindInfo        int64     `gorm:"column:is_bind_info;default:0"`       // 是否填写个人资料
+	IsBindLocation    int64     `gorm:"column:is_bind_location;default:0"`   // 是否绑定收货地址
+	IsBindBank        int64     `gorm:"column:is_bind_bank;default:0"`       // 是否绑定银行账户信息
+	InBlacklist       int64     `gorm:"column:in_blacklist;default:0"`       // 是否加入黑名单 0否 1是
 	TaskAll           int64     `gorm:"column:task_all;default:0"`           // 任务总数
 	TaskApply         int64     `gorm:"column:task_apply;default:0"`         // 报名任务数量
 	TaskExecute       int64     `gorm:"column:task_execute;default:0"`       // 执行中任务数量

+ 29 - 0
app/entity/task_logistics.go

@@ -0,0 +1,29 @@
+// Code generated by sql2gorm. DO NOT EDIT.
+package entity
+
+import (
+	"time"
+)
+
+// 物流表
+type TaskLogistics struct {
+	LogisticsID           int64     `gorm:"column:logistics_id;primary_key;AUTO_INCREMENT"` // 货物-id
+	CompanyName           string    `gorm:"column:company_name"`                            // 实物商品-物流公司名称
+	LogisticsNumber       string    `gorm:"column:logistics_number"`                        // 实物商品-物流单号
+	ExplorestoreStarttime time.Time `gorm:"column:explorestore_starttime"`                  // 线下探店-探店开始时间
+	ExplorestoreEndtime   time.Time `gorm:"column:explorestore_endtime"`                    // 线下探店-探店结束时间
+	ExplorestorePeriod    string    `gorm:"column:explorestore_period"`                     // 线下探店-探店持续时间
+	CouponCodeInformation string    `gorm:"column:coupon_code_information"`                 // 虚拟产品-券码信息
+	TaskID                string    `gorm:"column:task_id;NOT NULL"`                        // 任务id
+	DeliveryTime          time.Time `gorm:"column:delivery_time"`                           // 发货时间
+	ThingsType            int64     `gorm:"column:things_type;NOT NULL"`                    // 任务类型:1 实物,2:线下探店,3:虚拟产品
+	SignedTime            time.Time `gorm:"column:signed_time"`                             // 实物商品-签收时间
+	AutoSignAt            time.Time `gorm:"column:auto_sign_at"`                            // 自动签收时间
+	AutoScriptBreakAt     time.Time `gorm:"column:auto_script_break_at"`                    // 脚本违约自动处理时间
+	AutoSketchBreakAt     time.Time `gorm:"column:auto_sketch_break_at"`                    // 初稿违约自动处理时间
+	Status                int64     `gorm:"column:status;default:0"`                        // 签收状态,0为未签收,1为已签收
+}
+
+func (m *TaskLogistics) TableName() string {
+	return "youngee_task_logistics"
+}

+ 18 - 0
app/service/store_service.go

@@ -186,3 +186,21 @@ func (p StoreService) DeleteStore(param *vo.StoreUpdateParam) (int64, error) {
 	}
 	return param.StoreId, nil
 }
+
+// 门店类目
+func (p StoreService) GetStoreCategory() ([]vo.ReStoreCategory, error) {
+	var reStoreCategories []vo.ReStoreCategory
+	storeCategory, err := dao.StoreDao{}.GetStoreCategory()
+	if err != nil {
+		return nil, err
+	}
+	for _, category := range storeCategory {
+		reStoreCategory := vo.ReStoreCategory{
+			ID:       category.ID,
+			Category: category.Category,
+			Detail:   category.Detail,
+		}
+		reStoreCategories = append(reStoreCategories, reStoreCategory)
+	}
+	return reStoreCategories, nil
+}

+ 85 - 0
app/service/task_info_service.go

@@ -0,0 +1,85 @@
+package service
+
+import (
+	"youngee_b_api/app/dao"
+	"youngee_b_api/app/entity"
+	"youngee_b_api/app/vo"
+)
+
+type TaskInfoService struct{}
+
+func (t TaskInfoService) LogisticsTalentList(param *vo.LogisticsTalentParam) (*vo.ResultVO, error) {
+	if param.Page <= 0 {
+		param.Page = 1
+	}
+	if param.PageSize <= 0 {
+		param.PageSize = 10
+	}
+	var reLogisticsTalents []*vo.ReLogisticsTalent
+	var total int64
+	result := vo.ResultVO{
+		Page:     param.Page,
+		PageSize: param.PageSize,
+		Total:    total,
+		Data:     reLogisticsTalents,
+	}
+	var projectTaskInfos []*entity.ProjectTaskInfo
+	var err error
+	projectId := param.ProjectId
+	if param.Status == 1 { // 待发货
+		projectTaskInfos, total, err = dao.ProjectTaskInfoDao{}.GetListByTaskStage(projectId, 4, param.Page, param.PageSize)
+	} else if param.Status == 2 { // 待签收
+		projectTaskInfos, total, err = dao.ProjectTaskInfoDao{}.GetListByTaskStage(projectId, 5, param.Page, param.PageSize)
+	} else if param.Status == 3 { // 已签收
+		projectTaskInfos, total, err = dao.ProjectTaskInfoDao{}.GetListByTaskStage(projectId, 6, param.Page, param.PageSize)
+	}
+	if err != nil {
+		return nil, err
+	}
+	for _, projectTaskInfo := range projectTaskInfos {
+		// 获取达人信息
+		talentInfo, err := dao.TalentInfoDao{}.SelectTalentInfo(projectTaskInfo.TalentID)
+		if err != nil {
+			return nil, err
+		}
+		regionName, err := dao.RegionInfoDao{}.SelectRegion(talentInfo.VisitStoreRegion)
+		if err != nil {
+			regionName = ""
+		}
+		taskLogistics, err := dao.TaskLogisticsDao{}.SelectTaskLogistics(projectTaskInfo.TaskID)
+		if err != nil {
+			return nil, err
+		}
+		talentPreview := &vo.TalentPreview{
+			TalentId:    projectTaskInfo.TalentID,
+			TalentPhoto: talentInfo.Avatar,
+			TalentName:  talentInfo.TalentWxNickname,
+			Account:     "",
+			Location:    regionName,
+		}
+		reLogisticsTalent := &vo.ReLogisticsTalent{
+			TalentPostAddrSnap: projectTaskInfo.TalentPostAddrSnap,
+			ReTalentPreview:    talentPreview,
+			LogisticsId:        taskLogistics.LogisticsID,
+			CompanyName:        taskLogistics.CompanyName,
+			LogisticsNumber:    taskLogistics.LogisticsNumber,
+			Operator:           "",
+			//DeliveryTime:       taskLogistics.DeliveryTime.Format("2006-01-02 15:04:05"),
+			//SignedTime:         taskLogistics.SignedTime.Format("2006-01-02 15:04:05"),
+		}
+		if param.Status == 2 {
+			reLogisticsTalent.DeliveryTime = projectTaskInfo.DeliveryDate.Format("2006-01-02 15:04:05")
+		}
+		if param.Status == 3 {
+			reLogisticsTalent.SignedTime = projectTaskInfo.SignedTime.Format("2006-01-02 15:04:05")
+		}
+		reLogisticsTalents = append(reLogisticsTalents, reLogisticsTalent)
+	}
+	result = vo.ResultVO{
+		Page:     param.Page,
+		PageSize: param.PageSize,
+		Total:    total,
+		Data:     reLogisticsTalents,
+	}
+	return &result, nil
+}

+ 9 - 0
app/vo/logistics_talent_param.go

@@ -0,0 +1,9 @@
+package vo
+
+type LogisticsTalentParam struct {
+	ProjectId string `json:"project_id"`
+	Status    int64  `json:"status"` // 1待发货 2待签收 3已签收
+	//Nickname  string `json:"nickname"` // 达人昵称
+	Page     int `json:"page"`
+	PageSize int `json:"page_size"`
+}

+ 2 - 2
app/vo/project_search_param.go

@@ -11,7 +11,7 @@ type ProjectSearchParam struct {
 	ProjectForm     int64  `json:"project_form"`   // 任务形式,1-5代表商品寄拍、素材分发、虚拟产品测评、线下探店打卡、素材微原创
 	ContentType     int64  `json:"content_type"`   // 内容形式, 1图文 2视频
 
-	ProjectId string `json:"project_id"` // 任务ID
-	//ProjectName string `json:"project_name"` // 任务标题
+	ProjectId   string `json:"project_id"`   // 任务ID
+	ProjectName string `json:"project_name"` // 任务标题
 	//CreatorName string `json:"creator_name"` // 创建者
 }

+ 20 - 0
app/vo/re_logistics_talent.go

@@ -0,0 +1,20 @@
+package vo
+
+type ReLogisticsTalent struct {
+	LogisticsId        int64          `json:"logisticsId"`        // 物流id
+	CompanyName        string         `json:"companyName"`        // 快递公司
+	LogisticsNumber    string         `json:"logisticsNumber"`    // 快递单号
+	DeliveryTime       string         `json:"deliveryTime"`       // 发货时间
+	SignedTime         string         `json:"signedTime"`         // 签收时间
+	Operator           string         `json:"operator"`           // 操作人
+	TalentPostAddrSnap string         `json:"talentPostAddrSnap"` // 收获地址快照
+	ReTalentPreview    *TalentPreview `json:"reTalentPreview"`    // 达人信息
+}
+
+type TalentPreview struct {
+	TalentId    string `json:"talentId"`
+	TalentPhoto string `json:"talentPhoto"`
+	TalentName  string `json:"talentName"`
+	Account     string `json:"account"`
+	Location    string `json:"location"`
+}

+ 7 - 0
app/vo/re_store_category.go

@@ -0,0 +1,7 @@
+package vo
+
+type ReStoreCategory struct {
+	ID       int64  `json:"id"`
+	Category string `json:"category"`
+	Detail   string `json:"detail"`
+}

+ 2 - 2
app/vo/selection_search_param.go

@@ -10,7 +10,7 @@ type SelectionSearchParam struct {
 	FreeFlag          int64  `json:"free_flag"`          // 领样策略  0全部 1有 2无
 	RewardFlag        int64  `json:"reward_flag"`        // 悬赏策略 0全部 1有 2无
 
-	SelectionId string `json:"selection_id"` // 任务ID
-	//SelectionName string `json:"selection_name"` // 任务标题
+	SelectionId   string `json:"selection_id"`   // 任务ID
+	SelectionName string `json:"selection_name"` // 任务标题
 	//CreatorName   string `json:"creator_name"`   // 创建者
 }

+ 6 - 2
route/init.go

@@ -196,8 +196,6 @@ func InitRoute(r *gin.Engine) {
 
 		task.POST("/product/findAll", controller.TaskController{}.GetAllProduct) // 关联商品-已有商品展示
 		task.POST("/product/create", controller.TaskController{}.CreateProduct)  // 关联商品-新建商品
-		// 商品编辑
-		// 商品删除
 
 		task.POST("/selection/create", controller.TaskController{}.CreateSelection)      // 创建带货任务
 		task.POST("/selection/update", controller.TaskController{}.UpdateSelection)      // 更新带货任务(样品奖励、补充信息)
@@ -215,6 +213,7 @@ func InitRoute(r *gin.Engine) {
 		task.POST("/project/task/list", controller.TaskController{}.ProjectTaskList)         // 种草任务列表
 		task.POST("/project/del", controller.TaskController{}.ProjectDel)                    // 删除种草任务
 
+		task.POST("/store/category", controller.TaskController{}.GetStoreCategory)     // 门店类目
 		task.POST("/store/findAll", controller.TaskController{}.GetAllStore)           // 关联门店-已有门店展示
 		task.POST("/store/create", controller.TaskController{}.CreateStore)            // 关联门店-新建门店
 		task.POST("/teamBuying/findAll", controller.TaskController{}.GetAllTeamBuying) // 门店团购列表
@@ -226,9 +225,11 @@ func InitRoute(r *gin.Engine) {
 		task.POST("/localLife/detail", controller.TaskController{}.GetLocalLifeDetail)           // 本地生活任务预览
 		task.POST("/localLife/toReview", controller.TaskController{}.LocalLifeToReview)          // 本地生活提交审核
 
+		// 草稿箱
 		task.POST("/draft/selection/list", controller.TaskController{}.GetSelectionDraftList) // 草稿箱——电商带货列表
 		task.POST("/draft/project/list", controller.TaskController{}.GetProjectDraftList)     // 草稿箱——品牌种草列表
 
+		// 违约管理
 		task.POST("/default/public/list", controller.TaskController{}.GetPublicDefaultList)              // 违约管理——公开任务列表
 		task.POST("/default/public/talent/list", controller.TaskController{}.GetPublicDefaultTalentList) // 违约管理——公开任务-违约达人列表
 		task.POST("/default/target/list", controller.TaskController{}.GetTargetDefaultList)              // 违约管理——定向任务列表
@@ -236,6 +237,9 @@ func InitRoute(r *gin.Engine) {
 		task.POST("/default/talent/cancel", controller.TaskController{}.CancelTalent)                    // 违约管理——达人解约
 		task.POST("/default/talent/cancel/list", controller.TaskController{}.CancelTalentList)           // 违约管理——达人批量解约
 
+		// 寄样管理
+		task.POST("/logistics/talent/list", controller.TaskController{}.LogisticsTalentList) // 达人物流列表
+
 		// 服务商合作
 		task.POST("/supplier/list", controller.TaskController{}.GetSupplierInTargetTaskList) // 服务商合作-服务商列表
 		task.POST("/supplier/invite", controller.TaskController{}.InviteSupplier)            // 服务商合作-邀约合作