Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
device-new-platform
Commits
c6f023fd
Commit
c6f023fd
authored
Oct 27, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
产品版本更新分站点
parent
bbcb9ba4
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
122 additions
and
17 deletions
+122
-17
device-manager-ui/admin/src/views/product/version/list.vue
device-manager-ui/admin/src/views/product/version/list.vue
+28
-0
device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java
...n/java/com/mortals/xhx/busiz/web/DeviceApiController.java
+5
-5
device-manager/src/main/java/com/mortals/xhx/module/product/model/vo/ProductVersionVo.java
...mortals/xhx/module/product/model/vo/ProductVersionVo.java
+18
-8
device-manager/src/main/java/com/mortals/xhx/module/product/service/ProductVersionService.java
...als/xhx/module/product/service/ProductVersionService.java
+4
-0
device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductVersionServiceImpl.java
...odule/product/service/impl/ProductVersionServiceImpl.java
+45
-3
device-manager/src/main/java/com/mortals/xhx/module/product/web/ProductVersionController.java
...tals/xhx/module/product/web/ProductVersionController.java
+21
-0
device-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http
.../java/com/mortals/httpclient/device/DeviceController.http
+1
-1
No files found.
device-manager-ui/admin/src/views/product/version/list.vue
View file @
c6f023fd
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
type=
"primary"
class=
"addclass"
size=
"mini"
@
click=
"cloneAppBySite"
>
复制资源
</el-button>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
...
...
@@ -11,6 +20,7 @@
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
session
from
"
@/assets/utils/session
"
;
export
default
{
name
:
"
ProductVersionList
"
,
components
:
{
...
...
@@ -18,10 +28,28 @@
},
mixins
:
[
table
],
created
()
{
const
siteid
=
session
.
getSession
(
"
siteid
"
);
this
.
query
[
"
siteId
"
]
=
siteid
?
siteid
:
1
;
},
methods
:
{
cloneAppBySite
(
row
)
{
this
.
$post
(
"
/device/module/distribute/cloneAppBySite
"
,
{
sourceSiteId
:
1
,
targetSiteId
:
session
.
getSession
(
"
siteid
"
),
})
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
$message
.
success
(
"
复制资源应用成功!
"
);
this
.
getData
();
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
row
.
siteId
=
session
.
getSession
(
"
siteid
"
);
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
...
...
device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java
View file @
c6f023fd
...
...
@@ -476,7 +476,6 @@ public class DeviceApiController {
}
else
{
serverInfo
.
setServerUrl
(
platformEntity
.
getSendUrl
());
}
//serverInfo.setServerUrl(platformEntity.getSendUrl());
//String phpUrl=GlobalSysInfo.getParamValue(PARAM_SERVER_PHP_HTTP_URL, "http://10.12.185.213:8090");
//serverInfo.setServerUrl(phpUrl);
...
...
@@ -529,13 +528,14 @@ public class DeviceApiController {
DeviceResp
deviceResp
=
new
DeviceResp
();
try
{
DeviceEntity
deviceEntity
=
checkDeviceExist
(
req
);
//查找版本号最大的.
//查找版本号最大的. todo 根据站点来划分
ProductVersionQuery
productVersionQuery
=
new
ProductVersionQuery
();
productVersionQuery
.
setProductId
(
deviceEntity
.
getProductId
());
productVersionQuery
.
setSiteId
(
deviceEntity
.
getSiteId
());
productVersionQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"version"
,
OrderCol
.
DESCENDING
)));
//productVersionQuery.setOrderKind(OrderCol.DESCENDING);
ProductVersionEntity
productVersionEntity
=
productVersionService
.
selectOne
(
productVersionQuery
);
ProductVersionEntity
productVersionEntity
=
productVersionService
.
find
(
productVersionQuery
).
stream
().
filter
(
item
->
StrUtil
.
endWith
(
item
.
getFilePath
(),
".apk"
,
true
)).
findFirst
().
orElseGet
(()
->
null
);
// ProductVersionEntity productVersionEntity = productVersionService.selectOne(productVersionQuery);
if
(
ObjectUtils
.
isEmpty
(
productVersionEntity
))
{
throw
new
AppException
(
DEVICE_VERSION_UNEXIST
,
DEVICE_VERSION_UNEXIST_CONTENT
);
}
...
...
device-manager/src/main/java/com/mortals/xhx/module/product/model/vo/ProductVersionVo.java
View file @
c6f023fd
package
com.mortals.xhx.module.product.model.vo
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.xhx.module.product.model.ProductVersionEntity
;
import
java.util.ArrayList
;
import
java.util.List
;
import
lombok.Data
;
/**
* 产品客户端版本视图对象
*
* @author zxfei
* @date 2022-08-22
*/
* 产品客户端版本视图对象
*
* @author zxfei
* @date 2022-08-22
*/
@Data
public
class
ProductVersionVo
extends
BaseEntityLong
{
/**
* 源站点
*/
private
Long
sourceSiteId
;
/**
* 目标站点
*/
private
Long
targetSiteId
;
}
\ No newline at end of file
device-manager/src/main/java/com/mortals/xhx/module/product/service/ProductVersionService.java
View file @
c6f023fd
package
com.mortals.xhx.module.product.service
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.product.model.ProductVersionEntity
;
...
...
@@ -16,4 +17,7 @@ public interface ProductVersionService extends ICRUDService<ProductVersionEntity
void
appPublish
(
ProductVersionEntity
productVersionEntity
,
Context
context
);
Rest
<
String
>
cloneAppBySite
(
ProductVersionEntity
productVersionEntity
,
Context
context
);
}
\ No newline at end of file
device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductVersionServiceImpl.java
View file @
c6f023fd
...
...
@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.ZipUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
...
...
@@ -12,18 +13,20 @@ import com.mortals.framework.util.DateUtils;
import
com.mortals.xhx.base.system.message.impl.MessageProducer
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
import
com.mortals.xhx.common.code.LogTypeEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.key.Constant
;
import
com.mortals.xhx.common.key.QueueKey
;
import
com.mortals.xhx.common.model.DefaultTbQueueMsgHeaders
;
import
com.mortals.xhx.common.model.MessageHeader
;
import
com.mortals.xhx.
module.device.model.DeviceEntity
;
import
com.mortals.xhx.
module.device.model.DeviceLogEntity
;
import
com.mortals.xhx.module.device.model.
DeviceQuery
;
import
com.mortals.xhx.
common.pdu.site.SitePdu
;
import
com.mortals.xhx.
feign.site.ISiteFeign
;
import
com.mortals.xhx.module.device.model.
*
;
import
com.mortals.xhx.module.device.service.DeviceLogService
;
import
com.mortals.xhx.module.device.service.DeviceService
;
import
com.mortals.xhx.module.product.dao.ProductVersionDao
;
import
com.mortals.xhx.module.product.model.ProductEntity
;
import
com.mortals.xhx.module.product.model.ProductVersionEntity
;
import
com.mortals.xhx.module.product.model.ProductVersionQuery
;
import
com.mortals.xhx.module.product.service.ProductService
;
import
com.mortals.xhx.module.product.service.ProductVersionService
;
import
com.mortals.xhx.queue.DefaultTbQueueMsg
;
...
...
@@ -69,6 +72,8 @@ public class ProductVersionServiceImpl extends AbstractCRUDServiceImpl<ProductVe
@Value
(
"${upload.path}"
)
@Getter
private
String
filePathGlob
;
@Autowired
private
ISiteFeign
siteFeign
;
@Override
...
...
@@ -137,4 +142,41 @@ public class ProductVersionServiceImpl extends AbstractCRUDServiceImpl<ProductVe
}
pushUpgradMsg
(
productVersionEntity
,
context
);
}
@Override
public
Rest
<
String
>
cloneAppBySite
(
ProductVersionEntity
productVersionEntity
,
Context
context
)
{
//拷贝应用
Long
targetSiteId
=
productVersionEntity
.
getTargetSiteId
();
Long
sourceSiteId
=
productVersionEntity
.
getSourceSiteId
();
Rest
<
SitePdu
>
sitePduRest
=
siteFeign
.
info
(
targetSiteId
);
if
(
YesNoEnum
.
NO
.
getValue
()
==
sitePduRest
.
getCode
())
{
throw
new
AppException
(
"未查询到当前站点!"
);
}
SitePdu
sitePdu
=
sitePduRest
.
getData
();
ProductVersionQuery
productVersionQuery
=
new
ProductVersionQuery
();
productVersionQuery
.
setSiteId
(
sourceSiteId
);
List
<
ProductVersionEntity
>
productVersionEntities
=
this
.
find
(
productVersionQuery
);
//如果已存在 则不复制
for
(
ProductVersionEntity
productVersion
:
productVersionEntities
)
{
ProductVersionQuery
query
=
new
ProductVersionQuery
();
query
.
setSiteId
(
targetSiteId
);
query
.
setProductId
(
productVersion
.
getProductId
());
query
.
setVersion
(
productVersion
.
getVersion
());
int
count
=
this
.
count
(
query
,
context
);
if
(
count
==
0
)
{
productVersion
.
setId
(
null
);
productVersion
.
setSiteId
(
sitePdu
.
getId
());
productVersion
.
setSiteName
(
sitePdu
.
getSiteName
());
productVersion
.
setSiteCode
(
sitePdu
.
getSiteCode
());
productVersion
.
setFilePath
(
""
);
this
.
save
(
productVersion
,
context
);
}
}
return
Rest
.
ok
();
}
}
\ No newline at end of file
device-manager/src/main/java/com/mortals/xhx/module/product/web/ProductVersionController.java
View file @
c6f023fd
...
...
@@ -4,6 +4,7 @@ import com.mortals.framework.common.Rest;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.module.product.model.ProductEntity
;
import
com.mortals.xhx.module.product.model.ProductVersionEntity
;
import
com.mortals.xhx.module.product.model.ProductVersionQuery
;
...
...
@@ -58,6 +59,26 @@ public class ProductVersionController extends BaseCRUDJsonBodyMappingController<
}
/**
* app应用克隆给本站点
*/
@PostMapping
(
value
=
"cloneAppBySite"
)
public
Rest
<
Void
>
cloneAppBySite
(
@RequestBody
ProductVersionEntity
productVersionEntity
)
{
String
busiDesc
=
this
.
getModuleDesc
()
+
"部署克隆"
;
Rest
<
Void
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
try
{
Rest
<
String
>
cloneRest
=
this
.
service
.
cloneAppBySite
(
productVersionEntity
,
getContext
());
if
(
YesNoEnum
.
NO
.
getValue
()
==
cloneRest
.
getCode
())
{
return
Rest
.
fail
(
cloneRest
.
getMsg
());
}
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"应用克隆异常"
,
e
);
rest
=
Rest
.
fail
(
super
.
convertException
(
e
));
}
return
rest
;
}
/**
* 发布
...
...
device-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http
View file @
c6f023fd
...
...
@@ -107,7 +107,7 @@ POST {{baseUrl}}/api/register
Content-Type: application/json
{
"deviceCode": "
B8-13-32-86-3E-F4
"
"deviceCode": "
12-31-70-9C-BF-A3
"
}
> {%
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment