access list bug
This commit is contained in:
parent
90d42d4ad5
commit
c9a147f27c
|
@ -55,18 +55,10 @@ class AccessCreateSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class AccessSerializer(CustomModelSerializer):
|
class AccessSerializer(CustomModelSerializer):
|
||||||
obj_ = serializers.SerializerMethodField()
|
employee_name = serializers.CharField(source='employee.name', read_only=True)
|
||||||
|
post_name = serializers.CharField(source='post.name', read_only=True)
|
||||||
|
dept_name = serializers.CharField(source='dept.name', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Access
|
model = Access
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
def get_obj_(self, obj):
|
|
||||||
if obj.obj_cate == 'employee':
|
|
||||||
ep = Employee.objects.filter(id=obj.obj).first()
|
|
||||||
if ep:
|
|
||||||
return {'id': ep.id, 'name': ep.name}
|
|
||||||
elif obj.obj_cate == 'post':
|
|
||||||
pt = Post.objects.filter(id=obj.obj).first()
|
|
||||||
if pt:
|
|
||||||
return {'id': pt.id, 'name': pt.name}
|
|
||||||
|
|
|
@ -48,4 +48,5 @@ class AccessViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, CustomG
|
||||||
queryset = Access.objects.all()
|
queryset = Access.objects.all()
|
||||||
create_serializer_class = AccessCreateSerializer
|
create_serializer_class = AccessCreateSerializer
|
||||||
serializer_class = AccessSerializer
|
serializer_class = AccessSerializer
|
||||||
filterset_fields = ['area', 'type', 'obj_cate', 'post', 'dept']
|
filterset_fields = ['area', 'type', 'obj_cate', 'post', 'dept', 'employee']
|
||||||
|
select_related_fields = ['area', 'post', 'dept', 'employee']
|
||||||
|
|
|
@ -24,12 +24,14 @@ class EcmService:
|
||||||
"""事件处理服务
|
"""事件处理服务
|
||||||
"""
|
"""
|
||||||
|
|
||||||
ep_default_dict = {
|
@classmethod
|
||||||
'area_fix_id': None, # 当前所在固定区域ID
|
def get_ep_default(cls):
|
||||||
'time0': None, # 定位首次出现时间戳
|
return {
|
||||||
"time1": None, # 首次在该区域时间戳
|
'area_fix_id': None, # 当前所在固定区域ID
|
||||||
"time2": int(time.time()), # 当前时间戳
|
'time0': None, # 定位首次出现时间戳
|
||||||
}
|
"time1": None, # 首次在该区域时间戳
|
||||||
|
"time2": int(time.time()), # 当前时间戳
|
||||||
|
}
|
||||||
|
|
||||||
def create_remind_and_speak(cls):
|
def create_remind_and_speak(cls):
|
||||||
"""
|
"""
|
||||||
|
@ -91,9 +93,9 @@ class EcmService:
|
||||||
# 更新人员位置信息缓存
|
# 更新人员位置信息缓存
|
||||||
key_str = 'ep_{}'.format(blts.employee.id)
|
key_str = 'ep_{}'.format(blts.employee.id)
|
||||||
ep_loc_dict = cache.get_or_set(
|
ep_loc_dict = cache.get_or_set(
|
||||||
key_str, cls.ep_default_dict, timeout=None
|
key_str, cls.get_ep_default(), timeout=None
|
||||||
)
|
)
|
||||||
if ep_loc_dict['area_fix_id'] != area.id: # 如果区域未变化则不动
|
if ep_loc_dict['area_fix_id'] != area.id: # 如果区域未变化则不动
|
||||||
ep_loc_dict['time1'] = ep_loc_dict['time2']
|
ep_loc_dict['time1'] = ep_loc_dict['time2']
|
||||||
ep_loc_dict['area_fix_id'] = area.id
|
ep_loc_dict['area_fix_id'] = area.id
|
||||||
cache.set(key_str, ep_loc_dict)
|
cache.set(key_str, ep_loc_dict)
|
||||||
|
@ -166,7 +168,7 @@ class EcmService:
|
||||||
time2 = int(time.time())
|
time2 = int(time.time())
|
||||||
key_str = 'ep_{}'.format(blts.employee.id)
|
key_str = 'ep_{}'.format(blts.employee.id)
|
||||||
ep_loc_dict = cache.get_or_set(
|
ep_loc_dict = cache.get_or_set(
|
||||||
key_str, cls.ep_default_dict, timeout=None
|
key_str, cls.get_ep_default(), timeout=None
|
||||||
)
|
)
|
||||||
ep_loc_dict['time2'] = time2
|
ep_loc_dict['time2'] = time2
|
||||||
# 从缓存里获取固定区域列表信息
|
# 从缓存里获取固定区域列表信息
|
||||||
|
|
Loading…
Reference in New Issue