// Schema 方案
type Schema struct{}
// 删除方案
func (a *Schema) SchemaDel(c *gin.Context) {
var req schema.IDSReq
if ginx.HandleError(c, ginx.ParseJSON(c, &req)) {
return
}
ids := strings.Split(req.IDS, ",")
if len(ids) == 0 {
ginx.ErrorRes(c, "请至少选择一条记录")
return
}
var list []*models.Scheme
_, err := db.GetList(nil, false, &models.Scheme{}, &list, gin.H{"id in ?": ids}, nil, "", &ginx.PageParam{
OnlyPage: true,
PageSize: -1,
}, "ID", "BranchID")
if ginx.HandleError(c, err) {
return
}
for _, v := range list {
// 验证权限
if ginx.HandleError(c, checkBranchRole(c, v.BranchID)) {
return
}
if v.IsDel == 0 {
v.IsDel = 1
if ginx.HandleError(c, db.Update(nil, v, "IsDel")) {
return
}
}
}
ginx.SuccessRes(c, "操作成功")
}
// Tag 标签
type Tag struct{}
// 删除标签
func (a *Tag) TagDel(c *gin.Context) {
var req schema.IDSReq
if ginx.HandleError(c, ginx.ParseJSON(c, &req)) {
return
}
ids := strings.Split(req.IDS, ",")
if len(ids) == 0 {
ginx.ErrorRes(c, "请至少选择一条记录")
return
}
var list []*models.Tag
_, err := db.GetList(nil, false, &models.Tag{}, &list, gin.H{"id in ?": ids}, nil, "", &ginx.PageParam{
OnlyPage: true,
PageSize: -1,
}, "ID", "BranchID")
if ginx.HandleError(c, err) {
return
}
for _, v := range list {
// 验证权限
if ginx.HandleError(c, checkBranchRole(c, v.BranchID)) {
return
}
if v.IsDel == 0 {
v.IsDel = 1
if ginx.HandleError(c, db.Update(nil, v, "IsDel")) {
return
}
}
}
ginx.SuccessRes(c, "操作成功")
}
可以使用接口类型(interface)实现, 参考 https://zhuanlan.zhihu.com/p/...