作者 bianxinhua

add README

@@ -2,21 +2,14 @@ @@ -2,21 +2,14 @@
2 <project version="4"> 2 <project version="4">
3 <component name="ChangeListManager"> 3 <component name="ChangeListManager">
4 <list default="true" id="d6814b48-28ec-40b6-bcea-dcd9b8613715" name="Default Changelist" comment=""> 4 <list default="true" id="d6814b48-28ec-40b6-bcea-dcd9b8613715" name="Default Changelist" comment="">
5 - <change afterPath="$PROJECT_DIR$/api/app_api/order/intentions_api.yml" afterDir="false" />  
6 - <change afterPath="$PROJECT_DIR$/testcases/order/order_intentions_testcases.yml" afterDir="false" /> 5 + <change afterPath="$PROJECT_DIR$/api/app_api/dividend/statistics_api.yml" afterDir="false" />
  6 + <change afterPath="$PROJECT_DIR$/testcases/dividend/dividend_statistics_testcases.yml" afterDir="false" />
7 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> 7 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
8 - <change beforePath="$PROJECT_DIR$/api/app_api/order/list_0_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/app_api/order/list_0_api.yml" afterDir="false" />  
9 - <change beforePath="$PROJECT_DIR$/api/app_api/order/list_1_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/app_api/order/list_1_api.yml" afterDir="false" />  
10 - <change beforePath="$PROJECT_DIR$/api/app_api/order/list_2_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/app_api/order/list_2_api.yml" afterDir="false" />  
11 - <change beforePath="$PROJECT_DIR$/api/m_api/actual/m_add_order_actual_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/m_api/actual/m_add_order_actual_api.yml" afterDir="false" />  
12 <change beforePath="$PROJECT_DIR$/config/accessToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/accessToken.csv" afterDir="false" /> 8 <change beforePath="$PROJECT_DIR$/config/accessToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/accessToken.csv" afterDir="false" />
13 <change beforePath="$PROJECT_DIR$/config/authCode.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/authCode.csv" afterDir="false" /> 9 <change beforePath="$PROJECT_DIR$/config/authCode.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/authCode.csv" afterDir="false" />
14 - <change beforePath="$PROJECT_DIR$/config/m_accessToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/m_accessToken.csv" afterDir="false" />  
15 <change beforePath="$PROJECT_DIR$/config/refreshToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/refreshToken.csv" afterDir="false" /> 10 <change beforePath="$PROJECT_DIR$/config/refreshToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/refreshToken.csv" afterDir="false" />
16 <change beforePath="$PROJECT_DIR$/debugtalk.py" beforeDir="false" afterPath="$PROJECT_DIR$/debugtalk.py" afterDir="false" /> 11 <change beforePath="$PROJECT_DIR$/debugtalk.py" beforeDir="false" afterPath="$PROJECT_DIR$/debugtalk.py" afterDir="false" />
17 <change beforePath="$PROJECT_DIR$/helpfunc/pg_app_db_func.py" beforeDir="false" afterPath="$PROJECT_DIR$/helpfunc/pg_app_db_func.py" afterDir="false" /> 12 <change beforePath="$PROJECT_DIR$/helpfunc/pg_app_db_func.py" beforeDir="false" afterPath="$PROJECT_DIR$/helpfunc/pg_app_db_func.py" afterDir="false" />
18 - <change beforePath="$PROJECT_DIR$/testcases/actual/ACTUAL001_add_actual_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/actual/ACTUAL001_add_actual_testcases.yml" afterDir="false" />  
19 - <change beforePath="$PROJECT_DIR$/testcases/order/order_list_2_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/order/order_list_2_testcases.yml" afterDir="false" />  
20 <change beforePath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" afterDir="false" /> 13 <change beforePath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" afterDir="false" />
21 <change beforePath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" afterDir="false" /> 14 <change beforePath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" afterDir="false" />
22 </list> 15 </list>
@@ -27,8 +20,8 @@ @@ -27,8 +20,8 @@
27 <option name="LAST_RESOLUTION" value="IGNORE" /> 20 <option name="LAST_RESOLUTION" value="IGNORE" />
28 </component> 21 </component>
29 <component name="CoverageDataManager"> 22 <component name="CoverageDataManager">
30 - <SUITE FILE_PATH="coverage/partner_api$debugtalk.coverage" NAME="debugtalk Coverage Results" MODIFIED="1595000563833" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />  
31 - <SUITE FILE_PATH="coverage/partner_api$pg_app_db_func.coverage" NAME="pg_app_db_func Coverage Results" MODIFIED="1595001825451" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" /> 23 + <SUITE FILE_PATH="coverage/partner_api$debugtalk.coverage" NAME="debugtalk Coverage Results" MODIFIED="1595174406299" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
  24 + <SUITE FILE_PATH="coverage/partner_api$pg_app_db_func.coverage" NAME="pg_app_db_func Coverage Results" MODIFIED="1595128904097" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" />
