|
|
@@ -11,6 +11,7 @@ import (
|
|
|
"dashoo.cn/micro_libary/micro_srv"
|
|
|
"dashoo.cn/micro_libary/myerrors"
|
|
|
"dashoo.cn/micro_libary/request"
|
|
|
+ "github.com/gogf/gf/os/glog"
|
|
|
"github.com/gogf/gf/os/gtime"
|
|
|
"github.com/gogf/gf/util/gvalid"
|
|
|
)
|
|
|
@@ -45,6 +46,10 @@ func (s UserLockaccessService) List(ctx context.Context, req *model.UserLockacce
|
|
|
if req.UserId != 0 {
|
|
|
dao = dao.Where("a.UserId = ?", req.UserId)
|
|
|
}
|
|
|
+ if req.UserName != "" {
|
|
|
+ likestr := fmt.Sprintf("%%%s%%", req.UserName)
|
|
|
+ dao = dao.Where("b.RealName like ?", likestr)
|
|
|
+ }
|
|
|
if req.LockId != "" {
|
|
|
dao = dao.Where("a.LockId = ?", req.LockId)
|
|
|
}
|
|
|
@@ -121,7 +126,7 @@ func (s UserLockaccessService) Add(ctx context.Context, req *model.UserLockacces
|
|
|
}
|
|
|
|
|
|
exist, err := s.LockDao.DB.Table("user_lockaccess").
|
|
|
- Where("UserId = ?", s.userInfo.Id).Count()
|
|
|
+ Where("UserId = ?", req.UserId).Count()
|
|
|
if err != nil {
|
|
|
return 0, err
|
|
|
}
|
|
|
@@ -130,7 +135,16 @@ func (s UserLockaccessService) Add(ctx context.Context, req *model.UserLockacces
|
|
|
}
|
|
|
|
|
|
ent := []model.UserLockaccess{}
|
|
|
+ add := []model.DeviceLockRelate{}
|
|
|
for _, lid := range req.LockId {
|
|
|
+ lock, err := s.LockDao.Where("LockId = ?", lid).One()
|
|
|
+ if err != nil {
|
|
|
+ return 0, err
|
|
|
+ }
|
|
|
+ if lock == nil {
|
|
|
+ return 0, myerrors.NewMsgError(nil, fmt.Sprintf("门禁不存在 %s", lid))
|
|
|
+ }
|
|
|
+ add = append(add, *lock)
|
|
|
ent = append(ent, model.UserLockaccess{
|
|
|
LockId: lid,
|
|
|
UserId: req.UserId,
|
|
|
@@ -140,6 +154,13 @@ func (s UserLockaccessService) Add(ctx context.Context, req *model.UserLockacces
|
|
|
})
|
|
|
}
|
|
|
_, err = s.Dao.Insert(ent)
|
|
|
+ if err != nil {
|
|
|
+ return 0, err
|
|
|
+ }
|
|
|
+ err = SendLockTaskPersonUpdate(s.Tenant, req.UserId, nil, add)
|
|
|
+ if err != nil {
|
|
|
+ glog.Error("发送通路设备锁更新任务失败,err:", err.Error())
|
|
|
+ }
|
|
|
return 0, err
|
|
|
}
|
|
|
|
|
|
@@ -148,13 +169,30 @@ func (s UserLockaccessService) Update(ctx context.Context, req *model.UserLockac
|
|
|
if validErr != nil {
|
|
|
return myerrors.NewMsgError(nil, validErr.Current().Error())
|
|
|
}
|
|
|
+ del := []model.DeviceLockRelate{}
|
|
|
+ err := s.Dao.DB.Table("user_lockaccess a").
|
|
|
+ LeftJoin("device_lock_relate b", "a.LockId = b.LockId").
|
|
|
+ Where("a.UserId = ?", req.UserId).
|
|
|
+ Fields("b.*").Structs(&del)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- _, err := s.Dao.Where("UserId = ?", s.userInfo.Id).Delete()
|
|
|
+ _, err = s.Dao.Where("UserId = ?", req.UserId).Delete()
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
ent := []model.UserLockaccess{}
|
|
|
+ add := []model.DeviceLockRelate{}
|
|
|
for _, lid := range req.LockId {
|
|
|
+ lock, err := s.LockDao.Where("LockId = ?", lid).One()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if lock == nil {
|
|
|
+ return myerrors.NewMsgError(nil, fmt.Sprintf("门禁不存在 %s", lid))
|
|
|
+ }
|
|
|
+ add = append(add, *lock)
|
|
|
ent = append(ent, model.UserLockaccess{
|
|
|
LockId: lid,
|
|
|
UserId: req.UserId,
|
|
|
@@ -167,6 +205,13 @@ func (s UserLockaccessService) Update(ctx context.Context, req *model.UserLockac
|
|
|
return nil
|
|
|
}
|
|
|
_, err = s.Dao.Insert(ent)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ err = SendLockTaskPersonUpdate(s.Tenant, req.UserId, del, add)
|
|
|
+ if err != nil {
|
|
|
+ glog.Error("发送通路设备锁更新任务失败,err:", err.Error())
|
|
|
+ }
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
@@ -174,6 +219,23 @@ func (s UserLockaccessService) Delete(ctx context.Context, req *model.UserLockac
|
|
|
if len(req.UserId) == 0 {
|
|
|
return nil
|
|
|
}
|
|
|
+ for _, uid := range req.UserId {
|
|
|
+ del := []model.DeviceLockRelate{}
|
|
|
+ err := s.Dao.DB.Table("user_lockaccess a").
|
|
|
+ LeftJoin("device_lock_relate b", "a.LockId = b.LockId").
|
|
|
+ Where("a.UserId = ?", uid).
|
|
|
+ Fields("b.*").Structs(&del)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ fmt.Println(del)
|
|
|
+ err = SendLockTaskPersonUpdate(s.Tenant, uid, del, nil)
|
|
|
+ if err != nil {
|
|
|
+ glog.Error("发送通路设备锁更新任务失败,err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
_, err := s.Dao.Where("UserId IN (?)", req.UserId).Delete()
|
|
|
return err
|
|
|
}
|