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{} //服务对象 //选择单条 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") //扩展它的与对应系统AppIds的关系 releation, _ := BaseRoleDao.GetRoleAppRepleation(list[0]["role_id"].(string)) list[0]["app_info"] = releation //将结果序列化 reply.Success = true reply.Count = 1 reply.Message = Const.SuccessDataBaseAction reply.List = CommonUtil.SerializeToString(list) return &reply, nil } //增加 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()) return &reply, err } // 增加角色与系统的关联关系 for i := 0; i < len(in.AppIds); i++ { model2 := new(models.TBaseRoleApp) model2.Id = CommonUtil.GetUUID() model2.AppId = in.AppIds[i] model2.RoleId = model.RoleId model2.BUse = 1 _, err = BaseRoleDao.AddRoleAppReleation(*model2) if err != nil { reply.Success = false reply.Message = Const.DataBaseActionError LogUtil.Error(ErrorConst.SqlUpdateError, "执行AddRoleAppReleation时发生严重错误:"+err.Error()) return &reply, err } } 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 } //删除与系统的关联关系 for i := 0; i < len(in.Ids); i++ { BaseRoleDao.DeleteRoleAppRepleation(in.Ids[i]) } reply.Success = true reply.Message = Const.SuccessDataBaseAction return &reply, err } //修改 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 } //对应表需要先删除再插入 BaseRoleDao.DeleteRoleAppRepleation(model.RoleId) // 增加角色与系统的关联关系 for i := 0; i < len(in.AppIds); i++ { model2 := new(models.TBaseRoleApp) model2.Id = CommonUtil.GetUUID() model2.AppId = in.AppIds[i] model2.RoleId = model.RoleId model2.BUse = 1 _, err = BaseRoleDao.AddRoleAppReleation(*model2) if err != nil { reply.Success = false reply.Message = Const.DataBaseActionError LogUtil.Error(ErrorConst.SqlUpdateError, "执行AddRoleAppReleation时发生严重错误:"+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 }