access list bug

This commit is contained in:
曹前明 2022-07-01 14:54:45 +08:00
parent 90d42d4ad5
commit c9a147f27c
3 changed files with 16 additions and 21 deletions

View File

@ -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}

View File

@ -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']

View File

@ -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
# 从缓存里获取固定区域列表信息 # 从缓存里获取固定区域列表信息