package controllers import ( "encoding/json" "eta/eta_mini_crm/models" "eta/eta_mini_crm/models/request" "eta/eta_mini_crm/models/response" "eta/eta_mini_crm/utils" "time" "github.com/beego/beego/v2/client/orm" "github.com/rdlucklib/rdluck_tools/paging" ) type SysRoleController struct { BaseAuthController } // List // @Title 系统角色列表 // @Description 系统角色列表 // @Param request body UserLoginReq true "type json string" // @Success 200 {object} response.SysRoleListResp // @router /list [get] func (this *SysRoleController) List() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = utils.StartIndex(currentIndex, pageSize) total, err := models.GetSysRoleListCount() if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取失败,Err:" + err.Error() return } list, err := models.GetSysRoleList(startSize, pageSize) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取失败,Err:" + err.Error() return } page := paging.GetPaging(currentIndex, pageSize, total) resp := new(response.SysRoleListResp) resp.List = list resp.Paging = page br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 删除角色 // @Description 删除角色接口 // @Param request body system.SysRoleDeleteReq true "type json string" // @Success 200 删除成功 // @router /delete [post] func (this *SysRoleController) Delete() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req request.SysRoleDeleteReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.SysRoleId <= 0 { br.Msg = "参数错误" br.ErrMsg = "参数错误,GroupId 小于等于0 " return } role, err := models.GetSysRoleById(req.SysRoleId) if err != nil { if err == orm.ErrNoRows { br.Msg = "角色不存在, 请刷新页面" return } br.Msg = "删除失败" br.ErrMsg = "获取角色信息失败, Err: " + err.Error() return } if role.SysRoleName == "admin" { br.Msg = "admin角色不可删除" return } count, err := models.GetSysUserCountByRoleId(req.SysRoleId) if err != nil { br.Msg = "删除失败" br.ErrMsg = "获取用户数量失败,Err: " + err.Error() return } if count > 0 { br.Msg = "角色绑定用户,不可删除" return } err = models.DeleteSysRoleById(req.SysRoleId) if err != nil { br.Msg = "删除失败" br.Msg = "删除角色失败,系统错误,Err: " + err.Error() return } br.Msg = "删除成功" br.Ret = 200 br.Success = true } // @Title 新增角色 // @Description 新增角色接口 // @Param request body request.SysRoleAddReq true "type json string" // @Success 200 新增成功 // @router /add [post] func (this *SysRoleController) Add() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req request.SysRoleAddReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.SysRoleName == "" { br.Msg = "角色名称不能为空" return } count, err := models.GetSysRoleCountByRoleName(req.SysRoleName) if err != nil { br.Msg = "新增角色失败" br.ErrMsg = "新增角色失败,系统异常,Err:" + err.Error() return } if count > 0 { br.Msg = "角色已存在,请重新输入" return } sysRole := &models.SysRole{} sysRole.SysRoleName = req.SysRoleName sysRole.CreateTime = time.Now() sysRole.ModifyTime = time.Now() err = sysRole.Add() if err != nil { br.Msg = "新增角色失败" br.ErrMsg = "新增角色失败,系统异常,Err:" + err.Error() return } br.Ret = 200 br.Msg = "新增角色成功" br.Success = true } // @Title 新增角色 // @Description 新增角色接口 // @Param request body request.SysRoleAddReq true "type json string" // @Success 200 新增成功 // @router /edit [post] func (this *SysRoleController) Edit() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req request.SysRoleEditReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.SysRoleId <= 0 { br.Msg = "参数错误" br.ErrMsg = "参数错误,GroupId 小于等于0 " return } if req.SysRoleName == "" { br.Msg = "分组名称不能为空" return } sysRole, err := models.GetSysRoleById(req.SysRoleId) if err != nil { if err == orm.ErrNoRows { br.Msg = "角色不存在,请刷新页面" return } br.Msg = "操作失败" br.ErrMsg = "获取角色失败, Err:" + err.Error() return } if sysRole.SysRoleName == "admin" { br.Msg = "admin角色不可编辑" return } count, err := models.GetSysRoleCountByRoleName(req.SysRoleName) if count > 0 { br.Msg = "名称已存在,请重新输入" return } if err != nil && err != orm.ErrNoRows { br.Msg = "操作失败" br.ErrMsg = "获取重名角色失败,Err:" + err.Error() return } err = models.UpdateSysUserRoleByRoleId(req.SysRoleId, req.SysRoleName) if err != nil { br.Msg = "编辑失败" br.ErrMsg = "编辑角色失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "编辑成功" }