views_user_api.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from django.http import JsonResponse
  2. from django.views.decorators.csrf import csrf_exempt
  3. from django.forms import model_to_dict
  4. from .model_handler import SettingHandler, CaseAttachmentHandler
  5. from .models import CaseAttachment
  6. from Info.model_handler import CompanyHandler, UserHandler
  7. from Info.func import file_upload, get_file
  8. def attachment_maxsize(request): # 获取BOM附件大小限制
  9. company = CompanyHandler.get_by_id(request.session.get('company_id'))
  10. result = {'code': 1, 'content': None, 'msg': None}
  11. company_setting = SettingHandler.get_by_company(company)
  12. if company_setting:
  13. result['code'] = 0
  14. result['content'] = {
  15. 'company_id': company_setting.company.id,
  16. 'attachment_maxsize': company_setting.max_attachment_size
  17. }
  18. return JsonResponse(result)
  19. def user_info(request): # 从user数据中读取默认的姓名和手机号码
  20. user = UserHandler.get_by_id(request.session.get('user_id'))
  21. result = {'code': 1, 'content': None, 'msg': None}
  22. result['code'] = 0
  23. result['content'] = {
  24. 'contact_name': user.name,
  25. 'contact_mobile': user.mobile
  26. }
  27. return JsonResponse(result)
  28. @csrf_exempt
  29. def file(request):
  30. result = {'code': 1, 'content': None}
  31. company = CompanyHandler.get_by_id(request.session.get('company_id'))
  32. user = UserHandler.get_by_id(request.session.get('user_id'))
  33. if request.method == 'GET':
  34. return get_file(request)
  35. if request.method == 'POST':
  36. upload_result = file_upload(request, ['IT_service', 'case'])
  37. if upload_result['code'] == 0:
  38. case_attachment = CaseAttachment()
  39. case_attachment.company = company
  40. case_attachment.creator = user
  41. case_attachment.display_name = upload_result['target_file_name']
  42. case_attachment.url = upload_result['target_file_path'] + \
  43. upload_result['target_file_name']
  44. case_attachment.save()
  45. content = {'id': case_attachment.id, 'url': case_attachment.url,
  46. 'display_name': case_attachment.display_name}
  47. result['code'] = 0
  48. result['content'] = content
  49. else:
  50. result['content'] = '上传失败'
  51. return JsonResponse(result)
  52. if request.method == 'DELETE':
  53. post_data = eval(request.body)
  54. if CaseAttachmentHandler.del_by_id(post_data['delete_attachment_id']):
  55. result = {'code': 0, 'content': None}
  56. else:
  57. result = {'code': 1, 'content': '删除失败'}
  58. return JsonResponse(result)