You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
3.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
}