2
0

2 کامیت‌ها 436277ef77 ... ff8d53a379

نویسنده SHA1 پیام تاریخ
  Ethan ff8d53a379 定时任务 2 روز پیش
  Ethan 6ac498479c 本地生活冻结记录 2 روز پیش
3فایلهای تغییر یافته به همراه86 افزوده شده و 6 حذف شده
  1. 32 0
      app/dao/local_life_dao.go
  2. 1 1
      app/schedule/auto_task_settle.go
  3. 53 5
      app/service/recharge_service.go

+ 32 - 0
app/dao/local_life_dao.go

@@ -730,3 +730,35 @@ func (d LocalLifeDao) GetTaskInviteToDo(enterpriseId string, subAccountId int64,
 
 	return resultMap, nil
 }
+
+// 获取本地生活冻结中的任务
+func (d LocalLifeDao) GetLocalFrozenList(enterpriseId string) ([]*entity.LocalLifeInfo, error) {
+	var localLifes []*entity.LocalLifeInfo
+	query := Db.Debug().Model(entity.LocalLifeInfo{})
+	query.Select("local_id, store_id, enterprise_id, sub_account_id, local_platform, payment_amount, pay_at") // 冻结金额:payment_amount
+	err := query.Where(fmt.Sprintf("enterprise_id = ? AND local_type = ? AND (task_status between 7 and 8) "), enterpriseId, 1).Find(&localLifes).Error
+	if err != nil {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
+			return localLifes, nil
+		} else {
+			return nil, err
+		}
+	}
+	return localLifes, nil
+}
+
+// 获取本地生活冻结解除的任务
+func (d LocalLifeDao) GetLocalFrozenCancelList(enterpriseId string) ([]*entity.LocalLifeInfo, error) {
+	var localLifes []*entity.LocalLifeInfo
+	query := Db.Debug().Model(entity.LocalLifeInfo{})
+	query.Select("local_id, store_id, enterprise_id, sub_account_id, local_platform, settlement_amount, pay_at") // 解冻金额:settlement_amount
+	err := query.Where(fmt.Sprintf("enterprise_id = ? AND local_type = ? AND (task_status between 9 and 10) "), enterpriseId, 1).Find(&localLifes).Error
+	if err != nil {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
+			return localLifes, nil
+		} else {
+			return nil, err
+		}
+	}
+	return localLifes, nil
+}

+ 1 - 1
app/schedule/auto_task_settle.go

