service_createmenu.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package admin
  2. import (
  3. "strings"
  4. "github.com/xinliangnote/go-gin-api/internal/pkg/core"
  5. "github.com/xinliangnote/go-gin-api/internal/repository/mysql"
  6. "github.com/xinliangnote/go-gin-api/internal/repository/mysql/admin_menu"
  7. "github.com/spf13/cast"
  8. )
  9. type CreateMenuData struct {
  10. AdminId int32 `form:"admin_id"` // AdminID
  11. Actions string `form:"actions"` // 功能权限ID,多个用,分割
  12. }
  13. func (s *service) CreateMenu(ctx core.Context, menuData *CreateMenuData) (err error) {
  14. qb := admin_menu.NewQueryBuilder()
  15. qb.WhereAdminId(mysql.EqualPredicate, menuData.AdminId)
  16. if err = qb.Delete(s.db.GetDbW().WithContext(ctx.RequestContext())); err != nil {
  17. return
  18. }
  19. ActionArr := strings.Split(menuData.Actions, ",")
  20. for _, v := range ActionArr {
  21. createModel := admin_menu.NewModel()
  22. createModel.AdminId = menuData.AdminId
  23. createModel.MenuId = cast.ToInt32(v)
  24. createModel.CreatedUser = ctx.SessionUserInfo().UserName
  25. _, err = createModel.Create(s.db.GetDbW().WithContext(ctx.RequestContext()))
  26. if err != nil {
  27. return
  28. }
  29. }
  30. return
  31. }