first commit
This commit is contained in:
102
code/system/apis/vdes/chat/contacts.py
Normal file
102
code/system/apis/vdes/chat/contacts.py
Normal file
@@ -0,0 +1,102 @@
|
||||
from system.models import Contacts, HistorySession
|
||||
from ninja import Router, Schema, Field
|
||||
|
||||
router = Router()
|
||||
|
||||
class addContactSchema(Schema):
|
||||
MMSI: str = Field(None, alias="mmsi")
|
||||
name: str = Field(None, alias="name")
|
||||
phone: str = Field(None, alias="phone")
|
||||
region: str = Field(None, alias="region")
|
||||
|
||||
class deleteContactSchema(Schema):
|
||||
MMSI: str = Field(None, alias="mmsi")
|
||||
|
||||
class editContactSchema(Schema):
|
||||
oldMMSI: str = Field(None, alias="old_mmsi")
|
||||
newMMSI: str = Field(None, alias="new_mmsi")
|
||||
name: str = Field(None, alias="name")
|
||||
phone: str = Field(None, alias="phone")
|
||||
region: str = Field(None, alias="region")
|
||||
|
||||
|
||||
@router.get('/contactsList')
|
||||
def get_contacts_list(request):
|
||||
try:
|
||||
contacts = Contacts.objects.all().values()
|
||||
return {
|
||||
"code": 200,
|
||||
"message": "成功",
|
||||
"data": list(contacts)
|
||||
}
|
||||
except Exception as e:
|
||||
return {'code': 500, 'message': str(e)}
|
||||
|
||||
@router.post('/deleteContact')
|
||||
def delete_contact(request, data: deleteContactSchema):
|
||||
try:
|
||||
if not data.MMSI:
|
||||
return {'code': 400, 'message': 'MMSI不能为空'}
|
||||
contact = Contacts.objects.filter(MMSI=data.MMSI).first()
|
||||
if not contact:
|
||||
return {'code': 404, 'message': '未找到对应联系人'}
|
||||
# 删除关联的历史会话记录
|
||||
HistorySession.objects.filter(FormId=contact.Id).delete()
|
||||
contact.delete()
|
||||
return {'code': 200, 'message': '删除成功'}
|
||||
except Exception as e:
|
||||
return {'code': 500, 'message': str(e)}
|
||||
|
||||
|
||||
@router.post('/editContact')
|
||||
def edit_contact(request, data: editContactSchema):
|
||||
try:
|
||||
if not data.oldMMSI:
|
||||
return {'code': 400, 'message': '原MMSI不能为空'}
|
||||
|
||||
contact = Contacts.objects.filter(MMSI=data.oldMMSI).first()
|
||||
if not contact:
|
||||
return {'code': 404, 'message': '未找到对应联系人'}
|
||||
# 更新联系人信息
|
||||
contact.MMSI = data.newMMSI if data.newMMSI else contact.MMSI
|
||||
contact.Name = data.name if data.name else contact.Name
|
||||
contact.Mobile = data.phone if data.phone else contact.Mobile
|
||||
contact.Region = data.region if data.region else contact.Region
|
||||
contact.save()
|
||||
|
||||
# 更新关联的历史会话记录
|
||||
if data.newMMSI or data.name:
|
||||
HistorySession.objects.filter(FormId=contact.Id).update(
|
||||
MMSI=data.newMMSI if data.newMMSI else contact.MMSI,
|
||||
Name=data.name if data.name else contact.Name
|
||||
)
|
||||
|
||||
return {
|
||||
'code': 200,
|
||||
'message': '修改成功',
|
||||
'data': {
|
||||
'id': contact.Id,
|
||||
'MMSI': contact.MMSI
|
||||
}
|
||||
}
|
||||
except Exception as e:
|
||||
return {'code': 500, 'message': str(e)}
|
||||
|
||||
@router.post('/addContact')
|
||||
def add_contact(request, data: addContactSchema):
|
||||
try:
|
||||
if not data.MMSI:
|
||||
return {'code': 400, 'message': 'MMSI不能为空'}
|
||||
name = data.name if data.name else data.MMSI
|
||||
contact = Contacts.objects.create(
|
||||
MMSI=data.MMSI,
|
||||
Name=name,
|
||||
Mobile=data.phone,
|
||||
Region=data.region
|
||||
)
|
||||
return {
|
||||
'code': 200,
|
||||
'message': '成功',
|
||||
}
|
||||
except Exception as e:
|
||||
return {'code': 500, 'message': str(e)}
|
||||
Reference in New Issue
Block a user