@@ -11,7 +11,7 @@ import (
 func AutoTaskSettle() error {
 	// 新建一个定时任务对象
 	crontab := cron.New(cron.WithSeconds()) // 精确到秒
-	spec := "0 */1 * * * ?"                 //cron表达式,每5分钟一次
+	spec := "0 */5 * * * ?"                 //cron表达式,每5分钟一次
 
 	// 添加定时任务
 	// 定时任务1  电商带货结案与解冻处理

+ 53 - 5
app/service/recharge_service.go

@@ -214,20 +214,21 @@ func (s RechargeService) FrozenInfoList(param *vo.BalanceParam) (vo.ResultVO, er
 	var reBalanceShows []*vo.ReFrozenInfo
 	var selectionInfos []*entity.SelectionInfo
 	var projects []*entity.Project
+	var localLifes []*entity.LocalLifeInfo
 	if param.FrozenState == 1 {
 		// 电商带货
 		selectionInfos, _ = dao.SelectionInfoDAO{}.GetSelectionFrozenList(param.EnterpriseId)
 		// 品牌种草
 		projects, _ = dao.ProjectDAO{}.GetProjectFrozenList(param.EnterpriseId)
 		// 本地生活
-
+		localLifes, _ = dao.LocalLifeDao{}.GetLocalFrozenList(param.EnterpriseId)
 	} else {
 		// 电商带货
 		selectionInfos, _ = dao.SelectionInfoDAO{}.GetSelectionFrozenCancelList(param.EnterpriseId)
 		// 品牌种草
 		projects, _ = dao.ProjectDAO{}.GetProjectFrozenCancelList(param.EnterpriseId)
 		// 本地生活
-
+		localLifes, _ = dao.LocalLifeDao{}.GetLocalFrozenCancelList(param.EnterpriseId)
 	}
 	// 汇总结果
 	for _, selection := range selectionInfos {
@@ -296,7 +297,7 @@ func (s RechargeService) FrozenInfoList(param *vo.BalanceParam) (vo.ResultVO, er
 			productPrice = product.ProductPrice
 		}
 		mainImage, err = dao.ProductPhotoDAO{}.GetMainPhotoByProductID(project.ProductID)
-		// 电商带货汇总
+		// 品牌种草汇总
 		reBalanceShow := &vo.ReFrozenInfo{
 			ProductId:     project.ProductID,
 			MainImage:     mainImage,
@@ -316,6 +317,49 @@ func (s RechargeService) FrozenInfoList(param *vo.BalanceParam) (vo.ResultVO, er
 		}
 		reBalanceShows = append(reBalanceShows, reBalanceShow)
 	}
+	for _, localLife := range localLifes {
+		// 获取商品详情字段
+		var creatorName string
+		var storName string
+		var price float64
+		var mainImage string
+		if localLife.SubAccountID == 0 {
+			enterprise, err := dao.EnterpriseDao{}.GetEnterprise(localLife.EnterpriseID)
+			if err == nil && enterprise != nil {
+				creatorName = enterprise.BusinessName
+			}
+		} else {
+			subAccount, err := dao.SubAccountDao{}.GetSubAccount(localLife.SubAccountID)
+			if err == nil && subAccount != nil {
+				creatorName = subAccount.SubAccountName
+			}
+		}
+		store, err := dao.StoreDao{}.GetStoreByID(localLife.StoreID)
+		if err == nil && store != nil {
+			storName = store.StoreName
+			price = 0.0
+		}
+		mainImage, err = dao.ProductPhotoDAO{}.GetMainPhotoByProductID(localLife.StoreID)
+		// 品牌种草汇总
+		reBalanceShow := &vo.ReFrozenInfo{
+			ProductId:     localLife.StoreID,
+			MainImage:     mainImage,
+			ProductName:   storName,
+			ProductPrice:  price,
+			Platform:      localLife.LocalPlatform,
+			CreatorName:   creatorName,
+			TaskType:      "本地生活",
+			FrozenBalance: localLife.NeedPay,
+			FrozenTime:    localLife.PayAt.Format("2006-01-02 15:04:05"),
+			EnterpriseId:  localLife.EnterpriseID,
+			SubAccountId:  localLife.SubAccountID,
+			TaskId:        localLife.LocalID,
+		}
+		if param.FrozenState == 2 {
+			reBalanceShow.FrozenCancelBalance = localLife.SettlementAmount
+		}
+		reBalanceShows = append(reBalanceShows, reBalanceShow)
+	}
 
 	startIndex := (param.Page - 1) * param.PageSize
 	endIndex := startIndex + param.PageSize
@@ -347,17 +391,21 @@ func (t RechargeService) FrozenInfoCount(param *vo.BalanceParam) map[string]int6
 	res := make(map[string]int64)
 	var blockNum1 int64
 	var blockNum2 int64
+	var blockNum3 int64
 	var blockReleaseNum1 int64
 	var blockReleaseNum2 int64
+	var blockReleaseNum3 int64
 	// 冻结中
 	dao.Db.Model(entity.SelectionInfo{}).Where(fmt.Sprintf("enterprise_id = ? AND (selection_status between 5 and 6) "), param.EnterpriseId).Count(&blockNum1)
 	dao.Db.Model(entity.Project{}).Where(fmt.Sprintf("enterprise_id = ? AND project_type = ? AND (project_status between 7 and 8) "), param.EnterpriseId, 1).Count(&blockNum2)
+	dao.Db.Model(entity.LocalLifeInfo{}).Where(fmt.Sprintf("enterprise_id = ? AND local_type = ? AND (task_status between 7 and 8) "), param.EnterpriseId, 1).Count(&blockNum3)
 	// 冻结解除
 	dao.Db.Model(entity.SelectionInfo{}).Where(fmt.Sprintf("enterprise_id = ? AND (selection_status between 7 and 8) "), param.EnterpriseId).Count(&blockReleaseNum1)
 	dao.Db.Model(entity.Project{}).Where(fmt.Sprintf("enterprise_id = ? AND project_type = ? AND (project_status between 9 and 10) "), param.EnterpriseId, 1).Count(&blockReleaseNum2)
+	dao.Db.Model(entity.LocalLifeInfo{}).Where(fmt.Sprintf("enterprise_id = ? AND local_type = ? AND (task_status between 9 and 10) "), param.EnterpriseId, 1).Count(&blockReleaseNum3)
 
-	res["blockNum"] = blockNum1 + blockNum2
-	res["blockReleaseNum"] = blockReleaseNum1 + blockReleaseNum2
+	res["blockNum"] = blockNum1 + blockNum2 + blockNum3
+	res["blockReleaseNum"] = blockReleaseNum1 + blockReleaseNum2 + blockReleaseNum3
 
 	return res
 }