32 <SUITE FILE_PATH="coverage/partner_api$db_pg_func.coverage" NAME="db_pg_func Coverage Results" MODIFIED="1594485069390" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" /> 25 <SUITE FILE_PATH="coverage/partner_api$db_pg_func.coverage" NAME="db_pg_func Coverage Results" MODIFIED="1594485069390" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" />
33 <SUITE FILE_PATH="coverage/partner_api$pg_db_func.coverage" NAME="pg_db_func Coverage Results" MODIFIED="1594826376790" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" /> 26 <SUITE FILE_PATH="coverage/partner_api$pg_db_func.coverage" NAME="pg_db_func Coverage Results" MODIFIED="1594826376790" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" />
34 </component> 27 </component>
@@ -37,17 +30,17 @@ @@ -37,17 +30,17 @@
37 <file pinned="false" current-in-tab="false"> 30 <file pinned="false" current-in-tab="false">
38 <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml"> 31 <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml">
39 <provider selected="true" editor-type-id="text-editor"> 32 <provider selected="true" editor-type-id="text-editor">
40 - <state relative-caret-position="26">  
41 - <caret line="47" selection-start-line="47" selection-end-line="47" /> 33 + <state relative-caret-position="127">
  34 + <caret line="101" column="32" selection-start-line="101" selection-start-column="32" selection-end-line="101" selection-end-column="32" />
42 </state> 35 </state>
43 </provider> 36 </provider>
44 </entry> 37 </entry>
45 </file> 38 </file>
46 - <file pinned="false" current-in-tab="true"> 39 + <file pinned="false" current-in-tab="false">
47 <entry file="file://$PROJECT_DIR$/helpfunc/pg_app_db_func.py"> 40 <entry file="file://$PROJECT_DIR$/helpfunc/pg_app_db_func.py">
48 <provider selected="true" editor-type-id="text-editor"> 41 <provider selected="true" editor-type-id="text-editor">
49 - <state relative-caret-position="358">  
50 - <caret line="326" lean-forward="true" selection-start-line="326" selection-end-line="326" /> 42 + <state relative-caret-position="22">
  43 + <caret line="7" column="20" selection-start-line="7" selection-start-column="20" selection-end-line="7" selection-end-column="20" />
51 <folding> 44 <folding>
52 <element signature="e#108#123#0" expanded="true" /> 45 <element signature="e#108#123#0" expanded="true" />
53 </folding> 46 </folding>
@@ -55,23 +48,32 @@ @@ -55,23 +48,32 @@
55 </provider> 48 </provider>
56 </entry> 49 </entry>
57 </file> 50 </file>
  51 + <file pinned="false" current-in-tab="true">
  52 + <entry file="file://$PROJECT_DIR$/debugtalk.py">
  53 + <provider selected="true" editor-type-id="text-editor">
  54 + <state relative-caret-position="155">
  55 + <caret line="86" lean-forward="true" selection-start-line="86" selection-end-line="86" />
  56 + <folding>
  57 + <element signature="e#0#13#0" expanded="true" />
  58 + </folding>
  59 + </state>
  60 + </provider>
  61 + </entry>
  62 + </file>
58 <file pinned="false" current-in-tab="false"> 63 <file pinned="false" current-in-tab="false">
59 - <entry file="file://$PROJECT_DIR$/api/m_api/actual/m_add_order_actual_api.yml"> 64 + <entry file="file://$PROJECT_DIR$/api/app_api/dividend/statistics_api.yml">
60 <provider selected="true" editor-type-id="text-editor"> 65 <provider selected="true" editor-type-id="text-editor">
61 - <state relative-caret-position="213">  
62 - <caret line="19" column="27" selection-start-line="19" selection-start-column="27" selection-end-line="19" selection-end-column="27" /> 66 + <state relative-caret-position="220">
  67 + <caret line="16" column="38" lean-forward="true" selection-start-line="16" selection-start-column="38" selection-end-line="16" selection-end-column="38" />
63 </state> 68 </state>
64 </provider> 69 </provider>
65 </entry> 70 </entry>
66 </file> 71 </file>
67 <file pinned="false" current-in-tab="false"> 72 <file pinned="false" current-in-tab="false">
68 - <entry file="file://$PROJECT_DIR$/debugtalk.py"> 73 + <entry file="file://$PROJECT_DIR$/testcases/dividend/dividend_statistics_testcases.yml">
69 <provider selected="true" editor-type-id="text-editor"> 74 <provider selected="true" editor-type-id="text-editor">
70 - <state relative-caret-position="199">  
71 - <caret line="95" lean-forward="true" selection-start-line="95" selection-end-line="95" />  
72 - <folding>  
73 - <element signature="e#0#13#0" expanded="true" />  
74 - </folding> 75 + <state relative-caret-position="176">
  76 + <caret line="8" column="19" selection-start-line="8" selection-start-column="19" selection-end-line="8" selection-end-column="19" />
