|
|
|
@ -1,16 +1,194 @@
|
|
|
|
|
package BaseMenuService
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"dsBaseRpc/Const"
|
|
|
|
|
"dsBaseRpc/Const/ErrorConst"
|
|
|
|
|
"dsBaseRpc/RpcService/BaseClass/BaseClassDao"
|
|
|
|
|
"dsBaseRpc/RpcService/BaseClass/BaseClassProto"
|
|
|
|
|
"dsBaseRpc/RpcService/BaseMenu/BaseMenuDao"
|
|
|
|
|
"dsBaseRpc/RpcService/BaseMenu/BaseMenuProto"
|
|
|
|
|
"dsBaseRpc/RpcService/BaseStudent/BaseStudentDao"
|
|
|
|
|
"dsBaseRpc/RpcService/BaseStudent/BaseStudentProto"
|
|
|
|
|
"dsBaseRpc/Utils/CommonUtil"
|
|
|
|
|
"dsBaseRpc/Utils/LogUtil"
|
|
|
|
|
"dsBaseRpc/Utils/SqlKit"
|
|
|
|
|
"dsBaseRpc/models"
|
|
|
|
|
"fmt"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Rpc struct{} //服务对象
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
//获取单条
|
|
|
|
|
rpc GetBaseMenu (ModelArg) returns (Reply) {}
|
|
|
|
|
//选择单条
|
|
|
|
|
func (s *Rpc) GetBaseMenu(ctx context.Context, in *BaseMenuProto.ModelArg) (*BaseMenuProto.Reply, error) {
|
|
|
|
|
//异常处理
|
|
|
|
|
defer func() {
|
|
|
|
|
if err := recover(); err != nil {
|
|
|
|
|
fmt.Printf("%s\n", err)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
//rpc响应
|
|
|
|
|
var reply BaseMenuProto.Reply
|
|
|
|
|
//通用获取单条
|
|
|
|
|
list := SqlKit.QueryByIds([]string{in.MenuId}, "t_base_menu")
|
|
|
|
|
//将结果序列化
|
|
|
|
|
reply.Success = true
|
|
|
|
|
reply.Count = 1
|
|
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
|
|
return &reply, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//增加
|
|
|
|
|
rpc AddBaseMenu (ModelArg) returns (Reply) {}
|
|
|
|
|
//批量删除
|
|
|
|
|
rpc DeleteBaseMenu (DeleteIdsArg) returns (Reply) {}
|
|
|
|
|
func (s *Rpc) AddBaseMenu(ctx context.Context, in *BaseMenuProto.ModelArg) (*BaseMenuProto.Reply, error) {
|
|
|
|
|
//异常处理
|
|
|
|
|
defer func() {
|
|
|
|
|
if err := recover(); err != nil {
|
|
|
|
|
fmt.Printf("%s\n", err)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
//rpc响应
|
|
|
|
|
var reply BaseMenuProto.Reply
|
|
|
|
|
|
|
|
|
|
//调用dao
|
|
|
|
|
model := new(models.TBaseMenu)
|
|
|
|
|
//增加
|
|
|
|
|
_, err := BaseMenuDao.AddBaseMenu(in)
|
|
|
|
|
if err != nil {
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行AddBaseMenu时发生严重错误:"+err.Error())
|
|
|
|
|
} else {
|
|
|
|
|
reply.Success = true
|
|
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
|
|
}
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//删除
|
|
|
|
|
func (s *Rpc) DeleteBaseMenu(ctx context.Context, in *BaseMenuProto.DeleteIdsArg) (*BaseMenuProto.Reply, error) {
|
|
|
|
|
//异常处理
|
|
|
|
|
defer func() {
|
|
|
|
|
if err := recover(); err != nil {
|
|
|
|
|
fmt.Printf("%s\n", err)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
//rpc响应
|
|
|
|
|
var reply BaseMenuProto.Reply
|
|
|
|
|
|
|
|
|
|
//判断班级下是不是存在可用的学生?
|
|
|
|
|
for i := range in.Ids {
|
|
|
|
|
var inStudent BaseStudentProto.QueryArg
|
|
|
|
|
inStudent.Page = 1
|
|
|
|
|
inStudent.Limit = 1
|
|
|
|
|
inStudent.Xm = ""
|
|
|
|
|
inStudent.ClassId = in.Ids[i]
|
|
|
|
|
_, count, err := BaseStudentDao.PageBaseStudent(&inStudent)
|
|
|
|
|
if err != nil {
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行PageBaseStudent时发生严重错误:"+err.Error())
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
if count > 0 {
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = "班级下存在可用的学生,无法删除!"
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//调用通用删除命令进行删除
|
|
|
|
|
err := SqlKit.DeleteIds("t_base_class", in.Ids)
|
|
|
|
|
//错误处理
|
|
|
|
|
if err != nil {
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行DeleteBaseClass时发生严重错误:"+err.Error())
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
//记录日志
|
|
|
|
|
ms, err := BaseClassDao.GetByIds(in.Ids)
|
|
|
|
|
if err != nil {
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行FindModelsByIds时发生严重错误:"+err.Error())
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
err = BaseClassDao.ActionLog(ms, Const.ActionDelete, in.ActionPersonId, in.ActionIpAddress)
|
|
|
|
|
if err != nil {
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行ActionLog时发生严重错误:"+err.Error())
|
|
|
|
|
}
|
|
|
|
|
reply.Success = true
|
|
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//修改
|
|
|
|
|
rpc UpdateBaseMenu (ModelArg) returns (Reply) {}
|
|
|
|
|
//查询(不分页)
|
|
|
|
|
rpc PageBaseMenu (QueryArg) returns (Reply) {}
|
|
|
|
|
*/
|
|
|
|
|
func (s *Rpc) UpdateBaseMenu(ctx context.Context, in *BaseMenuProto.ModelArg) (*BaseMenuProto.Reply, error) {
|
|
|
|
|
//异常处理
|
|
|
|
|
defer func() {
|
|
|
|
|
if err := recover(); err != nil {
|
|
|
|
|
fmt.Printf("%s\n", err)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
//rpc响应
|
|
|
|
|
var reply BaseClassProto.Reply
|
|
|
|
|
//修改
|
|
|
|
|
model := new(models.TBaseClass)
|
|
|
|
|
model.ClassId = in.ClassId
|
|
|
|
|
model.ClassAlias = in.ClassAlias
|
|
|
|
|
model.TeacherId = in.TeacherId
|
|
|
|
|
_, err := BaseClassDao.UpdateBaseClass(*model, in.ForceUpdateFields)
|
|
|
|
|
//错误处理
|
|
|
|
|
if err != nil {
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行UpdateBaseClass时发生严重错误:"+err.Error())
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//记录日志
|
|
|
|
|
ms, err := BaseClassDao.GetByIds([]string{in.ClassId})
|
|
|
|
|
if err != nil {
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行FindModelsByIds时发生严重错误:"+err.Error())
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
err = BaseClassDao.ActionLog(ms, Const.ActionUpdate, in.ActionPersonId, in.ActionIpAddress)
|
|
|
|
|
if err != nil {
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行ActionLog时发生严重错误:"+err.Error())
|
|
|
|
|
}
|
|
|
|
|
reply.Success = true
|
|
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
|
|
return &reply, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//分页查询
|
|
|
|
|
func (s *Rpc) PageBaseMenu(ctx context.Context, in *BaseMenuProto.QueryArg) (*BaseMenuProto.Reply, error) {
|
|
|
|
|
//异常处理
|
|
|
|
|
defer func() {
|
|
|
|
|
if err := recover(); err != nil {
|
|
|
|
|
fmt.Printf("%s\n", err)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
//rpc响应
|
|
|
|
|
var reply BaseClassProto.Reply
|
|
|
|
|
list, count, err := BaseClassDao.PageBaseClass(in)
|
|
|
|
|
//错误处理
|
|
|
|
|
if err != nil {
|
|
|
|
|
reply.Success = false
|
|
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageBaseClass时发生严重错误:"+err.Error())
|
|
|
|
|
return &reply, err
|
|
|
|
|
}
|
|
|
|
|
reply.Count = count
|
|
|
|
|
reply.Success = true
|
|
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
|
|
return &reply, nil
|
|
|
|
|
}
|
|
|
|
|