3 Star 2 Fork 1

fotomxq/weeekj_core

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
lookup_get.go 3.18 KB
一键复制 编辑 原始数据 按行查看 历史
fotomxq 提交于 2025-02-05 18:52 +08:00 . 修改项目路径;
package BaseLookup
import (
CoreCache "gitee.com/fotomxq/weeekj_core/v5/core/cache"
CoreSQL2 "gitee.com/fotomxq/weeekj_core/v5/core/sql2"
Router2SystemConfig "gitee.com/fotomxq/weeekj_core/v5/router2/system_config"
)
type ArgsGetLookupList struct {
//分页参数
Pages CoreSQL2.ArgsPages `json:"pages"`
//是否为系统预设
IsSys bool `db:"is_sys" json:"isSys" check:"bool"`
//领域ID
DomainID int64 `db:"domain_id" json:"domainID" check:"id" empty:"true"`
//管理单元
UnitID int64 `db:"unit_id" json:"unitID" check:"id" empty:"true"`
//是否删除
IsRemove bool `json:"isRemove" check:"bool"`
//搜索
Search string `json:"search" check:"search" empty:"true"`
}
func GetLookupList(args *ArgsGetLookupList) (dataList []FieldsLookup, dataCount int64, err error) {
dataCount, err = lookupDB.Select().SetFieldsList([]string{"id"}).SetFieldsSort([]string{"id", "create_at", "update_at", "delete_at"}).SetPages(args.Pages).SelectList("((is_sys = $1) AND (domain_id = $2 OR $2 < 0) AND (unit_id = $3 OR $3 < 0) AND ((delete_at < to_timestamp(1000000) AND $4 = false) OR (delete_at >= to_timestamp(1000000) AND $4 = true)) AND (name LIKE $5 OR $5 = ''))", args.IsSys, args.DomainID, args.UnitID, args.IsRemove, "%"+args.Search+"%").ResultAndCount(&dataList)
if err != nil || len(dataList) < 1 {
return
}
for k, v := range dataList {
vData := getLookupID(v.ID)
if vData.ID < 1 {
continue
}
dataList[k] = vData
}
return
}
// GetLookupAll 获取所有数据
func GetLookupAll(domainID int64, unitID int64) (dataList []FieldsLookup, err error) {
err = lookupDB.DB.GetPostgresql().Select(&dataList, "SELECT id FROM base_lookup_child WHERE domain_id = $1 AND unit_id = $2 AND delete_at < to_timestamp(1000000)", domainID, unitID)
if err != nil {
return
}
if len(dataList) < 1 {
return
}
for k, v := range dataList {
vData := getLookupID(v.ID)
if vData.ID < 1 {
continue
}
dataList[k] = vData
}
return
}
func GetLookupID(id int64) (data FieldsLookup) {
data = getLookupID(id)
if data.ID < 1 {
return
}
return
}
func GetLookupCode(code string) (data FieldsLookup) {
cacheMark := getLookupCodeCacheMark(code)
if err := Router2SystemConfig.MainCache.GetStruct(cacheMark, &data); err == nil && data.ID > 0 {
data = getLookupID(data.ID)
if data.ID > 0 {
return
}
}
_ = lookupDB.Get().SetFieldsOne([]string{"id"}).NeedLimit().AppendWhere("code = $1", code).Result(&data)
if data.ID < 1 {
return
}
Router2SystemConfig.MainCache.SetStruct(cacheMark, data, CoreCache.CacheTime1Hour)
data = getLookupID(data.ID)
if data.ID < 1 {
data = FieldsLookup{}
return
}
return
}
func GetLookupNameByCode(code string) (name string) {
data := GetLookupCode(code)
name = data.Name
return
}
func getLookupID(id int64) (data FieldsLookup) {
cacheMark := getLookupCacheMark(id)
if err := Router2SystemConfig.MainCache.GetStruct(cacheMark, &data); err == nil && data.ID > 0 {
return
}
_ = lookupDB.Get().SetFieldsOne([]string{"id", "create_at", "update_at", "delete_at", "is_sys", "domain_id", "unit_id", "code", "name"}).NeedLimit().GetByID(id).Result(&data)
if data.ID < 1 {
return
}
Router2SystemConfig.MainCache.SetStruct(cacheMark, data, CoreCache.CacheTime1Hour)
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/fotomxq/weeekj_core.git
git@gitee.com:fotomxq/weeekj_core.git
fotomxq
weeekj_core
weeekj_core
v5.3.96

搜索帮助