| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package service
- import (
- "encoding/json"
- "lims_adapter/common"
- model "lims_adapter/model/access"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/os/glog"
- "github.com/gogf/gf/os/gtime"
- )
- func SendLockTaskPersonUpdate(tenant string, personid int, del, add []model.DeviceLockRelate) error {
- topic := g.Cfg().GetString("nsq.nsqLockDeviceTask")
- if topic == "" {
- return nil
- }
- user := User{}
- err := g.DB(tenant).Model("base_user").Where("Id = ?", personid).Struct(&user)
- if err != nil {
- return err
- }
- for _, l := range mergeDeviceLockRelate(add, del) {
- err := SendLockTask(DeviceTask{
- Tenant: tenant,
- DeviceTask: model.DeviceTask{
- TaskType: 0,
- DeviceId: l.DeviceId,
- EquipmentName: "",
- PersonId: user.Id,
- PersonName: user.Realname,
- TaskSequence: 0,
- CreatedAt: gtime.Now(),
- UpdatedAt: gtime.Now(),
- },
- })
- if err != nil {
- return err
- }
- }
- for _, l := range add {
- // 人员注册
- err = SendLockTask(DeviceTask{
- Tenant: tenant,
- DeviceTask: model.DeviceTask{
- TaskType: 1,
- DeviceId: l.DeviceId,
- PersonId: user.Id,
- PersonName: user.Realname,
- TaskSequence: 1,
- IdCard: "",
- CreatedAt: gtime.Now(),
- UpdatedAt: gtime.Now(),
- },
- })
- if err != nil {
- return err
- }
- // 照片注册
- err = SendLockTask(DeviceTask{
- Tenant: tenant,
- DeviceTask: model.DeviceTask{
- TaskType: 2,
- DeviceId: l.DeviceId,
- EquipmentName: "",
- PersonId: user.Id,
- PersonName: user.Realname,
- IdCard: "",
- Url: user.Photo,
- TaskSequence: 2,
- CreatedAt: gtime.Now(),
- UpdatedAt: gtime.Now(),
- },
- })
- if err != nil {
- return err
- }
- }
- return nil
- }
- func SendLockTask(task DeviceTask) error {
- topic := g.Cfg().GetString("nsq.nsqLockDeviceTask")
- if topic == "" {
- return nil
- }
- msg, err := json.Marshal(task)
- if err != nil {
- glog.Error("lock_device_task SendLockTask json marshal err:", err.Error())
- return err
- }
- err = common.NsqProducer.Publish(topic, msg)
- if err != nil {
- glog.Error("发送通路设备锁更新消息失败,err:", err.Error())
- }
- glog.Info("发送通路设备锁更新消息, 内容为:", string(msg))
- return nil
- }
- func mergeDeviceLockRelate(s ...[]model.DeviceLockRelate) []model.DeviceLockRelate {
- ret := []model.DeviceLockRelate{}
- exist := map[string]bool{}
- for _, i := range s {
- for _, l := range i {
- if !exist[l.DeviceId] {
- ret = append(ret, l)
- }
- }
- }
- return ret
- }
- type DeviceTask struct {
- Tenant string `json:"tenant"`
- model.DeviceTask
- }
- type User struct {
- Id int `orm:"Id,primary" json:"id"`
- Uuid string `orm:"Uuid" json:"uuid"`
- AccCode string `orm:"AccCode" json:"acc_code"`
- Code string `orm:"Code" json:"code"`
- UserName string `orm:"UserName" json:"user_name"`
- Realname string `orm:"Realname" json:"realname"`
- Photo string `orm:"Photo" json:"photo"`
- }
|