暫無描述

contract_mp_views.py 4.5KB

    # -*- coding: utf-8 -*- from django.conf import settings from django_logit import logit from django_response import response from TimeConvert import TimeConvert as tc from apps.contract.models import LensmanContributionContractInfo from apps.lensman.activity.models import LensmanContributionActivityIncomeExpensesInfo from account.models import LensmanInfo from member.models import MemberActivityContributionInfo @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', '') contribtuon_id = request.POST.get('contribtuon_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, contribtuon_id=contribtuon_id) file_ids = upload_contribution_images(contribtuon_id) operator = { "UserId": settings.CONTRACT_LENSMAN_CONTRIBUTION_OPERATOR_ID } flow_id = create_contribution_contract_flow(lensman, operator) contract.flow_id = flow_id contract.save() document_id, fields = create_contribution_contract_document(lensman, file_ids, flow_id, operator) contract.contract_content_fields = fields contract.document_id = document_id contract.save() # TODO : 发起签署流程 start_contribution_contract_flow(flow_id, operator) scheme_url = get_contribtion_contract_sign_mppath(operator, lensman, flow_id) return response(200, data={ 'contract': contract.mpdata, 'scheme_url': scheme_url }) def upload_contribution_images(contribtuon_id): # TODO : 上传MemberActivityContributionInfo图片 https://qian.tencent.com/developers/companyApis/templatesAndFiles/UploadFiles contribtuon = MemberActivityContributionInfo.objects.get(contribtuon_id=contribtuon_id) # 返回图片的 file_ids return [] def create_contribution_contract_flow(lensman, Operator): # TODO : 创建签署流程 https://qian.tencent.com/developers/companyApis/startFlows/CreateFlow # 创建签署流程参数 Operator FlowName = lensman.identity_card_name + "的投稿合同" + tc.local_string(format='%Y%m%d') FlowType = '活动投稿授权书' Approvers = [{ "ApproverType": "1", "Required": "true", "NotifyType": "none", "ApproverMobile": lensman.phone, "ApproverName": lensman.identity_card_name, "ApproverIdCardNumber": lensman.identity_card_number, }] # 创建签署流程返回值 FlowId return '' def create_contribution_contract_document(lensman, contribtuon_id, file_ids, FlowId, Operator): # TODO : 创建电子签文档 https://qian.tencent.com/developers/companyApis/startFlows/CreateDocument income = LensmanContributionActivityIncomeExpensesInfo.objects.get(contribtuon_id=contribtuon_id, lensman_id=lensman.lensman_id) # 创建电子文档参数 Operator FlowId TemplateId = settings.CONTRACT_LENSMAN_CONTRIBUTION_TEMPLATE_ID FormFields = [{ "ComponentName": "ComponentId_0", "ComponentValue": lensman.identity_card_name }, { "ComponentName": "ComponentId_1", "ComponentValue": lensman.identity_card_number, }, { "ComponentName": "ComponentId_2", "ComponentValue": income.amount, }, { "ComponentName": "ComponentId_3", "ComponentValue": "", }] for i, file_id in enumerate(file_ids): FormFields.append({ "ComponentName": "ComponentId_" + str(37 + i), "ComponentValue": file_id, }) # 返回创建电子文档 DocumentId return '', FormFields def start_contribution_contract_flow(FlowId, Operator): # TODO : 发起签署流程 https://qian.tencent.com/developers/companyApis/startFlows/StartFlow # 发起签署流程参数 Operator FlowId # return '' def get_contribtion_contract_sign_mppath(Operator, lensman, FlowId): # TODO : 获取签署链接 https://qian.tencent.com/developers/companyApis/startFlows/CreateSchemeUrl Name = lensman.identity_card_name Mobile = lensman.phone IdCardType = 'ID_CARD' IdCardNumber = lensman.identity_card_number EndPoint = 'APP' PathType = '1' #腾讯电子签小程序流程合同的详情页 AutoJumpBack = 'true' #签署完成会自动跳转回来 # 返回 SchemeUrl return '' @logit(res=True) def ess_callback(request): return response()