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.

185 lines
5.8 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 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
}