NatsERP.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. package NatsServer
  2. import (
  3. "ERP_user/Nats"
  4. "ERP_user/logs"
  5. "ERP_user/models/Account"
  6. "errors"
  7. "fmt"
  8. menulibs "git.baozhida.cn/ERP_libs/Menu"
  9. powerlibs "git.baozhida.cn/ERP_libs/Power"
  10. "git.baozhida.cn/ERP_libs/lib"
  11. "github.com/vmihailenco/msgpack/v5"
  12. "time"
  13. )
  14. func ERP_Read_Menu_List(prefix string) ([]menulibs.Menu, error) {
  15. sysName := Account.Get_Sys_Name(prefix)
  16. subj := fmt.Sprintf("%s_%s", prefix, "Read_Menu_List")
  17. msg, err := Nats.Nats.Request(subj, []byte(""), 3*time.Second)
  18. if err != nil {
  19. logs.Error(lib.FuncName(), sysName, err)
  20. return nil, err
  21. }
  22. type T_R struct {
  23. Code int16 `xml:"Code"`
  24. Msg string `xml:"Msg"`
  25. Data []menulibs.Menu `xml:"Data"` // 泛型
  26. }
  27. var t_R T_R
  28. err = msgpack.Unmarshal(msg.Data, &t_R)
  29. if err != nil {
  30. logs.Error(lib.FuncName(), sysName, err)
  31. return nil, err
  32. }
  33. fmt.Printf("ERP_Read_Menu_List: %+v\n", t_R)
  34. return t_R.Data, nil
  35. }
  36. func ERP_Read_User_Bind_Menu_List(prefix string, T_power string) ([]menulibs.Menu, error) {
  37. sysName := Account.Get_Sys_Name(prefix)
  38. subj := fmt.Sprintf("%s_%s", prefix, "Read_User_Bind_Menu_List")
  39. msg, err := Nats.Nats.Request(subj, []byte(T_power), 3*time.Second)
  40. if err != nil {
  41. logs.Error(lib.FuncName(), sysName, err)
  42. return nil, err
  43. }
  44. type T_R struct {
  45. Code int16 `xml:"Code"`
  46. Msg string `xml:"Msg"`
  47. Data []menulibs.Menu `xml:"Data"` // 泛型
  48. }
  49. var t_R T_R
  50. err = msgpack.Unmarshal(msg.Data, &t_R)
  51. if err != nil {
  52. logs.Error(lib.FuncName(), sysName, err)
  53. return nil, err
  54. }
  55. fmt.Printf("ERP_Read_Menu_List: %+v\n", t_R)
  56. return t_R.Data, nil
  57. }
  58. func ERP_Add_Power(prefix string, power powerlibs.Power) (id int, err error) {
  59. sysName := Account.Get_Sys_Name(prefix)
  60. subj := fmt.Sprintf("%s_%s", prefix, "Add_Power")
  61. b, _ := msgpack.Marshal(&power)
  62. msg, err := Nats.Nats.Request(subj, b, 3*time.Second)
  63. if err != nil {
  64. logs.Error(lib.FuncName(), sysName, err)
  65. return id, err
  66. }
  67. type T_R struct {
  68. Code int16 `xml:"Code"`
  69. Msg string `xml:"Msg"`
  70. Data int64 `xml:"Data"` // 泛型
  71. }
  72. var t_R T_R
  73. err = msgpack.Unmarshal(msg.Data, &t_R)
  74. if err != nil {
  75. logs.Error(lib.FuncName(), sysName, err)
  76. return
  77. }
  78. fmt.Printf("ERP_Add_Power: %+v\n", t_R)
  79. if t_R.Code != 200 {
  80. err = errors.New(t_R.Msg)
  81. logs.Error(lib.FuncName(), sysName, err)
  82. return id, err
  83. }
  84. return int(t_R.Data), nil
  85. }
  86. func ERP_Read_Power_ByT_id(prefix string, T_id string) (r powerlibs.Power, err error) {
  87. sysName := Account.Get_Sys_Name(prefix)
  88. subj := fmt.Sprintf("%s_%s", prefix, "Read_Power_ByT_id")
  89. msg, err := Nats.Nats.Request(subj, []byte(T_id), 3*time.Second)
  90. if err != nil {
  91. logs.Error(lib.FuncName(), sysName, err)
  92. return
  93. }
  94. type T_R struct {
  95. Code int16 `xml:"Code"`
  96. Msg string `xml:"Msg"`
  97. Data powerlibs.Power `xml:"Data"` // 泛型
  98. }
  99. var t_R T_R
  100. err = msgpack.Unmarshal(msg.Data, &t_R)
  101. if err != nil {
  102. logs.Error(lib.FuncName(), sysName, err)
  103. return
  104. }
  105. fmt.Printf("ERP_Read_Power_ByT_id: %+v\n", t_R)
  106. if t_R.Code != 200 {
  107. err = errors.New(t_R.Msg)
  108. logs.Error(lib.FuncName(), sysName, err)
  109. return r, err
  110. }
  111. return t_R.Data, nil
  112. }
  113. func ERP_Update_Power(prefix string, power powerlibs.Power) (id int, err error) {
  114. sysName := Account.Get_Sys_Name(prefix)
  115. subj := fmt.Sprintf("%s_%s", prefix, "Update_Power")
  116. b, _ := msgpack.Marshal(&power)
  117. msg, err := Nats.Nats.Request(subj, b, 3*time.Second)
  118. if err != nil {
  119. logs.Error(lib.FuncName(), sysName, err)
  120. return id, err
  121. }
  122. type T_R struct {
  123. Code int16 `xml:"Code"`
  124. Msg string `xml:"Msg"`
  125. Data int `xml:"Data"` // 泛型
  126. }
  127. var t_R T_R
  128. err = msgpack.Unmarshal(msg.Data, &t_R)
  129. if err != nil {
  130. logs.Error(lib.FuncName(), sysName, err)
  131. return
  132. }
  133. fmt.Printf("ERP_Update_Power: %+v\n", t_R)
  134. if t_R.Code != 200 {
  135. err = errors.New(t_R.Msg)
  136. logs.Error(lib.FuncName(), sysName, err)
  137. return id, err
  138. }
  139. return t_R.Data, nil
  140. }
  141. func ERP_Delete_Power(prefix string, power powerlibs.Power) (id int64, err error) {
  142. sysName := Account.Get_Sys_Name(prefix)
  143. subj := fmt.Sprintf("%s_%s", prefix, "Delete_Power")
  144. b, _ := msgpack.Marshal(&power)
  145. msg, err := Nats.Nats.Request(subj, b, 3*time.Second)
  146. if err != nil {
  147. logs.Error(lib.FuncName(), sysName, err)
  148. return id, err
  149. }
  150. type T_R struct {
  151. Code int16 `xml:"Code"`
  152. Msg string `xml:"Msg"`
  153. Data int64 `xml:"Data"` // 泛型
  154. }
  155. var t_R T_R
  156. err = msgpack.Unmarshal(msg.Data, &t_R)
  157. if err != nil {
  158. logs.Error(lib.FuncName(), sysName, err)
  159. return
  160. }
  161. fmt.Printf("ERP_Delete_Power: %+v\n", t_R)
  162. if t_R.Code != 200 {
  163. err = errors.New(t_R.Msg)
  164. logs.Error(lib.FuncName(), sysName, err)
  165. return id, err
  166. }
  167. return t_R.Data, nil
  168. }