base.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package service
  2. import (
  3. "encoding/json"
  4. "runtime"
  5. pb "sportfitness/base/api/grpc/base"
  6. "sportfitness/base/errors"
  7. "sportfitness/base/repository/grpc/bsw/im"
  8. im2 "sportfitness/base/repository/grpc/bsw/im/im"
  9. "strings"
  10. "git.beswell.com/gframe/application"
  11. "github.com/sirupsen/logrus"
  12. )
  13. type base struct {
  14. }
  15. func RegisterServices() {
  16. application.GetApp().SetServiceRegisterHandler(func(servicePathList []string) {
  17. logrus.Info("同步服务权限")
  18. im.RegisterServiceList(servicePathList)
  19. })
  20. err := application.GetApp().RegisterService("",
  21. User{})
  22. if err != nil {
  23. logrus.Fatalf("服务保存失败: \n%s", err)
  24. }
  25. }
  26. func GetFuncName() string {
  27. pc := make([]uintptr, 1)
  28. runtime.Callers(2, pc)
  29. f := runtime.FuncForPC(pc[0]).Name()
  30. println(f)
  31. l := strings.Split(f, ".")
  32. serviceName := l[1] + "/" + l[2]
  33. return serviceName
  34. }
  35. func (base) checkPermission(token string, shopId int64) (optId int64) {
  36. // 用token获取用户ID
  37. optId = User{}.SubSessionCheck(token)
  38. pc := make([]uintptr, 1)
  39. runtime.Callers(2, pc)
  40. f := runtime.FuncForPC(pc[0]).Name()
  41. println(f)
  42. l := strings.Split(f, ".")
  43. serviceName := l[1] + "/" + l[2]
  44. // 目标商家是否有操作权限
  45. rs := im.SubPermissionListCheck(token, shopId, []string{serviceName}).ResultList[0]
  46. if !rs {
  47. // todo 暂时忽略权限校验
  48. //panic(errors.PmsnError)
  49. }
  50. return
  51. }
  52. func (base) JSONToMap(str string) (map[string]interface{}, error) {
  53. var tempMap map[string]interface{}
  54. err := json.Unmarshal([]byte(str), &tempMap)
  55. if err != nil {
  56. err = errors.J2MError
  57. return tempMap, err
  58. }
  59. return tempMap, nil
  60. }
  61. func (base) WebStatusCheck(s pb.WebStatus) pb.WebStatus {
  62. var ws pb.WebStatus
  63. switch s {
  64. case 0:
  65. ws = pb.WebStatus_Ban
  66. case 1:
  67. ws = pb.WebStatus_On
  68. case 9:
  69. ws = pb.WebStatus_Delete
  70. case 99:
  71. ws = pb.WebStatus_All
  72. default:
  73. panic(errors.WebStatusError)
  74. }
  75. return ws
  76. }
  77. func (b base) WebStatusToManageStatus(s pb.WebStatus) im2.Status {
  78. var status im2.Status
  79. ws := b.WebStatusCheck(s)
  80. switch ws {
  81. case 99:
  82. status = im2.Status_Null
  83. case 0:
  84. status = im2.Status_Ban
  85. case 1:
  86. status = im2.Status_On
  87. case 9:
  88. status = im2.Status_Delete
  89. default:
  90. panic(errors.WebToImStatusError)
  91. }
  92. return status
  93. }
  94. func (base) ManageStatusToWebStatus(s im2.Status) (status pb.WebStatus) {
  95. switch s {
  96. case 1:
  97. status = pb.WebStatus_Ban
  98. case 2:
  99. status = pb.WebStatus_On
  100. case 9:
  101. status = pb.WebStatus_Delete
  102. default:
  103. panic(errors.ImToWebtatusError)
  104. }
  105. return status
  106. }