From 4e3a145c822e37f3fa1af0f6ed7f78148fa9003f Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 04 十二月 2023 09:53:41 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/crm/system/controller/AppVersionController.java | 49 +++++++++
src/main/resources/mapper/AppVersionMapper.xml | 3
src/main/webapp/static/js/appVersion/appVersion.js | 156 +++++++++++++++++++++++++++++++
src/main/java/com/zy/crm/system/entity/AppVersion.java | 21 ++++
src/main/webapp/views/appVersion/appVersion.html | 34 ++++++
5 files changed, 260 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/crm/system/controller/AppVersionController.java b/src/main/java/com/zy/crm/system/controller/AppVersionController.java
index 9cf7eb6..1b632d3 100644
--- a/src/main/java/com/zy/crm/system/controller/AppVersionController.java
+++ b/src/main/java/com/zy/crm/system/controller/AppVersionController.java
@@ -9,8 +9,14 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
+import com.zy.crm.common.utils.FileSaveExampleUtil;
import com.zy.crm.common.web.BaseController;
+import com.zy.crm.manager.entity.Plan;
+import com.zy.crm.manager.entity.PlanType;
+import com.zy.crm.manager.entity.PlanUrl;
+import com.zy.crm.manager.entity.PriQuote;
import com.zy.crm.system.entity.AppVersion;
+import com.zy.crm.system.entity.User;
import com.zy.crm.system.service.AppVersionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
@@ -213,4 +219,47 @@
response.setStatus(404);
}
}
+
+ @RequestMapping(value = "/appVersion/downloadApp/url/view/file/auth")
+ @ManagerAuth
+ public R viewFile(@RequestParam("appId") String appId){
+ List<FileSaveExampleUtil.FileDTO> fileDTOS = new ArrayList<>();
+ if (Cools.isEmpty(appId)){
+ return R.ok(fileDTOS);
+ }
+ Long id = Long.parseLong(appId);
+ AppVersion appVersion = appVersionService.selectById(id);
+ if (Cools.isEmpty(appVersion.getPath())){
+ return R.ok(fileDTOS);
+ }
+ try{
+ FileSaveExampleUtil.FileDTO fileDTO = new FileSaveExampleUtil.FileDTO(appVersion.getPath(),appVersion.getFileSize(),appVersion.getUrl());
+ fileDTO.setUserName(appVersion.getUserName());
+ fileDTOS.add(fileDTO);
+ return R.ok(fileDTOS);
+ }catch (Exception e){
+ return R.error();
+ }
+ }
+
+ @RequestMapping(value = "/appVersion/downloadApp/url/insert/file/auth")
+ @ManagerAuth
+ public R insertFilePriQuote(@RequestParam("appId") String appId, @RequestParam("filename") String filename,
+ @RequestParam("filesize") Long filesize) {
+ try {
+ String[] split = appId.split("-");
+ Long id = Long.parseLong(split[1]);
+ AppVersion appVersion = appVersionService.selectById(id);
+ appVersion.setPath(filename);
+ appVersion.setFileSize(filesize);
+ appVersion.setUserName(getUser().getNickname());
+ String url = "http://zhongyang-ftpserver.oss-cn-hangzhou.aliyuncs.com/" + filename;
+ appVersion.setUrl(url);
+ appVersionService.updateById(appVersion);
+ return R.ok();
+ } catch (Exception e) {
+ System.out.println(e);
+ return R.error();
+ }
+ }
}
diff --git a/src/main/java/com/zy/crm/system/entity/AppVersion.java b/src/main/java/com/zy/crm/system/entity/AppVersion.java
index d7c171e..b80ae5d 100644
--- a/src/main/java/com/zy/crm/system/entity/AppVersion.java
+++ b/src/main/java/com/zy/crm/system/entity/AppVersion.java
@@ -1,5 +1,6 @@
package com.zy.crm.system.entity;
+import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
@@ -42,6 +43,26 @@
@ApiModelProperty(value= "app绫诲瀷 0: pda 1: lcd ")
private Integer type;
+ /**
+ * app璺緞
+ */
+ @ApiModelProperty(value= "appurl")
+ private String url;
+
+ /**
+ * app璺緞
+ */
+ @ApiModelProperty(value= "appSize")
+ @TableField("file_size")
+ private Long fileSize;
+
+ /**
+ * app璺緞
+ */
+ @ApiModelProperty(value= "userName")
+ @TableField("user_name")
+ private String userName;
+
public AppVersion() {}
public AppVersion(String version, String path, Integer latest, Integer type) {
diff --git a/src/main/resources/mapper/AppVersionMapper.xml b/src/main/resources/mapper/AppVersionMapper.xml
index 8c26acd..e66e9c4 100644
--- a/src/main/resources/mapper/AppVersionMapper.xml
+++ b/src/main/resources/mapper/AppVersionMapper.xml
@@ -9,6 +9,9 @@
<result column="path" property="path" />
<result column="latest" property="latest" />
<result column="type" property="type" />
+ <result column="url" property="url" />
+ <result column="file_size" property="fileSize" />
+ <result column="user_name" property="userName" />
</resultMap>
diff --git a/src/main/webapp/static/js/appVersion/appVersion.js b/src/main/webapp/static/js/appVersion/appVersion.js
index d036a0e..be8531c 100644
--- a/src/main/webapp/static/js/appVersion/appVersion.js
+++ b/src/main/webapp/static/js/appVersion/appVersion.js
@@ -1,7 +1,7 @@
var pageCurr;
layui.config({
base: baseUrl + "/static/layui/lay/modules/"
-}).use(['table','laydate', 'form', 'admin','upload'], function(){
+}).use(['table','laydate', 'form', 'admin','upload',"element", 'xmSelect'], function(){
var table = layui.table;
var $ = layui.jquery;
var layer = layui.layer;
@@ -9,6 +9,7 @@
var form = layui.form;
var admin = layui.admin;
var upload = layui.upload;
+ var element = layui.element;
// 鏁版嵁娓叉煋
tableIns = table.render({
@@ -59,6 +60,99 @@
pageCurr=curr;
limit();
}
+ });
+ $("#data-btn-file2").on("click", (e) => {
+ $("#data-btn-upload").click()
+ });
+ var _uploadFile = null
+ //鍝嶅簲涓婁紶
+ $("#data-btn-upload").on("change",(evt) => {
+ var files = evt.target.files;
+ if(files==null || files.length==0){
+ alert("No files wait for import");
+ return;
+ }
+
+ var file = files[0]
+
+ var tr = $(['<tr id="upload-">'
+ ,'<td id="upload-filename-id-'+ file.lastModified + '">' + file.name +'</td>'
+ ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
+ ,'<td id="upload-filename-userName-'+ '">' +'</td>'
+ ,'<td id="upload-file-id-' + file.lastModified + '"><div class="layui-progress layui-progress-big" lay-showPercent="true" lay-filter="progress-demo-'+ file.lastModified +'"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
+ ,'<td>'
+ ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">閲嶄紶</button>'
+ ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">鍒犻櫎</button>'
+ ,'<button id="file-download" class="layui-btn layui-btn-xs demo-reload layui-hide">涓嬭浇</button>'
+ ,'</td>'
+ ,'</tr>'].join(''));
+
+ //鍒犻櫎
+ tr.find('.demo-delete').on('click', function(){
+ tr.remove();
+ $("#data-btn-upload").val("")
+ _uploadFile = null
+ });
+
+ $('#data-btn-file3').append(tr)
+
+ element.progress('progress-demo-'+ file.lastModified, '0%'); //鎵ц杩涘害鏉°��
+ element.init();
+
+ _uploadFile = file
+ })
+
+ //寮�濮嬩笂浼�
+ $("#testListAction").on("click", async (e) => {
+ if (_uploadFile == null) {
+ return false;
+ }
+
+ var index = layer.load(1, {
+ shadeClose: false,
+ title: '涓婁紶涓�..',
+ shade: [0.5,'#000']
+ });
+
+ var file = _uploadFile
+
+ putObject(file,(p) => {
+ element.progress('progress-demo-'+ file.lastModified, (Math.round(p * 100)) + "%"); //鎵ц杩涘害鏉°��
+ }).then((result) => {
+ var filename = result.name
+ layer.msg('涓婁紶鎴愬姛', {icon: 1});
+ $("#upload-file-id-" + file.lastModified).html("涓婁紶鎴愬姛")
+ $("#upload-filename-id-" + file.lastModified).html(filename)
+ let token = localStorage.getItem("token");
+ $.ajax({
+ url: baseUrl+"/appVersion/downloadApp/url/insert/file/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ 'appId': $('.layui-layer-title').text(),
+ 'filename': filename,
+ 'filesize': file.size
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ layer.close(index)
+ // console.log(res)
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ }).catch((e) => {
+ // console.log(e)
+ layer.msg('涓婁紶澶辫触', {icon: 2});
+ $("#upload-file-id-" + file.lastModified).html("涓婁紶澶辫触")
+ })
+
+ //娓呯┖file
+ $("#data-btn-upload").val("")
+ _uploadFile = null
});
// 鐩戝惉鎺掑簭浜嬩欢
@@ -136,6 +230,56 @@
table.on('tool(appVersion)', function(obj){
var data = obj.data;
switch (obj.event) {
+ case "uploadLink":
+ // 鎵撳紑寮圭獥
+ // 鏋勫缓甯﹀弬鏁扮殑鍐呭
+ layer.open({
+ type: 1,
+ title: '涓婁紶鏂囦欢-'+data.id,
+ content: $('#myModal')
+ });
+ // 鑾峰彇璺緞涓嬬殑鏂囦欢鍒楄〃锛屼娇鐢� jQuery 鐨� ajax 鏂规硶
+ $.ajax({
+ url: '/appVersion/downloadApp/url/view/file/auth',
+ headers: {'token': localStorage.getItem('token')},
+ data:{
+ appId:data.id,
+ },
+ success: function(response) {
+ if (response.code==200){
+ var targetTable = document.getElementById("data-btn-file3");
+ // var targetTable1 = document.getElementById("layui-layer2");
+ // // 鑾峰彇鏂囨湰鍐呭
+ // var text = targetTable1.textContent.trim();
+ // console.log(text); // 杈撳嚭 '涓婁紶鏂囦欢-20'
+ targetTable.innerHTML = '';
+ // 灏嗚幏鍙栧埌鐨勬枃浠跺垪琛ㄦ坊鍔犲埌鏂囦欢闃熷垪涓繘琛屾樉绀�
+ response.data.forEach(function(file,index) {
+ // 鍒涘缓tr鍏冪礌
+ var tr = document.createElement("tr");
+ tr.id = "upload-"+index;
+ tr.innerHTML = '<td>' + file.name + '</td>'
+ + '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>'
+ + '<td>' + file.userName + '</td>'
+ // + '<td><div class="layui-progress" lay-filter="progress-demo-' + index ,100 + '%'+ '"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
+ + '<td>'+'宸插畬鎴�'+'</td>'
+ + '<td>'
+ + '<button class="layui-btn layui-btn-xs demo-reload layui-hide">閲嶄紶</button>'
+ // + '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">鍒犻櫎</button>'
+ + '<a href="' + file.path + '" download class="layui-btn layui-btn-xs layui-btn-primary">涓嬭浇</a>'
+ + '</td>';
+ // 灏唗r鍏冪礌娣诲姞鍒扮洰鏍噒able涓�
+ targetTable.appendChild(tr);
+ });
+ }else {
+ console.log('Failed to get file list error.');
+ }
+ },
+ error: function() {
+ console.log('Failed to get file list.');
+ }
+ });
+ break;
case 'edit':
showEditModel(data);
break;
@@ -183,6 +327,16 @@
}
});
+ // 鐐瑰嚮涓嬭浇鎸夐挳鏃惰Е鍙戞枃浠朵笅杞�
+ $('#data-btn-file3').on('click', 'a', function() {
+ var downloadUrl = $(this).attr('href');
+ let url = getObjectUrl(downloadUrl)
+ layer.msg("鍑嗗涓嬭浇涓�", {icon: 1});
+ // location.href = url
+ window.open(url)
+ return false; // 闃绘榛樿鐨勯摼鎺ヨ烦杞涓�
+ });
+
/* 寮圭獥 - 鏂板銆佷慨鏀� */
function showEditModel(mData) {
admin.open({
diff --git a/src/main/webapp/views/appVersion/appVersion.html b/src/main/webapp/views/appVersion/appVersion.html
index e839f80..5f22df0 100644
--- a/src/main/webapp/views/appVersion/appVersion.html
+++ b/src/main/webapp/views/appVersion/appVersion.html
@@ -54,17 +54,47 @@
</div>
</script>
+<div id="myModal" style="display: none;">
+ <div style="padding: 10px">
+ <div class="layui-upload">
+ <button type="button" class="layui-btn layui-btn-normal" id="data-btn-file2">閫夋嫨鏂囦欢</button><input id="data-btn-upload" class="layui-upload-file" type="file" accept="" name="file" multiple="">
+ <div class="layui-upload-list" style="max-width: 1000px;height:400px;overflow: scroll">
+ <table class="layui-table">
+ <colgroup>
+ <col>
+ <col width="150">
+ <col width="260">
+ <col width="150">
+ </colgroup>
+ <thead>
+ <tr><th>鏂囦欢鍚�</th>
+ <th>澶у皬</th>
+ <th>涓婁紶鑰�</th>
+ <th>涓婁紶杩涘害</th>
+ <th>鎿嶄綔</th>
+ </tr></thead>
+ <tbody id="data-btn-file3"></tbody>
+ </table>
+ </div>
+ <button type="button" class="layui-btn" id="testListAction">寮�濮嬩笂浼�</button>
+ </div>
+ </div>
+</div>
+
<script type="text/html" id="operate">
- <a class="layui-btn layui-btn-xs btn-edit" lay-event="upload">涓婁紶APP</a>
- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="download">涓嬭浇APP</a>
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="uploadLink">APP鍖�</a>
<a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
<a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/FileSaver.js"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/layui/lay/modules/cascader/citys-data.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/aliyun-oss-sdk.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/appVersion/appVersion.js" charset="utf-8"></script>
</body>
<!-- 琛ㄥ崟寮圭獥 -->
--
Gitblit v1.9.1