黄贺彬 3 месяцев назад
Родитель
Сommit
a601754a64

+ 0 - 575
TEAMModelOS.Extension/IES.Exam/IES.ExamClient/yarn.lock

@@ -1,575 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@electron/get@^1.14.1":
-  "integrity" "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw=="
-  "resolved" "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz"
-  "version" "1.14.1"
-  dependencies:
-    "debug" "^4.1.1"
-    "env-paths" "^2.2.0"
-    "fs-extra" "^8.1.0"
-    "got" "^9.6.0"
-    "progress" "^2.0.3"
-    "semver" "^6.2.0"
-    "sumchecker" "^3.0.1"
-  optionalDependencies:
-    "global-agent" "^3.0.0"
-    "global-tunnel-ng" "^2.7.1"
-
-"@sindresorhus/is@^0.14.0":
-  "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
-  "resolved" "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz"
-  "version" "0.14.0"
-
-"@szmarczak/http-timer@^1.1.2":
-  "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA=="
-  "resolved" "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz"
-  "version" "1.1.2"
-  dependencies:
-    "defer-to-connect" "^1.0.1"
-
-"@types/node@*":
-  "integrity" "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww=="
-  "resolved" "https://registry.npmmirror.com/@types/node/-/node-22.10.10.tgz"
-  "version" "22.10.10"
-  dependencies:
-    "undici-types" "~6.20.0"
-
-"@types/node@^16.11.26":
-  "integrity" "sha512-w7U5ojboSPfZP4zD98d+/cjcN2BDW6lKH2M0ubipt8L8vUC7qUAC6ENKGSJL4tEktH2Saw2K4y1uwSjyRGKMhw=="
-  "resolved" "https://registry.npmmirror.com/@types/node/-/node-16.18.125.tgz"
-  "version" "16.18.125"
-
-"@types/yauzl@^2.9.1":
-  "integrity" "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="
-  "resolved" "https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.3.tgz"
-  "version" "2.10.3"
-  dependencies:
-    "@types/node" "*"
-
-"adm-zip@^0.5.16":
-  "integrity" "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ=="
-  "resolved" "https://registry.npmmirror.com/adm-zip/-/adm-zip-0.5.16.tgz"
-  "version" "0.5.16"
-
-"asynckit@^0.4.0":
-  "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
-  "resolved" "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
-  "version" "0.4.0"
-
-"axios@^1.7.9":
-  "integrity" "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw=="
-  "resolved" "https://registry.npmmirror.com/axios/-/axios-1.7.9.tgz"
-  "version" "1.7.9"
-  dependencies:
-    "follow-redirects" "^1.15.6"
-    "form-data" "^4.0.0"
-    "proxy-from-env" "^1.1.0"
-
-"boolean@^3.0.1":
-  "integrity" "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="
-  "resolved" "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz"
-  "version" "3.2.0"
-
-"buffer-crc32@~0.2.3":
-  "integrity" "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="
-  "resolved" "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
-  "version" "0.2.13"
-
-"cacheable-request@^6.0.0":
-  "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg=="
-  "resolved" "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz"
-  "version" "6.1.0"
-  dependencies:
-    "clone-response" "^1.0.2"
-    "get-stream" "^5.1.0"
-    "http-cache-semantics" "^4.0.0"
-    "keyv" "^3.0.0"
-    "lowercase-keys" "^2.0.0"
-    "normalize-url" "^4.1.0"
-    "responselike" "^1.0.2"
-
-"clone-response@^1.0.2":
-  "integrity" "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA=="
-  "resolved" "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz"
-  "version" "1.0.3"
-  dependencies:
-    "mimic-response" "^1.0.0"
-
-"combined-stream@^1.0.8":
-  "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
-  "resolved" "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz"
-  "version" "1.0.8"
-  dependencies:
-    "delayed-stream" "~1.0.0"
-
-"config-chain@^1.1.11":
-  "integrity" "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ=="
-  "resolved" "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz"
-  "version" "1.1.13"
-  dependencies:
-    "ini" "^1.3.4"
-    "proto-list" "~1.2.1"
-
-"debug@^4.1.0", "debug@^4.1.1":
-  "integrity" "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="
-  "resolved" "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz"
-  "version" "4.4.0"
-  dependencies:
-    "ms" "^2.1.3"
-
-"decompress-response@^3.3.0":
-  "integrity" "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA=="
-  "resolved" "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz"
-  "version" "3.3.0"
-  dependencies:
-    "mimic-response" "^1.0.0"
-
-"defer-to-connect@^1.0.1":
-  "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
-  "resolved" "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz"
-  "version" "1.1.3"
-
-"define-data-property@^1.0.1":
-  "integrity" "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="
-  "resolved" "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz"
-  "version" "1.1.4"
-  dependencies:
-    "es-define-property" "^1.0.0"
-    "es-errors" "^1.3.0"
-    "gopd" "^1.0.1"
-
-"define-properties@^1.2.1":
-  "integrity" "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="
-  "resolved" "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz"
-  "version" "1.2.1"
-  dependencies:
-    "define-data-property" "^1.0.1"
-    "has-property-descriptors" "^1.0.0"
-    "object-keys" "^1.1.1"
-
-"delayed-stream@~1.0.0":
-  "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
-  "resolved" "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
-  "version" "1.0.0"
-
-"detect-node@^2.0.4":
-  "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
-  "resolved" "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz"
-  "version" "2.1.0"
-
-"duplexer3@^0.1.4":
-  "integrity" "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
-  "resolved" "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz"
-  "version" "0.1.5"
-
-"electron@21.4.4":
-  "integrity" "sha512-N5O7y7Gtt7mDgkJLkW49ETiT8M3myZ9tNIEvGTKhpBduX4WdgMj6c3hYeYBD6XW7SvbRkWEQaTl25RNday8Xpw=="
-  "resolved" "https://registry.npmmirror.com/electron/-/electron-21.4.4.tgz"
-  "version" "21.4.4"
-  dependencies:
-    "@electron/get" "^1.14.1"
-    "@types/node" "^16.11.26"
-    "extract-zip" "^2.0.1"
-
-"encodeurl@^1.0.2":
-  "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
-  "resolved" "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz"
-  "version" "1.0.2"
-
-"end-of-stream@^1.1.0":
-  "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="
-  "resolved" "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz"
-  "version" "1.4.4"
-  dependencies:
-    "once" "^1.4.0"
-
-"env-paths@^2.2.0":
-  "integrity" "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
-  "resolved" "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz"
-  "version" "2.2.1"
-
-"es-define-property@^1.0.0":
-  "integrity" "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
-  "resolved" "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz"
-  "version" "1.0.1"
-
-"es-errors@^1.3.0":
-  "integrity" "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
-  "resolved" "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz"
-  "version" "1.3.0"
-
-"es6-error@^4.1.1":
-  "integrity" "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="
-  "resolved" "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz"
-  "version" "4.1.1"
-
-"escape-string-regexp@^4.0.0":
-  "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
-  "resolved" "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
-  "version" "4.0.0"
-
-"extract-zip@^2.0.1":
-  "integrity" "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="
-  "resolved" "https://registry.npmmirror.com/extract-zip/-/extract-zip-2.0.1.tgz"
-  "version" "2.0.1"
-  dependencies:
-    "debug" "^4.1.1"
-    "get-stream" "^5.1.0"
-    "yauzl" "^2.10.0"
-  optionalDependencies:
-    "@types/yauzl" "^2.9.1"
-
-"fd-slicer@~1.1.0":
-  "integrity" "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="
-  "resolved" "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz"
-  "version" "1.1.0"
-  dependencies:
-    "pend" "~1.2.0"
-
-"follow-redirects@^1.15.6":
-  "integrity" "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ=="
-  "resolved" "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz"
-  "version" "1.15.9"
-
-"form-data@^4.0.0":
-  "integrity" "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw=="
-  "resolved" "https://registry.npmmirror.com/form-data/-/form-data-4.0.1.tgz"
-  "version" "4.0.1"
-  dependencies:
-    "asynckit" "^0.4.0"
-    "combined-stream" "^1.0.8"
-    "mime-types" "^2.1.12"
-
-"fs-extra@^8.1.0":
-  "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="
-  "resolved" "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz"
-  "version" "8.1.0"
-  dependencies:
-    "graceful-fs" "^4.2.0"
-    "jsonfile" "^4.0.0"
-    "universalify" "^0.1.0"
-
-"get-stream@^4.1.0":
-  "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w=="
-  "resolved" "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz"
-  "version" "4.1.0"
-  dependencies:
-    "pump" "^3.0.0"
-
-"get-stream@^5.1.0":
-  "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="
-  "resolved" "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz"
-  "version" "5.2.0"
-  dependencies:
-    "pump" "^3.0.0"
-
-"global-agent@^3.0.0":
-  "integrity" "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q=="
-  "resolved" "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz"
-  "version" "3.0.0"
-  dependencies:
-    "boolean" "^3.0.1"
-    "es6-error" "^4.1.1"
-    "matcher" "^3.0.0"
-    "roarr" "^2.15.3"
-    "semver" "^7.3.2"
-    "serialize-error" "^7.0.1"
-
-"global-tunnel-ng@^2.7.1":
-  "integrity" "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg=="
-  "resolved" "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz"
-  "version" "2.7.1"
-  dependencies:
-    "encodeurl" "^1.0.2"
-    "lodash" "^4.17.10"
-    "npm-conf" "^1.1.3"
-    "tunnel" "^0.0.6"
-
-"globalthis@^1.0.1":
-  "integrity" "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="
-  "resolved" "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz"
-  "version" "1.0.4"
-  dependencies:
-    "define-properties" "^1.2.1"
-    "gopd" "^1.0.1"
-
-"gopd@^1.0.1":
-  "integrity" "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
-  "resolved" "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz"
-  "version" "1.2.0"
-
-"got@^9.6.0":
-  "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q=="
-  "resolved" "https://registry.npmmirror.com/got/-/got-9.6.0.tgz"
-  "version" "9.6.0"
-  dependencies:
-    "@sindresorhus/is" "^0.14.0"
-    "@szmarczak/http-timer" "^1.1.2"
-    "cacheable-request" "^6.0.0"
-    "decompress-response" "^3.3.0"
-    "duplexer3" "^0.1.4"
-    "get-stream" "^4.1.0"
-    "lowercase-keys" "^1.0.1"
-    "mimic-response" "^1.0.1"
-    "p-cancelable" "^1.0.0"
-    "to-readable-stream" "^1.0.0"
-    "url-parse-lax" "^3.0.0"
-
-"graceful-fs@^4.1.6", "graceful-fs@^4.2.0":
-  "integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
-  "resolved" "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz"
-  "version" "4.2.11"
-
-"has-property-descriptors@^1.0.0":
-  "integrity" "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="
-  "resolved" "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz"
-  "version" "1.0.2"
-  dependencies:
-    "es-define-property" "^1.0.0"
-
-"http-cache-semantics@^4.0.0":
-  "integrity" "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
-  "resolved" "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz"
-  "version" "4.1.1"
-
-"ini@^1.3.4":
-  "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
-  "resolved" "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz"
-  "version" "1.3.8"
-
-"json-buffer@3.0.0":
-  "integrity" "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ=="
-  "resolved" "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz"
-  "version" "3.0.0"
-
-"json-stringify-safe@^5.0.1":
-  "integrity" "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
-  "resolved" "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
-  "version" "5.0.1"
-
-"jsonfile@^4.0.0":
-  "integrity" "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="
-  "resolved" "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz"
-  "version" "4.0.0"
-  optionalDependencies:
-    "graceful-fs" "^4.1.6"
-
-"keyv@^3.0.0":
-  "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA=="
-  "resolved" "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz"
-  "version" "3.1.0"
-  dependencies:
-    "json-buffer" "3.0.0"
-
-"lodash@^4.17.10":
-  "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
-  "resolved" "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz"
-  "version" "4.17.21"
-
-"lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1":
-  "integrity" "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
-  "resolved" "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz"
-  "version" "1.0.1"
-
-"lowercase-keys@^2.0.0":
-  "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
-  "resolved" "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz"
-  "version" "2.0.0"
-
-"matcher@^3.0.0":
-  "integrity" "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng=="
-  "resolved" "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz"
-  "version" "3.0.0"
-  dependencies:
-    "escape-string-regexp" "^4.0.0"
-
-"mime-db@1.52.0":
-  "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
-  "resolved" "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
-  "version" "1.52.0"
-
-"mime-types@^2.1.12":
-  "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
-  "resolved" "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
-  "version" "2.1.35"
-  dependencies:
-    "mime-db" "1.52.0"
-
-"mimic-response@^1.0.0", "mimic-response@^1.0.1":
-  "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
-  "resolved" "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz"
-  "version" "1.0.1"
-
-"ms@^2.1.3":
-  "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
-  "resolved" "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
-  "version" "2.1.3"
-
-"normalize-url@^4.1.0":
-  "integrity" "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
-  "resolved" "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz"
-  "version" "4.5.1"
-
-"npm-conf@^1.1.3":
-  "integrity" "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw=="
-  "resolved" "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz"
-  "version" "1.1.3"
-  dependencies:
-    "config-chain" "^1.1.11"
-    "pify" "^3.0.0"
-
-"object-keys@^1.1.1":
-  "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
-  "resolved" "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz"
-  "version" "1.1.1"
-
-"once@^1.3.1", "once@^1.4.0":
-  "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
-  "resolved" "https://registry.npmmirror.com/once/-/once-1.4.0.tgz"
-  "version" "1.4.0"
-  dependencies:
-    "wrappy" "1"
-
-"p-cancelable@^1.0.0":
-  "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
-  "resolved" "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz"
-  "version" "1.1.0"
-
-"pend@~1.2.0":
-  "integrity" "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="
-  "resolved" "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz"
-  "version" "1.2.0"
-
-"pify@^3.0.0":
-  "integrity" "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="
-  "resolved" "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz"
-  "version" "3.0.0"
-
-"prepend-http@^2.0.0":
-  "integrity" "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA=="
-  "resolved" "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz"
-  "version" "2.0.0"
-
-"progress@^2.0.3":
-  "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
-  "resolved" "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz"
-  "version" "2.0.3"
-
-"proto-list@~1.2.1":
-  "integrity" "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA=="
-  "resolved" "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz"
-  "version" "1.2.4"
-
-"proxy-from-env@^1.1.0":
-  "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
-  "resolved" "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
-  "version" "1.1.0"
-
-"pump@^3.0.0":
-  "integrity" "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw=="
-  "resolved" "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz"
-  "version" "3.0.2"
-  dependencies:
-    "end-of-stream" "^1.1.0"
-    "once" "^1.3.1"
-
-"responselike@^1.0.2":
-  "integrity" "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ=="
-  "resolved" "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz"
-  "version" "1.0.2"
-  dependencies:
-    "lowercase-keys" "^1.0.0"
-
-"roarr@^2.15.3":
-  "integrity" "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A=="
-  "resolved" "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz"
-  "version" "2.15.4"
-  dependencies:
-    "boolean" "^3.0.1"
-    "detect-node" "^2.0.4"
-    "globalthis" "^1.0.1"
-    "json-stringify-safe" "^5.0.1"
-    "semver-compare" "^1.0.0"
-    "sprintf-js" "^1.1.2"
-
-"semver-compare@^1.0.0":
-  "integrity" "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="
-  "resolved" "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz"
-  "version" "1.0.0"
-
-"semver@^6.2.0":
-  "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
-  "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz"
-  "version" "6.3.1"
-
-"semver@^7.3.2":
-  "integrity" "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
-  "resolved" "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz"
-  "version" "7.6.3"
-
-"serialize-error@^7.0.1":
-  "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw=="
-  "resolved" "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz"
-  "version" "7.0.1"
-  dependencies:
-    "type-fest" "^0.13.1"
-
-"sprintf-js@^1.1.2":
-  "integrity" "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
-  "resolved" "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz"
-  "version" "1.1.3"
-
-"sumchecker@^3.0.1":
-  "integrity" "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg=="
-  "resolved" "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz"
-  "version" "3.0.1"
-  dependencies:
-    "debug" "^4.1.0"
-
-"to-readable-stream@^1.0.0":
-  "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
-  "resolved" "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz"
-  "version" "1.0.0"
-
-"tunnel@^0.0.6":
-  "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
-  "resolved" "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz"
-  "version" "0.0.6"
-
-"type-fest@^0.13.1":
-  "integrity" "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="
-  "resolved" "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz"
-  "version" "0.13.1"
-
-"undici-types@~6.20.0":
-  "integrity" "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="
-  "resolved" "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz"
-  "version" "6.20.0"
-
-"universalify@^0.1.0":
-  "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
-  "resolved" "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz"
-  "version" "0.1.2"
-
-"url-parse-lax@^3.0.0":
-  "integrity" "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ=="
-  "resolved" "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz"
-  "version" "3.0.0"
-  dependencies:
-    "prepend-http" "^2.0.0"
-
-"wrappy@1":
-  "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
-  "resolved" "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz"
-  "version" "1.0.2"
-
-"yauzl@^2.10.0":
-  "integrity" "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="
-  "resolved" "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz"
-  "version" "2.10.0"
-  dependencies:
-    "buffer-crc32" "~0.2.3"
-    "fd-slicer" "~1.1.0"

