123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- package service
- import (
- "bytes"
- "github.com/druidcaesa/gotool"
- "ulink-admin/frame"
- dao2 "ulink-admin/modules/system/dao"
- "ulink-admin/modules/system/models/model"
- req2 "ulink-admin/modules/system/models/req"
- "ulink-admin/pkg/base"
- "xorm.io/xorm"
- )
- type RoleService struct {
- RoleDao *dao2.RoleDao `inject:""`
- RoleMenuDao *dao2.RoleMenuDao `inject:""`
- UserRoleDao *dao2.UserRoleDao `inject:""`
- }
- func (s RoleService) List(query *req2.RoleQuery, list interface{}) {
- s.RoleDao.List(query, list)
- }
- func (s RoleService) SelectRoleListByUserId(parseInt int64) *[]int64 {
- return s.RoleDao.SelectRoleListByUserId(parseInt)
- }
- func (s RoleService) GetRoleListByUserId(id int64) *[]model.SysRole {
- return s.RoleDao.GetRoleListByUserId(id)
- }
- func (s RoleService) Page(query *req2.RoleQuery, list interface{}) int64 {
- return s.RoleDao.Page(query, list)
- }
- func (s RoleService) GetById(id int64, model interface{}) {
- s.RoleDao.GetById(id, model)
- }
- func (s RoleService) Add(role *model.SysRole) {
- if s.RoleDao.Exist(role.TableName(), "role_name=?", role.RoleName) {
- frame.Throw(frame.BUSINESS_CODE, "新增角色'"+role.RoleName+"'失败,角色名称已存在")
- }
- if s.RoleDao.Exist(role.TableName(), "role_key=?", role.RoleKey) {
- frame.Throw(frame.BUSINESS_CODE, "新增角色'"+role.RoleName+"'失败,角色权限标识已存在")
- }
- base.Transaction(func(session *xorm.Session) {
- s.RoleDao.Insert(role)
- s.insertRoleMenu(role)
- })
- }
- func (s RoleService) insertRoleMenu(role *model.SysRole) {
- list := make([]model.SysRoleMenu, 0)
- for _, id := range role.MenuIds {
- menu := model.SysRoleMenu{
- RoleId: role.Id,
- MenuId: id,
- }
- list = append(list, menu)
- }
- s.RoleMenuDao.Add(list)
- }
- func (s RoleService) Update(role *model.SysRole) {
- if s.RoleDao.Exist(role.TableName(), "role_name=? and id!=?", role.RoleKey, role.Id) {
- frame.Throw(frame.BUSINESS_CODE, "新增角色'"+role.RoleName+"'失败,角色名称已存在")
- }
- if s.RoleDao.Exist(role.TableName(), "role_key=? and id!=?", role.RoleKey, role.Id) {
- frame.Throw(frame.BUSINESS_CODE, "新增角色'"+role.RoleName+"'失败,角色权限标识已存在")
- }
- base.Transaction(func(session *xorm.Session) {
-
- s.RoleMenuDao.Delete(role)
- s.insertRoleMenu(role)
-
- s.RoleDao.Update(role)
- })
- }
- func (s RoleService) Delete(id int64) {
-
- base.Transaction(func(session *xorm.Session) {
- s.RoleDao.Delete(&model.SysRole{}, id)
- s.RoleMenuDao.Delete(&model.SysRole{
- BaseModel: base.BaseModel{Id: id},
- })
- })
- }
- func (s RoleService) CheckRoleAllowed(id int64) (bool, string) {
- if id == 1 {
- return false, "超级管理员不允许操作"
- }
- return true, ""
- }
- func (s RoleService) UpdateStatus(role *model.SysRole) {
- s.RoleDao.Update(role, "status")
- }
- func (s RoleService) DeleteAuthUser(userRole *model.SysUserRole) {
- s.UserRoleDao.DeleteAuthUser(userRole)
- }
- func (s RoleService) BatchCancelAuthUsers(body *req2.UserRoleBody) {
- s.UserRoleDao.BatchCancelAuthUsers(body)
- }
- func (s RoleService) InsertAuthUsers(body *req2.UserRoleBody) {
- s.UserRoleDao.InsertAuthUsers(body)
- }
- func (s RoleService) SelectRolesByUserName(name string) string {
- list := s.RoleDao.SelectRolesByUserName(name)
- var buffer bytes.Buffer
- var roleName string
- for _, role := range *list {
- buffer.WriteString(role.RoleName)
- buffer.WriteString(",")
- }
- s2 := buffer.String()
- if gotool.StrUtils.HasNotEmpty(s2) {
- roleName = s2[0:(len(s2) - 1)]
- }
- return roleName
- }
|