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{}, int32, error){ var myBuilder = builder.Dialect(builder.MYSQL).Select("*").From("t_base_position") myBuilder.Where(builder.Eq{"b_use": 1}) myBuilder.And(builder.Eq{"t1.rxnf": in.Rxnf}) myBuilder.And(builder.Eq{"t1.stage_id": in.StageId}) myBuilder.And(builder.Eq{"t1.bureau_id": in.BureauId}) //排除某个班级,用在将学生进行调整班级时的需求 if in.RemoveClassId != "" { myBuilder.And(builder.Neq{"t1.class_id": in.RemoveClassId}) } //获取拼接完成的SQL语句 sql, err := myBuilder.OrderBy("t1.bh asc").Limit(limit, offset).ToBoundSQL() if err != nil { return nil, 0, err } //调用多查询字段通用方法 list, err := db.SQL(sql).Query().List() } //根据单位ID获取职务信息 func ListBasePositionByBureauId(in *BasePositionProto.QueryArg)([]map[string]interface{}, int32, error){ }