+ 10 - 0
TEAMModelOS.SDK/Models/Cosmos/Common/Inner/CodeValue.cs

@@ -22,6 +22,16 @@ namespace TEAMModelOS.SDK.Models
         public string school { get; set; }
         public string picture { get; set; }
         public string name { get; set; }
+       
+    }
+
+    public class SchoolOrTeacher
+    {
+
+        public string id { get; set; }
+        public string picture { get; set; }
+        public string name { get; set; }
+        public string scope { get; set; }
     }
     public class IdCode
     {

+ 268 - 4
TEAMModelOS/Controllers/Both/EvaluationSyncInfoController.cs

@@ -189,6 +189,7 @@ namespace TEAMModelOS.Controllers.Both
             evaluationClient.openCode=null;
             return Ok(new { code = 200, msg = "检测成功!", evaluation = evaluationClient, blobSas.url, blobSas.name, blobSas.sas });
         }
+       
         /// <summary>
         /// 局域网端搜寻云端评测
         /// </summary>
@@ -380,19 +381,53 @@ namespace TEAMModelOS.Controllers.Both
             }
              */
             List<EvaluationSyncInfo> infos = new List<EvaluationSyncInfo>();
+            List<SchoolOrTeacher> schoolOrTeachers = new List<SchoolOrTeacher>();
             if (!string.IsNullOrWhiteSpace($"{request["pid"]}")) 
             {
                 //区级发布的活动
                 var result= await  _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ArtEvaluation>($"select  c.id,c.scope,c.school from  c where c.pId ='{request["pid"]}' and c.pk='Art' ");
                 if (result.list.IsNotEmpty()) 
                 {
-                    foreach (var item in result.list) 
+                    foreach (var item in result.list)
                     {
+                        SchoolOrTeacher schoolOrTeacher = new SchoolOrTeacher();
                         EvaluationSyncInfo syncInfo = await EvaluationSyncInfoService.PackageEvaluation(item.id, item.scope, item.school, "Art", _azureCosmos, _azureStorage, _coreAPIHttpService, _dingDing,_httpClientFactory);
-                        if (syncInfo!=null) 
+                        if (syncInfo!=null &&!infos.Exists(x => x.id.Equals(syncInfo.id)))
                         {
+                            if (syncInfo.scope.Equals("school"))
+                            {
+                                schoolOrTeacher.id=syncInfo.ownerId;
+                                schoolOrTeacher.name=syncInfo.ownerName;
+                                schoolOrTeacher.picture=syncInfo.ownerPicture;
+                                schoolOrTeacher.scope="school";
+                            }
+                            else
+                            {
+                                schoolOrTeacher.id=syncInfo.ownerId;
+                                schoolOrTeacher.name=syncInfo.ownerName;
+                                schoolOrTeacher.picture=syncInfo.ownerPicture;
+                                schoolOrTeacher.scope="teacher";
+                            }
                             infos.Add(syncInfo);
                         }
+                        else
+                        {
+                            if (item.scope.Equals("school"))
+                            {
+                                schoolOrTeacher.id=item.school;
+                                schoolOrTeacher.scope="school";
+                            }
+                            else
+                            {
+                                schoolOrTeacher.id=item.creatorId;
+                                schoolOrTeacher.scope="teacher";
+                            }
+                        }
+                        var data = schoolOrTeachers.Find(x => x.id.Equals(schoolOrTeacher.id));
+                        if (data==null)
+                        {
+                            schoolOrTeachers.Add(schoolOrTeacher);
+                        }
                     }
                 }
             }