75 </state> 77 </state>
76 </provider> 78 </provider>
77 </entry> 79 </entry>
@@ -99,6 +101,8 @@ @@ -99,6 +101,8 @@
99 <find>allShipmentQuantity</find> 101 <find>allShipmentQuantity</find>
100 <find>get_allShipmentQuantity_from_database</find> 102 <find>get_allShipmentQuantity_from_database</find>
101 <find>intentionQuantity</find> 103 <find>intentionQuantity</find>
  104 + <find>received</find>
  105 + <find>outstanding</find>
102 </findStrings> 106 </findStrings>
103 </component> 107 </component>
104 <component name="Git.Settings"> 108 <component name="Git.Settings">
@@ -107,8 +111,6 @@ @@ -107,8 +111,6 @@
107 <component name="IdeDocumentHistory"> 111 <component name="IdeDocumentHistory">
108 <option name="CHANGED_PATHS"> 112 <option name="CHANGED_PATHS">
109 <list> 113 <list>
110 - <option value="$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml" />  
111 - <option value="$PROJECT_DIR$/testcases/admin/ADMIN002_edit_admin_testcases.yml" />  
112 <option value="$PROJECT_DIR$/testcases/admin/ADMIN004_detail_admin_testcases.yml" /> 114 <option value="$PROJECT_DIR$/testcases/admin/ADMIN004_detail_admin_testcases.yml" />
113 <option value="$PROJECT_DIR$/testcases/admin/ADMIN005_forbidden_admin_testcases.yml" /> 115 <option value="$PROJECT_DIR$/testcases/admin/ADMIN005_forbidden_admin_testcases.yml" />
114 <option value="$PROJECT_DIR$/testcases/admin/ADMIN006_forbidden_admin_testcases.yml" /> 116 <option value="$PROJECT_DIR$/testcases/admin/ADMIN006_forbidden_admin_testcases.yml" />
@@ -154,10 +156,12 @@ @@ -154,10 +156,12 @@
154 <option value="$PROJECT_DIR$/testcases/order/order_list_2_testcases.yml" /> 156 <option value="$PROJECT_DIR$/testcases/order/order_list_2_testcases.yml" />
155 <option value="$PROJECT_DIR$/api/app_api/order/intentions_api.yml" /> 157 <option value="$PROJECT_DIR$/api/app_api/order/intentions_api.yml" />
156 <option value="$PROJECT_DIR$/testcases/order/order_intentions_testcases.yml" /> 158 <option value="$PROJECT_DIR$/testcases/order/order_intentions_testcases.yml" />
157 - <option value="$PROJECT_DIR$/testsuites/partner_testsuite.yml" />  
158 <option value="$PROJECT_DIR$/api/m_api/actual/m_add_order_actual_api.yml" /> 159 <option value="$PROJECT_DIR$/api/m_api/actual/m_add_order_actual_api.yml" />
159 - <option value="$PROJECT_DIR$/debugtalk.py" /> 160 + <option value="$PROJECT_DIR$/testcases/dividend/dividend_statistics_testcases.yml" />
  161 + <option value="$PROJECT_DIR$/testsuites/partner_testsuite.yml" />
160 <option value="$PROJECT_DIR$/helpfunc/pg_app_db_func.py" /> 162 <option value="$PROJECT_DIR$/helpfunc/pg_app_db_func.py" />
  163 + <option value="$PROJECT_DIR$/api/app_api/dividend/statistics_api.yml" />
  164 + <option value="$PROJECT_DIR$/debugtalk.py" />
