1
0
forked from erp-dev/erp

feat: message-api for mission via wecomm agent

This commit is contained in:
2026-05-14 09:30:38 +08:00
parent 9359013b4c
commit f409f2e6ee
38 changed files with 2085 additions and 49 deletions

View File

@@ -108,6 +108,11 @@ class MissionUrgentSerializer(serializers.Serializer):
class MissionCategoryWriteSerializer(serializers.Serializer):
name = serializers.CharField(allow_blank=False, max_length=50)
payload_processor = serializers.ChoiceField(
choices=mission_models.MissionPayloadProcessorEnum.choices,
required=False,
allow_blank=True,
)
def validate_name(self, value):
value = value.strip()
@@ -251,6 +256,7 @@ class MissionCategorySerializer(serializers.ModelSerializer):
"id",
"merchant",
"name",
"payload_processor",
"created_at",
"updated_at",
]
@@ -402,6 +408,7 @@ class MissionCategoryListCreateView(APIView):
category = mission_models.MissionCategory.objects.create(
merchant=employee.merchant,
name=serializer.validated_data["name"],
payload_processor=serializer.validated_data.get("payload_processor", ""),
)
except IntegrityError:
return Response({"name": ["分类名称已存在"]}, status=status.HTTP_400_BAD_REQUEST)
@@ -428,10 +435,16 @@ class MissionCategoryDetailView(APIView):
context={"employee": employee, "instance": category},
)
serializer.is_valid(raise_exception=True)
update_fields = []
if "name" in serializer.validated_data:
category.name = serializer.validated_data["name"]
update_fields.append("name")
if "payload_processor" in serializer.validated_data:
category.payload_processor = serializer.validated_data["payload_processor"]
update_fields.append("payload_processor")
if update_fields:
try:
category.save(update_fields=["name", "updated_at"])
category.save(update_fields=[*update_fields, "updated_at"])
except IntegrityError:
return Response({"name": ["分类名称已存在"]}, status=status.HTTP_400_BAD_REQUEST)
return Response(MissionCategorySerializer(category).data)