lock_device_task.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package service
  2. import (
  3. "encoding/json"
  4. "lims_adapter/common"
  5. model "lims_adapter/model/access"
  6. "github.com/gogf/gf/frame/g"
  7. "github.com/gogf/gf/os/glog"
  8. "github.com/gogf/gf/os/gtime"
  9. )
  10. func SendLockTaskPersonUpdate(tenant string, personid int, del, add []model.DeviceLockRelate) error {
  11. topic := g.Cfg().GetString("nsq.nsqLockDeviceTask")
  12. if topic == "" {
  13. return nil
  14. }
  15. user := User{}
  16. err := g.DB(tenant).Model("base_user").Where("Id = ?", personid).Struct(&user)
  17. if err != nil {
  18. return err
  19. }
  20. for _, l := range add {
  21. // 人员注册
  22. err = SendLockTask(DeviceTask{
  23. Tenant: tenant,
  24. DeviceTask: model.DeviceTask{
  25. TaskType: 1,
  26. DeviceId: l.DeviceId,
  27. PersonId: user.Id,
  28. PersonName: user.Realname,
  29. TaskSequence: 1,
  30. IdCard: "",
  31. CreatedAt: gtime.Now(),
  32. UpdatedAt: gtime.Now(),
  33. },
  34. })
  35. if err != nil {
  36. return err
  37. }
  38. // 照片注册
  39. err = SendLockTask(DeviceTask{
  40. Tenant: tenant,
  41. DeviceTask: model.DeviceTask{
  42. TaskType: 2,
  43. DeviceId: l.DeviceId,
  44. EquipmentName: "",
  45. PersonId: user.Id,
  46. PersonName: user.Realname,
  47. IdCard: "",
  48. Url: user.Photo,
  49. TaskSequence: 2,
  50. CreatedAt: gtime.Now(),
  51. UpdatedAt: gtime.Now(),
  52. },
  53. })
  54. if err != nil {
  55. return err
  56. }
  57. }
  58. for _, l := range del {
  59. err := SendLockTask(DeviceTask{
  60. Tenant: tenant,
  61. DeviceTask: model.DeviceTask{
  62. TaskType: 0,
  63. DeviceId: l.DeviceId,
  64. EquipmentName: "",
  65. PersonId: user.Id,
  66. PersonName: user.Realname,
  67. TaskSequence: 0,
  68. CreatedAt: gtime.Now(),
  69. UpdatedAt: gtime.Now(),
  70. },
  71. })
  72. if err != nil {
  73. return err
  74. }
  75. }
  76. return nil
  77. }
  78. func SendLockTask(task DeviceTask) error {
  79. topic := g.Cfg().GetString("nsq.nsqLockDeviceTask")
  80. if topic == "" {
  81. return nil
  82. }
  83. msg, err := json.Marshal(task)
  84. if err != nil {
  85. glog.Error("lock_device_task SendLockTask json marshal err:", err.Error())
  86. return err
  87. }
  88. err = common.NsqProducer.Publish(topic, msg)
  89. if err != nil {
  90. glog.Error("发送通路设备锁更新消息失败,err:", err.Error())
  91. }
  92. glog.Info("发送通路设备锁更新消息, 内容为:", string(msg))
  93. return nil
  94. }
  95. type DeviceTask struct {
  96. Tenant string `json:"tenant"`
  97. model.DeviceTask
  98. }
  99. type User struct {
  100. Id int `orm:"Id,primary" json:"id"`
  101. Uuid string `orm:"Uuid" json:"uuid"`
  102. AccCode string `orm:"AccCode" json:"acc_code"`
  103. Code string `orm:"Code" json:"code"`
  104. UserName string `orm:"UserName" json:"user_name"`
  105. Realname string `orm:"Realname" json:"realname"`
  106. Photo string `orm:"Photo" json:"photo"`
  107. }