master
黄海 5 years ago
parent 375888c264
commit 8c6472ce67

@ -1,8 +1,12 @@
package BaseMenuDao
import (
"dsBaseRpc/RpcService/BaseMenu/BaseMenuProto"
"dsBaseRpc/Utils/CommonUtil"
"dsBaseRpc/Utils/DbUtil"
"dsBaseRpc/Utils/SqlKit"
"dsBaseRpc/models"
"github.com/xormplus/builder"
)
var db = DbUtil.Engine
@ -26,3 +30,36 @@ func ExistMenuCode(menuCode string) (bool, error) {
return true, nil
}
}
//更新
func UpdateBaseMenu(model models.TBaseMenu, ForceUpdateFields []string) (int64, error) {
//1、清除Redis缓存
var ids = []string{model.MenuId}
var selector = SqlKit.GetBean("t_base_menu")
SqlKit.DeleteCacheByIds(ids, selector)
//2、计算本次操作有哪些字段需要更新
NeedUpdateFields := CommonUtil.GetNeedUpdateFields(model)
//3、合并强制更新的字段
ForceUpdateFields = append(ForceUpdateFields, NeedUpdateFields...)
//4、去重
ForceUpdateFields = CommonUtil.RemoveDuplicatesAndEmpty(ForceUpdateFields)
//5、更新操作,强制更新这些列
affected, err := db.ID(model.MenuId).Cols(ForceUpdateFields...).Update(model)
return affected, err
}
//分页查询
func PageBaseMenu(in *BaseMenuProto.QueryArg) ([]map[string]interface{}, int32, error) {
//接收传入参数
var myBuilder = builder.Dialect(builder.MYSQL).Select("t1.*").From("t_base_menu as t1")
myBuilder.And(builder.Eq{"t1.app_id": in.AppId})
myBuilder.And(builder.Eq{"t1.identity_id": in.IdentityId})
//获取拼接完成的SQL语句
sql, err := myBuilder.OrderBy("t1.sort_id").ToBoundSQL()
if err != nil {
return nil, 0, err
}
//调用多查询字段通用方法
list, count, err := SqlKit.Query(sql)
return list, count, err
}

@ -4,12 +4,8 @@ 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"
@ -100,50 +96,15 @@ func (s *Rpc) DeleteBaseMenu(ctx context.Context, in *BaseMenuProto.DeleteIdsArg
//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)
err := SqlKit.DeleteIds("t_base_menu", 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())
LogUtil.Error(ErrorConst.SqlUpdateError, "执行DeleteBaseMenu时发生严重错误"+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
@ -158,35 +119,26 @@ func (s *Rpc) UpdateBaseMenu(ctx context.Context, in *BaseMenuProto.ModelArg) (*
}
}()
//rpc响应
var reply BaseClassProto.Reply
var reply BaseMenuProto.Reply
//修改
model := new(models.TBaseClass)
model.ClassId = in.ClassId
model.ClassAlias = in.ClassAlias
model.TeacherId = in.TeacherId
_, err := BaseClassDao.UpdateBaseClass(*model, in.ForceUpdateFields)
model := new(models.TBaseMenu)
model.MenuId = in.MenuId
model.AppId = in.AppId
model.ParentId = in.ParentId
model.IdentityId = in.IdentityId
model.MenuName = in.MenuName
model.MenuCode = in.MenuCode
model.MenuUrl = in.MenuUrl
model.MenuIcon = in.MenuIcon
model.BUse = in.BUse
_, err := BaseMenuDao.UpdateBaseMenu(*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
LogUtil.Error(ErrorConst.SqlUpdateError, "执行UpdateBaseMenu时发生严重错误"+err.Error())
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
@ -201,13 +153,13 @@ func (s *Rpc) PageBaseMenu(ctx context.Context, in *BaseMenuProto.QueryArg) (*Ba
}
}()
//rpc响应
var reply BaseClassProto.Reply
list, count, err := BaseClassDao.PageBaseClass(in)
var reply BaseMenuProto.Reply
list, count, err := BaseMenuDao.PageBaseMenu(in)
//错误处理
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageBaseClass时发生严重错误:"+err.Error())
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageBaseMenu时发生严重错误:"+err.Error())
return &reply, err
}
reply.Count = count

Loading…
Cancel
Save