123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- import json
- from django.conf import settings
- from django_logit import logit
- from django_response import response
- from TimeConvert import TimeConvert as tc
- from account.models import LensmanInfo
- from apps.contract.models import LensmanContributionContractInfo
- from apps.lensman.activity.models import LensmanContributionActivityIncomeExpensesInfo
- from member.models import MemberActivityContributionInfo
- from utils.tencentcloud.ess import (create_document, create_flow, create_scheme_url, start_flow,
- test_upload_document_files, upload_document_files)
- @logit(res=True)
- def get_contribtion_contract_status_api(request):
- user_id = request.POST.get('user_id', '')
- lensman_id = request.POST.get('lensman_id', '')
- activity_id = request.POST.get('activity_id', '')
- contribtuon_id = request.POST.get('contribtuon_id', '')
- try:
- contract = LensmanContributionContractInfo.objects.get(user_id=user_id, activity_id=activity_id, contribtuon_id=contribtuon_id)
- except LensmanContributionContractInfo.DoesNotExist:
- return response(404, 'Contract Not Found', '合同不存在')
- return response(200, data={
- 'contract_status': contract.contract_status,
- })
- @logit(res=True)
- def get_contribtion_contract_api(request):
- user_id = request.POST.get('user_id', '')
- lensman_id = request.POST.get('lensman_id', '')
- activity_id = request.POST.get('activity_id', '')
- contribution_id = request.POST.get('contribution_id', '')
- lensman = LensmanInfo.objects.get(lensman_id=lensman_id)
- contract, _ = LensmanContributionContractInfo.objects.update_or_create(
- user_id=user_id, lensman_id=lensman_id, activity_id=activity_id, contribution_id=contribution_id)
- file_ids = upload_contribution_images(contribution_id)
- flow_id = create_contribution_contract_flow(lensman)
- contract.flow_id = flow_id
- contract.save()
- document_id, fields = create_contribution_contract_document(lensman, contribution_id, file_ids, flow_id)
- contract.contract_content_fields = fields
- contract.document_id = document_id
- contract.save()
-
- flow_status = start_contribution_contract_flow(flow_id)
- scheme_url = get_contribtion_contract_sign_mppath(lensman, flow_id)
- return response(200, data={
- 'scheme_url': scheme_url
- })
- def upload_contribution_images(contribution_id):
-
- contribtuon = MemberActivityContributionInfo.objects.get(contribution_id=contribution_id)
-
- files = [
- {
- "FileBody": "文件base64编码,不含逗号前字符,即data:image/png;base64,",
- "FileName": "test.png"
- }
- ]
- file_type = 'png'
-
- upload_files_result = test_upload_document_files(files, file_type=file_type)
- return upload_files_result.FileIds
- def create_contribution_contract_flow(lensman):
-
-
- FlowName = lensman.identity_card_name + u"的投稿合同" + tc.local_string(format='%Y%m%d')
- FlowType = u"活动投稿授权书"
- Approvers = [{
- "ApproverType": 1,
- "Required": True,
- "NotifyType": None,
- "ApproverMobile": lensman.phone,
- "ApproverName": lensman.identity_card_name,
- "ApproverIdCardType": "ID_CARD",
- "ApproverIdCardNumber": lensman.identity_card_number,
- }]
- create_flow_result = create_flow(flow_name=FlowName, flow_type=FlowType, approvers=Approvers)
- return create_flow_result.FlowId
- def create_contribution_contract_document(lensman, contribution_id, file_ids, FlowId):
-
- income = LensmanContributionActivityIncomeExpensesInfo.objects.get(contribution_id=contribution_id, lensman_id=lensman.lensman_id)
- FormFields = [{
- "ComponentId": "ComponentId_0",
- "ComponentValue": lensman.identity_card_name
- }, {
- "ComponentId": "ComponentId_1",
- "ComponentValue": lensman.identity_card_number,
- }, {
- "ComponentId": "ComponentId_2",
- "ComponentValue": str(income.amount),
- }, {
- "ComponentId": "ComponentId_3",
- "ComponentValue": "零",
- }]
- for i, file_id in enumerate(file_ids):
- FormFields.append({
- "ComponentId": "ComponentId_" + str(37 + i),
- "ComponentValue": file_id,
- })
- create_document_result = create_document(flow_id=FlowId, form_fields=FormFields)
- document_id = create_document_result.DocumentId
- return document_id, FormFields
- def start_contribution_contract_flow(FlowId):
-
- start_flow_result = start_flow(flow_id=FlowId)
- return start_flow_result.Status
- def get_contribtion_contract_sign_mppath(lensman, FlowId):
-
- create_scheme_url_result = create_scheme_url(flow_id=FlowId, name=lensman.identity_card_name, mobile=lensman.phone, card_type='ID_CARD', card_number=lensman.identity_card_number)
- return create_scheme_url_result.SchemeUrl
- @logit(res=True)
- def ess_callback(request):
- return response()
|