refactor🎨: 调整行政区管理相关

This commit is contained in:
zhangwenjian
2021-06-15 09:29:35 +08:00
parent f81c9c2ca0
commit 7699d8cf42
4 changed files with 48 additions and 28 deletions
+4 -7
View File
@@ -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 {
+4 -3
View File
@@ -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
} }
+7 -8
View File
@@ -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
} }
+33 -10
View File
@@ -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对象