2021-02-25 16:17:17 +00:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
2021-03-21 03:24:50 +00:00
|
|
|
from .models import LoginInfor, OperationLog
|
2021-03-13 10:06:47 +00:00
|
|
|
from ..op_drf.serializers import CustomModelSerializer
|
|
|
|
from ..system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush, MessagePushUser
|
2021-02-25 16:17:17 +00:00
|
|
|
|
2021-03-07 16:14:07 +00:00
|
|
|
|
2021-02-26 15:47:54 +00:00
|
|
|
# ================================================= #
|
|
|
|
# ************** 字典管理 序列化器 ************** #
|
|
|
|
# ================================================= #
|
|
|
|
|
2021-02-27 03:14:14 +00:00
|
|
|
class DictDataSerializer(CustomModelSerializer):
|
2021-02-25 16:17:17 +00:00
|
|
|
"""
|
|
|
|
字典管理 简单序列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DictData
|
|
|
|
exclude = ('description', 'creator', 'modifier')
|
|
|
|
|
|
|
|
|
2021-02-28 06:49:09 +00:00
|
|
|
class ExportDictDataSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
导出 字典管理 简单序列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DictData
|
|
|
|
fields = ('id', 'dictName', 'dictType', 'status', 'creator', 'modifier', 'remark',)
|
|
|
|
|
|
|
|
|
2021-02-25 16:17:17 +00:00
|
|
|
class DictDataCreateUpdateSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
字典管理 创建/更新时的列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DictData
|
2021-03-04 16:03:02 +00:00
|
|
|
fields = '__all__'
|
2021-02-25 16:17:17 +00:00
|
|
|
|
|
|
|
|
2021-02-26 15:47:54 +00:00
|
|
|
# ================================================= #
|
|
|
|
# ************** 字典详情 序列化器 ************** #
|
|
|
|
# ================================================= #
|
|
|
|
|
2021-02-27 03:14:14 +00:00
|
|
|
class DictDetailsSerializer(CustomModelSerializer):
|
2021-02-25 16:17:17 +00:00
|
|
|
"""
|
|
|
|
字典详情 简单序列化器
|
|
|
|
"""
|
|
|
|
dictType = serializers.CharField(source='dict_data.dictType', default='', read_only=True)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DictDetails
|
2021-02-26 15:47:54 +00:00
|
|
|
exclude = ('description', 'creator', 'modifier')
|
|
|
|
|
2021-02-27 03:14:14 +00:00
|
|
|
|
2021-02-28 06:49:09 +00:00
|
|
|
class ExportDictDetailsSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
导出 字典详情 简单序列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DictDetails
|
|
|
|
fields = ('id', 'dictLabel', 'dictValue', 'is_default', 'status', 'sort', 'creator', 'modifier', 'remark',)
|
|
|
|
|
|
|
|
|
2021-02-27 03:14:14 +00:00
|
|
|
class DictDetailsListSerializer(CustomModelSerializer):
|
2021-02-26 15:47:54 +00:00
|
|
|
"""
|
|
|
|
字典详情List 简单序列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DictDetails
|
|
|
|
fields = ('dictLabel', 'dictValue', 'is_default')
|
2021-02-25 16:17:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
class DictDetailsCreateUpdateSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
字典详情 创建/更新时的列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DictDetails
|
2021-03-04 16:03:02 +00:00
|
|
|
fields = '__all__'
|
2021-02-27 03:14:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
# ================================================= #
|
|
|
|
# ************** 参数设置 序列化器 ************** #
|
|
|
|
# ================================================= #
|
|
|
|
|
|
|
|
class ConfigSettingsSerializer(CustomModelSerializer):
|
|
|
|
"""
|
2021-02-28 06:49:09 +00:00
|
|
|
参数设置 简单序列化器
|
2021-02-27 03:14:14 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = ConfigSettings
|
|
|
|
exclude = ('description', 'creator', 'modifier')
|
|
|
|
|
|
|
|
|
2021-02-28 06:49:09 +00:00
|
|
|
class ExportConfigSettingsSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
导出 参数设置 简单序列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = ConfigSettings
|
|
|
|
fields = (
|
2021-03-07 13:58:56 +00:00
|
|
|
'id', 'configName', 'configKey', 'configValue', 'configType', 'status', 'creator', 'modifier', 'remark')
|
2021-02-28 06:49:09 +00:00
|
|
|
|
|
|
|
|
2021-02-27 03:14:14 +00:00
|
|
|
class ConfigSettingsCreateUpdateSerializer(CustomModelSerializer):
|
|
|
|
"""
|
2021-02-28 06:49:09 +00:00
|
|
|
参数设置 创建/更新时的列化器
|
2021-02-27 03:14:14 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = ConfigSettings
|
2021-03-04 16:03:02 +00:00
|
|
|
fields = '__all__'
|
2021-02-27 19:15:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
# ================================================= #
|
|
|
|
# ************** 参数设置 序列化器 ************** #
|
|
|
|
# ================================================= #
|
|
|
|
|
|
|
|
class SaveFileSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
文件管理 简单序列化器
|
|
|
|
"""
|
|
|
|
file_url = serializers.CharField(source='file.url', read_only=True)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = SaveFile
|
|
|
|
exclude = ('description',)
|
|
|
|
|
|
|
|
|
|
|
|
class SaveFileCreateUpdateSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
字典详情 创建/更新时的列化器
|
|
|
|
"""
|
|
|
|
file_url = serializers.CharField(source='file.url', read_only=True)
|
|
|
|
|
|
|
|
def save(self, **kwargs):
|
|
|
|
files = self.context.get('request').FILES.get('file')
|
|
|
|
self.validated_data['name'] = files.name
|
|
|
|
self.validated_data['size'] = files.size
|
|
|
|
self.validated_data['type'] = files.content_type
|
|
|
|
self.validated_data['address'] = '本地存储'
|
|
|
|
instance = super().save(**kwargs)
|
|
|
|
# 进行判断是否需要OSS上传
|
|
|
|
return instance
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = SaveFile
|
2021-03-04 16:03:02 +00:00
|
|
|
fields = '__all__'
|
2021-03-07 13:58:56 +00:00
|
|
|
|
|
|
|
|
2021-03-07 16:14:07 +00:00
|
|
|
# ================================================= #
|
|
|
|
# ************** 消息通知 序列化器 ************** #
|
|
|
|
# ================================================= #
|
2021-03-07 13:58:56 +00:00
|
|
|
class MessagePushSerializer(CustomModelSerializer):
|
2021-03-07 16:14:07 +00:00
|
|
|
"""
|
|
|
|
消息通知 简单序列化器
|
|
|
|
"""
|
2021-03-07 13:58:56 +00:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = MessagePush
|
|
|
|
fields = "__all__"
|
|
|
|
|
|
|
|
def save(self, **kwargs):
|
|
|
|
return super().save(**kwargs)
|
|
|
|
|
|
|
|
|
|
|
|
class MessagePushCreateUpdateSerializer(CustomModelSerializer):
|
2021-03-07 16:14:07 +00:00
|
|
|
"""
|
|
|
|
消息通知 创建/更新时的列化器
|
|
|
|
"""
|
|
|
|
|
2021-03-07 13:58:56 +00:00
|
|
|
class Meta:
|
|
|
|
model = MessagePush
|
|
|
|
fields = "__all__"
|
2021-03-07 16:14:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ExportMessagePushSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
导出 消息通知 简单序列化器
|
|
|
|
"""
|
|
|
|
users = serializers.CharField(read_only=True)
|
|
|
|
|
|
|
|
def get_users(self, obj):
|
|
|
|
return ','.join(MessagePush.objects.filter(id=obj.id).values_list('user__username', flat=True))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = MessagePush
|
|
|
|
fields = (
|
2021-03-08 14:13:53 +00:00
|
|
|
'id', 'title', 'content', 'message_type', 'is_reviewed', 'status', 'users', 'creator', 'modifier',
|
|
|
|
'update_datetime', 'create_datetime')
|
|
|
|
|
2021-03-21 03:24:50 +00:00
|
|
|
|
2021-03-08 14:13:53 +00:00
|
|
|
class MessagePushUserSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
消息通知 用户查询简单序列化器
|
|
|
|
"""
|
|
|
|
# users = UserProfileSerializer(read_only=True)
|
|
|
|
# users = serializers.SerializerMethodField(read_only=True)
|
|
|
|
is_read = serializers.SerializerMethodField(read_only=True)
|
|
|
|
|
|
|
|
# def get_users(self, obj):
|
|
|
|
# return UserProfileSerializer(obj.user.all(), many=True).data
|
|
|
|
# 返回这个消息是否已读
|
|
|
|
def get_is_read(self, obj):
|
2021-03-21 03:24:50 +00:00
|
|
|
object = MessagePushUser.objects.filter(message_push=obj, user=self.context.get('request').user).first()
|
2021-03-08 14:13:53 +00:00
|
|
|
return object.is_read if object else False
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = MessagePush
|
|
|
|
fields = "__all__"
|
|
|
|
|
|
|
|
def save(self, **kwargs):
|
|
|
|
return super().save(**kwargs)
|
2021-03-16 13:21:38 +00:00
|
|
|
|
2021-03-21 03:24:50 +00:00
|
|
|
|
2021-03-16 13:21:38 +00:00
|
|
|
# ================================================= #
|
|
|
|
# ************** 登录日志 序列化器 ************** #
|
|
|
|
# ================================================= #
|
|
|
|
|
|
|
|
class LoginInforSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
参数设置 简单序列化器
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = LoginInfor
|
|
|
|
fields = "__all__"
|
2021-03-21 03:24:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
# ================================================= #
|
|
|
|
# ************** 操作日志 序列化器 ************** #
|
|
|
|
# ================================================= #
|
|
|
|
|
|
|
|
class OperationLogSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
操作日志 简单序列化器
|
|
|
|
"""
|
|
|
|
creator_name = serializers.SlugRelatedField(slug_field="username", source="creator", read_only=True)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = OperationLog
|
|
|
|
fields = "__all__"
|
|
|
|
|
|
|
|
|
|
|
|
class ExportOperationLogSerializer(CustomModelSerializer):
|
|
|
|
"""
|
|
|
|
导出 操作日志 简单序列化器
|
|
|
|
"""
|
|
|
|
creator_name = serializers.SlugRelatedField(slug_field="username", source="creator", read_only=True)
|
|
|
|
class Meta:
|
|
|
|
model = OperationLog
|
|
|
|
fields = ('request_modular', 'request_path', 'request_body', 'request_method', 'request_msg', 'request_ip',
|
|
|
|
'request_browser', 'response_code', 'request_location', 'request_os', 'json_result', 'status',
|
|
|
|
'creator_name')
|