161 </list> 165 </list>
162 </option> 166 </option>
163 </component> 167 </component>
@@ -208,19 +212,6 @@ @@ -208,19 +212,6 @@
208 <path> 212 <path>
209 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" /> 213 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" />
210 <item name="partner_api" type="462c0819:PsiDirectoryNode" /> 214 <item name="partner_api" type="462c0819:PsiDirectoryNode" />
211 - <item name="api" type="462c0819:PsiDirectoryNode" />  
212 - <item name="m_api" type="462c0819:PsiDirectoryNode" />  
213 - </path>  
214 - <path>  
215 - <item name="partner_api" type="b2602c69:ProjectViewProjectNode" />  
216 - <item name="partner_api" type="462c0819:PsiDirectoryNode" />  
217 - <item name="api" type="462c0819:PsiDirectoryNode" />  
218 - <item name="m_api" type="462c0819:PsiDirectoryNode" />  
219 - <item name="actual" type="462c0819:PsiDirectoryNode" />  
220 - </path>  
221 - <path>  
222 - <item name="partner_api" type="b2602c69:ProjectViewProjectNode" />  
223 - <item name="partner_api" type="462c0819:PsiDirectoryNode" />  
224 <item name="helpfunc" type="462c0819:PsiDirectoryNode" /> 215 <item name="helpfunc" type="462c0819:PsiDirectoryNode" />
225 </path> 216 </path>
226 <path> 217 <path>
@@ -253,16 +244,16 @@ @@ -253,16 +244,16 @@
253 <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> 244 <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
254 </component> 245 </component>
255 <component name="RecentsManager"> 246 <component name="RecentsManager">
256 - <key name="MoveFile.RECENT_KEYS">  
257 - <recent name="E:\mmm_auto\partner_api\api\m_api\purpose" />  
258 - <recent name="E:\mmm_auto\partner_api\api\m_api\partners" />  
259 - </key>  
260 <key name="CopyFile.RECENT_KEYS"> 247 <key name="CopyFile.RECENT_KEYS">
  248 + <recent name="E:\mmm_auto\partner_api\testcases\dividend" />
  249 + <recent name="E:\mmm_auto\partner_api\api\app_api\dividend" />
261 <recent name="E:\mmm_auto\partner_api\testcases\order" /> 250 <recent name="E:\mmm_auto\partner_api\testcases\order" />
262 <recent name="E:\mmm_auto\partner_api\api\app_api\order" /> 251 <recent name="E:\mmm_auto\partner_api\api\app_api\order" />
263 <recent name="E:\mmm_auto\partner_api\api\m_api\purpose" /> 252 <recent name="E:\mmm_auto\partner_api\api\m_api\purpose" />
264 - <recent name="E:\mmm_auto\partner_api\testcases\purpose" />  
265 - <recent name="E:\mmm_auto\partner_api\testcases\actual" /> 253 + </key>
  254 + <key name="MoveFile.RECENT_KEYS">
  255 + <recent name="E:\mmm_auto\partner_api\api\m_api\purpose" />
  256 + <recent name="E:\mmm_auto\partner_api\api\m_api\partners" />
266 </key> 257 </key>
267 </component> 258 </component>
268 <component name="RunDashboard"> 259 <component name="RunDashboard">
@@ -277,7 +268,7 @@ @@ -277,7 +268,7 @@
277 </list> 268 </list>
278 </option> 269 </option>
279 </component> 270 </component>
280 - <component name="RunManager" selected="Python.pg_app_db_func"> 271 + <component name="RunManager" selected="Python.debugtalk">
281 <configuration name="db_pg_func" type="PythonConfigurationType" factoryName="Python" temporary="true"> 272 <configuration name="db_pg_func" type="PythonConfigurationType" factoryName="Python" temporary="true">
282 <module name="partner_api" /> 273 <module name="partner_api" />
283 <option name="INTERPRETER_OPTIONS" value="" /> 274 <option name="INTERPRETER_OPTIONS" value="" />
@@ -368,8 +359,8 @@ @@ -368,8 +359,8 @@
368 </configuration> 359 </configuration>
369 <recent_temporary> 360 <recent_temporary>
370 <list> 361 <list>
371 - <item itemvalue="Python.pg_app_db_func" />  
372 <item itemvalue="Python.debugtalk" /> 362 <item itemvalue="Python.debugtalk" />
  363 + <item itemvalue="Python.pg_app_db_func" />
373 <item itemvalue="Python.pg_db_func" /> 364 <item itemvalue="Python.pg_db_func" />
374 <item itemvalue="Python.db_pg_func" /> 365 <item itemvalue="Python.db_pg_func" />
375 </list> 366 </list>
@@ -400,18 +391,22 @@ @@ -400,18 +391,22 @@
400 <workItem from="1594868693482" duration="7846000" /> 391 <workItem from="1594868693482" duration="7846000" />
401 <workItem from="1594914151652" duration="1652000" /> 392 <workItem from="1594914151652" duration="1652000" />
402 <workItem from="1594948652577" duration="13932000" /> 393 <workItem from="1594948652577" duration="13932000" />
  394 + <workItem from="1595040709032" duration="2762000" />
  395 + <workItem from="1595086198970" duration="85000" />
  396 + <workItem from="1595128430644" duration="1114000" />
  397 + <workItem from="1595171971122" duration="2398000" />
