Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mongo-train
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liangyuhang
mongo-train
Commits
27eda5bf
Commit
27eda5bf
authored
May 13, 2021
by
liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parents
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1141 additions
and
0 deletions
+1141
-0
mongo-train/pom.xml
+90
-0
mongo-train/src/main/java/com/liang/mongotrain/MongoTrainApplication.java
+13
-0
mongo-train/src/main/java/com/liang/mongotrain/config/Swagger2Config.java
+74
-0
mongo-train/src/main/java/com/liang/mongotrain/controller/SearchController.java
+73
-0
mongo-train/src/main/java/com/liang/mongotrain/controller/UpdateController.java
+43
-0
mongo-train/src/main/java/com/liang/mongotrain/dao/MediaRepository.java
+13
-0
mongo-train/src/main/java/com/liang/mongotrain/dao/StaNewsRepository.java
+7
-0
mongo-train/src/main/java/com/liang/mongotrain/pojo/Media.java
+59
-0
mongo-train/src/main/java/com/liang/mongotrain/pojo/StaEventId.java
+18
-0
mongo-train/src/main/java/com/liang/mongotrain/pojo/StaNews.java
+19
-0
mongo-train/src/main/java/com/liang/mongotrain/service/MediaService.java
+33
-0
mongo-train/src/main/java/com/liang/mongotrain/service/MediaServiceImpl.java
+222
-0
mongo-train/src/main/java/com/liang/mongotrain/util/ExcelStyleUtil.java
+182
-0
mongo-train/src/main/resources/application.yaml
+5
-0
mongo-train/src/test/java/com/liang/mongotrain/MongoTrainApplicationTests.java
+180
-0
mongo-train/src/test/java/com/liang/mongotrain/TestPOI.java
+105
-0
mongo-train/target/classes/application.yaml
+5
-0
No files found.
mongo-train/pom.xml
0 → 100644
View file @
27eda5bf
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.4.5
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.liang
</groupId>
<artifactId>
mongo-train
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
mongo-train
</name>
<description>
Demo project for Spring Boot
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
cn.afterturn
</groupId>
<artifactId>
easypoi-spring-boot-starter
</artifactId>
<version>
4.2.0
</version>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
2.6.1
</version>
</dependency>
<dependency>
<groupId>
com.github.xiaoymin
</groupId>
<artifactId>
swagger-bootstrap-ui
</artifactId>
<version>
1.9.6
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-mongodb
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
<scope>
runtime
</scope>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-release-plugin
</artifactId>
<version>
2.5.3
</version>
<configuration>
<tagNameFormat>
v@{project.version}
</tagNameFormat>
</configuration>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
mongo-train/src/main/java/com/liang/mongotrain/MongoTrainApplication.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
MongoTrainApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
MongoTrainApplication
.
class
,
args
);
}
}
mongo-train/src/main/java/com/liang/mongotrain/config/Swagger2Config.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.service.*
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spi.service.contexts.SecurityContext
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
import
java.util.ArrayList
;
import
java.util.List
;
@Configuration
@EnableSwagger2
public
class
Swagger2Config
{
@Bean
public
Docket
createRestApi
(){
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
apiInfo
(
apiInfo
())
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.liang.mongotrain.controller"
))
.
paths
(
PathSelectors
.
any
())
.
build
()
.
securityContexts
(
securityContexts
())
.
securitySchemes
(
securitySchemes
());
}
//配置Swagger信息=apiInfo
private
ApiInfo
apiInfo
(){
Contact
contact
=
new
Contact
(
"梁宇航"
,
"http://wjlyh.top"
,
"775701437@qq.com"
);
return
new
ApiInfoBuilder
()
.
title
(
"接口文档"
)
.
description
(
"接口文档"
)
.
contact
(
contact
)
.
version
(
"1.0"
)
.
build
();
}
private
List
<
ApiKey
>
securitySchemes
(){
//设置请求头
List
<
ApiKey
>
result
=
new
ArrayList
<>();
ApiKey
apiKey
=
new
ApiKey
(
"Authorization"
,
"Authorization"
,
"Header"
);
result
.
add
(
apiKey
);
return
result
;
}
private
List
<
SecurityContext
>
securityContexts
(){
//设置需要登录认证的路径
List
<
SecurityContext
>
result
=
new
ArrayList
<>();
result
.
add
(
getContxtByPath
(
"/hello/.*"
));
return
result
;
}
private
SecurityContext
getContxtByPath
(
String
pathRegex
){
return
SecurityContext
.
builder
()
.
securityReferences
(
defaultAuth
())
.
forPaths
(
PathSelectors
.
regex
(
pathRegex
))
.
build
();
}
private
List
<
SecurityReference
>
defaultAuth
(){
List
<
SecurityReference
>
result
=
new
ArrayList
<>();
AuthorizationScope
authorizationScope
=
new
AuthorizationScope
(
"global"
,
"accessEverything"
);
AuthorizationScope
[]
authorizationScopes
=
new
AuthorizationScope
[
1
];
authorizationScopes
[
0
]=
authorizationScope
;
result
.
add
(
new
SecurityReference
(
"Authoriztion"
,
authorizationScopes
));
return
result
;
}
}
mongo-train/src/main/java/com/liang/mongotrain/controller/SearchController.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
controller
;
import
com.liang.mongotrain.pojo.Media
;
import
com.liang.mongotrain.pojo.StaEventId
;
import
com.liang.mongotrain.service.MediaService
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Date
;
import
java.util.List
;
@RestController
public
class
SearchController
{
@Autowired
private
MediaService
mediaService
;
@ApiOperation
(
value
=
"相同eventId数据量统计,按数据量倒序排序"
)
@GetMapping
(
"/countEventId"
)
public
List
<
StaEventId
>
countEventId
(){
return
mediaService
.
countEventId
();
}
@ApiOperation
(
value
=
"相同eventId的h字段求和,查询h总值最高前十个eventId"
)
@GetMapping
(
"/sumEventId"
)
public
List
<
StaEventId
>
sumEventId
(){
return
mediaService
.
sumEventId
();
}
@ApiOperation
(
value
=
"指定eventId的source字段模糊查询"
)
@GetMapping
(
"/getSource"
)
public
List
<
Media
>
getSource
(
String
eventId
,
String
search
){
return
mediaService
.
getSource
(
eventId
,
search
);
}
@ApiOperation
(
value
=
"title与content模糊查询"
)
@GetMapping
(
"/getTitleAndContent"
)
public
List
<
Media
>
getTitleAndContent
(
String
eventId
,
String
title
,
String
content
,
@RequestParam
(
defaultValue
=
"1"
)
int
page
){
return
mediaService
.
findByTitleAndContent
(
eventId
,
title
,
content
,
page
);
}
@ApiOperation
(
value
=
"按时间time字段与eventId查询数据量"
)
@GetMapping
(
"/getNum"
)
public
List
<
Media
>
getNum
(
String
eventId
,
Date
start
,
Date
end
){
return
mediaService
.
getNum
(
eventId
,
start
,
end
);
}
@ApiOperation
(
value
=
"增添一个新表,去重存放eventId"
)
@PutMapping
(
"/addTable"
)
public
String
addTable
(){
return
mediaService
.
addTable
();
}
@ApiOperation
(
value
=
"导出excel(要等蛮久的)"
)
@GetMapping
(
value
=
"/export"
,
produces
=
"application/octet-stream"
)
public
void
exportByEventId
(
String
eventId
,
HttpServletResponse
response
)
{
mediaService
.
exportByEventId
(
eventId
,
response
);
}
}
mongo-train/src/main/java/com/liang/mongotrain/controller/UpdateController.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
controller
;
import
com.liang.mongotrain.service.MediaService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
public
class
UpdateController
{
@Autowired
private
MediaService
mediaService
;
/**
* 针对_id字段修改单数据的h值
* @param id
* @param h
* @return
*/
@ApiOperation
(
value
=
"指定eventId的source字段模糊查询"
)
@PutMapping
(
"/update1"
)
public
String
update1
(
String
id
,
Integer
h
){
return
mediaService
.
updateHById
(
id
,
h
);
}
/**
* 为h值大于50数据增添拥有索引的String标记字段,字段名为mark
* @return
*/
@ApiOperation
(
value
=
"为h值大于50数据增添拥有索引的String标记字段"
)
@PutMapping
(
"/updat2"
)
public
String
update2
(){
return
mediaService
.
addIndexForgt50h
();
}
}
mongo-train/src/main/java/com/liang/mongotrain/dao/MediaRepository.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
dao
;
import
com.liang.mongotrain.pojo.Media
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
import
java.util.List
;
public
interface
MediaRepository
extends
MongoRepository
<
Media
,
String
>
{
//Page<Media> findByEventId(String eventId, Pageable pageable);
List
<
Media
>
findByEventId
(
String
eventId
);
}
mongo-train/src/main/java/com/liang/mongotrain/dao/StaNewsRepository.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
dao
;
import
com.liang.mongotrain.pojo.StaNews
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
public
interface
StaNewsRepository
extends
MongoRepository
<
StaNews
,
String
>
{
}
mongo-train/src/main/java/com/liang/mongotrain/pojo/Media.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
pojo
;
import
cn.afterturn.easypoi.excel.annotation.Excel
;
import
cn.afterturn.easypoi.excel.annotation.ExcelTarget
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.index.CompoundIndex
;
import
org.springframework.data.mongodb.core.index.Indexed
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.sql.Timestamp
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ExcelTarget
(
"Media"
)
// 复合索引
@CompoundIndex
(
def
=
"{'eventId':1,'time':-1}"
)
@CompoundIndex
(
def
=
"{'eventId':1,'pt':1}"
)
@Document
public
class
Media
{
@Id
@Excel
(
name
=
"编号"
,
width
=
40.0
,
orderNum
=
"0"
)
private
String
id
;
@Excel
(
name
=
"地址"
,
width
=
40.0
,
orderNum
=
"1"
)
private
String
url
;
@Excel
(
name
=
"标题"
,
width
=
60.0
,
orderNum
=
"2"
)
private
String
title
;
@Excel
(
name
=
"创建时间"
,
width
=
20.0
,
orderNum
=
"3"
,
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
time
;
@Excel
(
name
=
"来源"
,
width
=
30.0
,
orderNum
=
"4"
)
private
String
source
;
@Excel
(
name
=
"类型"
,
width
=
20.0
,
orderNum
=
"5"
)
private
String
type
;
@Excel
(
name
=
"内容"
,
width
=
50.0
,
orderNum
=
"6"
)
private
String
content
;
@Excel
(
name
=
"保存时间"
,
width
=
20.0
,
orderNum
=
"7"
)
private
Long
savetime
;
@Excel
(
name
=
"浏览人数"
,
width
=
20.0
,
orderNum
=
"8"
)
private
Integer
rsid
;
@Excel
(
name
=
"平台"
,
width
=
20.0
,
orderNum
=
"9"
)
@Indexed
private
String
pt
;
@Indexed
@Excel
(
name
=
"事件编号"
,
width
=
40.0
,
orderNum
=
"10"
)
private
String
eventId
;
@Excel
(
name
=
"h"
,
width
=
20.0
,
orderNum
=
"11"
)
private
String
h
;
@Excel
(
name
=
"备注"
,
width
=
20.0
,
orderNum
=
"12"
)
private
String
mark
;
}
mongo-train/src/main/java/com/liang/mongotrain/pojo/StaEventId.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
pojo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.index.Indexed
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
StaEventId
{
@Id
private
String
id
;
@Indexed
private
String
eventId
;
private
Long
count
;
}
mongo-train/src/main/java/com/liang/mongotrain/pojo/StaNews.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
pojo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.index.Indexed
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
StaNews
{
@Id
private
String
id
;
@Indexed
private
String
eventId
;
private
Long
wechat
;
private
Long
baidu
;
}
mongo-train/src/main/java/com/liang/mongotrain/service/MediaService.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
service
;
import
com.liang.mongotrain.pojo.Media
;
import
com.liang.mongotrain.pojo.StaEventId
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Date
;
import
java.util.List
;
public
interface
MediaService
{
//Page<Media> findByEventId(String eventId, int page,int size);
List
<
Media
>
getSource
(
String
eventId
,
String
search
);
List
<
Media
>
getNum
(
String
eventId
,
Date
start
,
Date
end
);
String
updateHById
(
String
id
,
Integer
h
);
String
addTable
();
List
<
StaEventId
>
countEventId
();
List
<
StaEventId
>
sumEventId
();
List
<
Media
>
findByTitleAndContent
(
String
eventId
,
String
title
,
String
content
,
int
page
);
void
exportByEventId
(
String
eventId
,
HttpServletResponse
response
);
String
addIndexForgt50h
();
}
mongo-train/src/main/java/com/liang/mongotrain/service/MediaServiceImpl.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
service
;
import
cn.afterturn.easypoi.excel.ExcelExportUtil
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
cn.afterturn.easypoi.excel.entity.enmus.ExcelType
;
import
com.google.common.base.Strings
;
import
com.liang.mongotrain.dao.MediaRepository
;
import
com.liang.mongotrain.pojo.Media
;
import
com.liang.mongotrain.pojo.StaEventId
;
import
com.liang.mongotrain.pojo.StaNews
;
import
com.liang.mongotrain.util.ExcelStyleUtil
;
import
com.mongodb.client.model.IndexOptions
;
import
com.mongodb.client.result.UpdateResult
;
import
org.apache.poi.hssf.util.HSSFColor
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.bson.Document
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.aggregation.Aggregation
;
import
org.springframework.data.mongodb.core.aggregation.AggregationResults
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.FileNotFoundException
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.util.*
;
@Service
public
class
MediaServiceImpl
implements
MediaService
{
@Autowired
private
MediaRepository
mediaRepository
;
@Autowired
private
MongoTemplate
mongoTemplate
;
//@Override
//public Page<Media> findByEventId(String eventId, int page,int size) {
// return mediaRepository.findByEventId(eventId, PageRequest.of(page - 1, size));
//}
@Override
public
List
<
Media
>
getSource
(
String
eventId
,
String
search
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"source"
).
regex
(
"^.*"
+
search
+
".*$"
));
return
mongoTemplate
.
find
(
query
,
Media
.
class
);
}
@Override
public
List
<
Media
>
findByTitleAndContent
(
String
eventId
,
String
title
,
String
content
,
int
page
)
{
int
size
=
10
;
Criteria
regex
=
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"title"
).
regex
(
"^.*"
+
title
+
".*$"
)
.
and
(
"content"
).
regex
(
"^.*"
+
content
+
".*$"
);
Query
query
=
Query
.
query
(
regex
).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"title"
));
int
count
=
(
int
)
mongoTemplate
.
count
(
query
,
Media
.
class
);
return
mongoTemplate
.
find
(
query
.
limit
(
size
).
skip
(
size
*(
page
-
1
)),
Media
.
class
);
}
@Override
public
void
exportByEventId
(
String
eventId
,
HttpServletResponse
response
)
{
Query
query1
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"微信"
));
Query
query2
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"百度新闻"
));
List
<
Media
>
wechat
=
mongoTemplate
.
find
(
query1
,
Media
.
class
);
List
<
Media
>
baidu
=
mongoTemplate
.
find
(
query2
,
Media
.
class
);
ExportParams
exportParamswx
=
new
ExportParams
();
exportParamswx
.
setTitle
(
"微信数据"
);
exportParamswx
.
setSheetName
(
"微信"
);
//exportParamswx.setColor(HSSFColor.HSSFColorPredefined.SKY_BLUE.getIndex());
// 设置样式
exportParamswx
.
setStyle
(
ExcelStyleUtil
.
class
);
Map
<
String
,
Object
>
wechatmap
=
new
HashMap
<>();
wechatmap
.
put
(
"title"
,
exportParamswx
);
wechatmap
.
put
(
"entity"
,
Media
.
class
);
wechatmap
.
put
(
"data"
,
wechat
);
ExportParams
exportParamsbd
=
new
ExportParams
();
exportParamsbd
.
setTitle
(
"百度新闻数据"
);
exportParamsbd
.
setSheetName
(
"百度新闻"
);
// 设置样式
exportParamsbd
.
setStyle
(
ExcelStyleUtil
.
class
);
Map
<
String
,
Object
>
baidumap
=
new
HashMap
<>();
baidumap
.
put
(
"title"
,
exportParamsbd
);
baidumap
.
put
(
"entity"
,
Media
.
class
);
baidumap
.
put
(
"data"
,
baidu
);
//将sheet1、sheet2进行包装
List
<
Map
<
String
,
Object
>>
sheetsList
=
new
ArrayList
<>();
sheetsList
.
add
(
wechatmap
);
sheetsList
.
add
(
baidumap
);
Workbook
workbook
=
null
;
ServletOutputStream
outputStream
=
null
;
try
{
response
.
setHeader
(
"content-haha"
,
"en"
);
response
.
setHeader
(
"content-type"
,
"application/octet-stream"
);
response
.
setHeader
(
"Content-disposition"
,
"attachment;fileName="
+
URLEncoder
.
encode
(
eventId
+
".xls"
,
"UTF-8"
));
//执行方法
workbook
=
ExcelExportUtil
.
exportExcel
(
sheetsList
,
ExcelType
.
HSSF
);
outputStream
=
response
.
getOutputStream
();
workbook
.
write
(
outputStream
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
finally
{
if
(
workbook
!=
null
)
{
try
{
workbook
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
if
(
null
!=
outputStream
){
try
{
outputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
@Override
public
String
addIndexForgt50h
()
{
List
<
String
>
eventIds
=
mongoTemplate
.
findDistinct
(
"eventId"
,
Media
.
class
,
String
.
class
);
String
index
=
null
;
for
(
String
eventId
:
eventIds
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"h"
).
gt
(
50
));
List
<
Media
>
medias
=
mongoTemplate
.
find
(
query
,
Media
.
class
);
for
(
Media
media
:
medias
)
{
System
.
out
.
println
(
media
);
}
index
=
mongoTemplate
.
getCollection
(
"media"
)
.
createIndex
(
new
Document
(
"mark"
,
"hashed"
),
new
IndexOptions
().
background
(
false
).
name
(
"idx_mark"
));
}
if
(!
Strings
.
isNullOrEmpty
(
index
)){
return
"OK"
;
}
return
"error"
;
}
@Override
public
List
<
Media
>
getNum
(
String
eventId
,
Date
start
,
Date
end
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
andOperator
(
Criteria
.
where
(
"time"
).
lt
(
end
),
Criteria
.
where
(
"time"
).
gte
(
start
)));
return
mongoTemplate
.
find
(
query
,
Media
.
class
);
}
@Override
public
String
updateHById
(
String
id
,
Integer
h
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"_id"
).
is
(
id
));
Update
update
=
new
Update
();
update
.
set
(
"h"
,
h
);
UpdateResult
updateResult
=
mongoTemplate
.
updateFirst
(
query
,
update
,
Media
.
class
);
if
(
updateResult
.
getModifiedCount
()==
1
){
return
"OK"
;
}
else
{
return
"false"
;
}
}
@Override
public
String
addTable
()
{
List
<
String
>
eventIds
=
mongoTemplate
.
findDistinct
(
"eventId"
,
Media
.
class
,
String
.
class
);
for
(
String
eventId
:
eventIds
)
{
Query
query1
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"微信"
));
Query
query2
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"百度新闻"
));
long
wechat
=
mongoTemplate
.
count
(
query1
,
Media
.
class
);
long
baidu
=
mongoTemplate
.
count
(
query2
,
Media
.
class
);
StaNews
staNews
=
new
StaNews
();
staNews
.
setEventId
(
eventId
);
staNews
.
setWechat
(
wechat
);
staNews
.
setBaidu
(
baidu
);
mongoTemplate
.
save
(
staNews
);
}
return
"OK"
;
}
@Override
public
List
<
StaEventId
>
countEventId
()
{
List
<
StaEventId
>
list
=
new
ArrayList
<>();
Aggregation
agg
=
Aggregation
.
newAggregation
(
Aggregation
.
group
(
"eventId"
).
first
(
"eventId"
).
as
(
"eventId"
).
count
().
as
(
"count"
),
Aggregation
.
sort
(
Sort
.
Direction
.
DESC
,
"count"
)
);
AggregationResults
<
StaEventId
>
aggregate
=
mongoTemplate
.
aggregate
(
agg
,
Media
.
class
,
StaEventId
.
class
);
for
(
StaEventId
staEventId
:
aggregate
)
{
list
.
add
(
staEventId
);
}
return
list
;
}
@Override
public
List
<
StaEventId
>
sumEventId
()
{
List
<
StaEventId
>
list
=
new
ArrayList
<>();
Aggregation
agg
=
Aggregation
.
newAggregation
(
Aggregation
.
group
(
"eventId"
).
first
(
"eventId"
).
as
(
"eventId"
).
sum
(
"h"
).
as
(
"count"
),
Aggregation
.
sort
(
Sort
.
Direction
.
DESC
,
"count"
),
Aggregation
.
limit
(
10
)
);
AggregationResults
<
StaEventId
>
aggregate
=
mongoTemplate
.
aggregate
(
agg
,
Media
.
class
,
StaEventId
.
class
);
for
(
StaEventId
staEventId
:
aggregate
)
{
list
.
add
(
staEventId
);
}
return
list
;
}
}
mongo-train/src/main/java/com/liang/mongotrain/util/ExcelStyleUtil.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
.
util
;
import
cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity
;
import
cn.afterturn.easypoi.excel.entity.params.ExcelForEachParams
;
import
cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.usermodel.Workbook
;
public
class
ExcelStyleUtil
implements
IExcelExportStyler
{
Workbook
workbook
=
null
;
private
static
final
short
STRING_FORMAT
=
(
short
)
BuiltinFormats
.
getBuiltinFormat
(
"TEXT"
);
private
static
final
short
FONT_SIZE_TEN
=
9
;
private
static
final
short
FONT_SIZE_ELEVEN
=
10
;
private
static
final
short
FONT_SIZE_TWELVE
=
10
;
/**
* 大标题样式
*/
private
CellStyle
headerStyle
;
/**
* 每列标题样式
*/
private
CellStyle
titleStyle
;
/**
* 数据行样式
*/
private
CellStyle
styles
;
public
ExcelStyleUtil
(
Workbook
workbook
)
{
this
.
init
(
workbook
);
}
/**
* 初始化样式
*
* @param workbook
*/
private
void
init
(
Workbook
workbook
)
{
this
.
headerStyle
=
initHeaderStyle
(
workbook
);
this
.
titleStyle
=
initTitleStyle
(
workbook
);
this
.
styles
=
initStyles
(
workbook
);
}
/**
* 大标题样式
*
* @param color
* @return
*/
@Override
public
CellStyle
getHeaderStyle
(
short
color
)
{
return
headerStyle
;
}
/**
* 每列标题样式
*
* @param color
* @return
*/
@Override
public
CellStyle
getTitleStyle
(
short
color
)
{
return
titleStyle
;
}
/**
* 数据行样式
*
* @param parity 可以用来表示奇偶行
* @param entity 数据内容
* @return 样式
*/
@Override
public
CellStyle
getStyles
(
boolean
parity
,
ExcelExportEntity
entity
)
{
return
styles
;
}
/**
* 获取样式方法
*
* @param dataRow 数据行
* @param obj 对象
* @param data 数据
*/
@Override
public
CellStyle
getStyles
(
Cell
cell
,
int
dataRow
,
ExcelExportEntity
entity
,
Object
obj
,
Object
data
)
{
return
getStyles
(
true
,
entity
);
}
/**
* 模板使用的样式设置
*/
@Override
public
CellStyle
getTemplateStyles
(
boolean
isSingle
,
ExcelForEachParams
excelForEachParams
)
{
return
null
;
}
/**
* 初始化--大标题样式
*
* @param workbook
* @return
*/
private
CellStyle
initHeaderStyle
(
Workbook
workbook
)
{
CellStyle
style
=
getBaseCellStyle
(
workbook
);
style
.
setFont
(
getFont
(
workbook
,
FONT_SIZE_TWELVE
,
true
));
//背景色
style
.
setFillForegroundColor
(
IndexedColors
.
SKY_BLUE
.
getIndex
());
style
.
setFillPattern
(
FillPatternType
.
SOLID_FOREGROUND
);
return
style
;
}
/**
* 初始化--每列标题样式
*
* @param workbook
* @return
*/
private
CellStyle
initTitleStyle
(
Workbook
workbook
)
{
CellStyle
style
=
getBaseCellStyle
(
workbook
);
style
.
setFont
(
getFont
(
workbook
,
FONT_SIZE_ELEVEN
,
true
));
//背景色
style
.
setFillForegroundColor
(
IndexedColors
.
SKY_BLUE
.
getIndex
());
style
.
setFillPattern
(
FillPatternType
.
SOLID_FOREGROUND
);
return
style
;
}
/**
* 初始化--数据行样式
*
* @param workbook
* @return
*/
private
CellStyle
initStyles
(
Workbook
workbook
)
{
CellStyle
style
=
getBaseCellStyle
(
workbook
);
style
.
setFont
(
getFont
(
workbook
,
FONT_SIZE_TEN
,
false
));
style
.
setDataFormat
(
STRING_FORMAT
);
return
style
;
}
/**
* 基础样式
*
* @return
*/
private
CellStyle
getBaseCellStyle
(
Workbook
workbook
)
{
CellStyle
style
=
workbook
.
createCellStyle
();
//下边框
style
.
setBorderBottom
(
BorderStyle
.
THIN
);
//左边框
style
.
setBorderLeft
(
BorderStyle
.
THIN
);
//上边框
style
.
setBorderTop
(
BorderStyle
.
THIN
);
//右边框
style
.
setBorderRight
(
BorderStyle
.
THIN
);
//水平居中
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
//上下居中
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
//设置自动换行
style
.
setWrapText
(
true
);
return
style
;
}
/**
* 字体样式
*
* @param size 字体大小
* @param isBold 是否加粗
* @return
*/
private
Font
getFont
(
Workbook
workbook
,
short
size
,
boolean
isBold
)
{
Font
font
=
workbook
.
createFont
();
//字体样式
//font.setFontName("宋体");
//是否加粗
font
.
setBold
(
isBold
);
//字体大小
//font.setFontHeightInPoints(size);
return
font
;
}
}
mongo-train/src/main/resources/application.yaml
0 → 100644
View file @
27eda5bf
spring
:
data
:
mongodb
:
uri
:
mongodb://admin:123456@8.140.52.63:27017/articledb?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false
\ No newline at end of file
mongo-train/src/test/java/com/liang/mongotrain/MongoTrainApplicationTests.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
;
import
com.liang.mongotrain.dao.MediaRepository
;
import
com.liang.mongotrain.dao.StaNewsRepository
;
import
com.liang.mongotrain.pojo.Media
;
import
com.liang.mongotrain.pojo.StaEventId
;
import
com.liang.mongotrain.pojo.StaNews
;
import
com.liang.mongotrain.service.MediaService
;
import
com.mongodb.client.result.UpdateResult
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.aggregation.Aggregation
;
import
org.springframework.data.mongodb.core.aggregation.AggregationResults
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
javax.xml.crypto.Data
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.regex.Pattern
;
@SpringBootTest
class
MongoTrainApplicationTests
{
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
MediaRepository
mediaRepository
;
@Autowired
private
MediaService
mediaService
;
@Autowired
private
StaNewsRepository
staNewsRepository
;
/**
* 相同eventId数据量统计,按数据量倒序排序
*/
@Test
public
void
testSearch1
(){
Aggregation
agg
=
Aggregation
.
newAggregation
(
Aggregation
.
group
(
"eventId"
).
first
(
"eventId"
).
as
(
"eventId"
).
count
().
as
(
"h"
),
Aggregation
.
sort
(
Sort
.
Direction
.
DESC
,
"h"
)
);
AggregationResults
<
Media
>
aggregate
=
mongoTemplate
.
aggregate
(
agg
,
Media
.
class
,
Media
.
class
);
for
(
Media
media
:
aggregate
)
{
System
.
out
.
println
(
media
);
}
}
/**
* 相同eventId的h字段求和,查询h总值最高前十个eventId
*/
@Test
public
void
testSearch2
(){
Aggregation
agg
=
Aggregation
.
newAggregation
(
Aggregation
.
group
(
"eventId"
).
first
(
"eventId"
).
as
(
"eventId"
).
sum
(
"h"
).
as
(
"count"
),
Aggregation
.
sort
(
Sort
.
Direction
.
DESC
,
"count"
),
Aggregation
.
limit
(
10
)
);
AggregationResults
<
StaEventId
>
aggregate
=
mongoTemplate
.
aggregate
(
agg
,
Media
.
class
,
StaEventId
.
class
);
for
(
StaEventId
staEventId
:
aggregate
)
{
System
.
out
.
println
(
staEventId
);
}
}
/**
* 针对指定eventId的source字段模糊查询,要求提供一个接口,查询source中包含该关键词search数据,
* 接口参数为(String eventId,String search)
*/
@Test
public
void
testSearch3
(){
List
<
String
>
eventIds
=
mongoTemplate
.
findDistinct
(
"eventId"
,
Media
.
class
,
String
.
class
);
for
(
String
eventId
:
eventIds
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"source"
).
regex
(
"^.*"
+
"a"
+
".*$"
));
List
<
Media
>
medias
=
mongoTemplate
.
find
(
query
,
Media
.
class
);
for
(
Media
media
:
medias
)
{
System
.
out
.
println
(
media
);
}
}
}
/**
* 若上述搜索参数search,查询的是title与content字段呢?(title字段为主,content为次,命中title排序在前,只命中content在后,要求可分页查询)接口参数(String eventId,String search,int page)
*/
@Test
public
void
testSearch4
(){
Query
query
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
"b7057b2464cbe86c10013609"
).
and
(
"title"
).
regex
(
"^.*"
+
"a"
+
".*$"
));
List
<
Media
>
medias
=
mongoTemplate
.
find
(
query
,
Media
.
class
);
for
(
Media
media
:
medias
)
{
System
.
out
.
println
(
media
);
}
}
@Test
public
void
testSearch5
(){
//Date end=new Date();
//LocalDateTime start= LocalDateTime.now().minusHours(8);
//Query query= Query.query(Criteria.where("eventId").is("b7057b2464cbe86c10013609").andOperator(Criteria.where("time").lt(end),Criteria.where("time").gte(start)));
//List<Media> medias = mongoTemplate.find(query, Media.class);
//for (Media media : medias) {
// System.out.println(media);
//}
}
@Test
public
void
testUpdate
(){
Query
query
=
Query
.
query
(
Criteria
.
where
(
"_id"
).
is
(
"1e0905280546d1e910006306_官宣,港珠澳大桥正式通车!哪家涂料参与其中?_涂料先锋网_1541122419000"
));
Update
update
=
new
Update
();
update
.
set
(
"h"
,
33
);
UpdateResult
updateResult
=
mongoTemplate
.
updateFirst
(
query
,
update
,
Media
.
class
);
System
.
out
.
println
(
updateResult
);
}
/**
* 增添一个新表,去重存放evetId,统计每个evetId的微信数据量与百度新闻数据量(pt字段区分)
*/
@Test
public
void
testAdd
(){
List
<
String
>
eventIds
=
mongoTemplate
.
findDistinct
(
"eventId"
,
Media
.
class
,
String
.
class
);
for
(
String
eventId
:
eventIds
)
{
Query
query1
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"微信"
));
Query
query2
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"百度新闻"
));
long
wechat
=
mongoTemplate
.
count
(
query1
,
Media
.
class
);
long
baidu
=
mongoTemplate
.
count
(
query2
,
Media
.
class
);
StaNews
staNews
=
new
StaNews
();
staNews
.
setEventId
(
eventId
);
staNews
.
setWechat
(
wechat
);
staNews
.
setBaidu
(
baidu
);
//System.out.println(staNews);
mongoTemplate
.
save
(
staNews
);
}
}
@Test
public
void
testlala
(){
//Query query1= Query.query(Criteria.where("eventId").is("daa9054b1a34209e10007292").and("pt").is("微信"));
//long wechat = mongoTemplate.count(query1, Media.class);
//System.out.println(wechat);
//String eventId="c5a5a2dbae58105310007514";
//Query query1= Query.query(Criteria.where("eventId").is(eventId).and("pt").is("微信"));
//Query query2= Query.query(Criteria.where("eventId").is(eventId).and("pt").is("百度新闻"));
//List<Media> wechat = mongoTemplate.find(query1, Media.class);
//List<Media> baidu = mongoTemplate.find(query2, Media.class);
//
//System.out.println(wechat);
//System.out.println("==========");
//System.out.println(baidu);
//new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(createTimeEnd)
List
<
String
>
eventIds
=
mongoTemplate
.
findDistinct
(
"eventId"
,
Media
.
class
,
String
.
class
);
String
index
=
null
;
for
(
String
eventId
:
eventIds
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"h"
).
gt
(
50
));
List
<
Media
>
medias
=
mongoTemplate
.
find
(
query
,
Media
.
class
);
for
(
Media
media
:
medias
)
{
System
.
out
.
println
(
media
.
getH
());
}
//index = mongoTemplate.getCollection("media")
// .createIndex(new Document("mark", "String"), new IndexOptions().background(false).name("idx_mark"));
}
}
}
mongo-train/src/test/java/com/liang/mongotrain/TestPOI.java
0 → 100644
View file @
27eda5bf
package
com
.
liang
.
mongotrain
;
import
cn.afterturn.easypoi.excel.ExcelExportUtil
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
cn.afterturn.easypoi.excel.entity.enmus.ExcelType
;
import
com.liang.mongotrain.dao.MediaRepository
;
import
com.liang.mongotrain.pojo.Media
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@SpringBootTest
public
class
TestPOI
{
@Autowired
private
MediaRepository
mediaRepository
;
@Autowired
private
MongoTemplate
mongoTemplate
;
@Test
public
void
testGetData
()
throws
Exception
{
String
eventId
=
"c5a5a2dbae58105310007514"
;
Query
query1
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"微信"
));
Query
query2
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"百度新闻"
));
List
<
Media
>
wechat
=
mongoTemplate
.
find
(
query1
.
limit
(
10
),
Media
.
class
);
List
<
Media
>
baidu
=
mongoTemplate
.
find
(
query2
.
limit
(
10
),
Media
.
class
);
//Query query= Query.query(Criteria.where("eventId").is("c5a5a2dbae58105310007514"));
//List<Media> list = mongoTemplate.find(query.limit(10), Media.class);
//for (Media media : list) {
// System.out.println(media);
//}
String
sheetName
=
eventId
;
Workbook
workbook
=
ExcelExportUtil
.
exportExcel
(
new
ExportParams
(
sheetName
,
sheetName
,
ExcelType
.
XSSF
),
Media
.
class
,
wechat
);
ExportParams
exportParams
=
new
ExportParams
(
"百度"
,
"百度"
,
ExcelType
.
XSSF
);
ExportParams
exportParams1
=
new
ExportParams
(
"微信"
,
"微信"
,
ExcelType
.
XSSF
);
List
<
Map
<
String
,
Object
>>
sheetsList
=
new
ArrayList
<>();
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
"C:\\Users\\Administrator\\Desktop\\"
+
sheetName
+
".xlsx"
);
workbook
.
write
(
fileOutputStream
);
fileOutputStream
.
close
();
workbook
.
close
();
}
@Test
public
void
testGetData2
(){
Workbook
workbook
=
null
;
try
{
String
eventId
=
"c5a5a2dbae58105310007514"
;
Query
query1
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"微信"
));
Query
query2
=
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
eventId
).
and
(
"pt"
).
is
(
"百度新闻"
));
List
<
Media
>
wechat
=
mongoTemplate
.
find
(
query1
.
limit
(
10
),
Media
.
class
);
List
<
Media
>
baidu
=
mongoTemplate
.
find
(
query2
.
limit
(
10
),
Media
.
class
);
ExportParams
exportParamswx
=
new
ExportParams
();
exportParamswx
.
setSheetName
(
"微信"
);
Map
<
String
,
Object
>
wechatmap
=
new
HashMap
<>();
wechatmap
.
put
(
"title"
,
exportParamswx
);
wechatmap
.
put
(
"entity"
,
Media
.
class
);
wechatmap
.
put
(
"data"
,
wechat
);
ExportParams
exportParamsbd
=
new
ExportParams
();
exportParamsbd
.
setSheetName
(
"百度新闻"
);
Map
<
String
,
Object
>
baidumap
=
new
HashMap
<>();
baidumap
.
put
(
"title"
,
exportParamsbd
);
baidumap
.
put
(
"entity"
,
Media
.
class
);
baidumap
.
put
(
"data"
,
baidu
);
//将sheet1、sheet2进行包装
List
<
Map
<
String
,
Object
>>
sheetsList
=
new
ArrayList
<>();
sheetsList
.
add
(
wechatmap
);
sheetsList
.
add
(
baidumap
);
//执行方法
workbook
=
ExcelExportUtil
.
exportExcel
(
sheetsList
,
ExcelType
.
HSSF
);
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
"C:\\Users\\Administrator\\Desktop\\"
+
"数据"
+
".xls"
);
workbook
.
write
(
fileOutputStream
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
finally
{
if
(
workbook
!=
null
)
{
try
{
workbook
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
mongo-train/target/classes/application.yaml
0 → 100644
View file @
27eda5bf
spring
:
data
:
mongodb
:
uri
:
mongodb://admin:123456@8.140.52.63:27017/articledb?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false
\ No newline at end of file
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