瀏覽代碼

更新bug

yuliang1112 2 年之前
父節點
當前提交
7f634d9eee

+ 34 - 19
db/data.go

@@ -41,17 +41,8 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 			if tag == "platform_nickname" {
 				platform_nickname = fmt.Sprintf("%v", value.Interface())
 				continue
-			} else if tag == "project_id" {
+			} else if tag == "project_id" || tag == "strategy_id" {
 				db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
-			} else if tag == "strategy_ids" {
-				strategyIds := strings.Split(fmt.Sprintf("%v", value.Interface()), ",")
-				var strategyIdList []int
-				for _, strategyId := range strategyIds {
-					strategyIdList = append(strategyIdList, conv.MustInt(strategyId, 0))
-				}
-				db = db.Where("strategy_id in ?", strategyIdList)
-			} else {
-				db = db.Where(fmt.Sprintf("%s like '%%%v%%'", tag, value.Interface()))
 			}
 		}
 	}
@@ -60,7 +51,7 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 	// 查询总数
 	var totalTask int64
 	if err := db.Count(&totalTask).Error; err != nil {
-		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		logrus.WithContext(ctx).Errorf("[GetTaskDataList] error query mysql total, err:%+v", err)
 		return nil, 0, err
 	}
 	db.Order("task_id").Find(&taskInfos)
@@ -72,15 +63,37 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 		taskIds = append(taskIds, taskInfo.TaskId)
 		taskMap[taskInfo.TaskId] = taskInfo
 	}
+
+	// 查询链接
 	db1 := GetReadDB(ctx)