403 </task> 398 </task>
404 <servers /> 399 <servers />
405 </component> 400 </component>
406 <component name="TimeTrackingManager"> 401 <component name="TimeTrackingManager">
407 - <option name="totallyTimeSpent" value="113978000" /> 402 + <option name="totallyTimeSpent" value="120337000" />
408 </component> 403 </component>
409 <component name="ToolWindowManager"> 404 <component name="ToolWindowManager">
410 <frame x="-8" y="-8" width="1382" height="744" extended-state="6" /> 405 <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
411 <editor active="true" /> 406 <editor active="true" />
412 <layout> 407 <layout>
413 <window_info id="Favorites" order="0" side_tool="true" /> 408 <window_info id="Favorites" order="0" side_tool="true" />
414 - <window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.3161876" /> 409 + <window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.33661118" />
415 <window_info id="Structure" order="2" side_tool="true" weight="0.25" /> 410 <window_info id="Structure" order="2" side_tool="true" weight="0.25" />
416 <window_info anchor="bottom" id="Docker" order="0" show_stripe_button="false" /> 411 <window_info anchor="bottom" id="Docker" order="0" show_stripe_button="false" />
417 <window_info anchor="bottom" id="Terminal" order="1" weight="0.44974446" /> 412 <window_info anchor="bottom" id="Terminal" order="1" weight="0.44974446" />
@@ -420,7 +415,7 @@ @@ -420,7 +415,7 @@
420 <window_info anchor="bottom" id="Find" order="4" weight="0.32879046" /> 415 <window_info anchor="bottom" id="Find" order="4" weight="0.32879046" />
421 <window_info anchor="bottom" id="Python Console" order="5" weight="0.32879046" /> 416 <window_info anchor="bottom" id="Python Console" order="5" weight="0.32879046" />
422 <window_info anchor="bottom" id="Database Changes" order="6" /> 417 <window_info anchor="bottom" id="Database Changes" order="6" />
423 - <window_info anchor="bottom" id="Run" order="7" weight="0.3270869" /> 418 + <window_info active="true" anchor="bottom" id="Run" order="7" visible="true" weight="0.3270869" />
424 <window_info anchor="bottom" id="Version Control" order="8" weight="0.32879046" /> 419 <window_info anchor="bottom" id="Version Control" order="8" weight="0.32879046" />
425 <window_info anchor="bottom" id="Debug" order="9" weight="0.4" /> 420 <window_info anchor="bottom" id="Debug" order="9" weight="0.4" />
426 <window_info anchor="bottom" id="Cvs" order="10" weight="0.25" /> 421 <window_info anchor="bottom" id="Cvs" order="10" weight="0.25" />
@@ -437,20 +432,6 @@ @@ -437,20 +432,6 @@
437 <option name="version" value="1" /> 432 <option name="version" value="1" />
438 </component> 433 </component>
439 <component name="editorHistoryManager"> 434 <component name="editorHistoryManager">
440 - <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS002_edit_partner_testcases.yml">  
441 - <provider selected="true" editor-type-id="text-editor">  
442 - <state relative-caret-position="88">  
443 - <caret line="4" column="61" selection-start-line="4" selection-start-column="61" selection-end-line="4" selection-end-column="61" />  
444 - </state>  
445 - </provider>  
446 - </entry>  
447 - <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS003_list_partner_testcases.yml">  
448 - <provider selected="true" editor-type-id="text-editor">  
449 - <state relative-caret-position="88">  
450 - <caret line="4" column="61" selection-start-line="4" selection-start-column="61" selection-end-line="4" selection-end-column="61" />  
451 - </state>  
452 - </provider>  
453 - </entry>  
454 <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS004_list_partner_testcases.yml"> 435 <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS004_list_partner_testcases.yml">
455 <provider selected="true" editor-type-id="text-editor"> 436 <provider selected="true" editor-type-id="text-editor">
456 <state relative-caret-position="88"> 437 <state relative-caret-position="88">
@@ -766,39 +747,53 @@ @@ -766,39 +747,53 @@
766 </state> 747 </state>
767 </provider> 748 </provider>
768 </entry> 749 </entry>
769 - <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml"> 750 + <entry file="file://$PROJECT_DIR$/api/m_api/actual/m_add_order_actual_api.yml">
770 <provider selected="true" editor-type-id="text-editor"> 751 <provider selected="true" editor-type-id="text-editor">
771 - <state relative-caret-position="26">  
772 - <caret line="47" selection-start-line="47" selection-end-line="47" /> 752 + <state relative-caret-position="81">
  753 + <caret line="9" column="9" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
773 </state> 754 </state>
774 </provider> 755 </provider>
775 </entry> 756 </entry>
776 - <entry file="file://$PROJECT_DIR$/api/m_api/actual/m_add_order_actual_api.yml"> 757 + <entry file="file://$PROJECT_DIR$/testcases/dividend/dividend_statistics_testcases.yml">
777 <provider selected="true" editor-type-id="text-editor"> 758 <provider selected="true" editor-type-id="text-editor">
778 - <state relative-caret-position="213">  
779 - <caret line="19" column="27" selection-start-line="19" selection-start-column="27" selection-end-line="19" selection-end-column="27" /> 759 + <state relative-caret-position="176">
  760 + <caret line="8" column="19" selection-start-line="8" selection-start-column="19" selection-end-line="8" selection-end-column="19" />
