Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
段启岩
beyond-clouds
Commits
176bc860
Commit
176bc860
authored
Jan 31, 2020
by
胡明森
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
topicApi1.0
parent
c5372948
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
227 additions
and
1 deletions
+227
-1
src/main/java/cn/meteor/beyondclouds/modules/topic/api/TopicApi.java
+71
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/bean/TopicResult.java
+33
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/form/CreateTopicForm.java
+33
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/form/PageForm.java
+25
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/mapper/TopicMapper.java
+9
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/mapper/xml/TopicMapper.xml
+3
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/service/ITopicService.java
+17
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/service/impl/TopicServiceImpl.java
+35
-0
src/main/resources/application.yml
+1
-1
No files found.
src/main/java/cn/meteor/beyondclouds/modules/topic/api/TopicApi.java
0 → 100644
View file @
176bc860
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
api
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.core.bean.Subject
;
import
cn.meteor.beyondclouds.modules.topic.bean.TopicResult
;
import
cn.meteor.beyondclouds.modules.topic.entity.Topic
;
import
cn.meteor.beyondclouds.modules.topic.form.CreateTopicForm
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicService
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.validation.Valid
;
/**
* @author 胡明森
* @since 2020/1/28
*/
@Api
(
tags
=
"话题Api"
)
@RestController
@RequestMapping
(
"/api"
)
public
class
TopicApi
{
private
ITopicService
iTopicService
;
@Autowired
public
void
setiTopicService
(
ITopicService
iTopicService
)
{
this
.
iTopicService
=
iTopicService
;
}
@ApiOperation
(
"创建话题"
)
@PostMapping
(
"/topic"
)
public
Response
createTopic
(
@RequestBody
@Valid
CreateTopicForm
createTopicForm
,
@CurrentSubject
Subject
subject
){
iTopicService
.
createTopic
(
String
.
valueOf
(
subject
.
getId
()),
createTopicForm
.
getTopicName
(),
createTopicForm
.
getTopicIcon
(),
createTopicForm
.
getCover
(),
createTopicForm
.
getTopicDescrption
(),
createTopicForm
.
getReferenceCount
());
return
Response
.
success
();
}
@ApiOperation
(
"话题列表"
)
@GetMapping
(
"/topics"
)
public
Response
topics
(
@Valid
HttpServletRequest
request
)
{
int
pageNo
=
Integer
.
parseInt
(
request
.
getParameter
(
"page"
));
int
pageSize
=
Integer
.
parseInt
(
request
.
getParameter
(
"size"
));
IPage
<
Topic
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
return
Response
.
success
(
iTopicService
.
page
(
page
));
}
@ApiOperation
(
"检索话题"
)
@GetMapping
(
"/topics/{keywords}"
)
public
Response
searchTopics
(
@PathVariable
(
"keywords"
)
@Valid
String
keywords
)
{
TopicResult
topicResult
=
iTopicService
.
searchTopics
(
keywords
);
return
Response
.
success
(
topicResult
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/topic/bean/TopicResult.java
0 → 100644
View file @
176bc860
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
bean
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author 胡明森
* @since 2020/1/31
*/
@Data
@ApiModel
(
"话题返回结果"
)
public
class
TopicResult
{
@ApiModelProperty
(
value
=
"话题创建者ID"
)
private
String
userId
;
@ApiModelProperty
(
value
=
"话题名称"
)
private
String
topicName
;
@ApiModelProperty
(
value
=
"话题图标"
)
private
String
topicIcon
;
@ApiModelProperty
(
value
=
"封面图"
)
private
String
cover
;
@ApiModelProperty
(
value
=
"话题描述"
)
private
String
topicDescrption
;
@ApiModelProperty
(
value
=
"被引用次数"
)
private
Integer
referenceCount
;
}
src/main/java/cn/meteor/beyondclouds/modules/topic/form/CreateTopicForm.java
0 → 100644
View file @
176bc860
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
form
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
/**
* @author 胡明森
* @since 2020/1/28
*/
@ApiModel
(
"创建话题表单"
)
@Data
public
class
CreateTopicForm
{
@ApiModelProperty
(
"话题名称"
)
@NotEmpty
(
message
=
"话题名称不能为空"
)
private
String
topicName
;
@ApiModelProperty
(
"话题图标"
)
private
String
topicIcon
;
@ApiModelProperty
(
"封面图"
)
private
String
cover
;
@ApiModelProperty
(
"话题描述"
)
private
String
topicDescrption
;
@ApiModelProperty
(
"话题被引用的次数"
)
private
int
referenceCount
;
}
src/main/java/cn/meteor/beyondclouds/modules/topic/form/PageForm.java
0 → 100644
View file @
176bc860
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
form
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
/**
* @author 胡明森
* @since 2020/1/31
*/
@ApiModel
(
"分页参数表单"
)
@Data
public
class
PageForm
{
@ApiModelProperty
(
"页数"
)
@NotEmpty
(
message
=
"页数不能为空"
)
private
int
pageNo
;
@ApiModelProperty
(
"页容量"
)
@NotEmpty
(
message
=
"页容量不能为空"
)
private
int
pageSize
;
}
src/main/java/cn/meteor/beyondclouds/modules/topic/mapper/TopicMapper.java
View file @
176bc860
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
mapper
;
import
cn.meteor.beyondclouds.modules.topic.bean.TopicResult
;
import
cn.meteor.beyondclouds.modules.topic.entity.Topic
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Component
;
/**
* <p>
...
...
@@ -11,6 +13,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author 段启岩
* @since 2020-01-30
*/
@Component
public
interface
TopicMapper
extends
BaseMapper
<
Topic
>
{
/**
* 检索话题
* @param keywords
* @return
*/
TopicResult
searchTopics
(
String
keywords
);
}
src/main/java/cn/meteor/beyondclouds/modules/topic/mapper/xml/TopicMapper.xml
View file @
176bc860
...
...
@@ -2,4 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.meteor.beyondclouds.modules.topic.mapper.TopicMapper"
>
<select
id=
"searchTopics"
resultType=
"cn.meteor.beyondclouds.modules.topic.bean.TopicResult"
>
select * from topic where topic_name like CONCAT('%',#{keywords},'%')
</select>
</mapper>
src/main/java/cn/meteor/beyondclouds/modules/topic/service/ITopicService.java
View file @
176bc860
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
service
;
import
cn.meteor.beyondclouds.modules.topic.bean.TopicResult
;
import
cn.meteor.beyondclouds.modules.topic.entity.Topic
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
...
@@ -13,4 +14,20 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public
interface
ITopicService
extends
IService
<
Topic
>
{
/**
* 创建话题
* @param id
* @param topicName
* @param topicIcon
* @param cover
* @param topicDescrption
* @param referenceCount
*/
void
createTopic
(
String
id
,
String
topicName
,
String
topicIcon
,
String
cover
,
String
topicDescrption
,
int
referenceCount
);
/**
* 检索话题
* @param keywords
*/
TopicResult
searchTopics
(
String
keywords
);
}
src/main/java/cn/meteor/beyondclouds/modules/topic/service/impl/TopicServiceImpl.java
View file @
176bc860
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
service
.
impl
;
import
cn.meteor.beyondclouds.modules.topic.bean.TopicResult
;
import
cn.meteor.beyondclouds.modules.topic.entity.Topic
;
import
cn.meteor.beyondclouds.modules.topic.mapper.TopicMapper
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
...
...
@@ -17,4 +19,37 @@ import org.springframework.stereotype.Service;
@Service
public
class
TopicServiceImpl
extends
ServiceImpl
<
TopicMapper
,
Topic
>
implements
ITopicService
{
private
TopicMapper
topicMapper
;
private
ITopicService
iTopicService
;
@Autowired
public
void
setTopicMapper
(
TopicMapper
topicMapper
)
{
this
.
topicMapper
=
topicMapper
;
}
@Autowired
public
void
setiTopicService
(
ITopicService
iTopicService
)
{
this
.
iTopicService
=
iTopicService
;
}
@Override
public
void
createTopic
(
String
id
,
String
topicName
,
String
topicIcon
,
String
cover
,
String
topicDescrption
,
int
referenceCount
)
{
//1. 创建话题
Topic
topic
=
new
Topic
();
topic
.
setUserId
(
id
);
topic
.
setTopicName
(
topicName
);
topic
.
setTopicIcon
(
topicIcon
);
topic
.
setCover
(
cover
);
topic
.
setTopicDescrption
(
topicDescrption
);
iTopicService
.
save
(
topic
);
}
@Override
public
TopicResult
searchTopics
(
String
keywords
)
{
return
topicMapper
.
searchTopics
(
keywords
);
}
}
src/main/resources/application.yml
View file @
176bc860
...
...
@@ -3,7 +3,7 @@ spring:
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://127.0.0.1:3306/beyond_clouds?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username
:
root
password
:
100Centa30821%mysql
password
:
password
swagger
:
enable
:
true
...
...
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