Pārlūkot izejas kodu

定向冻结&解冻处理

Ethan 1 nedēļu atpakaļ
vecāks
revīzija
3b370b222d
2 mainītis faili ar 37 papildinājumiem un 31 dzēšanām
  1. 2 2
      app/dao/project_dao.go
  2. 35 29
      app/schedule/auto_task_settle.go

+ 2 - 2
app/dao/project_dao.go

@@ -318,7 +318,7 @@ func (d ProjectDAO) GetProjectFrozenList(enterpriseId string) ([]*entity.Project
 	var projects []*entity.Project
 	var projects []*entity.Project
 	query := Db.Debug().Model(entity.Project{})
 	query := Db.Debug().Model(entity.Project{})
 	query.Select("project_id, product_id, enterprise_id, sub_account_id, project_platform, payment_amount, pay_at") // 冻结金额:payment_amount
 	query.Select("project_id, product_id, enterprise_id, sub_account_id, project_platform, payment_amount, pay_at") // 冻结金额:payment_amount
-	err := query.Where(fmt.Sprintf("enterprise_id = ? AND (project_status between 7 and 8) "), enterpriseId).Find(&projects).Error
+	err := query.Where(fmt.Sprintf("enterprise_id = ? AND project_type = ? AND (project_status between 7 and 8) "), enterpriseId, 1).Find(&projects).Error
 	if err != nil {
 	if err != nil {
 		if errors.Is(err, gorm.ErrRecordNotFound) {
 		if errors.Is(err, gorm.ErrRecordNotFound) {
 			return projects, nil
 			return projects, nil
@@ -334,7 +334,7 @@ func (d ProjectDAO) GetProjectFrozenCancelList(enterpriseId string) ([]*entity.P
 	var projects []*entity.Project
 	var projects []*entity.Project
 	query := Db.Debug().Model(entity.Project{})
 	query := Db.Debug().Model(entity.Project{})
 	query.Select("project_id, product_id, enterprise_id, sub_account_id, project_platform, settlement_amount, pay_at") // 解冻金额:settlement_amount
 	query.Select("project_id, product_id, enterprise_id, sub_account_id, project_platform, settlement_amount, pay_at") // 解冻金额:settlement_amount
-	err := query.Where(fmt.Sprintf("enterprise_id = ? AND (project_status between 9 and 10) "), enterpriseId).Find(&projects).Error
+	err := query.Where(fmt.Sprintf("enterprise_id = ? AND project_type = ? AND (project_status between 9 and 10) "), enterpriseId, 1).Find(&projects).Error
 	if err != nil {
 	if err != nil {
 		if errors.Is(err, gorm.ErrRecordNotFound) {
 		if errors.Is(err, gorm.ErrRecordNotFound) {
 			return projects, nil
 			return projects, nil

+ 35 - 29
app/schedule/auto_task_settle.go

@@ -72,20 +72,23 @@ func AutoProjectSettleTask() {
 	// 对于所有子任务结案但未解冻的品牌种草项目进行处理
 	// 对于所有子任务结案但未解冻的品牌种草项目进行处理
 	for _, projectInfo := range projectInfos {
 	for _, projectInfo := range projectInfos {
 		projectId := projectInfo.ProjectId
 		projectId := projectInfo.ProjectId
-		// 1. 处理商家账户金额
-		var realPayments float64
-		var projectTaskInfos []*entity.ProjectTaskInfo
-		err2 := dao.Db.Model(&entity.ProjectTaskInfo{}).Where("project_id = ? and task_stage = ? ", projectId, 15).Select("real_payment").Find(&projectTaskInfos).Error
-		if err2 != nil {
-			continue
-		}
-		for _, projectTaskInfo := range projectTaskInfos {
-			realPayments += projectTaskInfo.RealPayment
-		}
-		// 解冻资金
-		_, err3 := dao.EnterpriseDao{}.UpdateEnterpriseBalanceAndFrozen2(projectInfo.EnterpriseID, projectInfo.NeedPay, realPayments)
-		if err3 != nil {
-			return
+		// 只有公开任务需要冻结&解冻资金
+		if projectInfo.ProjectType == 1 {
+			// 1. 处理商家账户金额
+			var realPayments float64
+			var projectTaskInfos []*entity.ProjectTaskInfo
+			err2 := dao.Db.Model(&entity.ProjectTaskInfo{}).Where("project_id = ? and task_stage = ? ", projectId, 15).Select("real_payment").Find(&projectTaskInfos).Error
+			if err2 != nil {
+				continue
+			}
+			for _, projectTaskInfo := range projectTaskInfos {
+				realPayments += projectTaskInfo.RealPayment
+			}
+			// 解冻资金
+			_, err3 := dao.EnterpriseDao{}.UpdateEnterpriseBalanceAndFrozen2(projectInfo.EnterpriseID, projectInfo.NeedPay, realPayments)
+			if err3 != nil {
+				return
+			}
 		}
 		}
 		// 更新任务状态为结案
 		// 更新任务状态为结案
 		err4 := dao.ProjectDAO{}.UpdateProject(entity.Project{ProjectId: projectId, ProjectStatus: 10})
 		err4 := dao.ProjectDAO{}.UpdateProject(entity.Project{ProjectId: projectId, ProjectStatus: 10})
@@ -132,23 +135,26 @@ func AutoLocalLifeSettleTask() {
 	if err1 != nil {
 	if err1 != nil {
 		return
 		return
 	}
 	}
-	// 对于所有子任务结案但未解冻的品牌种草项目进行处理
+	// 对于所有子任务结案但未解冻的本地生活项目进行处理
 	for _, localLifeInfo := range localLifeInfos {
 	for _, localLifeInfo := range localLifeInfos {
 		localId := localLifeInfo.LocalID
 		localId := localLifeInfo.LocalID
-		// 1. 处理商家账户金额
-		var realPayments float64
-		var localTaskInfos []*entity.LocalLifeTaskInfo
-		err2 := dao.Db.Model(&entity.LocalLifeTaskInfo{}).Where("local_id = ? and task_stage = ? ", localId, 15).Select("real_payment").Find(&localTaskInfos).Error
-		if err2 != nil {
-			continue
-		}
-		for _, localTaskInfo := range localTaskInfos {
-			realPayments += localTaskInfo.RealPayment
-		}
-		// 解冻资金
-		_, err3 := dao.EnterpriseDao{}.UpdateEnterpriseBalanceAndFrozen2(localLifeInfo.EnterpriseID, localLifeInfo.NeedPay, realPayments)
-		if err3 != nil {
-			continue
+		// 只有公开任务需要冻结&解冻资金
+		if localLifeInfo.LocalType == 1 {
+			// 1. 处理商家账户金额
+			var realPayments float64
+			var localTaskInfos []*entity.LocalLifeTaskInfo
+			err2 := dao.Db.Model(&entity.LocalLifeTaskInfo{}).Where("local_id = ? and task_stage = ? ", localId, 15).Select("real_payment").Find(&localTaskInfos).Error
+			if err2 != nil {
+				continue
+			}
+			for _, localTaskInfo := range localTaskInfos {
+				realPayments += localTaskInfo.RealPayment
+			}
+			// 解冻资金
+			_, err3 := dao.EnterpriseDao{}.UpdateEnterpriseBalanceAndFrozen2(localLifeInfo.EnterpriseID, localLifeInfo.NeedPay, realPayments)
+			if err3 != nil {
+				continue
+			}
 		}
 		}
 		// 更新任务状态为结案
 		// 更新任务状态为结案
 		err4 := dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{LocalID: localId, TaskStatus: 10})
 		err4 := dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{LocalID: localId, TaskStatus: 10})