780 </state> 761 </state>
781 </provider> 762 </provider>
782 </entry> 763 </entry>
783 - <entry file="file://$PROJECT_DIR$/debugtalk.py"> 764 + <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml">
784 <provider selected="true" editor-type-id="text-editor"> 765 <provider selected="true" editor-type-id="text-editor">
785 - <state relative-caret-position="199">  
786 - <caret line="95" lean-forward="true" selection-start-line="95" selection-end-line="95" />  
787 - <folding>  
788 - <element signature="e#0#13#0" expanded="true" />  
789 - </folding> 766 + <state relative-caret-position="127">
  767 + <caret line="101" column="32" selection-start-line="101" selection-start-column="32" selection-end-line="101" selection-end-column="32" />
790 </state> 768 </state>
791 </provider> 769 </provider>
792 </entry> 770 </entry>
793 <entry file="file://$PROJECT_DIR$/helpfunc/pg_app_db_func.py"> 771 <entry file="file://$PROJECT_DIR$/helpfunc/pg_app_db_func.py">
794 <provider selected="true" editor-type-id="text-editor"> 772 <provider selected="true" editor-type-id="text-editor">
795 - <state relative-caret-position="358">  
796 - <caret line="326" lean-forward="true" selection-start-line="326" selection-end-line="326" /> 773 + <state relative-caret-position="22">
  774 + <caret line="7" column="20" selection-start-line="7" selection-start-column="20" selection-end-line="7" selection-end-column="20" />
797 <folding> 775 <folding>
798 <element signature="e#108#123#0" expanded="true" /> 776 <element signature="e#108#123#0" expanded="true" />
799 </folding> 777 </folding>
800 </state> 778 </state>
801 </provider> 779 </provider>
802 </entry> 780 </entry>
  781 + <entry file="file://$PROJECT_DIR$/api/app_api/dividend/statistics_api.yml">
  782 + <provider selected="true" editor-type-id="text-editor">
  783 + <state relative-caret-position="220">
  784 + <caret line="16" column="38" lean-forward="true" selection-start-line="16" selection-start-column="38" selection-end-line="16" selection-end-column="38" />
  785 + </state>
  786 + </provider>
  787 + </entry>
  788 + <entry file="file://$PROJECT_DIR$/debugtalk.py">
  789 + <provider selected="true" editor-type-id="text-editor">
  790 + <state relative-caret-position="155">
  791 + <caret line="86" lean-forward="true" selection-start-line="86" selection-end-line="86" />
  792 + <folding>
  793 + <element signature="e#0#13#0" expanded="true" />
  794 + </folding>
  795 + </state>
  796 + </provider>
  797 + </entry>
803 </component> 798 </component>
804 </project> 799 </project>
  1 +name: 分红统计
  2 +base_url: ${ENV(base_url)}
  3 +variables:
  4 + currtime: ${make_time()}
  5 + uuid: ${make_uuid()}
  6 + var_access_token: ${get_accesstoken()}
  7 + sign: ${make_sign($currtime, $uuid, $var_access_token)}
  8 + received: ${get_received_from_database()}
  9 + outstanding: ${get_outstanding_from_database()}
  10 + startTime: ${get_January_timestamp()}
  11 + endTime: ${get_Decembe_timestamp()}
  12 + msg: 成功
  13 +request:
  14 + headers:
  15 + Content-Type: application/json;charset=utf-8
  16 + User-Agent: okhttp/3.12.3
  17 + X-MMM-AccessToken: $var_access_token
  18 + X-MMM-AppName: com.mmm.ability
  19 + X-MMM-AppProject: ability
  20 + X-MMM-DeviceType: '1'
  21 + X-MMM-Sign: $sign
  22 + X-MMM-Timestamp: $currtime
  23 + X-MMM-Uuid: $uuid
  24 + X-MMM-Version: 0.4.0
  25 + json:
  26 + startTime: $startTime
  27 + endTime: $endTime
  28 + method: POST
  29 + url: v1/dividend/statistics
  30 +validate:
  31 + - eq:
  32 + - content.msg
  33 + - $msg
  34 + - eq:
  35 + - content.data.statistics.received
  36 + - $received
  37 + - eq:
  38 + - content.data.statistics.outstanding
  39 + - $outstanding
