From 8c6472ce67a9ad65fd81ff0948880ce32dd6db6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Jan 2021 13:44:14 +0800 Subject: [PATCH] commit --- .../BaseMenu/BaseMenuDao/BaseMenuDao.go | 37 ++++++++ .../BaseMenuService/BaseMenuService.go | 84 ++++--------------- 2 files changed, 55 insertions(+), 66 deletions(-) diff --git a/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go b/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go index 2482b300..95b85f7d 100644 --- a/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go +++ b/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go @@ -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 +} diff --git a/dsBaseRpc/RpcService/BaseMenu/BaseMenuService/BaseMenuService.go b/dsBaseRpc/RpcService/BaseMenu/BaseMenuService/BaseMenuService.go index 6f7bcd27..347c7355 100644 --- a/dsBaseRpc/RpcService/BaseMenu/BaseMenuService/BaseMenuService.go +++ b/dsBaseRpc/RpcService/BaseMenu/BaseMenuService/BaseMenuService.go @@ -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