已添加17个文件
已复制1个文件
已删除1个文件
已修改51个文件
已重命名1个文件
| | |
| | | "regenerator-runtime": "^0.13.4" |
| | | } |
| | | }, |
| | | "@babel/runtime-corejs3": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.24.7.tgz", |
| | | "integrity": "sha512-eytSX6JLBY6PVAeQa2bFlDx/7Mmln/gaEpsit5a3WEvjGfiIytEsgAwuIXCPM0xvw0v0cJn3ilq0/TvXrW0kgA==", |
| | | "requires": { |
| | | "core-js-pure": "^3.30.2", |
| | | "regenerator-runtime": "^0.14.0" |
| | | }, |
| | | "dependencies": { |
| | | "regenerator-runtime": { |
| | | "version": "0.14.1", |
| | | "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", |
| | | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" |
| | | } |
| | | } |
| | | }, |
| | | "@babel/template": { |
| | | "version": "7.12.13", |
| | | "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", |
| | |
| | | "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=", |
| | | "dev": true |
| | | }, |
| | | "@transloadit/prettier-bytes": { |
| | | "version": "0.0.7", |
| | | "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", |
| | | "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" |
| | | }, |
| | | "@types/anymatch": { |
| | | "version": "1.3.1", |
| | | "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz?cache=0&sync_timestamp=1613378060592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz", |
| | |
| | | "@types/express-serve-static-core": "*", |
| | | "@types/node": "*" |
| | | } |
| | | }, |
| | | "@types/event-emitter": { |
| | | "version": "0.3.5", |
| | | "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz", |
| | | "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==" |
| | | }, |
| | | "@types/express": { |
| | | "version": "4.17.11", |
| | |
| | | "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "@uppy/companion-client": { |
| | | "version": "2.2.2", |
| | | "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz", |
| | | "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", |
| | | "requires": { |
| | | "@uppy/utils": "^4.1.2", |
| | | "namespace-emitter": "^2.0.1" |
| | | } |
| | | }, |
| | | "@uppy/core": { |
| | | "version": "2.3.4", |
| | | "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz", |
| | | "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", |
| | | "requires": { |
| | | "@transloadit/prettier-bytes": "0.0.7", |
| | | "@uppy/store-default": "^2.1.1", |
| | | "@uppy/utils": "^4.1.3", |
| | | "lodash.throttle": "^4.1.1", |
| | | "mime-match": "^1.0.2", |
| | | "namespace-emitter": "^2.0.1", |
| | | "nanoid": "^3.1.25", |
| | | "preact": "^10.5.13" |
| | | } |
| | | }, |
| | | "@uppy/store-default": { |
| | | "version": "2.1.1", |
| | | "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz", |
| | | "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==" |
| | | }, |
| | | "@uppy/utils": { |
| | | "version": "4.1.3", |
| | | "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz", |
| | | "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", |
| | | "requires": { |
| | | "lodash.throttle": "^4.1.1" |
| | | } |
| | | }, |
| | | "@uppy/xhr-upload": { |
| | | "version": "2.1.3", |
| | | "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", |
| | | "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", |
| | | "requires": { |
| | | "@uppy/companion-client": "^2.2.2", |
| | | "@uppy/utils": "^4.1.2", |
| | | "nanoid": "^3.1.25" |
| | | } |
| | | }, |
| | | "@vue/babel-helper-vue-jsx-merge-props": { |
| | |
| | | "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.3.0.tgz", |
| | | "integrity": "sha1-trQKdiVCnSvXwigd26YB7QXcfxo=", |
| | | "dev": true |
| | | }, |
| | | "@wangeditor/basic-modules": { |
| | | "version": "1.1.7", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", |
| | | "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", |
| | | "requires": { |
| | | "is-url": "^1.2.4" |
| | | } |
| | | }, |
| | | "@wangeditor/code-highlight": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", |
| | | "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", |
| | | "requires": { |
| | | "prismjs": "^1.23.0" |
| | | } |
| | | }, |
| | | "@wangeditor/core": { |
| | | "version": "1.1.19", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", |
| | | "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", |
| | | "requires": { |
| | | "@types/event-emitter": "^0.3.3", |
| | | "event-emitter": "^0.3.5", |
| | | "html-void-elements": "^2.0.0", |
| | | "i18next": "^20.4.0", |
| | | "scroll-into-view-if-needed": "^2.2.28", |
| | | "slate-history": "^0.66.0" |
| | | } |
| | | }, |
| | | "@wangeditor/editor": { |
| | | "version": "5.1.23", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", |
| | | "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", |
| | | "requires": { |
| | | "@uppy/core": "^2.1.1", |
| | | "@uppy/xhr-upload": "^2.0.3", |
| | | "@wangeditor/basic-modules": "^1.1.7", |
| | | "@wangeditor/code-highlight": "^1.0.3", |
| | | "@wangeditor/core": "^1.1.19", |
| | | "@wangeditor/list-module": "^1.0.5", |
| | | "@wangeditor/table-module": "^1.1.4", |
| | | "@wangeditor/upload-image-module": "^1.0.2", |
| | | "@wangeditor/video-module": "^1.1.4", |
| | | "dom7": "^3.0.0", |
| | | "is-hotkey": "^0.2.0", |
| | | "lodash.camelcase": "^4.3.0", |
| | | "lodash.clonedeep": "^4.5.0", |
| | | "lodash.debounce": "^4.0.8", |
| | | "lodash.foreach": "^4.5.0", |
| | | "lodash.isequal": "^4.5.0", |
| | | "lodash.throttle": "^4.1.1", |
| | | "lodash.toarray": "^4.4.0", |
| | | "nanoid": "^3.2.0", |
| | | "slate": "^0.72.0", |
| | | "snabbdom": "^3.1.0" |
| | | } |
| | | }, |
| | | "@wangeditor/editor-for-vue": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-1.0.2.tgz", |
| | | "integrity": "sha512-BOENvAXJVtVXlE2X50AAvjV82YlCUeu5cbeR0cvEQHQjYtiVnJtq7HSoj85r2kTgGouI5OrpJG9BBEjSjUSPyA==" |
| | | }, |
| | | "@wangeditor/list-module": { |
| | | "version": "1.0.5", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", |
| | | "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==" |
| | | }, |
| | | "@wangeditor/table-module": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", |
| | | "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==" |
| | | }, |
| | | "@wangeditor/upload-image-module": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", |
| | | "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==" |
| | | }, |
| | | "@wangeditor/video-module": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", |
| | | "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==" |
| | | }, |
| | | "@webassemblyjs/ast": { |
| | | "version": "1.9.0", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "compute-scroll-into-view": { |
| | | "version": "1.0.20", |
| | | "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", |
| | | "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" |
| | | }, |
| | | "concat-map": { |
| | | "version": "0.0.1", |
| | | "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", |
| | |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "core-js-pure": { |
| | | "version": "3.37.1", |
| | | "resolved": "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.37.1.tgz", |
| | | "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==" |
| | | }, |
| | | "core-util-is": { |
| | | "version": "1.0.2", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", |
| | | "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", |
| | | "dev": true |
| | | }, |
| | | "d": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/d/-/d-1.0.2.tgz", |
| | | "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", |
| | | "requires": { |
| | | "es5-ext": "^0.10.64", |
| | | "type": "^2.7.2" |
| | | } |
| | | }, |
| | | "dashdash": { |
| | | "version": "1.14.1", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "dom7": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", |
| | | "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", |
| | | "requires": { |
| | | "ssr-window": "^3.0.0-alpha.1" |
| | | } |
| | | }, |
| | | "domain-browser": { |
| | | "version": "1.2.0", |
| | | "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1604239998047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", |
| | |
| | | "is-callable": "^1.1.4", |
| | | "is-date-object": "^1.0.1", |
| | | "is-symbol": "^1.0.2" |
| | | } |
| | | }, |
| | | "es5-ext": { |
| | | "version": "0.10.64", |
| | | "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz", |
| | | "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", |
| | | "requires": { |
| | | "es6-iterator": "^2.0.3", |
| | | "es6-symbol": "^3.1.3", |
| | | "esniff": "^2.0.1", |
| | | "next-tick": "^1.1.0" |
| | | } |
| | | }, |
| | | "es6-iterator": { |
| | | "version": "2.0.3", |
| | | "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", |
| | | "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", |
| | | "requires": { |
| | | "d": "1", |
| | | "es5-ext": "^0.10.35", |
| | | "es6-symbol": "^3.1.1" |
| | | } |
| | | }, |
| | | "es6-symbol": { |
| | | "version": "3.1.4", |
| | | "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz", |
| | | "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", |
| | | "requires": { |
| | | "d": "^1.0.2", |
| | | "ext": "^1.7.0" |
| | | } |
| | | }, |
| | | "escalade": { |
| | |
| | | "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", |
| | | "dev": true |
| | | }, |
| | | "esniff": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz", |
| | | "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", |
| | | "requires": { |
| | | "d": "^1.0.1", |
| | | "es5-ext": "^0.10.62", |
| | | "event-emitter": "^0.3.5", |
| | | "type": "^2.7.2" |
| | | } |
| | | }, |
| | | "espree": { |
| | | "version": "6.2.1", |
| | | "resolved": "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz?cache=0&sync_timestamp=1607143966756&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.2.1.tgz", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", |
| | | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", |
| | | "dev": true |
| | | }, |
| | | "event-emitter": { |
| | | "version": "0.3.5", |
| | | "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", |
| | | "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", |
| | | "requires": { |
| | | "d": "1", |
| | | "es5-ext": "~0.10.14" |
| | | } |
| | | }, |
| | | "event-pubsub": { |
| | | "version": "4.3.0", |
| | |
| | | "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "ext": { |
| | | "version": "1.7.0", |
| | | "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", |
| | | "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", |
| | | "requires": { |
| | | "type": "^2.7.2" |
| | | } |
| | | }, |
| | | "extend": { |
| | |
| | | "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", |
| | | "dev": true |
| | | }, |
| | | "html-void-elements": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", |
| | | "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" |
| | | }, |
| | | "html-webpack-plugin": { |
| | | "version": "3.2.0", |
| | | "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1615296040860&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", |
| | |
| | | "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", |
| | | "dev": true |
| | | }, |
| | | "i18next": { |
| | | "version": "20.6.1", |
| | | "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", |
| | | "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.0" |
| | | } |
| | | }, |
| | | "iconv-lite": { |
| | | "version": "0.4.24", |
| | | "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1594184264130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", |
| | | "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", |
| | | "dev": true |
| | | }, |
| | | "immer": { |
| | | "version": "9.0.21", |
| | | "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz", |
| | | "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" |
| | | }, |
| | | "import-cwd": { |
| | | "version": "2.1.0", |
| | |
| | | "is-extglob": "^2.1.1" |
| | | } |
| | | }, |
| | | "is-hotkey": { |
| | | "version": "0.2.0", |
| | | "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz", |
| | | "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" |
| | | }, |
| | | "is-negative-zero": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607123080624&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", |
| | | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", |
| | | "dev": true |
| | | }, |
| | | "is-url": { |
| | | "version": "1.2.4", |
| | | "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz", |
| | | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" |
| | | }, |
| | | "is-utf8": { |
| | | "version": "0.2.1", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz", |
| | | "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" |
| | | }, |
| | | "lodash.camelcase": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", |
| | | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" |
| | | }, |
| | | "lodash.clonedeep": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", |
| | | "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" |
| | | }, |
| | | "lodash.debounce": { |
| | | "version": "4.0.8", |
| | | "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", |
| | | "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", |
| | | "dev": true |
| | | "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" |
| | | }, |
| | | "lodash.defaultsdeep": { |
| | | "version": "4.6.1", |
| | | "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz", |
| | | "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", |
| | | "dev": true |
| | | }, |
| | | "lodash.foreach": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz", |
| | | "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" |
| | | }, |
| | | "lodash.isequal": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", |
| | | "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" |
| | | }, |
| | | "lodash.kebabcase": { |
| | | "version": "4.1.1", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", |
| | | "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", |
| | | "dev": true |
| | | }, |
| | | "lodash.throttle": { |
| | | "version": "4.1.1", |
| | | "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", |
| | | "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" |
| | | }, |
| | | "lodash.toarray": { |
| | | "version": "4.4.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz", |
| | | "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" |
| | | }, |
| | | "lodash.transform": { |
| | | "version": "4.6.0", |
| | |
| | | "integrity": "sha1-jLMT5Zll08Bc+/iYkVomevRqM1w=", |
| | | "dev": true |
| | | }, |
| | | "mime-match": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz", |
| | | "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", |
| | | "requires": { |
| | | "wildcard": "^1.1.0" |
| | | } |
| | | }, |
| | | "mime-types": { |
| | | "version": "2.1.30", |
| | | "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.30.tgz", |
| | |
| | | "thenify-all": "^1.0.0" |
| | | } |
| | | }, |
| | | "namespace-emitter": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz", |
| | | "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" |
| | | }, |
| | | "nan": { |
| | | "version": "2.14.2", |
| | | "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", |
| | | "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", |
| | | "dev": true |
| | | }, |
| | | "nanoid": { |
| | | "version": "3.3.7", |
| | | "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", |
| | | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" |
| | | }, |
| | | "nanomatch": { |
| | | "version": "1.2.13", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317434347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", |
| | | "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", |
| | | "dev": true |
| | | }, |
| | | "next-tick": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", |
| | | "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" |
| | | }, |
| | | "nice-try": { |
| | | "version": "1.0.5", |
| | |
| | | "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", |
| | | "dev": true |
| | | }, |
| | | "preact": { |
| | | "version": "10.22.1", |
| | | "resolved": "https://registry.npmmirror.com/preact/-/preact-10.22.1.tgz", |
| | | "integrity": "sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==" |
| | | }, |
| | | "prelude-ls": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", |
| | |
| | | "lodash": "^4.17.20", |
| | | "renderkid": "^2.0.4" |
| | | } |
| | | }, |
| | | "prismjs": { |
| | | "version": "1.29.0", |
| | | "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz", |
| | | "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" |
| | | }, |
| | | "process": { |
| | | "version": "0.11.10", |
| | |
| | | "ajv-keywords": "^3.5.2" |
| | | } |
| | | }, |
| | | "scroll-into-view-if-needed": { |
| | | "version": "2.2.31", |
| | | "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", |
| | | "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", |
| | | "requires": { |
| | | "compute-scroll-into-view": "^1.0.20" |
| | | } |
| | | }, |
| | | "scss-tokenizer": { |
| | | "version": "0.2.3", |
| | | "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", |
| | |
| | | "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", |
| | | "dev": true |
| | | }, |
| | | "slate": { |
| | | "version": "0.72.8", |
| | | "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", |
| | | "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", |
| | | "requires": { |
| | | "immer": "^9.0.6", |
| | | "is-plain-object": "^5.0.0", |
| | | "tiny-warning": "^1.0.3" |
| | | }, |
| | | "dependencies": { |
| | | "is-plain-object": { |
| | | "version": "5.0.0", |
| | | "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", |
| | | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" |
| | | } |
| | | } |
| | | }, |
| | | "slate-history": { |
| | | "version": "0.66.0", |
| | | "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", |
| | | "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", |
| | | "requires": { |
| | | "is-plain-object": "^5.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "is-plain-object": { |
| | | "version": "5.0.0", |
| | | "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", |
| | | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" |
| | | } |
| | | } |
| | | }, |
| | | "slice-ansi": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz?cache=0&sync_timestamp=1618554953055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz", |
| | |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "snabbdom": { |
| | | "version": "3.6.2", |
| | | "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.2.tgz", |
| | | "integrity": "sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==" |
| | | }, |
| | | "snapdragon": { |
| | | "version": "0.8.2", |
| | |
| | | "safer-buffer": "^2.0.2", |
| | | "tweetnacl": "~0.14.0" |
| | | } |
| | | }, |
| | | "ssr-window": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", |
| | | "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" |
| | | }, |
| | | "ssri": { |
| | | "version": "6.0.2", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", |
| | | "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" |
| | | }, |
| | | "tiny-warning": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz", |
| | | "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" |
| | | }, |
| | | "tiptap": { |
| | | "version": "1.32.2", |
| | | "resolved": "https://registry.npmjs.org/tiptap/-/tiptap-1.32.2.tgz", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364203962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", |
| | | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", |
| | | "dev": true |
| | | }, |
| | | "type": { |
| | | "version": "2.7.3", |
| | | "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz", |
| | | "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==" |
| | | }, |
| | | "type-check": { |
| | | "version": "0.3.2", |
| | |
| | | "version": "2.2.8", |
| | | "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", |
| | | "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" |
| | | }, |
| | | "wangeditor": { |
| | | "version": "4.7.15", |
| | | "resolved": "https://registry.npmmirror.com/wangeditor/-/wangeditor-4.7.15.tgz", |
| | | "integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.11.2", |
| | | "@babel/runtime-corejs3": "^7.11.2", |
| | | "tslib": "^2.1.0" |
| | | }, |
| | | "dependencies": { |
| | | "tslib": { |
| | | "version": "2.6.3", |
| | | "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", |
| | | "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" |
| | | } |
| | | } |
| | | }, |
| | | "watch-size": { |
| | | "version": "2.0.0", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "wildcard": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz", |
| | | "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" |
| | | }, |
| | | "word-wrap": { |
| | | "version": "1.2.3", |
| | | "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", |
| | |
| | | }, |
| | | "dependencies": { |
| | | "@riophae/vue-treeselect": "^0.4.0", |
| | | "@wangeditor/editor": "^5.1.23", |
| | | "@wangeditor/editor-for-vue": "^1.0.2", |
| | | "axios": "^0.21.1", |
| | | "core-js": "^3.6.5", |
| | | "echarts": "^5.4.3", |
| | |
| | | "vue-json-viewer": "^2.2.22", |
| | | "vue-router": "^3.5.1", |
| | | "vuescroll": "^4.17.3", |
| | | "vuex": "^3.4.0" |
| | | "vuex": "^3.4.0", |
| | | "wangeditor": "^4.7.15" |
| | | }, |
| | | "devDependencies": { |
| | | "@vue/cli-plugin-babel": "~4.5.0", |
| | |
| | | export function deleteById (id) { |
| | | return request.get(`/business/segments/delete/${id}`) |
| | | } |
| | | export function getUnitList () { |
| | | return request.get(`/business/segments/getUnitList`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | |
| | | export function importFcodeBatch (data) { |
| | | return request.post('/business/shop/importFcodeBatch', data) |
| | | } |
| | | export function importCategoryBatch (data) { |
| | | return request.post('/business/shop/importCategoryBatch', data) |
| | | } |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/shop/exportExcel', data, { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | class="center-title" |
| | | :title="title" |
| | | width="500px" |
| | | top="30vh" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip-warn"><i class="el-icon-warning"></i>导å
¥è¯´æï¼<br> |
| | | 1.请å
ä¸è½½æä»¶æ¨¡æ¿ï¼å¹¶æç
§æ¨¡æ¿è¦å»å¡«åè¡¨æ ¼å
容;<br> |
| | | </p> |
| | | <el-form class="demo-form-inline" > |
| | | <el-form-item label="ç»ç»ä¿¡æ¯æ¸
å" required> |
| | | <div style="width: 100%;display: flex;align-items: center;"> |
| | | <el-button type="primary" @click="clickRef">ç¹å»ä¸ä¼ </el-button> |
| | | <el-button type="text" @click="exportTemplate">ç¹å»ä¸è½½æ¨¡ç.EXCEL</el-button> |
| | | </div> |
| | | <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" /> |
| | | <template v-slot:footer> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import {importCategoryBatch} from '@/api/business/shop' |
| | | export default { |
| | | name: 'OperaShopImportWindow', |
| | | extends: BaseOpera, |
| | | // eslint-disable-next-line vue/no-unused-components |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | importing:false, |
| | | fileName: '', |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, companyType) { |
| | | this.title = title |
| | | this.fileName = '' |
| | | this.visible = true |
| | | }, |
| | | // å¯¼åºæ¨¡æ¿ |
| | | exportTemplate () { |
| | | // æä¿ç³è¯· |
| | | window.open('/template/category.xlsx') |
| | | }, |
| | | clickRef () { |
| | | this.$refs.fileExcel.click() |
| | | }, |
| | | result (e) { |
| | | const data = new FormData() |
| | | data.append('file', e.target.files[0]) |
| | | data.append('companyType', this.companyType) |
| | | importCategoryBatch(data) |
| | | .then(res => { |
| | | this.$tip.apiSuccess('åèµ·æ¹éä¸ä¼ 任塿åï¼è¯·ç¨åå·æ°é¡µé¢æ¥ç') |
| | | this.$emit('success') |
| | | this.visible = false |
| | | }) |
| | | .catch(err => { |
| | | this.fileName = '' |
| | | }) |
| | | .finally(() => { |
| | | this.$refs.fileExcel.value = null |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | </style> |
| | |
| | | data.append('companyType', this.companyType) |
| | | importFcodeBatch(data) |
| | | .then(res => { |
| | | this.$message.success('导å
¥æå') |
| | | |
| | | this.$tip.apiSuccess('åèµ·æ¹éä¸ä¼ 任塿åï¼è¯·ç¨åå·æ°é¡µé¢æ¥ç') |
| | | this.$emit('success') |
| | | this.visible = false |
| | | }) |
| | |
| | | data.append('companyType', this.companyType) |
| | | importExcel(data) |
| | | .then(res => { |
| | | this.$message.success('导å
¥æå') |
| | | this.$tip.apiSuccess('åèµ·æ¹éä¸ä¼ 任塿åï¼è¯·ç¨åå·æ°é¡µé¢æ¥ç') |
| | | this.$emit('success') |
| | | this.visible = false |
| | | }) |
| | |
| | | <template> |
| | | <div style="border: 1px solid #ccc;"> |
| | | <Toolbar |
| | | style="border-bottom: 1px solid #ccc" |
| | | :editor="editor" |
| | | :defaultConfig="toolbarConfig" |
| | | :mode="mode" |
| | | /> |
| | | <Editor |
| | | style="height: 300px; overflow-y: hidden;" |
| | | :value="content.content" |
| | | :mode="mode" |
| | | :defaultConfig="editorConfig" |
| | | @onCreated="onCreated" |
| | | @onChange="onChange" |
| | | @input="html=$event" |
| | | /> |
| | | <div :style="styleEditor"> |
| | | <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" :mode="mode" /> |
| | | <Editor style="height: 300px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode" |
| | | @onCreated="onCreated" @onChange="onChange" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <style src="@wangeditor/editor/dist/css/style.css"></style> |
| | | <script> |
| | | import Vue from 'vue' |
| | | import { Editor, Toolbar } from '@wangeditor/editor-for-vue' |
| | | export default { |
| | | import { Loading } from 'element-ui'; |
| | | export default Vue.extend({ |
| | | props: { |
| | | richData: { // ç¶ç»ä»¶ä¼ éçæ°æ® |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | styleEditor: '', |
| | | readonly: false, // æ¯å¦å¯ä»¥è¾å
¥ |
| | | }, |
| | | name: 'RichEditor', |
| | | components: { Editor, Toolbar }, |
| | | props: { |
| | | content: { |
| | | type: Object, |
| | | default: () => {} |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | editor: null, |
| | | html: '<p><br></p>', |
| | | toolbarConfig: { |
| | | toolbarKeys: [ |
| | | "headerSelect", |
| | | "blockquote", |
| | | "|", |
| | | "bold", |
| | | "underline", |
| | | "italic", |
| | | { |
| | | "key": "group-more-style", |
| | | "title": "æ´å¤", |
| | | "iconSvg": "<svg viewBox=\"0 0 1024 1024\"><path d=\"M204.8 505.6m-76.8 0a76.8 76.8 0 1 0 153.6 0 76.8 76.8 0 1 0-153.6 0Z\"></path><path d=\"M505.6 505.6m-76.8 0a76.8 76.8 0 1 0 153.6 0 76.8 76.8 0 1 0-153.6 0Z\"></path><path d=\"M806.4 505.6m-76.8 0a76.8 76.8 0 1 0 153.6 0 76.8 76.8 0 1 0-153.6 0Z\"></path></svg>", |
| | | "menuKeys": [ |
| | | "through", |
| | | "code", |
| | | "sup", |
| | | "sub", |
| | | "clearStyle" |
| | | ] |
| | | html: '', |
| | | toolbarConfig: { // å·¥å
·æ é
ç½® |
| | | toolbarKeys: this.readonly ? ["fullScreen"]: [ // æ¾ç¤ºæå®çèå项 |
| | | "bold", // ç²ä½ |
| | | "underline", // ä¸å线 |
| | | "italic", // æä½ |
| | | "through", // å é¤çº¿ |
| | | "code", // è¡å
代ç |
| | | "sub", // 䏿 |
| | | "sup", // 䏿 |
| | | "clearStyle", // æ¸
餿 ¼å¼ |
| | | "color", // åä½é¢è² |
| | | "bgColor", // èæ¯è² |
| | | "fontSize", // åå· |
| | | "fontFamily", // åä½ |
| | | "indent", // å¢å ç¼©è¿ |
| | | "delIndent", // åå°ç¼©è¿ |
| | | "justifyLeft", // å·¦å¯¹é½ |
| | | "justifyRight", // å³å¯¹é½ |
| | | "justifyCenter", // å±
ä¸å¯¹é½ |
| | | "justifyJustify", // ä¸¤ç«¯å¯¹é½ |
| | | "lineHeight", // è¡é« |
| | | // "viewImageLink", // æ¥ç龿¥ |
| | | "divider", // åå²çº¿ |
| | | "emotion", // 表æ
|
| | | "insertLink", // æå
¥é¾æ¥ |
| | | // "editLink", // ä¿®æ¹é¾æ¥ |
| | | // "unLink", // 忶龿¥ |
| | | // "viewLink", // æ¥ç龿¥ |
| | | "codeBlock", // 代ç å |
| | | "blockquote", // å¼ç¨ |
| | | "headerSelect", // æ é¢ |
| | | // "header1", // æ é¢1 |
| | | // "header2", // æ é¢2 |
| | | // "header3", // æ é¢3 |
| | | // "header4", // æ é¢4 |
| | | // "header5", // æ é¢5 |
| | | // "todo", // å¾
å |
| | | "redo", // éå |
| | | "undo", // æ¤é |
| | | // "enter", // å车 |
| | | // "bulletedList", // æ åºå表 |
| | | // "numberedList", // æåºå表 |
| | | // "codeSelectLang" // éæ©è¯è¨ |
| | | // è¡¨æ ¼åè½åç» |
| | | /* { |
| | | key: 'table-style', // å¿
å¡«ï¼è¦ä»¥ group å¼å¤´ |
| | | title: 'è¡¨æ ¼', // å¿
å¡« |
| | | // iconSvg: '<svg>....</svg>', // å¯é |
| | | menuKeys: [ |
| | | "insertTable", // æå
¥è¡¨æ ¼ |
| | | "deleteTable", // å é¤è¡¨æ ¼ |
| | | "insertTableRow", // æå
¥è¡ |
| | | "deleteTableRow", // å é¤è¡ |
| | | "insertTableCol", // æå
¥å |
| | | "deleteTableCol", // å é¤å |
| | | "tableHeader", // 表头 |
| | | "tableFullWidth", // 宽度èªéåº |
| | | ] // ä¸çº§èå key ï¼å¿
å¡« |
| | | },*/ |
| | | // ä¸ä¼ å¾çåç» |
| | | /* { |
| | | key: 'img-style', // å¿
å¡«ï¼è¦ä»¥ group å¼å¤´ |
| | | title: 'å¾ç', // å¿
å¡« |
| | | // iconSvg: '<svg>....</svg>', // å¯é |
| | | menuKeys: [ |
| | | "uploadImage", // ä¸ä¼ å¾ç |
| | | "insertImage", // ç½ç»å¾ç |
| | | "deleteImage", // å é¤å¾ç |
| | | "editImage", // ç¼è¾å¾ç |
| | | "imageWidth30", // å¾ç宽度ç¸å¯¹äºç¼è¾å¨å®½åº¦çç¾åæ¯30 |
| | | "imageWidth50", // å¾ç宽度ç¸å¯¹äºç¼è¾å¨å®½åº¦çç¾åæ¯50 |
| | | "imageWidth100", // å¾ç宽度ç¸å¯¹äºç¼è¾å¨å®½åº¦çç¾åæ¯100 |
| | | ] // ä¸çº§èå key ï¼å¿
å¡« |
| | | },*/ |
| | | // è§é¢åç» |
| | | /* { |
| | | key: 'video-style', // å¿
å¡«ï¼è¦ä»¥ group å¼å¤´ |
| | | title: 'è§é¢', // å¿
å¡« |
| | | // iconSvg: '<svg>....</svg>', // å¯é |
| | | menuKeys: [ |
| | | "insertVideo", // æå
¥ç½ç»è§é¢ |
| | | "uploadVideo", // ä¸ä¼ è§é¢ |
| | | "editVideoSize", // ä¿®æ¹è§é¢å°ºå¯¸ |
| | | ] // ä¸çº§èå key ï¼å¿
å¡« |
| | | },*/ |
| | | "fullScreen", // å
¨å± |
| | | ], |
| | | excludeKeys: [ // éèæå®çèå项 |
| | | // 'headerSelect', |
| | | // 'video-style' |
| | | // æé¤èåç»ï¼åèåç» key çå¼å³å¯ |
| | | ], |
| | | |
| | | }, |
| | | "color", |
| | | "bgColor", |
| | | "|", |
| | | "fontSize", |
| | | "fontFamily", |
| | | "lineHeight", |
| | | "|", |
| | | "bulletedList", |
| | | "numberedList", |
| | | "todo", |
| | | { |
| | | "key": "group-justify", |
| | | "title": "对é½", |
| | | "iconSvg": "<svg viewBox=\"0 0 1024 1024\"><path d=\"M768 793.6v102.4H51.2v-102.4h716.8z m204.8-230.4v102.4H51.2v-102.4h921.6z m-204.8-230.4v102.4H51.2v-102.4h716.8zM972.8 102.4v102.4H51.2V102.4h921.6z\"></path></svg>", |
| | | "menuKeys": [ |
| | | "justifyLeft", |
| | | "justifyRight", |
| | | "justifyCenter", |
| | | "justifyJustify" |
| | | ] |
| | | }, |
| | | { |
| | | "key": "group-indent", |
| | | "title": "缩è¿", |
| | | "iconSvg": "<svg viewBox=\"0 0 1024 1024\"><path d=\"M0 64h1024v128H0z m384 192h640v128H384z m0 192h640v128H384z m0 192h640v128H384zM0 832h1024v128H0z m0-128V320l256 192z\"></path></svg>", |
| | | "menuKeys": [ |
| | | "indent", |
| | | "delIndent" |
| | | ] |
| | | }, |
| | | // "|", |
| | | "emotion", |
| | | "insertLink", |
| | | { |
| | | "key": "group-image", |
| | | "title": "å¾ç", |
| | | "iconSvg": "<svg viewBox=\"0 0 1024 1024\"><path d=\"M959.877 128l0.123 0.123v767.775l-0.123 0.122H64.102l-0.122-0.122V128.123l0.122-0.123h895.775zM960 64H64C28.795 64 0 92.795 0 128v768c0 35.205 28.795 64 64 64h896c35.205 0 64-28.795 64-64V128c0-35.205-28.795-64-64-64zM832 288.01c0 53.023-42.988 96.01-96.01 96.01s-96.01-42.987-96.01-96.01S682.967 192 735.99 192 832 234.988 832 288.01zM896 832H128V704l224.01-384 256 320h64l224.01-192z\"></path></svg>", |
| | | "menuKeys": [ |
| | | "insertImage", |
| | | "uploadImage" |
| | | ] |
| | | }, |
| | | "insertTable", |
| | | "codeBlock", |
| | | "divider", |
| | | "|", |
| | | "undo", |
| | | "redo", |
| | | "|", |
| | | "fullScreen" |
| | | ] |
| | | }, |
| | | editorConfig: { |
| | | editorConfig: { // ç¼è¾å¨é
ç½® |
| | | placeholder: '请è¾å
¥å
容...', |
| | | readOnly: this.readonly, // æ¯å¦åªè¯»ï¼é»è®¤false |
| | | autoFocus: false, // æ¯å¦èªå¨focusï¼é»è®¤ä¸ºtrue |
| | | scroll: true, // é
ç½®ç¼è¾å¨æ¯å¦æ¯ææ»å¨ï¼é»è®¤ä¸º true ãæ³¨æï¼æ¤æ¶ä¸è¦åºå® editor-container çé«åº¦ï¼è®¾ç½®ä¸ä¸ª min-height å³å¯ã |
| | | maxLength: 20000, // æå¤§éå¶ï¼é¿å
å
容è¿å¤å¡é¡¿ |
| | | MENU_CONF: { |
| | | // å¾çä¸ä¼ |
| | | uploadImage: { |
| | | // server: '/api/upload', |
| | | name: 'file', |
| | | server: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal', |
| | | server: process.env.VUE_APP_BASE_API + "/common/upload", |
| | | fieldName: 'file', |
| | | // å个æä»¶çæå¤§ä½ç§¯éå¶ï¼é»è®¤ä¸º 2M |
| | | maxFileSize: 10 * 1024 * 1024, // 10M |
| | | // æå¤å¯ä¸ä¼ å 个æä»¶ï¼é»è®¤ä¸º 100 |
| | | maxNumberOfFiles: 10, |
| | | // éæ©æä»¶æ¶çç±»åéå¶ï¼é»è®¤ä¸º ['image/*'] ãå¦ä¸æ³éå¶ï¼å设置为 [] |
| | | allowedFileTypes: ['image/*'], |
| | | // èªå®ä¹ä¸ä¼ åæ°ï¼ä¾å¦ä¼ ééªè¯ç token çãåæ°ä¼è¢«æ·»å å° formData ä¸ï¼ä¸èµ·ä¸ä¼ å°æå¡ç«¯ã |
| | | meta: { |
| | | folder: 'shop' |
| | | }, |
| | | onBeforeUpload(file) { // JS è¯æ³ |
| | | // file éä¸çæä»¶ï¼æ ¼å¼å¦ { key: file } |
| | | // debugger |
| | | return file |
| | | // å° meta æ¼æ¥å° url åæ°ä¸ï¼é»è®¤ false |
| | | metaWithUrl: false, |
| | | // èªå®ä¹å¢å http header |
| | | // headers: { Authorization: "Bearer " + getToken() }, |
| | | // è·¨åæ¯å¦ä¼ é cookie ï¼é»è®¤ä¸º false |
| | | withCredentials: true, |
| | | // è¶
æ¶æ¶é´ï¼é»è®¤ä¸º 10 ç§ |
| | | timeout: 10 * 1000, //10 ç§ |
| | | // ä¸ä¼ å |
| | | onBeforeUpload(files) { |
| | | Loading.service({ |
| | | lock: true, |
| | | text: 'ä¸ä¼ ä¸...', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }); |
| | | return files; |
| | | }, |
| | | onSuccess(file, res) { |
| | | console.log(`${file.name} ä¸ä¼ æå`, res) |
| | | }, |
| | | onError(file, err, res) { |
| | | console.log(`${file.name} ä¸ä¼ åºé`, err, res) |
| | | }, |
| | | // èªå®ä¹æå
¥å¾ç |
| | | customInsert(res, insertFn) { |
| | | console.log(res); |
| | | // å 为èªå®ä¹æå
¥å¯¼è´onSuccessä¸onFailedåè°å½æ°ä¸èµ·ä½ç¨,èªå·±æå¨å¤ç |
| | | // å
å
³éçå¾
çMessage |
| | | Loading.service({ |
| | | lock: true, |
| | | text: 'ä¸ä¼ ä¸...', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }).close(); |
| | | if (res.code === 200) { |
| | | // Message.success({ |
| | | // message: `${res.data.originalName} ä¸ä¼ æå` |
| | | // }); |
| | | } else { |
| | | // Message.error({ |
| | | // message: `${res.data.originalName} ä¸ä¼ 失败ï¼è¯·éæ°å°è¯` |
| | | // }); |
| | | } |
| | | insertFn(res.url, res.originalFilename, res.newFileName); |
| | | }, |
| | | |
| | | // å个æä»¶ä¸ä¼ æåä¹å |
| | | onSuccess(file, res) { |
| | | console.log(`${file.originalFilename} ä¸ä¼ æå`, res); |
| | | }, |
| | | // å个æä»¶ä¸ä¼ 失败 |
| | | onFailed(file, res) { |
| | | console.log(`${file.originalFilename} ä¸ä¼ 失败`, res); |
| | | }, |
| | | // ä¸ä¼ è¿åº¦çåè°å½æ° |
| | | onProgress(progress) { |
| | | console.log('progress', progress); |
| | | // progress æ¯ 0-100 çæ°å |
| | | }, |
| | | // ä¸ä¼ éè¯¯ï¼æè
触å timeout è¶
æ¶ |
| | | onError(file, err, res) { |
| | | console.log(`${file.originalFilename} ä¸ä¼ åºé`, err, res); |
| | | } |
| | | }, |
| | | // è§é¢ä¸ä¼ |
| | | uploadVideo: { |
| | | fieldName: 'file', |
| | | server: process.env.VUE_APP_BASE_API + "/common/upload", |
| | | // å个æä»¶çæå¤§ä½ç§¯éå¶ï¼é»è®¤ä¸º 10M |
| | | maxFileSize: 50 * 1024 * 1024, // 50M |
| | | // æå¤å¯ä¸ä¼ å 个æä»¶ï¼é»è®¤ä¸º 5 |
| | | maxNumberOfFiles: 3, |
| | | // éæ©æä»¶æ¶çç±»åéå¶ï¼é»è®¤ä¸º ['video/*'] ãå¦ä¸æ³éå¶ï¼å设置为 [] |
| | | allowedFileTypes: ['video/*'], |
| | | // èªå®ä¹ä¸ä¼ åæ°ï¼ä¾å¦ä¼ ééªè¯ç token çãåæ°ä¼è¢«æ·»å å° formData ä¸ï¼ä¸èµ·ä¸ä¼ å°æå¡ç«¯ã |
| | | meta: { |
| | | // token: 'xxx', |
| | | // otherKey: 'yyy' |
| | | }, |
| | | // å° meta æ¼æ¥å° url åæ°ä¸ï¼é»è®¤ false |
| | | metaWithUrl: false, |
| | | |
| | | // èªå®ä¹å¢å http header |
| | | headers: { |
| | | // Authorization: "Bearer " + getToken() |
| | | // otherKey: 'xxx' |
| | | }, |
| | | // è·¨åæ¯å¦ä¼ é cookie ï¼é»è®¤ä¸º false |
| | | withCredentials: true, |
| | | // è¶
æ¶æ¶é´ï¼é»è®¤ä¸º 30 ç§ |
| | | timeout: 1000 * 1000, // 1000 ç§, |
| | | // ä¸ä¼ ä¹å触å |
| | | onBeforeUpload(file) { |
| | | return file; |
| | | }, |
| | | // èªå®ä¹æå
¥è§é¢ |
| | | customInsert(res, insertFn) { |
| | | // å 为èªå®ä¹æå
¥å¯¼è´onSuccessä¸onFailedåè°å½æ°ä¸èµ·ä½ç¨,èªå·±æå¨å¤ç |
| | | // å
å
³éçå¾
çMessage |
| | | // Message.closeAll(); |
| | | if (res.code === 200) { |
| | | // Message.success({ |
| | | // message: `${res.data.originalName} ä¸ä¼ æå` |
| | | // }); |
| | | } else { |
| | | // Message.error({ |
| | | // message: `${res.data.originalName} ä¸ä¼ 失败ï¼è¯·éæ°å°è¯` |
| | | // }); |
| | | } |
| | | insertFn(res.data.link, res.data.link); |
| | | }, |
| | | // ä¸ä¼ è¿åº¦çåè°å½æ° |
| | | onProgress(progress) { |
| | | console.log(progress); |
| | | // onProgress(progress) { // JS è¯æ³ |
| | | // progress æ¯ 0-100 çæ°å |
| | | }, |
| | | // // å个æä»¶ä¸ä¼ æåä¹å |
| | | // onSuccess(file, res) { |
| | | // console.log(`${file.name} ä¸ä¼ æå`, res); |
| | | // this.successMsg(file); |
| | | // }, |
| | | // // å个æä»¶ä¸ä¼ 失败 |
| | | // onFailed(file, res) { |
| | | // console.log(`${file.name} ä¸ä¼ 失败`, res); |
| | | // this.errorMsg(file); |
| | | // }, |
| | | // ä¸ä¼ éè¯¯ï¼æè
触å timeout è¶
æ¶ |
| | | onError(file, err, res) { |
| | | console.log(`${file.name} ä¸ä¼ åºé`, err, res); |
| | | // Notification.error({ |
| | | // title: 'é误', |
| | | // message: `${file.name} ä¸ä¼ 失败ï¼è¯·éæ°å°è¯` |
| | | // }); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | mode: 'default', // or 'simple' |
| | | } |
| | | }, |
| | | watch: { |
| | | richData: function (value) { |
| | | this.html = value |
| | | }, |
| | | readonly: function (value) { |
| | | this.readonly = value |
| | | }, |
| | | styleEditor: function (value) { |
| | | this.styleEditor = value |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // éè¦å¨ç¼è¾å¨åå»ºå®æ¯åå¨èµå¼ |
| | | this.$nextTick(()=>{ |
| | | this.html = this.richData |
| | | }) |
| | | }, |
| | | methods: { |
| | | // ç¼è¾å¨åå»ºå®æ¯æ¶çåè°å½æ° |
| | | onCreated(editor) { |
| | | this.editor = Object.seal(editor) // ä¸å®è¦ç¨ Object.seal() ï¼å¦å伿¥é |
| | | }, |
| | | // ç¼è¾å¨å
容ãéåºååæ¶çåè°å½æ° |
| | | onChange(editor) { |
| | | this.$emit('getWangedditor', editor.getHtml()) |
| | | console.log("onChange", editor.getHtml()); // onChange æ¶è·åç¼è¾å¨ææ°å
容 |
| | | }, |
| | | }, |
| | | beforeDestroy() { |
| | | // ç¼è¾å¨éæ¯æ¶çåè°å½æ°ãè°ç¨ editor.destroy() å³å¯éæ¯ç¼è¾å¨ |
| | | const editor = this.editor |
| | | if (editor == null) return |
| | | editor.destroy() // ç»ä»¶éæ¯æ¶ï¼åæ¶éæ¯ç¼è¾å¨ |
| | | }, |
| | | methods: { |
| | | onCreated (editor) { |
| | | this.editor = Object.seal(editor) |
| | | }, |
| | | onChange (editor) { |
| | | console.log(this.html); |
| | | // debugger |
| | | if (!this.html||this.content.content==this.html) { |
| | | return |
| | | } |
| | | this.$emit('edit', this.html) |
| | | }, |
| | | }, |
| | | |
| | | } |
| | | }) |
| | | </script> |
| | | |
| | | <style src="@wangeditor/editor/dist/css/style.css"></style> |
| | | <style lang="scss"> |
| | | </style>> |
| | |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="label" label="æ°æ®æ ç¾" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="æ°æ®å¼" min-width="100px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="code" label="æ°æ®å¼" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.code || row.code.length>500" > |
| | | <el-button type="text" @click="showCode(row)" >ç¹å»æ¥ç</el-button> |
| | | </div> |
| | | <div v-else>{{row.code}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="disabled" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.disabled | disabledText}}</template> |
| | | </el-table-column> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDictDataWindow.open('ç¼è¾åå
¸æ°æ®', dictId, row)" icon="el-icon-edit">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaDictDataWindow.open('ç¼è¾åå
¸æ°æ®', searchForm.dictId, row)" icon="el-icon-edit">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaDictDataWindow ref="operaDictDataWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> |
| | | |
| | | <el-dialog |
| | | class="center-title" |
| | | title="åå
¸å¼" |
| | | width="70%" |
| | | height="70%" |
| | | text="åå
¸å¼" |
| | | :visible.sync="visible1" |
| | | append-to-body |
| | | > |
| | | <div class="agree-list" v-html="agreement"> |
| | | </div> |
| | | <template v-slot:footer> |
| | | <el-button @click="visible1=false">è¿å</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </TableLayout> |
| | | </GlobalWindow> |
| | | </template> |
| | |
| | | data () { |
| | | return { |
| | | visible: false, |
| | | visible1: false, |
| | | agreement: '', |
| | | searchForm: { |
| | | // åå
¸ID |
| | | dictId: null |
| | |
| | | this.dictName = dictName |
| | | this.visible = true |
| | | this.search() |
| | | }, |
| | | showCode(row){ |
| | | this.agreement=row.code |
| | | this.visible1=true |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .agree-list{ |
| | | height: 550px; |
| | | //max-height: 50%; |
| | | overflow: auto; |
| | | } |
| | | |
| | | /deep/ .window__body { |
| | | .table-content { |
| | | padding: 0; |
| | |
| | | padding-top: 0; |
| | | } |
| | | } |
| | | |
| | | } |
| | | </style> |
| | |
| | | <el-form-item label="æ°æ®æ ç¾" prop="label" required> |
| | | <el-input v-model="form.label" placeholder="请è¾å
¥æ°æ®æ ç¾" v-trim maxlength="50"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å¯ææ¬" prop="istext" > |
| | | <el-switch v-model="form.istext" :active-value="true" :inactive-value="false"/> |
| | | <span class="status-text">{{form.istext | disabledText1}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="æ°æ®å¼" prop="code" required> |
| | | <el-tiptap |
| | | v-if="[175].includes(form.id)" |
| | | v-model="form.code" |
| | | :extensions="extensions" |
| | | /> |
| | | <el-input v-else v-model="form.code" placeholder="请è¾å
¥æ°æ®å¼" v-trim /> |
| | | <el-input v-if="!form.istext" v-model="form.code" placeholder="请è¾å
¥æ°æ®å¼" v-trim maxlength="50"/> |
| | | <RichEditor v-else :richData="form.code" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="disabled" required class="form-item-status"> |
| | | <el-switch v-model="form.disabled" :active-value="false" :inactive-value="true"/> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { upload } from '@/api/system/common' |
| | | import { |
| | | // necessary extensions |
| | | Doc, |
| | | Text, |
| | | Paragraph, |
| | | Heading, |
| | | Bold, |
| | | Underline, |
| | | Italic, |
| | | Strike, |
| | | ListItem, |
| | | BulletList, |
| | | OrderedList, |
| | | Image, |
| | | Blockquote, |
| | | TextAlign, |
| | | Indent, |
| | | Table, |
| | | TableHeader, |
| | | TableCell, |
| | | TableRow, |
| | | TextColor, |
| | | HorizontalRule |
| | | } from 'element-tiptap' |
| | | import RichEditor from '@/components/common/RichEditor' |
| | | export default { |
| | | name: 'OperaDictDataWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | components: { GlobalWindow,RichEditor }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | styleEditor:'border: 1px solid #ccc;display: inline-block;', |
| | | form: { |
| | | id: null, |
| | | dictId: null, |
| | | code: '', |
| | | label: '', |
| | | disabled: false |
| | | disabled: false, |
| | | istext: false |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | |
| | | code: [ |
| | | { required: true, message: '请è¾å
¥æ°æ®å¼' } |
| | | ] |
| | | }, |
| | | extensions: [ |
| | | new Doc(), |
| | | new Text(), |
| | | new Paragraph(), |
| | | new Heading({ level: 5 }), |
| | | new Bold({ bubble: true }), |
| | | new Underline({ bubble: true, menubar: false }), |
| | | new Italic(), |
| | | new Strike(), |
| | | new ListItem(), |
| | | new BulletList(), |
| | | new OrderedList(), |
| | | new Image({ |
| | | uploadRequest (file) { |
| | | const fd = new FormData() |
| | | fd.append('folder', 'visit') |
| | | fd.append('file', file) |
| | | return upload(fd).then(res => { |
| | | return res.url |
| | | }) |
| | | } |
| | | }), |
| | | new Blockquote(), |
| | | new TextAlign(), |
| | | new Indent(), |
| | | new Table(), |
| | | new TableHeader(), |
| | | new TableCell(), |
| | | new TableRow(), |
| | | new HorizontalRule(), |
| | | new TextColor() |
| | | ] |
| | | } |
| | | }, |
| | | methods: { |
| | | getWangedditor(val){ |
| | | this.form.code =val |
| | | }, |
| | | /** |
| | | * @title çªå£æ é¢ |
| | | * @dict æå±åå
¸ID |
| | |
| | | this.$refs.form.resetFields() |
| | | this.form.id = null |
| | | this.form.dictId = dictId |
| | | this.form.istext=false |
| | | }) |
| | | return |
| | | } |
| | |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | this.form.dictId = dictId |
| | | this.form.istext=false |
| | | } |
| | | }) |
| | | } |
| | |
| | | } |
| | | return 'å¯ç¨' |
| | | }) |
| | | Vue.filter('disabledText1', (value) => { |
| | | if (value) { |
| | | return 'æ®éææ¬' |
| | | } |
| | | return '坿æ¬' |
| | | }) |
| | | } |
| | | } |
| | |
| | | <TableLayout :permissions="['business:segments:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="主é®" prop="id"> |
| | | <el-input v-model="searchForm.id" placeholder="请è¾å
¥ä¸»é®" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="searchForm.creator" placeholder="请è¾å
¥å建人ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="searchForm.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="searchForm.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="searchForm.remark" placeholder="请è¾å
¥å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="æå±åç" prop="segmentId"> |
| | | <el-select v-model="searchForm.unitCode" @change="search" clearable placeholder="æå±åç"> |
| | | <el-option v-for="(item) in unitList " :key="item.code" :label="item.name" :value="item.code"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åºåç¼ç " prop="segmentId"> |
| | | <el-input v-model="searchForm.segmentId" placeholder="请è¾å
¥åºåç¼ç " @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.segmentId" clearable placeholder="请è¾å
¥åºåç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸çº§åºåç¼ç " prop="parentId"> |
| | | <el-input v-model="searchForm.parentId" placeholder="请è¾å
¥ä¸çº§åºåç¼ç " @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="ç¶çº§åºåç¼ç " prop="name"> |
| | | <el-input v-model="searchForm.parentId" placeholder="请è¾å
¥ç¶çº§åºåç¼ç " clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-input v-model="searchForm.status" placeholder="请è¾å
¥ç¶æ" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="orderNum"> |
| | | <el-input v-model="searchForm.orderNum" placeholder="请è¾å
¥æåºç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç±»å 0æåº 1çåº 2å¸åº" prop="type"> |
| | | <el-input v-model="searchForm.type" placeholder="请è¾å
¥ç±»å 0æåº 1çåº 2å¸åº" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿åæ¥æ¶é´" prop="syncDate"> |
| | | <el-date-picker v-model="searchForm.syncDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æè¿åæ¥æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿åæ¥å¤æ³¨" prop="syncInfo"> |
| | | <el-input v-model="searchForm.syncInfo" placeholder="请è¾å
¥æè¿åæ¥å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="ç±»å" prop="type"> |
| | | <el-select v-model="searchForm.type" @change="search" clearable placeholder="ç±»å" > |
| | | <el-option label="æåº" value="0"></el-option> |
| | | <el-option label="çåº" value="1"></el-option> |
| | | <el-option label="çåº" value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="id" label="主é®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creator" label="å建人ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="æ´æ°äººç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="æ¯å¦å é¤0å¦ 1æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="unitCode" label="åçcode" min-width="100px"></el-table-column> |
| | | <el-table-column prop="unitName" label="åçåç§°" min-width="100px"> </el-table-column> |
| | | <el-table-column prop="segmentId" label="åºåç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="parentId" label="ä¸çº§åºåç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="orderNum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="type" label="ç±»å 0æåº 1çåº 2å¸åº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="syncDate" label="æè¿åæ¥æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="syncInfo" label="æè¿åæ¥å¤æ³¨" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:segments:update', 'business:segments:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaSegmentsWindow.open('ç¼è¾å¿é¦è¥éåºåä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:segments:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:segments:delete']">å é¤</el-button> |
| | | <el-table-column prop="type" label="ç±»å" min-width="100px"> |
| | | <template scope="{row}"> |
| | | <span v-if="row.type == 0">æåº</span> |
| | | <span v-if="row.type == 1">çåº</span> |
| | | <span v-if="row.type == 2">çåº</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="remark" label="ç级路å¾" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | type: '', |
| | | syncDate: '', |
| | | syncInfo: '' |
| | | } |
| | | }, |
| | | unitList: [] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.loadUnitList() |
| | | }, |
| | | methods: { |
| | | loadUnitList () { |
| | | this.api.getUnitList() |
| | | .then(data => { |
| | | this.unitList = data |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-form-item label="åç±»ç¼ç " prop="unitCode"> |
| | | <el-input v-model="searchForm.unitCode" placeholder="请è¾å
¥åç±»ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="客æ·ç±»åç¼ç " prop="siteCode"> |
| | | <el-input v-model="searchForm.siteCode" placeholder="请è¾å
¥å®¢æ·ç±»åç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:shop:exportExcel']" @click="exportExcel">导åº</el-button> |
| | |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:shop:create', 'business:shop:delete']"> |
| | | <!-- <ul class="toolbar" v-permissions="['business:shop:create', 'business:shop:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaShopWindow.open('æ°å»ºå¿é¦ç»ç»ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:shop:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:shop:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | </ul>--> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | |
| | | provinceName: '', |
| | | cityName: '', |
| | | areaName: '', |
| | | unitCode: '' |
| | | unitCode: '', |
| | | siteCode:'' |
| | | } |
| | | } |
| | | }, |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:shop:create', 'business:shop:sync','business:shop:sort']"> |
| | | <li><el-button type="primary" @click="$refs.OperaShopImportWindow.open('åå§å导å
¥')" icon="el-icon-plus" v-permissions="['business:shop:create']">åå§å导å
¥</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.OperaFcodeImportWindow.open('Fcodeä¿¡æ¯å¯¼å
¥')" icon="el-icon-plus" v-permissions="['business:shop:create']">Fcodeä¿¡æ¯å¯¼å
¥</el-button></li> |
| | | <li><el-button @click="resetRelations" type="primary" :loading="sorting" icon="el-icon-edit" v-permissions="['business:shop:update']">éç½®ä¸ä¸çº§å
³ç³»</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.OperaFcodeImportWindow.open('Fcodeä¿¡æ¯å¯¼å
¥')" icon="el-icon-plus" v-permissions="['business:shop:create']">Fcodeä¿¡æ¯å¯¼å
¥</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.OperaCategoryImportWindow.open('åç±»åå§å导å
¥')" icon="el-icon-plus" v-permissions="['business:shop:create']">åç±»åå§å导å
¥</el-button></li> |
| | | <li><el-button @click="sort('top')" :loading="sorting" icon="el-icon-sort-up" v-permissions="['business:shop:sort']">ä¸ç§»</el-button></li> |
| | | <li><el-button @click="sort('bottom')" :loading="sorting" icon="el-icon-sort-down" v-permissions="['business:shop:sort']">ä¸ç§»</el-button></li> |
| | | </ul> |
| | |
| | | <OperaShopWindow ref="OperaShopWindow" :list="list" @success="handlePageChange"/> |
| | | <OperaShopImportWindow ref="OperaShopImportWindow" @success="handlePageChange"/> |
| | | <OperaFcodeImportWindow ref="OperaFcodeImportWindow" @success="handlePageChange"/> |
| | | <OperaCategoryImportWindow ref="OperaCategoryImportWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import { companySync, sort, resetRelations } from '@/api/business/shop' |
| | | import OperaShopImportWindow from '@/components/business/OperaShopImportWindow' |
| | | import OperaFcodeImportWindow from '@/components/business/OperaFcodeImportWindow' |
| | | import OperaCategoryImportWindow from '@/components/business/OperaCategoryImportWindow' |
| | | import OperaShopWindow from '@/components/business/OperaShopWindow' |
| | | export default { |
| | | name: 'shopTree', |
| | | extends: BaseTable, |
| | | components: { TableLayout, OperaShopImportWindow, OperaShopWindow, OperaFcodeImportWindow }, |
| | | components: { TableLayout, OperaShopImportWindow, OperaShopWindow, OperaFcodeImportWindow,OperaCategoryImportWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | |
| | | <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.1" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.4.0" level="project" /> |
| | | </component> |
| | | </module> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.business; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.biz.zbom.ZbomIAMService; |
| | | import com.doumee.biz.zbom.model.IamUpateShopModel; |
| | | import com.doumee.biz.zbom.model.IamUpateUserModel; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.utils.Constants; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/07/04 14:40 |
| | | */ |
| | | @Api(tags = "坹夿便¥å£") |
| | | @RestController |
| | | @RequestMapping("/push") |
| | | public class PushController extends BaseController { |
| | | @Autowired |
| | | private ZbomIAMService zbomIAMService; |
| | | @ApiOperation("ç»ç»ä¿¡æ¯æ´æ°æ¨é") |
| | | @PostMapping("/iam/updateShopInfo") |
| | | public ApiResponse<String> updateShopInfo(@RequestHeader(name = "token") String token, |
| | | @RequestHeader(name = "uuid") String uuid , |
| | | @RequestHeader(name = "timestamp") String timestamp, |
| | | @RequestBody List<IamUpateShopModel> shopList, |
| | | HttpServletRequest request ) { |
| | | int success = Constants.ZERO; |
| | | ApiResponse<String> r = null; |
| | | try { |
| | | zbomIAMService.updateShopInfo(token,uuid,timestamp,shopList); |
| | | r = ApiResponse.success("æä½æå"); |
| | | }catch (BusinessException e){ |
| | | success = Constants.ONE; |
| | | r = ApiResponse.failed(StringUtils.defaultString(e.getMessage(),"æä½å¤±è´¥")); |
| | | }catch (Exception e){ |
| | | success = Constants.ONE; |
| | | r = ApiResponse.failed("æä½å¤±è´¥"); |
| | | }finally { |
| | | zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo","IAMæ¨é人åè´¦å·ä¿¡æ¯", token, uuid, timestamp, shopList,success, JSONObject.toJSONString(r)); |
| | | } |
| | | return r; |
| | | } |
| | | @ApiOperation("人åè´¦å·ä¿¡æ¯æ´æ°æ¨é") |
| | | @PostMapping("/iam/updateUserInfo") |
| | | public ApiResponse<String> updateUserInfo(@RequestHeader(name = "token") String token, |
| | | @RequestHeader(name = "uuid") String uuid , |
| | | @RequestHeader(name = "timestamp") String timestamp, |
| | | @RequestBody IamUpateUserModel upateUserModel, |
| | | HttpServletRequest request) { |
| | | int success = Constants.ZERO; |
| | | ApiResponse<String> r = null; |
| | | try { |
| | | zbomIAMService.updateUserInfo(token,uuid,timestamp,upateUserModel); |
| | | r = ApiResponse.success("æä½æå"); |
| | | }catch (BusinessException e){ |
| | | success = Constants.ONE; |
| | | r = ApiResponse.failed(StringUtils.defaultString(e.getMessage(),"æä½å¤±è´¥")); |
| | | }catch (Exception e){ |
| | | success = Constants.ONE; |
| | | r = ApiResponse.failed("æä½å¤±è´¥"); |
| | | }finally { |
| | | zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo","IAMæ¨é人åè´¦å·ä¿¡æ¯", token, uuid, timestamp, upateUserModel,success, JSONObject.toJSONString(r)); |
| | | } |
| | | return r; |
| | | } |
| | | |
| | | } |
| | |
| | | package com.doumee.api.business; |
| | | |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.dao.business.model.Segments; |
| | | import com.doumee.dao.business.vo.UnitCodeVo; |
| | | import com.doumee.service.business.SegmentsService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | |
| | | @Autowired |
| | | private SegmentsService segmentsService; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | |
| | | segmentsService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | | @ApiOperation("è·åå
¨é¨åçæ°æ®") |
| | | @GetMapping("/getUnitList") |
| | | public ApiResponse<List<UnitCodeVo>> getUnitList() { |
| | | return ApiResponse.success(systemDictDataBiz.getUnitList()); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | |
| | | }) |
| | | @RequiresPermissions("business:shop:create") |
| | | public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file ) { |
| | | // Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | | // if(importing!=null && importing){ |
| | | // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | // } |
| | | shopService.importBatch(file); |
| | | // shopService.dealShopNamePath(); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | @ApiOperation(value = "ç»ç»Fcode个æ§åä¿¡æ¯å¯¼å
¥" ,notes = "ç»ç»ä¿¡æ¯åå§å导å
¥") |
| | | @ApiOperation(value = "ç»ç»Fcode个æ§åä¿¡æ¯å¯¼å
¥" ,notes = "ç»ç»Fcode个æ§åä¿¡æ¯å¯¼å
¥") |
| | | @PostMapping("/importFcodeBatch") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class), |
| | | }) |
| | | @RequiresPermissions("business:shop:create") |
| | | public ApiResponse<String> importFcodeBatch (@ApiParam(value = "file") MultipartFile file ) { |
| | | // Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | | // if(importing!=null && importing){ |
| | | // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | // } |
| | | shopService.importFcodeBatch(file); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | @ApiOperation(value = "ç»ç»åç±»åå§å导å
¥" ,notes = "ç»ç»åç±»åå§å导å
¥") |
| | | @PostMapping("/importCategoryBatch") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class), |
| | | }) |
| | | @RequiresPermissions("business:shop:create") |
| | | public ApiResponse<String> importCategoryBatch (@ApiParam(value = "file") MultipartFile file ) { |
| | | // Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | | // if(importing!=null && importing){ |
| | | // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | // } |
| | | shopService.importCategoryBatch(file); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | @ApiOperation(value = "éç½®ä¸ä¸çº§å
³ç³»" ,notes = "éç½®ä¸ä¸çº§å
³ç³»") |
| | |
| | | public ApiResponse<String> resetRelations ( ) { |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | | if(importing!=null && importing){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥æè
ä¸ä¸çº§éç½®ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | } |
| | | shopService.dealShopNamePath(); |
| | | return ApiResponse.success("æä½æå"); |
| | |
| | | Map<String, String> map = new LinkedHashMap<>(); |
| | | // è·¯å¾æ¦æªé
ç½® |
| | | map.put("/system/login", "anon"); |
| | | map.put("/system/syncLingCountData", "anon"); |
| | | map.put("/system/wxLogin", "anon"); |
| | | map.put("/system/wxProgramLogin", "anon"); |
| | | map.put("/system/wxAccountLogin", "anon"); |
| | | map.put("/system/initCompany", "anon"); |
| | | map.put("/system/logout", "anon"); |
| | | map.put("/common/captcha", "anon"); |
| | | map.put("/statistics/**", "anon"); |
| | | map.put("/business/hksync/push/**", "anon"); |
| | | map.put("/business/member/empowerByList", "anon"); |
| | | map.put("/dingding/push", "anon"); |
| | | // map.put("/ext/workorderExt/freshStatistics", "anon"); |
| | | map.put("/dingding/jsapiTicket", "anon"); |
| | | map.put("/dingding/ddLogin", "anon"); |
| | | map.put("/dingding/getDingdingCorpId", "anon"); |
| | | map.put("/lingyang/login", "anon"); |
| | | map.put("/lingyang/loginDemo", "anon"); |
| | | map.put("/lingyang/importBatch", "anon"); |
| | | map.put("/edgp/**", "anon"); |
| | | map.put("/push/**", "anon"); |
| | | // - æ¾è¡swagger |
| | | map.put("/doc.html", "anon"); |
| | | map.put("/webjars/**", "anon"); |
| | |
| | | package com.doumee.timer; |
| | | |
| | | import com.doumee.service.zbom.ZbomIAMService; |
| | | import com.doumee.biz.zbom.ZbomIAMService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | <artifactId>weixin-java-mp</artifactId> |
| | | <version>3.6.0</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.auth0</groupId> |
| | | <artifactId>java-jwt</artifactId> |
| | | <version>3.4.0</version> |
| | | </dependency> |
| | | </dependencies> |
| | | <build> |
| | | <plugins> |
| | |
| | | <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.1" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.4.0" level="project" /> |
| | | </component> |
| | | </module> |
| | |
| | | package com.doumee.biz.system; |
| | | |
| | | import com.doumee.dao.business.vo.UnitCodeVo; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | |
| | | import java.util.List; |
| | |
| | | Integer create(SystemDictData systemDictData); |
| | | |
| | | void updateByDicId(List<SystemDictData> list); |
| | | |
| | | List<UnitCodeVo> getUnitList(); |
| | | /** |
| | | * ç¼è¾ |
| | | * @author Eva.Caesar Liu |
| | |
| | | |
| | | List<SystemDictData> queryListByCode(String dicCode, String label); |
| | | List<SystemDictData> queryDataByCode(String dicCode, String code); |
| | | |
| | | String getUnitName(String unitCode, List<UnitCodeVo> unitCodeVoList); |
| | | /** |
| | | * è·åè·¯å¾åç¼ |
| | | * @param resourceCode |
| | |
| | | package com.doumee.biz.system.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.dao.business.vo.UnitCodeVo; |
| | | import com.doumee.dao.system.model.SystemDict; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import com.doumee.service.system.SystemDictDataService; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | public class SystemDictDataBizImpl implements SystemDictDataBiz { |
| | |
| | | } |
| | | systemDictDataService.updateById(systemDictData); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public String getUnitName(String unitCode, List<UnitCodeVo> unitCodeVoList) { |
| | | if(unitCodeVoList!=null){ |
| | | for(UnitCodeVo c :unitCodeVoList){ |
| | | if(StringUtils.equals(c.getCode(),unitCode)){ |
| | | return c.getName(); |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public void updateByIdNew(SystemDictData systemDictData) { |
| | | systemDictDataService.updateById(systemDictData); |
| | | } |
| | | @Override |
| | | public List<UnitCodeVo> getUnitList(){ |
| | | List<UnitCodeVo> list = new ArrayList<>(); |
| | | try { |
| | | String temp = queryByCode(Constants.ZBOM,Constants.UNIT_CODE).getCode(); |
| | | JSONArray array = JSONObject.parseArray(temp); |
| | | if(array!=null ){ |
| | | for (int i = 0; i < array.size(); i++) { |
| | | list.add(JSONObject.toJavaObject(array.getJSONObject(i),UnitCodeVo.class)); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public SystemDictData queryByCode(String dicCode, String label){ |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom; |
| | | |
| | | import com.doumee.biz.zbom.model.IamUpateShopModel; |
| | | import com.doumee.biz.zbom.model.IamUpateUserModel; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 人åä¿¡æ¯è¡¨Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | public interface ZbomIAMService { |
| | | |
| | | /** |
| | | * åå§ååæ¥ç¨æ· |
| | | * @param params |
| | | */ |
| | | void startUserInit(String params) ; |
| | | /** |
| | | * åå§ååæ¥ç¨æ· |
| | | * @param params |
| | | */ |
| | | void startOrgInit(String params); |
| | | |
| | | void updateShopInfo(String token, String uuid, String timestamp, List<IamUpateShopModel> shopList); |
| | | |
| | | void updateUserInfo(String token, String uuid, String timestamp, IamUpateUserModel upateUserModel); |
| | | void saveInterfaceLog(String url,String name, String token, String uuid, String timestamp, Object obj,Integer success,String respone); |
| | | } |
| ÎļþÃû´Ó server/service/src/main/java/com/doumee/service/zbom/ZbomZhongTaiService.java ÐÞ¸Ä |
| | |
| | | package com.doumee.service.zbom; |
| | | package com.doumee.biz.zbom; |
| | | |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | public class ZbomZhongTaiService { |
| | | public interface ZbomZhongTaiService { |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.auth0.jwt.JWT; |
| | | import com.auth0.jwt.algorithms.Algorithm; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.doumee.biz.zbom.ZbomIAMService; |
| | | import com.doumee.biz.zbom.model.*; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 人åä¿¡æ¯è¡¨Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | public class ZbomIAMServiceImpl implements ZbomIAMService { |
| | | |
| | | @Autowired |
| | | private UsersMapper usersMapper; |
| | | @Autowired |
| | | private ShopMapper shopMapper; |
| | | @Autowired |
| | | private CategorySegMapper categorySegMapper; |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | @Autowired |
| | | private IamInterfaceLogMapper iamInterfaceLogMapper; |
| | | @Autowired |
| | | private SegmentsMapper segmentsMapper; |
| | | |
| | | /** |
| | | * åå§ååæ¥ç¨æ· |
| | | * @param params |
| | | */ |
| | | @Override |
| | | public void startUserInit(String params) { |
| | | } |
| | | /** |
| | | * åå§ååæ¥ç¨æ· |
| | | * @param params |
| | | */ |
| | | @Override |
| | | public void startOrgInit(String params) { |
| | | } |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void updateShopInfo(String token, String uuid, String timestamp, List<IamUpateShopModel> shopList) { |
| | | if(shopList == null ||shopList.size() == 0){ |
| | | return; |
| | | } |
| | | isValidToken(uuid,timestamp,token); |
| | | List<Shop> addShops = new ArrayList<>(); |
| | | List<Shop> updateShops = new ArrayList<>(); |
| | | List<String> segDelOrgIds = new ArrayList<>(); |
| | | List<CategorySeg> categorySegList = new ArrayList<>(); |
| | | List<Segments> segmentsList = new ArrayList<>(); |
| | | Date date = new Date(); |
| | | for(IamUpateShopModel model : shopList){ |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getOrgId,model.getIdtOrgId()) |
| | | .last("limit 1")); |
| | | if(shop == null){ |
| | | addShops.add(initShopInfo(shop,model,date)); |
| | | }else { |
| | | segDelOrgIds.add(shop.getOrgId()); |
| | | updateShops.add(shop); |
| | | } |
| | | //å¤çåç±»æ°æ®é»è¾ |
| | | dealCategorySegData(date,shop,model.getCategory(),categorySegList,segmentsList); |
| | | } |
| | | |
| | | if(addShops.size()>0){ |
| | | shopMapper.insert(addShops); |
| | | } |
| | | if(updateShops.size()>0){ |
| | | for (Shop shop :updateShops){ |
| | | shopMapper.updateById(shop); |
| | | } |
| | | } |
| | | if(segDelOrgIds.size()>0){ |
| | | categorySegMapper.delete(new UpdateWrapper<CategorySeg>().lambda() .in(CategorySeg::getOrgId,segDelOrgIds)); |
| | | } |
| | | if(categorySegList.size()>0){ |
| | | categorySegMapper.insert(categorySegList); |
| | | } |
| | | if(segmentsList.size()>0){ |
| | | segmentsMapper.insert(segmentsList); |
| | | } |
| | | } |
| | | private void dealSegmentData(Date date, IamCategoryModel model, Shop shop, List<Segments> segmentsList) { |
| | | if(StringUtils.isNotBlank(model.getSegment1())){ |
| | | //妿æåºä¸ä¸ºç©º |
| | | if(newSegment(model.getSegment1(),Constants.ZERO,segmentsList) |
| | | && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda() |
| | | .eq(Segments::getSegmentId,model.getSegment1()) |
| | | .eq(Segments::getUnitCode,model.getUnitCode()) |
| | | .eq(Segments::getType,Constants.ZERO)) ==0){ |
| | | segmentsList.add(initSegmentData(model,date,Constants.ZERO)); |
| | | } |
| | | } |
| | | if(StringUtils.isNotBlank(model.getSegment2())){ |
| | | //妿çåºä¸ä¸ºç©º |
| | | if(newSegment(model.getSegment2(),Constants.ONE,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda() |
| | | .eq(Segments::getSegmentId,model.getSegment2()) |
| | | .eq(Segments::getParentId,model.getSegment1()) |
| | | .eq(Segments::getUnitCode,model.getUnitCode()) |
| | | .eq(Segments::getType,Constants.ONE)) ==0){ |
| | | segmentsList.add(initSegmentData(model,date,Constants.ONE)); |
| | | } |
| | | } |
| | | if(StringUtils.isNotBlank(model.getSegment3())){ |
| | | //妿çåºä¸ä¸ºç©º |
| | | if(newSegment(model.getSegment3(),Constants.TWO,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda() |
| | | .eq(Segments::getSegmentId,model.getSegment3()) |
| | | .eq(Segments::getUnitCode,model.getUnitCode()) |
| | | .eq(Segments::getParentId,model.getSegment2()) |
| | | .eq(Segments::getType,Constants.TWO)) ==0){ |
| | | segmentsList.add(initSegmentData(model,date,Constants.TWO)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private boolean newSegment(String segId2, int one, List<Segments> segmentsList) { |
| | | for(Segments s : segmentsList){ |
| | | if(StringUtils.equals(s.getSegmentId(),segId2) && Constants.equalsInteger(one,s.getType())){ |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | private Segments initSegmentData(IamCategoryModel model, Date date, int type) { |
| | | Segments data = new Segments(); |
| | | data.setCreateDate(date); |
| | | data.setEditDate(date); |
| | | data.setIsdeleted(Constants.ZERO); |
| | | data.setStatus(Constants.ZERO); |
| | | data.setUnitCode(model.getUnitCode()); |
| | | data.setType(type); |
| | | if(type ==Constants.ZERO){ |
| | | data.setName(model.getMeaning1()); |
| | | data.setSegmentId(model.getSegment1()); |
| | | data.setParentId(null); |
| | | data.setRemark(model.getMeaning1()); |
| | | }else if(type ==Constants.ONE){ |
| | | data.setName(model.getMeaning2()); |
| | | data.setSegmentId(model.getSegment2()); |
| | | data.setParentId(model.getSegment1()); |
| | | data.setRemark(model.getMeaning1()+"/"+model.getMeaning2()); |
| | | }else{ |
| | | data.setName(model.getMeaning3()); |
| | | data.setSegmentId(model.getSegment3()); |
| | | data.setParentId(model.getSegment2()); |
| | | data.setRemark(model.getMeaning1()+"/"+model.getMeaning2()+"/"+model.getMeaning3()); |
| | | } |
| | | return data; |
| | | } |
| | | private void dealCategorySegData(Date date, Shop shop, List<IamCategoryModel> categoryModels, List<CategorySeg> categorySegList, List<Segments> segmentsList) { |
| | | if(categoryModels==null || categoryModels.size() ==0){ |
| | | return; |
| | | } |
| | | for(IamCategoryModel model :categoryModels){ |
| | | dealSegmentData(date,model,shop,segmentsList); |
| | | categorySegList.add(initInsertCategorySeg(date,model,shop)); |
| | | } |
| | | } |
| | | private CategorySeg initInsertCategorySeg(Date date, IamCategoryModel model, Shop shop) { |
| | | CategorySeg data = new CategorySeg(); |
| | | data.setCreateDate(date); |
| | | data.setEditDate(date); |
| | | data.setIsdeleted(Constants.ZERO); |
| | | data.setOrgId(shop.getOrgId()); |
| | | data.setSegId(model.getSegment1()); |
| | | data.setSegId2(model.getSegment2()); |
| | | data.setSegId3(model.getSegment3()); |
| | | data.setSegName(model.getMeaning1()); |
| | | data.setSegName2(model.getMeaning2()); |
| | | data.setSegName3(model.getMeaning3()); |
| | | data.setShipToAddress(model.getShipToAddress()); |
| | | data.setShipToPhone(model.getShipToPhone()); |
| | | data.setShipToPerson(model.getShipToPerson()); |
| | | data.setBrandId(model.getAccountSiteId()); |
| | | data.setUnitCode(model.getUnitCode()); |
| | | data.setSiteCode(model.getSiteCode()); |
| | | data.setScode(model.getRelevanceCode()); |
| | | if(shop.getSiteCode() ==null){ |
| | | shop.setSiteCode(""); |
| | | } |
| | | shop.setSiteCode(shop.getSiteCode()+model.getSiteCode()+";"); |
| | | return data; |
| | | } |
| | | |
| | | private Shop initShopInfo(Shop shop, IamUpateShopModel model, Date date) { |
| | | if(shop == null) { |
| | | shop = new Shop(); |
| | | shop.setCreateDate(date); |
| | | } |
| | | shop.setEditDate(date); |
| | | shop.setOrgId(model.getIdtOrgId()); |
| | | shop.setName(model.getIdtOrgName()); |
| | | shop.setCode(model.getIdtOrgCode()); |
| | | shop.setType(model.getIdtOrgFirstLevelType()); |
| | | shop.setSecondType(model.getIdtOrgSecondLevelType()); |
| | | shop.setAttribute(model.getIdtOrgAttribute()); |
| | | if(model.getScode()!=null){ |
| | | shop.setCountry(model.getScode().getCountry()); |
| | | shop.setProvinceName(model.getScode().getProvinceName()); |
| | | shop.setProvinceCode(model.getScode().getProvinceNum()); |
| | | shop.setCityName(model.getScode().getCityName()); |
| | | shop.setCityCode(model.getScode().getCityNum()); |
| | | shop.setAreaName(model.getScode().getCountyName()); |
| | | shop.setAreaCode(model.getScode().getCountyNum()); |
| | | shop.setTown(model.getScode().getTown()); |
| | | shop.setGlCode(model.getScode().getRelevanceCodeGL()); |
| | | shop.setGlName(model.getScode().getRelevanceNameGL()); |
| | | shop.setZcode(model.getScode().getRelevanceZCode()); |
| | | } |
| | | if(model.getFcode()!=null){ |
| | | shop.setScode(model.getFcode().getRelevanceCode()); |
| | | shop.setCountry(model.getFcode().getCountry()); |
| | | shop.setProvinceName(model.getFcode().getProvinceName()); |
| | | shop.setProvinceCode(model.getFcode().getProvinceNum()); |
| | | shop.setCityName(model.getFcode().getCityName()); |
| | | shop.setCityCode(model.getFcode().getCityNum()); |
| | | shop.setAreaName(model.getFcode().getCountyName()); |
| | | shop.setAreaCode(model.getFcode().getCountyNum()); |
| | | shop.setTown(model.getFcode().getTown()); |
| | | shop.setRegAddr(model.getFcode().getRegistrationAddress()); |
| | | shop.setLegalPhone(model.getFcode().getContactPhone()); |
| | | shop.setLegalName(model.getFcode().getLegalPerson()); |
| | | shop.setLegalIdcode(model.getFcode().getLegalIdentification()); |
| | | } |
| | | if(model.getShop()!=null){ |
| | | shop.setUnitCode(model.getShop().getUnitCode()); |
| | | shop.setScode(model.getShop().getRelevanceCode()); |
| | | shop.setFcode(model.getShop().getAccountNumber()); |
| | | } |
| | | if(StringUtils.equals( model.getIdtOrgStatus(),"-1")){ |
| | | shop.setIsdeleted(Constants.ONE); |
| | | }else{ |
| | | shop.setIsdeleted(Constants.ZERO); |
| | | } |
| | | shop.setParentIamId(model.getIdtOrgParentId()); |
| | | return shop; |
| | | } |
| | | |
| | | private void isValidToken(String uuid, String timestamp, String token) { |
| | | if (!StringUtils.equalsIgnoreCase( getToken( uuid, timestamp), token)) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼tokené误~"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void updateUserInfo(String token, String uuid, String timestamp, IamUpateUserModel upateUserModel){ |
| | | if(upateUserModel == null ||upateUserModel.getIdtUserId() == null){ |
| | | return; |
| | | } |
| | | isValidToken(uuid,timestamp,token); |
| | | |
| | | Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda() |
| | | .eq(Users::getIamId,upateUserModel.getIdtUserId()) |
| | | .last("limit 1")); |
| | | if(users == null){ |
| | | users = initUserModel(users,upateUserModel); |
| | | usersMapper.insert(users); |
| | | }else { |
| | | users = initUserModel(users,upateUserModel); |
| | | usersMapper.updateById(users); |
| | | } |
| | | } |
| | | |
| | | private Users initUserModel(Users users, IamUpateUserModel upateUserModel) { |
| | | if(users == null){ |
| | | users = new Users(); |
| | | users.setCreateDate(new Date()); |
| | | } |
| | | users.setEditDate(new Date()); |
| | | users.setSex(upateUserModel.getIdtUserGender()); |
| | | users.setIamUsername(upateUserModel.getAppAccountNo()); |
| | | users.setName(upateUserModel.getIdtUserName()); |
| | | users.setPassword(upateUserModel.getAppAccountPwd()); |
| | | users.setPhone(upateUserModel.getIdtUserMobile()); |
| | | users.setIamId(upateUserModel.getIdtUserId()); |
| | | users.setStatus(upateUserModel.getAppAccountStatus()); |
| | | users.setIsdeleted(Constants.ZERO); |
| | | users.setRemark(JSONObject.toJSONString(upateUserModel)); |
| | | if( upateUserModel.getUserTypes() !=null){ |
| | | for(IamUserTypeModel type : upateUserModel.getUserTypes()){ |
| | | if(StringUtils.isNotBlank(users.getUserTypes())){ |
| | | users.setUserTypes(""); |
| | | } |
| | | users.setUserTypes("["+users.getUserTypes()+type.getIdtUserTypeCode()+"];"); |
| | | } |
| | | } |
| | | if( upateUserModel.getRoles() !=null){ |
| | | for(IamUserRoleModel t : upateUserModel.getRoles()){ |
| | | if(StringUtils.isNotBlank(users.getRoleIds())){ |
| | | users.setRoleIds(""); |
| | | } |
| | | if(StringUtils.isNotBlank(users.getRoleNames())){ |
| | | users.setRoleNames(""); |
| | | } |
| | | users.setRoleIds("["+users.getRoleIds()+t.getId()+"];"); |
| | | users.setRoleNames("["+users.getRoleNames()+t.getName()+"];"); |
| | | } |
| | | } |
| | | if(upateUserModel.getJobs()!=null){ |
| | | String orgId = null; |
| | | for(IamUserJobModel job : upateUserModel.getJobs()){ |
| | | if(StringUtils.equals(job.getFirstLevelType(),Constants.TWO+"")){ |
| | | orgId = job.getOrgId(); |
| | | break; |
| | | } |
| | | } |
| | | users.setIamOrgId(orgId); |
| | | if(orgId !=null){ |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getOrgId,orgId) |
| | | .last("limit 1")); |
| | | users.setDepartmentId(shop.getId()); |
| | | } |
| | | |
| | | } |
| | | |
| | | return users; |
| | | |
| | | } |
| | | |
| | | public String getToken(String uuid,String time) { |
| | | String appid = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.IAM_APPID); |
| | | String appKey = (String)redisTemplate.opsForValue().get(Constants.RedisKeys.IAM_APPKEY) ; |
| | | String token = JWT.create().withIssuer(appid).withIssuedAt(DateUtil.getDateFromString(time)).withJWTId(uuid).sign(Algorithm.HMAC256(appKey)); |
| | | token = String.join(" ", "Bearer", token); |
| | | return token; |
| | | } |
| | | @Override |
| | | @Async |
| | | public void saveInterfaceLog(String url,String name, String token, String uuid, String timestamp, Object obj,Integer success,String respone){ |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("token",token); |
| | | map.put("uuid",uuid); |
| | | map.put("timestamp",timestamp); |
| | | map.put("data", obj); |
| | | IamInterfaceLog log = new IamInterfaceLog(); |
| | | log.setCreateDate(new Date()); |
| | | log.setUrl(url); |
| | | log.setEditDate(log.getCreateDate()); |
| | | log.setPlat(Constants.ZERO); |
| | | log.setName(name); |
| | | log.setIsdeleted(Constants.ZERO); |
| | | log.setRequest(JSONObject.toJSONString(map)); |
| | | log.setType(Constants.ONE); |
| | | log.setSuccess(success); |
| | | log.setRepose(respone); |
| | | iamInterfaceLogMapper.insert(log); |
| | | } |
| | | } |
copy from server/service/src/main/java/com/doumee/service/zbom/ZbomZhongTaiService.java
copy to server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
| Îļþ´Ó server/service/src/main/java/com/doumee/service/zbom/ZbomZhongTaiService.java ¸´ÖÆ |
| | |
| | | package com.doumee.service.zbom; |
| | | package com.doumee.biz.zbom.impl; |
| | | |
| | | import com.doumee.biz.zbom.ZbomZhongTaiService; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | public class ZbomZhongTaiService { |
| | | public class ZbomZhongTaiServiceImpl implements ZbomZhongTaiService { |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAMç»ç»æ´æ°æ¨éScodeåæ°") |
| | | public class IamCategoryModel { |
| | | @JsonProperty("relevanceCode") |
| | | @SerializedName("relevanceCode") |
| | | @ApiModelProperty(value = "ä¸ä½åç ï¼sç )") |
| | | private String relevanceCode; |
| | | @JsonProperty("customerNumber") |
| | | @ApiModelProperty(value = "å çåç¼ç ") |
| | | @SerializedName("customerNumber") |
| | | private String customerNumber; |
| | | @JsonProperty("accountSiteId") |
| | | @ApiModelProperty(value = "åçid") |
| | | @SerializedName("accountSiteId") |
| | | private String accountSiteId; |
| | | @JsonProperty("siteCode") |
| | | @ApiModelProperty(value = "客æ·ç±»å") |
| | | @SerializedName("siteCode") |
| | | private String siteCode; |
| | | @JsonProperty("cityAddress") |
| | | @ApiModelProperty(value = "è¥éåå¸") |
| | | @SerializedName("cityAddress") |
| | | private String cityAddress; |
| | | @JsonProperty("unitCode") |
| | | @ApiModelProperty(value = "åçCode") |
| | | @SerializedName("unitCode") |
| | | private String unitCode; |
| | | @JsonProperty("territoryId") |
| | | @ApiModelProperty(value = "è¥éåºåid·") |
| | | @SerializedName("territoryId") |
| | | private String territoryId; |
| | | @JsonProperty("segment1") |
| | | @ApiModelProperty(value = "è¥éåºå-ä¸å¿ç¼ç ") |
| | | @SerializedName("segment1") |
| | | private String segment1; |
| | | @JsonProperty("segment2") |
| | | @ApiModelProperty(value = "è¥éåºå-çåºç¼ç ") |
| | | @SerializedName("segment2") |
| | | private String segment2; |
| | | @JsonProperty("segment3") |
| | | @ApiModelProperty(value = "è¥éåºå-çåºç¼ç ") |
| | | @SerializedName("segment3") |
| | | private String segment3; |
| | | @JsonProperty("meaning1") |
| | | @ApiModelProperty(value = "è¥éåºå-ä¸å¿") |
| | | @SerializedName("meaning1") |
| | | private String meaning1; |
| | | @JsonProperty("meaning2") |
| | | @ApiModelProperty(value = "è¥éåºå-çåº") |
| | | @SerializedName("meaning2") |
| | | private String meaning2; |
| | | @JsonProperty("meaning3") |
| | | @ApiModelProperty(value = "éåºå-çåº") |
| | | @SerializedName("meaning3") |
| | | private String meaning3; |
| | | @JsonProperty("shipToPerson") |
| | | @ApiModelProperty(value = "æ¶è´§äºº") |
| | | @SerializedName("shipToPerson") |
| | | private String shipToPerson; |
| | | @JsonProperty("shipToAddress") |
| | | @ApiModelProperty(value = "æ¶è´§å°å") |
| | | @SerializedName("shipToAddress") |
| | | private String shipToAddress; |
| | | @JsonProperty("shipToPhone") |
| | | @ApiModelProperty(value = "æ¶è´§äººå·ç ") |
| | | @SerializedName("shipToPhone") |
| | | private String shipToPhone; |
| | | @JsonProperty("operationStatus") |
| | | @ApiModelProperty(value = "åçç¶æ:NORMAL æ£å¸¸ï¼NO-ORDER 䏿¢ä¸åï¼NO-SHIPMENT 䏿¢åè´§ï¼TERMINATED ç»æ¢") |
| | | @SerializedName("operationStatus") |
| | | private String operationStatus; |
| | | @JsonProperty("oldAccountNumber") |
| | | @ApiModelProperty(value = "对åºå çå") |
| | | @SerializedName("oldAccountNumber") |
| | | private String oldAccountNumber; |
| | | @JsonProperty("relation") |
| | | @ApiModelProperty(value = "ä¸ä½åæä½ï¼1 æ°å¢ã2 åå¹¶ã3 åæ´ã4 ä¼å") |
| | | @SerializedName("relation") |
| | | private String relation; |
| | | @JsonProperty("solutionId") |
| | | @ApiModelProperty(value = "solutionId") |
| | | @SerializedName("solutionId") |
| | | private String solutionId; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAMç»ç»æ´æ°æ¨éScodeåæ°") |
| | | public class IamFcodeModel { |
| | | @JsonProperty("relevanceCode") |
| | | @SerializedName("relevanceCode") |
| | | @ApiModelProperty(value = "ä¸ä½åç ï¼sç )") |
| | | private String relevanceCode; |
| | | @JsonProperty("custAccountId") |
| | | @SerializedName("custAccountId") |
| | | @ApiModelProperty(value = "å çåid") |
| | | private String custAccountId; |
| | | @JsonProperty("customerNumber") |
| | | @ApiModelProperty(value = "å çåç¼ç ") |
| | | @SerializedName("customerNumber") |
| | | private String customerNumber; |
| | | @JsonProperty("customerName") |
| | | @ApiModelProperty(value = "å çååç§°") |
| | | @SerializedName("customerName") |
| | | private String customerName; |
| | | @JsonProperty("customerShortName") |
| | | @ApiModelProperty(value = "å çåç®ç§°") |
| | | @SerializedName("customerShortName") |
| | | private String customerShortName; |
| | | @JsonProperty("registrationAddress") |
| | | @ApiModelProperty(value = "注åå°å") |
| | | @SerializedName("registrationAddress") |
| | | private String registrationAddress; |
| | | @JsonProperty("country") |
| | | @ApiModelProperty(value = "å½å®¶") |
| | | @SerializedName("country") |
| | | private String country; |
| | | @JsonProperty("provinceNum") |
| | | @ApiModelProperty(value = "çåºç¼ç ·") |
| | | @SerializedName("provinceNum") |
| | | private String provinceNum; |
| | | @JsonProperty("provinceName") |
| | | @ApiModelProperty(value = "çåºåç§°") |
| | | @SerializedName("provinceName") |
| | | private String provinceName; |
| | | @JsonProperty("cityNum") |
| | | @ApiModelProperty(value = "å¸ç¼ç ") |
| | | @SerializedName("cityNum") |
| | | private String cityNum; |
| | | @JsonProperty("cityName") |
| | | @ApiModelProperty(value = "å¸åç§°") |
| | | @SerializedName("cityName") |
| | | private String cityName; |
| | | @JsonProperty("countyNum") |
| | | @ApiModelProperty(value = "åºå¿ç¼ç ") |
| | | @SerializedName("countyNum") |
| | | private String countyNum; |
| | | @JsonProperty("countyName") |
| | | @ApiModelProperty(value = "åºå¿åç§°") |
| | | @SerializedName("countyName") |
| | | private String countyName; |
| | | @JsonProperty("town") |
| | | @ApiModelProperty(value = "乡é") |
| | | @SerializedName("town") |
| | | private String town; |
| | | @JsonProperty("status") |
| | | @ApiModelProperty(value = "ç¶æ ä¸å°åå¸çç¶æï¼å¯¹ä¸æ¸¸ç³»ç»æ æä¹ï¼ä¸æ¸¸ç³»ç»å¯ä¸æ¥") |
| | | @SerializedName("status") |
| | | private String status; |
| | | @JsonProperty("contactPhone") |
| | | @ApiModelProperty(value = "æ³äººææºå·ç ") |
| | | @SerializedName("contactPhone") |
| | | private String contactPhone; |
| | | @JsonProperty("legalPerson") |
| | | @ApiModelProperty(value = "æ³äºº") |
| | | @SerializedName("legalPerson") |
| | | private String legalPerson; |
| | | @JsonProperty("legalIdentification") |
| | | @ApiModelProperty(value = "æ³äººèº«ä»½è¯å·ç ") |
| | | @SerializedName("legalIdentification") |
| | | private String legalIdentification; |
| | | @JsonProperty("accountOwner") |
| | | @ApiModelProperty(value = "宿§äºº") |
| | | @SerializedName("accountOwner") |
| | | private String accountOwner; |
| | | @JsonProperty("accountIdentification") |
| | | @ApiModelProperty(value = "宿§äººèº«ä»½è¯") |
| | | @SerializedName("accountIdentification") |
| | | private String accountIdentification; |
| | | @JsonProperty("taxRegistrationNum") |
| | | @ApiModelProperty(value = "纳ç¨ç»è®°è¯å·ç ") |
| | | @SerializedName("taxRegistrationNum") |
| | | private String taxRegistrationNum; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAMç»ç»æ´æ°æ¨éScodeåæ°") |
| | | public class IamScodeModel { |
| | | @JsonProperty("relevanceCode") |
| | | @SerializedName("relevanceCode") |
| | | @ApiModelProperty(value = "ä¸ä½åç ï¼sç )") |
| | | private String relevanceCode; |
| | | @JsonProperty("relevanceName") |
| | | @SerializedName("relevanceName") |
| | | @ApiModelProperty(value = "ä¸ä½ååç§°") |
| | | private String relevanceName; |
| | | @JsonProperty("relevanceStatus") |
| | | @ApiModelProperty(value = "ä¸ä½åç¶æ:NORMAL æ£å¸¸ï¼TERMINATED ç»æ¢") |
| | | @SerializedName("relevanceStatus") |
| | | private String relevanceStatus; |
| | | @JsonProperty("relevanceZCode") |
| | | @ApiModelProperty(value = "relevanceZCode") |
| | | @SerializedName("relevanceZCode") |
| | | private String relevanceZCode; |
| | | @JsonProperty("relevanceCodeGL") |
| | | @ApiModelProperty(value = "å
³èSç ") |
| | | @SerializedName("relevanceCodeGL") |
| | | private String relevanceCodeGL; |
| | | @JsonProperty("relevanceNameGL") |
| | | @ApiModelProperty(value = "å
³èSç åç§°") |
| | | @SerializedName("relevanceNameGL") |
| | | private String relevanceNameGL; |
| | | @JsonProperty("country") |
| | | @ApiModelProperty(value = "å½å®¶") |
| | | @SerializedName("country") |
| | | private String country; |
| | | @JsonProperty("provinceNum") |
| | | @ApiModelProperty(value = "çåºç¼ç ·") |
| | | @SerializedName("provinceNum") |
| | | private String provinceNum; |
| | | @JsonProperty("provinceName") |
| | | @ApiModelProperty(value = "çåºåç§°") |
| | | @SerializedName("provinceName") |
| | | private String provinceName; |
| | | @JsonProperty("cityNum") |
| | | @ApiModelProperty(value = "å¸ç¼ç ") |
| | | @SerializedName("cityNum") |
| | | private String cityNum; |
| | | @JsonProperty("cityName") |
| | | @ApiModelProperty(value = "å¸åç§°") |
| | | @SerializedName("cityName") |
| | | private String cityName; |
| | | @JsonProperty("countyNum") |
| | | @ApiModelProperty(value = "åºå¿ç¼ç ") |
| | | @SerializedName("countyNum") |
| | | private String countyNum; |
| | | @JsonProperty("countyName") |
| | | @ApiModelProperty(value = "åºå¿åç§°") |
| | | @SerializedName("countyName") |
| | | private String countyName; |
| | | @JsonProperty("town") |
| | | @ApiModelProperty(value = "乡é") |
| | | @SerializedName("town") |
| | | private String town; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAMç»ç»æ´æ°æ¨éScodeåæ°") |
| | | public class IamShopModel { |
| | | @JsonProperty("relevanceCode") |
| | | @SerializedName("relevanceCode") |
| | | @ApiModelProperty(value = "ä¸ä½åç ï¼sç )") |
| | | private String relevanceCode; |
| | | @JsonProperty("shopShortName") |
| | | @SerializedName("shopShortName") |
| | | @ApiModelProperty(value = "åºé¢åç§°") |
| | | private String shopShortName; |
| | | @JsonProperty("status") |
| | | @ApiModelProperty(value = "åºé¢ç¶æï¼1 æ£å¸¸ 2 ç»æ¢") |
| | | @SerializedName("status") |
| | | private String status; |
| | | @JsonProperty("unitCode") |
| | | @ApiModelProperty(value = "åçCode") |
| | | @SerializedName("unitCode") |
| | | private String unitCode; |
| | | @JsonProperty("accountNumber") |
| | | @ApiModelProperty(value = "å çåç¼ç ") |
| | | @SerializedName("accountNumber") |
| | | private String accountNumber; |
| | | @JsonProperty("relevanceNameGL") |
| | | @ApiModelProperty(value = "å
³èSç åç§°") |
| | | @SerializedName("relevanceNameGL") |
| | | private String relevanceNameGL; |
| | | @JsonProperty("statusOld") |
| | | @ApiModelProperty(value = "åºé¢ç¶æï¼1 æ£å¸¸ 2 ç»æ¢") |
| | | @SerializedName("statusOld") |
| | | private String statusOld; |
| | | @JsonProperty("provinceNum") |
| | | @ApiModelProperty(value = "çåºç¼ç ·") |
| | | @SerializedName("provinceNum") |
| | | private String idtOrgCode; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAMç»ç»æ´æ°æ¨éåæ°") |
| | | public class IamUpateShopModel implements Serializable { |
| | | @JsonProperty("idt_org__id") |
| | | @SerializedName("idt_org__id") |
| | | @ApiModelProperty(value = "é¨é¨ID") |
| | | private String idtOrgId; |
| | | @JsonProperty("idt_org__old_id") |
| | | @SerializedName("idt_org__old_id") |
| | | @ApiModelProperty(value = "U客ç»ç»IDï¼åæ¾U客èçç»ç»idï¼å¦ææ¯IAMæ°å¢çç»ç»ï¼è¯¥å段å¼ä¸ºç©ºã") |
| | | private String idtOrgOldId; |
| | | @JsonProperty("idt_org__name") |
| | | @ApiModelProperty(value = "é¨é¨åç§°") |
| | | @SerializedName("idt_org__name") |
| | | private String idtOrgName; |
| | | @JsonProperty("idt_org__parent_id") |
| | | @ApiModelProperty(value = "ä¸çº§ç»ç»ID") |
| | | @SerializedName("idt_org__parent_id") |
| | | private String idtOrgParentId; |
| | | @JsonProperty("idt_org__remark") |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @SerializedName("idt_org__remark") |
| | | private String idtOrgRemark; |
| | | @JsonProperty("idt_org__status") |
| | | @ApiModelProperty(value = "ç¶æ 0åç¨ï¼1æ£å¸¸ï¼-1å é¤") |
| | | @SerializedName("idt_org__status") |
| | | private String idtOrgStatus; |
| | | @JsonProperty("idt_org__order_num") |
| | | @ApiModelProperty(value = "æ¾ç¤ºæåº") |
| | | @SerializedName("idt_org__order_num") |
| | | private String idtOrgOrderNum; |
| | | @JsonProperty("idt_org__org_code") |
| | | @ApiModelProperty(value = "ç»ç»ç¼ç ·") |
| | | @SerializedName("idt_org__org_code") |
| | | private String idtOrgCode; |
| | | @JsonProperty("idt_org__sup_org_code") |
| | | @ApiModelProperty(value = "ä¸çº§ç»ç»ç¼ç ") |
| | | @SerializedName("idt_org__sup_org_code") |
| | | private String idtOrgSupOrgCode; |
| | | @JsonProperty("idt_org__source_code") |
| | | @ApiModelProperty(value = "åæ¾S,Fï¼åºé¢å®ä½ç¼ç ç") |
| | | @SerializedName("idt_org__source_code") |
| | | private String idtOrgSourceCode; |
| | | @JsonProperty("idt_org__first_level_type") |
| | | @ApiModelProperty(value = "ãä¸çº§ç»ç»ç±»åãï¼1:HRã2:å çåã3:èæç»ç»ï¼") |
| | | @SerializedName("idt_org__first_level_type") |
| | | private Integer idtOrgFirstLevelType; |
| | | @JsonProperty("idt_org__second_level_type") |
| | | @ApiModelProperty(value = "äºçº§ç»ç»ç±»åã(1:S(å ) , 2:F(å ) ,3:åºé¢(å )ï¼4:é¨é¨(HR/å )ï¼5:èæåºé¢(å /è) ") |
| | | @SerializedName("idt_org__second_level_type") |
| | | private Integer idtOrgSecondLevelType; |
| | | @JsonProperty("idt_org__org_attribute") |
| | | @ApiModelProperty(value = "ãé¨é¨å±æ§ãï¼1:å®ä½åºé¢ã2:èæåºé¢ã3:çµåé¨ã4:æ¸ éé¨ã5:è´¢å¡é¨ï¼") |
| | | @SerializedName("idt_org__org_attribute") |
| | | private Integer idtOrgAttribute; |
| | | @JsonProperty("idt_org__work_weixin_id") |
| | | @ApiModelProperty(value = "ä¼ä¸å¾®ä¿¡ç»ç»ID") |
| | | @SerializedName("idt_org__work_weixin_id") |
| | | private String idtOrgWorkWeixinId; |
| | | @JsonProperty("idt_org__dingding_department_id") |
| | | @ApiModelProperty(value = "ééé¨é¨ID") |
| | | @SerializedName("idt_org__dingding_department_id") |
| | | private String idtOrgDingdingDepartId; |
| | | @JsonProperty("idt_org__create_time") |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @SerializedName("idt_org__create_time") |
| | | private String idtOrgCreateTime; |
| | | @JsonProperty("idt_org__creator") |
| | | @ApiModelProperty(value = "å建人") |
| | | @SerializedName("idt_org__creator") |
| | | private String idtOrgCreator; |
| | | @JsonProperty("idt_org__updater") |
| | | @ApiModelProperty(value = "ä¿®æ¹äºº") |
| | | @SerializedName("idt_org__updater") |
| | | private String idtOrgUpdater; |
| | | @JsonProperty("idt_org__update_time") |
| | | @ApiModelProperty(value = "ä¿®æ¹æ¶é´") |
| | | @SerializedName("idt_org__update_time") |
| | | private String idtOrgUpdateTime; |
| | | @JsonProperty("scode") |
| | | @ApiModelProperty(value = "Sç ä¿¡æ¯ å½idt_org__second_level_type 为Sæ¶ï¼scodeæå¼ï¼å¦åæ¯null") |
| | | @SerializedName("scode") |
| | | private IamScodeModel scode; |
| | | @JsonProperty("fcode") |
| | | @ApiModelProperty(value = "Fç ä¿¡æ¯ å½idt_org__second_level_type 为Fæ¶ï¼fcodeæå¼ï¼å¦åæ¯null") |
| | | @SerializedName("fcode") |
| | | private IamFcodeModel fcode; |
| | | @JsonProperty("shop") |
| | | @ApiModelProperty(value = "åºé¢ä¿¡æ¯ å½idt_org__second_level_type 为åºé¢æ¶ï¼codeæå¼ï¼å¦åæ¯null") |
| | | @SerializedName("shop") |
| | | private IamShopModel shop; |
| | | @JsonProperty("category") |
| | | @ApiModelProperty(value = "åç±»ä¿¡æ¯ å½idt_org__second_level_type 为Fæ¶ï¼ccategoryæå¼ï¼å¦åæ¯[]") |
| | | @SerializedName("category") |
| | | private List<IamCategoryModel> category; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAM人åè´¦å·æ´æ°æ¨éåæ°") |
| | | public class IamUpateUserModel implements Serializable { |
| | | /** |
| | | * ç¹å«è¯´æï¼ä¸æ¸¸ç³»ç»å¨æ¥æ¶æ¥æï¼æ ¹æ®idt_user__idå¤å®è´¦å·æ¯æ°å¢è¿æ¯ä¿®æ¹ï¼è¿è¡è´¦å·æ°å¢æè
ä¿®æ¹æ¶ï¼å
夿idt_user__idï¼IAMç¨æ·ä¸»é®ï¼å¨ä¸æ¸¸iamidï¼åå§åæ¶éç»´æ¤iamidï¼ä¸æ¯å¦åå¨: |
| | | * åå¨ï¼åéè¦åæ ¹æ®æ¨éçç»å½è´¦å·(app_account__account_no)廿°æ®åºæ¥è¯¢ç»å½è´¦å·ï¼å¦ææ¥è¯¢çç»ææ¯ 1æ¡æ°æ®å¹¶ä¸ id è·å½åæ¨éç¨æ· id ç¸åï¼åæ´æ°å½åæ°æ®ï¼å¦åæç¤ºâè¯¥ç¨æ·ç³»ç»å·²ç»åå¨ï¼æ´æ°å¤±è´¥â; |
| | | * ä¸åå¨ï¼ä¹éè¦æ¯å¯¹ç»å½è´¦å·(app_account__account_no)æ¯å¦è·å
¶å®è´¦å·çç»å½è´¦å·ç¸å,妿ç¸åï¼æç¤ºâè¯¥ç¨æ·ç³»ç»å·²ç»åå¨ï¼æ°å¢å¤±è´¥â:妿ä¸åå¨ï¼åæ°å¢æ°æ®ã |
| | | */ |
| | | @JsonProperty("idt_user__id") |
| | | @SerializedName("idt_user__id") |
| | | @ApiModelProperty(value = "IAMç¨æ·ä¸»é®") |
| | | private String idtUserId; |
| | | @JsonProperty("idt_user__old_id") |
| | | @SerializedName("idt_user__old_id") |
| | | @ApiModelProperty(value = "ç¨æ·èç主é®idï¼åæ¾U客èç¨æ·idï¼å¦ææ¯IAMæ°å¢çç¨æ·ï¼è¯¥å段å¼ä¸ºç©ºï¼ä¸æ¸¸ç³»ç»å¦æä½¿ç¨U客çç¨æ·idä½ä¸ºä¸å¡å¤çé»è¾ç便®ï¼éè¦åæ¥è¯¥å段") |
| | | private String idtUserOldId; |
| | | @JsonProperty("app_account__app_id") |
| | | @ApiModelProperty(value = "åºç¨idï¼ä¸æ¸¸ç³»ç»å¯ä¸å
³å¿") |
| | | @SerializedName("app_account__app_id") |
| | | private String appAccountAppId; |
| | | @JsonProperty("idt_org__parent_id") |
| | | @ApiModelProperty(value = "ä¸çº§ç»ç»ID") |
| | | @SerializedName("idt_org__parent_id") |
| | | private String idtOrgParentId; |
| | | @JsonProperty("app_account__account_no") |
| | | @ApiModelProperty(value = "ç¨æ·è´¦å·ï¼è¯¦çç¹å«è¯´æ") |
| | | @SerializedName("app_account__account_no") |
| | | private String appAccountNo; |
| | | @JsonProperty("app_account__account_pwd") |
| | | @ApiModelProperty(value = "å¯ç ") |
| | | @SerializedName("app_account__account_pwd") |
| | | private String appAccountPwd; |
| | | @JsonProperty("idt_user__user_name") |
| | | @ApiModelProperty(value = "å§å") |
| | | @SerializedName("idt_user__user_name") |
| | | private String idtUserName; |
| | | @JsonProperty("idt_user__gender") |
| | | @ApiModelProperty(value = "æ§å« 0ç· 1女·") |
| | | @SerializedName("idt_user__gender") |
| | | private String idtUserGender; |
| | | @JsonProperty("idt_user__email") |
| | | @ApiModelProperty(value = "ä¼ä¸é®ç®±") |
| | | @SerializedName("idt_user__email") |
| | | private String idtUserEmail; |
| | | @JsonProperty("idt_user__mobile") |
| | | @ApiModelProperty(value = "ææºå·ç ï¼è¯¦çç¹å«è¯´æ") |
| | | @SerializedName("idt_user__mobile") |
| | | private String idtUserMobile; |
| | | @JsonProperty("idt_user__uc_job_id") |
| | | @ApiModelProperty(value = "U客å²ä½id") |
| | | @SerializedName("idt_user__uc_job_id") |
| | | private String idtUserUcJobId; |
| | | @JsonProperty("idt_org__second_level_type") |
| | | @ApiModelProperty(value = "äºçº§ç»ç»ç±»åã(1:S(å ) , 2:F(å ) ,3:åºé¢(å )ï¼4:é¨é¨(HR/å )ï¼5:èæåºé¢(å /è) ") |
| | | @SerializedName("idt_org__second_level_type") |
| | | private String idtOrgSecondLevelType; |
| | | @JsonProperty("app_account__status") |
| | | @ApiModelProperty(value = "è´¦æ·ç¶æ 0åç¨ï¼1å¯ç¨") |
| | | @SerializedName("app_account__status") |
| | | private String appAccountStatus; |
| | | @JsonProperty("app_account__creator") |
| | | @ApiModelProperty(value = "å建è
") |
| | | @SerializedName("app_account__creator") |
| | | private String appAccountCreator; |
| | | @JsonProperty("app_account__create_time") |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @SerializedName("app_account__create_time") |
| | | private String appAccountCreateTime; |
| | | @JsonProperty("app_account__updater") |
| | | @ApiModelProperty(value = "æ´æ°è
") |
| | | @SerializedName("app_account__updater") |
| | | private String appAccountUpdater; |
| | | @JsonProperty("app_account__update_time") |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @SerializedName("app_account__update_time") |
| | | private String appAccountUpdateTime; |
| | | @JsonProperty("idt_user__work_no") |
| | | @ApiModelProperty(value = "å·¥å·ï¼è¯¦çç¹å«è¯´æ") |
| | | @SerializedName("idt_user__work_no") |
| | | private String idtUserWorkNo; |
| | | @JsonProperty("idt_user__ding_id") |
| | | @ApiModelProperty(value = "ééç¨æ·ID") |
| | | @SerializedName("idt_user__ding_id") |
| | | private String idtUserDingdingId; |
| | | @JsonProperty("userTypes") |
| | | @ApiModelProperty(value = "ç¨æ·ç±»åï¼äº§åæ¯æä¸äººå¤ä¸ªç¨æ·ç±»å") |
| | | @SerializedName("userTypes") |
| | | private List<IamUserTypeModel> userTypes; |
| | | @JsonProperty("idt_org__updater") |
| | | @ApiModelProperty(value = "ç¨æ·ç±»åï¼äº§åæ¯æä¸äººå¤ä¸ªç¨æ·ç±»å") |
| | | @SerializedName("idt_org__updater") |
| | | private String idtOrgUpdater; |
| | | @JsonProperty("work_weixin_id") |
| | | @ApiModelProperty(value = "ä¼ä¸å¾®ä¿¡ç¨æ·openId") |
| | | @SerializedName("work_weixin_id") |
| | | private String workWeixinId; |
| | | @JsonProperty("roles") |
| | | @ApiModelProperty(value = "è´¦å·å
å«çè§è²ä¿¡æ¯ï¼æ¯æå¤ä¸ª") |
| | | @SerializedName("roles") |
| | | private List<IamUserRoleModel> roles; |
| | | @JsonProperty("orgs") |
| | | @ApiModelProperty(value = "ç»ç»ä¿¡æ¯ 䏿¸¸ç³»ç»å¯ä¸å
³å¿ï¼éè¿jobs屿§å¯ä»¥åå°ç»ç»ä¿¡æ¯") |
| | | @SerializedName("orgs") |
| | | private List<IamUserOrgModel> orgs; |
| | | @JsonProperty("jobs") |
| | | @ApiModelProperty(value = "å¤ç»ç»å²ä½ä¿¡æ¯") |
| | | @SerializedName("jobs") |
| | | private List<IamUserJobModel> jobs; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAM人åè´¦å·å²ä½åæ°") |
| | | public class IamUserJobModel implements Serializable { |
| | | @JsonProperty("idt_user_job_link__org_id") |
| | | @SerializedName("idt_user_job_link__org_id") |
| | | @ApiModelProperty(value = "ç»ç»id") |
| | | private String orgId; |
| | | @JsonProperty("idt_org__first_level_type") |
| | | @SerializedName("idt_org__first_level_type") |
| | | @ApiModelProperty(value = "ãä¸çº§ç»ç»ç±»åãï¼1:HRã2:å çåã3:èæç»ç»ï¼") |
| | | private String firstLevelType; |
| | | @JsonProperty("idt_user_job_link__job_id") |
| | | @SerializedName("idt_user_job_link__job_id") |
| | | @ApiModelProperty(value = "å²ä½Id") |
| | | private String jobId; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAM人åè´¦å·æå±ç»ç»åæ°") |
| | | public class IamUserOrgModel implements Serializable { |
| | | @JsonProperty("idt_org__id") |
| | | @SerializedName("idt_org__id") |
| | | @ApiModelProperty(value = "ç»ç»id") |
| | | private String orgId; |
| | | @JsonProperty("idt_org__first_level_type") |
| | | @SerializedName("idt_org__first_level_type") |
| | | @ApiModelProperty(value = "ãä¸çº§ç»ç»ç±»åãï¼1:HRã2:å çåã3:èæç»ç»ï¼") |
| | | private String firstLevelType; |
| | | @JsonProperty("idt_org__second_level_type") |
| | | @SerializedName("idt_org__second_level_type") |
| | | @ApiModelProperty(value = "ãäºçº§ç»ç»ç±»åã") |
| | | private String secondLevelType; |
| | | @JsonProperty(" idt_org__old_id") |
| | | @SerializedName(" idt_org__old_id") |
| | | @ApiModelProperty(value = "èId") |
| | | private String orgOldId; |
| | | @JsonProperty(" idt_org__name") |
| | | @SerializedName(" idt_org__name") |
| | | @ApiModelProperty(value = "ç»ç»åç§°") |
| | | private String orgName; |
| | | @JsonProperty("idt_org__org_code") |
| | | @SerializedName("idt_org__org_code") |
| | | @ApiModelProperty(value = "ç»ç»ç¼ç ") |
| | | private String orgCode; |
| | | @JsonProperty(" idt_org__parent_id") |
| | | @SerializedName(" idt_org__parent_id") |
| | | @ApiModelProperty(value = "ä¸çº§id") |
| | | private String orgParentId; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAM人åè´¦å·è§è²åæ°") |
| | | public class IamUserRoleModel implements Serializable { |
| | | @JsonProperty("id") |
| | | @SerializedName("id") |
| | | @ApiModelProperty(value = "è§è²id") |
| | | private String id; |
| | | @JsonProperty("name") |
| | | @SerializedName("name") |
| | | @ApiModelProperty(value = "è§è²åç§°") |
| | | private String name; |
| | | @JsonProperty("code") |
| | | @SerializedName("code") |
| | | @ApiModelProperty(value = "è§è²code") |
| | | private String code; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.google.gson.annotations.SerializedName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦IAM人åè´¦å·ç±»ååæ°") |
| | | public class IamUserTypeModel implements Serializable { |
| | | @JsonProperty("idt_user_type__code") |
| | | @SerializedName("idt_user_type__code") |
| | | @ApiModelProperty(value = "ç¨æ·æ è®°ï¼ç¨æ·ç±»åï¼åºåHRå
é¨åå·¥åå çååå·¥ï¼10001å çåï¼10002HRå
é¨åå·¥") |
| | | private String idtUserTypeCode; |
| | | } |
| | |
| | | package com.doumee.core.utils; |
| | | |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.dao.business.vo.UnitCodeVo; |
| | | import com.fasterxml.jackson.annotation.JsonInclude; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.net.URLDecoder; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Arrays; |
| | | import java.util.*; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | |
| | |
| | | public static final String ORG_USER_ORIGIN = "ORG_USER_ORIGIN"; |
| | | public static final String VIRTUAL_CARD_INDEX = "02098469790"; |
| | | public static final String RETRY_CONNECT_NUM ="RETRY_CONNECT_NUM" ; |
| | | public static final String UNIT_CODE = "UNIT_CODE" ; |
| | | public static final String ZBOM = "ZBOM" ; |
| | | public static final String ZBOM_IAM_APPKEY = "ZBOM_IAM_APPKEY"; |
| | | public static final String ZBOM_IAM_APPID = "ZBOM_IAM_APPID"; |
| | | public static boolean DEALING_HK_SYNCPRIVILEGE= false; |
| | | public static boolean DEALING_HK_SYNCDEVICE = false; |
| | | public static boolean DEALING_HK_SYNCDEVICE_STATUS = false; |
| | |
| | | public interface RedisKeys { |
| | | public static final String IMPORTING_MEMBER ="IMPORTING_MEMBER"; |
| | | public static final String IMPORTING_SHOP ="IMPORTING_SHOP"; |
| | | public static final String IAM_APPID ="IAM_APPID"; |
| | | public static final String IAM_APPKEY ="IAM_APPKEY"; |
| | | public static final String SHOP_TREE ="SHOP_TREE"; |
| | | public static final String ERP_TOKEN ="ERP_TOKEN"; |
| | | public static final long EXPIRE_TIME = 7200; |
| | |
| | | |
| | | public static void main(String[] args) { |
| | | System.out.println((DESUtil.decrypt(Constants.EDS_PWD, "En35O2o+Mpw5bThqkT8lmE6UPG+W6LFs"))); |
| | | // System.out.println(Constants.getVehiclePlateNo("æ¹B140D17").getDescription()); |
| | | // System.out.println(Constants.getVehiclePlateNo("宿AP0637").getDescription()); |
| | | |
| | | Map<String,String> map = new HashMap<>(); |
| | | map.put("101","å¿é¦æ¬é¨"); |
| | | map.put("102","å¶é äºä¸é¨"); |
| | | map.put("103","è¥ä¸éå®å
¬å¸"); |
| | | map.put("104","ZB/å¿é¦å¨æ"); |
| | | map.put("105","ååäºä¸é¨"); |
| | | map.put("106","å·¢æ¹éå®å
¬å¸"); |
| | | map.put("107","IK/å
¨å±å®å¶"); |
| | | map.put("108","å·¥ç¨äºä¸é¨"); |
| | | map.put("109","åè¥éå®å
¬å¸"); |
| | | map.put("110","å¤è´¸äºä¸é¨"); |
| | | map.put("111","å¿é¦å®¶å±
å
¬å¸"); |
| | | map.put("112","ZB/å¿é¦è¡£æ"); |
| | | map.put("127","å¿é¦å¨æè¡ä»½æéå
¬å¸"); |
| | | map.put("141","åè¥å¿é¦æ¨ä¸æéå
¬å¸"); |
| | | map.put("161","ZB/å¿é¦æ¨é¨"); |
| | | map.put("263","å½è´¸å
¬å¸"); |
| | | List<UnitCodeVo> list = new ArrayList<>(); |
| | | Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); |
| | | while (iterator.hasNext()) { |
| | | Map.Entry<String, String> entry = iterator.next(); |
| | | UnitCodeVo m = new UnitCodeVo(); |
| | | m.setCode(entry.getKey()); |
| | | m.setName(entry.getValue()); |
| | | list.add(m); |
| | | } |
| | | System.out.println(JSONObject.toJSONString(list)); |
| | | |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.admin.request; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * ç»ç»ä¿¡æ¯å¯¼å
¥ |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/01/16 10:03 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç»ç»å类信æ¯å¯¼å
¥") |
| | | public class CategoryImport { |
| | | @ExcelColumn(name="ç¼ç ",value = "orgId",index = 1) |
| | | private String orgId; |
| | | @ExcelColumn(name="åçç¼ç ",value = "brandId",index = 2) |
| | | private String brandId; |
| | | @ExcelColumn(name="客æ·ç±»å",value = "siteCode",index = 3) |
| | | private String siteCode; |
| | | @ExcelColumn(name="è¥éåå¸",value = "cityAddr",index = 4) |
| | | private String cityAddr; |
| | | @ExcelColumn(name="åç",value = "unitCode",index = 5) |
| | | private String unitCode; |
| | | @ExcelColumn(name="æåºç¼ç ",value = "segId",index = 6) |
| | | private String segId; |
| | | @ExcelColumn(name="çåºç¼ç ",value = "segId2",index = 7) |
| | | private String segId2; |
| | | @ExcelColumn(name="çåºç¼ç ",value = "segId3",index =8) |
| | | private String segId3; |
| | | @ExcelColumn(name="æåºåç§°",value = "segName",index = 9) |
| | | private String segName; |
| | | @ExcelColumn(name="çåºåç§°",value = "segName2",index = 10) |
| | | private String segName2; |
| | | @ExcelColumn(name="çåºåç§°",value = "segName3",index = 11) |
| | | private String segName3; |
| | | @ExcelColumn(name="æ¶è´§è系人",value = "shipToPerson",index = 12) |
| | | private String shipToPerson; |
| | | @ExcelColumn(name="æ¶è´§èç³»çµè¯",value = "shipToPhone",index = 13) |
| | | private String shipToPhone; |
| | | @ExcelColumn(name="æ¶è´§å°å",value = "shipToAddress",index = 14) |
| | | private String shipToAddress; |
| | | @ExcelColumn(name="scode",value = "scode",index = 15) |
| | | private String scode; |
| | | } |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | @ApiModelProperty(value = "ç»ç»ç¼ç (Fç )") |
| | | @ExcelColumn(name="ç»ç»ç¼ç (Fç ï¼") |
| | | private String orgId; |
| | | |
| | | @ApiModelProperty(value = "åçç¼ç ") |
| | | @ExcelColumn(name="åçç¼ç ") |
| | | private String brandId; |
| | | @ApiModelProperty(value = "è¥éåå¸") |
| | | @ExcelColumn(name="è¥éåå¸") |
| | | private String cityAddr; |
| | | @ApiModelProperty(value = "客æ·ç±»å") |
| | | @ExcelColumn(name="客æ·ç±»å") |
| | | private String siteCode; |
| | | @ApiModelProperty(value = "åç±»ç¼ç ") |
| | | @ExcelColumn(name="åç±»ç¼ç ") |
| | | private String unitCode; |
| | |
| | | |
| | | @ApiModelProperty(value = "å¸åºç¼ç ", example = "1") |
| | | @ExcelColumn(name="å¸åºç¼ç ") |
| | | private Integer segId3; |
| | | private String segId3; |
| | | |
| | | @ApiModelProperty(value = "æåºåç§°") |
| | | @ExcelColumn(name="æåºåç§°") |
| | |
| | | private String segName2; |
| | | |
| | | @ApiModelProperty(value = "å¸åºåç§°", example = "1") |
| | | @ExcelColumn(name="å¸åºåç§°") |
| | | private Integer segName3; |
| | | @ExcelColumn(name="å¸åºåcç§°") |
| | | private String segName3; |
| | | |
| | | @ApiModelProperty(value = "æè¿åæ¥æ¶é´") |
| | | @ExcelColumn(name="æè¿åæ¥æ¶é´") |
| | |
| | | @ApiModelProperty(value = "æè¿åæ¥å¤æ³¨") |
| | | @ExcelColumn(name="æè¿åæ¥å¤æ³¨") |
| | | private String syncInfo; |
| | | @ApiModelProperty(value = "æå±ä¸ä½åcode") |
| | | @ExcelColumn(name="æå±ä¸ä½åcode") |
| | | private String scode; |
| | | |
| | | @ApiModelProperty(value = "æ¶è´§å°å") |
| | | @ExcelColumn(name="æ¶è´§å°å") |
| | |
| | | @ApiModelProperty(value = "æ¶è´§äººçµè¯") |
| | | @ExcelColumn(name="æ¶è´§äººçµè¯") |
| | | private String shipToPhone; |
| | | |
| | | @ApiModelProperty(value = "åçåç§°") |
| | | @ExcelColumn(name="åçåç§°") |
| | | @TableField(exist = false) |
| | | private String unitName; |
| | | @ApiModelProperty(value = "å çååç§°") |
| | | @ExcelColumn(name="å çååç§°") |
| | | @TableField(exist = false) |
| | | private String orgName; |
| | | @ApiModelProperty(value = "æå±ä¸ä½å") |
| | | @ExcelColumn(name="æå±ä¸ä½å") |
| | | @TableField(exist = false) |
| | | private String sname; |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "å°åä¿¡æ¯") |
| | | @ExcelColumn(name="å°åä¿¡æ¯") |
| | | private Date url; |
| | | private String url; |
| | | |
| | | @ApiModelProperty(value = "请æ±åæ°") |
| | | @ExcelColumn(name="请æ±åæ°") |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | @ApiModelProperty(value = "ä¸çº§åºåç¼ç ") |
| | | @ExcelColumn(name="ä¸çº§åºåç¼ç ") |
| | | private String parentId; |
| | | @ApiModelProperty(value = "åç") |
| | | @ExcelColumn(name="åç") |
| | | private String unitCode; |
| | | @ApiModelProperty(value = "åçåç§°") |
| | | @ExcelColumn(name="åçåç§°") |
| | | @TableField(exist = false) |
| | | private String unitName; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ", example = "1") |
| | | @ExcelColumn(name="ç¶æ") |
| | |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0æåº 1çåº 2å¸åº") |
| | | @ExcelColumn(name="ç±»å 0æåº 1çåº 2å¸åº") |
| | | private String type; |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "æè¿åæ¥æ¶é´") |
| | | @ExcelColumn(name="æè¿åæ¥æ¶é´") |
| | |
| | | |
| | | @ApiModelProperty(value = "æå±å
³èFç ", example = "1") |
| | | @ExcelColumn(name="æå±å
³èFç ") |
| | | private Integer fcode; |
| | | private String fcode; |
| | | |
| | | @ApiModelProperty(value = "æå±å
³èSç ", example = "1") |
| | | @ExcelColumn(name="æå±å
³èSç ") |
| | | private Integer scode; |
| | | private String scode; |
| | | @ApiModelProperty(value = "注åå°" ) |
| | | @ExcelColumn(name="注åå°") |
| | | private String regAddr; |
| | |
| | | @ApiModelProperty(value = "ç¶çº§é¨é¨çº§å«ç±»å ", example = "1") |
| | | @TableField(exist = false) |
| | | private String parentType; |
| | | @ApiModelProperty(value = "客æ·ç±»åç¼ç ", example = "1") |
| | | @ExcelColumn(name="客æ·ç±»åç¼ç ï¼å¤ä¸ªä½¿ç¨[]åè£
åæ¾") |
| | | private String siteCode; |
| | | @ApiModelProperty(value = "ä¸çº§ç´æ¥é¨é¨æ°é ", example = "1") |
| | | @TableField(exist = false) |
| | | private int childNum; |
| | |
| | | |
| | | @ApiModelProperty(value = "æå±é¨åºç¼ç (å
³èshop表)", example = "1") |
| | | @ExcelColumn(name="æå±é¨åºç¼ç (å
³èshop表)") |
| | | private Integer departmentId; |
| | | private Long departmentId; |
| | | |
| | | @ApiModelProperty(value = "头å") |
| | | @ExcelColumn(name="头å") |
| | | private String imgurl; |
| | | @ApiModelProperty(value = "iamç»ç»ç¼ç ") |
| | | @ExcelColumn(name="iamç»ç»ç¼ç ") |
| | | private String iamOrgId; |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0åå·¥", example = "1") |
| | | @ExcelColumn(name="ç±»å 0åå·¥") |
| | |
| | | @ExcelColumn(name="微信openid") |
| | | private String openid; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ", example = "1") |
| | | @ExcelColumn(name="ç¶æ") |
| | | private Integer status; |
| | | @ApiModelProperty(value = "è´¦æ·ç¶æ 0åç¨ï¼1å¯ç¨", example = "1") |
| | | @ExcelColumn(name="è´¦æ·ç¶æ 0åç¨ï¼1å¯ç¨") |
| | | private String status; |
| | | |
| | | @ApiModelProperty(value = "åæ¥ç¶æ", example = "1") |
| | | @ExcelColumn(name="åæ¥ç¶æ") |
| | |
| | | @ExcelColumn(name="ç»å½å¯ç ") |
| | | private String password; |
| | | |
| | | @ApiModelProperty(value = "æ§å« 1ç· 2女", example = "1") |
| | | @ExcelColumn(name="æ§å« 1ç· 2女") |
| | | private Integer sex; |
| | | @ApiModelProperty(value = "æ§å« 0ç· 1女", example = "1") |
| | | @ExcelColumn(name="æ§å« 0ç· 1女") |
| | | private String sex; |
| | | |
| | | @ApiModelProperty(value = "æè¿ç»å½æ¶é´") |
| | | @ExcelColumn(name="æè¿ç»å½æ¶é´") |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("å¿é¦ç»ç»ä¿¡æ¯è¡¨") |
| | | @TableName("`shop`") |
| | | public class ShopTreeVo { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("å¿é¦åçcodeä¿¡æ¯è¡¨") |
| | | public class UnitCodeVo { |
| | | |
| | | @ApiModelProperty(value = "code", example = "1") |
| | | private String code; |
| | | @ApiModelProperty(value = "name") |
| | | private String name; |
| | | |
| | | } |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.utils.Constants; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | |
| | | @Autowired |
| | | @Lazy |
| | | private ShopService shopService; |
| | | @Autowired |
| | | @Lazy |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @PostConstruct |
| | | public void clearImporting(){ |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP); |
| | | } |
| | | @PostConstruct |
| | | public void initIamAppIdAndAppKey(){ |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IAM_APPKEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_APPKEY).getCode()); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IAM_APPID,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_APPID).getCode()); |
| | | } |
| | | @PostConstruct |
| | | public void cacheShopTree(){ |
| | | // redisTemplate.opsForValue().set(Constants.RedisKeys.SHOP_TREE,shopService.shopTree(null)); |
| | | } |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Segments; |
| | | import com.doumee.dao.business.vo.UnitCodeVo; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | * @return long |
| | | */ |
| | | long count(Segments segments); |
| | | |
| | | } |
| | |
| | | List<ShopTreeVo> shopTreeCache(Integer type); |
| | | List<ShopTreeVo> shopTree(Integer type); |
| | | String importFcodeBatch(MultipartFile file); |
| | | String importCategoryBatch(MultipartFile file); |
| | | void updateSort(UpdateShopSortDTO dto); |
| | | |
| | | String importBatch(MultipartFile file); |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.CategorySegMapper; |
| | | import com.doumee.dao.business.model.CategorySeg; |
| | | import com.doumee.dao.business.model.Segments; |
| | | import com.doumee.dao.business.vo.UnitCodeVo; |
| | | import com.doumee.service.business.CategorySegService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | @Service |
| | | public class CategorySegServiceImpl implements CategorySegService { |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private CategorySegMapper categorySegMapper; |
| | | |
| | |
| | | public PageData<CategorySeg> findPage(PageWrap<CategorySeg> pageWrap) { |
| | | IPage<CategorySeg> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<CategorySeg> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("category_seg.*," + |
| | | "(select b.name from shop b where b.code = category_seg.scode limit 1 ) as sname," + |
| | | "(select b.name from shop b where b.code = category_seg.org_id limit 1 ) as orgName"); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(CategorySeg::getId, pageWrap.getModel().getId()); |
| | |
| | | queryWrapper.lambda().eq(CategorySeg::getSegId3, pageWrap.getModel().getSegId3()); |
| | | } |
| | | if (pageWrap.getModel().getSegName() != null) { |
| | | queryWrapper.lambda().eq(CategorySeg::getSegName, pageWrap.getModel().getSegName()); |
| | | queryWrapper.lambda().like(CategorySeg::getSegName, pageWrap.getModel().getSegName()); |
| | | } |
| | | if (pageWrap.getModel().getSegName2() != null) { |
| | | queryWrapper.lambda().eq(CategorySeg::getSegName2, pageWrap.getModel().getSegName2()); |
| | | queryWrapper.lambda().like(CategorySeg::getSegName2, pageWrap.getModel().getSegName2()); |
| | | } |
| | | if (pageWrap.getModel().getSegName3() != null) { |
| | | queryWrapper.lambda().eq(CategorySeg::getSegName3, pageWrap.getModel().getSegName3()); |
| | | queryWrapper.lambda().like(CategorySeg::getSegName3, pageWrap.getModel().getSegName3()); |
| | | } |
| | | if (pageWrap.getModel().getSyncDate() != null) { |
| | | queryWrapper.lambda().ge(CategorySeg::getSyncDate, Utils.Date.getStart(pageWrap.getModel().getSyncDate())); |
| | |
| | | queryWrapper.lambda().eq(CategorySeg::getShipToAddress, pageWrap.getModel().getShipToAddress()); |
| | | } |
| | | if (pageWrap.getModel().getShipToPerson() != null) { |
| | | queryWrapper.lambda().eq(CategorySeg::getShipToPerson, pageWrap.getModel().getShipToPerson()); |
| | | queryWrapper.lambda().like(CategorySeg::getShipToPerson, pageWrap.getModel().getShipToPerson()); |
| | | } |
| | | if (pageWrap.getModel().getShipToPhone() != null) { |
| | | queryWrapper.lambda().eq(CategorySeg::getShipToPhone, pageWrap.getModel().getShipToPhone()); |
| | | queryWrapper.lambda().like(CategorySeg::getShipToPhone, pageWrap.getModel().getShipToPhone()); |
| | | } |
| | | if (pageWrap.getModel().getScode() != null) { |
| | | queryWrapper.lambda().eq(CategorySeg::getScode, pageWrap.getModel().getScode()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(categorySegMapper.selectPage(page, queryWrapper)); |
| | | queryWrapper.lambda().orderByAsc(CategorySeg::getScode); |
| | | PageData<CategorySeg> pagedata =PageData.from(categorySegMapper.selectPage(page, queryWrapper)); |
| | | if(pagedata!=null && pagedata.getRecords()!=null && pagedata.getRecords().size()>0){ |
| | | List<UnitCodeVo> unitCodeVoList =systemDictDataBiz.getUnitList(); |
| | | for(CategorySeg model : pagedata.getRecords()){ |
| | | model.setUnitName(systemDictDataBiz.getUnitName(model.getUnitCode(),unitCodeVoList)); |
| | | } |
| | | |
| | | } |
| | | return pagedata; |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.lambda().eq(IamInterfaceLog::getType, pageWrap.getModel().getType()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().eq(IamInterfaceLog::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getUrl() != null) { |
| | | queryWrapper.lambda().ge(IamInterfaceLog::getUrl, Utils.Date.getStart(pageWrap.getModel().getUrl())); |
| | | queryWrapper.lambda().le(IamInterfaceLog::getUrl, Utils.Date.getEnd(pageWrap.getModel().getUrl())); |
| | | queryWrapper.lambda().like(IamInterfaceLog::getUrl, pageWrap.getModel().getUrl()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().like(IamInterfaceLog::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getRequest() != null) { |
| | | queryWrapper.lambda().eq(IamInterfaceLog::getRequest, pageWrap.getModel().getRequest()); |
| | | queryWrapper.lambda().like(IamInterfaceLog::getRequest, pageWrap.getModel().getRequest()); |
| | | } |
| | | if (pageWrap.getModel().getRepose() != null) { |
| | | queryWrapper.lambda().eq(IamInterfaceLog::getRepose, pageWrap.getModel().getRepose()); |
| | | queryWrapper.lambda().like(IamInterfaceLog::getRepose, pageWrap.getModel().getRepose()); |
| | | } |
| | | if (pageWrap.getModel().getSuccess() != null) { |
| | | queryWrapper.lambda().eq(IamInterfaceLog::getSuccess, pageWrap.getModel().getSuccess()); |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.SegmentsMapper; |
| | | import com.doumee.dao.business.model.Segments; |
| | | import com.doumee.dao.business.vo.UnitCodeVo; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import com.doumee.service.business.SegmentsService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private SegmentsMapper segmentsMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Override |
| | | public Long create(Segments segments) { |
| | |
| | | IPage<Segments> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<Segments> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | pageWrap.getModel().setIsdeleted(Constants.ZERO); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(Segments::getId, pageWrap.getModel().getId()); |
| | | } |
| | |
| | | queryWrapper.lambda().eq(Segments::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(Segments::getRemark, pageWrap.getModel().getRemark()); |
| | | queryWrapper.lambda().like(Segments::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getSegmentId() != null) { |
| | | queryWrapper.lambda().eq(Segments::getSegmentId, pageWrap.getModel().getSegmentId()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().eq(Segments::getName, pageWrap.getModel().getName()); |
| | | queryWrapper.lambda().like(Segments::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getParentId() != null) { |
| | | queryWrapper.lambda().eq(Segments::getParentId, pageWrap.getModel().getParentId()); |
| | |
| | | if (pageWrap.getModel().getSyncInfo() != null) { |
| | | queryWrapper.lambda().eq(Segments::getSyncInfo, pageWrap.getModel().getSyncInfo()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | queryWrapper.lambda().orderByAsc(Segments::getType,Segments::getSegmentId); |
| | | PageData<Segments> pagedata = PageData.from(segmentsMapper.selectPage(page, queryWrapper)); |
| | | if(pagedata!=null && pagedata.getRecords()!=null && pagedata.getRecords().size()>0){ |
| | | List<UnitCodeVo> unitCodeVoList =systemDictDataBiz.getUnitList(); |
| | | for(Segments model : pagedata.getRecords()){ |
| | | model.setUnitName(systemDictDataBiz.getUnitName(model.getUnitCode(),unitCodeVoList)); |
| | | } |
| | | |
| | | } |
| | | return PageData.from(segmentsMapper.selectPage(page, queryWrapper)); |
| | | return pagedata; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public long count(Segments segments) { |
| | | QueryWrapper<Segments> wrapper = new QueryWrapper<>(segments); |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.admin.request.CategoryImport; |
| | | import com.doumee.dao.admin.request.FcodeImport; |
| | | import com.doumee.dao.admin.request.ShopImport; |
| | | import com.doumee.dao.admin.request.UpdateShopSortDTO; |
| | | import com.doumee.dao.business.CategoryMapper; |
| | | import com.doumee.dao.business.CategorySegMapper; |
| | | import com.doumee.dao.business.SegmentsMapper; |
| | | import com.doumee.dao.business.ShopMapper; |
| | | import com.doumee.dao.business.join.ShopJoinMapper; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.business.vo.ShopTree; |
| | | import com.doumee.dao.business.vo.ShopTreeVo; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.concurrent.Callable; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.Future; |
| | | |
| | | /** |
| | | * å¿é¦ç»ç»ä¿¡æ¯è¡¨Serviceå®ç° |
| | |
| | | */ |
| | | @Service |
| | | public class ShopServiceImpl implements ShopService { |
| | | |
| | | ExecutorService executor = Executors.newFixedThreadPool(1); |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | @Autowired |
| | | private ShopJoinMapper shopMapper; |
| | | @Autowired |
| | | private SegmentsMapper segmentsMapper; |
| | | @Autowired |
| | | private CategorySegMapper categorySegMapper; |
| | | |
| | | @Override |
| | | public Long create(Shop shop) { |
| | |
| | | } |
| | | queryWrapper.apply(StringUtils.isNotBlank(pageWrap.getModel().getParentName()), |
| | | "(t1.name like '%"+pageWrap.getModel().getParentName()+"%' or t1.code like '%"+pageWrap.getModel().getParentName()+"%' )" ); |
| | | queryWrapper.exists(StringUtils.isNotBlank(pageWrap.getModel().getSiteCode()), |
| | | "(select c.id from category_seg c where c.isdeleted=0 and (c.org_id=t.code or c.scode =t1.code ) limit 1)" ); |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | |
| | | return shopMapper.selectCount(wrapper); |
| | | } |
| | | @Override |
| | | // @Async |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public String importFcodeBatch(MultipartFile file){ |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | Date date =new Date(); |
| | | List<Shop> updateShops = new ArrayList<>(); |
| | | List<FcodeImport> finalDataList = dataList; |
| | | Callable<String> task = () -> { |
| | | dealFcodeDataBiz(finalDataList,date,loginUserInfo); |
| | | return "弿¥ä»»å¡å®æ"; |
| | | }; |
| | | executor.submit(task); |
| | | return "导å
¥æå"; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | } |
| | | } |
| | | |
| | | private void dealFcodeDataBiz(List<FcodeImport> dataList, Date date, LoginUserInfo loginUserInfo) { |
| | | try { |
| | | for(int i=0;i<dataList.size();i++){ |
| | | FcodeImport model = dataList.get(i); |
| | | if(StringUtils.isBlank(model.getOrgId()) ){ |
| | |
| | | shopMapper.updateById(shop); |
| | | } |
| | | |
| | | return "导å
¥æå"; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | }finally { |
| | | executor.shutdown(); |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public String importCategoryBatch(MultipartFile file){ |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | | if(importing!=null && importing){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥æè
ä¸ä¸çº§éç½®ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | } |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_SHOP,true); |
| | | try { |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | ExcelImporter ie = null; |
| | | List<CategoryImport> dataList =null; |
| | | try { |
| | | ie = new ExcelImporter(file,0,0); |
| | | dataList = ie.getDataList(CategoryImport.class,null); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(dataList == null || dataList.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | Date date =new Date(); |
| | | List<CategoryImport> finalDataList = dataList; |
| | | Callable<String> task = () -> { |
| | | dealCategoryDataBiz(finalDataList,date,loginUserInfo); |
| | | return "弿¥ä»»å¡å®æ"; |
| | | }; |
| | | executor.submit(task); |
| | | return "导å
¥æå"; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | } |
| | | } |
| | | |
| | | @Async |
| | | private void dealCategoryDataBiz(List<CategoryImport> dataList, Date date, LoginUserInfo loginUserInfo) { |
| | | try { |
| | | List<CategorySeg> categorySegList = new ArrayList<>(); |
| | | List<Segments> segmentsList = new ArrayList<>(); |
| | | Map<String,List<String>> siteCodes = new HashMap<>(); |
| | | List<String> orgIdList = new ArrayList<>(); |
| | | for(int i=0;i<dataList.size();i++){ |
| | | CategoryImport model = dataList.get(i); |
| | | if(StringUtils.isBlank(model.getOrgId()) ){ |
| | | continue; |
| | | } |
| | | orgIdList.add(model.getOrgId()); |
| | | dealSegmentData(date,model,loginUserInfo,segmentsList); |
| | | categorySegList.add(initInsertCategorySeg(date,model,loginUserInfo,siteCodes)); |
| | | } |
| | | if(orgIdList.size()>0){ |
| | | categorySegMapper.delete(new UpdateWrapper<CategorySeg>().lambda() .in(CategorySeg::getOrgId,orgIdList)); |
| | | } |
| | | if(siteCodes.size()>0){ |
| | | for(Map.Entry<String ,List<String>> entry : siteCodes.entrySet()){ |
| | | String key = entry.getKey(); |
| | | List<String> codes = entry.getValue(); |
| | | Shop ts = null; |
| | | String tcode =key.substring(2); |
| | | if(StringUtils.startsWith(key,"f_")){ |
| | | ts = shopMapper.selectOne(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getCode,tcode) |
| | | .eq(Shop::getSecondType,Constants.TWO )); |
| | | } |
| | | if(StringUtils.startsWith(key,"f_")){ |
| | | ts = shopMapper.selectOne(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getCode,tcode) |
| | | .eq(Shop::getSecondType,Constants.ONE )); |
| | | } |
| | | if(ts!=null){ |
| | | ts.setSiteCode(String.join("; ", codes) +";"); |
| | | shopMapper.updateById(ts); |
| | | } |
| | | } |
| | | } |
| | | if(categorySegList.size()>0){ |
| | | int temp = 0; |
| | | while(temp < categorySegList.size()){ |
| | | int index; |
| | | if(temp + 500 <= categorySegList.size()){ |
| | | index = temp+500; |
| | | }else{ |
| | | index = categorySegList.size(); |
| | | } |
| | | categorySegMapper.insert(categorySegList.subList(temp,index)); |
| | | temp = index; |
| | | } |
| | | } |
| | | if(segmentsList.size()>0){ |
| | | int temp = 0; |
| | | while(temp < segmentsList.size()){ |
| | | int index; |
| | | if(temp + 500 <= segmentsList.size()){ |
| | | index = temp+500; |
| | | }else{ |
| | | index = segmentsList.size(); |
| | | } |
| | | segmentsMapper.insert(segmentsList.subList(temp,index)); |
| | | temp = index; |
| | | } |
| | | } |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | }finally { |
| | | executor.shutdown(); // å
³éExecutorService |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP); |
| | | } |
| | | } |
| | | |
| | | private void dealSegmentData(Date date, CategoryImport model, LoginUserInfo loginUserInfo, List<Segments> segmentsList) { |
| | | |
| | | if(StringUtils.isNotBlank(model.getSegId())){ |
| | | //妿æåºä¸ä¸ºç©º |
| | | if(newSegment(model.getSegId(),Constants.ZERO,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda() |
| | | .eq(Segments::getSegmentId,model.getSegId()) |
| | | .eq(Segments::getUnitCode,model.getUnitCode()) |
| | | .eq(Segments::getType,Constants.ZERO)) ==0){ |
| | | segmentsList.add(initSegmentData(model,date,loginUserInfo,Constants.ZERO)); |
| | | } |
| | | } |
| | | if(StringUtils.isNotBlank(model.getSegId2())){ |
| | | //妿çåºä¸ä¸ºç©º |
| | | if(newSegment(model.getSegId2(),Constants.ONE,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda() |
| | | .eq(Segments::getSegmentId,model.getSegId2()) |
| | | .eq(Segments::getParentId,model.getSegId()) |
| | | .eq(Segments::getUnitCode,model.getUnitCode()) |
| | | .eq(Segments::getType,Constants.ONE)) ==0){ |
| | | segmentsList.add(initSegmentData(model,date,loginUserInfo,Constants.ONE)); |
| | | } |
| | | } |
| | | if(StringUtils.isNotBlank(model.getSegId3())){ |
| | | //妿çåºä¸ä¸ºç©º |
| | | if(newSegment(model.getSegId3(),Constants.TWO,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda() |
| | | .eq(Segments::getSegmentId,model.getSegId3()) |
| | | .eq(Segments::getUnitCode,model.getUnitCode()) |
| | | .eq(Segments::getParentId,model.getSegId2()) |
| | | .eq(Segments::getType,Constants.TWO)) ==0){ |
| | | segmentsList.add(initSegmentData(model,date,loginUserInfo,Constants.TWO)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private boolean newSegment(String segId2, int one, List<Segments> segmentsList) { |
| | | for(Segments s : segmentsList){ |
| | | if(StringUtils.equals(s.getSegmentId(),segId2) && Constants.equalsInteger(one,s.getType())){ |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | private Segments initSegmentData(CategoryImport model, Date date, LoginUserInfo loginUserInfo, int type) { |
| | | Segments data = new Segments(); |
| | | data.setCreateDate(date); |
| | | data.setEditDate(date); |
| | | data.setCreator(loginUserInfo.getId()); |
| | | data.setEditor(loginUserInfo.getId()); |
| | | data.setIsdeleted(Constants.ZERO); |
| | | data.setStatus(Constants.ZERO); |
| | | data.setUnitCode(model.getUnitCode()); |
| | | data.setType(type); |
| | | if(type ==Constants.ZERO){ |
| | | data.setName(model.getSegName()); |
| | | data.setSegmentId(model.getSegId()); |
| | | data.setParentId(null); |
| | | data.setRemark(model.getSegName()); |
| | | }else if(type ==Constants.ONE){ |
| | | data.setName(model.getSegName2()); |
| | | data.setSegmentId(model.getSegId2()); |
| | | data.setParentId(model.getSegId()); |
| | | data.setRemark(model.getSegName()+"/"+model.getSegName2()); |
| | | }else{ |
| | | data.setName(model.getSegName3()); |
| | | data.setSegmentId(model.getSegId3()); |
| | | data.setParentId(model.getSegId2()); |
| | | data.setRemark(model.getSegName()+"/"+model.getSegName2()+"/"+model.getSegName3()); |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | private CategorySeg initInsertCategorySeg(Date date, CategoryImport model, LoginUserInfo loginUserInfo,Map<String,List<String>> siteCodes) { |
| | | CategorySeg data = new CategorySeg(); |
| | | data.setCreateDate(date); |
| | | data.setEditDate(date); |
| | | data.setCreator(loginUserInfo.getId()); |
| | | data.setEditor(loginUserInfo.getId()); |
| | | data.setIsdeleted(Constants.ZERO); |
| | | data.setOrgId(model.getOrgId()); |
| | | data.setSegId(model.getSegId()); |
| | | data.setSegId2(model.getSegId2()); |
| | | data.setSegId3(model.getSegId3()); |
| | | data.setSegName(model.getSegName()); |
| | | data.setSegName2(model.getSegName2()); |
| | | data.setSegName3(model.getSegName3()); |
| | | data.setShipToAddress(model.getShipToAddress()); |
| | | data.setShipToPhone(model.getShipToPhone()); |
| | | data.setShipToPerson(model.getShipToPerson()); |
| | | data.setBrandId(model.getBrandId()); |
| | | data.setUnitCode(model.getUnitCode()); |
| | | data.setSiteCode(model.getSiteCode()); |
| | | data.setScode(model.getScode()); |
| | | dealSiteCode(model,siteCodes); |
| | | |
| | | return data; |
| | | } |
| | | |
| | | private void dealSiteCode(CategoryImport model, Map<String, List<String>> siteCodes) { |
| | | List<String> tList = siteCodes.get(model.getOrgId()); |
| | | if(tList == null){ |
| | | tList = new ArrayList<>(); |
| | | } |
| | | if(isNewSiteCode(model.getSiteCode(),tList)){ |
| | | tList.add(model.getSiteCode()); |
| | | siteCodes.put("f_"+model.getOrgId(),tList); |
| | | } |
| | | tList = siteCodes.get(model.getScode()); |
| | | if(tList == null){ |
| | | tList = new ArrayList<>(); |
| | | } |
| | | if(isNewSiteCode(model.getSiteCode(),tList)){ |
| | | tList.add(model.getSiteCode()); |
| | | siteCodes.put("s_"+model.getScode(),tList); |
| | | } |
| | | } |
| | | |
| | | private boolean isNewSiteCode(String siteCode, List<String> tList) { |
| | | if(tList!=null){ |
| | | for(String s :tList){ |
| | | if(StringUtils.equals(s,siteCode)){ |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | // @Async |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public String importBatch(MultipartFile file){ |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | |
| | | if(dataList == null || dataList.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | Date date =new Date(); |
| | | List<ShopImport> finalDataList = dataList; |
| | | Callable<String> task = () -> { |
| | | dealShopDataBiz(finalDataList,date,loginUserInfo); |
| | | return "弿¥ä»»å¡å®æ"; |
| | | }; |
| | | executor.submit(task); |
| | | |
| | | return "导å
¥æå"; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | } |
| | | } |
| | | |
| | | private void dealShopDataBiz(List<ShopImport> dataList, Date date, LoginUserInfo loginUserInfo) { |
| | | try { |
| | | List<Shop> list = shopMapper.selectJoinList(Shop.class,new MPJLambdaWrapper<Shop>() |
| | | .selectAll(Shop.class) |
| | | ); |
| | | List<Shop> insertShops = new ArrayList<>(); |
| | | Date date =new Date(); |
| | | List<Shop> updateShops = new ArrayList<>(); |
| | | for(int i=0;i<dataList.size();i++){ |
| | | ShopImport model = dataList.get(i); |
| | |
| | | shopMapper.updateById(s); |
| | | } |
| | | } |
| | | return "导å
¥æå"; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | }finally { |
| | | executor.shutdown(); |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP); |
| | | } |
| | | } |
| | |
| | | <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.1" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.4.0" level="project" /> |
| | | </component> |
| | | </module> |
| | |
| | | <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.1" level="project" /> |
| | | <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.4.0" level="project" /> |
| | | </component> |
| | | </module> |