1 -eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTQ5NjM4NDAsImlzcyI6Imp3dCJ9.0vRdFJBZ-KAl4i6VfyveyWfSD77efIuNAeiQWp1rmTU  
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTUxODE2NDksImlzcyI6Imp3dCJ9.040kthvHTswNtk9W6N2BY2pqWdpcp010TCDcxUzsgoU
1 -eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTQ5NTc1NDAsImlzcyI6Imp3dCJ9.vviFgl2MmnN9J8q1swQcsMoe84XMLe4f0X5BfSTc_Oc  
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTUxNzUzNDksImlzcyI6Imp3dCJ9.pg_SIaCWY8Sq1NY_eoyiRqZBXvtOGxxAD0W9rMtZ2_c
1 -eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTc1NDg2NDAsImlzcyI6Imp3dCJ9.DvDeRgMC2P6LDoCwBOXY6b5UvHy87dThhokOhK_rdrE  
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTc3NjY0NDksImlzcyI6Imp3dCJ9.ppsxSGGy7O0fwk-QGlBlkAYn2gwhxEMaqlU3yzioBaA
@@ -79,17 +79,19 @@ def get_starTimestamp(): @@ -79,17 +79,19 @@ def get_starTimestamp():
79 def get_endTimestamp(): 79 def get_endTimestamp():
80 return int(time.mktime(time.strptime(list_time[1], '%Y-%m-%d %H:%M:%S'))*1000) 80 return int(time.mktime(time.strptime(list_time[1], '%Y-%m-%d %H:%M:%S'))*1000)
81 81
82 -# def get_date_timestamp(date):  
83 -# return int(time.mktime(time.strptime(date, '%Y-%m-%d %H:%M:%S'))*1000) 82 +def get_January_timestamp():
  83 + return int(time.mktime(time.strptime('2020-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'))*1000)
84 84
85 -import time  
86 -import datetime 85 +def get_Decembe_timestamp():
  86 + return int(time.mktime(time.strptime('2020-12-31 23:59:59', '%Y-%m-%d %H:%M:%S'))*1000)
87 87
88 88
89 -def get_date_timestamp():  
90 - begin = int(time.mktime(time.strptime(f'{datetime.datetime.now().year}-01-01 0:0:0', '%Y-%m-%d %H:%M:%S'))*1000)  
91 - end = int(time.mktime(time.strptime(f'{datetime.datetime.now().year}-12-31 23:59:59', '%Y-%m-%d %H:%M:%S')))  
92 - return begin, end 89 +# def get_date_timestamp():
  90 +# begin = int(time.mktime(time.strptime(f'{datetime.datetime.now().year}-01-01 0:0:0', '%Y-%m-%d %H:%M:%S'))*1000)
  91 +# end = int(time.mktime(time.strptime(f'{datetime.datetime.now().year}-12-31 23:59:59', '%Y-%m-%d %H:%M:%S'))*1000)
  92 +# print(begin,end)
  93 +# return begin, end
93 94
94 95
95 -print("{:.2f}".format(1/6)) 96 +# print(get_Decembe_timestamp())
  97 +# # '2020-12-31 23:59:59'
@@ -7,7 +7,6 @@ import psycopg2 @@ -7,7 +7,6 @@ import psycopg2
7 from datetime import date, timedelta 7 from datetime import date, timedelta
8 import datetime,time 8 import datetime,time
9 9
10 -  
11 def get_today(): 10 def get_today():
12 now_today = datetime.datetime.now() 11 now_today = datetime.datetime.now()
13 str_time = now_today.strftime("%Y-%m-%d") 12 str_time = now_today.strftime("%Y-%m-%d")
@@ -291,36 +290,41 @@ def get_intentionQuantity_from_database(tbl): @@ -291,36 +290,41 @@ def get_intentionQuantity_from_database(tbl):
291 db.rollback() 290 db.rollback()
292 db.close() 291 db.close()
293 #累计所有年份未收分红 292 #累计所有年份未收分红
294 -def get_outstanding_from_database(tbl): 293 +def get_outstanding_from_database():
295 db = GetConnect() 294 db = GetConnect()
296 cursor = db.cursor() 295 cursor = db.cursor()
297 # sql= "select id from " + '''"''' + tbl + '''"'''+ ' ' + 'order by id desc ' 296 # sql= "select id from " + '''"''' + tbl + '''"'''+ ' ' + 'order by id desc '
298 - sql = '''select COALESCE(sum(((order_actual_amount - order_payment_amount ) * partner_bonus_percent)/100),0) as outstanding from \"{}\" where partner_id = {} and create_at between \'{}\' and \'{}\' '''.format(tbl,get_partner_id_from_database('partner_info'),get_starTimestamp(),get_endTimestamp()) 297 + sql = '''select COALESCE(sum(((order_actual_amount - order_payment_amount ) * partner_bonus_percent)/100),0) as outstanding from \"{}\" where partner_id = {} and create_at between \'{}\' and \'{}\' '''.format('order',get_partner_id_from_database('partner_info'),get_starTimestamp(),get_endTimestamp())
299 # print(sql) 298 # print(sql)
300 try: 299 try:
301 cursor.execute(sql) 300 cursor.execute(sql)
302 result = cursor.fetchone() 301 result = cursor.fetchone()
303 - return round(result[0],2) 302 + if round(result[0], 2) == 0:
  303 + return 0
  304 + else:
  305 + return round(result[0],2)
