1
This commit is contained in:
86
internal/app/system/logic/areaDict/area_dict.go
Normal file
86
internal/app/system/logic/areaDict/area_dict.go
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* @desc:用户处理
|
||||
* @company:云南奇讯科技有限公司
|
||||
* @Author: yixiaohu<yxh669@qq.com>
|
||||
* @Date: 2022/9/23 15:08
|
||||
*/
|
||||
|
||||
package tenant
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/gogf/gf/v2/container/gset"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/tiger1103/gfast/v3/api/v1/system"
|
||||
commonConsts "github.com/tiger1103/gfast/v3/internal/app/common/consts"
|
||||
commonService "github.com/tiger1103/gfast/v3/internal/app/common/service"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/dao"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/model"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/service"
|
||||
"github.com/tiger1103/gfast/v3/library/liberr"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterAreaDict(New())
|
||||
}
|
||||
|
||||
type sAreaDict struct {
|
||||
}
|
||||
|
||||
func New() *sAreaDict {
|
||||
return &sAreaDict{}
|
||||
}
|
||||
|
||||
func (s *sAreaDict) GetAreaDictListSearch(ctx context.Context, req *system.AreaDictListReq) (res *system.AreaDictListRes, err error) {
|
||||
res = new(system.AreaDictListRes)
|
||||
g.Try(ctx, func(ctx context.Context) {
|
||||
model := dao.AreaDictDao.Ctx(ctx)
|
||||
|
||||
res.Total, err = model.Count()
|
||||
liberr.ErrIsNil(ctx, err, "获取租户数据失败")
|
||||
if req.PageNum == 0 {
|
||||
req.PageNum = 1
|
||||
}
|
||||
res.CurrentPage = req.PageNum
|
||||
if req.PageSize == 0 {
|
||||
req.PageSize = consts.PageSize
|
||||
}
|
||||
err = model.Page(res.CurrentPage, req.PageSize).Order("id asc").Scan(&res.List)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// GetAreaDicById 通过ids查询多个地区信息
|
||||
func (s *sAreaDict) GetAreaDicById(ctx context.Context, ids []string) (area []*model.AreaDictRes, err error) {
|
||||
if len(ids) == 0 {
|
||||
return
|
||||
}
|
||||
idsSet := gset.NewStrSetFrom(ids).Slice()
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.AreaDictDao.Ctx(ctx).Where(dao.SysUser.Columns().Id+" in(?)", idsSet).
|
||||
Order(dao.AreaDictDao.Columns().Id + " ASC").Scan(&area)
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// GetAreaDict 获取所有正常状态下的
|
||||
func (s *sAreaDict) GetAreaDict(ctx context.Context) (list []*model.AreaDictRes, err error) {
|
||||
cache := commonService.Cache()
|
||||
//从缓存获取
|
||||
data := cache.Get(ctx, commonConsts.CacheSysDict+"_area")
|
||||
if !data.IsNil() {
|
||||
err = data.Structs(&list)
|
||||
return
|
||||
}
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.AreaDictDao.Ctx(ctx).Where("status", 1).Order("id ASC").Scan(&list)
|
||||
liberr.ErrIsNil(ctx, err, "获取字典类型数据出错")
|
||||
//缓存
|
||||
cache.Set(ctx, commonConsts.CacheSysDict+"_area", list, 0, commonConsts.CacheSysDictTag)
|
||||
})
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user