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
e021758c
Commit
e021758c
authored
Feb 02, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/humingsen02-02'
parents
9ae6a99f
19e4d50f
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
299 additions
and
10 deletions
+299
-10
src/main/java/cn/meteor/beyondclouds/modules/tag/api/TagApi.java
+76
-0
src/main/java/cn/meteor/beyondclouds/modules/tag/entity/Tag.java
+6
-2
src/main/java/cn/meteor/beyondclouds/modules/tag/enums/TagErrorCode.java
+33
-0
src/main/java/cn/meteor/beyondclouds/modules/tag/exception/TagServiceException.java
+23
-0
src/main/java/cn/meteor/beyondclouds/modules/tag/form/CreateTagForm.java
+26
-0
src/main/java/cn/meteor/beyondclouds/modules/tag/mapper/TagMapper.java
+7
-0
src/main/java/cn/meteor/beyondclouds/modules/tag/mapper/xml/TagMapper.xml
+8
-0
src/main/java/cn/meteor/beyondclouds/modules/tag/service/ITagService.java
+28
-0
src/main/java/cn/meteor/beyondclouds/modules/tag/service/impl/TagServiceImpl.java
+57
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/api/TopicApi.java
+15
-2
src/main/java/cn/meteor/beyondclouds/modules/topic/service/ITopicService.java
+2
-0
src/main/java/cn/meteor/beyondclouds/modules/topic/service/impl/TopicServiceImpl.java
+8
-0
src/main/resources/application-prod.yml
+5
-3
src/main/resources/application.yml
+5
-3
No files found.
src/main/java/cn/meteor/beyondclouds/modules/tag/api/TagApi.java
0 → 100644
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.vo.PageVO
;
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.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.tag.exception.TagServiceException
;
import
cn.meteor.beyondclouds.modules.tag.form.CreateTagForm
;
import
cn.meteor.beyondclouds.modules.tag.service.ITagService
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
java.util.List
;
/**
* @author 胡明森
* @since 2020/2/2
*/
@Api
(
tags
=
"标签Api"
)
@RestController
@RequestMapping
(
"/api"
)
public
class
TagApi
{
private
ITagService
tagService
;
@Autowired
public
void
setTagService
(
ITagService
tagService
)
{
this
.
tagService
=
tagService
;
}
@ApiOperation
(
"创建标签"
)
@PostMapping
(
"/tag"
)
public
Response
createTag
(
@RequestBody
@Valid
CreateTagForm
createTagForm
,
BindingResult
bindingResult
,
@CurrentSubject
Subject
subject
)
{
if
(
bindingResult
.
hasErrors
())
{
return
Response
.
fieldError
(
bindingResult
.
getFieldError
());
}
try
{
tagService
.
createTag
(
createTagForm
.
getTagName
(),
createTagForm
.
getTagType
(),
String
.
valueOf
(
subject
.
getId
()));
return
Response
.
success
();
}
catch
(
TagServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
@ApiOperation
(
"检索标签"
)
@GetMapping
(
"/tags/{keywords}"
)
public
Response
<
List
<
Tag
>>
searchTags
(
@PathVariable
(
"keywords"
)
String
keywords
)
{
List
<
Tag
>
tags
=
tagService
.
searchTags
(
keywords
);
return
Response
.
success
(
tags
);
}
@ApiOperation
(
"我创建的标签列表"
)
@GetMapping
(
"/my/tag/created"
)
public
Response
<
PageVO
<
Tag
>>
getMyTags
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
// 根据用户获取列表并返回
IPage
<
Tag
>
tag
=
tagService
.
getTagPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
PageVO
<
Tag
>
tagPageVO
=
new
PageVO
<>(
tag
);
return
Response
.
success
(
tagPageVO
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/tag/entity/Tag.java
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 标签表
...
...
@@ -29,6 +30,9 @@ public class Tag implements Serializable {
@TableId
(
value
=
"tag_id"
,
type
=
IdType
.
ASSIGN_UUID
)
private
String
tagId
;
@ApiModelProperty
(
value
=
"用户id"
)
private
String
userId
;
@ApiModelProperty
(
value
=
"标签名称"
)
private
String
tagName
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/tag/enums/TagErrorCode.java
0 → 100644
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
enums
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
/**
* 标签相关错误码
* @author 胡明森
*/
public
enum
TagErrorCode
implements
IErrorCode
{
/**
* 标签类型存在
*/
TAGTYPE_EXISTS
(
3001
,
"该标签存在"
),
TAGTYPE_NOT_EXISTS
(
3002
,
"该标签类型不存在"
);
TagErrorCode
(
long
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
private
long
code
;
private
String
msg
;
@Override
public
long
code
()
{
return
code
;
}
@Override
public
String
msg
()
{
return
msg
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/tag/exception/TagServiceException.java
0 → 100644
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
exception
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
import
cn.meteor.beyondclouds.core.exception.ServiceException
;
import
lombok.Data
;
/**
* 标签业务异常
* @author 胡明森
* @since 2020/2/2
*/
@Data
public
class
TagServiceException
extends
ServiceException
{
public
TagServiceException
(
long
errorCode
,
String
errorMsg
)
{
super
(
errorCode
,
errorMsg
);
}
public
TagServiceException
(
IErrorCode
errorCode
)
{
this
(
errorCode
.
code
(),
errorCode
.
msg
());
}
}
src/main/java/cn/meteor/beyondclouds/modules/tag/form/CreateTagForm.java
0 → 100644
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
form
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* @author 胡明森
* @since 2020/1/28
*/
@ApiModel
(
"创建标签表单"
)
@Data
public
class
CreateTagForm
{
@ApiModelProperty
(
"标签名称"
)
@NotEmpty
(
message
=
"标签名称不能为空"
)
private
String
tagName
;
@ApiModelProperty
(
"标签类型"
)
@NotNull
private
Integer
tagType
;
}
src/main/java/cn/meteor/beyondclouds/modules/tag/mapper/TagMapper.java
View file @
e021758c
...
...
@@ -2,6 +2,9 @@ package cn.meteor.beyondclouds.modules.tag.mapper;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
/**
* <p>
...
...
@@ -11,6 +14,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author 段启岩
* @since 2020-01-30
*/
@Component
public
interface
TagMapper
extends
BaseMapper
<
Tag
>
{
Tag
getTags
(
String
tagName
,
Integer
tagType
);
List
<
Tag
>
searchTags
(
String
keywords
);
}
src/main/java/cn/meteor/beyondclouds/modules/tag/mapper/xml/TagMapper.xml
View file @
e021758c
...
...
@@ -2,4 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.meteor.beyondclouds.modules.tag.mapper.TagMapper"
>
<select
id=
"getTags"
resultType=
"cn.meteor.beyondclouds.modules.tag.entity.Tag"
>
select * from tag where tag_name=#{tagName} and tag_type=#{tagType}
</select>
<select
id=
"searchTags"
resultType=
"cn.meteor.beyondclouds.modules.tag.entity.Tag"
>
select * from tag where tag_name like CONCAT('%',#{keywords},'%')
</select>
</mapper>
src/main/java/cn/meteor/beyondclouds/modules/tag/service/ITagService.java
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
service
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.tag.exception.TagServiceException
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
/**
* <p>
* 标签表 服务类
...
...
@@ -13,4 +17,28 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public
interface
ITagService
extends
IService
<
Tag
>
{
/**
* 创建标签
* @param tagName
* @param tagType
* @param userId
* @throws TagServiceException
*/
void
createTag
(
String
tagName
,
Integer
tagType
,
String
userId
)
throws
TagServiceException
;
/**
* 检索标签
* @param keywords
* @return
*/
List
<
Tag
>
searchTags
(
String
keywords
);
/**
* 我创建的标签列表
* @param pageNumber
* @param pageSize
* @param userId
* @return
*/
IPage
<
Tag
>
getTagPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
}
src/main/java/cn/meteor/beyondclouds/modules/tag/service/impl/TagServiceImpl.java
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
service
.
impl
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.tag.enums.TagErrorCode
;
import
cn.meteor.beyondclouds.modules.tag.exception.TagServiceException
;
import
cn.meteor.beyondclouds.modules.tag.mapper.TagMapper
;
import
cn.meteor.beyondclouds.modules.tag.service.ITagService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* <p>
* 标签表 服务实现类
...
...
@@ -17,4 +25,53 @@ import org.springframework.stereotype.Service;
@Service
public
class
TagServiceImpl
extends
ServiceImpl
<
TagMapper
,
Tag
>
implements
ITagService
{
//博客标签
private
static
final
long
TAGTYPE_0
=
0
;
//问题标签
private
static
final
long
TAGTYPE_2
=
2
;
//标签类型数量
private
static
final
long
TAGTYPE_NUMBER
=
2
;
private
TagMapper
tagMapper
;
@Autowired
public
void
setTagMapper
(
TagMapper
tagMapper
)
{
this
.
tagMapper
=
tagMapper
;
}
@Override
public
void
createTag
(
String
tagName
,
Integer
tagType
,
String
userId
)
throws
TagServiceException
{
//1. 判断标签类型是否正确
if
(
tagType
!=
TAGTYPE_0
&&
tagType
!=
TAGTYPE_2
)
{
throw
new
TagServiceException
(
TagErrorCode
.
TAGTYPE_NOT_EXISTS
);
}
//2. 判断是否存在该标签
Tag
tags
=
tagMapper
.
getTags
(
tagName
,
tagType
);
if
(
tags
!=
null
)
{
throw
new
TagServiceException
(
TagErrorCode
.
TAGTYPE_EXISTS
);
}
//3.储存标签
Tag
tag
=
new
Tag
();
tag
.
setUserId
(
userId
);
tag
.
setTagName
(
tagName
);
tag
.
setTagType
(
tagType
);
save
(
tag
);
}
@Override
public
List
<
Tag
>
searchTags
(
String
keywords
)
{
return
tagMapper
.
searchTags
(
keywords
);
}
@Override
public
IPage
<
Tag
>
getTagPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
IPage
<
Tag
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
QueryWrapper
<
Tag
>
tagQueryWrapper
=
new
QueryWrapper
<>();
tagQueryWrapper
.
eq
(
"user_id"
,
userId
);
return
page
(
page
,
tagQueryWrapper
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/topic/api/TopicApi.java
View file @
e021758c
...
...
@@ -2,7 +2,6 @@ package cn.meteor.beyondclouds.modules.topic.api;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.vo.PageVO
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.core.bean.Subject
;
...
...
@@ -74,7 +73,6 @@ public class TopicApi {
}
@Anonymous
@ApiOperation
(
"话题详情"
)
@GetMapping
(
"/topic/{topicId}"
)
public
Response
getTopic
(
@PathVariable
(
"topicId"
)
String
topicId
)
{
...
...
@@ -127,4 +125,19 @@ public class TopicApi {
return
Response
.
success
(
page
);
}
/**
* 我创建的话题列表
* @param pageForm
* @return
*/
@ApiOperation
(
"我的话题列表"
)
@GetMapping
(
"/my/topic/created"
)
public
Response
<
PageVO
<
Topic
>>
getMyTopics
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
// 根据用户获取列表并返回
IPage
<
Topic
>
topicPage
=
topicService
.
getProjectPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
PageVO
<
Topic
>
topicPageVO
=
new
PageVO
<>(
topicPage
);
return
Response
.
success
(
topicPageVO
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/topic/service/ITopicService.java
View file @
e021758c
...
...
@@ -63,4 +63,6 @@ public interface ITopicService extends IService<Topic> {
* @return
*/
IPage
<
User
>
getTopicsFollower
(
Integer
page
,
Integer
size
,
String
topicId
);
IPage
<
Topic
>
getProjectPage
(
Integer
page
,
Integer
size
,
String
userId
);
}
src/main/java/cn/meteor/beyondclouds/modules/topic/service/impl/TopicServiceImpl.java
View file @
e021758c
...
...
@@ -175,5 +175,13 @@ public class TopicServiceImpl extends ServiceImpl<TopicMapper, Topic> implements
return
userPage
;
}
@Override
public
IPage
<
Topic
>
getProjectPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
IPage
<
Topic
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
QueryWrapper
<
Topic
>
topicQueryWrapper
=
new
QueryWrapper
<>();
topicQueryWrapper
.
eq
(
"user_id"
,
userId
);
return
page
(
page
,
topicQueryWrapper
);
}
}
src/main/resources/application-prod.yml
View file @
e021758c
...
...
@@ -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&allowPublicKeyRetrieval=true
username
:
root
password
:
197442
password
:
password
swagger
:
enable
:
true
...
...
@@ -32,4 +32,6 @@ beyondclouds:
qq
:
client-id
:
101846021
client-secret
:
5bc41deeb7e152e2e6aff97726bbf86a
redirect-uri
:
http://meteor.natapp1.cc/auth/qq
\ No newline at end of file
redirect-uri
:
http://meteor.natapp1.cc/auth/qq
server
:
port
:
8081
\ No newline at end of file
src/main/resources/application.yml
View file @
e021758c
...
...
@@ -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&allowPublicKeyRetrieval=true
username
:
root
password
:
100Centa30821%mysql
password
:
password
swagger
:
enable
:
true
...
...
@@ -32,4 +32,6 @@ beyondclouds:
qq
:
client-id
:
101846021
client-secret
:
5bc41deeb7e152e2e6aff97726bbf86a
redirect-uri
:
http://meteor.natapp1.cc/auth/qq
\ No newline at end of file
redirect-uri
:
http://meteor.natapp1.cc/auth/qq
server
:
port
:
8081
\ 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