Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
haikang-client
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
杨立
haikang-client
Commits
7094edc5
提交
7094edc5
authored
9月 29, 2021
作者:
yangli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
.
上级
628c4c94
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
34 行增加
和
15 行删除
+34
-15
ProgramController.java
...c/main/java/com/priusis/controller/ProgramController.java
+34
-15
没有找到文件。
apq-pc-client/src/main/java/com/priusis/controller/ProgramController.java
浏览文件 @
7094edc5
package
com
.
priusis
.
controller
;
package
com
.
priusis
.
controller
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.ConcurrentHashSet
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.io.StreamProgress
;
import
cn.hutool.core.io.StreamProgress
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpResponse
;
import
cn.hutool.http.HttpResponse
;
...
@@ -29,9 +30,8 @@ import javax.validation.constraints.Pattern;
...
@@ -29,9 +30,8 @@ import javax.validation.constraints.Pattern;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormat
;
import
java.util.Collections
;
import
java.util.*
;
import
java.util.List
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -76,14 +76,18 @@ public class ProgramController {
...
@@ -76,14 +76,18 @@ public class ProgramController {
if
(
CollUtil
.
isEmpty
(
rows
))
return
R
.
success
(
page
.
setRecords
(
Collections
.
emptyList
()));
if
(
CollUtil
.
isEmpty
(
rows
))
return
R
.
success
(
page
.
setRecords
(
Collections
.
emptyList
()));
List
<
Map
<
String
,
String
>>
programs
=
installedProgramCache
.
getPrograms
();
List
<
Map
<
String
,
String
>>
programs
=
installedProgramCache
.
getPrograms
();
List
<
Map
<
String
,
String
>>
list
=
rows
.
stream
().
map
(
JSONObject
.
class
::
cast
)
List
<
Map
<
String
,
String
>>
list
=
rows
.
stream
().
map
(
JSONObject
.
class
::
cast
)
.
map
(
o
->
MapUtil
.<
String
,
String
>
builder
()
.
map
(
o
->
{
.
put
(
"id"
,
o
.
getStr
(
"id"
))
Map
<
String
,
String
>
map
=
new
HashMap
<>();
.
put
(
"name"
,
StrUtil
.
subBefore
(
o
.
getStr
(
"fileName"
),
'.'
,
true
))
map
.
put
(
"id"
,
o
.
getStr
(
type
.
equals
(
"install"
)
?
"installId"
:
"upgradeId"
));
.
put
(
"size"
,
o
.
getStr
(
"fileSize"
))
map
.
put
(
"name"
,
StrUtil
.
subBefore
(
o
.
getStr
(
"fileName"
),
'.'
,
true
));
.
put
(
"version"
,
o
.
getStr
(
"version"
))
map
.
put
(
"size"
,
o
.
getStr
(
"fileSize"
));
.
put
(
"localVersion"
,
null
)
map
.
put
(
"version"
,
o
.
getStr
(
"version"
));
.
put
(
"url"
,
o
.
getStr
(
"url"
))
map
.
put
(
"localVersion"
,
null
);
.
build
())
map
.
put
(
"url"
,
o
.
getStr
(
"url"
));
Long
id
=
Convert
.
toLong
(
map
.
get
(
"id"
));
map
.
put
(
"status"
,
SET
.
contains
(
id
)
?
"1"
:
MAP
.
containsKey
(
id
)
?
"2"
:
"0"
);
return
map
;
})
.
peek
(
m
->
programs
.
stream
()
.
peek
(
m
->
programs
.
stream
()
.
collect
(
Collectors
.
toMap
(
p
->
StrUtil
.
similar
(
p
.
get
(
"name"
).
toLowerCase
(),
m
.
get
(
"name"
).
toLowerCase
()),
.
collect
(
Collectors
.
toMap
(
p
->
StrUtil
.
similar
(
p
.
get
(
"name"
).
toLowerCase
(),
m
.
get
(
"name"
).
toLowerCase
()),
p
->
p
.
getOrDefault
(
"version"
,
""
),
(
l
,
r
)
->
r
))
p
->
p
.
getOrDefault
(
"version"
,
""
),
(
l
,
r
)
->
r
))
...
@@ -97,9 +101,14 @@ public class ProgramController {
...
@@ -97,9 +101,14 @@ public class ProgramController {
return
R
.
success
(
page
.
setRecords
(
list
));
return
R
.
success
(
page
.
setRecords
(
list
));
}
}
private
static
final
Set
<
Long
>
SET
=
new
ConcurrentHashSet
<>();
private
static
final
Map
<
Long
,
Thread
>
MAP
=
new
ConcurrentHashMap
<>();
@GetMapping
(
value
=
"download_and_install"
)
@GetMapping
(
value
=
"download_and_install"
)
public
void
downloadAndInstall
(
@RequestParam
@NotBlank
String
url
,
HttpServletResponse
response
)
throws
IOException
{
public
void
downloadAndInstall
(
@RequestParam
@NotBlank
Long
id
,
@RequestParam
@NotBlank
String
url
,
HttpServletResponse
response
)
throws
IOException
{
File
dir
=
new
File
(
SysConfigUtil
.
getProperty
(
"download.path"
,
File
dir
=
new
File
(
SysConfigUtil
.
getProperty
(
"download.path"
,
System
.
getProperty
(
"user.home"
)
+
File
.
separator
+
"Downloads"
));
System
.
getProperty
(
"user.home"
)
+
File
.
separator
+
"Downloads"
));
if
(!
dir
.
exists
())
dir
.
mkdirs
();
if
(!
dir
.
exists
())
dir
.
mkdirs
();
...
@@ -110,6 +119,7 @@ public class ProgramController {
...
@@ -110,6 +119,7 @@ public class ProgramController {
@SneakyThrows
@SneakyThrows
@Override
@Override
public
void
start
()
{
public
void
start
()
{
SET
.
add
(
id
);
response
.
getWriter
().
write
(
"0\n"
);
response
.
getWriter
().
write
(
"0\n"
);
}
}
...
@@ -123,13 +133,23 @@ public class ProgramController {
...
@@ -123,13 +133,23 @@ public class ProgramController {
@Override
@Override
public
void
finish
()
{
public
void
finish
()
{
response
.
getWriter
().
close
();
response
.
getWriter
().
close
();
SET
.
remove
(
id
);
}
}
});
});
MAP
.
put
(
id
,
new
Thread
(()
->
{
try
{
try
{
Runtime
.
getRuntime
().
exec
(
"cmd /c "
+
file
.
getPath
()
);
Runtime
.
getRuntime
().
exec
(
"cmd /c "
+
file
.
getPath
()).
waitFor
(
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"执行安装文件 {} 失败"
,
file
.
getPath
(),
e
);
log
.
error
(
"执行安装文件 {} 失败"
,
file
.
getPath
(),
e
);
}
}
MAP
.
remove
(
id
);
}));
MAP
.
get
(
id
).
start
();
}
@GetMapping
(
value
=
"is_installing"
)
public
R
<
Boolean
>
isInstalling
(
@RequestParam
@NotBlank
Long
id
)
{
return
R
.
success
(
MAP
.
containsKey
(
id
));
}
}
@GetMapping
(
value
=
"get_version"
)
@GetMapping
(
value
=
"get_version"
)
...
@@ -160,5 +180,4 @@ public class ProgramController {
...
@@ -160,5 +180,4 @@ public class ProgramController {
HttpUtil
.
post
(
gateway
+
addProgramUrl
,
HttpUtil
.
post
(
gateway
+
addProgramUrl
,
JSONUtil
.
createObj
().
set
(
"macAddress"
,
mac
).
set
(
"programList"
,
programNames
).
toString
());
JSONUtil
.
createObj
().
set
(
"macAddress"
,
mac
).
set
(
"programList"
,
programNames
).
toString
());
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论