初始
This commit is contained in:
72
test/schdule_delete_test.go
Normal file
72
test/schdule_delete_test.go
Normal file
@ -0,0 +1,72 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/samber/lo"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/dao"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/model/entity"
|
||||
)
|
||||
|
||||
// TestGetMatrixsByProjectId 删除一共子项目的所有方阵数据
|
||||
func TestGetMatrixsByProjectId(t *testing.T) {
|
||||
subprojectID := 33
|
||||
matrixs := getMatrixsByProjectID(subprojectID)
|
||||
|
||||
for _, matrix := range matrixs {
|
||||
if deleteMatrixByID(matrix) != nil {
|
||||
t.Error("删除方阵下的数据失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestDeleteMatrixsByProjectId 删除一个子项目的所有方阵
|
||||
func TestDeleteMatrixsByProjectId(t *testing.T) {
|
||||
subprojectID := 33
|
||||
if deleteMatrixsByProjectID(subprojectID) != nil {
|
||||
t.Error("删除子项目的所有方阵失败")
|
||||
}
|
||||
}
|
||||
|
||||
// 删除一个子项目的所有方阵
|
||||
func deleteMatrixsByProjectID(subprojectID int) error {
|
||||
matrixs := getMatrixsByProjectID(subprojectID)
|
||||
|
||||
if _, err := dao.QianqiFangzhen.Ctx(context.Background()).
|
||||
WhereIn(dao.QianqiFangzhen.Columns().Id, matrixs).Unscoped().Delete(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 根据方阵ID在数据库中删除数据
|
||||
func deleteMatrixByID(fangzhenId int) error {
|
||||
ctx := context.Background()
|
||||
|
||||
return g.Try(ctx, func(ctx context.Context) {
|
||||
// 删除任务
|
||||
if _, err := dao.WorkStatus.Ctx(ctx).Where(dao.WorkStatus.Columns().FangzhenId, fangzhenId).Delete(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// 删除计划
|
||||
if _, err := dao.WorkSchedule.Ctx(ctx).Where(dao.WorkSchedule.Columns().FangzhenId, fangzhenId).Delete(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 获取一个子项目的所有方阵ID
|
||||
func getMatrixsByProjectID(subprojectID int) []int {
|
||||
ctx := context.Background()
|
||||
var matrixs []entity.QianqiFangzhen
|
||||
if err := dao.QianqiFangzhen.Ctx(ctx).Where(dao.QianqiFangzhen.Columns().ProjectId, subprojectID).Scan(&matrixs); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return lo.Map(matrixs, func(matrix entity.QianqiFangzhen, _ int) int {
|
||||
return matrix.Id
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user