|
|
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
|
|
|
}
|