-	db1 = db1.Debug().Model(gorm_model.YounggeeDataInfo{})
+	// 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
-	db1 = db1.Model(gorm_model.YounggeeDataInfo{}).Where("task_id IN ? AND is_submit=? ", taskIds, 1)
+	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) {
-		db1 = db1.Where("is_review = 0").Find(&DataInfos)
+		db2 = db2.Where("is_review = 0")
 	} else {
-		db1 = db1.Where("is_ok = 1").Find(&DataInfos)
+		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 {
@@ -88,7 +101,7 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 	}
 	// 查询总数
 	var totalData int64
-	if err := db1.Count(&totalData).Error; err != nil {
+	if err := db2.Count(&totalData).Error; err != nil {
 		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
 		return nil, 0, err
 	}
@@ -103,10 +116,9 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 	// 查询该页数据
 	limit := pageSize + misNum
 	offset := pageSize * pageNum // assert pageNum start with 0
-	err := db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
-
+	err = db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
 	if err != nil {
-		logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
+		logrus.WithContext(ctx).Errorf("[GetTaskDataList] error query mysql total, err:%+v", err)
 		return nil, 0, err
 	}
 
@@ -117,6 +129,7 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 		TaskData := new(http_model.TaskData)
 		TaskData.Talent = taskMap[taskId]
 		TaskData.Data = DataMap[taskId]
+		TaskData.Link = LinkMap[taskId]
 		TaskDatas = append(TaskDatas, TaskData)
 	}
 
@@ -127,6 +140,8 @@ func GetTaskDataList(ctx context.Context, projectID string, pageSize, pageNum in
 			newTaskDatas = append(newTaskDatas, v)
 		} else if strings.Contains(v.PlatformNickname, platform_nickname) {
 			newTaskDatas = append(newTaskDatas, v)
+		} else if strings.Contains(conv.MustString(v.TaskID, ""), platform_nickname) {
+			newTaskDatas = append(newTaskDatas, v)
 		} else {
 			totalTask--
 		}

+ 8 - 1
db/link.go

@@ -83,9 +83,16 @@ func GetTaskLinkList(ctx context.Context, projectID string, pageSize, pageNum in
 		logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
 		return nil, 0, err
 	}
+	var misNum int64
+	if totalLink > totalTask {
+		misNum = totalLink - totalTask
+	} else {
+		misNum = totalTask - totalLink
+	}
+	logrus.Println("totalLink,totalTalent,misNum:", totalLink, totalTask, misNum)
 
 	// 查询该页数据
-	limit := pageSize
+	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 {

+ 6 - 1
db/number_info.go

@@ -13,7 +13,6 @@ import (
 
 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
@@ -35,6 +34,12 @@ func GetLogisticsNumberInfo(ctx context.Context, projectId string, strategyIds [
 			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)
 	}

+ 2 - 1
db/operate.go

@@ -778,8 +778,9 @@ func GetAutoCaseCloseTask() error {
 				return err
 			}
 			// 1. 更新项目状态为已结束
+			t := time.Now()
 			err := db9.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectInfo.ProjectID).
-				Updates(map[string]interface{}{"project_status": 10, "payment_amount": realPayment}).Error
+				Updates(map[string]interface{}{"project_status": 10, "payment_amount": realPayment, "finish_at": &t}).Error
 			if err != nil {
 				log.Println("DB GetAutoCaseCloseTask error in data:", err)
 				return err

+ 10 - 4
db/project.go

@@ -59,7 +59,7 @@ func GetFullProjectList(ctx context.Context, pageSize, pageNum int32, condition
 	// 查询该页数据
 	limit := pageSize
 	offset := pageSize * pageNum // assert pageNum start with 0
-	err := db.Order("updated_at").Limit(int(limit)).Offset(int(offset)).Find(&fullProjects).Error
+	err := db.Order("updated_at desc").Limit(int(limit)).Offset(int(offset)).Find(&fullProjects).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[GetFullProjectList] error query mysql find, err:%+v", err)
 		return nil, 0, err
@@ -83,8 +83,12 @@ func GetProjectDetail(ctx context.Context, projectID string) (*gorm_model.Projec
 
 func UpdateProjectStatus(ctx context.Context, projectId string, status int64) error {
 	db := GetReadDB(ctx)
+	t := time.Now()
 	err := db.Model(gorm_model.ProjectInfo{}).
-		Where("project_id = ?", projectId).Update("project_status", status).Error
+		Where("project_id = ?", projectId).Updates(gorm_model.ProjectInfo{
+		ProjectStatus: status,
+		PayAt:         &t,
+	}).Error
 	if err != nil {
 		log.Println("DB UpdateProjectStatus error :", err)
 		return err
@@ -129,7 +133,7 @@ func ApproveProject(ctx context.Context, projectId string, isApprove int64) (err
 	if isApprove == 1 && projectInfo.ProjectStatus == 2 {
 		err := db.Updates(gorm_model.ProjectInfo{
 			ProjectStatus: 4,
-			FinishAt:      &t,
+			PassAt:        &t,
 		}).Error
 		message = "审核通过"
 		if err != nil {
@@ -394,7 +398,9 @@ func SetProjectFinish(ctx context.Context, projectId string) error {
 			return err
 		}
 		// 1. 更新项目状态为已结束
-		err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).Updates(map[string]interface{}{"project_status": 10, "payment_amount": realPayment}).Error
+		t := time.Now()
+		err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).
+			Updates(map[string]interface{}{"project_status": 10, "payment_amount": realPayment, "finish_at": &t}).Error
 		if err != nil {
 			logrus.WithContext(ctx).Errorf("[Project db] Update ProjectInfo error,err:%+v", err)
 			return err

+ 18 - 4
db/recruit_strategy.go

@@ -27,7 +27,8 @@ func DeleteRecruitStrategyByProjectID(ctx context.Context, projectID string) err
 
 func CalculateSelectedNumberByRecruitStrategyID(ctx context.Context, recruitstrategyIDs []int64, AddNumber int64) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id in ?", recruitstrategyIDs).Updates(map[string]interface{}{"selected_number": gorm.Expr("selected_number + ?", AddNumber), "waiting_number": gorm.Expr("waiting_number + ?", AddNumber)}).Error
+	err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id in ?", recruitstrategyIDs).
+		Updates(map[string]interface{}{"selected_number": gorm.Expr("selected_number + ?", AddNumber), "waiting_number": gorm.Expr("waiting_number + ?", AddNumber)}).Error
 	if err != nil {
 		return err
 	}
@@ -36,7 +37,8 @@ func CalculateSelectedNumberByRecruitStrategyID(ctx context.Context, recruitstra
 
 func UpdateSelectedNumber(ctx context.Context, RecruitStrategyID int64, selected_number int64) error {
 	db := GetReadDB(ctx)
-	err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).Update("selected_number", gorm.Expr("selected_number + ?", selected_number)).Error
+	err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).
+		Update("selected_number", gorm.Expr("selected_number + ?", selected_number)).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
 		return err
@@ -47,7 +49,8 @@ func UpdateSelectedNumber(ctx context.Context, RecruitStrategyID int64, selected
 func UpdateLogisticsNumber(ctx context.Context, RecruitStrategyID int64, delivered_value int64, waiting_value int64, signed_value int64) error {
 	db := GetReadDB(ctx)
 	err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).
-		Updates(map[string]interface{}{"delivered_number": gorm.Expr("delivered_number + ?", delivered_value), "waiting_number": gorm.Expr("waiting_number + ?", waiting_value), "signed_number": gorm.Expr("signed_number + ?", signed_value)}).Error
+		Updates(map[string]interface{}{"delivered_number": gorm.Expr("delivered_number + ?", delivered_value),
+			"waiting_number": gorm.Expr("waiting_number + ?", waiting_value), "signed_number": gorm.Expr("signed_number + ?", signed_value)}).Error
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
 		return err
@@ -60,8 +63,19 @@ func GetRecruitStrategyIdByTS(ctx context.Context, projectId string, strategyID
 	RecruitStrategy := &gorm_model.RecruitStrategy{}
 	err := db.Model(gorm_model.RecruitStrategy{}).Where("project_id = ? AND strategy_id = ?", projectId, strategyID).Scan(RecruitStrategy).Error
 	if err != nil {
-		logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
+		logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyIdByTS error,err:%+v", err)
 		return nil, err
 	}
 	return &RecruitStrategy.RecruitStrategyID, nil
 }
+
+func GetRecruitStrategyByProjectId(ctx context.Context, projectId string) ([]gorm_model.RecruitStrategy, error) {
+	db := GetReadDB(ctx)
+	var RecruitStrategy []gorm_model.RecruitStrategy
+	err := db.Model(gorm_model.RecruitStrategy{}).Where("project_id = ?", projectId).Scan(&RecruitStrategy).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyIdByProjectId error,err:%+v", err)
+		return nil, err
+	}
+	return RecruitStrategy, nil
+}

+ 1 - 1
db/task.go

@@ -22,7 +22,7 @@ import (
 func GetTaskList(ctx context.Context, projectID string) ([]gorm_model.YoungeeTaskInfo, error) {
 	db := GetReadDB(ctx)
 	var tasks []gorm_model.YoungeeTaskInfo
-	err := db.Where("project_id=?", projectID).Find(&tasks).Error
+	err := db.Where("project_id = ? AND task_status = 2", projectID).Find(&tasks).Error
 	if err != nil {
 		return nil, err
 	}

+ 3 - 1
db/terminate.go

@@ -69,7 +69,9 @@ func Terminate(ctx context.Context, TaskIDs, projectIds []string) error {
 				return err
 			}
 			// 1. 更新项目状态为已结束
-			err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).Updates(map[string]interface{}{"project_status": 10, "payment_amount": realPayment}).Error
+			t := time.Now()
+			err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).
+				Updates(map[string]interface{}{"project_status": 10, "payment_amount": realPayment, "finish_at": &t}).Error
 			if err != nil {
 				logrus.WithContext(ctx).Errorf("[Project db] Update ProjectInfo error,err:%+v", err)
 				return err

+ 1 - 0
model/gorm_model/project.go

@@ -38,6 +38,7 @@ type ProjectInfo struct {
 	SettlementAmount  float64    `gorm:"column:settlement_amount"`                     // 结算金额
 	ProductSnap       string     `gorm:"column:product_snap"`                          // 商品信息快照
 	ProductPhotoSnap  string     `gorm:"column:product_photo_snap"`                    // 商品图片快照
+	SubmitAt          *time.Time `gorm:"column:submit_at"`                             // 提交审核时间
 }
 
 func (m *ProjectInfo) TableName() string {

+ 2 - 0
model/http_model/project_show.go

@@ -40,6 +40,7 @@ type ShowProjectData struct {
 	EstimatedCost    string                `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"`              // 联系方式
@@ -49,6 +50,7 @@ type ShowProjectData struct {
 	FinishAt         time.Time             `json:"finish_at"`          // 结案时间
 	PayAt            time.Time             `json:"pay_at"`             // 支付时间
 	AutoFailAt       time.Time             `json:"auto_fail_at"`       // 支付截止时间
+	SubmitAt         time.Time             `json:"submit_at"`          // 提交审核时间
 }
 
 type ShowProjectRequest struct {

+ 1 - 0
model/http_model/task_data.go

@@ -56,6 +56,7 @@ type TaskDataInfo struct {
 }
 
 type TaskData struct {
+	Link   gorm_model.YounggeeLinkInfo
 	Talent gorm_model.YoungeeTaskInfo
 	Data   gorm_model.YounggeeDataInfo
 }

+ 2 - 0
model/http_model/task_logistics.go

@@ -28,6 +28,7 @@ type TaskLogisticsPreview struct {
 	ExplorestoreStarttime time.Time `json:"explorestore_starttime"` // 线下探店-探店开始时间
 	ExplorestoreEndtime   time.Time `json:"explorestore_endtime"`   // 线下探店-探店结束时间
 	ExplorestorePeriod    string    `json:"explorestore_period"`    // 线下探店-探店持续时间
+	SignedTime            string    `json:"signed_time"`            // 签收时间
 	CouponCode            string    `json:"coupon_code"`            // 券码信息
 }
 
@@ -41,6 +42,7 @@ type TaskLogisticsInfo struct {
 	CompanyName           string    `json:"company_name"`           // 物流公司
 	LogisticsNumber       string    `json:"logistics_number"`       // 物流单号
 	DeliveryTime          string    `json:"delivery_time"`          // 发货时间
+	SignedTime            string    `json:"signed_time"`            // 签收时间
 	ExplorestoreStarttime time.Time `json:"explorestore_starttime"` // 线下探店-探店开始时间
 	ExplorestoreEndtime   time.Time `json:"explorestore_endtime"`   // 线下探店-探店结束时间
 	ExplorestorePeriod    string    `json:"explorestore_period"`    // 线下探店-探店持续时间

+ 2 - 0
pack/task_finish_list.go

@@ -29,6 +29,7 @@ func MGormTaskFinishInfoToHttpTaskFinishPreview(TaskFinishInfo *http_model.TaskF
 		RealPayment:       TaskFinishInfo.RealPayment,
 		PhotoUrl:          TaskFinishInfo.PhotoUrl,
 		LinkUrl:           TaskFinishInfo.LinkUrl,
+		SubmitAt:          conv.MustString(TaskFinishInfo.SubmitAt, "")[0:19],
 	}
 }
 
@@ -55,5 +56,6 @@ func GetFinishInfoStruct(TaskFinish *http_model.TaskFinish) *http_model.TaskFini
 		RealPayment:      TaskFinish.Talent.RealPayment,
 		PhotoUrl:         TaskFinish.Data.PhotoUrl,
 		LinkUrl:          TaskFinish.Link.LinkUrl,
+		SubmitAt:         TaskFinish.Data.SubmitAt,
 	}
 }

+ 3 - 1
pack/task_logistics_list.go

@@ -32,6 +32,7 @@ func MGormTaskLogisticsInfoToHttpTaskLogisticsPreview(TaskLogisticsInfo *http_mo
 		ExplorestoreEndtime:   TaskLogisticsInfo.ExplorestoreEndtime,
 		ExplorestorePeriod:    conv.MustString(TaskLogisticsInfo.ExplorestorePeriod, ""),
 		CouponCode:            conv.MustString(TaskLogisticsInfo.CouponCode, ""),
+		SignedTime:            conv.MustString(TaskLogisticsInfo.SignedTime, "")[:19],
 	}
 }
 
@@ -49,7 +50,7 @@ func GetTalentInfoStruct(TaskLogistics *http_model.TaskLogistics) *http_model.Ta
 	TalentPostAddrSnap := TaskLogistics.Talent.TalentPostAddrSnap
 	return &http_model.TaskLogisticsInfo{
 		TaskID:                TaskLogistics.Talent.TaskId,
-		PlatformNickname:      conv.MustString(gjson.Get(TalentPlatformInfoSnap, "PlatformInfo.platform_name"), ""),
+		PlatformNickname:      conv.MustString(gjson.Get(TalentPlatformInfoSnap, "platform_nickname"), ""),
 		FansCount:             conv.MustString(gjson.Get(TalentPlatformInfoSnap, "fans_count"), ""),
 		StrategyID:            TaskLogistics.Talent.StrategyId,
 		DetailAddr:            conv.MustString(gjson.Get(TalentPostAddrSnap, "detail_addr"), ""),
@@ -60,5 +61,6 @@ func GetTalentInfoStruct(TaskLogistics *http_model.TaskLogistics) *http_model.Ta
 		ExplorestoreEndtime:   TaskLogistics.Logistics.ExplorestoreEndtime,
 		ExplorestorePeriod:    TaskLogistics.Logistics.ExplorestorePeriod,
 		CouponCode:            TaskLogistics.Logistics.CouponCodeInformation,
+		SignedTime:            conv.MustString(TaskLogistics.Logistics.SignedTime, ""),
 	}
 }

+ 1 - 1
service/auto_task.go

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

+ 0 - 1
service/number_info.go

@@ -101,7 +101,6 @@ func (*number) GetLogisticsNumberInfo(ctx context.Context, request http_model.Ge
 		logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
 		return nil, err
 	}
-
 	return NumberData, nil
 }
 

+ 9 - 1
service/pay.go

@@ -19,14 +19,22 @@ func (*pay) GetPaysum(ctx context.Context, project http_model.PaySumRequest) (*h
 		logrus.Infof("[GetPayTasklist] fail,err:%+v", err)
 		return nil, err
 	}
+	recruitStrategy, err := db.GetRecruitStrategyByProjectId(ctx, projectId)
+	if err != nil {
+		logrus.Infof("[GetPayTasklist] fail,err:%+v", err)
+		return nil, err
+	}
 	payMap := make(map[int]float64)
+	for _, v := range recruitStrategy {
+		payMap[int(v.StrategyID)] = 0
+	}
 	PaySum := http_model.PaySumResponce{}
 	if tasks != nil {
 		for _, task := range tasks {
 			payMap[task.StrategyId] += task.AllPayment
 		}
 		for k, v := range payMap {
-			ps := http_model.PaySum{k, v}
+			ps := http_model.PaySum{StrategyId: k, AllPayment: v}
 			PaySum.PaySum = append(PaySum.PaySum, ps)
 		}
 	}

+ 4 - 0
service/project.go

@@ -67,6 +67,7 @@ func (*project) GetProjectDetail(ctx context.Context, projectID string) (*http_m
 		ProductID:        conv.MustString(project.ProductID, ""),
 		EnterpriseID:     conv.MustString(project.EnterpriseID, ""),
 		Balance:          conv.MustString(enterprise.Balance, ""),
+		AvailableBalance: conv.MustString(enterprise.AvailableBalance, ""),
 		EstimatedCost:    conv.MustString(project.EstimatedCost, ""),
 		FailReason:       conv.MustString(project.FailReason, ""),
 		CreateAt:         util.GetTimePointer(project.CreatedAt),
@@ -78,6 +79,7 @@ func (*project) GetProjectDetail(ctx context.Context, projectID string) (*http_m
 		ProductInfo:      conv.MustString(project.ProductSnap, ""),
 		ProductPhotoInfo: conv.MustString(project.ProductPhotoSnap, ""),
 		AutoFailAt:       util.GetTimePointer(project.AutoFailAt),
+		SubmitAt:         util.GetTimePointer(project.SubmitAt),
 	}
 	Strategys, err := db.GetRecruitStrategys(ctx, projectID)
 	if err != nil {
@@ -324,6 +326,7 @@ func (*project) Update(ctx context.Context, newProject http_model.UpdateProjectR
 		}
 	}
 	feeFroms := strings.Join(feeFrom, ",")
+	t := time.Now()
 	project := gorm_model.ProjectInfo{
 		ProjectID:     newProject.ProjectID,
 		RecruitDdl:    &RecruitDdl,
@@ -335,6 +338,7 @@ func (*project) Update(ctx context.Context, newProject http_model.UpdateProjectR
 		ProjectStatus: int64(newProject.ProjectStatus),
 		FeeForm:       feeFroms,
 		EstimatedCost: ECost,
+		SubmitAt:      &t,
 	}
 	projectID, err := db.UpdateProject(ctx, project)
 	if err != nil {