|
|
package SysDictService
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
"dsBaseRpc/Const"
|
|
|
"dsBaseRpc/Const/ErrorConst"
|
|
|
"dsBaseRpc/RpcService/SysDict/SysDictDao"
|
|
|
"dsBaseRpc/RpcService/SysDict/SysDictProto"
|
|
|
"dsBaseRpc/Utils/CommonUtil"
|
|
|
"dsBaseRpc/Utils/LogUtil"
|
|
|
"dsBaseRpc/Utils/SqlKit"
|
|
|
"encoding/json"
|
|
|
)
|
|
|
|
|
|
type Rpc struct{} //服务对象
|
|
|
|
|
|
//选择单条
|
|
|
func (s *Rpc) GetSysDict(ctx context.Context, in *SysDictProto.ModelArg) (*SysDictProto.Reply, error) {
|
|
|
//统一返回的结构体
|
|
|
var reply SysDictProto.Reply
|
|
|
//通用获取单条
|
|
|
list := SqlKit.QueryByIds([]string{CommonUtil.ConvertInt32ToString(in.DictId)}, "t_sys_dict")
|
|
|
//将结果序列化
|
|
|
reply.Success = true
|
|
|
reply.Count = 1
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//分页查询
|
|
|
func (s *Rpc) PageSysDict(ctx context.Context, in *SysDictProto.QueryArg) (*SysDictProto.Reply, error) {
|
|
|
//rpc响应
|
|
|
var reply SysDictProto.Reply
|
|
|
//是不是分页没有传参数
|
|
|
if in.Page == 0 || in.Limit == 0 {
|
|
|
reply.Count = 0
|
|
|
reply.Success = true
|
|
|
reply.Message = "输入的Page或Limit参数为零,约定是必须按分页传值的,请检查!"
|
|
|
return &reply, nil
|
|
|
}
|
|
|
list, count, err := SysDictDao.PageSysDict(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageSysDict时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//传入一组IDS,返回字典数据列表
|
|
|
func (s *Rpc) PageSysDictMultipleDictCode(ctx context.Context, in *SysDictProto.MultipleQueryArg) (*SysDictProto.Reply, error) {
|
|
|
//rpc响应
|
|
|
var reply SysDictProto.Reply
|
|
|
list, count, err := SysDictDao.PageSysDictMultipleDictCode(in.DictKind, in.MultipleDictCode)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageSysDictMultipleDictCode时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//获取学段信息
|
|
|
func (s *Rpc) GetStage(ctx context.Context, in *SysDictProto.ModelArg) (*SysDictProto.Reply, error) {
|
|
|
//rpc响应
|
|
|
var reply SysDictProto.Reply
|
|
|
list, count, err := SysDictDao.GetStage()
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行GetStage时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//根据学段ID获取学科信息
|
|
|
func (s *Rpc) GetSubject(ctx context.Context, in *SysDictProto.GetSubjectArg) (*SysDictProto.Reply, error) {
|
|
|
//rpc响应
|
|
|
var reply SysDictProto.Reply
|
|
|
list, count, err := SysDictDao.GetSubject(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行GetSubject时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//根据多个dict_kind获取字典信息
|
|
|
func (s *Rpc) GetMultipleDict(ctx context.Context, in *SysDictProto.GetMultipleDictArg) (*SysDictProto.Reply, error) {
|
|
|
//rpc响应
|
|
|
var reply SysDictProto.Reply
|
|
|
list, _, err := SysDictDao.GetMultipleDict(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行GetMultipleDict时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
type dictStruct struct {
|
|
|
DictCode string `json:"dict_code"`
|
|
|
DictValue string `json:"dict_value"`
|
|
|
}
|
|
|
var _map=make(map[string][]dictStruct)
|
|
|
for i := range list {
|
|
|
dictKind :=list[i]["dict_kind"].(string)
|
|
|
dictCode :=list[i]["dict_code"].(string)
|
|
|
dictValue :=list[i]["dict_value"].(string)
|
|
|
var s1 dictStruct
|
|
|
s1.DictCode = dictCode
|
|
|
s1.DictValue = dictValue
|
|
|
_map[dictKind]=append(_map[dictKind],s1)
|
|
|
}
|
|
|
jsonBytes, _ := json.Marshal(_map)
|
|
|
reply.Count = int32(len(_map))
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = string(jsonBytes)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//根据多个学段ID获取学段名称
|
|
|
func (s *Rpc) GetStageName(ctx context.Context, in *SysDictProto.GetStageNameArg) (*SysDictProto.Reply, error) {
|
|
|
//rpc响应
|
|
|
var reply SysDictProto.Reply
|
|
|
list, count, err := SysDictDao.GetStageName(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行GetStageName时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//根据多个学科ID获取学科名称
|
|
|
func (s *Rpc) GetSubjectName(ctx context.Context, in *SysDictProto.GetSubjectNameArg) (*SysDictProto.Reply, error) {
|
|
|
//rpc响应
|
|
|
var reply SysDictProto.Reply
|
|
|
list, count, err := SysDictDao.GetSubjectName(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行GetSubjectName时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|