From 94edf7b79cced9d37f880b95301afb5513fad06d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 25 六月 2025 15:24:36 +0800
Subject: [PATCH] 提交一把订单
---
company/src/components/business/OpearaCaseEntryWindow.vue | 7
server/service/src/main/java/com/doumee/api/common/PublicController.java | 2
server/platform/src/main/java/com/doumee/task/ScheduleTool.java | 4
server/pom.xml | 7
server/service/src/main/resources/application-dev.yml | 11
company/package-lock.json | 191 +++++++++++---------
company/src/components/common/uploadProgress.vue | 207 +++++++++++++++++++++++
company/src/components/common/upload.vue | 28 --
server/service/src/main/java/com/doumee/core/utils/aliyun/ALiYunUtil.java | 24 -
server/platform/src/main/resources/application.yml | 2
company/package.json | 1
server/service/src/main/java/com/doumee/core/utils/aliyun/PutObjectProgressListenerBiz.java | 18 +
company/.env.development | 2
13 files changed, 362 insertions(+), 142 deletions(-)
diff --git a/company/.env.development b/company/.env.development
index 840c9ca..72cd20c 100644
--- a/company/.env.development
+++ b/company/.env.development
@@ -13,6 +13,6 @@
#VUE_APP_API = 'https://www.yyb.red/yyb_admin_api/'
# 浠诲悍
-VUE_APP_API = 'http://192.168.0.132:10030/'
+VUE_APP_API = 'http://localhost:10030/'
# VUE_APP_API = 'http://192.168.0.131:10031/'
diff --git a/company/package-lock.json b/company/package-lock.json
index 53d0564..e34d7bd 100644
--- a/company/package-lock.json
+++ b/company/package-lock.json
@@ -1915,6 +1915,63 @@
"integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
"dev": true
},
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
"ssri": {
"version": "8.0.1",
"resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1922,6 +1979,28 @@
"dev": true,
"requires": {
"minipass": "^3.1.1"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "vue-loader-v16": {
+ "version": "npm:vue-loader@16.8.3",
+ "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+ "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "hash-sum": "^2.0.0",
+ "loader-utils": "^2.0.0"
}
}
}
@@ -11621,6 +11700,14 @@
"tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ }
}
},
"require-directory": {
@@ -12439,6 +12526,14 @@
"faye-websocket": "^0.11.3",
"uuid": "^3.4.0",
"websocket-driver": "^0.7.4"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ }
}
},
"sockjs-client": {
@@ -13708,10 +13803,9 @@
"dev": true
},
"uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460081656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz",
- "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=",
- "dev": true
+ "version": "11.1.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A=="
},
"v8-compile-cache": {
"version": "2.3.0",
@@ -13827,87 +13921,6 @@
"resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
"integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
"dev": true
- }
- }
- },
- "vue-loader-v16": {
- "version": "npm:vue-loader@16.8.3",
- "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
- "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
- "dev": true,
- "optional": true,
- "requires": {
- "chalk": "^4.1.0",
- "hash-sum": "^2.0.0",
- "loader-utils": "^2.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "optional": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "optional": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "optional": true
- },
- "loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "optional": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "optional": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -14603,6 +14616,14 @@
"requires": {
"ansi-colors": "^3.0.0",
"uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ }
}
},
"webpack-merge": {
diff --git a/company/package.json b/company/package.json
index d47d5cc..15fea8c 100644
--- a/company/package.json
+++ b/company/package.json
@@ -34,6 +34,7 @@
"js-cookie": "^2.2.1",
"js-file-download": "^0.4.12",
"umy-ui": "^1.1.6",
+ "uuid": "^11.1.0",
"vue": "^2.6.11",
"vue-clipboard2": "^0.3.1",
"vue-pdf": "^4.3.0",
diff --git a/company/src/components/business/OpearaCaseEntryWindow.vue b/company/src/components/business/OpearaCaseEntryWindow.vue
index 7096b09..10f3028 100644
--- a/company/src/components/business/OpearaCaseEntryWindow.vue
+++ b/company/src/components/business/OpearaCaseEntryWindow.vue
@@ -700,7 +700,7 @@
<span>{{ item.name }}</span>
</div>
</div>
- <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 5)" />
+ <uploadProgress width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel,.zip,.war" folder="settle" @success="claimsUploadFile($event, 5)" />
</div>
</div>
</div>
@@ -713,6 +713,7 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+import uploadProgress from '@/components/common/uploadProgress'
import upload from '@/components/common/upload'
import { getCompensation } from '@/api/business/settleRisk'
import { createSys } from '@/api/business/settleClaims'
@@ -720,7 +721,7 @@
export default {
name: 'OpearaCaseEntryWindow',
extends: BaseOpera,
- components: { GlobalWindow, upload },
+ components: { GlobalWindow, upload, uploadProgress },
data () {
return {
ruleForm: {
@@ -1065,7 +1066,7 @@
getCompensations () {
getCompensation({ type: 1 })
.then(res => {
- console.log(res)
+ // console.log(res)
this.list1 = res.filter(item => item.type === 0)
this.list2 = res.filter(item => item.type === 1)
this.list3 = res.filter(item => item.type === 2)
diff --git a/company/src/components/common/upload.vue b/company/src/components/common/upload.vue
index a8c6b0d..0f21e85 100644
--- a/company/src/components/common/upload.vue
+++ b/company/src/components/common/upload.vue
@@ -14,8 +14,6 @@
</div>
<div style="display: block;">
<input type="file" ref="file" :accept="accept" @change="getFile" />
- <progress id="progressBar" value="0" max="100"></progress>
- <span id="status">0%</span>
</div>
</div>
</template>
@@ -61,29 +59,17 @@
},
getFile (e) {
if (e.target && e.target.files.length > 0) {
- const config = {
- onUploadProgress: function(progressEvent) {
- console.log(progressEvent)
- const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
- document.getElementById('progressBar').value = percentCompleted;
- document.getElementById('status').textContent = percentCompleted + '%';
- },
- headers: {
- 'Content-Type': 'multipart/form-data'
- }
- }
-
const loading = this.$loading({
- lock: true,
- text: '涓婁紶涓紝璇风瓑寰�',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- });
+ lock: true,
+ text: '涓婁紶涓紝璇风瓑寰�',
+ spinner: 'el-icon-loading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
this.$emit('loading')
const formdate = new FormData()
formdate.append('file', e.target.files[0])
formdate.append('folder', this.folder)
- axios.post(this.uploadImgUrl, formdate,config)
+ axios.post(this.uploadImgUrl, formdate)
.then(res => {
this.$emit('success', res.data.data)
})
@@ -91,7 +77,7 @@
this.$message.error(e)
})
.finally(() => {
- loading.close();
+ loading.close()
this.$refs.file.value = null
})
}
diff --git a/company/src/components/common/uploadProgress.vue b/company/src/components/common/uploadProgress.vue
new file mode 100644
index 0000000..14829a8
--- /dev/null
+++ b/company/src/components/common/uploadProgress.vue
@@ -0,0 +1,207 @@
+<template>
+ <div class="file">
+ <div class="file_list">
+ <div class="file_list_item" :style="{width: width, height: height}" v-for="(item, index) in list" :key="index">
+ <div class="dele" @click="deleItem(index)">
+ <i class="el-icon-close"></i>
+ </div>
+ <img :src="item.url" v-if="fileType(item.url) === 'img'" />
+ <video controls autoplay :src="item.url" v-else></video>
+ </div>
+ <div class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
+ <i class="el-icon-plus"></i>
+ </div>
+ </div>
+ <div style="display: block;">
+ <input type="file" ref="file" :accept="accept" @change="getFile" />
+ <progress id="progressBar" value="0" max="100" ></progress>
+ <span id="status">0%</span>
+ </div>
+ </div>
+</template>
+
+<script>
+import axios from 'axios'
+export default {
+ props: {
+ width: {
+ type: String,
+ default: '90px'
+ },
+ height: {
+ type: String,
+ default: '90px'
+ },
+ list: {
+ type: Array,
+ // eslint-disable-next-line vue/require-valid-default-prop
+ default: []
+ },
+ accept: {
+ type: String,
+ default: ''
+ },
+ folder: {
+ type: String,
+ default: ''
+ }
+ },
+ data () {
+ return {
+ uuid: null,
+ uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload',
+ uploadProgressUrl: process.env.VUE_APP_API_PREFIX + '/public'
+ }
+ },
+
+ methods: {
+ fileType (url) {
+ if (url.indexOf('.mp4') !== -1) {
+ return 'video'
+ } else {
+ return 'img'
+ }
+ },
+ getFile (e) {
+ if (e.target && e.target.files.length > 0) {
+ const config = {
+ onUploadProgress: function (progressEvent) {
+ console.log(progressEvent)
+ const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)
+ document.getElementById('progressBar').value = percentCompleted
+ document.getElementById('status').textContent = '鍑嗗' + percentCompleted + '%'
+ },
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ }
+ // const loading = this.$loading({
+ // lock: true,
+ // text: '涓婁紶涓紝璇风瓑寰�',
+ // spinner: 'el-icon-loading',
+ // background: 'rgba(0, 0, 0, 0.7)'
+ // })
+ // this.$emit('loading')
+ const formdate = new FormData()
+ this.uuid = this.generateUUID().replaceAll('-', '')
+ formdate.append('file', e.target.files[0])
+ formdate.append('folder', this.folder)
+ formdate.append('uuid', this.uuid)
+ axios.post(this.uploadImgUrl, formdate, config)
+ .then(res => {
+ this.$emit('success', res.data.data)
+ })
+ .catch(e => {
+ this.$message.error(e)
+ })
+ .finally(() => {
+ // loading.close()
+ this.$refs.file.value = null
+ })
+ this.startProgress()
+ }
+ },
+ startProgress () {
+ var that = this
+ var timer = setInterval(function () {
+ axios.get(that.uploadProgressUrl + '/' + that.uuid)
+ .then(res => {
+ if (res != null && res.data && res.data.data) {
+ if (res.data.data.status === 1) {
+ const percentCompleted = Math.round(res.data.data.rate || 0)
+ document.getElementById('progressBar').value = percentCompleted
+ document.getElementById('status').textContent = '涓婁紶涓�' + percentCompleted + '%'
+ } else if (res.data.data.status === 2){
+ document.getElementById('progressBar').value = 100
+ document.getElementById('status').textContent = '宸插畬鎴�' + 100 + '%'
+ clearInterval(timer)
+ } else if (res.data.data.status === 3){
+ const percentCompleted = Math.round(res.data.data.rate || 0)
+ document.getElementById('progressBar').value = percentCompleted
+ document.getElementById('status').textContent = '涓婁紶澶辫触' + percentCompleted + '%'
+ clearInterval(timer)
+ }
+ }
+ })
+ }, 2000)
+ },
+ generateUUID () {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ const r = (Math.random() * 16) | 0
+ const v = c === 'x' ? r : (r & 0x3) | 0x8
+ return v.toString(16)
+ })
+ },
+ deleItem (index) {
+ this.$emit('dele', index)
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+ .file {
+ /*width: 100%;*/
+ /*height: 90px;*/
+ padding: 10px;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ position: relative;
+ margin-bottom: 10px;
+ /* margin-right: 20px; */
+ /* margin: 10px 0;*/
+ input {
+ opacity: 0;
+ }
+ .file_list {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .file_list_item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ border-radius: 5px;
+ border: 1px solid #d5d5d5;
+ margin-left: 15px;
+ position: relative;
+ &:first-child {
+ margin: 0 !important;
+ }
+ .dele {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 20px;
+ height: 20px;
+ background: red;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ .el-icon-close {
+ color: #ffffff;
+ font-size: 19px;
+ }
+ }
+ .el-icon-plus {
+ font-size: 30px;
+ color: black;
+ }
+ img {
+ width: 100%;
+ }
+ video {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+ }
+</style>
diff --git a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
index 081395c..f9444af 100644
--- a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -17,8 +17,8 @@
* @date 2021-10-10 14:40:35
* https://www.bejson.com/othertools/cron/ cron 琛ㄨ揪寮忕敓鎴愬湴鍧�
*/
-@Component
-@EnableScheduling
+//@Component
+//@EnableScheduling
@Slf4j
public class ScheduleTool {
@Autowired
diff --git a/server/platform/src/main/resources/application.yml b/server/platform/src/main/resources/application.yml
index 781f762..368c575 100644
--- a/server/platform/src/main/resources/application.yml
+++ b/server/platform/src/main/resources/application.yml
@@ -11,7 +11,7 @@
# application:
# name: doumeemes
profiles:
- active: pro
+ active: dev
# JSON杩斿洖閰嶇疆
jackson:
diff --git a/server/pom.xml b/server/pom.xml
index fc420c6..0056573 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -209,8 +209,13 @@
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
- <version>2.2.1</version>
+ <version>3.17.4</version>
</dependency>
+<!-- <dependency>
+ <groupId>com.aliyun.oss</groupId>
+ <artifactId>aliyun-sdk-oss</artifactId>
+ <version>2.2.1</version>
+ </dependency>-->
<!-- https://mvnrepository.com/artifact/com.github.yulichang/mybatis-plus-join -->
<dependency>
<groupId>com.github.yulichang</groupId>
diff --git a/server/service/src/main/java/com/doumee/api/common/PublicController.java b/server/service/src/main/java/com/doumee/api/common/PublicController.java
index 05dd57e..93429dc 100644
--- a/server/service/src/main/java/com/doumee/api/common/PublicController.java
+++ b/server/service/src/main/java/com/doumee/api/common/PublicController.java
@@ -144,7 +144,7 @@
|| StringUtils.endsWith(key,".JPEG")){
type =0;
}
- if (obs.uploadOnlineObject(file.getInputStream(),bucketName, key,uuid,null)) {
+ if (obs.uploadOnlineObject(file.getInputStream(),bucketName, key,uuid,file.getSize(),null)) {
// 绉诲姩鎴愬姛,杩斿洖鏂囦欢鍚�
// sendSuccessMessage(response, resourcePath+key);
context.put("success", true);
diff --git a/server/service/src/main/java/com/doumee/core/utils/aliyun/ALiYunUtil.java b/server/service/src/main/java/com/doumee/core/utils/aliyun/ALiYunUtil.java
index 400a43c..eb43b42 100644
--- a/server/service/src/main/java/com/doumee/core/utils/aliyun/ALiYunUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/aliyun/ALiYunUtil.java
@@ -1,17 +1,9 @@
package com.doumee.core.utils.aliyun;
-import com.aliyun.auth.credentials.Credential;
-import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
-import com.aliyun.oss.event.ProgressEvent;
-import com.aliyun.oss.event.ProgressEventType;
-import com.aliyun.oss.event.ProgressListener;
import com.aliyun.oss.model.*;
-import com.aliyun.sdk.service.cloudauth20190307.AsyncClient;
-import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyRequest;
-import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyResponse;
import com.doumee.core.utils.FileDigest;
import java.io.File;
import java.io.FileInputStream;
@@ -23,10 +15,6 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-
-import com.google.gson.Gson;
-import darabonba.core.client.ClientOverrideConfiguration;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;
@@ -572,11 +560,11 @@
return PutObjectProgressListenerBiz.queryProgressModel(id);
}
public boolean uploadOnlineObject(InputStream inputStream, String bucketName, String key,String tempId,
- String mime) throws OSSException, ClientException, IOException {
+ long size,String mime) throws OSSException, ClientException, IOException {
try {
isExistBucket(bucketName);
ObjectMetadata objectMeta = new ObjectMetadata();
- objectMeta.setContentLength(inputStream.available());
+ objectMeta.setContentLength(size>0?size:inputStream.available());
// 鍙互鍦╩etadata涓爣璁版枃浠剁被鍨�
if (StringUtils.isNotBlank(mime)) {
objectMeta.setContentType(mime);
@@ -586,15 +574,19 @@
ProgressModel pmodel = new ProgressModel();
pmodel.setKey(key);
pmodel.setId(tempId);
+ pmodel.setStatus(0);
pmodel.setStartDate(new Date());
- putObjectRequest = new PutObjectRequest(bucketName, key,
- inputStream).withProgressListener(new PutObjectProgressListenerBiz(pmodel));
+ pmodel.setTotalBytes(size>0?size:objectMeta.getContentLength());
+ putObjectRequest = new PutObjectRequest(bucketName, key, inputStream,objectMeta)
+ .withProgressListener(new PutObjectProgressListenerBiz(pmodel));
+// putObjectRequest.setProgressListener();
}else{
putObjectRequest = new PutObjectRequest(bucketName, key,
inputStream);
}
PutObjectResult putObjectResult = client.putObject(putObjectRequest);
+ return true;
// 涓嬭浇鏂囦欢鐨勫悓鏃舵寚瀹氳繘搴︽潯鍙傛暟銆傛澶凣etObjectProgressListenerDemo涓鸿皟鐢ㄧ被鐨勭被鍚嶏紝璇峰湪瀹為檯浣跨敤鏃舵浛鎹负鐩稿簲鐨勭被鍚嶃��
// ossClient.getObject(new GetObjectRequest(bucketName,objectName).
// <GetObjectRequest>withProgressListener(new GetObjectProgressListenerDemo()));
diff --git a/server/service/src/main/java/com/doumee/core/utils/aliyun/PutObjectProgressListenerBiz.java b/server/service/src/main/java/com/doumee/core/utils/aliyun/PutObjectProgressListenerBiz.java
index 5b23380..d04807d 100644
--- a/server/service/src/main/java/com/doumee/core/utils/aliyun/PutObjectProgressListenerBiz.java
+++ b/server/service/src/main/java/com/doumee/core/utils/aliyun/PutObjectProgressListenerBiz.java
@@ -41,13 +41,14 @@
}
return r;
}
+ private int tempNum;
@Override
public void progressChanged(ProgressEvent progressEvent) {
long bytes = progressEvent.getBytes();
ProgressEventType eventType = progressEvent.getEventType();
switch (eventType) {
case TRANSFER_STARTED_EVENT:
- this.model.setDoneDate(new Date());
+ this.model.setStartDate(new Date());
System.out.println("Start to upload......");
break;
case REQUEST_CONTENT_LENGTH_EVENT:
@@ -55,17 +56,18 @@
System.out.println( this.model.getTotalBytes() + " bytes in total will be uploaded to OSS");
break;
case REQUEST_BYTE_TRANSFER_EVENT:
- this.model.setStatus(1);
- this.model.setBytesWritten(this.getModel().getBytesWritten()+bytes);
- if (this.model.getTotalBytes() >0) {
- int percent = (int)(this.getModel().getBytesWritten() * 100.0 / this.model.getTotalBytes());
- this.model.setBytesWritten(this.getModel().getBytesWritten()+bytes);
- System.out.println(bytes + " bytes have been written at this time, upload progress: " + percent + "%(" + this.getModel().getBytesWritten() + "/" + this.model.getTotalBytes()+ ")");
+ if (bytes >0) {
+ this.model.setStatus(1);
+ this.model.setBytesWritten(this.model.getBytesWritten()+bytes);
+ int percent = (int)(this.model.getBytesWritten() * 100 / this.model.getTotalBytes());
+ this.model.setRate(percent);
+// System.out.println(bytes + " bytes have been written at this time, upload progress: " + percent + "%(" + this.getModel().getBytesWritten() + "/" + this.model.getTotalBytes()+ ")");
} else {
- System.out.println(bytes + " bytes have been written at this time, upload ratio: unknown" + "(" + this.model.getBytesWritten() + "/...)");
+// System.out.println(bytes+ " bytes have been written at this time, upload ratio: unknown" + "(" + this.model.getBytesWritten() + "/...)");
}
break;
case TRANSFER_COMPLETED_EVENT:
+ this.model.setRate(100);
this.model.setStatus(2);
this.model.setDoneDate(new Date());
System.out.println("Succeed to upload, " + this.getModel().getBytesWritten() + " bytes have been transferred in total");
diff --git a/server/service/src/main/resources/application-dev.yml b/server/service/src/main/resources/application-dev.yml
index 05eaad7..5996c49 100644
--- a/server/service/src/main/resources/application-dev.yml
+++ b/server/service/src/main/resources/application-dev.yml
@@ -13,11 +13,16 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://112.26.66.25:3306/yyb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
- username: root
- password: Doumee@168&QWERT
+ url: jdbc:mysql://rm-bp12tny4ir5b7l65xno.mysql.rds.aliyuncs.com:3306/yyb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+ username: yyb
+ password: Yyb123456
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
+# url: jdbc:mysql://112.26.66.25:3306/yyb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+# username: root
+# password: Doumee@168&QWERT
+# driver-class-name: com.mysql.cj.jdbc.Driver
+# type: com.alibaba.druid.pool.DruidDataSource
# mail:
# host: smtp.exmail.qq.com
# username: jp@doumee.com
--
Gitblit v1.9.3