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.

173 lines
4.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 BasePositionService
import (
"context"
"dsBaseRpc/Const"
"dsBaseRpc/Const/ErrorConst"
"dsBaseRpc/RpcService/BasePosition/BasePositionDao"
"dsBaseRpc/RpcService/BasePosition/BasePositionProto"
"dsBaseRpc/Utils/CommonUtil"
"dsBaseRpc/Utils/LogUtil"
"dsBaseRpc/Utils/SqlKit"
"dsBaseRpc/models"
"fmt"
)
type Rpc struct{} //服务对象
//选择单条
func (s *Rpc) GetBasePosition(ctx context.Context, in *BasePositionProto.ModelArg) (*BasePositionProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//统一返回的结构体
var reply BasePositionProto.Reply
//通用获取单条
list := SqlKit.QueryByIds([]string{in.Id}, "t_base_position")
//将结果序列化
reply.Success = true
reply.Count = 1
reply.Message = Const.SuccessDataBaseAction
reply.List = CommonUtil.SerializeToString(list)
return &reply, nil
}
//增加
func (s *Rpc) AddBasePosition(ctx context.Context, in *BasePositionProto.ModelArg) (*BasePositionProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BasePositionProto.Reply
model := new(models.TBasePosition)
model.Id = CommonUtil.GetUUID()
model.NodeName = in.NodeName
model.ParentId = in.ParentId
model.AreaLevel = in.AreaLevel
model.OrgType = in.OrgType
model.Xxbxlxm = in.Xxbxlxm
model.PostionFlag = 1 //职务肯定是1
//parent_id-->下-->找出最大的sort_id+1
model.SortId = in.SortId
model.MaintainId = "011" //增加,删除,修改
model.BUse = 1
//调用dao
_, err := BasePositionDao.AddBasePosition(*model)
//错误处理
if err != nil {
reply.Success = false
reply.Message = "增加失败,请检查原因!"
return &reply, err
}
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
return &reply, nil
}
//删除
func (s *Rpc) DeleteBasePosition(ctx context.Context, in *BasePositionProto.DeleteIdsArg) (*BasePositionProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BasePositionProto.Reply
//调用通用删除命令进行删除
err := SqlKit.DeleteIds("t_base_position", in.Ids)
//错误处理
if err != nil {
LogUtil.Error(ErrorConst.SqlUpdateError, "执行DeleteBasePosition时发生严重错误"+err.Error())
reply.Success = false
reply.Message = Const.DataBaseActionError
return &reply, err
}
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
return &reply, err
}
//修改
func (s *Rpc) UpdateBasePosition(ctx context.Context, in *BasePositionProto.ModelArg) (*BasePositionProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
var reply BasePositionProto.Reply
model := new(models.TBasePosition)
//修改
model.Id = in.Id
model.NodeName = in.NodeName
model.SortId = in.SortId
_, err := BasePositionDao.UpdateBasePosition(*model, []string{})
//错误处理
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlUpdateError, "执行UpdateBasePosition时发生严重错误"+err.Error())
return &reply, err
}
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
return &reply, nil
}
//同步获取所有表中数据
func (s *Rpc) TreeBasePosition(ctx context.Context, in *BasePositionProto.QueryArg) (*BasePositionProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
var reply BasePositionProto.Reply
list, count, err := BasePositionDao.TreeBasePosition()
//错误处理
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlQueryError, "执行TreeBasePosition时发生严重错误"+err.Error())
return &reply, err
}
reply.Count = int32(count)
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
reply.List = CommonUtil.SerializeToString(list)
return &reply, nil
}
//根据单位ID获取职务信息
func (s *Rpc) ListBasePositionByBureauId(ctx context.Context, in *BasePositionProto.ListBasePositionByBureauIdArg) (*BasePositionProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
var reply BasePositionProto.Reply
list, count, err := BasePositionDao.ListBasePositionByBureauId(in)
//错误处理
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlQueryError, "执行ListBasePositionByBureauId时发生严重错误"+err.Error())
return &reply, err
}
reply.Count = int32(count)
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
reply.List = CommonUtil.SerializeToString(list)
return &reply, nil
}