|
|
package GovAreaDao
|
|
|
|
|
|
import (
|
|
|
"dsBaseRpc/Const/ErrorConst"
|
|
|
"dsBaseRpc/RpcService/GovArea/GovAreaProto"
|
|
|
"dsBaseRpc/Utils/SqlKit"
|
|
|
"dsBaseRpc/Utils/DbUtil"
|
|
|
"dsBaseRpc/Utils/LogUtil"
|
|
|
"dsBaseRpc/models"
|
|
|
"github.com/xormplus/builder"
|
|
|
)
|
|
|
|
|
|
var db = DbUtil.Engine
|
|
|
|
|
|
//增加
|
|
|
func AddGovArea(model models.TGovArea) (int64, error) {
|
|
|
return db.Insert(model)
|
|
|
}
|
|
|
|
|
|
//修改
|
|
|
func UpdateGovArea(model models.TGovArea) (int64, error) {
|
|
|
//1、清除Redis缓存
|
|
|
var ids = []string{model.AreaCode}
|
|
|
var selector = SqlKit.GetBean("t_gov_area")
|
|
|
SqlKit.DeleteCacheByIds(ids, selector)
|
|
|
//2、通过添加Cols函数指定需要更新结构体中的哪些值,未指定的将不更新,指定了的即使为0也会更新。
|
|
|
count, err := db.Where("area_code = ?", model.AreaCode).Cols("area_level_id", "area_name", "area_type_id").Update(model)
|
|
|
return count, err
|
|
|
}
|
|
|
|
|
|
|
|
|
//分页查询
|
|
|
//注意,不能使用*Reply入侵这一层,因为Reply是有rpc的概念在里面的,不能把List-->string这个限制传送到这里来!
|
|
|
func PageGovArea(in *GovAreaProto.QueryArg) (bool, string, int32, []map[string]interface{}, error) {
|
|
|
//接收传入参数
|
|
|
var limit = int(in.Limit)
|
|
|
var offset = int((in.Page - 1) * in.Limit)
|
|
|
|
|
|
var myBuilder = builder.Dialect(builder.MYSQL).Select("area_code").From("t_gov_area")
|
|
|
myBuilder.Where(builder.Eq{"master_code": in.AreaCode})
|
|
|
|
|
|
//获取拼接完成的SQL语句
|
|
|
sql, _ := myBuilder.OrderBy("area_code asc").Limit(limit,offset).ToBoundSQL()
|
|
|
list, count, err := SqlKit.Query(sql)
|
|
|
if err != nil {
|
|
|
//记录到错误日志
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageGovArea时发生严重错误:"+err.Error())
|
|
|
return false, "数据库查询失败,请检查原因!", 0, nil, err
|
|
|
}
|
|
|
return true, "查询成功!", count, list, err
|
|
|
}
|
|
|
|
|
|
//功能:检查指定的AreaCode是否存在
|
|
|
func ExistAreaCode(areaCode string) (bool, error) {
|
|
|
model := new(models.TGovArea)
|
|
|
return db.Where("area_code=?", areaCode).Get(model)
|
|
|
}
|