脚本
This commit is contained in:
@@ -0,0 +1,443 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "TypeError",
|
||||
"evalue": "object of type 'NoneType' has no len()",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-5-1001be9337be>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 366\u001b[0m \u001b[0mmerged_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjson\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 367\u001b[0m \u001b[1;31m# 遍历数据进行新建\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 368\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmerged_df\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"data\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'list'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 369\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mmerged_df\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"data\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'list'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"takeSourceCode\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m\"yidaApproveAutoGrantCoupon\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 370\u001b[0m \u001b[0mALL_formData\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[1;31mTypeError\u001b[0m: object of type 'NoneType' has no len()"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# 基础函数配置\n",
|
||||
"import pandas as pd\n",
|
||||
"import requests\n",
|
||||
"from pathlib import Path\n",
|
||||
"from urllib.parse import quote\n",
|
||||
"import json\n",
|
||||
"import numpy as np\n",
|
||||
"import time\n",
|
||||
"from datetime import date, timedelta\n",
|
||||
"\n",
|
||||
"ROOT = Path('.').absolute() # 当前工作目录\n",
|
||||
"\n",
|
||||
"def generateToken() -> str:\n",
|
||||
" \"\"\" 生成 token \"\"\"\n",
|
||||
"\n",
|
||||
" token_api = 'https://api.dingtalk.com/v1.0/oauth2/accessToken'\n",
|
||||
"\n",
|
||||
" # 该信息在钉钉开放应用中\n",
|
||||
" data = {\n",
|
||||
" \"appKey\": \"ding5kqocon5s9oph5uq\",\n",
|
||||
" \"appSecret\": 'HL1jgsIIfLAC0eTH0A1m4mwxUDqbgsiPeCCGGE3ocM6qJBTIW7Ivt9drxF_Z4Kb_'\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(token_api, json=data)\n",
|
||||
" token = res.json()['accessToken']\n",
|
||||
"\n",
|
||||
" return token\n",
|
||||
"\n",
|
||||
"def transcation(token,FORMID,data_new):\n",
|
||||
" \"\"\" 函数功能:更新表单内容 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" payload = {\n",
|
||||
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"userId\" : \"2268275546837446\", # 曹伟 id\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"useLatestVersion\" : \"false\",\n",
|
||||
" \"formInstanceId\" : FORMID,\n",
|
||||
" \"updateFormDataJson\" : json.dumps(data_new, cls=NpEncoder),\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.put(api, headers=headers, json=payload)\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"def aggree_approval(token: str, taskId: str, processInstanceId: str, formData: dict,res_new):\n",
|
||||
" \"\"\" 函数功能:同意审批节点 --F6客户服务 应用 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com/v1.0/yida/tasks/execute'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" payload = {\n",
|
||||
" \"outResult\": \"AGREE\",\n",
|
||||
" \"appType\": \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"systemToken\": \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"remark\": \"同意(接口自动)\",\n",
|
||||
" \"formDataJson\": json.dumps(formData, cls=NpEncoder),\n",
|
||||
" \"processInstanceId\": processInstanceId,\n",
|
||||
" # \"userId\": \"yida_pub_account\",\n",
|
||||
" \"userId\": res_new, \n",
|
||||
" \"language\": \"zh_CN\",\n",
|
||||
" \"taskId\": int(taskId)\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=payload)\n",
|
||||
" # print('同意审批节点')\n",
|
||||
" return res\n",
|
||||
"def read_instances_new(token, formUuid, page, n):\n",
|
||||
" \"\"\" 函数功能:读取流程表单的所有数据 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/processes/instances?pageNumber={page}&pageSize={n}'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" formData = {\n",
|
||||
" \"appType\": \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"systemToken\": \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"userId\": \"yida_pub_account\", # 超级管理员账号\n",
|
||||
" \"language\": \"zh_CN\",\n",
|
||||
" \"formUuid\": formUuid,\n",
|
||||
" # \"searchFieldJson\": json.dumps(searchField), # 如果增加上这一项会要求升级宜搭存储\n",
|
||||
" \"instanceStatus\": \"RUNNING\"\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=formData)\n",
|
||||
" return res.json()\n",
|
||||
"def get_approval_records(token: str, processInstanceId: str):\n",
|
||||
" \"\"\" 函数功能:获取流程表单的审批记录 --F6客户服务 应用 \"\"\"\n",
|
||||
" appType = \"APP_UYZ0KG6L0CCNV80GZ66O\"\n",
|
||||
" systemToken = \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\"\n",
|
||||
" userId = \"yida_pub_account\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com/v1.0/yida/processes/operationRecords?appType={appType}&systemToken={systemToken}&userId={userId}&language=zh_CN&processInstanceId={processInstanceId}'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.get(api, headers=headers)\n",
|
||||
" # print('获取流程表单的审批记录')\n",
|
||||
" return res.json()\n",
|
||||
"def read_instances(token, formUuid, page, n):\n",
|
||||
" \"\"\" 函数功能:读取普通表单的所有数据 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/search'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" formData = {\n",
|
||||
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"userId\" : \"yida_pub_account\",\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"formUuid\" : formUuid,\n",
|
||||
" \"currentPage\" : page,\n",
|
||||
" \"pageSize\" : n\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=formData)\n",
|
||||
" return res.json()\n",
|
||||
"def read_instances_pt(token, formUuid, page, n):\n",
|
||||
" \"\"\" 函数功能:读取普通表单的所有数据 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/search'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" formData = {\n",
|
||||
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"userId\" : \"yida_pub_account\",\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"formUuid\" : formUuid,\n",
|
||||
" \"currentPage\" : page,\n",
|
||||
" \"pageSize\" : n\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=formData)\n",
|
||||
" return res.json()\n",
|
||||
"def read_processes(token, formUuid, page, n):\n",
|
||||
" \"\"\" 函数功能:读取普通表单的所有数据 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/search'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" formData = {\n",
|
||||
" \"appType\": \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"systemToken\": \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"userId\": \"yida_pub_account\", # 超级管理员账号\n",
|
||||
" \"language\": \"zh_CN\",\n",
|
||||
" \"formUuid\": formUuid,\n",
|
||||
" 'currentPage':page,\n",
|
||||
" 'pageSize':n\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=formData)\n",
|
||||
" return res.json()\n",
|
||||
"def instances_id(TOKEN,id):\n",
|
||||
" \"\"\" 函数功能:查询表单实例 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/{id}?appType=APP_UYZ0KG6L0CCNV80GZ66O&systemToken=XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2&userId=yida_pub_account&language=zh_CN'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.get(api, headers=headers)\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"def component(FORMID,TOKEN):\n",
|
||||
" \"\"\" 获取组件信息 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/formFields'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
" payload = {\n",
|
||||
" \"formUuid\" : FORMID,\n",
|
||||
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" # \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
||||
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" # \"language\" : \"zh_CN\",\n",
|
||||
" \"userId\" : \"yida_pub_account\"\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.get(api, headers=headers, json=payload)\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"def component_id(id,TOKEN):\n",
|
||||
" api = f'https://api.dingtalk.com/v1.0/yida/processes/instancesInfos/{id}?appType=APP_UYZ0KG6L0CCNV80GZ66O&systemToken=XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2&userId=yida_pub_account&language=zh_CN'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
" \n",
|
||||
" res = requests.get(api, headers=headers)\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"def find_indexes(daichuli_mendian_name,i_two):\n",
|
||||
" indexes = [i for i, x in enumerate(daichuli_mendian_name) if x == i_two]\n",
|
||||
" return indexes\n",
|
||||
"def get_staffID(TOKEN: str,ALL_DATA_staff,staff_name):\n",
|
||||
" res_new = [v['formData']['textField_lfrw3u59'] for v in ALL_DATA_staff if v['formData']['textField_lfrw3u58']== staff_name]\n",
|
||||
" # print('通过员工名称获取员工id')\n",
|
||||
" return res_new\n",
|
||||
"\n",
|
||||
"def component(FORMID,TOKEN):\n",
|
||||
" \"\"\" 获取组件信息 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/formFields'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
" payload = {\n",
|
||||
" \"formUuid\" : FORMID,\n",
|
||||
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" # \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
||||
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" # \"language\" : \"zh_CN\",\n",
|
||||
" \"userId\" : \"yida_pub_account\"\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.get(api, headers=headers, json=payload)\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"def delete_in_batches(FORMID,TOKEN,ALL_DATA_instance):\n",
|
||||
" \"\"\" 批量删除表单实例 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/batchRemove'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" payload = {\n",
|
||||
" \"formUuid\" : FORMID,\n",
|
||||
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"asynchronousExecution\" : \"true\",\n",
|
||||
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"formInstanceIdList\" : json.dumps(ALL_DATA_instance, cls=NpEncoder),\n",
|
||||
" \"userId\" : \"yida_pub_account\",\n",
|
||||
" \"executeExpression\" : \"false\" # 不触发\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=payload)\n",
|
||||
" return res.json()\n",
|
||||
"def delete_in(TOKEN,formInstanceIdList):\n",
|
||||
" \"\"\" 逐条删除表单实例 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances?appType=APP_UYZ0KG6L0CCNV80GZ66O&systemToken=XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2&userId=yida_pub_account&language=zh_CN&formInstanceId={formInstanceIdList}'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
" res = requests.delete(api, headers=headers)\n",
|
||||
" return res.json()\n",
|
||||
"def Batch_creation(FORMID,TOKEN,ALL_formData):\n",
|
||||
" \"\"\" 获取组件信息 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/batchSave'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
" payload = {\n",
|
||||
" # \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
||||
" \"noExecuteExpression\" : \"false\",\n",
|
||||
" \"formUuid\" : FORMID,\n",
|
||||
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
||||
" \"asynchronousExecution\" : \"false\",\n",
|
||||
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
||||
" \"keepRunningAfterException\" : \"false\",\n",
|
||||
" \"userId\" : \"2268275546837446\",\n",
|
||||
" \"formDataJsonList\" : json.dumps(ALL_formData, cls=NpEncoder),\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=payload)\n",
|
||||
" return res.json()\n",
|
||||
"class NpEncoder(json.JSONEncoder):\n",
|
||||
" def default(self, obj):\n",
|
||||
" if isinstance(obj, np.integer):\n",
|
||||
" return int(obj)\n",
|
||||
" elif isinstance(obj, np.floating):\n",
|
||||
" return float(obj)\n",
|
||||
" elif isinstance(obj, np.ndarray):\n",
|
||||
" return obj.tolist()\n",
|
||||
" else:\n",
|
||||
" return super(NpEncoder, self).default(obj)\n",
|
||||
"# -*- coding: utf-8 -*-\n",
|
||||
"import psycopg2\n",
|
||||
"import pandas as pd\n",
|
||||
"\n",
|
||||
"TOKEN = generateToken()\n",
|
||||
"'''读取员工对应关系:宜搭员工-ID对应表 '''\n",
|
||||
"FORMID = \"FORM-EA866E715PF9YA7ECCAGSABX91Q72PVA3WRFL6\" # 宜搭员工-ID对应表 FORM-EA866E715PF9YA7ECCAGSABX91Q72PVA3WRFL6\n",
|
||||
"# 读取流程表单数据\n",
|
||||
"form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
||||
"PAGES = form_data.get('totalCount')//100 + 1\n",
|
||||
"ALL_DATA_staff = {}\n",
|
||||
"\"\"\" 获取全量数据 \"\"\"\n",
|
||||
"for i in range(1, PAGES+1):\n",
|
||||
" # form_data = read_processes_instances(token=TOKEN, formUuid=FORMID, createFromTimeGMT=CREATE_FROM, createToTimeGMT=CREATE_TO, page=i, n=100, searchField={'textField_l7if5ff9': '否'})\n",
|
||||
" form_data = read_instances(token=TOKEN, formUuid=FORMID, page=i, n=100)\n",
|
||||
" for data in form_data.get('data'):\n",
|
||||
" ALL_DATA_staff[data['formData']['textField_lfrw3u58']]=data['formData']['textField_lfrw3u59']\n",
|
||||
"import datetime\n",
|
||||
"now_time = datetime.datetime.now()\n",
|
||||
"yes_time = now_time + datetime.timedelta(days=-2)\n",
|
||||
"yes_time_nyr = yes_time.strftime('%Y-%m-%d')# 获取日期\n",
|
||||
"import binascii\n",
|
||||
"import time\n",
|
||||
"import random\n",
|
||||
"from pyDes import des, CBC, PAD_PKCS5\n",
|
||||
"import requests\n",
|
||||
"def des_encrypt(s):\n",
|
||||
" \"\"\"\n",
|
||||
" DES 加密\n",
|
||||
" :param s: 原始字符串\n",
|
||||
" :return: 加密后字符串,16进制\n",
|
||||
" \"\"\"\n",
|
||||
" secret_key = 'HwdMBW8o'\n",
|
||||
" iv = secret_key\n",
|
||||
" k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)\n",
|
||||
" en = k.encrypt(s, padmode=PAD_PKCS5)\n",
|
||||
" return binascii.b2a_base64(en, newline=False)\n",
|
||||
"t = time.time()\n",
|
||||
"ts = int(round(t * 1000))\n",
|
||||
"randint = random.randint(100000000, 999999999)\n",
|
||||
"# req = \"1|20|\"+ \"2020-01-01\" + \"|\" + yes_time_nyr + \"_\" + str(ts) + \"_\" + str(randint)\n",
|
||||
"req = f\"1|20|2020-01-01|{yes_time_nyr}\" + \"_\" + str(ts) + \"_\" + str(randint)\n",
|
||||
"str_en = des_encrypt(req)\n",
|
||||
"req_new = str_en.decode('utf-8')\n",
|
||||
"\n",
|
||||
"url = f\"http://manage.f6yc.com/hive-admin/py/yida/renewal/coupons/fetch\"\n",
|
||||
"data = {\n",
|
||||
" 'req':req_new,\n",
|
||||
" 't':ts,\n",
|
||||
" 'r':randint\n",
|
||||
"}\n",
|
||||
"res = requests.post(url,data=data)\n",
|
||||
"merged_df = res.json()\n",
|
||||
"# 遍历数据进行新建\n",
|
||||
"for i in range(0,len(merged_df[\"data\"]['list'])):\n",
|
||||
" if merged_df[\"data\"]['list'][i][\"takeSourceCode\"] == \"yidaApproveAutoGrantCoupon\":\n",
|
||||
" ALL_formData = []\n",
|
||||
" formData = {\n",
|
||||
" 'textField_llungzvc':merged_df[\"data\"]['list'][i]['couponName'],#\"券名称\"\n",
|
||||
" 'numberField_llungzvf':merged_df[\"data\"]['list'][i]['couponValue'],#\"券金额\"\n",
|
||||
" 'dateField_llxgj2t0':merged_df[\"data\"]['list'][i]['validityBegin'],#\"券有效期\"\n",
|
||||
" 'dateField_llxgj2t1':merged_df[\"data\"]['list'][i]['validityEnd'],#\"券有效期\"\n",
|
||||
" 'dateField_llungzvi':merged_df[\"data\"]['list'][i]['takeTime'],#\"发券时间\"\n",
|
||||
" 'textField_llym1q8j':merged_df[\"data\"]['list'][i]['createBy'],#\"发券人id\"\n",
|
||||
" 'textField_llym1q8k':merged_df[\"data\"]['list'][i]['createName'],#\"发券人姓名\"\n",
|
||||
" 'textField_llungzvj':merged_df[\"data\"]['list'][i]['customerGroupName'],#\"领券人公司\"\n",
|
||||
" 'textField_llungzvk':merged_df[\"data\"]['list'][i]['cellPhone'],#\"领券人手机号\"\n",
|
||||
" 'textField_llungzvl':merged_df[\"data\"]['list'][i]['conditionValue'],#\"使用门槛\"\n",
|
||||
" 'textField_llungzvm':str(merged_df[\"data\"]['list'][i]['spuList']),#\"适用商品\"\n",
|
||||
" 'textField_llungzvn':\"宜搭审批自动发劵\",#\"券来源\"\n",
|
||||
" }\n",
|
||||
" try:\n",
|
||||
" formData['employeeField_llungzvp'] = ALL_DATA_staff[merged_df[\"data\"]['list'][i]['couponValue']]#\"技术专家\"\n",
|
||||
" except:\n",
|
||||
" formData['employeeField_llungzvp'] = \"\"\n",
|
||||
" try:\n",
|
||||
" formData['employeeField_llungzvh'] = ALL_DATA_staff[merged_df[\"data\"]['list'][i]['createName']]#\"发券人\"\n",
|
||||
" except:\n",
|
||||
" formData['employeeField_llungzvh'] = \"0627252740652855\"\n",
|
||||
" ALL_formData.append(json.dumps(formData, cls=NpEncoder)) \n",
|
||||
" FORMID = \"FORM-A8666NA1BDNDLTRV6ASGDD4J2YMW3FHOGNULLE\" \n",
|
||||
" res_new = Batch_creation(FORMID,TOKEN,ALL_formData)\n",
|
||||
" print(res_new)\n",
|
||||
" time.sleep(1)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "F6processing",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.9.4"
|
||||
},
|
||||
"orig_nbformat": 4
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
Reference in New Issue
Block a user