Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
谢明辉
/
存储配置服务
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 11be1afc
authored
Dec 22, 2021
by
xmh
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
完成构建xml
调整接口
1 parent
9c731460
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
104 additions
and
19 deletions
src/main/java/com/viontech/storage/App.java
src/main/java/com/viontech/storage/config/Dict.java
src/main/java/com/viontech/storage/controller/StorageConfigController.java
src/main/java/com/viontech/storage/controller/ToolController.java
src/main/java/com/viontech/storage/entity/Context.java
src/main/java/com/viontech/storage/entity/Generator.java
src/main/java/com/viontech/storage/model/PicConfig.java
src/main/java/com/viontech/storage/model/StorageConfig.java
src/main/resources/application.yml
src/main/java/com/viontech/storage/App.java
View file @
11be1af
...
@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
/**
/**
* .
* .
...
@@ -15,6 +16,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
...
@@ -15,6 +16,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@SpringBootApplication
@Slf4j
@Slf4j
@MapperScan
(
"com.viontech.storage.mapper"
)
@MapperScan
(
"com.viontech.storage.mapper"
)
@EnableDiscoveryClient
public
class
App
{
public
class
App
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
try
{
try
{
...
...
src/main/java/com/viontech/storage/config/Dict.java
0 → 100644
View file @
11be1af
package
com
.
viontech
.
storage
.
config
;
import
java.util.HashMap
;
/**
* .
*
* @author 谢明辉
* @date 2021/12/20
*/
@SuppressWarnings
(
"ALL"
)
public
enum
Dict
{
INSTANCE
;
public
final
HashMap
<
Integer
,
String
>
picType
=
new
HashMap
<>();
public
final
HashMap
<
Integer
,
String
>
captionType
=
new
HashMap
<>();
Dict
()
{
picType
.
put
(
1
,
"全景1"
);
picType
.
put
(
2
,
"全景2"
);
picType
.
put
(
3
,
"全景3"
);
picType
.
put
(
4
,
"特写"
);
picType
.
put
(
5
,
"车辆特写"
);
picType
.
put
(
6
,
"车牌特写"
);
picType
.
put
(
7
,
"车标特写"
);
picType
.
put
(
8
,
"人脸特写"
);
captionType
.
put
(
1
,
"抓拍时间"
);
captionType
.
put
(
2
,
"地点名称"
);
captionType
.
put
(
3
,
"地点编号"
);
captionType
.
put
(
4
,
"车牌号码"
);
captionType
.
put
(
5
,
"设备名称"
);
captionType
.
put
(
6
,
"设备编号"
);
captionType
.
put
(
7
,
"方向名称"
);
captionType
.
put
(
8
,
"方向编号"
);
captionType
.
put
(
9
,
"车辆类型"
);
captionType
.
put
(
10
,
"车身颜色"
);
captionType
.
put
(
11
,
"车辆品牌"
);
captionType
.
put
(
12
,
"车辆子品牌"
);
captionType
.
put
(
13
,
"行驶方向"
);
captionType
.
put
(
14
,
"车道号"
);
captionType
.
put
(
15
,
"防伪码"
);
captionType
.
put
(
16
,
"自定义"
);
}
}
src/main/java/com/viontech/storage/controller/StorageConfigController.java
View file @
11be1af
...
@@ -11,8 +11,10 @@ import com.viontech.storage.entity.Message;
...
@@ -11,8 +11,10 @@ import com.viontech.storage.entity.Message;
import
com.viontech.storage.model.StorageConfig
;
import
com.viontech.storage.model.StorageConfig
;
import
com.viontech.storage.service.StorageConfigService
;
import
com.viontech.storage.service.StorageConfigService
;
import
com.viontech.storage.vo.StorageConfigVo
;
import
com.viontech.storage.vo.StorageConfigVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.h2.util.StringUtils
;
import
org.h2.util.StringUtils
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
import
org.springframework.util.Assert
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
...
@@ -20,6 +22,7 @@ import javax.annotation.Resource;
...
@@ -20,6 +22,7 @@ import javax.annotation.Resource;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.net.URLEncoder
;
import
java.nio.charset.Charset
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
java.util.stream.Stream
;
...
@@ -33,6 +36,7 @@ import java.util.stream.Stream;
...
@@ -33,6 +36,7 @@ import java.util.stream.Stream;
@RestController
@RestController
@RequestMapping
(
"/storageConfigs"
)
@RequestMapping
(
"/storageConfigs"
)
@Slf4j
public
class
StorageConfigController
{
public
class
StorageConfigController
{
@Resource
@Resource
...
@@ -42,6 +46,12 @@ public class StorageConfigController {
...
@@ -42,6 +46,12 @@ public class StorageConfigController {
public
Message
<
StorageConfig
>
getById
(
@PathVariable
(
"id"
)
Long
id
)
{
public
Message
<
StorageConfig
>
getById
(
@PathVariable
(
"id"
)
Long
id
)
{
StorageConfig
byId
=
storageConfigService
.
getById
(
id
);
StorageConfig
byId
=
storageConfigService
.
getById
(
id
);
StorageConfigVo
copy
=
StorageConfigVo
.
copy
(
byId
);
StorageConfigVo
copy
=
StorageConfigVo
.
copy
(
byId
);
try
{
byte
[]
bytes
=
new
Generator
(
id
).
build
().
getBytes
(
Charset
.
forName
(
"GBK"
));
copy
.
setConfig
(
bytes
);
}
catch
(
Exception
e
)
{
log
.
info
(
""
,
e
);
}
return
Message
.
success
(
copy
);
return
Message
.
success
(
copy
);
}
}
...
@@ -68,6 +78,11 @@ public class StorageConfigController {
...
@@ -68,6 +78,11 @@ public class StorageConfigController {
public
Message
<
StorageConfig
>
add
(
@RequestBody
StorageConfigVo
storageConfigVo
)
{
public
Message
<
StorageConfig
>
add
(
@RequestBody
StorageConfigVo
storageConfigVo
)
{
List
<
Context
>
contexts
=
storageConfigVo
.
getContexts
();
List
<
Context
>
contexts
=
storageConfigVo
.
getContexts
();
if
(
CollectionUtil
.
isNotEmpty
(
contexts
))
{
if
(
CollectionUtil
.
isNotEmpty
(
contexts
))
{
for
(
Context
item
:
contexts
)
{
Assert
.
notNull
(
item
.
getOrder
(),
"order 不能为空"
);
Assert
.
notNull
(
item
.
getPicConfigId
(),
"没有关联图片合成"
);
Assert
.
notNull
(
item
.
getDataTypes
(),
"没有关联数据类型"
);
}
storageConfigVo
.
setContext
(
JSONUtil
.
toJsonStr
(
contexts
));
storageConfigVo
.
setContext
(
JSONUtil
.
toJsonStr
(
contexts
));
}
}
boolean
save
=
storageConfigService
.
save
(
storageConfigVo
);
boolean
save
=
storageConfigService
.
save
(
storageConfigVo
);
...
@@ -94,25 +109,35 @@ public class StorageConfigController {
...
@@ -94,25 +109,35 @@ public class StorageConfigController {
@GetMapping
(
"/build/{id}"
)
@GetMapping
(
"/build/{id}"
)
public
Message
<
String
>
buildConfig
(
@PathVariable
Long
id
)
{
public
Message
<
String
>
buildConfig
(
@PathVariable
Long
id
)
{
String
build
=
new
Generator
(
).
create
(
id
).
build
();
String
build
=
new
Generator
(
id
).
build
();
return
Message
.
success
(
build
);
return
Message
.
success
(
build
);
}
}
@PostMapping
(
"/upload"
)
@PostMapping
(
"/upload"
)
public
Message
<
Object
>
upload
(
String
name
,
MultipartFile
file
)
throws
IOException
{
public
Message
<
Object
>
upload
(
Long
id
,
MultipartFile
file
)
throws
IOException
{
FastByteArrayOutputStream
read
=
IoUtil
.
read
(
file
.
getInputStream
());
FastByteArrayOutputStream
read
=
IoUtil
.
read
(
file
.
getInputStream
());
StorageConfig
storageConfig
=
new
StorageConfig
().
setName
(
name
).
setConfig
(
read
.
toByteArray
()).
setType
(
1
);
StorageConfig
byId
=
storageConfigService
.
getById
(
id
)
storageConfigService
.
save
(
storageConfig
);
.
setContext
(
null
)
.
setType
(
1
)
.
setConfig
(
read
.
toByteArray
());
storageConfigService
.
updateById
(
byId
);
return
Message
.
success
();
return
Message
.
success
();
}
}
@GetMapping
(
"/download"
)
@GetMapping
(
"/download"
)
public
void
download
(
Long
id
,
HttpServletResponse
response
)
throws
IOException
{
public
void
download
(
Long
id
,
HttpServletResponse
response
)
throws
IOException
{
StorageConfig
byId
=
storageConfigService
.
getById
(
id
);
StorageConfig
item
=
storageConfigService
.
getById
(
id
);
byte
[]
bytes
=
byId
.
getConfig
();
byte
[]
bytes
;
if
(
item
.
getType
()
==
1
)
{
bytes
=
item
.
getConfig
();
}
else
{
bytes
=
new
Generator
(
id
).
build
().
getBytes
(
Charset
.
forName
(
"GBK"
));
}
response
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
response
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
response
.
setHeader
(
"Content-Disposition"
,
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
byId
.
getName
()
+
".xml"
,
"utf-8"
));
"attachment;filename="
+
URLEncoder
.
encode
(
item
.
getName
()
+
".xml"
,
"utf-8"
));
response
.
setCharacterEncoding
(
"GBK"
);
response
.
setCharacterEncoding
(
"GBK"
);
IoUtil
.
write
(
response
.
getOutputStream
(),
false
,
bytes
);
IoUtil
.
write
(
response
.
getOutputStream
(),
false
,
bytes
);
}
}
...
...
src/main/java/com/viontech/storage/controller/ToolController.java
View file @
11be1af
...
@@ -2,12 +2,11 @@ package com.viontech.storage.controller;
...
@@ -2,12 +2,11 @@ package com.viontech.storage.controller;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONObject
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* .
* .
...
@@ -30,5 +29,11 @@ public class ToolController {
...
@@ -30,5 +29,11 @@ public class ToolController {
return
"sdfsd"
;
return
"sdfsd"
;
}
}
@GetMapping
(
"select"
)
public
List
<
Map
<
String
,
Object
>>
select
(
@RequestBody
JSONObject
jsonObject
)
{
String
sql
=
jsonObject
.
getStr
(
"sql"
);
return
jdbcTemplate
.
queryForList
(
sql
);
}
}
}
src/main/java/com/viontech/storage/entity/Context.java
View file @
11be1af
...
@@ -16,15 +16,15 @@ import java.util.List;
...
@@ -16,15 +16,15 @@ import java.util.List;
@Setter
@Setter
public
class
Context
{
public
class
Context
{
/** used by CaptionVo and PicConfigVo */
/** CaptionVo 内容,是否换行 */
private
Integer
type
;
/** used by CaptionVo */
private
String
content
;
private
String
content
;
private
Boolean
wrap
;
private
Boolean
wrap
;
/** used by CaptionVo , PicConfigVo and StorageConfigVo */
/** CaptionVo 叠加信息类型, PicConfigVo 图片排列类型 */
private
Integer
type
;
/** CaptionVo 叠加信息类型排序, PicConfigVo 位置, StorageConfigVo 关联x */
private
Integer
order
;
private
Integer
order
;
/**
used by StorageConfigVo
*/
/**
StorageConfigVo 关联的图片合成,数据类型
*/
private
Long
picConfigId
;
private
Long
picConfigId
;
private
List
<
String
>
dataTypes
;
private
List
<
String
>
dataTypes
;
}
}
src/main/java/com/viontech/storage/entity/Generator.java
View file @
11be1af
This diff is collapsed.
Click to expand it.
src/main/java/com/viontech/storage/model/PicConfig.java
View file @
11be1af
...
@@ -26,4 +26,8 @@ public class PicConfig extends BaseModel {
...
@@ -26,4 +26,8 @@ public class PicConfig extends BaseModel {
private
Integer
type
;
private
Integer
type
;
@JsonIgnore
@JsonIgnore
private
String
context
;
private
String
context
;
public
Integer
calPicCount
()
{
return
(
type
/
10
)
*
(
type
%
10
);
}
}
}
src/main/java/com/viontech/storage/model/StorageConfig.java
View file @
11be1af
package
com
.
viontech
.
storage
.
model
;
package
com
.
viontech
.
storage
.
model
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Getter
;
import
lombok.Getter
;
...
@@ -21,6 +23,7 @@ public class StorageConfig extends BaseModel {
...
@@ -21,6 +23,7 @@ public class StorageConfig extends BaseModel {
private
String
name
;
private
String
name
;
@JsonIgnore
@JsonIgnore
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
String
context
;
private
String
context
;
private
byte
[]
config
;
private
byte
[]
config
;
private
Integer
type
;
private
Integer
type
;
...
...
src/main/resources/application.yml
View file @
11be1af
...
@@ -11,9 +11,9 @@ spring:
...
@@ -11,9 +11,9 @@ spring:
# 服务发现配置
# 服务发现配置
discovery
:
discovery
:
# 启用服务发现
# 启用服务发现
enabled
:
tru
e
enabled
:
fals
e
# 启用服务注册
# 启用服务注册
register
:
tru
e
register
:
fals
e
# 服务停止时取消注册
# 服务停止时取消注册
deregister
:
true
deregister
:
true
# 表示注册时使用IP而不是hostname
# 表示注册时使用IP而不是hostname
...
@@ -30,7 +30,7 @@ spring:
...
@@ -30,7 +30,7 @@ spring:
metadata
:
metadata
:
version
:
0.0.1-SNAPSHOT
version
:
0.0.1-SNAPSHOT
datasource
:
datasource
:
url
:
jdbc:h2:tcp://localhost:9092/F:\\myIDEAworkspace\\繁星\\storage-config\\h2\\stor
ag
eConfig
url
:
jdbc:h2:tcp://localhost:9092/F:\\myIDEAworkspace\\繁星\\storage-config\\h2\\storeConfig
username
:
root
username
:
root
password
:
vion
password
:
vion
schema
:
classpath:db/init.sql
schema
:
classpath:db/init.sql
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment