Keine Beschreibung

contract_admin_views.py 3.1KB

    # -*- coding: utf-8 -*- from django.conf import settings from django_logit import logit from django_response import response from kodo.decorators import check_admin from utils.error.errno_utils import ContractStatusCode, TencentCloudStatusCode from utils.tencentcloud.ess import describe_file_urls from api.lensman import contract_mp_views from apps.contract.models import LensmanContributionContractInfo from account.models import LensmanInfo, UserInfo from member.models import MemberActivityInfo from pre.custom_message import sendwxasubscribemessage WECHAT = settings.WECHAT @logit(res=True) @check_admin def get_signed_contribtion_contract_file_api(request, administrator): contribution_id = request.POST.get('contribution_id', '') user_id = request.POST.get('user_id', '') contract = LensmanContributionContractInfo.objects.filter(contribution_id=contribution_id, user_id=user_id).first() if not contract: return response(ContractStatusCode.CONTRACT_NOT_FOUND) describe_file_urls_result = describe_file_urls(business_id=contract.flow_id) if not describe_file_urls_result: return response(TencentCloudStatusCode.TENCENT_CLOUD_SDK_EXCEPTION) FileUrls = describe_file_urls_result.FileUrls return response(200, 'Get Signed Contribution Contract File Success', u'获取投稿授权书文件成功', data={ 'file_url': FileUrls[0].Url }) @logit(res=True) @check_admin def start_contribution_contract_sign_api(request, administrator): user_id = request.POST.get('user_id', '') activity_id = request.POST.get('activity_id', '') contribution_id = request.POST.get('contribution_id', '') lensman = LensmanInfo.objects.get(user_id=user_id) act = MemberActivityInfo.objects.get(activity_id=activity_id) user = UserInfo.objects.get(user_id=user_id) contract, _ = LensmanContributionContractInfo.objects.update_or_create( user_id=user_id, lensman_id=lensman.lensman_id, activity_id=activity_id, contribution_id=contribution_id, ) file_ids = contract_mp_views.upload_contribution_images(contribution_id) flow_id = contract_mp_views.create_contribution_contract_flow(lensman) contract.flow_id = flow_id contract.save() document_id, fields = contract_mp_views.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 = contract_mp_views.start_contribution_contract_flow(flow_id) data = { "thing7": { "value": act.title[:20], }, "thing6": { "value": lensman.identity_card_name + u"的投稿合同", }, } wxcfg = WECHAT.get('MINIAPP', {}) appid = wxcfg.get('appID') 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={}'.format(flow_id)) return response(200, 'Start Contribution Contract Sign Success', u'发起投稿授权书签署成功', data={})