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