暂无描述

contract_admin_views.py 3.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django_logit import logit
  4. from django_response import response
  5. from account.models import LensmanInfo, UserInfo
  6. from api.lensman import contract_mp_views
  7. from apps.contract.models import LensmanContributionContractInfo
  8. from kodo.decorators import check_admin
  9. from member.models import MemberActivityInfo
  10. from pre.custom_message import sendwxasubscribemessage
  11. from utils.error.errno_utils import ContractStatusCode, TencentCloudStatusCode
  12. from utils.tencentcloud.ess import describe_file_urls
  13. WECHAT = settings.WECHAT
  14. @logit(res=True)
  15. @check_admin
  16. def get_signed_contribtion_contract_file_api(request, administrator):
  17. contribution_id = request.POST.get('contribution_id', '')
  18. user_id = request.POST.get('user_id', '')
  19. contract = LensmanContributionContractInfo.objects.filter(contribution_id=contribution_id, user_id=user_id).first()
  20. if not contract:
  21. return response(ContractStatusCode.CONTRACT_NOT_FOUND)
  22. describe_file_urls_result = describe_file_urls(business_id=contract.flow_id)
  23. if not describe_file_urls_result:
  24. return response(TencentCloudStatusCode.TENCENT_CLOUD_SDK_EXCEPTION)
  25. FileUrls = describe_file_urls_result.FileUrls
  26. return response(200, 'Get Signed Contribution Contract File Success', u'获取投稿授权书文件成功', data={
  27. 'file_url': FileUrls[0].Url
  28. })
  29. @logit(res=True)
  30. @check_admin
  31. def start_contribution_contract_sign_api(request, administrator):
  32. user_id = request.POST.get('user_id', '')
  33. activity_id = request.POST.get('activity_id', '')
  34. contribution_id = request.POST.get('contribution_id', '')
  35. lensman = LensmanInfo.objects.get(user_id=user_id)
  36. act = MemberActivityInfo.objects.get(activity_id=activity_id)
  37. user = UserInfo.objects.get(user_id=user_id)
  38. contract, _ = LensmanContributionContractInfo.objects.update_or_create(
  39. user_id=user_id,
  40. lensman_id=lensman.lensman_id,
  41. activity_id=activity_id,
  42. contribution_id=contribution_id,
  43. )
  44. file_ids = contract_mp_views.upload_contribution_images(contribution_id)
  45. flow_id = contract_mp_views.create_contribution_contract_flow(lensman)
  46. contract.flow_id = flow_id
  47. contract.save()
  48. document_id, fields = contract_mp_views.create_contribution_contract_document(lensman, contribution_id, file_ids, flow_id)
  49. contract.contract_content_fields = fields
  50. contract.document_id = document_id
  51. contract.save()
  52. # 发起签署流程
  53. flow_status = contract_mp_views.start_contribution_contract_flow(flow_id)
  54. data = {
  55. "thing7": {
  56. "value": act.title[:20],
  57. },
  58. "thing6": {
  59. "value": lensman.identity_card_name + u"的投稿合同",
  60. },
  61. }
  62. wxcfg = WECHAT.get('MINIAPP', {})
  63. appid = wxcfg.get('appID')
  64. res = sendwxasubscribemessage(openid=user.openid_miniapp, template_id=settings.TEMPLATE_ID_CONTRIBUTION_CONTRACT, data=data, miniprogram_state=None, lang=None, page='/pages/member/activity/activity?flow_id={}&contribution_id={}'.format(flow_id, contribution_id))
  65. return response(200, 'Start Contribution Contract Sign Success', u'发起投稿授权书签署成功', data={})