|
|
package {{.tableName}}Dao
|
|
|
|
|
|
import (
|
|
|
"dsBaseRpc/RpcService/{{.tableName}}/{{.tableName}}Proto"
|
|
|
"dsBaseRpc/Utils/SqlKit"
|
|
|
"dsBaseRpc/Utils/CommonUtil"
|
|
|
"dsBaseRpc/Utils/DbUtil"
|
|
|
"dsBaseRpc/models"
|
|
|
"github.com/xormplus/builder"
|
|
|
)
|
|
|
|
|
|
var db = DbUtil.Engine
|
|
|
|
|
|
//增加
|
|
|
func Add{{.tableName}}(model models.T{{.tableName}}) (int64, error) {
|
|
|
return db.Insert(model)
|
|
|
}
|
|
|
|
|
|
|
|
|
//修改
|
|
|
func Update{{.tableName}}(model models.T{{.tableName}},ForceUpdateFields []string) (int64, error) {
|
|
|
//1、清除Redis缓存
|
|
|
var ids = []string{model.{{.pkView}}}
|
|
|
var selector = SqlKit.GetBean("{{.realTableName}}")
|
|
|
SqlKit.DeleteCacheByIds(ids, selector)
|
|
|
//2、计算本次操作,有哪些字段需要更新
|
|
|
NeedUpdateFields := CommonUtil.GetNeedUpdateFields(model)
|
|
|
//3、合并强制更新的字段
|
|
|
ForceUpdateFields = append(ForceUpdateFields, NeedUpdateFields...)
|
|
|
//4、去重
|
|
|
ForceUpdateFields = CommonUtil.RemoveDuplicatesAndEmpty(ForceUpdateFields)
|
|
|
|
|
|
//更改排序号
|
|
|
//(1)权限排序号的范围是parent_id
|
|
|
var myBuilder = builder.Dialect(builder.MYSQL).Select("{{.pk}}").From("{{.realTableName}}")
|
|
|
myBuilder.ToBoundSQL()
|
|
|
|
|
|
//(2)查询获取到parent_id
|
|
|
var m1 models.T{{.tableName}}
|
|
|
db.ID(model.{{.pkView}}).Get(&m1)
|
|
|
|
|
|
//5、更新操作,强制更新这些列
|
|
|
affected, err := db.ID(model.{{.pkView}}).Cols(ForceUpdateFields...).Update(model)
|
|
|
return affected, err
|
|
|
}
|
|
|
|
|
|
//分页查询
|
|
|
func Page{{.tableName}}(in *{{.tableName}}Proto.QueryArg)([]map[string]interface{}, int32, error) {
|
|
|
//接收传入参数
|
|
|
var limit = int(in.Limit)
|
|
|
var offset = int((in.Page - 1) * in.Limit)
|
|
|
|
|
|
var myBuilder = builder.Dialect(builder.MYSQL).Select("{{.pk}}").From("{{.realTableName}}")
|
|
|
//myBuilder.Where(builder.Eq{"master_code": in.AreaCode})
|
|
|
|
|
|
//获取拼接完成的SQL语句
|
|
|
sql, _ := myBuilder.OrderBy("{{.pk}} asc").ToBoundSQL()
|
|
|
//分页
|
|
|
myBuilder.Limit(limit, offset)
|
|
|
|
|
|
list, count, err := SqlKit.PagePkSql(sql)
|
|
|
return list,count, err
|
|
|
}
|