304 except Exception as err: 306 except Exception as err:
305 # 发生错误时回滚 307 # 发生错误时回滚
306 print(err) 308 print(err)
307 db.rollback() 309 db.rollback()
308 db.close() 310 db.close()
309 #累计所有年份已收分红 311 #累计所有年份已收分红
310 -def get_received_from_database(tbl): 312 +def get_received_from_database():
311 db = GetConnect() 313 db = GetConnect()
312 cursor = db.cursor() 314 cursor = db.cursor()
313 # sql= "select id from " + '''"''' + tbl + '''"'''+ ' ' + 'order by id desc ' 315 # sql= "select id from " + '''"''' + tbl + '''"'''+ ' ' + 'order by id desc '
314 - sql = '''select COALESCE(sum((order_payment_amount * partner_bonus_percent)/100),0) as received from \"{}\" where partner_id = {} and create_at between \'{}\' and \'{}\' '''.format(tbl,get_partner_id_from_database('partner_info'),get_starTimestamp(),get_endTimestamp()) 316 + sql = '''select COALESCE(sum((order_payment_amount * partner_bonus_percent)/100),0) as received from \"{}\" where partner_id = {} and create_at between \'{}\' and \'{}\' '''.format('order',get_partner_id_from_database('partner_info'),get_starTimestamp(),get_endTimestamp())
315 # print(sql) 317 # print(sql)
316 try: 318 try:
317 cursor.execute(sql) 319 cursor.execute(sql)
318 result = cursor.fetchone() 320 result = cursor.fetchone()
319 - return round(result[0],2) 321 + if round(result[0],2) == 0:
  322 + return 0
  323 + else:
  324 + return round(result[0],2)
320 except Exception as err: 325 except Exception as err:
321 # 发生错误时回滚 326 # 发生错误时回滚
322 print(err) 327 print(err)
323 db.rollback() 328 db.rollback()
324 db.close() 329 db.close()
325 -print(get_received_from_database('order'))  
326 - 330 +# print(get_outstanding_from_database())
  1 +config:
  2 + name: 分红统计
  3 + base_url: ${ENV(base_manager_url)}
  4 + variables:
  5 + phone: ${get_partner_account_from_database(partner_info)}
  6 + received: ${get_received_from_database()}
  7 + outstanding: ${get_outstanding_from_database()}
  8 + teardown_hooks:
  9 + - ${sleep(3)}
  10 +
  11 +teststeps:
  12 +- name: $phone 登录系统
  13 + testcase: testcases/login_testcases.yml
  14 +
  15 +- name: $phone 分红统计
  16 + api: api/app_api/dividend/statistics_api.yml
  17 + validate:
  18 + - eq:
  19 + - content.msg
  20 + - $msg
  21 + - eq:
  22 + - content.data.statistics.received
  23 + - $received
  24 + - eq:
  25 + - content.data.statistics.outstanding
  26 + - $outstanding
@@ -46,10 +46,10 @@ testcases: @@ -46,10 +46,10 @@ testcases:
46 #- name: PARTNERS006:启用合伙人 46 #- name: PARTNERS006:启用合伙人
47 # testcase: testcases/partners/PARTNERS007_set-status_partner2_testcases.yml 47 # testcase: testcases/partners/PARTNERS007_set-status_partner2_testcases.yml
48 # 48 #
49 -- name: ACTUAL001:新增实际订单  
50 - testcase: testcases/actual/ACTUAL001_add_actual_testcases.yml  
51 - parameters:  
52 - account: ${create_phone_number(1)} 49 +#- name: ACTUAL001:新增实际订单
  50 +# testcase: testcases/actual/ACTUAL001_add_actual_testcases.yml
  51 +# parameters:
  52 +# account: ${create_phone_number(1)}
53 # 53 #
54 #- name: ACTUAL002:编辑实际订单 54 #- name: ACTUAL002:编辑实际订单
55 # testcase: testcases/actual/ACTUAL002_edit_actual_testcases.yml 55 # testcase: testcases/actual/ACTUAL002_edit_actual_testcases.yml
@@ -96,4 +96,7 @@ testcases: @@ -96,4 +96,7 @@ testcases:
96 # testcase: testcases/order/order_list_2_testcases.yml 96 # testcase: testcases/order/order_list_2_testcases.yml
97 97
98 #- name: intentions:意向订单列表 98 #- name: intentions:意向订单列表
99 -# testcase: testcases/order/order_intentions_testcases.yml  
  99 +# testcase: testcases/order/order_intentions_testcases.yml
  100 +
  101 +- name: statistics:分红统计
  102 + testcase: testcases/dividend/dividend_statistics_testcases.yml