package SysDictDao import ( "dsBaseRpc/RpcService/SysDict/SysDictProto" "dsBaseRpc/Utils/CommonUtil" "dsBaseRpc/Utils/DbUtil" "dsBaseRpc/Utils/SqlKit" "github.com/xormplus/builder" ) var db = DbUtil.Engine //分页查询 func PageSysDict(in *SysDictProto.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("dict_id").From("t_sys_dict") //如果不为空,就添加条件进行查询 if in.DictKind != "" { myBuilder.Where(builder.Eq{"dict_kind": in.DictKind}) } //如果不为空,就添加条件进行查询 if in.DictParent != "" { myBuilder.Where(builder.Eq{"dict_parent": in.DictParent}) } myBuilder.Where(builder.Eq{"b_use": 1}) //获取拼接完成的SQL语句 sql, _ := myBuilder.OrderBy("sort_id asc").Limit(limit, offset).ToBoundSQL() list, count, err := SqlKit.Query(sql) return list, count, err } //传入一组IDS,返回字典数据列表 func PageSysDictMultipleDictCode(dictKind string, codeAry []string) ([]map[string]interface{}, int32, error) { //去重 codeAry = CommonUtil.RemoveDuplicatesAndEmpty(codeAry) //查询 var myBuilder = builder.Dialect(builder.MYSQL).Select("dict_id").From("t_sys_dict") myBuilder.Where(builder.In("dict_code", codeAry)) myBuilder.Where(builder.Eq{"dict_kind": dictKind}) myBuilder.Where(builder.Eq{"b_use": 1}) //获取拼接完成的SQL语句 sql, _ := myBuilder.OrderBy("sort_id asc").ToBoundSQL() list, count, err := SqlKit.Query(sql) return list, count, err } //获取学段 func GetStage() ([]map[string]interface{}, int32, error) { var myBuilder = builder.Dialect(builder.MYSQL).Select("stage_id").From("t_dm_stage") myBuilder.Where(builder.Eq{"b_use": 1}).OrderBy("sort_id") sql, err := myBuilder.ToBoundSQL() if err != nil { return nil, 0, err } list, count, err := SqlKit.Query(sql) return list, count, err } //获取学科 func GetSubject(in *SysDictProto.GetSubjectArg) ([]map[string]interface{}, int32, error) { var myBuilder = builder.Dialect(builder.MYSQL).Select("t2.*").From("t_dm_stage_subject as t1"). InnerJoin("t_dm_subject as t2", "t1.subject_id=t2.subject_id") myBuilder.Where(builder.Eq{"t1.b_use": 1}). And(builder.Eq{"t2.b_use": 1}). And(builder.Eq{"t1.stage_id": in.StageId}).OrderBy("t2.sort_id") sql, err := myBuilder.ToBoundSQL() if err != nil { return nil, 0, err } list, count, err := SqlKit.Query(sql) return list, count, err } //根据多个dict_kind获取字典信息 func GetMultipleDict(in *SysDictProto.GetMultipleDictArg) ([]map[string]interface{}, int32, error) { var myBuilder = builder.Dialect(builder.MYSQL).Select("dict_id").From("t_sys_dict") myBuilder.Where(builder.Eq{"b_use": 1}).And(builder.In("dict_kind", in.MultipleDictKind)).OrderBy("dict_kind,sort_id") sql, err := myBuilder.ToBoundSQL() if err != nil { return nil, 0, err } list, count, err := SqlKit.Query(sql) return list, count, err } //根据多个学段ID获取学段名称 func GetStageName(in *SysDictProto.GetStageNameArg) ([]map[string]interface{}, int32, error) { var myBuilder = builder.Dialect(builder.MYSQL).Select("stage_id").From("t_dm_stage") myBuilder.Where(builder.Eq{"b_use": 1}).And(builder.In("stage_id", in.StageId)).OrderBy("sort_id") sql, err := myBuilder.ToBoundSQL() if err != nil { return nil, 0, err } list, count, err := SqlKit.Query(sql) return list, count, err } //根据多个学科ID获取学科名称 func GetSubjectName(in *SysDictProto.GetSubjectNameArg) ([]map[string]interface{}, int32, error) { var myBuilder = builder.Dialect(builder.MYSQL).Select("subject_id").From("t_dm_subject") myBuilder.Where(builder.Eq{"b_use": 1}).And(builder.In("subject_id", in.SubjectId)).OrderBy("sort_id") sql, err := myBuilder.ToBoundSQL() if err != nil { return nil, 0, err } list, count, err := SqlKit.Query(sql) return list, count, err }