@@ -407,14 +442,243 @@ namespace TEAMModelOS.Controllers.Both
                 }
 
                 EvaluationSyncInfo syncInfo = await EvaluationSyncInfoService.PackageEvaluation(activity.id, activity.scope, activity.owner, activity.type, _azureCosmos, _azureStorage, _coreAPIHttpService, _dingDing, _httpClientFactory);
-                if (syncInfo!=null &&!infos.Exists(x=>x.id.Equals(syncInfo.id)))
+                SchoolOrTeacher schoolOrTeacher = new SchoolOrTeacher();
+                if (syncInfo!=null &&!infos.Exists(x => x.id.Equals(syncInfo.id)))
                 {
+                    if (syncInfo.scope.Equals("school"))
+                    {
+                        schoolOrTeacher.id=syncInfo.ownerId;
+                        schoolOrTeacher.name=syncInfo.ownerName;
+                        schoolOrTeacher.picture=syncInfo.ownerPicture;
+                        schoolOrTeacher.scope="school";
+                    }
+                    else
+                    {
+                        schoolOrTeacher.id=syncInfo.ownerId;
+                        schoolOrTeacher.name=syncInfo.ownerName;
+                        schoolOrTeacher.picture=syncInfo.ownerPicture;
+                        schoolOrTeacher.scope="teacher";
+                    }
+                    var data = schoolOrTeachers.Find(x => x.id.Equals(schoolOrTeacher.id));
+                    if (data==null)
+                    {
+                        schoolOrTeachers.Add(schoolOrTeacher);
+                    }
                     infos.Add(syncInfo);
                 }
