package authoritySer import ( "context" "stat/api/proto" "stat/common/genId" "stat/common/stdLog" "stat/models/authorityMod" "time" ) // 角色列表 func RoleList(ctx context.Context, param proto.RoleListReq) (code stdLog.CodeType, data interface{}, err error) { skip := (param.PageNum - 1) * param.PageSize limit := param.PageSize resp := proto.RoleListRes{ Total: 0, List: make([]proto.RoleInfo, 0), } total, auList, err := authorityMod.RoleList(ctx, skip, limit) if err != nil { code = stdLog.Failure return } for _, v := range auList { var tmp = proto.RoleInfo{ RoleId: v.Id, Role: v.Role, AuthJson: v.AuthJson, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } resp.List = append(resp.List, tmp) } data = resp resp.Total = total code = stdLog.Success return } // 添加角色 func AddRole(ctx context.Context, param proto.AddRoleReq) (code stdLog.CodeType, data interface{}, err error) { // 查询是否存在该角色 roleInfo, err := authorityMod.GetAuthorityByRole(ctx, *param.Role) if err != nil || roleInfo.Id > 0 { code = stdLog.AuthorityRoleExists return } // 获取id roleId := genId.GetNextRoleId() now := time.Now() doc := authorityMod.Authority{ Id: roleId, Role: *param.Role, AuthJson: *param.AuthJson, CreatedAt: now, UpdatedAt: now, } if err = authorityMod.AddRole(ctx, &doc); err != nil { code = stdLog.Failure return } code = stdLog.Success return } // 修改角色 func UpdateRole(ctx context.Context, param proto.UpdateRoleReq) (code stdLog.CodeType, data interface{}, err error) { // 查询是否存在该角色 if param.Role != nil { roleInfo, err := authorityMod.GetRoleExcludeRole(ctx, *param.RoleId, *param.Role) if err != nil || roleInfo.Id > 0 { code = stdLog.AuthorityRoleExists return code, data, err } } now := time.Now() doc := authorityMod.UpdateDoc{ Role: param.Role, AuthJson: param.AuthJson, UpdatedAt: &now, } if err = authorityMod.UpdateRole(ctx, *param.RoleId, doc); err != nil { code = stdLog.Failure return } code = stdLog.Success return } // 删除角色 func DelRole(ctx context.Context, param proto.DelRoleReq) (code stdLog.CodeType, data interface{}, err error) { if err = authorityMod.DelRoleById(ctx, *param.RoleId); err != nil { code = stdLog.Failure return } code = stdLog.Success return }