Xingyu Xian před 5 měsíci
rodič
revize
b24496a863

+ 0 - 1
db/project.go

@@ -168,7 +168,6 @@ func GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum
 
 	var taskDatas []*http_model.ProjectTaskInfo
 	var newTaskDatas []*http_model.ProjectTaskInfo
-
 	taskDatas = pack.TaskAccountToTaskInfo(taskInfos)
 
 	for _, v := range taskDatas {

+ 3 - 3
db/project_brief.go

@@ -7,11 +7,11 @@ import (
 )
 
 // FindProjectBriefByProjectId 根据projectId查找Brief
-func FindProjectBriefByProjectId(ctx context.Context, projectId string) ([]*gorm_model.ProjectBrief, error) {
+func FindProjectBriefByProjectId(ctx context.Context, projectId string) ([]*gorm_model.YounggeeProjectBrief, error) {
 	db := GetReadDB(ctx)
-	var sProjectInfo []*gorm_model.ProjectBrief
+	var sProjectInfo []*gorm_model.YounggeeProjectBrief
 	// 1. 根据服务商种草任务id过滤
-	err := db.Model(gorm_model.ProjectBrief{}).Where("project_id = ?", projectId).Find(&sProjectInfo).Error
+	err := db.Model(gorm_model.YounggeeProjectBrief{}).Where("project_id = ?", projectId).Find(&sProjectInfo).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[GetSProjectDetail] error query mysql, err:%+v", err)
 		return nil, err

+ 0 - 12
handler/product_find.go

@@ -11,18 +11,6 @@ import (
 	log "github.com/sirupsen/logrus"
 )
 
-// WrapSendCodeHandler
-// @BasePath /youngee/m/
-// FindProduct godoc
-// @Summary findProduct 根据产品名称查询产品信息
-// @Schemes
-// @Description 根据产品名称查询产品信息
-// @Accept json
-// @Produce json
-// @Param Authorization header string true "登录TOKEN信息"
-// @Param req body http_model.FindProductRequest true "发送产品id请求参数结构体"
-// @Success 200 {object} http_model.CommonResponse{data=http_model.FindProductData} "查询对应产品返回相应结构体"
-// @Router /product/find [post]
 func WrapFindProductHandler(ctx *gin.Context) {
 	handler := newFindProductHandler(ctx)
 	baseRun(handler)

+ 0 - 11
handler/project_taskList.go

@@ -14,17 +14,6 @@ import (
 	"github.com/sirupsen/logrus"
 )
 
-// WrapProjectTaskListHandler
-// @BasePath /youngee/m/
-// SendCode godoc
-// @Summary ProjectTaskList 项目任务列表
-// @Schemes
-// @Description 展示某个项目的任务列表
-// @Accept json
-// @Produce json
-// @Param req body http_model.ProjectTaskListRequest true "查询项目的任务列表的请求结构体"
-// @Success 200 {object} http_model.CommonResponse{data=http_model.ProjectTaskListData} "查询项目的任务列表相应结构体"
-// @Router /product/taskList [post]
 func WrapProjectTaskListHandler(ctx *gin.Context) {
 	handler := newProjectTaskListHandler(ctx)
 	baseRun(handler)

+ 2 - 2
model/gorm_model/project_brief.go

@@ -4,7 +4,7 @@ import (
 	"time"
 )
 
-type ProjectBrief struct {
+type YounggeeProjectBrief struct {
 	ProjectBriefID int       `gorm:"column:project_brief_id;primary_key;AUTO_INCREMENT"` // 项目id
 	FileUrl        string    `gorm:"column:file_url"`                                    // 文件url
 	FileUid        string    `gorm:"column:file_uid"`                                    // 文件uid
@@ -14,6 +14,6 @@ type ProjectBrief struct {
 	Type           int       `gorm:"column:type;NOT NULL"`                               // 手卡类型(1图片 2文档)
 }
 
-func (m *ProjectBrief) TableName() string {
+func (m *YounggeeProjectBrief) TableName() string {
 	return "project_brief"
 }

+ 1 - 0
model/gorm_model/project_task.go

@@ -39,6 +39,7 @@ type YoungeeTaskInfo struct {
 	LinkStatus             uint      `gorm:"column:link_status;default:1"`                // 链接上传状态 1-5分别代表待添加、已添加、待修改、已修改、已通过
 	DataStatus             uint      `gorm:"column:data_status;default:1"`                // 数据上传状态 1-5分别代表待添加、已添加、待修改、已修改、已通过
 	CurDefaultType         int       `gorm:"column:cur_default_type"`                     // 任务当前处于的违约类型 0-8分别表示未违约、脚本超时违约、脚本未上传违约、初稿超时违约、初稿未上传违约、链接超时违约、链接未上传违约、数据超时违约、数据未上传违约
+	CurBreakAt             time.Time `gorm:"column:cur_break_at"`                         // 当前阶段结束时间
 	WithdrawStatus         int       `gorm:"column:withdraw_status;default:1"`            // 提现状态,1-4分别代表不可提现、可提现、提现中、已提现
 	SettleStatus           int       `gorm:"column:settle_status;default:1"`              // 结算状态,1、2分别表示待结算、已结算
 	SupplierId             int       `gorm:"column:supplier_id;default:0"`                // 服务商ID

+ 1 - 0
model/gorm_model/s_project.go

@@ -15,6 +15,7 @@ type SProjectInfo struct {
 	ShareCode           string     `gorm:"column:share_code"`                              // 分享码URL
 	ApplyNum            int        `gorm:"column:apply_num;default:0;NOT NULL"`            // 报名人数
 	RecruitNum          int        `gorm:"column:recruit_num;default:0;NOT NULL"`          // 已招募人数
+	QuitNum             int        `gorm:"column:quit_num;default:0;NOT NULL"`             // 解约人数
 	SettleNum           int        `gorm:"column:settle_num;default:0;NOT NULL"`           // 已结算人数
 	EnterpriseId        string     `gorm:"column:enterprise_id"`                           // 所属企业ID
 	SupplierId          int        `gorm:"column:supplier_id"`                             // 所属服务商ID

+ 15 - 10
model/http_model/product_find.go

@@ -11,16 +11,21 @@ type ProductPhoto struct {
 }
 
 type FindProductData struct {
-	ProductID     int64          `json:"product_id"`
-	ProductName   string         `json:"product_name"`  // 商品名称
-	ProductType   int64          `json:"product_type"`  // 商品类型
-	ShopAddress   string         `json:"shop_address"`  // 店铺地址,商品类型为线下品牌时需填写
-	ProductPrice  float64        `json:"product_price"` // 商品价值
-	ProductDetail string         `json:"product_detail"`
-	ProductPhotos []ProductPhoto `json:"product_photos"` // 商品图片列表
-	ProductUrl    string         `json:"product_url"`    // 商品链接,可为电商网址、公司官网、大众点评的店铺地址等可以说明商品信息或者品牌信息的线上地址;
-	EnterpriseID  string         `json:"enterprise_id"`  // 所属企业id
-	BrandName     string         `json:"brand_name"`     // 品牌名称
+	ProductID           int64          `json:"product_id"`           // 商品ID
+	ProductName         string         `json:"product_name"`         // 商品名称
+	ProductType         int64          `json:"product_type"`         // 商品类型
+	ShopAddress         string         `json:"shop_address"`         // 店铺地址,商品类型为线下品牌时需填写
+	ProductPrice        float64        `json:"product_price"`        // 商品价值
+	ProductDetail       string         `json:"product_detail"`       // 商品详情
+	ProductPhotos       []ProductPhoto `json:"product_photos"`       // 商品图片列表
+	ProductUrl          string         `json:"product_url"`          // 商品链接,可为电商网址、公司官网、大众点评的店铺地址等可以说明商品信息或者品牌信息的线上地址;
+	EnterpriseID        string         `json:"enterprise_id"`        // 所属企业id
+	BrandName           string         `json:"brand_name"`           // 品牌名称
+	PublicCommission    float64        `json:"public_commission"`    // 公开佣金
+	ExclusiveCommission float64        `json:"exclusive_commission"` // 专属佣金
+	CommissionPrice     float64        `json:"commission_price"`     // 佣金金额
+	KuaishouProductId   int64          `json:"kuaishou_product_id"`  // 快手商品ID
+	SalesCount          string         `json:"sales_count"`          // 商品30天销量
 }
 
 func NewFindProductRequest() *FindProductRequest {

+ 13 - 2
model/http_model/project_taskList.go

@@ -29,6 +29,10 @@ type ProjectTaskPreview struct {
 	StrategyId       string  `json:"strategy_id"`       // 报名选择的招募策略id
 	TaskStatus       string  `json:"task_status"`       // 任务状态
 	CreateDate       string  `json:"create_date"`       // 创建时间
+	SelectDate       string  `json:"select_date"`       // 商家同意时间
+	DeliveryDate     string  `json:"delivery_date"`     // 发货时间
+	SignedTime       string  `json:"signed_time"`       // 收货时间
+	CurBreakAt       string  `json:"cur_break_at"`      // 当前阶段结束时间
 	FansNum          int     `json:"fans_num"`          // 粉丝数
 	VoteAvg          int     `json:"vote_avg"`          // 平均点赞数
 	CommitAvg        int     `json:"commit_avg"`        // 平均评论数
@@ -36,6 +40,7 @@ type ProjectTaskPreview struct {
 	BOperatorType    int     `json:"b_operator_type"`   // 商家操作人类型,1商家用户,2商家子账号,3管理后台
 	SOperator        int     `json:"s_operator"`        // 服务商确定达人操作人ID
 	SOperatorType    int     `json:"s_operator_type"`   // 服务商操作人类型,1服务商用户,2服务商子账号,3管理后台
+	TaskStage        int     `json:"task_stage"`        // 任务状态
 }
 
 type ProjectTaskInfo struct {
@@ -46,6 +51,7 @@ type ProjectTaskInfo struct {
 	AvatarUrl          string    `json:"avatar_url"`            // 达人头像url
 	Location           string    `json:"location"`              // 达人所在地区
 	Gender             string    `json:"gender"`                // 达人性别
+	TaskStage          int       `json:"task_stage"`            // 任务状态
 	ServiceCharge      float64   `json:"service_charge"`        // 服务费
 	DraftFee           float64   `json:"draft_fee"`             // 达人稿费
 	SupportFee         float64   `json:"support_fee"`           // 提报价格
@@ -65,8 +71,13 @@ type ProjectTaskInfo struct {
 }
 
 type ProjectTaskListData struct {
-	ProjectTaskPreview []*ProjectTaskPreview `json:"project_task_pre_view"`
-	Total              string                `json:"total"`
+	ProjectTaskPreview  []*ProjectTaskPreview `json:"project_task_pre_view"` // Task
+	RecruitNum          int                   `json:"recruit_num"`           // 执行人数
+	QuitNum             int                   `json:"quit_num"`              // 解约人数
+	SettleNum           int                   `json:"settle_num"`            // 结算人数
+	ServiceChargeActual float64               `json:"service_charge_actual"` // 服务费总额
+	ServiceChargeSettle float64               `json:"service_charge_settle"` // 服务费已结算
+	Total               string                `json:"total"`
 }
 
 func NewProjectTaskListRequest() *ProjectTaskListRequest {

+ 45 - 45
model/http_model/show_s_project.go

@@ -3,51 +3,51 @@ package http_model
 import "youngee_b_api/model/gorm_model"
 
 type ShowSProjectData struct {
-	SProjectId          int                           `json:"s_project_id"`           // 服务商种草任务ID
-	ProjectName         string                        `json:"project_name"`           // 项目名称
-	ProjectStatus       int64                         `json:"project_status"`         // 项目状态,1-7分别代表创建中、待审核、招募中、待支付、失效、执行中、已结案
-	ProjectType         int                           `json:"project_type"`           // 项目类型,1代表全流程项目,2代表专项项目
-	ProjectPlatform     int64                         `json:"project_platform"`       // 项目平台,1-7分别代表红book、抖音、微博、快手、b站、大众点评、知乎
-	ProjectForm         int64                         `json:"project_form"`           // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
-	TalentType          string                        `json:"talent_type"`            // 达人类型
-	RecruitDdl          string                        `json:"recruit_ddl"`            // 招募截止时间
-	ContentType         int64                         `json:"content_type"`           // 内容形式,1代表图文,2代表视频
-	ProjectDetail       string                        `json:"project_detail"`         // 项目详情
-	SRecruitStrategys   []ShowSRecruitStrategy        `json:"recruit_strategys"`      // 招募策略
-	ProductID           int64                         `json:"product_id"`             // 关联商品id
-	ProductInfo         string                        `json:"product_info"`           // 商品信息
-	ProductPhotoInfo    string                        `json:"product_photo_info"`     // 商品图片
-	EstimatedCost       float64                       `json:"estimated_cost"`         // 预估成本
-	EnterpriseID        string                        `json:"enterprise_id"`          // 企业id
-	Balance             string                        `json:"balance"`                // 企业余额
-	AvailableBalance    string                        `json:"available_balance"`      // 可用余额
-	ProjectID           string                        `json:"project_id"`             // 项目id
-	FailReason          string                        `json:"fail_reason"`            // 失效原因
-	Phone               string                        `json:"phone"`                  // 联系方式
-	CreateAt            string                        `json:"create_at"`              // 创建时间
-	UpdateAt            string                        `json:"update_at"`              // 更新时间
-	SubmitAt            string                        `json:"submit_at"`              // 更新时间
-	PassAt              string                        `json:"pass_at"`                // 审核通过时间
-	FinishAt            string                        `json:"finish_at"`              // 结案时间
-	PayAt               string                        `json:"pay_at"`                 // 支付时间
-	AutoFailAt          string                        `json:"auto_fail_at"`           // 自动失效时间
-	ApplyNum            int                           `json:"apply_num"`              // 报名人数
-	RecruitNum          int                           `json:"recruit_num"`            // 已招募人数
-	CreatorCompany      string                        `json:"creator_company"`        // 创建人公司
-	SubAccountId        int                           `json:"sub_account_id"`         // 商家子账号
-	CreatorType         int                           `json:"creator_type"`           // 种草任务创建人类型,1商家主账号,2商家子账号
-	CreatorName         string                        `json:"creator_name"`           // 创建人名称
-	ServiceChargeRate   float64                       `json:"service_charge_rate"`    // 公开服务费率
-	ProductName         string                        `json:"product_name"`           // 商品名称
-	ProductMainPhotoUrl string                        `json:"product_main_photo_url"` // 商品主图Url
-	Symbol              int                           `json:"symbol"`                 // 标志位
-	ProductMainPhotoUid string                        `json:"product_main_photo_uid"` // 商品主图Uid
-	ProductType         int64                         `json:"product_type"`           // 商品类型,0一般,1快手
-	ProductCategory     string                        `json:"product_category"`       // 商品类目
-	ProductCreateAt     string                        `json:"product_create_at"`      // 商品入库时间
-	ProductPrice        float64                       `json:"product_price"`          // 商品售价
-	ProjectBriefInfo    []*gorm_model.ProjectBrief    `json:"project_brief_info"`     // Brief
-	ProjectMaterial     []*gorm_model.ProjectMaterial `json:"project_material"`       // 素材
+	SProjectId          int                                `json:"s_project_id"`           // 服务商种草任务ID
+	ProjectName         string                             `json:"project_name"`           // 项目名称
+	ProjectStatus       int64                              `json:"project_status"`         // 项目状态,1-7分别代表创建中、待审核、招募中、待支付、失效、执行中、已结案
+	ProjectType         int                                `json:"project_type"`           // 项目类型,1代表全流程项目,2代表专项项目
+	ProjectPlatform     int64                              `json:"project_platform"`       // 项目平台,1-7分别代表红book、抖音、微博、快手、b站、大众点评、知乎
+	ProjectForm         int64                              `json:"project_form"`           // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
+	TalentType          string                             `json:"talent_type"`            // 达人类型
+	RecruitDdl          string                             `json:"recruit_ddl"`            // 招募截止时间
+	ContentType         int64                              `json:"content_type"`           // 内容形式,1代表图文,2代表视频
+	ProjectDetail       string                             `json:"project_detail"`         // 项目详情
+	SRecruitStrategys   []ShowSRecruitStrategy             `json:"recruit_strategys"`      // 招募策略
+	ProductID           int64                              `json:"product_id"`             // 关联商品id
+	ProductInfo         string                             `json:"product_info"`           // 商品信息
+	ProductPhotoInfo    string                             `json:"product_photo_info"`     // 商品图片
+	EstimatedCost       float64                            `json:"estimated_cost"`         // 预估成本
+	EnterpriseID        string                             `json:"enterprise_id"`          // 企业id
+	Balance             string                             `json:"balance"`                // 企业余额
+	AvailableBalance    string                             `json:"available_balance"`      // 可用余额
+	ProjectID           string                             `json:"project_id"`             // 项目id
+	FailReason          string                             `json:"fail_reason"`            // 失效原因
+	Phone               string                             `json:"phone"`                  // 联系方式
+	CreateAt            string                             `json:"create_at"`              // 创建时间
+	UpdateAt            string                             `json:"update_at"`              // 更新时间
+	SubmitAt            string                             `json:"submit_at"`              // 更新时间
+	PassAt              string                             `json:"pass_at"`                // 审核通过时间
+	FinishAt            string                             `json:"finish_at"`              // 结案时间
+	PayAt               string                             `json:"pay_at"`                 // 支付时间
+	AutoFailAt          string                             `json:"auto_fail_at"`           // 自动失效时间
+	ApplyNum            int                                `json:"apply_num"`              // 报名人数
+	RecruitNum          int                                `json:"recruit_num"`            // 已招募人数
+	CreatorCompany      string                             `json:"creator_company"`        // 创建人公司
+	SubAccountId        int                                `json:"sub_account_id"`         // 商家子账号
+	CreatorType         int                                `json:"creator_type"`           // 种草任务创建人类型,1商家主账号,2商家子账号
+	CreatorName         string                             `json:"creator_name"`           // 创建人名称
+	ServiceChargeRate   float64                            `json:"service_charge_rate"`    // 公开服务费率
+	ProductName         string                             `json:"product_name"`           // 商品名称
+	ProductMainPhotoUrl string                             `json:"product_main_photo_url"` // 商品主图Url
+	Symbol              int                                `json:"symbol"`                 // 标志位
+	ProductMainPhotoUid string                             `json:"product_main_photo_uid"` // 商品主图Uid
+	ProductType         int64                              `json:"product_type"`           // 商品类型,0一般,1快手
+	ProductCategory     string                             `json:"product_category"`       // 商品类目
+	ProductCreateAt     string                             `json:"product_create_at"`      // 商品入库时间
+	ProductPrice        float64                            `json:"product_price"`          // 商品售价
+	ProjectBriefInfo    []*gorm_model.YounggeeProjectBrief `json:"project_brief_info"`     // Brief
+	ProjectMaterial     []*gorm_model.ProjectMaterial      `json:"project_material"`       // 素材
 }
 
 type ShowSRecruitStrategy struct {

+ 1 - 1
model/http_model/special_add_strategy.go

@@ -5,7 +5,7 @@ import "youngee_b_api/model/gorm_model"
 type SpecialAddStrategyRequest struct {
 	SProjectId         int                          `json:"s_project_id"`         // 服务商种草任务ID
 	RecruitStrategys   []gorm_model.RecruitStrategy `json:"recruit_strategys"`    // 招募策略
-	CreateStrategyId   int                          `json:"create_strategy_id"`   // 定向种草任务是否替换招募策略
+	CreateStrategyId   int                          `json:"create_strategy_id"`   // 替换招募策略操作人ID
 	CreateStrategyType int                          `json:"create_strategy_type"` // 服务商修改服务费操作人类型:1服务商主账号,2子账号
 }
 

+ 1 - 0
pack/project_task_list.go

@@ -68,5 +68,6 @@ func GetTaskInfoStruct(taskAccount gorm_model.YoungeeTaskInfo) *http_model.Proje
 		BOperatorType:      taskAccount.BOperatorType,
 		SOperator:          taskAccount.SOperator,
 		SOperatorType:      taskAccount.SOperatorType,
+		TaskStage:          taskAccount.TaskStage,
 	}
 }

+ 1 - 1
route/init.go

@@ -51,6 +51,7 @@ func InitRoute(r *gin.Engine) {
 		m.POST("/sProject/sProjectList", handler.WrapSProjectListHandler)                // 商单管理-服务商商单列表
 		m.POST("/sProject/addToList", handler.WrapAddToListHandler)                      // 公开种草任务服务商加入商单
 		m.POST("/sProject/showSProject", handler.WrapShowSProjectHandler)                // 展示选中的服务商种草任务内容
+		m.POST("/sProject/product/find", handler.WrapFindProductHandler)                 // 查找单个产品
 		m.POST("/sProject/projectStrategy", handler.WrapProjectStrategyHandler)          // 招募策略查询
 		m.POST("/sProject/taskList", handler.WrapProjectTaskListHandler)                 // 任务列表
 		m.POST("/sProject/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler) // 改变子任务的状态 报名通过,拒绝报名
@@ -63,7 +64,6 @@ func InitRoute(r *gin.Engine) {
 		m.POST("/sProject/specialAddStrategy", handler.WrapSpecialAddStrategyHandler)     // 种草任务添加招募策略
 
 		// 下面接口都是商家端遗留
-		m.POST("/product/find", handler.WrapFindProductHandler)                              // 查找单个产品
 		m.POST("/project/create", handler.WrapCreateProjectHandler)                          // 创建项目
 		m.POST("/project/update", handler.WrapUpdateProjectHandler)                          // 更新项目
 		m.POST("/project/delete", handler.WrapDeleteProjectHandler)                          // 删除项目

+ 14 - 9
service/product.go

@@ -129,15 +129,20 @@ func (*product) FindByID(ctx context.Context, productID int64) (*http_model.Find
 		return nil, err
 	}
 	findProductData := http_model.FindProductData{
-		ProductID:     product.ProductID,
-		ProductName:   product.ProductName,
-		ProductType:   product.ProductType,
-		ShopAddress:   product.ShopAddress,
-		ProductPrice:  product.ProductPrice,
-		ProductDetail: product.ProductDetail,
-		ProductUrl:    product.ProductUrl,
-		EnterpriseID:  product.EnterpriseID,
-		BrandName:     product.BrandName,
+		ProductID:           product.ProductID,
+		ProductName:         product.ProductName,
+		ProductType:         product.ProductType,
+		ShopAddress:         product.ShopAddress,
+		ProductPrice:        product.ProductPrice,
+		ProductDetail:       product.ProductDetail,
+		ProductUrl:          product.ProductUrl,
+		EnterpriseID:        product.EnterpriseID,
+		BrandName:           product.BrandName,
+		PublicCommission:    product.PublicCommission,
+		ExclusiveCommission: product.ExclusiveCommission,
+		CommissionPrice:     product.CommissionPrice,
+		KuaishouProductId:   product.KuaishouProductId,
+		SalesCount:          product.SalesCount,
 	}
 	for _, photo := range productPhotos {
 		productPhoto := http_model.ProductPhoto{

+ 15 - 0
service/project.go

@@ -449,6 +449,8 @@ func (*project) GetProjectDraftList(ctx context.Context, enterpriseID string, pa
 }
 
 func (*project) GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TaskConditions) (*http_model.ProjectTaskListData, error) {
+
+	// 1. 根据SProject和condition查询所有Task
 	projectTasks, total, err := db.GetProjectTaskList(ctx, projectID, pageSize, pageNum, conditions)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[project service] call GetProjectTaskList error,err:%+v", err)
@@ -456,6 +458,19 @@ func (*project) GetProjectTaskList(ctx context.Context, projectID string, pageSi
 	}
 	projectTaskListData := new(http_model.ProjectTaskListData)
 	projectTaskListData.ProjectTaskPreview = pack.MGormProjectTaskToHttpProjectTaskPreview(projectTasks)
+
+	// 2. 查找SProject中其他信息
+	sProjectInfo, sProjectErr := db.GetSProjectDetail(ctx, conditions.SProjectId)
+	if sProjectErr != nil {
+		return nil, sProjectErr
+	}
+	if sProjectInfo != nil {
+		projectTaskListData.SettleNum = sProjectInfo.SettleNum
+		projectTaskListData.RecruitNum = sProjectInfo.RecruitNum
+		projectTaskListData.QuitNum = sProjectInfo.QuitNum
+		projectTaskListData.ServiceChargeSettle = sProjectInfo.ServiceChargeSettle
+		projectTaskListData.ServiceChargeActual = sProjectInfo.ServiceChargeActual
+	}
 	projectTaskListData.Total = conv.MustString(total)
 	return projectTaskListData, nil
 }