[fix]异常处理

This commit is contained in:
panda
2024-06-06 20:46:35 +08:00
parent 41b61ebf1e
commit 4cee5ae537
24 changed files with 801 additions and 600 deletions

View File

@@ -3,7 +3,6 @@ package services
import (
"errors"
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/kit/casbin"
"pandax/pkg/global"
@@ -12,12 +11,12 @@ import (
type (
SysApiModel interface {
Insert(data entity.SysApi) *entity.SysApi
FindOne(id int64) *entity.SysApi
FindListPage(page, pageSize int, data entity.SysApi) (*[]entity.SysApi, int64)
FindList(data entity.SysApi) *[]entity.SysApi
Update(data entity.SysApi) *entity.SysApi
Delete(ids []int64)
Insert(data entity.SysApi) (*entity.SysApi, error)
FindOne(id int64) (*entity.SysApi, error)
FindListPage(page, pageSize int, data entity.SysApi) (*[]entity.SysApi, int64, error)
FindList(data entity.SysApi) (*[]entity.SysApi, error)
Update(data entity.SysApi) error
Delete(ids []int64) error
}
sysApiModelImpl struct {
@@ -29,22 +28,22 @@ var SysApiModelDao SysApiModel = &sysApiModelImpl{
table: `sys_apis`,
}
func (m *sysApiModelImpl) Insert(api entity.SysApi) *entity.SysApi {
func (m *sysApiModelImpl) Insert(api entity.SysApi) (*entity.SysApi, error) {
err := global.Db.Table(m.table).Where("path = ? AND method = ?", api.Path, api.Method).First(&entity.SysApi{}).Error
biz.IsTrue(errors.Is(err, gorm.ErrRecordNotFound), "存在相同api")
if !errors.Is(err, gorm.ErrRecordNotFound) {
return nil, errors.New("存在相同api")
}
err = global.Db.Table(m.table).Create(&api).Error
biz.ErrIsNil(err, "新增Api失败")
return &api
return &api, err
}
func (m *sysApiModelImpl) FindOne(id int64) (resData *entity.SysApi) {
func (m *sysApiModelImpl) FindOne(id int64) (resData *entity.SysApi, err error) {
resData = new(entity.SysApi)
err := global.Db.Table(m.table).Where("id = ?", id).First(&resData).Error
biz.ErrIsNil(err, "查询Api失败")
err = global.Db.Table(m.table).Where("id = ?", id).First(&resData).Error
return
}
func (m *sysApiModelImpl) FindListPage(page, pageSize int, data entity.SysApi) (*[]entity.SysApi, int64) {
func (m *sysApiModelImpl) FindListPage(page, pageSize int, data entity.SysApi) (*[]entity.SysApi, int64, error) {
list := make([]entity.SysApi, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -69,12 +68,14 @@ func (m *sysApiModelImpl) FindListPage(page, pageSize int, data entity.SysApi) (
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
if err != nil {
return nil, 0, err
}
err = db.Order("api_group").Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询配置分页列表信息失败")
return &list, total
return &list, total, err
}
func (m *sysApiModelImpl) FindList(data entity.SysApi) *[]entity.SysApi {
func (m *sysApiModelImpl) FindList(data entity.SysApi) (*[]entity.SysApi, error) {
list := make([]entity.SysApi, 0)
db := global.Db.Table(m.table)
@@ -95,27 +96,31 @@ func (m *sysApiModelImpl) FindList(data entity.SysApi) *[]entity.SysApi {
}
db.Where("delete_time IS NULL")
err := db.Order("api_group").Find(&list).Error
biz.ErrIsNil(err, "查询Api列表信息失败")
return &list
return &list, err
}
func (m *sysApiModelImpl) Update(api entity.SysApi) *entity.SysApi {
func (m *sysApiModelImpl) Update(api entity.SysApi) error {
var oldA entity.SysApi
err := global.Db.Table(m.table).Where("id = ?", api.Id).First(&oldA).Error
biz.ErrIsNil(err, "【修改api】查询api失败")
if err != nil {
return err
}
if oldA.Path != api.Path || oldA.Method != api.Method {
err := global.Db.Table(m.table).Where("path = ? AND method = ?", api.Path, api.Method).First(&entity.SysApi{}).Error
biz.IsTrue(errors.Is(err, gorm.ErrRecordNotFound), "存在相同api路径")
if !errors.Is(err, gorm.ErrRecordNotFound) {
return errors.New("存在相同api路径")
}
}
// 异常直接抛错误
ca := casbin.CasbinService{ModelPath: global.Conf.Casbin.ModelPath}
ca.UpdateCasbinApi(oldA.Path, api.Path, oldA.Method, api.Method)
err = ca.UpdateCasbinApi(oldA.Path, api.Path, oldA.Method, api.Method)
if err != nil {
return err
}
err = global.Db.Table(m.table).Model(&api).Updates(&api).Error
biz.ErrIsNil(err, "修改api信息失败")
return &api
return err
}
func (m *sysApiModelImpl) Delete(ids []int64) {
err := global.Db.Table(m.table).Delete(&entity.SysApi{}, "id in (?)", ids).Error
biz.ErrIsNil(err, "删除配置信息失败")
func (m *sysApiModelImpl) Delete(ids []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysApi{}, "id in (?)", ids).Error
}

View File

@@ -2,18 +2,17 @@ package services
import (
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysConfigModel interface {
Insert(data entity.SysConfig) *entity.SysConfig
FindOne(dictCode int64) *entity.SysConfig
FindListPage(page, pageSize int, data entity.SysConfig) (*[]entity.SysConfig, int64)
FindList(data entity.SysConfig) *[]entity.SysConfig
Update(data entity.SysConfig) *entity.SysConfig
Delete(dictCode []int64)
Insert(data entity.SysConfig) (*entity.SysConfig, error)
FindOne(dictCode int64) (*entity.SysConfig, error)
FindListPage(page, pageSize int, data entity.SysConfig) (*[]entity.SysConfig, int64, error)
FindList(data entity.SysConfig) (*[]entity.SysConfig, error)
Update(data entity.SysConfig) error
Delete(dictCode []int64) error
}
sysSysConfigModelImpl struct {
@@ -25,20 +24,18 @@ var SysSysConfigModelDao SysConfigModel = &sysSysConfigModelImpl{
table: `sys_configs`,
}
func (m *sysSysConfigModelImpl) Insert(data entity.SysConfig) *entity.SysConfig {
func (m *sysSysConfigModelImpl) Insert(data entity.SysConfig) (*entity.SysConfig, error) {
err := global.Db.Table(m.table).Create(&data).Error
biz.ErrIsNil(err, "新增配置失败")
return &data
return &data, err
}
func (m *sysSysConfigModelImpl) FindOne(configId int64) *entity.SysConfig {
func (m *sysSysConfigModelImpl) FindOne(configId int64) (*entity.SysConfig, error) {
resData := new(entity.SysConfig)
err := global.Db.Table(m.table).Where("config_id = ?", configId).First(resData).Error
biz.ErrIsNil(err, "查询配置信息失败")
return resData
return resData, err
}
func (m *sysSysConfigModelImpl) FindListPage(page, pageSize int, data entity.SysConfig) (*[]entity.SysConfig, int64) {
func (m *sysSysConfigModelImpl) FindListPage(page, pageSize int, data entity.SysConfig) (*[]entity.SysConfig, int64, error) {
list := make([]entity.SysConfig, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -56,12 +53,14 @@ func (m *sysSysConfigModelImpl) FindListPage(page, pageSize int, data entity.Sys
}
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
if err != nil {
return nil, 0, err
}
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询配置分页列表信息失败")
return &list, total
return &list, total, err
}
func (m *sysSysConfigModelImpl) FindList(data entity.SysConfig) *[]entity.SysConfig {
func (m *sysSysConfigModelImpl) FindList(data entity.SysConfig) (*[]entity.SysConfig, error) {
list := make([]entity.SysConfig, 0)
db := global.Db.Table(m.table)
@@ -77,18 +76,13 @@ func (m *sysSysConfigModelImpl) FindList(data entity.SysConfig) *[]entity.SysCon
}
db.Where("delete_time IS NULL")
err := db.Order("create_time").Find(&list).Error
biz.ErrIsNil(err, "查询配置列表信息失败")
return &list
return &list, err
}
func (m *sysSysConfigModelImpl) Update(data entity.SysConfig) *entity.SysConfig {
err := global.Db.Table(m.table).Model(&data).Updates(&data).Error
biz.ErrIsNil(err, "修改配置信息失败")
return &data
func (m *sysSysConfigModelImpl) Update(data entity.SysConfig) error {
return global.Db.Table(m.table).Model(&data).Updates(&data).Error
}
func (m *sysSysConfigModelImpl) Delete(configIds []int64) {
err := global.Db.Table(m.table).Delete(&entity.SysConfig{}, "config_id in (?)", configIds).Error
biz.ErrIsNil(err, "删除配置信息失败")
return
func (m *sysSysConfigModelImpl) Delete(configIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysConfig{}, "config_id in (?)", configIds).Error
}

View File

@@ -2,18 +2,17 @@ package services
import (
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysDictDataModel interface {
Insert(data entity.SysDictData) *entity.SysDictData
FindOne(dictCode int64) *entity.SysDictData
FindListPage(page, pageSize int, data entity.SysDictData) (*[]entity.SysDictData, int64)
FindList(data entity.SysDictData) *[]entity.SysDictData
Update(data entity.SysDictData) *entity.SysDictData
Delete(dictCode []int64)
Insert(data entity.SysDictData) (*entity.SysDictData, error)
FindOne(dictCode int64) (*entity.SysDictData, error)
FindListPage(page, pageSize int, data entity.SysDictData) (*[]entity.SysDictData, int64, error)
FindList(data entity.SysDictData) (*[]entity.SysDictData, error)
Update(data entity.SysDictData) error
Delete(dictCode []int64) error
}
sysDictDataModelImpl struct {
@@ -25,20 +24,18 @@ var SysDictDataModelDao SysDictDataModel = &sysDictDataModelImpl{
table: `sys_dict_data`,
}
func (m *sysDictDataModelImpl) Insert(data entity.SysDictData) *entity.SysDictData {
func (m *sysDictDataModelImpl) Insert(data entity.SysDictData) (*entity.SysDictData, error) {
err := global.Db.Table(m.table).Create(&data).Error
biz.ErrIsNil(err, "新增字典数据失败")
return &data
return &data, err
}
func (m *sysDictDataModelImpl) FindOne(codeId int64) *entity.SysDictData {
func (m *sysDictDataModelImpl) FindOne(codeId int64) (*entity.SysDictData, error) {
resData := new(entity.SysDictData)
err := global.Db.Table(m.table).Where("dict_code = ?", codeId).First(resData).Error
biz.ErrIsNil(err, "查询字典数据信息失败")
return resData
return resData, err
}
func (m *sysDictDataModelImpl) FindListPage(page, pageSize int, data entity.SysDictData) (*[]entity.SysDictData, int64) {
func (m *sysDictDataModelImpl) FindListPage(page, pageSize int, data entity.SysDictData) (*[]entity.SysDictData, int64, error) {
list := make([]entity.SysDictData, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -56,12 +53,14 @@ func (m *sysDictDataModelImpl) FindListPage(page, pageSize int, data entity.SysD
}
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
if err != nil {
return nil, 0, err
}
err = db.Order("dict_sort").Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询字典数据分页列表信息失败")
return &list, total
return &list, total, err
}
func (m *sysDictDataModelImpl) FindList(data entity.SysDictData) *[]entity.SysDictData {
func (m *sysDictDataModelImpl) FindList(data entity.SysDictData) (*[]entity.SysDictData, error) {
list := make([]entity.SysDictData, 0)
db := global.Db.Table(m.table)
@@ -77,18 +76,13 @@ func (m *sysDictDataModelImpl) FindList(data entity.SysDictData) *[]entity.SysDi
}
db.Where("delete_time IS NULL")
err := db.Order("dict_sort").Find(&list).Error
biz.ErrIsNil(err, "查询字典数据列表信息失败")
return &list
return &list, err
}
func (m *sysDictDataModelImpl) Update(data entity.SysDictData) *entity.SysDictData {
err := global.Db.Table(m.table).Where("dict_code = ?", data.DictCode).Updates(&data).Error
biz.ErrIsNil(err, "修改字典数据信息失败")
return &data
func (m *sysDictDataModelImpl) Update(data entity.SysDictData) error {
return global.Db.Table(m.table).Where("dict_code = ?", data.DictCode).Updates(&data).Error
}
func (m *sysDictDataModelImpl) Delete(codeIds []int64) {
err := global.Db.Table(m.table).Delete(&entity.SysOrganization{}, "dict_code in (?)", codeIds).Error
biz.ErrIsNil(err, "删除字典数据信息失败")
return
func (m *sysDictDataModelImpl) Delete(codeIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysOrganization{}, "dict_code in (?)", codeIds).Error
}

View File

@@ -2,18 +2,17 @@ package services
import (
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysDictTypeModel interface {
Insert(data entity.SysDictType) *entity.SysDictType
FindOne(organizationId int64) *entity.SysDictType
FindListPage(page, pageSize int, data entity.SysDictType) (*[]entity.SysDictType, int64)
FindList(data entity.SysDictType) *[]entity.SysDictType
Update(data entity.SysDictType) *entity.SysDictType
Delete(organizationId []int64)
Insert(data entity.SysDictType) (*entity.SysDictType, error)
FindOne(organizationId int64) (*entity.SysDictType, error)
FindListPage(page, pageSize int, data entity.SysDictType) (*[]entity.SysDictType, int64, error)
FindList(data entity.SysDictType) (*[]entity.SysDictType, error)
Update(data entity.SysDictType) error
Delete(organizationId []int64) error
}
sysDictTypeModelImpl struct {
@@ -25,20 +24,18 @@ var SysDictTypeModelDao SysDictTypeModel = &sysDictTypeModelImpl{
table: `sys_dict_types`,
}
func (m *sysDictTypeModelImpl) Insert(data entity.SysDictType) *entity.SysDictType {
func (m *sysDictTypeModelImpl) Insert(data entity.SysDictType) (*entity.SysDictType, error) {
err := global.Db.Table(m.table).Create(&data).Error
biz.ErrIsNil(err, "新增字典类型失败")
return &data
return &data, err
}
func (m *sysDictTypeModelImpl) FindOne(dictId int64) *entity.SysDictType {
func (m *sysDictTypeModelImpl) FindOne(dictId int64) (*entity.SysDictType, error) {
resData := new(entity.SysDictType)
err := global.Db.Table(m.table).Where("dict_id = ?", dictId).First(resData).Error
biz.ErrIsNil(err, "查询字典类型信息失败")
return resData
return resData, err
}
func (m *sysDictTypeModelImpl) FindListPage(page, pageSize int, data entity.SysDictType) (*[]entity.SysDictType, int64) {
func (m *sysDictTypeModelImpl) FindListPage(page, pageSize int, data entity.SysDictType) (*[]entity.SysDictType, int64, error) {
list := make([]entity.SysDictType, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -56,12 +53,14 @@ func (m *sysDictTypeModelImpl) FindListPage(page, pageSize int, data entity.SysD
}
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
if err != nil {
return nil, 0, err
}
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询字典类型分页列表信息失败")
return &list, total
return &list, total, err
}
func (m *sysDictTypeModelImpl) FindList(data entity.SysDictType) *[]entity.SysDictType {
func (m *sysDictTypeModelImpl) FindList(data entity.SysDictType) (*[]entity.SysDictType, error) {
list := make([]entity.SysDictType, 0)
db := global.Db.Table(m.table)
@@ -77,18 +76,13 @@ func (m *sysDictTypeModelImpl) FindList(data entity.SysDictType) *[]entity.SysDi
}
db.Where("delete_time IS NULL")
err := db.Order("create_time").Find(&list).Error
biz.ErrIsNil(err, "查询字典类型列表信息失败")
return &list
return &list, err
}
func (m *sysDictTypeModelImpl) Update(data entity.SysDictType) *entity.SysDictType {
err := global.Db.Table(m.table).Where("dict_id = ?", data.DictId).Updates(&data).Error
biz.ErrIsNil(err, "修改字典类型信息失败")
return &data
func (m *sysDictTypeModelImpl) Update(data entity.SysDictType) error {
return global.Db.Table(m.table).Where("dict_id = ?", data.DictId).Updates(&data).Error
}
func (m *sysDictTypeModelImpl) Delete(dictIds []int64) {
err := global.Db.Table(m.table).Delete(&entity.SysDictType{}, "dict_id in (?)", dictIds).Error
biz.ErrIsNil(err, "删除字典类型信息失败")
return
func (m *sysDictTypeModelImpl) Delete(dictIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysDictType{}, "dict_id in (?)", dictIds).Error
}

View File

@@ -2,22 +2,21 @@ package services
import (
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysMenuModel interface {
Insert(data entity.SysMenu) *entity.SysMenu
FindOne(menuId int64) *entity.SysMenu
FindListPage(page, pageSize int, data entity.SysMenu) (*[]entity.SysMenu, int64)
FindList(data entity.SysMenu) *[]entity.SysMenu
Update(data entity.SysMenu) *entity.SysMenu
Delete(menuId []int64)
SelectMenu(data entity.SysMenu) *[]entity.SysMenu
SelectMenuLable(data entity.SysMenu) *[]entity.MenuLable
SelectMenuRole(roleName string) *[]entity.SysMenu
GetMenuRole(data entity.MenuRole) *[]entity.MenuRole
Insert(data entity.SysMenu) (*entity.SysMenu, error)
FindOne(menuId int64) (*entity.SysMenu, error)
FindListPage(page, pageSize int, data entity.SysMenu) (*[]entity.SysMenu, int64, error)
FindList(data entity.SysMenu) (*[]entity.SysMenu, error)
Update(data entity.SysMenu) error
Delete(menuId []int64) error
SelectMenu(data entity.SysMenu) (*[]entity.SysMenu, error)
SelectMenuLable(data entity.SysMenu) (*[]entity.MenuLable, error)
SelectMenuRole(roleName string) (*[]entity.SysMenu, error)
GetMenuRole(data entity.MenuRole) (*[]entity.MenuRole, error)
}
sysMenuModelImpl struct {
@@ -29,20 +28,18 @@ var SysMenuModelDao SysMenuModel = &sysMenuModelImpl{
table: `sys_menus`,
}
func (m *sysMenuModelImpl) Insert(data entity.SysMenu) *entity.SysMenu {
func (m *sysMenuModelImpl) Insert(data entity.SysMenu) (*entity.SysMenu, error) {
err := global.Db.Table(m.table).Create(&data).Error
biz.ErrIsNil(err, "添加菜单失败")
return &data
return &data, err
}
func (m *sysMenuModelImpl) FindOne(menuId int64) *entity.SysMenu {
func (m *sysMenuModelImpl) FindOne(menuId int64) (*entity.SysMenu, error) {
resData := new(entity.SysMenu)
err := global.Db.Table(m.table).Where("menu_id = ?", menuId).First(resData).Error
biz.ErrIsNil(err, "查询菜单失败")
return resData
return resData, err
}
func (m *sysMenuModelImpl) FindListPage(page, pageSize int, data entity.SysMenu) (*[]entity.SysMenu, int64) {
func (m *sysMenuModelImpl) FindListPage(page, pageSize int, data entity.SysMenu) (*[]entity.SysMenu, int64, error) {
list := make([]entity.SysMenu, 0)
var total int64 = 0
@@ -52,11 +49,10 @@ func (m *sysMenuModelImpl) FindListPage(page, pageSize int, data entity.SysMenu)
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询分页菜单失败")
return &list, total
return &list, total, err
}
func (m *sysMenuModelImpl) FindList(data entity.SysMenu) *[]entity.SysMenu {
func (m *sysMenuModelImpl) FindList(data entity.SysMenu) (*[]entity.SysMenu, error) {
list := make([]entity.SysMenu, 0)
db := global.Db.Table(m.table)
@@ -78,25 +74,22 @@ func (m *sysMenuModelImpl) FindList(data entity.SysMenu) *[]entity.SysMenu {
}
db.Where("delete_time IS NULL")
err := db.Order("sort").Find(&list).Error
biz.ErrIsNil(err, "查询菜单列表失败")
return &list
return &list, err
}
func (m *sysMenuModelImpl) Update(data entity.SysMenu) *entity.SysMenu {
err := global.Db.Table(m.table).Select("*").Updates(data).Error
biz.ErrIsNil(err, "修改菜单失败")
return &data
func (m *sysMenuModelImpl) Update(data entity.SysMenu) error {
return global.Db.Table(m.table).Select("*").Updates(data).Error
}
func (m *sysMenuModelImpl) Delete(menuIds []int64) {
err := global.Db.Table(m.table).Delete(&entity.SysMenu{}, "menu_id in (?)", menuIds).Error
biz.ErrIsNil(err, "修改菜单失败")
return
func (m *sysMenuModelImpl) Delete(menuIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysMenu{}, "menu_id in (?)", menuIds).Error
}
func (m *sysMenuModelImpl) SelectMenu(data entity.SysMenu) *[]entity.SysMenu {
menuList := m.FindList(data)
func (m *sysMenuModelImpl) SelectMenu(data entity.SysMenu) (*[]entity.SysMenu, error) {
menuList, err := m.FindList(data)
if err != nil {
return nil, err
}
redData := make([]entity.SysMenu, 0)
ml := *menuList
for i := 0; i < len(ml); i++ {
@@ -106,12 +99,14 @@ func (m *sysMenuModelImpl) SelectMenu(data entity.SysMenu) *[]entity.SysMenu {
menusInfo := DiguiMenu(menuList, ml[i])
redData = append(redData, menusInfo)
}
return &redData
return &redData, nil
}
func (m *sysMenuModelImpl) SelectMenuLable(data entity.SysMenu) *[]entity.MenuLable {
menuList := m.FindList(data)
func (m *sysMenuModelImpl) SelectMenuLable(data entity.SysMenu) (*[]entity.MenuLable, error) {
menuList, err := m.FindList(data)
if err != nil {
return nil, err
}
redData := make([]entity.MenuLable, 0)
ml := *menuList
for i := 0; i < len(ml); i++ {
@@ -125,23 +120,25 @@ func (m *sysMenuModelImpl) SelectMenuLable(data entity.SysMenu) *[]entity.MenuLa
redData = append(redData, menusInfo)
}
return &redData
return &redData, nil
}
func (m *sysMenuModelImpl) GetMenuByRoleKey(roleKey string) *[]entity.SysMenu {
func (m *sysMenuModelImpl) GetMenuByRoleKey(roleKey string) (*[]entity.SysMenu, error) {
menus := make([]entity.SysMenu, 0)
db := global.Db.Table(m.table).Select("sys_menus.*").Joins("left join sys_role_menus on sys_role_menus.menu_id=sys_menus.menu_id")
db = db.Where("sys_role_menus.role_name=? and menu_type in ('M','C')", roleKey)
db.Where("sys_menus.delete_time IS NULL")
err := db.Order("sort").Find(&menus).Error
biz.ErrIsNil(err, "通过角色名查询菜单失败")
return &menus
return &menus, err
}
func (m *sysMenuModelImpl) SelectMenuRole(roleKey string) *[]entity.SysMenu {
func (m *sysMenuModelImpl) SelectMenuRole(roleKey string) (*[]entity.SysMenu, error) {
redData := make([]entity.SysMenu, 0)
menulist := m.GetMenuByRoleKey(roleKey)
menulist, err := m.GetMenuByRoleKey(roleKey)
if err != nil {
return nil, err
}
menuList := *menulist
redData = make([]entity.SysMenu, 0)
for i := 0; i < len(menuList); i++ {
@@ -152,9 +149,9 @@ func (m *sysMenuModelImpl) SelectMenuRole(roleKey string) *[]entity.SysMenu {
redData = append(redData, menusInfo)
}
return &redData
return &redData, nil
}
func (m *sysMenuModelImpl) GetMenuRole(data entity.MenuRole) *[]entity.MenuRole {
func (m *sysMenuModelImpl) GetMenuRole(data entity.MenuRole) (*[]entity.MenuRole, error) {
menus := make([]entity.MenuRole, 0)
db := global.Db.Table(m.table)
@@ -162,8 +159,8 @@ func (m *sysMenuModelImpl) GetMenuRole(data entity.MenuRole) *[]entity.MenuRole
db = db.Where("menu_name = ?", data.MenuName)
}
db.Where("delete_time IS NULL")
biz.ErrIsNil(db.Order("sort").Find(&menus).Error, "查询角色菜单失败")
return &menus
err := db.Order("sort").Find(&menus).Error
return &menus, err
}
func DiguiMenu(menulist *[]entity.SysMenu, menu entity.SysMenu) entity.SysMenu {

View File

@@ -2,17 +2,16 @@ package services
import (
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysNoticeModel interface {
Insert(data entity.SysNotice) *entity.SysNotice
FindOne(postId int64) *entity.SysNotice
FindListPage(page, pageSize int, data entity.SysNotice) (*[]entity.SysNotice, int64)
Update(data entity.SysNotice) *entity.SysNotice
Delete(postId []int64)
Insert(data entity.SysNotice) (*entity.SysNotice, error)
FindOne(postId int64) (*entity.SysNotice, error)
FindListPage(page, pageSize int, data entity.SysNotice) (*[]entity.SysNotice, int64, error)
Update(data entity.SysNotice) error
Delete(postId []int64) error
}
sysNoticeModelImpl struct {
@@ -24,20 +23,18 @@ var SysNoticeModelDao SysNoticeModel = &sysNoticeModelImpl{
table: `sys_notices`,
}
func (m *sysNoticeModelImpl) Insert(data entity.SysNotice) *entity.SysNotice {
func (m *sysNoticeModelImpl) Insert(data entity.SysNotice) (*entity.SysNotice, error) {
err := global.Db.Table(m.table).Create(&data).Error
biz.ErrIsNil(err, "添加通知失败")
return &data
return &data, err
}
func (m *sysNoticeModelImpl) FindOne(postId int64) *entity.SysNotice {
func (m *sysNoticeModelImpl) FindOne(postId int64) (*entity.SysNotice, error) {
resData := new(entity.SysNotice)
err := global.Db.Table(m.table).Where("post_id = ?", postId).First(resData).Error
biz.ErrIsNil(err, "查询通知失败")
return resData
return resData, err
}
func (m *sysNoticeModelImpl) FindListPage(page, pageSize int, data entity.SysNotice) (*[]entity.SysNotice, int64) {
func (m *sysNoticeModelImpl) FindListPage(page, pageSize int, data entity.SysNotice) (*[]entity.SysNotice, int64, error) {
list := make([]entity.SysNotice, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -55,15 +52,13 @@ func (m *sysNoticeModelImpl) FindListPage(page, pageSize int, data entity.SysNot
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
err = db.Order("create_time").Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询通知分页列表失败")
return &list, total
return &list, total, err
}
func (m *sysNoticeModelImpl) Update(data entity.SysNotice) *entity.SysNotice {
biz.ErrIsNil(global.Db.Table(m.table).Updates(&data).Error, "修改通知失败")
return &data
func (m *sysNoticeModelImpl) Update(data entity.SysNotice) error {
return global.Db.Table(m.table).Updates(&data).Error
}
func (m *sysNoticeModelImpl) Delete(postIds []int64) {
biz.ErrIsNil(global.Db.Table(m.table).Delete(&entity.SysNotice{}, "notice_id in (?)", postIds).Error, "删除通知失败")
func (m *sysNoticeModelImpl) Delete(postIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysNotice{}, "notice_id in (?)", postIds).Error
}

View File

@@ -3,7 +3,6 @@ package services
import (
"errors"
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
"github.com/kakuilan/kgo"
@@ -11,15 +10,15 @@ import (
type (
SysOrganizationModel interface {
Insert(data entity.SysOrganization) *entity.SysOrganization
FindOne(organizationId int64) *entity.SysOrganization
FindListPage(page, pageSize int, data entity.SysOrganization) (*[]entity.SysOrganization, int64)
FindList(data entity.SysOrganization) *[]entity.SysOrganization
Update(data entity.SysOrganization) *entity.SysOrganization
Delete(organizationId []int64)
SelectOrganization(data entity.SysOrganization) []entity.SysOrganization
SelectOrganizationLable(data entity.SysOrganization) []entity.OrganizationLable
SelectOrganizationIds(data entity.SysOrganization) []int64
Insert(data entity.SysOrganization) (*entity.SysOrganization, error)
FindOne(organizationId int64) (*entity.SysOrganization, error)
FindListPage(page, pageSize int, data entity.SysOrganization) (*[]entity.SysOrganization, int64, error)
FindList(data entity.SysOrganization) (*[]entity.SysOrganization, error)
Update(data entity.SysOrganization) error
Delete(organizationId []int64) error
SelectOrganization(data entity.SysOrganization) ([]entity.SysOrganization, error)
SelectOrganizationLable(data entity.SysOrganization) ([]entity.OrganizationLable, error)
SelectOrganizationIds(data entity.SysOrganization) ([]int64, error)
}
sysOrganizationModelImpl struct {
@@ -31,28 +30,33 @@ var SysOrganizationModelDao SysOrganizationModel = &sysOrganizationModelImpl{
table: `sys_organizations`,
}
func (m *sysOrganizationModelImpl) Insert(data entity.SysOrganization) *entity.SysOrganization {
biz.ErrIsNil(global.Db.Table(m.table).Create(&data).Error, "新增组织信息失败")
func (m *sysOrganizationModelImpl) Insert(data entity.SysOrganization) (*entity.SysOrganization, error) {
err := global.Db.Table(m.table).Create(&data).Error
if err != nil {
return nil, err
}
organizationPath := "/" + kgo.KConv.Int2Str(data.OrganizationId)
if int(data.ParentId) != 0 {
organizationP := m.FindOne(data.ParentId)
organizationP, err := m.FindOne(data.ParentId)
if err != nil {
return nil, err
}
organizationPath = organizationP.OrganizationPath + organizationPath
} else {
organizationPath = "/0" + organizationPath
}
data.OrganizationPath = organizationPath
biz.ErrIsNil(global.Db.Table(m.table).Model(&data).Updates(&data).Error, "修改组织信息失败")
return &data
err = global.Db.Table(m.table).Model(&data).Updates(&data).Error
return &data, err
}
func (m *sysOrganizationModelImpl) FindOne(organizationId int64) *entity.SysOrganization {
func (m *sysOrganizationModelImpl) FindOne(organizationId int64) (*entity.SysOrganization, error) {
resData := new(entity.SysOrganization)
err := global.Db.Table(m.table).Where("organization_id = ?", organizationId).First(resData).Error
biz.ErrIsNil(err, "查询组织信息失败")
return resData
return resData, err
}
func (m *sysOrganizationModelImpl) FindListPage(page, pageSize int, data entity.SysOrganization) (*[]entity.SysOrganization, int64) {
func (m *sysOrganizationModelImpl) FindListPage(page, pageSize int, data entity.SysOrganization) (*[]entity.SysOrganization, int64, error) {
list := make([]entity.SysOrganization, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -74,11 +78,10 @@ func (m *sysOrganizationModelImpl) FindListPage(page, pageSize int, data entity.
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询组织分页列表信息失败")
return &list, total
return &list, total, err
}
func (m *sysOrganizationModelImpl) FindList(data entity.SysOrganization) *[]entity.SysOrganization {
func (m *sysOrganizationModelImpl) FindList(data entity.SysOrganization) (*[]entity.SysOrganization, error) {
list := make([]entity.SysOrganization, 0)
db := global.Db.Table(m.table)
@@ -94,16 +97,20 @@ func (m *sysOrganizationModelImpl) FindList(data entity.SysOrganization) *[]enti
}
db.Where("delete_time IS NULL")
err := db.Order("sort").Find(&list).Error
biz.ErrIsNil(err, "查询组织列表信息失败")
return &list
return &list, err
}
func (m *sysOrganizationModelImpl) Update(data entity.SysOrganization) *entity.SysOrganization {
one := m.FindOne(data.OrganizationId)
func (m *sysOrganizationModelImpl) Update(data entity.SysOrganization) error {
one, err := m.FindOne(data.OrganizationId)
if err != nil {
return err
}
organizationPath := "/" + kgo.KConv.Int2Str(data.OrganizationId)
if int(data.ParentId) != 0 {
organizationP := m.FindOne(data.ParentId)
organizationP, err := m.FindOne(data.ParentId)
if err != nil {
return err
}
organizationPath = organizationP.OrganizationPath + organizationPath
} else {
organizationPath = "/0" + organizationPath
@@ -111,21 +118,21 @@ func (m *sysOrganizationModelImpl) Update(data entity.SysOrganization) *entity.S
data.OrganizationPath = organizationPath
if data.OrganizationPath != "" && data.OrganizationPath != one.OrganizationPath {
biz.ErrIsNil(errors.New("上级组织不允许修改!"), "上级组织不允许修改")
return errors.New("上级组织不允许修改!")
}
biz.ErrIsNil(global.Db.Table(m.table).Model(&data).Updates(&data).Error, "修改组织信息失败")
return &data
err = global.Db.Table(m.table).Model(&data).Updates(&data).Error
return err
}
func (m *sysOrganizationModelImpl) Delete(organizationIds []int64) {
err := global.Db.Table(m.table).Delete(&entity.SysOrganization{}, "organization_id in (?)", organizationIds).Error
biz.ErrIsNil(err, "删除组织信息失败")
return
func (m *sysOrganizationModelImpl) Delete(organizationIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysOrganization{}, "organization_id in (?)", organizationIds).Error
}
func (m *sysOrganizationModelImpl) SelectOrganization(data entity.SysOrganization) []entity.SysOrganization {
list := m.FindList(data)
func (m *sysOrganizationModelImpl) SelectOrganization(data entity.SysOrganization) ([]entity.SysOrganization, error) {
list, err := m.FindList(data)
if err != nil {
return nil, err
}
sd := make([]entity.SysOrganization, 0)
li := *list
for i := 0; i < len(li); i++ {
@@ -136,12 +143,14 @@ func (m *sysOrganizationModelImpl) SelectOrganization(data entity.SysOrganizatio
sd = append(sd, info)
}
return sd
return sd, nil
}
func (m *sysOrganizationModelImpl) SelectOrganizationLable(data entity.SysOrganization) []entity.OrganizationLable {
organizationlist := m.FindList(data)
func (m *sysOrganizationModelImpl) SelectOrganizationLable(data entity.SysOrganization) ([]entity.OrganizationLable, error) {
organizationlist, err := m.FindList(data)
if err != nil {
return nil, err
}
dl := make([]entity.OrganizationLable, 0)
organizationl := *organizationlist
for i := 0; i < len(organizationl); i++ {
@@ -155,11 +164,14 @@ func (m *sysOrganizationModelImpl) SelectOrganizationLable(data entity.SysOrgani
dl = append(dl, organizationsInfo)
}
return dl
return dl, nil
}
func (m *sysOrganizationModelImpl) SelectOrganizationIds(data entity.SysOrganization) []int64 {
organizationlist := m.FindList(data)
func (m *sysOrganizationModelImpl) SelectOrganizationIds(data entity.SysOrganization) ([]int64, error) {
organizationlist, err := m.FindList(data)
if err != nil {
return nil, err
}
dl := make([]int64, 0)
organizationl := *organizationlist
for i := 0; i < len(organizationl); i++ {
@@ -173,7 +185,7 @@ func (m *sysOrganizationModelImpl) SelectOrganizationIds(data entity.SysOrganiza
id := DiguiOrganizationId(organizationlist, e)
dl = append(dl, id...)
}
return dl
return dl, nil
}
func Digui(organizationlist *[]entity.SysOrganization, menu entity.SysOrganization) entity.SysOrganization {

View File

@@ -2,18 +2,17 @@ package services
import (
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysPostModel interface {
Insert(data entity.SysPost) *entity.SysPost
FindOne(postId int64) *entity.SysPost
FindListPage(page, pageSize int, data entity.SysPost) (*[]entity.SysPost, int64)
FindList(data entity.SysPost) *[]entity.SysPost
Update(data entity.SysPost) *entity.SysPost
Delete(postId []int64)
Insert(data entity.SysPost) (*entity.SysPost, error)
FindOne(postId int64) (*entity.SysPost, error)
FindListPage(page, pageSize int, data entity.SysPost) (*[]entity.SysPost, int64, error)
FindList(data entity.SysPost) (*[]entity.SysPost, error)
Update(data entity.SysPost) error
Delete(postId []int64) error
}
sysPostModelImpl struct {
@@ -25,20 +24,18 @@ var SysPostModelDao SysPostModel = &sysPostModelImpl{
table: `sys_posts`,
}
func (m *sysPostModelImpl) Insert(data entity.SysPost) *entity.SysPost {
func (m *sysPostModelImpl) Insert(data entity.SysPost) (*entity.SysPost, error) {
err := global.Db.Table(m.table).Create(&data).Error
biz.ErrIsNil(err, "添加岗位失败")
return &data
return &data, err
}
func (m *sysPostModelImpl) FindOne(postId int64) *entity.SysPost {
func (m *sysPostModelImpl) FindOne(postId int64) (*entity.SysPost, error) {
resData := new(entity.SysPost)
err := global.Db.Table(m.table).Where("post_id = ?", postId).First(resData).Error
biz.ErrIsNil(err, "查询岗位失败")
return resData
return resData, err
}
func (m *sysPostModelImpl) FindListPage(page, pageSize int, data entity.SysPost) (*[]entity.SysPost, int64) {
func (m *sysPostModelImpl) FindListPage(page, pageSize int, data entity.SysPost) (*[]entity.SysPost, int64, error) {
list := make([]entity.SysPost, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -59,11 +56,10 @@ func (m *sysPostModelImpl) FindListPage(page, pageSize int, data entity.SysPost)
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
err = db.Order("sort").Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询岗位分页列表失败")
return &list, total
return &list, total, err
}
func (m *sysPostModelImpl) FindList(data entity.SysPost) *[]entity.SysPost {
func (m *sysPostModelImpl) FindList(data entity.SysPost) (*[]entity.SysPost, error) {
list := make([]entity.SysPost, 0)
db := global.Db.Table(m.table)
// 此处填写 where参数判断
@@ -80,15 +76,14 @@ func (m *sysPostModelImpl) FindList(data entity.SysPost) *[]entity.SysPost {
db = db.Where("status = ?", data.Status)
}
db.Where("delete_time IS NULL")
biz.ErrIsNil(db.Order("sort").Find(&list).Error, "查询岗位列表失败")
return &list
err := db.Order("sort").Find(&list).Error
return &list, err
}
func (m *sysPostModelImpl) Update(data entity.SysPost) *entity.SysPost {
biz.ErrIsNil(global.Db.Table(m.table).Updates(&data).Error, "修改岗位失败")
return &data
func (m *sysPostModelImpl) Update(data entity.SysPost) error {
return global.Db.Table(m.table).Updates(&data).Error
}
func (m *sysPostModelImpl) Delete(postIds []int64) {
biz.ErrIsNil(global.Db.Table(m.table).Delete(&entity.SysPost{}, "post_id in (?)", postIds).Error, "删除岗位失败")
func (m *sysPostModelImpl) Delete(postIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysPost{}, "post_id in (?)", postIds).Error
}

View File

@@ -3,20 +3,19 @@ package services
import (
"errors"
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysRoleModel interface {
Insert(data entity.SysRole) *entity.SysRole
FindOne(roleId int64) *entity.SysRole
FindListPage(page, pageSize int, data entity.SysRole) (list *[]entity.SysRole, total int64)
FindList(data entity.SysRole) (list *[]entity.SysRole)
Update(data entity.SysRole) *entity.SysRole
Delete(roleId []int64)
GetRoleMeunId(data entity.SysRole) []int64
GetRoleOrganizationId(data entity.SysRole) []int64
Insert(data entity.SysRole) (*entity.SysRole, error)
FindOne(roleId int64) (*entity.SysRole, error)
FindListPage(page, pageSize int, data entity.SysRole) (list *[]entity.SysRole, total int64, err error)
FindList(data entity.SysRole) (list *[]entity.SysRole, err error)
Update(data entity.SysRole) (*entity.SysRole, error)
Delete(roleId []int64) error
GetRoleMeunId(data entity.SysRole) ([]int64, error)
GetRoleOrganizationId(data entity.SysRole) ([]int64, error)
FindOrganizationsByRoleId(roleId int64) (entity.SysRoleAuth, error)
}
@@ -29,25 +28,25 @@ var SysRoleModelDao SysRoleModel = &sysRoleModel{
table: `sys_roles`,
}
func (m *sysRoleModel) Insert(data entity.SysRole) *entity.SysRole {
func (m *sysRoleModel) Insert(data entity.SysRole) (*entity.SysRole, error) {
var i int64 = 0
global.Db.Table(m.table).Where("(role_name = ? or role_key = ?) and delete_time IS NULL", data.RoleName, data.RoleKey).Count(&i)
biz.IsTrue(i == 0, "角色名称或者角色标识已经存在!")
if i != 0 {
return nil, errors.New("角色名称或者角色标识已经存在!")
}
data.UpdateBy = ""
err := global.Db.Table(m.table).Create(&data).Error
biz.ErrIsNil(err, "添加角色失败")
return &data
return &data, err
}
func (m *sysRoleModel) FindOne(roleId int64) *entity.SysRole {
func (m *sysRoleModel) FindOne(roleId int64) (*entity.SysRole, error) {
resData := new(entity.SysRole)
biz.ErrIsNil(global.Db.Table(m.table).Where("role_id = ?", roleId).First(resData).Error, "查询角色失败")
return resData
err := global.Db.Table(m.table).Where("role_id = ?", roleId).First(resData).Error
return resData, err
}
func (m *sysRoleModel) FindListPage(page, pageSize int, data entity.SysRole) (*[]entity.SysRole, int64) {
func (m *sysRoleModel) FindListPage(page, pageSize int, data entity.SysRole) (*[]entity.SysRole, int64, error) {
list := make([]entity.SysRole, 0)
var total int64 = 0
@@ -70,11 +69,10 @@ func (m *sysRoleModel) FindListPage(page, pageSize int, data entity.SysRole) (*[
db.Where("delete_time IS NULL")
err := db.Count(&total).Error
err = db.Order("role_sort").Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询角色分页列表失败")
return &list, total
return &list, total, err
}
func (m *sysRoleModel) FindList(data entity.SysRole) *[]entity.SysRole {
func (m *sysRoleModel) FindList(data entity.SysRole) (*[]entity.SysRole, error) {
list := make([]entity.SysRole, 0)
db := global.Db.Table(m.table)
// 此处填写 where参数判断
@@ -88,48 +86,53 @@ func (m *sysRoleModel) FindList(data entity.SysRole) *[]entity.SysRole {
db = db.Where("role_key like ?", "%"+data.RoleKey+"%")
}
db.Where("delete_time IS NULL")
biz.ErrIsNil(db.Order("role_sort").Find(&list).Error, "查询角色列表失败")
return &list
err := db.Order("role_sort").Find(&list).Error
return &list, err
}
func (m *sysRoleModel) Update(data entity.SysRole) *entity.SysRole {
func (m *sysRoleModel) Update(data entity.SysRole) (*entity.SysRole, error) {
update := new(entity.SysRole)
biz.ErrIsNil(global.Db.Table(m.table).First(update, data.RoleId).Error, "查询角色失败")
if data.RoleKey != "" && data.RoleKey != update.RoleKey {
biz.ErrIsNil(errors.New("角色标识不允许修改!"), "角色标识不允许修改!")
err := global.Db.Table(m.table).First(update, data.RoleId).Error
if err != nil {
return nil, err
}
biz.ErrIsNil(global.Db.Table(m.table).Updates(&data).Error, "修改角色失败")
return &data
if data.RoleKey != "" && data.RoleKey != update.RoleKey {
return nil, errors.New("角色标识不允许修改!")
}
err = global.Db.Table(m.table).Updates(&data).Error
return &data, err
}
func (m *sysRoleModel) Delete(roleIds []int64) {
biz.ErrIsNil(global.Db.Table(m.table).Delete(&entity.SysRole{}, "role_id in (?)", roleIds).Error, "删除角色失败")
return
func (m *sysRoleModel) Delete(roleIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysRole{}, "role_id in (?)", roleIds).Error
}
// 获取角色对应的菜单ids
func (m *sysRoleModel) GetRoleMeunId(data entity.SysRole) []int64 {
func (m *sysRoleModel) GetRoleMeunId(data entity.SysRole) ([]int64, error) {
menuIds := make([]int64, 0)
menuList := make([]entity.MenuIdList, 0)
err := global.Db.Table("sys_menus").Select("sys_menus.menu_id").Joins("LEFT JOIN sys_role_menus on sys_role_menus.menu_id=sys_menus.menu_id").Where("sys_role_menus.role_id = ? ", data.RoleId).Where("sys_menus.menu_id not in (select sys_menus.parent_id from sys_menus LEFT JOIN sys_role_menus on sys_menus.menu_id=sys_role_menus.menu_id where sys_role_menus.role_id =? )", data.RoleId).Find(&menuList).Error
biz.ErrIsNil(err, "查询角色菜单列表失败")
if err != nil {
return nil, err
}
for i := 0; i < len(menuList); i++ {
menuIds = append(menuIds, menuList[i].MenuId)
}
return menuIds
return menuIds, nil
}
func (m *sysRoleModel) GetRoleOrganizationId(data entity.SysRole) []int64 {
func (m *sysRoleModel) GetRoleOrganizationId(data entity.SysRole) ([]int64, error) {
organizationIds := make([]int64, 0)
organizationList := make([]entity.OrganizationIdList, 0)
err := global.Db.Table("sys_role_organizations").Select("sys_role_organizations.organization_id").Joins("LEFT JOIN sys_organizations on sys_organizations.organization_id=sys_role_organizations.organization_id").Where("role_id = ? ", data.RoleId).Where(" sys_role_organizations.organization_id not in(select sys_organizations.parent_id from sys_role_organizations LEFT JOIN sys_organizations on sys_organizations.organization_id=sys_role_organizations.organization_id where role_id =? )", data.RoleId).Find(&organizationList).Error
biz.ErrIsNil(err, "查询角色组织列表失败")
if err != nil {
return nil, err
}
for i := 0; i < len(organizationList); i++ {
organizationIds = append(organizationIds, organizationList[i].OrganizationId)
}
return organizationIds
return organizationIds, nil
}
func (m *sysRoleModel) FindOrganizationsByRoleId(roleId int64) (entity.SysRoleAuth, error) {

View File

@@ -2,20 +2,19 @@ package services
import (
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysRoleMenuModel interface {
Insert(roleId int64, menuId []int64) bool
FindList(data entity.SysRoleMenu) *[]entity.SysRoleMenu
Update(data entity.SysRoleMenu) *entity.SysRoleMenu
Delete(RoleId int64, MenuID int64)
GetPermis(roleId int64) []string
GetMenuPaths(rm entity.SysRoleMenu) []entity.MenuPath
DeleteRoleMenu(RoleId int64)
DeleteRoleMenus(roleIds []int64)
Insert(roleId int64, menuId []int64) error
FindList(data entity.SysRoleMenu) (*[]entity.SysRoleMenu, error)
Update(data entity.SysRoleMenu) error
Delete(RoleId int64, MenuID int64) error
GetPermis(roleId int64) ([]string, error)
GetMenuPaths(rm entity.SysRoleMenu) ([]entity.MenuPath, error)
DeleteRoleMenu(RoleId int64) error
DeleteRoleMenus(roleIds []int64) error
}
sysRoleMenuImpl struct {
@@ -27,36 +26,38 @@ var SysRoleMenuModelDao SysRoleMenuModel = &sysRoleMenuImpl{
table: `sys_role_menus`,
}
func (m *sysRoleMenuImpl) Insert(roleId int64, menuId []int64) bool {
func (m *sysRoleMenuImpl) Insert(roleId int64, menuId []int64) error {
var role entity.SysRole
biz.ErrIsNil(global.Db.Table("sys_roles").Where("role_id = ?", roleId).First(&role).Error, "查询角色失败")
err := global.Db.Table("sys_roles").Where("role_id = ?", roleId).First(&role).Error
if err != nil {
return err
}
var menu []entity.SysMenu
biz.ErrIsNil(global.Db.Table("sys_menus").Where("menu_id in (?)", menuId).Find(&menu).Error, "查询菜单失败")
err = global.Db.Table("sys_menus").Where("menu_id in (?)", menuId).Find(&menu).Error
if err != nil {
return err
}
menus := make([]entity.SysRoleMenu, 0)
for i := 0; i < len(menu); i++ {
menus = append(menus, entity.SysRoleMenu{RoleId: role.RoleId, MenuId: menu[i].MenuId, RoleName: role.RoleKey})
}
biz.ErrIsNil(global.Db.CreateInBatches(&menus, len(menus)).Error, "新增角色菜单失败")
return true
return global.Db.CreateInBatches(&menus, len(menus)).Error
}
func (m *sysRoleMenuImpl) FindList(data entity.SysRoleMenu) *[]entity.SysRoleMenu {
func (m *sysRoleMenuImpl) FindList(data entity.SysRoleMenu) (*[]entity.SysRoleMenu, error) {
list := make([]entity.SysRoleMenu, 0)
db := global.Db.Table(m.table)
// 此处填写 where参数判断
if data.RoleId != 0 {
db = db.Where("role_id = ?", data.RoleId)
}
biz.ErrIsNil(db.Find(&list).Error, "查询角色菜单失败")
return &list
err := db.Find(&list).Error
return &list, err
}
// 查询权限标识
func (m *sysRoleMenuImpl) GetPermis(roleId int64) []string {
func (m *sysRoleMenuImpl) GetPermis(roleId int64) ([]string, error) {
var r []entity.SysMenu
db := global.Db.Select("sys_menus.permission").Table("sys_menus").Joins("left join sys_role_menus on sys_menus.menu_id = sys_role_menus.menu_id")
@@ -64,45 +65,43 @@ func (m *sysRoleMenuImpl) GetPermis(roleId int64) []string {
db = db.Where("sys_menus.menu_type in ('F','C')")
biz.ErrIsNil(db.Find(&r).Error, "查询查询权限标识列表失败")
err := db.Find(&r).Error
if err != nil {
return nil, err
}
var list []string
for i := 0; i < len(r); i++ {
list = append(list, r[i].Permission)
}
return list
return list, nil
}
func (m *sysRoleMenuImpl) GetMenuPaths(rm entity.SysRoleMenu) []entity.MenuPath {
func (m *sysRoleMenuImpl) GetMenuPaths(rm entity.SysRoleMenu) ([]entity.MenuPath, error) {
var r []entity.MenuPath
db := global.Db.Select("sys_menus.path").Table(m.table)
db = db.Joins("left join sys_roles on sys_roles.role_id=sys_role_menus.role_id")
db = db.Joins("left join sys_menus on sys_menus.id=sys_role_menus.menu_id")
db = db.Where("sys_roles.role_key = ? and sys_menus.type=1", rm.RoleName)
biz.ErrIsNil(db.Find(&r).Error, "查询菜单路径失败")
return r
err := db.Find(&r).Error
return r, err
}
func (m *sysRoleMenuImpl) Update(data entity.SysRoleMenu) *entity.SysRoleMenu {
biz.ErrIsNil(global.Db.Table(m.table).Updates(&data).Error, "修改菜单失败")
return &data
func (m *sysRoleMenuImpl) Update(data entity.SysRoleMenu) error {
return global.Db.Table(m.table).Updates(&data).Error
}
func (m *sysRoleMenuImpl) DeleteRoleMenu(roleId int64) {
func (m *sysRoleMenuImpl) DeleteRoleMenu(roleId int64) error {
var rm entity.SysRoleMenu
if err := global.Db.Table(m.table).Where("role_id = ?", roleId).Delete(&rm).Error; err != nil {
biz.ErrIsNil(err, "删除角色菜单失败")
}
return
return global.Db.Table(m.table).Where("role_id = ?", roleId).Delete(&rm).Error
}
func (m *sysRoleMenuImpl) DeleteRoleMenus(roleIds []int64) {
func (m *sysRoleMenuImpl) DeleteRoleMenus(roleIds []int64) error {
var rm entity.SysRoleMenu
biz.ErrIsNil(global.Db.Table(m.table).Where("role_id in (?)", roleIds).Delete(&rm).Error, "批量删除角色菜单失败")
return global.Db.Table(m.table).Where("role_id in (?)", roleIds).Delete(&rm).Error
}
func (m *sysRoleMenuImpl) Delete(RoleId int64, MenuID int64) {
func (m *sysRoleMenuImpl) Delete(RoleId int64, MenuID int64) error {
var rm entity.SysRoleMenu
rm.RoleId = RoleId
db := global.Db.Table(m.table).Where("role_id = ?", RoleId)
@@ -110,7 +109,6 @@ func (m *sysRoleMenuImpl) Delete(RoleId int64, MenuID int64) {
db = db.Where("menu_id = ?", MenuID)
}
biz.ErrIsNil(db.Delete(&rm).Error, "删除角色菜单失败")
return
return db.Delete(&rm).Error
}

View File

@@ -3,15 +3,14 @@ package services
import (
"fmt"
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
)
type (
SysRoleOrganizationModel interface {
Insert(roleId int64, organizationIds []int64) bool
Insert(roleId int64, organizationIds []int64) error
FindOrganizationsByRoleId(roleId int64) ([]int64, error)
Delete(rm entity.SysRoleOrganization)
Delete(rm entity.SysRoleOrganization) error
}
sysRoleOrganizationImpl struct {
@@ -23,7 +22,7 @@ var SysRoleOrganizationModelDao SysRoleOrganizationModel = &sysRoleOrganizationI
table: `sys_role_organizations`,
}
func (m *sysRoleOrganizationImpl) Insert(roleId int64, organizationIds []int64) bool {
func (m *sysRoleOrganizationImpl) Insert(roleId int64, organizationIds []int64) error {
sql := "INSERT INTO sys_role_organizations (role_id, organization_id) VALUES "
for i := 0; i < len(organizationIds); i++ {
@@ -34,8 +33,8 @@ func (m *sysRoleOrganizationImpl) Insert(roleId int64, organizationIds []int64)
sql += fmt.Sprintf("(%d,%d),", roleId, organizationIds[i])
}
}
global.Db.Exec(sql)
return true
return global.Db.Exec(sql).Error
}
func (m *sysRoleOrganizationImpl) FindOrganizationsByRoleId(roleId int64) ([]int64, error) {
@@ -44,7 +43,6 @@ func (m *sysRoleOrganizationImpl) FindOrganizationsByRoleId(roleId int64) ([]int
return result, err
}
func (m *sysRoleOrganizationImpl) Delete(rm entity.SysRoleOrganization) {
biz.ErrIsNil(global.Db.Table(m.table).Where("role_id = ?", rm.RoleId).Delete(&rm).Error, "删除角色失败")
return
func (m *sysRoleOrganizationImpl) Delete(rm entity.SysRoleOrganization) error {
return global.Db.Table(m.table).Where("role_id = ?", rm.RoleId).Delete(&rm).Error
}

View File

@@ -1,8 +1,8 @@
package services
import (
"errors"
"pandax/apps/system/entity"
"pandax/kit/biz"
"pandax/pkg/global"
"github.com/kakuilan/kgo"
@@ -11,14 +11,14 @@ import (
type (
SysUserModel interface {
Login(u entity.Login) *entity.SysUser
Insert(data entity.SysUser) *entity.SysUser
FindOne(data entity.SysUser) (resData *entity.SysUserView)
FindListPage(page, pageSize int, data entity.SysUser) (list *[]entity.SysUserPage, total int64)
FindList(data entity.SysUser) (list *[]entity.SysUserView)
Update(data entity.SysUser) *entity.SysUser
Delete(userId []int64)
SetPwd(data entity.SysUser, pwd entity.SysUserPwd) bool
Login(u entity.Login) (*entity.SysUser, error)
Insert(data entity.SysUser) (*entity.SysUser, error)
FindOne(data entity.SysUser) (resData *entity.SysUserView, err error)
FindListPage(page, pageSize int, data entity.SysUser) (list *[]entity.SysUserPage, total int64, err error)
FindList(data entity.SysUser) (list *[]entity.SysUserView, err error)
Update(data entity.SysUser) error
Delete(userId []int64) error
SetPwd(data entity.SysUser, pwd entity.SysUserPwd) error
}
sysUserModelImpl struct {
@@ -30,33 +30,36 @@ var SysUserModelDao SysUserModel = &sysUserModelImpl{
table: `sys_users`,
}
func (m *sysUserModelImpl) Login(u entity.Login) *entity.SysUser {
func (m *sysUserModelImpl) Login(u entity.Login) (*entity.SysUser, error) {
user := new(entity.SysUser)
err := global.Db.Table(m.table).Where("username = ? ", u.Username).Find(user)
biz.ErrIsNil(err.Error, "查询用户信息失败")
err := global.Db.Table(m.table).Where("username = ? ", u.Username).Find(user).Error
if err != nil {
return nil, errors.New("查询用户信息失败")
}
// 验证密码
b := kgo.KEncr.PasswordVerify([]byte(u.Password), []byte(user.Password))
biz.IsTrue(b, "密码错误")
return user
if !b {
return nil, errors.New("密码错误")
}
return user, nil
}
func (m *sysUserModelImpl) Insert(data entity.SysUser) *entity.SysUser {
func (m *sysUserModelImpl) Insert(data entity.SysUser) (*entity.SysUser, error) {
bytes, _ := kgo.KEncr.PasswordHash([]byte(data.Password), bcrypt.DefaultCost)
data.Password = string(bytes)
// check 用户名
var count int64
global.Db.Table(m.table).Where("username = ? and delete_time IS NULL", data.Username).Count(&count)
biz.IsTrue(count == 0, "账户已存在!")
biz.ErrIsNil(global.Db.Table(m.table).Create(&data).Error, "添加用户失败")
return &data
if count != 0 {
return nil, errors.New("账户已存在!")
}
err := global.Db.Table(m.table).Create(&data).Error
return &data, err
}
func (m *sysUserModelImpl) FindOne(data entity.SysUser) *entity.SysUserView {
func (m *sysUserModelImpl) FindOne(data entity.SysUser) (*entity.SysUserView, error) {
resData := new(entity.SysUserView)
db := global.Db.Table(m.table).Select([]string{"sys_users.*", "sys_roles.role_name"})
@@ -79,12 +82,12 @@ func (m *sysUserModelImpl) FindOne(data entity.SysUser) *entity.SysUserView {
if data.PostId != 0 {
db = db.Where("post_id = ?", data.PostId)
}
biz.ErrIsNil(db.First(resData).Error, "查询用户失败")
err := db.First(resData).Error
return resData
return resData, err
}
func (m *sysUserModelImpl) FindListPage(page, pageSize int, data entity.SysUser) (*[]entity.SysUserPage, int64) {
func (m *sysUserModelImpl) FindListPage(page, pageSize int, data entity.SysUser) (*[]entity.SysUserPage, int64, error) {
list := make([]entity.SysUserPage, 0)
var total int64 = 0
offset := pageSize * (page - 1)
@@ -111,11 +114,10 @@ func (m *sysUserModelImpl) FindListPage(page, pageSize int, data entity.SysUser)
db.Where("sys_users.delete_time IS NULL")
err := db.Count(&total).Error
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询用户分页列表失败")
return &list, total
return &list, total, err
}
func (m *sysUserModelImpl) FindList(data entity.SysUser) *[]entity.SysUserView {
func (m *sysUserModelImpl) FindList(data entity.SysUser) (*[]entity.SysUserView, error) {
list := make([]entity.SysUserView, 0)
// 此处填写 where参数判断
db := global.Db.Table(m.table).Select([]string{"sys_users.*", "sys_roles.role_name"})
@@ -147,38 +149,43 @@ func (m *sysUserModelImpl) FindList(data entity.SysUser) *[]entity.SysUserView {
}
db.Where("sys_users.delete_time IS NULL")
biz.ErrIsNilAppendErr(db.Find(&list).Error, "查询用户列表失败")
err := db.Find(&list).Error
return &list
return &list, err
}
func (m *sysUserModelImpl) Update(data entity.SysUser) *entity.SysUser {
func (m *sysUserModelImpl) Update(data entity.SysUser) error {
if data.Password != "" {
bytes, _ := kgo.KEncr.PasswordHash([]byte(data.Password), bcrypt.DefaultCost)
data.Password = string(bytes)
}
update := new(entity.SysUser)
biz.ErrIsNil(global.Db.Table(m.table).First(update, data.UserId).Error, "查询用户失败")
err := global.Db.Table(m.table).First(update, data.UserId).Error
if err != nil {
return err
}
if data.RoleId == 0 {
data.RoleId = update.RoleId
}
biz.ErrIsNil(global.Db.Table(m.table).Updates(&data).Error, "修改用户失败")
return &data
return global.Db.Table(m.table).Updates(&data).Error
}
func (m *sysUserModelImpl) Delete(userIds []int64) {
biz.ErrIsNil(global.Db.Table(m.table).Delete(&entity.SysUser{}, "user_id in (?)", userIds).Error, "删除用户失败")
func (m *sysUserModelImpl) Delete(userIds []int64) error {
return global.Db.Table(m.table).Delete(&entity.SysUser{}, "user_id in (?)", userIds).Error
}
func (m *sysUserModelImpl) SetPwd(data entity.SysUser, pwd entity.SysUserPwd) bool {
user := m.FindOne(data)
func (m *sysUserModelImpl) SetPwd(data entity.SysUser, pwd entity.SysUserPwd) error {
user, err := m.FindOne(data)
if err != nil {
return err
}
bl := kgo.KEncr.PasswordVerify([]byte(pwd.OldPassword), []byte(user.Password))
biz.IsTrue(bl, "旧密码输入错误")
if !bl {
return errors.New("旧密码输入错误")
}
data.Password = pwd.NewPassword
m.Update(data)
return true
return m.Update(data)
}