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 }