Files
lone-services/services/admin/internal/logic/rolenameslogic.go
T
gjs be8f89f449
CI / changes (push) Successful in 5s
CI / docker-bff (push) Failing after 7s
CI / docker-product (push) Failing after 5s
CI / docker-admin (push) Failing after 4s
CI / docker-user (push) Failing after 6s
change layout
2026-08-20 15:41:44 +08:00

75 lines
1.7 KiB
Go

package logic
import (
"context"
"lone-services/pkg/modelbase"
"lone-services/pkg/utils"
admin "lone-services/rpc/admin/pb"
"lone-services/services/admin/internal/dao"
"lone-services/services/admin/internal/model"
"lone-services/services/admin/internal/svc"
"github.com/zeromicro/go-zero/core/logx"
)
type RoleNamesLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
BaseLogic
}
func NewRoleNamesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RoleNamesLogic {
return &RoleNamesLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *RoleNamesLogic) RoleNames(in *admin.RoleNameRequest) (*admin.Response, error) {
var services []dao.ServicesNames
w := modelbase.Params{
Eq: map[string]string{"status": utils.StringStatusOk},
}
err := model.ServicesModel{}.Init().Items(w, &services)
if err != nil {
l.Logger.Error(err)
return l.fail(utils.Fail)
}
var items []dao.RoleServiceNameItems
var roles []dao.Role
modelObj := model.RoleModel{}.Init()
w = modelbase.Params{
Eq: map[string]string{"status": utils.StringStatusOk},
}
w.Like = make(map[string]string)
if len(in.Name) > utils.NumberZero {
w.Like["name LIKE ? "] = "%%" + in.Name + "%%"
}
err = modelObj.Items(w, &roles)
if err != nil {
l.Logger.Error(err)
return l.fail(utils.Fail)
}
tmp := map[int64][]dao.RoleNameItems{}
for _, item := range roles {
tmp[item.ServiceId] = append(tmp[item.ServiceId], dao.RoleNameItems{
Name: item.Name,
Id: item.Id,
})
}
for _, pro := range services {
if _, ok := tmp[pro.Id]; ok {
items = append(items, dao.RoleServiceNameItems{
Id: pro.Id,
Name: pro.Name,
Items: tmp[pro.Id],
})
}
}
return l.ok(items)
}