优化修改密码

This commit is contained in:
27942
2026-01-04 15:44:07 +08:00
parent 39a700902a
commit 3d3d5ec4a3

View File

@@ -41,7 +41,7 @@ class registration(APIView):
Undertaker=Undertaker,
submit=user
)
# 记录操作日志
new_data = {
'id': prefiling.id,
@@ -60,7 +60,7 @@ class registration(APIView):
new_data=new_data,
remark=f'新增预立案登记:委托人 {prefiling.client_username},相对方 {prefiling.party_username}'
)
return Response({'message': '登记成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -73,7 +73,8 @@ class registrationList(APIView):
:param kwargs:
:return:
"""
project_registration_ids = ProjectRegistration.objects.filter(is_deleted=False).values_list('user_id', flat=True)
project_registration_ids = ProjectRegistration.objects.filter(is_deleted=False).values_list('user_id',
flat=True)
bid_ids = Bid.objects.filter(is_deleted=False).values_list('user_id', flat=True)
associated_ids = project_registration_ids.union(bid_ids)
@@ -150,15 +151,16 @@ class EditRegistration(APIView):
party_username = request.data.get('party_username')
description = request.data.get('description')
Undertaker = request.data.get('Undertaker')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
pre = PreFiling.objects.get(id=id, is_deleted=False)
except PreFiling.DoesNotExist:
return Response({'status': 'error', 'message': '预立案登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '预立案登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
# 更新字段(如果提供了值)
if times:
pre.times = times
@@ -175,7 +177,7 @@ class EditRegistration(APIView):
if Undertaker:
pre.Undertaker = Undertaker
pre.save(update_fields=['Undertaker'])
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -234,7 +236,7 @@ class Project(APIView):
type="立项登记",
user_id=pro.id
)
# 记录操作日志
new_data = {
'id': pro.id,
@@ -254,7 +256,7 @@ class Project(APIView):
new_data=new_data,
remark=f'新增立项登记:合同编号 {pro.ContractNo},负责人 {pro.responsiblefor}'
)
return Response({'message': '登记成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -362,10 +364,10 @@ class EditProject(APIView):
:return:
"""
id = request.data.get('id')
if not id:
return Response({'status': 'error', 'message': '缺少参数id', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
# 检查不可修改的参数(前端不会传入,但作为安全措施进行检查)
forbidden_params = []
if 'type' in request.data:
@@ -376,36 +378,37 @@ class EditProject(APIView):
forbidden_params.append('personincharge')
if 'user_id' in request.data:
forbidden_params.append('user_id')
if forbidden_params:
return Response({
'status': 'error',
'message': f'以下参数不允许修改: {", ".join(forbidden_params)}',
'status': 'error',
'message': f'以下参数不允许修改: {", ".join(forbidden_params)}',
'code': 1
}, status=status.HTTP_400_BAD_REQUEST)
# 获取可修改的参数(前端只传入这些参数)
times = request.data.get('times')
responsiblefor = request.data.get('responsiblefor')
charge = request.data.get('charge')
contract = request.FILES.getlist('contract')
try:
pro = ProjectRegistration.objects.get(id=id, is_deleted=False)
except ProjectRegistration.DoesNotExist:
return Response({'status': 'error', 'message': '立案登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '立案登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
import datetime
# 保存原始值用于日志记录
original_type = pro.type
original_ContractNo = pro.ContractNo
original_responsiblefor = pro.responsiblefor
original_times = pro.times
original_charge = pro.charge
update_fields_list = []
if contract:
contract = flies(contract)
# 将文件URL列表转换为字符串存储如果有多个URL用逗号分隔
@@ -415,22 +418,22 @@ class EditProject(APIView):
contract_str = ""
pro.contract = contract_str
update_fields_list.append('contract')
if times:
pro.times = times
update_fields_list.append('times')
if responsiblefor:
pro.responsiblefor = responsiblefor
update_fields_list.append('responsiblefor')
if charge:
pro.charge = charge
update_fields_list.append('charge')
pro.state = "审核中"
update_fields_list.append('state')
# 记录操作前的数据
old_data = {
'id': pro.id,
@@ -440,7 +443,7 @@ class EditProject(APIView):
'times': original_times,
'charge': original_charge
}
if update_fields_list:
pro.save(update_fields=update_fields_list)
@@ -458,14 +461,16 @@ class EditProject(APIView):
formatted_date = today.strftime("%Y-%m-%d")
Approval.objects.create(
title=(responsiblefor or original_responsiblefor) + "立项登记重新编辑",
content=(responsiblefor or original_responsiblefor) + "" + (times or original_times) + "办理立项登记,项目类型:" + original_type + ",合同编号:" + original_ContractNo + "描述:" + ",负责人:" + (responsiblefor or original_responsiblefor) + ",收费情况:" + (charge or original_charge),
content=(responsiblefor or original_responsiblefor) + "" + (
times or original_times) + "办理立项登记,项目类型:" + original_type + ",合同编号:" + original_ContractNo + "描述:" + ",负责人:" + (
responsiblefor or original_responsiblefor) + ",收费情况:" + (charge or original_charge),
times=formatted_date,
personincharge="", # personincharge不再从请求中获取
state='审核中',
type="立项登记",
user_id=pro.id
)
# 记录操作日志
log_operation(
request=request,
@@ -495,18 +500,20 @@ class DeleteProject(APIView):
id = request.data.get('id')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
pro = ProjectRegistration.objects.get(id=id, is_deleted=False)
except ProjectRegistration.DoesNotExist:
return Response({'status': 'error', 'message': '立项登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '立项登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
# 检查是否已经被案件管理关联
case_exists = Case.objects.filter(user_id=pro.user_id, is_deleted=False).exists()
if case_exists:
return Response({'status': 'error', 'message': '该立项已被案件管理关联,无法删除', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
return Response({'status': 'error', 'message': '该立项已被案件管理关联,无法删除', 'code': 1},
status=status.HTTP_400_BAD_REQUEST)
# 记录操作前的数据
try:
prefiling = PreFiling.objects.get(id=pro.user_id, is_deleted=False)
@@ -519,11 +526,11 @@ class DeleteProject(APIView):
}
except:
old_data = {'id': pro.id, 'contract_no': pro.ContractNo}
# 软删除:更新 is_deleted 字段
pro.is_deleted = True
pro.save()
# 记录操作日志
log_operation(
request=request,
@@ -536,7 +543,7 @@ class DeleteProject(APIView):
old_data=old_data,
remark=f'删除立项登记:合同编号 {pro.ContractNo}'
)
return Response({'message': '删除成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -574,7 +581,8 @@ class BidRegistration(APIView):
title=ProjectName + "投标登记",
content="项目名称:" + ProjectName + ",申请日期:" + times,
times=formatted_date,
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "", # 审批员用户名
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "",
# 审批员用户名
state='审核中',
type="投标登记",
user_id=bib.id
@@ -659,15 +667,16 @@ class EditBid(APIView):
times = request.data.get('times')
BiddingAnnouncement = request.FILES.getlist('BiddingAnnouncement')
personincharge = request.data.get('personincharge')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
bid = Bid.objects.get(id=id, is_deleted=False)
except Bid.DoesNotExist:
return Response({'status': 'error', 'message': '投标登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '投标登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
if BiddingUnit:
bid.BiddingUnit = BiddingUnit
bid.save(update_fields=['BiddingUnit'])
@@ -680,7 +689,7 @@ class EditBid(APIView):
if BiddingAnnouncement:
bid.BiddingAnnouncement = json.dumps(flies(BiddingAnnouncement))
bid.save(update_fields=['BiddingAnnouncement'])
if personincharge:
import datetime
today = datetime.datetime.now()
@@ -689,12 +698,13 @@ class EditBid(APIView):
title=bid.ProjectName + "投标登记重新编辑",
content="项目名称:" + bid.ProjectName + ",申请日期:" + (times or bid.times),
times=formatted_date,
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "", # 审批员用户名
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "",
# 审批员用户名
state='审核中',
type="投标登记",
user_id=bid.id
)
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -710,23 +720,24 @@ class DeleteBid(APIView):
id = request.data.get('id')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
bid = Bid.objects.get(id=id, is_deleted=False)
except Bid.DoesNotExist:
return Response({'status': 'error', 'message': '投标登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '投标登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
# 记录操作前的数据
old_data = {
'id': bid.id,
'project_name': bid.ProjectName,
'times': bid.times
}
# 软删除:更新 is_deleted 字段
bid.is_deleted = True
bid.save()
# 记录操作日志
log_operation(
request=request,
@@ -739,7 +750,7 @@ class DeleteBid(APIView):
old_data=old_data,
remark=f'删除投标登记:{bid.ProjectName}'
)
return Response({'message': '删除成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -780,7 +791,8 @@ class caseManagement(APIView):
title="案件管理信息提交",
content=times + "提交了一份案件信息,请审核",
times=times,
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "", # 审批员用户名
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "",
# 审批员用户名
state='审核中',
type="案件管理",
user_id=case_id.id
@@ -810,7 +822,8 @@ class caseManagement(APIView):
title="案件管理信息提交",
content=times + "提交了一份案件信息,更改了变更申请",
times=times,
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "", # 审批员用户名
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "",
# 审批员用户名
state='审核中',
type="案件管理",
user_id=case.id
@@ -873,19 +886,19 @@ class caseManagementDetail(APIView):
pre = PreFiling.objects.get(id=info.user_id, is_deleted=False)
except PreFiling.DoesNotExist:
continue # 跳过已删除的关联数据
# ProjectRegistration 可能不存在(如果还没有立项登记),使用 filter().first() 而不是 get()
pro = ProjectRegistration.objects.filter(user_id=info.user_id, is_deleted=False).first()
data.append({
"id": info.id,
"ContractNo": pro.ContractNo if pro else "", # 合同编号
"type_pro": pro.type if pro else "", # 项目类型
"ContractNo": pro.ContractNo, # 合同编号
"type_pro": pro.type, # 项目类型
"client_username": pre.client_username, # 委托人信息
"party_username": pre.party_username, # 相对方信息
"description": pre.description, # 项目简述
"responsiblefor": pro.responsiblefor if pro else "", # 负责人
"charge": pro.charge if pro else "",
"responsiblefor": pro.responsiblefor, # 负责人
"charge": pro.charge,
'times': info.times,
"AgencyContract": info.AgencyContract,
"Contractreturn": info.Contractreturn,
@@ -916,50 +929,51 @@ class EditCase(APIView):
ChangeRequest = request.data.get('ChangeRequest')
paymentcollection = request.data.get('paymentcollection')
personincharge = request.data.get('personincharge')
# 检查不可修改的参数(前端不会传入,但作为安全措施进行检查)
forbidden_params = []
if 'user_id' in request.data:
forbidden_params.append('user_id')
if forbidden_params:
return Response({
'status': 'error',
'message': f'以下参数不允许修改: {", ".join(forbidden_params)}',
'status': 'error',
'message': f'以下参数不允许修改: {", ".join(forbidden_params)}',
'code': 1
}, status=status.HTTP_400_BAD_REQUEST)
if not id:
return Response({'status': 'error', 'message': '缺少参数id', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
case = Case.objects.get(id=id, is_deleted=False)
except Case.DoesNotExist:
return Response({'status': 'error', 'message': '案件管理不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '案件管理不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
update_fields_list = []
if times:
case.times = times
update_fields_list.append('times')
if AgencyContract:
case.AgencyContract = json.dumps(flies(AgencyContract))
update_fields_list.append('AgencyContract')
if Contractreturn:
case.Contractreturn = json.dumps(flies(Contractreturn))
update_fields_list.append('Contractreturn')
if Closingapplication:
case.Closingapplication = json.dumps(flies(Closingapplication))
update_fields_list.append('Closingapplication')
if ChangeRequest:
case.ChangeRequest = ChangeRequest
case.state = "审核中"
update_fields_list.extend(['ChangeRequest', 'state'])
if personincharge:
import datetime
today = datetime.datetime.now()
@@ -968,19 +982,20 @@ class EditCase(APIView):
title="案件管理信息提交",
content=(times or case.times) + "提交了一份案件信息,更改了变更申请",
times=formatted_date,
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "", # 审批员用户名
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "",
# 审批员用户名
state='审核中',
type="案件管理",
user_id=case.id
)
if paymentcollection:
case.paymentcollection = paymentcollection
update_fields_list.append('paymentcollection')
if update_fields_list:
case.save(update_fields=update_fields_list)
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -996,23 +1011,24 @@ class DeleteCase(APIView):
id = request.data.get('id')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
case = Case.objects.get(id=id, is_deleted=False)
except Case.DoesNotExist:
return Response({'status': 'error', 'message': '案件管理不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '案件管理不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
# 记录操作前的数据
old_data = {
'id': case.id,
'times': case.times,
'state': case.state
}
# 软删除:更新 is_deleted 字段
case.is_deleted = True
case.save()
# 记录操作日志
log_operation(
request=request,
@@ -1025,7 +1041,7 @@ class DeleteCase(APIView):
old_data=old_data,
remark=f'删除案件管理ID {case.id}'
)
return Response({'message': '删除成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -1168,14 +1184,15 @@ class preFilingLinkedCases(APIView):
:return:
"""
# 获取所有关联了立项登记的预立案ID
project_registration_ids = ProjectRegistration.objects.filter(is_deleted=False).values_list('user_id', flat=True)
project_registration_ids = ProjectRegistration.objects.filter(is_deleted=False).values_list('user_id',
flat=True)
# 获取所有关联了案件管理的预立案ID包括已删除的案件
case_ids = Case.objects.all().values_list('user_id', flat=True)
# 合并所有关联的预立案ID
associated_ids = set(project_registration_ids) | set(case_ids)
data = []
for prefiling_id in associated_ids:
try:
@@ -1191,7 +1208,7 @@ class preFilingLinkedCases(APIView):
})
except PreFiling.DoesNotExist:
continue # 跳过已删除的关联数据
return Response({'message': '展示成功', 'data': data, 'code': 0}, status=status.HTTP_200_OK)
@@ -1311,15 +1328,16 @@ class EditApplication(APIView):
seal_type = request.data.get('seal_type')
file = request.FILES.getlist('file')
personincharge = request.data.get('personincharge')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
app = SealApplication.objects.get(id=id, is_deleted=False)
except SealApplication.DoesNotExist:
return Response({'status': 'error', 'message': '申请用印不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '申请用印不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
if Printingpurpose:
app.Printingpurpose = Printingpurpose
app.save(update_fields=['Printingpurpose'])
@@ -1338,20 +1356,23 @@ class EditApplication(APIView):
if file:
app.file = json.dumps(flies(file))
app.save(update_fields=['file'])
if personincharge:
now = datetime.now()
date_str = now.strftime('%Y-%m-%d')
Approval.objects.create(
title=app.username + "申请用印重新编辑",
content=app.username + "" + date_str + "申请用印,用印事由:" + (Reason or app.Reason) + ",盖章份数:" + (seal_number or app.seal_number) + "盖着类型:" + (seal_type or app.seal_type),
content=app.username + "" + date_str + "申请用印,用印事由:" + (
Reason or app.Reason) + ",盖章份数:" + (seal_number or app.seal_number) + "盖着类型:" + (
seal_type or app.seal_type),
times=date_str,
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "", # 审批员用户名
personincharge=format_personincharge(personincharge, is_department=False) if personincharge else "",
# 审批员用户名
state='审核中',
type="申请用印",
user_id=app.id
)
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -1367,12 +1388,13 @@ class DeleteApplication(APIView):
id = request.data.get('id')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
app = SealApplication.objects.get(id=id, is_deleted=False)
except SealApplication.DoesNotExist:
return Response({'status': 'error', 'message': '申请用印不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '申请用印不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
# 软删除:更新 is_deleted 字段
app.is_deleted = True
app.save()
@@ -1473,15 +1495,16 @@ class EditWarehousing(APIView):
lawyer = request.data.get('lawyer')
deadline = request.data.get('deadline')
contract = request.FILES.getlist('contract')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
ware = Warehousing.objects.get(id=id, is_deleted=False)
except Warehousing.DoesNotExist:
return Response({'status': 'error', 'message': '入库登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '入库登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
if unit:
ware.unit = unit
ware.save(update_fields=['unit'])
@@ -1497,7 +1520,7 @@ class EditWarehousing(APIView):
if contract:
ware.contract = json.dumps(flies(contract))
ware.save(update_fields=['contract'])
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -1513,12 +1536,13 @@ class DeleteWarehousing(APIView):
id = request.data.get('id')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
ware = Warehousing.objects.get(id=id, is_deleted=False)
except Warehousing.DoesNotExist:
return Response({'status': 'error', 'message': '入库登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '入库登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
# 软删除:更新 is_deleted 字段
ware.is_deleted = True
ware.save()
@@ -1628,7 +1652,8 @@ class DeletePlatformDetail(APIView):
platform.save()
return Response({'message': '删除成功', 'code': 0}, status=status.HTTP_200_OK)
except RegisterPlatform.DoesNotExist:
return Response({'status': 'error', 'message': '注册平台登记不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '注册平台登记不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
class bulletin(APIView):
@@ -1824,7 +1849,8 @@ class LwaDetail(APIView):
lawyer_file.save()
return Response({'message': '删除成功', 'code': 0}, status=status.HTTP_200_OK)
except LawyerFlie.DoesNotExist:
return Response({'status': 'error', 'message': '律师文件不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '律师文件不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
class EditLawyerFlie(APIView):
@@ -1840,15 +1866,16 @@ class EditLawyerFlie(APIView):
title = request.data.get('title')
file = request.FILES.getlist('file')
remark = request.data.get('remark')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
law = LawyerFlie.objects.get(id=id, is_deleted=False)
except LawyerFlie.DoesNotExist:
return Response({'status': 'error', 'message': '律师文件不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
return Response({'status': 'error', 'message': '律师文件不存在', 'code': 1},
status=status.HTTP_404_NOT_FOUND)
if title:
law.title = title
law.save(update_fields=['title'])
@@ -1858,7 +1885,7 @@ class EditLawyerFlie(APIView):
if file:
law.file = json.dumps(flies(file))
law.save(update_fields=['file'])
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -1957,15 +1984,15 @@ class EditSchedule(APIView):
tiems = request.data.get('tiems')
end_time = request.data.get('end_time')
remark = request.data.get('remark')
if not id:
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
try:
schedule = Schedule.objects.get(id=id, is_deleted=False)
except Schedule.DoesNotExist:
return Response({'status': 'error', 'message': '日程不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
if title:
schedule.title = title
schedule.save(update_fields=['title'])
@@ -1978,7 +2005,7 @@ class EditSchedule(APIView):
if remark:
schedule.remark = remark
schedule.save(update_fields=['remark'])
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -2124,7 +2151,8 @@ class addRole(APIView):
# 检查角色名是否已存在
if role.objects.filter(RoleName=RoleName).exists():
return Response({'status': 'error', 'message': '角色名已存在,不能重复', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
return Response({'status': 'error', 'message': '角色名已存在,不能重复', 'code': 1},
status=status.HTTP_400_BAD_REQUEST)
role.objects.create(RoleName=RoleName, remark=remark)
return Response({'message': '添加成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -2173,7 +2201,8 @@ class EditRole(APIView):
if RoleName:
# 检查角色名是否已被其他角色使用(排除当前角色)
if role.objects.filter(RoleName=RoleName).exclude(id=id).exists():
return Response({'status': 'error', 'message': '角色名已存在,不能重复', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
return Response({'status': 'error', 'message': '角色名已存在,不能重复', 'code': 1},
status=status.HTTP_400_BAD_REQUEST)
ro.RoleName = RoleName
ro.save(update_fields=['RoleName'])
if remark:
@@ -2186,6 +2215,7 @@ class displayRole(APIView):
"""
角色列表展示
"""
def post(self, request, *args, **kwargs):
RoleName = request.data.get('RoleName')
obj = Q()
@@ -2276,18 +2306,20 @@ class DeleteRegistration(APIView):
try:
pre = PreFiling.objects.get(id=id, is_deleted=False)
# 检查是否已经被立项登记关联
project_exists = ProjectRegistration.objects.filter(user_id=id, is_deleted=False).exists()
# 检查是否已经被投标登记关联
bid_exists = Bid.objects.filter(user_id=id, is_deleted=False).exists()
if project_exists:
return Response({'status': 'error', 'message': '该预立案已被立项登记,无法删除', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
return Response({'status': 'error', 'message': '该预立案已被立项登记,无法删除', 'code': 1},
status=status.HTTP_400_BAD_REQUEST)
if bid_exists:
return Response({'status': 'error', 'message': '该预立案已被投标登记,无法删除', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
return Response({'status': 'error', 'message': '该预立案已被投标登记,无法删除', 'code': 1},
status=status.HTTP_400_BAD_REQUEST)
# 软删除:更新 is_deleted 字段
pre.is_deleted = True
pre.save()
@@ -2310,14 +2342,14 @@ class TransferCase(APIView):
old_undertaker = request.data.get('old_undertaker') # 原承办人员(离职用户)
new_undertaker = request.data.get('new_undertaker') # 新承办人员
case_ids = request.data.get('case_ids') # 要转移的案件ID列表可选如果不传则转移所有案件
if not all([old_undertaker, new_undertaker]):
return Response({
'status': 'error',
'message': '缺少参数:原承办人员和新承办人员不能为空',
'code': 1
}, status=status.HTTP_400_BAD_REQUEST)
# 检查原承办人员是否存在
try:
old_user = User.objects.get(username=old_undertaker)
@@ -2327,7 +2359,7 @@ class TransferCase(APIView):
'message': '原承办人员不存在',
'code': 1
}, status=status.HTTP_404_NOT_FOUND)
# 检查新承办人员是否存在
try:
new_user = User.objects.get(username=new_undertaker)
@@ -2337,7 +2369,7 @@ class TransferCase(APIView):
'message': '新承办人员不存在',
'code': 1
}, status=status.HTTP_404_NOT_FOUND)
# 查询要转移的案件
if case_ids and isinstance(case_ids, list):
# 转移指定的案件
@@ -2345,16 +2377,16 @@ class TransferCase(APIView):
else:
# 转移所有案件
cases = PreFiling.objects.filter(Undertaker=old_undertaker)
case_count = cases.count()
if case_count == 0:
return Response({
'status': 'error',
'message': '没有找到需要转移的案件',
'code': 1
}, status=status.HTTP_400_BAD_REQUEST)
# 执行转移
transferred_cases = []
for case in cases:
@@ -2367,7 +2399,7 @@ class TransferCase(APIView):
'party_username': case.party_username,
'description': case.description
})
return Response({
'message': f'案件转移成功,共转移{case_count}个案件',
'code': 0,