123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package admin
- import (
- "github.com/xinliangnote/go-gin-api/internal/pkg/core"
- "github.com/xinliangnote/go-gin-api/internal/repository/mysql"
- "github.com/xinliangnote/go-gin-api/internal/repository/mysql/admin_menu"
- "github.com/xinliangnote/go-gin-api/internal/repository/mysql/menu_action"
- )
- type SearchMyActionData struct {
- AdminId int32 `json:"admin_id"` // 管理员ID
- }
- type MyActionData struct {
- Id int32 // 主键
- MenuId int32 // 菜单栏ID
- Method string // 请求方式
- Api string // 请求地址
- }
- func (s *service) MyAction(ctx core.Context, searchData *SearchMyActionData) (actionData []MyActionData, err error) {
- adminMenuQb := admin_menu.NewQueryBuilder()
- if searchData.AdminId != 0 {
- adminMenuQb.WhereAdminId(mysql.EqualPredicate, searchData.AdminId)
- }
- adminMenuListData, err := adminMenuQb.
- OrderById(false).
- QueryAll(s.db.GetDbR().WithContext(ctx.RequestContext()))
- if err != nil {
- return nil, err
- }
- if len(adminMenuListData) <= 0 {
- return
- }
- var menuIds []int32
- for _, v := range adminMenuListData {
- menuIds = append(menuIds, v.MenuId)
- }
- actionQb := menu_action.NewQueryBuilder()
- actionQb.WhereIsDeleted(mysql.EqualPredicate, -1)
- actionQb.WhereMenuIdIn(menuIds)
- actionListData, err := actionQb.QueryAll(s.db.GetDbR().WithContext(ctx.RequestContext()))
- if err != nil {
- return nil, err
- }
- if len(actionListData) <= 0 {
- return
- }
- actionData = make([]MyActionData, len(actionListData))
- for k, v := range actionListData {
- data := MyActionData{
- Id: v.Id,
- MenuId: v.MenuId,
- Method: v.Method,
- Api: v.Api,
- }
- actionData[k] = data
- }
- return
- }
|