From 76cd2283d9083da407cc3dffdb9ec585c697ced7 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:50:05 +0800 Subject: [PATCH 1/8] commit --- dsBaseRpc/RpcService/BaseClass/BaseClassDao/BaseClassDao.go | 4 ++-- .../RpcService/BaseClass/BaseClassService/BaseClassService.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dsBaseRpc/RpcService/BaseClass/BaseClassDao/BaseClassDao.go b/dsBaseRpc/RpcService/BaseClass/BaseClassDao/BaseClassDao.go index eda3ee47..31689b1c 100644 --- a/dsBaseRpc/RpcService/BaseClass/BaseClassDao/BaseClassDao.go +++ b/dsBaseRpc/RpcService/BaseClass/BaseClassDao/BaseClassDao.go @@ -39,7 +39,7 @@ func GetByIds(ids []string) ([]models.TBaseClass, error) { } //判断是不是有在指定班号范围内的班级 -func CheckClassNumValid(schoolId string, stageId string, rxnf int32, startBh int32, endBh int32) (bool, error) { +func CheckClassNumValid(schoolId string, stageId int32, rxnf int32, startBh int32, endBh int32) (bool, error) { classModel := new(models.TBaseClass) //between是包含边界值 total, err := db.Where("bureau_id=? and b_use=1 and stage_id=? and rxnf=? and (bh between ? and ?)", schoolId, stageId, rxnf, startBh, endBh).Count(classModel) @@ -173,7 +173,7 @@ func GetStageMap(schoolId string) map[string]string { } //根据学校ID和学部(学段)ID获取入学年份 -func GetRxnf(schoolId string, stageId string) ([]map[string]interface{}, int32, error) { +func GetRxnf(schoolId string, stageId int32) ([]map[string]interface{}, int32, error) { var myBuilder = builder.Dialect(builder.MYSQL).Select("distinct rxnf"). From("t_base_class"). Where(builder.Eq{"bureau_id": schoolId}). diff --git a/dsBaseRpc/RpcService/BaseClass/BaseClassService/BaseClassService.go b/dsBaseRpc/RpcService/BaseClass/BaseClassService/BaseClassService.go index 991cfe2e..cb83762d 100644 --- a/dsBaseRpc/RpcService/BaseClass/BaseClassService/BaseClassService.go +++ b/dsBaseRpc/RpcService/BaseClass/BaseClassService/BaseClassService.go @@ -105,7 +105,7 @@ func (s *Rpc) AddBaseClass(ctx context.Context, in *BaseClassProto.ModelArg) (*B //入学年份 model.Rxnf = in.Rxnf //ClassCode是我来规定的,规则是入学年份+1位学段码+两位班号,前补零 - model.ClassCode = CommonUtil.ConvertInt32ToString(in.Rxnf) + in.StageId + fmt.Sprintf("%02d", i) + model.ClassCode = CommonUtil.ConvertInt32ToString(in.Rxnf) + CommonUtil.ConvertInt32ToString(in.StageId) + fmt.Sprintf("%02d", i) //ClassName --->入学年份+班号 model.ClassName = CommonUtil.ConvertInt32ToString(in.Rxnf) + "级" + CommonUtil.ConvertInt32ToString(i) + "班" //ClassAlias --->入学年份+班号 From 2fb372d5f59654090951ace63a5547beed0d2d84 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 14:00:52 +0800 Subject: [PATCH 2/8] commit --- .../BaseRole/BaseRoleDao/BaseRoleDao.go | 68 ++++++++ .../BaseRoleService/BaseRoleService.go | 165 ++++++++++++++++-- dsBaseRpc/main.go | 1 - 3 files changed, 223 insertions(+), 11 deletions(-) create mode 100644 dsBaseRpc/RpcService/BaseRole/BaseRoleDao/BaseRoleDao.go diff --git a/dsBaseRpc/RpcService/BaseRole/BaseRoleDao/BaseRoleDao.go b/dsBaseRpc/RpcService/BaseRole/BaseRoleDao/BaseRoleDao.go new file mode 100644 index 00000000..6ff1b931 --- /dev/null +++ b/dsBaseRpc/RpcService/BaseRole/BaseRoleDao/BaseRoleDao.go @@ -0,0 +1,68 @@ +package BaseRoleDao + +import ( + "dsBaseRpc/RpcService/BaseRole/BaseRoleProto" + "dsBaseRpc/Utils/CommonUtil" + "dsBaseRpc/Utils/DbUtil" + "dsBaseRpc/Utils/SqlKit" + "dsBaseRpc/models" + "github.com/xormplus/builder" +) + +var db = DbUtil.Engine + +//批量增加 +func AddBaseRole(ms models.TBaseRole) (int64, error) { + return db.Insert(ms) +} + +//检查一个角色编码是不是已存在 +func ExistRoleCode(roleCode string) (bool, error) { + sql := `select count(1) as c from t_base_role where b_use=1 and role_code=?` + list, err := db.SQL(sql, roleCode).Query().List() + if err != nil { + return false, err + } + c := list[0]["c"].(int32) + if c == 0 { + return false, nil + } else { + return true, nil + } +} + +//更新 +func UpdateBaseRole(model models.TBaseRole, ForceUpdateFields []string) (int64, error) { + //1、清除Redis缓存 + var ids = []string{model.RoleId} + var selector = SqlKit.GetBean("t_base_role") + 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.RoleId).Cols(ForceUpdateFields...).Update(model) + return affected, err +} + +//分页查询 +func PageBaseRole(in *BaseRoleProto.QueryArg) ([]map[string]interface{}, int32, error) { + //接收传入参数 + var limit = int(in.Limit) + var offset = int((in.Page - 1) * in.Limit) + + var myBuilder = builder.Dialect(builder.MYSQL).Select("t1.*").From("t_base_role 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").Limit(limit, offset).ToBoundSQL() + if err != nil { + return nil, 0, err + } + //调用多查询字段通用方法 + list, count, err := SqlKit.Query(sql) + return list, count, err +} diff --git a/dsBaseRpc/RpcService/BaseRole/BaseRoleService/BaseRoleService.go b/dsBaseRpc/RpcService/BaseRole/BaseRoleService/BaseRoleService.go index bf764e7e..2508c2c0 100644 --- a/dsBaseRpc/RpcService/BaseRole/BaseRoleService/BaseRoleService.go +++ b/dsBaseRpc/RpcService/BaseRole/BaseRoleService/BaseRoleService.go @@ -1,16 +1,161 @@ package BaseRoleService +import ( + "context" + "dsBaseRpc/Const" + "dsBaseRpc/Const/ErrorConst" + "dsBaseRpc/RpcService/BaseRole/BaseRoleDao" + "dsBaseRpc/RpcService/BaseRole/BaseRoleProto" + "dsBaseRpc/Utils/CommonUtil" + "dsBaseRpc/Utils/LogUtil" + "dsBaseRpc/Utils/SqlKit" + "dsBaseRpc/models" + "fmt" +) + type Rpc struct{} //服务对象 -/* -//获取单条 -rpc GetBaseRole (ModelArg) returns (Reply) {} +//选择单条 +func (s *Rpc) GetBaseRole(ctx context.Context, in *BaseRoleProto.ModelArg) (*BaseRoleProto.Reply, error) { + //异常处理 + defer func() { + if err := recover(); err != nil { + fmt.Printf("%s\n", err) + } + }() + //rpc响应 + var reply BaseRoleProto.Reply + //通用获取单条 + list := SqlKit.QueryByIds([]string{in.RoleId}, "t_base_role") + //将结果序列化 + reply.Success = true + reply.Count = 1 + reply.Message = Const.SuccessDataBaseAction + reply.List = CommonUtil.SerializeToString(list) + return &reply, nil +} + //增加 -rpc AddBaseRole (ModelArg) returns (Reply) {} -//批量删除 -rpc DeleteBaseRole (DeleteIdsArg) returns (Reply) {} +func (s *Rpc) AddBaseRole(ctx context.Context, in *BaseRoleProto.ModelArg) (*BaseRoleProto.Reply, error) { + //异常处理 + defer func() { + if err := recover(); err != nil { + fmt.Printf("%s\n", err) + } + }() + //rpc响应 + var reply BaseRoleProto.Reply + + //调用dao + model := new(models.TBaseRole) + //检查一下RoleCode是不是已存在 + exist, err := BaseRoleDao.ExistRoleCode(in.RoleCode) + if err != nil { + reply.Success = false + reply.Message = "检查角色代码是否存在时发生严重错误!" + return &reply, err + } + if exist { + reply.Success = false + reply.Message = "角色代码已存在!" + return &reply, nil + } + // 通过,则保存 + model.RoleId = CommonUtil.GetUUID() + model.RoleName = in.RoleName + model.RoleCode = in.RoleCode + model.RoleLevel = in.RoleLevel + model.IdentityId = in.IdentityId + model.SortId = in.SortId + model.BUse = 1 + //增加 + _, err = BaseRoleDao.AddBaseRole(*model) + if err != nil { + reply.Success = false + reply.Message = Const.DataBaseActionError + LogUtil.Error(ErrorConst.SqlUpdateError, "执行AddBaseRole时发生严重错误:"+err.Error()) + } else { + reply.Success = true + reply.Message = Const.SuccessDataBaseAction + } + return &reply, err +} + +//删除 +func (s *Rpc) DeleteBaseRole(ctx context.Context, in *BaseRoleProto.DeleteIdsArg) (*BaseRoleProto.Reply, error) { + //异常处理 + defer func() { + if err := recover(); err != nil { + fmt.Printf("%s\n", err) + } + }() + //rpc响应 + var reply BaseRoleProto.Reply + + //调用通用删除命令进行删除 + err := SqlKit.DeleteIds("t_base_role", in.Ids) + //错误处理 + if err != nil { + LogUtil.Error(ErrorConst.SqlUpdateError, "执行DeleteBaseRole时发生严重错误:"+err.Error()) + reply.Success = false + reply.Message = Const.DataBaseActionError + return &reply, err + } + reply.Success = true + reply.Message = Const.SuccessDataBaseAction + return &reply, err +} + //修改 -rpc UpdateBaseRole (ModelArg) returns (Reply) {} -//查询(分页) -rpc PageBaseRole (QueryArg) returns (Reply) {} -*/ +func (s *Rpc) UpdateBaseRole(ctx context.Context, in *BaseRoleProto.ModelArg) (*BaseRoleProto.Reply, error) { + //异常处理 + defer func() { + if err := recover(); err != nil { + fmt.Printf("%s\n", err) + } + }() + //rpc响应 + var reply BaseRoleProto.Reply + //修改 + model := new(models.TBaseRole) + model.RoleId = in.RoleId + model.IdentityId = in.IdentityId + + model.BUse = in.BUse + _, err := BaseRoleDao.UpdateBaseRole(*model, in.ForceUpdateFields) + //错误处理 + if err != nil { + reply.Success = false + reply.Message = Const.DataBaseActionError + LogUtil.Error(ErrorConst.SqlUpdateError, "执行UpdateBaseRole时发生严重错误:"+err.Error()) + return &reply, err + } + reply.Success = true + reply.Message = Const.SuccessDataBaseAction + return &reply, nil +} + +//分页查询 +func (s *Rpc) PageBaseRole(ctx context.Context, in *BaseRoleProto.QueryArg) (*BaseRoleProto.Reply, error) { + //异常处理 + defer func() { + if err := recover(); err != nil { + fmt.Printf("%s\n", err) + } + }() + //rpc响应 + var reply BaseRoleProto.Reply + list, count, err := BaseRoleDao.PageBaseRole(in) + //错误处理 + if err != nil { + reply.Success = false + reply.Message = Const.DataBaseActionError + LogUtil.Error(ErrorConst.SqlQueryError, "执行PageBaseRole时发生严重错误:"+err.Error()) + return &reply, err + } + reply.Count = count + reply.Success = true + reply.Message = Const.SuccessDataBaseAction + reply.List = CommonUtil.SerializeToString(list) + return &reply, nil +} diff --git a/dsBaseRpc/main.go b/dsBaseRpc/main.go index 680a6306..bfaa701c 100644 --- a/dsBaseRpc/main.go +++ b/dsBaseRpc/main.go @@ -120,7 +120,6 @@ func main() { BaseRolePersonProto.RegisterBaseRolePersonManageServer(s, &BaseRolePersonService.Rpc{}) //职务 BasePositionProto.RegisterBasePositionManageServer(s, &BasePositionService.Rpc{}) - //菜单 BaseMenuProto.RegisterBaseMenuManageServer(s, &BaseMenuService.Rpc{}) //角色 From 854b837d17c52fa66d195d083336b4c8693865ce 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 14:07:38 +0800 Subject: [PATCH 3/8] commit --- .../BaseRoleMenuService.go | 21 +++++++++++++++++++ .../BaseRoleService/BaseRoleService.go | 9 -------- dsBaseRpc/main.go | 2 +- 3 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go delete mode 100644 dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleService/BaseRoleService.go diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go new file mode 100644 index 00000000..9b2b264e --- /dev/null +++ b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go @@ -0,0 +1,21 @@ +package BaseRoleMenuService + +import ( + "context" + "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto" +) + +type Rpc struct{} //服务对象 +/* + //获取角色菜单对应关系 + rpc GetBaseRoleMenuCorr (GetCorrArg) returns (Reply) {} + //设置角色菜单对应关系 + rpc SetBaseRoleMenuCorr (SetCorrArg) returns (Reply) {} +*/ + +func GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.GetCorrArg) (*BaseRoleMenuProto.Reply, error) { +} + +func SetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.SetCorrArg) (*BaseRoleMenuProto.Reply, error) { + +} diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleService/BaseRoleService.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleService/BaseRoleService.go deleted file mode 100644 index e3db9887..00000000 --- a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleService/BaseRoleService.go +++ /dev/null @@ -1,9 +0,0 @@ -package BaseRoleMenuService - -type Rpc struct{} //服务对象 -/* - //获取角色菜单对应关系 - rpc GetBaseRoleMenuCorr (GetCorrArg) returns (Reply) {} - //设置角色菜单对应关系 - rpc SetBaseRoleMenuCorr (SetCorrArg) returns (Reply) {} -*/ diff --git a/dsBaseRpc/main.go b/dsBaseRpc/main.go index bfaa701c..ebebe13e 100644 --- a/dsBaseRpc/main.go +++ b/dsBaseRpc/main.go @@ -17,7 +17,7 @@ import ( "dsBaseRpc/RpcService/BaseRole/BaseRoleProto" "dsBaseRpc/RpcService/BaseRole/BaseRoleService" "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto" - BaseRoleMenuService "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleService" + "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService" "dsBaseRpc/RpcService/BaseRolePerson/BaseRolePersonProto" "dsBaseRpc/RpcService/BaseRolePerson/BaseRolePersonService" "dsBaseRpc/RpcService/BaseStudent/BaseStudentProto" From 0038fe9cf2dbebddf5e7e621c1bc1a0528218235 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 14:11:26 +0800 Subject: [PATCH 4/8] commit --- .../BaseRoleMenuService.go | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go index 9b2b264e..60c33c72 100644 --- a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go +++ b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go @@ -3,9 +3,11 @@ package BaseRoleMenuService import ( "context" "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto" + "fmt" ) type Rpc struct{} //服务对象 + /* //获取角色菜单对应关系 rpc GetBaseRoleMenuCorr (GetCorrArg) returns (Reply) {} @@ -13,9 +15,26 @@ type Rpc struct{} //服务对象 rpc SetBaseRoleMenuCorr (SetCorrArg) returns (Reply) {} */ -func GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.GetCorrArg) (*BaseRoleMenuProto.Reply, error) { +func (s *Rpc) GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.GetCorrArg) (*BaseRoleMenuProto.Reply, error) { + //异常处理 + defer func() { + if err := recover(); err != nil { + fmt.Printf("%s\n", err) + } + }() + //rpc响应 + var reply BaseRoleMenuProto.Reply + return &reply, nil } -func SetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.SetCorrArg) (*BaseRoleMenuProto.Reply, error) { - +func (s *Rpc) SetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.SetCorrArg) (*BaseRoleMenuProto.Reply, error) { + //异常处理 + defer func() { + if err := recover(); err != nil { + fmt.Printf("%s\n", err) + } + }() + //rpc响应 + var reply BaseRoleMenuProto.Reply + return &reply, nil } From 857dea7302e33e40f37bf1135c4ee5735146357b 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 14:11:48 +0800 Subject: [PATCH 5/8] commit --- .../BaseRoleMenuService/BaseRoleMenuService.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go index 60c33c72..73f61185 100644 --- a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go +++ b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go @@ -8,13 +8,7 @@ import ( type Rpc struct{} //服务对象 -/* - //获取角色菜单对应关系 - rpc GetBaseRoleMenuCorr (GetCorrArg) returns (Reply) {} - //设置角色菜单对应关系 - rpc SetBaseRoleMenuCorr (SetCorrArg) returns (Reply) {} -*/ - +//获取角色菜单对应关系 func (s *Rpc) GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.GetCorrArg) (*BaseRoleMenuProto.Reply, error) { //异常处理 defer func() { @@ -27,6 +21,7 @@ func (s *Rpc) GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.Get return &reply, nil } +//设置角色菜单对应关系 func (s *Rpc) SetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.SetCorrArg) (*BaseRoleMenuProto.Reply, error) { //异常处理 defer func() { From 2f08c5f1cbd543666fb48ed32a380a3f2ce8e4e9 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 14:28:20 +0800 Subject: [PATCH 6/8] commit --- .../BaseRoleMenuDao/BaseRoleMenuDao.go | 12 ++++++++ .../BaseRoleMenuService.go | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go new file mode 100644 index 00000000..e39d5f22 --- /dev/null +++ b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go @@ -0,0 +1,12 @@ +package BaseRoleMenuDao + +import ( + "dsBaseRpc/Utils/DbUtil" + "dsBaseRpc/models" +) + +var db = DbUtil.Engine + +func SetBaseRoleMenuCorr(ms []models.TBaseRoleMenu) (int64, error) { + return db.Insert(ms) +} diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go index 73f61185..33c0716d 100644 --- a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go +++ b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go @@ -2,7 +2,13 @@ package BaseRoleMenuService import ( "context" + "dsBaseRpc/Const" + "dsBaseRpc/Const/ErrorConst" + "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao" "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto" + "dsBaseRpc/Utils/CommonUtil" + "dsBaseRpc/Utils/LogUtil" + "dsBaseRpc/models" "fmt" ) @@ -16,6 +22,8 @@ func (s *Rpc) GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.Get fmt.Printf("%s\n", err) } }() + + //in.RoleId--->哪些菜单? //rpc响应 var reply BaseRoleMenuProto.Reply return &reply, nil @@ -29,7 +37,29 @@ func (s *Rpc) SetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.Set fmt.Printf("%s\n", err) } }() + //声明实体数组 + modelArray := make([]models.TBaseRoleMenu, 0) + //循环添加班级 + for i := 0; i <= len(in.MenuId); i++ { + model := new(models.TBaseRoleMenu) + model.Id = CommonUtil.GetUUID() + model.MenuId = in.MenuId[i] + model.RoleId = in.RoleId + model.BUse = 1 + //添加到实体数组 + modelArray = append(modelArray, *model) + } //rpc响应 var reply BaseRoleMenuProto.Reply + //批量增加 + _, err := BaseRoleMenuDao.SetBaseRoleMenuCorr(modelArray) + if err != nil { + reply.Success = false + reply.Message = Const.DataBaseActionError + LogUtil.Error(ErrorConst.SqlUpdateError, "执行SetBaseRoleMenuCorr时发生严重错误:"+err.Error()) + } else { + reply.Success = true + reply.Message = Const.SuccessDataBaseAction + } return &reply, nil } From 177c3c29e953c8b30e71d049f0df4cd3d6f17e94 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 15:20:43 +0800 Subject: [PATCH 7/8] commit --- .../BaseRoleMenuDao/BaseRoleMenuDao.go | 19 +++++++++++++++++++ .../BaseRoleMenuService.go | 14 ++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go index e39d5f22..24ea33f7 100644 --- a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go +++ b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao/BaseRoleMenuDao.go @@ -1,8 +1,11 @@ package BaseRoleMenuDao import ( + "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto" "dsBaseRpc/Utils/DbUtil" + "dsBaseRpc/Utils/SqlKit" "dsBaseRpc/models" + "github.com/xormplus/builder" ) var db = DbUtil.Engine @@ -10,3 +13,19 @@ var db = DbUtil.Engine func SetBaseRoleMenuCorr(ms []models.TBaseRoleMenu) (int64, error) { return db.Insert(ms) } + +//分页查询 +func GetBaseRoleMenuCorr(in *BaseRoleMenuProto.GetCorrArg) ([]map[string]interface{}, int32, error) { + //接收传入参数 + var myBuilder = builder.Dialect(builder.MYSQL).Select("t1.*").From("t_base_role_menu as t1") + myBuilder.And(builder.Eq{"t1.role_id": in.RoleId}) + myBuilder.And(builder.Eq{"t1.b_use": 1}) + //获取拼接完成的SQL语句 + sql, err := myBuilder.ToBoundSQL() + if err != nil { + return nil, 0, err + } + //调用多查询字段通用方法 + list, count, err := SqlKit.Query(sql) + return list, count, err +} diff --git a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go index 33c0716d..86e76551 100644 --- a/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go +++ b/dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService/BaseRoleMenuService.go @@ -22,10 +22,20 @@ func (s *Rpc) GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.Get fmt.Printf("%s\n", err) } }() - - //in.RoleId--->哪些菜单? //rpc响应 var reply BaseRoleMenuProto.Reply + list, count, err := BaseRoleMenuDao.GetBaseRoleMenuCorr(in) + //错误处理 + if err != nil { + reply.Success = false + reply.Message = Const.DataBaseActionError + LogUtil.Error(ErrorConst.SqlQueryError, "执行GetBaseRoleMenuCorr时发生严重错误:"+err.Error()) + return &reply, err + } + reply.Count = count + reply.Success = true + reply.Message = Const.SuccessDataBaseAction + reply.List = CommonUtil.SerializeToString(list) return &reply, nil } From 53e7b8bcfb0d53d7c7627def218bfe3d361de1dc 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 15:41:59 +0800 Subject: [PATCH 8/8] commit --- .../BaseMenu/BaseMenuDao/BaseMenuDao.go | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go b/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go index 95b85f7d..d721ab37 100644 --- a/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go +++ b/dsBaseRpc/RpcService/BaseMenu/BaseMenuDao/BaseMenuDao.go @@ -6,7 +6,9 @@ import ( "dsBaseRpc/Utils/DbUtil" "dsBaseRpc/Utils/SqlKit" "dsBaseRpc/models" + "errors" "github.com/xormplus/builder" + "strings" ) var db = DbUtil.Engine @@ -63,3 +65,46 @@ func PageBaseMenu(in *BaseMenuProto.QueryArg) ([]map[string]interface{}, int32, list, count, err := SqlKit.Query(sql) return list, count, err } + +//调整菜单的排序号,direction=1向上,drection=2向下 +func ChangeMenuOrder(menuId string, direction int32) (bool, error) { + if direction != 1 && direction != 2 { + return false, errors.New("传入调整方向有误,向上1,向下2,传入值不正确!") + } + //查找当前menu的sort_id + list := SqlKit.QueryByIds([]string{menuId}, "t_base_role_menu") + if len(list) == 0 { + return false, errors.New("没有找到对应的menu_id!") + } + parentId := list[0]["parent_id"].(string) + sortId := list[0]["sort_id"].(int32) + + sql := `select menu_id,sort_id from t_base_menu where parent_id=? and sort_id#? order sort_id limit 1` + if direction == 1 { + sql = strings.Replace(sql, "#", "<", -1) + } else { + sql = strings.Replace(sql, "#", ">", -1) + } + list2, err := db.SQL(sql, parentId, sortId).Query().List() + if err != nil { + return false, err + } + + if len(list2) == 0 { + return true, nil + } + //目标替换对象 + menuId2 := list2[0]["menu_id"].(string) + sortId2 := list2[0]["sort_id"].(int32) + + //更新 + //1、清除Redis缓存 + var ids = []string{menuId, menuId2} + var selector = SqlKit.GetBean("t_base_menu") + SqlKit.DeleteCacheByIds(ids, selector) + + sql = `update t_base_menu set sort_id=? where menu_id=?` + db.SQL(sql, sortId2, menuId).Execute() + db.SQL(sql, sortId, menuId2).Execute() + return true, nil +}