dist.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package common
  2. import (
  3. "context"
  4. "fmt"
  5. "dashoo.cn/common_definition/admin/dict_def"
  6. "dashoo.cn/common_definition/admin/permission_def"
  7. "dashoo.cn/micro_libary/micro_srv"
  8. )
  9. func Dict(tenant, code string) ([]*dict_def.DictData, error) {
  10. dictService := micro_srv.InitMicroSrvClient("Dict", "micro_srv.admin")
  11. defer dictService.Close()
  12. rsp := &dict_def.DictDataResp{}
  13. err := dictService.Call(context.TODO(), "GetDictDataByType", &dict_def.DictReq{
  14. Tenant: tenant,
  15. DictCode: code,
  16. }, rsp)
  17. if err != nil {
  18. return nil, fmt.Errorf("获取字典失败 %s %s", code, err.Error())
  19. }
  20. return rsp.List, nil
  21. }
  22. func DictAsMap(tenant, code string) (map[string]string, error) {
  23. data, err := Dict(tenant, code)
  24. if err != nil {
  25. return nil, err
  26. }
  27. m := map[string]string{}
  28. for _, v := range data {
  29. m[v.Key] = v.Value
  30. }
  31. return m, nil
  32. }
  33. func Allow(tenant, uuid, permission string) (bool, error) {
  34. permissionSrv := micro_srv.InitMicroSrvClient("Permission", "micro_srv.admin")
  35. defer permissionSrv.Close()
  36. rsp := &permission_def.PermissionResp{}
  37. err := permissionSrv.Call(context.TODO(), "GetAllPermissionByUser", &permission_def.UuidReq{
  38. Tenant: tenant,
  39. Uuid: uuid,
  40. }, rsp)
  41. if err != nil {
  42. return false, fmt.Errorf("获取权限失败 %s", err.Error())
  43. }
  44. for _, p := range rsp.UserPermissions {
  45. if p == permission {
  46. return true, nil
  47. }
  48. }
  49. return false, nil
  50. }