Нет описания

contract_admin_views.py 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django_logit import logit
  4. from django_response import response
  5. from kodo.decorators import check_admin
  6. from utils.error.errno_utils import ContractStatusCode, TencentCloudStatusCode
  7. from utils.tencentcloud.ess import describe_file_urls
  8. from api.lensman import contract_mp_views
  9. from apps.contract.models import LensmanContributionContractInfo
  10. from account.models import LensmanInfo
  11. @logit(res=True)
  12. @check_admin
  13. def get_signed_contribtion_contract_file_api(request, administrator):
  14. contribution_id = request.POST.get('contribution_id', '')
  15. user_id = request.POST.get('user_id', '')
  16. contract = LensmanContributionContractInfo.objects.filter(contribution_id=contribution_id, user_id=user_id).first()
  17. if not contract:
  18. return response(ContractStatusCode.CONTRACT_NOT_FOUND)
  19. describe_file_urls_result = describe_file_urls(business_id=contract.flow_id)
  20. if not describe_file_urls_result:
  21. return response(TencentCloudStatusCode.TENCENT_CLOUD_SDK_EXCEPTION)
  22. FileUrls = describe_file_urls_result.FileUrls
  23. return response(200, 'Get Signed Contribution Contract File Success', u'获取投稿授权书文件成功', data={
  24. 'file_url': FileUrls[0].Url
  25. })
  26. @logit(res=True)
  27. @check_admin
  28. def start_contribution_contract_sign_api(request, administrator):
  29. user_id = request.POST.get('user_id', '')
  30. activity_id = request.POST.get('activity_id', '')
  31. contribution_id = request.POST.get('contribution_id', '')
  32. lensman = LensmanInfo.objects.get(user_id=user_id)
  33. contract, _ = LensmanContributionContractInfo.objects.update_or_create(
  34. user_id=user_id,
  35. lensman_id=lensman.lensman_id,
  36. activity_id=activity_id,
  37. contribution_id=contribution_id,
  38. )
  39. file_ids = contract_mp_views.upload_contribution_images(contribution_id)
  40. flow_id = contract_mp_views.create_contribution_contract_flow(lensman)
  41. contract.flow_id = flow_id
  42. contract.save()
  43. document_id, fields = contract_mp_views.create_contribution_contract_document(lensman, contribution_id, file_ids, flow_id)
  44. contract.contract_content_fields = fields
  45. contract.document_id = document_id
  46. contract.save()
  47. # 发起签署流程
  48. flow_status = contract_mp_views.start_contribution_contract_flow(flow_id)
  49. return response(200, 'Start Contribution Contract Sign Success', u'发起投稿授权书签署成功', data={})