package BasePositionDao import ( "dsBaseRpc/RpcService/BasePosition/BasePositionProto" "dsBaseRpc/Utils/CommonUtil" "dsBaseRpc/Utils/DbUtil" "dsBaseRpc/Utils/SqlKit" "dsBaseRpc/models" "github.com/xormplus/builder" ) var db = DbUtil.Engine //增加 func AddBasePosition(model models.TBasePosition) (int64, error) { return db.Insert(model) } //修改 func UpdateBasePosition(model models.TBasePosition, ForceUpdateFields []string) (int64, error) { //1、清除Redis缓存 var ids = []string{model.Id} var selector = SqlKit.GetBean("t_base_position") SqlKit.DeleteCacheByIds(ids, selector) //2、计算本次操作,有哪些字段需要更新 NeedUpdateFields := CommonUtil.GetNeedUpdateFields(model) //3、合并强制更新的字段 ForceUpdateFields = append(ForceUpdateFields, NeedUpdateFields...) //4、去重 ForceUpdateFields = CommonUtil.RemoveDuplicatesAndEmpty(ForceUpdateFields) //5、更新操作,强制更新这些列 affected, err := db.ID(model.Id).Cols(ForceUpdateFields...).Update(model) return affected, err } //获取职务所有的树形结构信息(不需要参数) func TreeBasePosition() ([]map[string]interface{}, int, error) { var myBuilder = builder.Dialect(builder.MYSQL).Select("*").From("t_base_position") myBuilder.Where(builder.Eq{"b_use": 1}) myBuilder.OrderBy("area_level") myBuilder.OrderBy("org_type") myBuilder.OrderBy("xxbxlxm") myBuilder.OrderBy("sort_id") //获取拼接完成的SQL语句 sql, err := myBuilder.ToBoundSQL() if err != nil { return nil, 0, err } //调用多查询字段通用方法 list, err := db.SQL(sql).Query().List() return list, len(list), err } //根据单位ID获取职务信息 func ListBasePositionByBureauId(in *BasePositionProto.QueryArg) ([]map[string]interface{}, int32, error) { //1、哪个级别 in. //2、这个单位ID是哪个类型的org_type //3、如果是学校,那么还需要知道 xxbxlxm }