@@ -6,6 +6,7 @@ from django_response import response  | 
            ||
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                from apps.contract.models import LensmanContributionContractInfo  | 
            
| 8 | 8 | 
                from kodo.decorators import check_admin  | 
            
| 9 | 
                +from utils.error.errno_utils import TencentCloudStatusCode  | 
            |
| 9 | 10 | 
                from utils.tencentcloud.ess import describe_file_urls  | 
            
| 10 | 11 | 
                 | 
            
| 11 | 12 | 
                 | 
            
                @@ -18,6 +19,9 @@ def get_signed_contribtion_contract_file_api(request, administrator):  | 
            ||
| 18 | 19 | 
                contract = LensmanContributionContractInfo.objects.filter(contribution_id=contribution_id, user_id=user_id).first()  | 
            
| 19 | 20 | 
                 | 
            
| 20 | 21 | 
                describe_file_urls_result = describe_file_urls(business_id=contract.flow_id)  | 
            
| 22 | 
                + if not describe_file_urls_result:  | 
            |
| 23 | 
                + return response(TencentCloudStatusCode.TENCENT_CLOUD_SDK_EXCEPTION)  | 
            |
| 24 | 
                +  | 
            |
| 21 | 25 | 
                FileUrls = describe_file_urls_result.FileUrls  | 
            
| 22 | 26 | 
                 | 
            
| 23 | 27 | 
                     return response(200, data={
               | 
            
                @@ -93,7 +93,6 @@ def upload_contribution_images(contribution_id):  | 
            ||
| 93 | 93 | 
                 | 
            
| 94 | 94 | 
                contribtuon = MemberActivityContributionInfo.objects.get(contribution_id=contribution_id)  | 
            
| 95 | 95 | 
                 | 
            
| 96 | 
                - # TODO: 从 MemberActivityContributionInfo 生成 files 对象  | 
            |
| 97 | 96 | 
                file_urls = [image['image_url'] for image in contribtuon.images]  | 
            
| 98 | 97 | 
                     file_names = [file_url.split('/')[-1] for file_url in file_urls]
               | 
            
| 99 | 98 | 
                     file_type = file_names[0].split('.')[-1]
               | 
            
                @@ -110,6 +109,8 @@ def upload_contribution_images(contribution_id):  | 
            ||
| 110 | 109 | 
                # file_type = 'png'  | 
            
| 111 | 110 | 
                upload_files_result = upload_document_files(files, file_type=file_type)  | 
            
| 112 | 111 | 
                # upload_files_result = test_upload_document_files(files, file_type=file_type)  | 
            
| 112 | 
                + if not upload_files_result:  | 
            |
| 113 | 
                + return []  | 
            |
| 113 | 114 | 
                 | 
            
| 114 | 115 | 
                return upload_files_result.FileIds  | 
            
| 115 | 116 | 
                 | 
            
                @@ -130,6 +131,8 @@ def create_contribution_contract_flow(lensman):  | 
            ||
| 130 | 131 | 
                "ApproverIdCardNumber": lensman.identity_card_number,  | 
            
| 131 | 132 | 
                }]  | 
            
| 132 | 133 | 
                create_flow_result = create_flow(flow_name=FlowName, flow_type=FlowType, approvers=Approvers)  | 
            
| 134 | 
                + if not create_flow_result:  | 
            |
| 135 | 
                + return ''  | 
            |
| 133 | 136 | 
                 | 
            
| 134 | 137 | 
                return create_flow_result.FlowId  | 
            
| 135 | 138 | 
                 | 
            
                @@ -153,21 +156,24 @@ def create_contribution_contract_document(lensman, contribution_id, file_ids, Fl  | 
            ||
| 153 | 156 | 
                "ComponentValue": "零",  | 
            
| 154 | 157 | 
                }]  | 
            
| 155 | 158 | 
                 | 
            
| 156 | 
                - for i, file_id in enumerate(file_ids):  | 
            |
| 159 | 
                + for idx, file_id in enumerate(file_ids):  | 
            |
| 157 | 160 | 
                         FormFields.append({
               | 
            
| 158 | 
                - "ComponentId": "ComponentId_" + str(37 + i),  | 
            |
| 161 | 
                + "ComponentId": "ComponentId_" + str(37 + idx),  | 
            |
| 159 | 162 | 
                "ComponentValue": file_id,  | 
            
| 160 | 163 | 
                })  | 
            
| 161 | 164 | 
                create_document_result = create_document(flow_id=FlowId, form_fields=FormFields)  | 
            
| 162 | 
                - document_id = create_document_result.DocumentId  | 
            |
| 165 | 
                + if not create_document_result:  | 
            |
| 166 | 
                + return '', FormFields  | 
            |
| 163 | 167 | 
                 | 
            
| 164 | 
                - return document_id, FormFields  | 
            |
| 168 | 
                + return create_document_result.DocumentId, FormFields  | 
            |
| 165 | 169 | 
                 | 
            
| 166 | 170 | 
                 | 
            
| 167 | 171 | 
                def start_contribution_contract_flow(FlowId):  | 
            
| 168 | 172 | 
                # 发起签署流程 https://qian.tencent.com/developers/companyApis/startFlows/StartFlow  | 
            
| 169 | 173 | 
                 | 
            
| 170 | 174 | 
                start_flow_result = start_flow(flow_id=FlowId)  | 
            
| 175 | 
                + if not start_flow_result:  | 
            |
| 176 | 
                + return ''  | 
            |
| 171 | 177 | 
                 | 
            
| 172 | 178 | 
                return start_flow_result.Status  | 
            
| 173 | 179 | 
                 | 
            
                @@ -176,6 +182,8 @@ def get_contribtion_contract_sign_mppath(lensman, FlowId):  | 
            ||
| 176 | 182 | 
                # 获取签署链接 https://qian.tencent.com/developers/companyApis/startFlows/CreateSchemeUrl  | 
            
| 177 | 183 | 
                 | 
            
| 178 | 184 | 
                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)  | 
            
| 185 | 
                + if not create_scheme_url_result:  | 
            |
| 186 | 
                + return ''  | 
            |
| 179 | 187 | 
                 | 
            
| 180 | 188 | 
                return create_scheme_url_result.SchemeUrl  | 
            
| 181 | 189 | 
                 | 
            
                @@ -224,3 +224,8 @@ class TenancyStatusCode(BaseStatusCode):  | 
            ||
| 224 | 224 | 
                TENANCY_SHOT_ALREADY_EXIST = StatusCodeField(509002, 'Tenancy Shot Already Exist', description=u'租赁镜头已存在')  | 
            
| 225 | 225 | 
                 | 
            
| 226 | 226 | 
                TENANCY_SHOT_REQUEST_NOT_FOUND = StatusCodeField(509011, 'Tenancy Shot Request Not Found', description=u'租赁镜头申请不存在')  | 
            
| 227 | 
                +  | 
            |
| 228 | 
                +  | 
            |
| 229 | 
                +class TencentCloudStatusCode(BaseStatusCode):  | 
            |
| 230 | 
                + """ 腾讯云SDK错误码 5099xx """  | 
            |
| 231 | 
                + TENCENT_CLOUD_SDK_EXCEPTION = StatusCodeField(509901, 'Tencent Cloud SDK Exception', description=u'腾讯云SDK报错')  |