mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-21 18:20:50 +00:00
refactor🎨: 调整行政区管理相关
This commit is contained in:
@@ -32,18 +32,15 @@ func (e SysChinaAreaData) GetPage(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//数据权限检查
|
|
||||||
p := actions.GetPermissionFromContext(c)
|
|
||||||
|
|
||||||
list := make([]models.SysChinaAreaData, 0)
|
list := make([]models.SysChinaAreaData, 0)
|
||||||
var count int64
|
err = s.GetPage(&req, &list).Error
|
||||||
err = s.GetPage(&req, p, &list, &count)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
e.Error(http.StatusInternalServerError, err, "查询失败")
|
e.Error(http.StatusInternalServerError, err, "查询失败")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
e.OK(list, "查询成功")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e SysChinaAreaData) Get(c *gin.Context) {
|
func (e SysChinaAreaData) Get(c *gin.Context) {
|
||||||
@@ -51,7 +48,7 @@ func (e SysChinaAreaData) Get(c *gin.Context) {
|
|||||||
req := dto.SysChinaAreaDataById{}
|
req := dto.SysChinaAreaDataById{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
Bind(&req, binding.Form).
|
Bind(&req, nil).
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
Errors
|
Errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -5,9 +5,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type SysChinaAreaData struct {
|
type SysChinaAreaData struct {
|
||||||
models.Model
|
Id int `json:"id" gorm:"primaryKey;comment:主键编码"`
|
||||||
PId string `json:"p_id" gorm:"size:11;comment:上级编码"`
|
PId int `json:"pId" gorm:"size:11;comment:上级编码"`
|
||||||
Name string `json:"name" gorm:"size:128;comment:名称"`
|
Name string `json:"name" gorm:"size:128;comment:名称"`
|
||||||
|
Children []SysChinaAreaData `json:"children,omitempty" gorm:"-"`
|
||||||
models.ControlBy
|
models.ControlBy
|
||||||
models.ModelTime
|
models.ModelTime
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
package dto
|
package dto
|
||||||
|
|
||||||
import (
|
import (
|
||||||
models2 "go-admin/app/other/models"
|
"go-admin/app/other/models"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||||
|
|
||||||
"go-admin/common/dto"
|
"go-admin/common/dto"
|
||||||
common "go-admin/common/models"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type SysChinaAreaDataSearch struct {
|
type SysChinaAreaDataSearch struct {
|
||||||
@@ -32,7 +31,7 @@ func (m *SysChinaAreaDataSearch) Bind(ctx *gin.Context) error {
|
|||||||
|
|
||||||
type SysChinaAreaDataControl struct {
|
type SysChinaAreaDataControl struct {
|
||||||
Id int `uri:"id" comment:"编码"` // 编码
|
Id int `uri:"id" comment:"编码"` // 编码
|
||||||
PId string `json:"pId" comment:"上级编码"`
|
PId int `json:"pId" comment:"上级编码"`
|
||||||
Name string `json:"name" comment:"名称"`
|
Name string `json:"name" comment:"名称"`
|
||||||
CreateTime time.Time `json:"createTime" comment:""`
|
CreateTime time.Time `json:"createTime" comment:""`
|
||||||
UpdateTime time.Time `json:"updateTime" comment:""`
|
UpdateTime time.Time `json:"updateTime" comment:""`
|
||||||
@@ -53,11 +52,11 @@ func (s *SysChinaAreaDataControl) Bind(ctx *gin.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SysChinaAreaDataControl) Generate() (*models2.SysChinaAreaData, error) {
|
func (s *SysChinaAreaDataControl) Generate() (*models.SysChinaAreaData, error) {
|
||||||
return &models2.SysChinaAreaData{
|
return &models.SysChinaAreaData{
|
||||||
Model: common.Model{Id: s.Id},
|
Id: s.Id,
|
||||||
PId: s.PId,
|
PId: s.PId,
|
||||||
Name: s.Name,
|
Name: s.Name,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,9 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||||
"go-admin/app/other/models"
|
"go-admin/app/other/models"
|
||||||
"go-admin/app/other/service/dto"
|
"go-admin/app/other/service/dto"
|
||||||
|
|
||||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
|
||||||
"go-admin/common/actions"
|
"go-admin/common/actions"
|
||||||
@@ -17,22 +16,46 @@ type SysChinaAreaData struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetPage 获取SysChinaAreaData列表
|
// GetPage 获取SysChinaAreaData列表
|
||||||
func (e *SysChinaAreaData) GetPage(c *dto.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models.SysChinaAreaData, count *int64) error {
|
func (e *SysChinaAreaData) GetPage(c *dto.SysChinaAreaDataSearch, list *[]models.SysChinaAreaData) *SysChinaAreaData {
|
||||||
var data models.SysChinaAreaData
|
var data models.SysChinaAreaData
|
||||||
|
var areaDataList []models.SysChinaAreaData
|
||||||
err := e.Orm.Model(&data).
|
err := e.Orm.Model(&data).
|
||||||
Scopes(
|
Scopes(
|
||||||
cDto.MakeCondition(c.GetNeedSearch()),
|
cDto.MakeCondition(c.GetNeedSearch()),
|
||||||
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
|
||||||
actions.Permission(data.TableName(), p),
|
|
||||||
).
|
).
|
||||||
Find(list).Limit(-1).Offset(-1).
|
Find(&areaDataList).Error
|
||||||
Count(count).Error
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Log.Errorf("Service GetSysChinaAreaDataPage error:%s", err)
|
e.Log.Errorf("Service GetSysChinaAreaDataPage error:%s", err)
|
||||||
return err
|
_ = e.AddError(err)
|
||||||
|
return e
|
||||||
}
|
}
|
||||||
return nil
|
for i := 0; i < len(areaDataList); i++ {
|
||||||
|
if areaDataList[i].PId != 86 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
menusInfo := areaDataCall(&areaDataList, areaDataList[i])
|
||||||
|
*list = append(*list, menusInfo)
|
||||||
|
}
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
|
||||||
|
// areaDataCall 构建树
|
||||||
|
func areaDataCall(areaDataList *[]models.SysChinaAreaData, areaData models.SysChinaAreaData) models.SysChinaAreaData {
|
||||||
|
list := *areaDataList
|
||||||
|
|
||||||
|
min := make([]models.SysChinaAreaData, 0)
|
||||||
|
for j := 0; j < len(list); j++ {
|
||||||
|
if areaData.Id != list[j].PId {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
mi := models.SysChinaAreaData{}
|
||||||
|
mi = list[j]
|
||||||
|
mi.Children = []models.SysChinaAreaData{}
|
||||||
|
ms := areaDataCall(areaDataList, mi)
|
||||||
|
min = append(min, ms)
|
||||||
|
}
|
||||||
|
areaData.Children = min
|
||||||
|
return areaData
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get 获取SysChinaAreaData对象
|
// Get 获取SysChinaAreaData对象
|
||||||
|
|||||||
Reference in New Issue
Block a user