Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
A
Afrishop refactored project
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Whispa
Afrishop refactored project
Commits
d4c2a5a0
提交
d4c2a5a0
authored
11月 23, 2020
作者:
Whispa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
commit commit
上级
d3e9fa05
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
130 行增加
和
7 行删除
+130
-7
ItemLikeController.java
...m/example/afrishop_v3/controllers/ItemLikeController.java
+53
-0
ShopifyController.java
...om/example/afrishop_v3/controllers/ShopifyController.java
+20
-7
CommentCount.java
...java/com/example/afrishop_v3/inter_face/CommentCount.java
+8
-0
TbCfItemComment.java
.../java/com/example/afrishop_v3/models/TbCfItemComment.java
+4
-0
TbCfItemLike.java
...ain/java/com/example/afrishop_v3/models/TbCfItemLike.java
+28
-0
TbCfItemCommentRepository.java
...ple/afrishop_v3/repository/TbCfItemCommentRepository.java
+6
-0
TbCfItemLikeRepository.java
...xample/afrishop_v3/repository/TbCfItemLikeRepository.java
+11
-0
没有找到文件。
src/main/java/com/example/afrishop_v3/controllers/ItemLikeController.java
0 → 100644
浏览文件 @
d4c2a5a0
package
com
.
example
.
afrishop_v3
.
controllers
;
import
com.example.afrishop_v3.base.Result
;
import
com.example.afrishop_v3.enums.ResultCodeEnum
;
import
com.example.afrishop_v3.models.TbCfItemComment
;
import
com.example.afrishop_v3.models.TbCfItemLike
;
import
com.example.afrishop_v3.models.TbCfUserInfo
;
import
com.example.afrishop_v3.repository.TbCfItemCommentRepository
;
import
com.example.afrishop_v3.repository.TbCfItemLikeRepository
;
import
com.example.afrishop_v3.security.services.AuthenticationUser
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Optional
;
@RestController
@RequestMapping
(
"item_like"
)
public
class
ItemLikeController
{
private
final
TbCfItemLikeRepository
repository
;
private
final
TbCfItemCommentRepository
commentRepository
;
private
final
AuthenticationUser
user
;
public
ItemLikeController
(
TbCfItemLikeRepository
repository
,
TbCfItemCommentRepository
commentRepository
,
AuthenticationUser
user
)
{
this
.
repository
=
repository
;
this
.
commentRepository
=
commentRepository
;
this
.
user
=
user
;
}
@PutMapping
(
"like/{comment_id}"
)
public
Result
likeComment
(
@PathVariable
(
"comment_id"
)
String
commentId
){
Optional
<
TbCfItemComment
>
commentOptional
=
commentRepository
.
findById
(
commentId
);
if
(
!
commentOptional
.
isPresent
()
)
return
new
Result
(
ResultCodeEnum
.
VALIDATE_ERROR
.
getCode
(),
"Item comment not found !"
);
TbCfUserInfo
user
=
this
.
user
.
user
();
String
userId
=
user
.
getUserId
();
boolean
exists
=
repository
.
existsByCommentIdAndUserUserId
(
commentId
,
userId
);
if
(
exists
){
repository
.
deleteAllByCommentIdAndUserUserId
(
commentId
,
userId
);
return
new
Result
<>(
false
,
"Comment disliked"
);
}
TbCfItemLike
itemLike
=
new
TbCfItemLike
();
itemLike
.
setUser
(
user
);
itemLike
.
setComment
(
commentOptional
.
get
());
repository
.
save
(
itemLike
);
return
new
Result
<>(
true
,
"Comment liked"
);
}
}
src/main/java/com/example/afrishop_v3/controllers/ShopifyController.java
浏览文件 @
d4c2a5a0
package
com
.
example
.
afrishop_v3
.
controllers
;
import
com.example.afrishop_v3.base.Result
;
import
com.example.afrishop_v3.inter_face.CommentCount
;
import
com.example.afrishop_v3.models.TbCfItemComment
;
import
com.example.afrishop_v3.models.TbCfUserInfo
;
import
com.example.afrishop_v3.repository.TbCfItemCommentRepository
;
import
com.example.afrishop_v3.repository.UserRepository
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
...
...
@@ -11,15 +14,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.
List
;
import
java.util.
Optional
;
@RestController
@RequestMapping
(
"shopify"
)
public
class
ShopifyController
{
private
final
TbCfItemCommentRepository
repository
;
private
final
UserRepository
userRepository
;
public
ShopifyController
(
TbCfItemCommentRepository
repository
)
{
public
ShopifyController
(
TbCfItemCommentRepository
repository
,
UserRepository
userRepository
)
{
this
.
repository
=
repository
;
this
.
userRepository
=
userRepository
;
}
@GetMapping
(
"/querycomments"
)
...
...
@@ -27,11 +32,19 @@ public class ShopifyController {
@RequestParam
(
value
=
"pageNum"
,
defaultValue
=
"0"
)
Integer
pageNum
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
value
=
"userId"
,
required
=
false
)
String
userId
)
{
Page
<
TbCfItemComment
>
list
=
repository
.
findAllByItemId
(
itemId
,
PageRequest
.
of
(
pageNum
,
pageSize
));
// List<TbCfItemComment> content = list.getContent();
// for (TbCfItemComment item : content){
// if(StringUtils.isNotBlank(userId)) item.setLike(repository.existsByUserUserIdAndItemId(userId,itemId));
// }
PageRequest
request
=
PageRequest
.
of
(
pageNum
,
pageSize
);
if
(
StringUtils
.
isNotBlank
(
userId
)
){
Optional
<
TbCfUserInfo
>
userOptional
=
userRepository
.
findById
(
userId
);
if
(
userOptional
.
isPresent
()
){
TbCfUserInfo
user
=
userOptional
.
get
();
Page
<
CommentCount
>
page
=
repository
.
findAllByItemIdAndUser
(
itemId
,
user
,
request
);
page
.
getContent
().
forEach
(
v
->
v
.
getItemComment
().
setLike
(
v
.
getCommented
()
!=
null
&&
v
.
getCommented
()
>
0
));
Page
<
TbCfItemComment
>
map
=
page
.
map
(
CommentCount:
:
getItemComment
);
return
new
Result
<>(
map
);
}
}
Page
<
TbCfItemComment
>
list
=
repository
.
findAllByItemId
(
itemId
,
request
);
return
new
Result
<>(
list
);
}
}
src/main/java/com/example/afrishop_v3/inter_face/CommentCount.java
0 → 100644
浏览文件 @
d4c2a5a0
package
com
.
example
.
afrishop_v3
.
inter_face
;
import
com.example.afrishop_v3.models.TbCfItemComment
;
public
interface
CommentCount
{
public
Integer
getCommented
();
public
TbCfItemComment
getItemComment
();
}
src/main/java/com/example/afrishop_v3/models/TbCfItemComment.java
浏览文件 @
d4c2a5a0
...
...
@@ -2,6 +2,7 @@ package com.example.afrishop_v3.models;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Data
;
import
org.hibernate.annotations.Formula
;
import
javax.persistence.*
;
import
java.io.Serializable
;
...
...
@@ -95,6 +96,9 @@ public class TbCfItemComment{
@Transient
private
boolean
isLike
;
@Formula
(
value
=
"(SELECT IFNULL(COUNT(*),0) as num FROM tb_cf_item_like lk where lk.comment_id = id)"
)
private
Integer
likeCount
;
public
boolean
isLike
()
{
return
isLike
;
}
...
...
src/main/java/com/example/afrishop_v3/models/TbCfItemLike.java
0 → 100644
浏览文件 @
d4c2a5a0
package
com
.
example
.
afrishop_v3
.
models
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.ManyToOne
;
@Entity
@Data
public
class
TbCfItemLike
extends
Model
{
@Column
(
columnDefinition
=
"comment_id"
,
name
=
"comment_id"
)
@ManyToOne
private
TbCfItemComment
comment
;
@Column
(
columnDefinition
=
"user_id"
,
name
=
"user_id"
)
@ManyToOne
private
TbCfUserInfo
user
;
public
void
setUser
(
TbCfUserInfo
user
)
{
this
.
user
=
user
;
}
public
void
setComment
(
TbCfItemComment
comment
)
{
this
.
comment
=
comment
;
}
}
src/main/java/com/example/afrishop_v3/repository/TbCfItemCommentRepository.java
浏览文件 @
d4c2a5a0
package
com
.
example
.
afrishop_v3
.
repository
;
import
com.example.afrishop_v3.inter_face.CommentCount
;
import
com.example.afrishop_v3.models.TbCfItemComment
;
import
com.example.afrishop_v3.models.TbCfUserInfo
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.data.repository.query.Param
;
public
interface
TbCfItemCommentRepository
extends
PagingAndSortingRepository
<
TbCfItemComment
,
String
>
{
boolean
existsByUserUserIdAndItemId
(
String
userId
,
String
itemId
);
Page
<
TbCfItemComment
>
findAllByItemId
(
String
itemId
,
Pageable
pageable
);
@Query
(
"select a as itemComment, count(x) as commented from #{#entityName} a left join TbCfItemLike x on a.id=x.commentId and x.user=:user where a.itemId=:itemId group by a"
)
Page
<
CommentCount
>
findAllByItemIdAndUser
(
@Param
(
"itemId"
)
String
itemId
,
@Param
(
"user"
)
TbCfUserInfo
user
,
Pageable
pageable
);
}
src/main/java/com/example/afrishop_v3/repository/TbCfItemLikeRepository.java
0 → 100644
浏览文件 @
d4c2a5a0
package
com
.
example
.
afrishop_v3
.
repository
;
import
com.example.afrishop_v3.models.TbCfItemLike
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.transaction.annotation.Transactional
;
public
interface
TbCfItemLikeRepository
extends
PagingAndSortingRepository
<
TbCfItemLike
,
String
>
{
boolean
existsByCommentIdAndUserUserId
(
String
comment_id
,
String
user_userId
);
@Transactional
void
deleteAllByCommentIdAndUserUserId
(
String
comment_id
,
String
user_userId
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论