122 lines
3.2 KiB
Go
122 lines
3.2 KiB
Go
package road
|
|
|
|
import (
|
|
"context"
|
|
"gateway/internal/otelTrace"
|
|
|
|
"time"
|
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type RoadPoolInfo struct {
|
|
Id int
|
|
Status string
|
|
RoadPoolName string
|
|
RoadPoolCode string
|
|
RoadUidPool string
|
|
CreateTime time.Time
|
|
UpdateTime time.Time
|
|
}
|
|
|
|
const ROAD_POOL_INFO = "road_pool_info"
|
|
|
|
func InsertRoadPool(ctx context.Context, roadPool RoadPoolInfo) bool {
|
|
o := orm.NewOrm()
|
|
_, err := o.Insert(&roadPool)
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("insert road pool fail: ", zap.Error(err))
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
func GetRoadPoolLenByMap(ctx context.Context, params map[string]string) int {
|
|
o := orm.NewOrm()
|
|
qs := o.QueryTable(ROAD_POOL_INFO)
|
|
for k, v := range params {
|
|
if len(v) > 0 {
|
|
qs = qs.Filter(k, v)
|
|
}
|
|
}
|
|
cnt, err := qs.Limit(-1).Count()
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("get road pool len by map fail: ", zap.Error(err))
|
|
}
|
|
return int(cnt)
|
|
}
|
|
|
|
func GetRoadPoolByMap(ctx context.Context, params map[string]string, displayCount, offset int) []RoadPoolInfo {
|
|
o := orm.NewOrm()
|
|
var roadPoolList []RoadPoolInfo
|
|
qs := o.QueryTable(ROAD_POOL_INFO)
|
|
for k, v := range params {
|
|
if len(v) > 0 {
|
|
qs.Filter(k, v)
|
|
}
|
|
}
|
|
_, err := qs.Limit(displayCount, offset).OrderBy("-update_time").All(&roadPoolList)
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("get road pool by map fail: ", zap.Error(err))
|
|
}
|
|
return roadPoolList
|
|
}
|
|
|
|
func GetRoadPoolByRoadPoolCode(ctx context.Context, roadPoolCode string) RoadPoolInfo {
|
|
o := orm.NewOrm()
|
|
var roadPoolInfo RoadPoolInfo
|
|
_, err := o.QueryTable(ROAD_POOL_INFO).Filter("road_pool_code", roadPoolCode).Limit(1).All(&roadPoolInfo)
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("get road pool info by road pool code fail: ", zap.Error(err))
|
|
}
|
|
|
|
return roadPoolInfo
|
|
}
|
|
|
|
func GetAllRollPool(ctx context.Context, params map[string]string) []RoadPoolInfo {
|
|
o := orm.NewOrm()
|
|
var roadPoolList []RoadPoolInfo
|
|
qs := o.QueryTable(ROAD_POOL_INFO)
|
|
for k, v := range params {
|
|
if len(v) > 0 {
|
|
qs = qs.Filter(k, v)
|
|
}
|
|
}
|
|
_, err := qs.Limit(-1).All(&roadPoolList)
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("get all roll pool fail: ", zap.Error(err))
|
|
}
|
|
return roadPoolList
|
|
}
|
|
|
|
func GetRoadPoolByName(ctx context.Context, roadPoolName string) RoadPoolInfo {
|
|
o := orm.NewOrm()
|
|
var roadPoolInfo RoadPoolInfo
|
|
_, err := o.QueryTable(ROAD_POOL_INFO).Filter("road_pool_name", roadPoolName).Limit(1).All(&roadPoolInfo)
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("get road pool by name fail: ", zap.Error(err))
|
|
}
|
|
return roadPoolInfo
|
|
}
|
|
|
|
func DeleteRoadPoolByCode(ctx context.Context, roadPoolCode string) bool {
|
|
o := orm.NewOrm()
|
|
_, err := o.QueryTable(ROAD_POOL_INFO).Filter("road_pool_code", roadPoolCode).Delete()
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("delete road pool by code fail: ", zap.Error(err))
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
func UpdateRoadPool(ctx context.Context, roadPool RoadPoolInfo) bool {
|
|
o := orm.NewOrm()
|
|
_, err := o.Update(&roadPool)
|
|
if err != nil {
|
|
otelTrace.Logger.WithContext(ctx).Error("update road pool fail: ", zap.Error(err))
|
|
return false
|
|
}
|
|
return true
|
|
}
|