+                else
+                {
+                    if (activity.scope.Equals("school"))
+                    {
+                        schoolOrTeacher.id=activity.owner;
+                        schoolOrTeacher.scope="school";
+                    }
+                    else
+                    {
+                        schoolOrTeacher.id=activity.owner;
+                        schoolOrTeacher.scope="teacher";
+                    }
+                    var data = schoolOrTeachers.Find(x => x.id.Equals(schoolOrTeacher.id));
+                    if (data==null)
+                    {
+                        schoolOrTeachers.Add(schoolOrTeacher);
+                    }
+                }
             }
 
+            var noNameTeachers = schoolOrTeachers.FindAll(x => string.IsNullOrWhiteSpace(x.name) && x.scope.Equals("teacher"));
+            if (noNameTeachers.IsNotEmpty())
+            {
+                var reslut = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<SchoolOrTeacher>($"select c.id,c.name,c.picture from c where c.id in ({string.Join(",", noNameTeachers.Select(x => $"'{x.id}'"))})", "Base");
+                if (reslut.list.IsNotEmpty())
+                {
+                    noNameTeachers.ForEach(x => {
+                        var teacher = reslut.list.Find(y => y.id.Equals(x.id));
+                        if (teacher!=null)
+                        {
+                            x.name=teacher.name;
+                            x.picture=teacher.picture;
+                        }
+                    });
+                }
+            }
+            var noNameSchools = schoolOrTeachers.FindAll(x => string.IsNullOrWhiteSpace(x.name) && x.scope.Equals("school"));
+            if (noNameSchools.IsNotEmpty())
+            {
+                var reslut = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<SchoolOrTeacher>($"select c.id,c.name,c.picture from c where c.id in ({string.Join(",", noNameSchools.Select(x => $"'{x.id}'"))})", "Base");
+                if (reslut.list.IsNotEmpty())
+                {
+                    noNameSchools.ForEach(x => {
+                        var school = reslut.list.Find(y => y.id.Equals(x.id));
+                        if (school!=null)
+                        {
+                            x.name=school.name;
+                            x.picture=school.picture;
+                        }
+                    });
+                }
+            }
+            return Ok(new {code=200, infos, owners = schoolOrTeachers, success =infos.Where(x=>!string.IsNullOrWhiteSpace(x.shortCode)).Count(), failed= infos.Where(x => string.IsNullOrWhiteSpace(x.shortCode)).Count() });
+        }
+        /// <summary>
+        /// 局域网端搜寻云端评测
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [AuthToken(Roles = "teacher,admin")]
+        [HttpPost("load-package")]
+        //#if !DEBUG
+        //        [Authorize(Roles = "IES")]
+        //#endif
+        public async Task<IActionResult> LoadPackage(JsonNode json)
+        {
+            List<EvaluationSyncInfo> infos = new List<EvaluationSyncInfo>();
+            List<SchoolOrTeacher> schoolOrTeachers = new List<SchoolOrTeacher>();
+            if (!string.IsNullOrWhiteSpace($"{json["pid"]}"))
+            {
+                //区级发布的活动
+                var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ArtEvaluation>($"select  c.id,c.scope,c.school from  c where c.pId ='{json["pid"]}' and c.pk='Art' ");
+                if (result.list.IsNotEmpty())
+                {
+                    foreach (var item in result.list)
+                    {
+                        SchoolOrTeacher schoolOrTeacher = new SchoolOrTeacher();
+                        ResponseMessage response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemStreamAsync(item.id, new PartitionKey("EvaluationSyncInfo"));
+                        if (response.IsSuccessStatusCode)
+                        {
+                            EvaluationSyncInfo syncInfo = JsonDocument.Parse(response.Content).RootElement.ToObject<EvaluationSyncInfo>();
+                            if (syncInfo!=null &&!infos.Exists(x => x.id.Equals(syncInfo.id)))
+                            {
+                                if (syncInfo.scope.Equals("school"))
+                                {
+                                    schoolOrTeacher.id=syncInfo.ownerId;
+                                    schoolOrTeacher.name=syncInfo.ownerName;
+                                    schoolOrTeacher.picture=syncInfo.ownerPicture;
+                                    schoolOrTeacher.scope="school";
+                                }
+                                else
+                                {
+                                    schoolOrTeacher.id=syncInfo.ownerId;
+                                    schoolOrTeacher.name=syncInfo.ownerName;
+                                    schoolOrTeacher.picture=syncInfo.ownerPicture;
+                                    schoolOrTeacher.scope="teacher";
+                                }
+                                infos.Add(syncInfo);
+                            }
+                        }
+                        else {
+                            if (item.scope.Equals("school"))
+                            {
+                                schoolOrTeacher.id=item.school;
+                                schoolOrTeacher.scope="school";
+                            }
+                            else
+                            {
+                                schoolOrTeacher.id=item.creatorId;
+                                schoolOrTeacher.scope="teacher";
+                            }
+                        }
+                        var data = schoolOrTeachers.Find(x => x.id.Equals(schoolOrTeacher.id));
+                        if (data==null)
+                        {
+                            schoolOrTeachers.Add(schoolOrTeacher);
+                        }
+                    }
+                }
+            }
+            if (json["evaluation"]!=null)
+            {
+                var activity = JsonSerializer.Deserialize<EvaluationSyncInfo>(json["evaluation"]);
+                ValidResult validResult = activity.Valid();
+                if (!validResult.isVaild)
+                {
 
-            return Ok(new {code=200, infos, success=infos.Where(x=>!string.IsNullOrWhiteSpace(x.shortCode)).Count(), failed= infos.Where(x => string.IsNullOrWhiteSpace(x.shortCode)).Count() });
+                    return BadRequest(validResult);
+                }
+                SchoolOrTeacher schoolOrTeacher = new SchoolOrTeacher();
+                ResponseMessage response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemStreamAsync(activity.id, new PartitionKey("EvaluationSyncInfo"));
+                if (response.IsSuccessStatusCode)
+                {
+                    EvaluationSyncInfo syncInfo = JsonDocument.Parse(response.Content).RootElement.ToObject<EvaluationSyncInfo>();
+                  
+                    
+                    if (syncInfo!=null &&!infos.Exists(x => x.id.Equals(syncInfo.id)))
+                    {
+                        if (syncInfo.scope.Equals("school"))
+                        {
+                            schoolOrTeacher.id=syncInfo.ownerId;
+                            schoolOrTeacher.name=syncInfo.ownerName;
+                            schoolOrTeacher.picture=syncInfo.ownerPicture;
+                            schoolOrTeacher.scope="school";
+                        }
+                        else
+                        {
+                            schoolOrTeacher.id=syncInfo.ownerId;
+                            schoolOrTeacher.name=syncInfo.ownerName;
+                            schoolOrTeacher.picture=syncInfo.ownerPicture;
+                            schoolOrTeacher.scope="teacher";
+                        }
+                        var data = schoolOrTeachers.Find(x => x.id.Equals(schoolOrTeacher.id));
+                        if (data==null)
+                        {
+                            schoolOrTeachers.Add(schoolOrTeacher);
+                        }
+                        infos.Add(syncInfo);
+                    }
+                }
+                else
+                {
+                    if (activity.scope.Equals("school"))
+                    {
+                        schoolOrTeacher.id=activity.owner;
+                        schoolOrTeacher.scope="school";
+                    }
+                    else
+                    {
+                        schoolOrTeacher.id=activity.owner;
+                        schoolOrTeacher.scope="teacher";
+                    }
+                    var data = schoolOrTeachers.Find(x => x.id.Equals(schoolOrTeacher.id));
+                    if (data==null)
+                    {
+                        schoolOrTeachers.Add(schoolOrTeacher);
+                    }
+                }
+            }
+            var noNameTeachers=  schoolOrTeachers.FindAll(x => string.IsNullOrWhiteSpace(x.name) && x.scope.Equals("teacher"));
+            if (noNameTeachers.IsNotEmpty()) 
+            {
+                var reslut= await  _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<SchoolOrTeacher>($"select c.id,c.name,c.picture from c where c.id in ({string.Join(",",noNameTeachers.Select(x=>$"'{x.id}'") )})","Base");
+                if (reslut.list.IsNotEmpty()) 
+                {
+                    noNameTeachers.ForEach(x => {
+                        var teacher = reslut.list.Find(y => y.id.Equals(x.id));
+                        if (teacher!=null) 
+                        {
+                            x.name=teacher.name;
+                            x.picture=teacher.picture;
+                        }
+                    });
+                }
+            }
+            var noNameSchools = schoolOrTeachers.FindAll(x => string.IsNullOrWhiteSpace(x.name) && x.scope.Equals("school"));
+            if (noNameSchools.IsNotEmpty())
+            {
+                var reslut = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<SchoolOrTeacher>($"select c.id,c.name,c.picture from c where c.id in ({string.Join(",", noNameSchools.Select(x => $"'{x.id}'"))})", "Base");
+                if (reslut.list.IsNotEmpty()) 
+                {
+                    noNameSchools.ForEach(x => { 
+                        var school = reslut.list.Find(y => y.id.Equals(x.id));
+                        if (school!=null) 
+                        {
+                            x.name=school.name;
+                            x.picture=school.picture;
+                        }
+                    });
+                }
+            }
+            return Ok(new { code = 200, infos, owners = schoolOrTeachers, success = infos.Where(x => !string.IsNullOrWhiteSpace(x.shortCode)).Count(), failed = infos.Where(x => string.IsNullOrWhiteSpace(x.shortCode)).Count() });
         }
     }
 }