forked from erp-dev/erp
feat: sse && multi_merchant completed
This commit is contained in:
70
api_v1/views/stock_change_views/settings.py
Normal file
70
api_v1/views/stock_change_views/settings.py
Normal file
@@ -0,0 +1,70 @@
|
||||
"""
|
||||
商户设置相关视图
|
||||
"""
|
||||
|
||||
from rest_framework import status, views
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
import logging
|
||||
|
||||
from drf_spectacular.utils import extend_schema
|
||||
from api_v1 import serializers
|
||||
|
||||
from .mixins import StockChangeViewMixin
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SetMerchantAutoCompleteView(StockChangeViewMixin, views.APIView):
|
||||
"""设置商户自动完成库存变动"""
|
||||
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@extend_schema(
|
||||
tags=['修改商户自动确认出入库设定'],
|
||||
request=serializers.SetMerchantAutoCompleteStockChangeSerializer,
|
||||
responses={200: dict},
|
||||
summary="设置商户自动确认库存变动",
|
||||
description="开启或关闭商户的库存变动自动完成功能"
|
||||
)
|
||||
def post(self, request):
|
||||
"""
|
||||
设置商户自动确认库存变动设定
|
||||
|
||||
POST /api/v1/merchant/set-auto-complete-stock-change/
|
||||
|
||||
请求参数:
|
||||
{
|
||||
"auto_complete": true // 是否自动确认库存变动
|
||||
}
|
||||
"""
|
||||
|
||||
# 检查员工权限
|
||||
if not self.check_employee_permission(request):
|
||||
return self.permission_error_response('无权限操作')
|
||||
|
||||
try:
|
||||
emp = request.user.employee
|
||||
merchant = emp.merchant
|
||||
|
||||
serializer = serializers.SetMerchantAutoCompleteStockChangeSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
auto_complete = serializer.validated_data['auto_complete']
|
||||
merchant.auto_complete_stock_change = auto_complete
|
||||
merchant.save()
|
||||
|
||||
logger.info(f"用户 {request.user.username} 设置商户 {merchant.name} 自动确认库存变动为 {auto_complete}")
|
||||
return Response({'status': 'success'}, status=status.HTTP_200_OK)
|
||||
|
||||
return self.error_response('参数验证失败', serializer.errors)
|
||||
|
||||
except AttributeError:
|
||||
logger.error(f"用户 {request.user.username} 无权限设置商户自动确认库存变动", exc_info=True)
|
||||
return self.permission_error_response('无权限操作')
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"设置商户自动确认库存变动失败: {str(e)}", exc_info=True)
|
||||
return Response({
|
||||
'error': '设置失败',
|
||||
'message': str(e)
|
||||
}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
Reference in New Issue
Block a user