75 lines
1.7 KiB
Go
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)
|
|
}
|