Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
ims-ci-test
Commits
7bd5136f
提交
7bd5136f
authored
7月 13, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
动态审核
上级
226e4486
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
329 行增加
和
377 行删除
+329
-377
UserAccountSimpleDTO.java
...java/com/mmc/csf/infomation/dto/UserAccountSimpleDTO.java
+2
-0
ResultEnum.java
...src/main/java/com/mmc/csf/common/util/web/ResultEnum.java
+1
-1
DynamicController.java
...ava/com/mmc/csf/release/controller/DynamicController.java
+1
-19
WxApiController.java
.../java/com/mmc/csf/release/controller/WxApiController.java
+0
-40
DynamicDAO.java
...ice/src/main/java/com/mmc/csf/release/dao/DynamicDAO.java
+129
-127
ForumDynamicDO.java
...java/com/mmc/csf/release/entity/forum/ForumDynamicDO.java
+71
-51
DynamicService.java
...main/java/com/mmc/csf/release/service/DynamicService.java
+44
-45
WxApiService.java
...c/main/java/com/mmc/csf/release/service/WxApiService.java
+0
-6
DynamicServiceImpl.java
.../com/mmc/csf/release/service/impl/DynamicServiceImpl.java
+53
-19
WxApiServiceImpl.java
...va/com/mmc/csf/release/service/impl/WxApiServiceImpl.java
+4
-63
DynamicMapper.xml
...service/src/main/resources/mapper/forum/DynamicMapper.xml
+24
-6
没有找到文件。
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/dto/UserAccountSimpleDTO.java
浏览文件 @
7bd5136f
...
...
@@ -34,6 +34,8 @@ public class UserAccountSimpleDTO implements Serializable {
private
String
nickName
;
@ApiModelProperty
(
value
=
"用户头像"
)
private
String
userImg
;
@ApiModelProperty
(
value
=
"openid"
)
private
String
openid
;
@ApiModelProperty
(
value
=
"用户性别:0未知、1男、2女"
)
private
Integer
userSex
;
@ApiModelProperty
(
value
=
"用户邮箱"
)
...
...
csf-common/csf-common-util/src/main/java/com/mmc/csf/common/util/web/ResultEnum.java
浏览文件 @
7bd5136f
...
...
@@ -402,7 +402,7 @@ public enum ResultEnum implements BaseErrorInfoInterface {
INDUSTRY_NEWS_TITLE_EXISTS
(
"40200"
,
"文章标题存在"
),
// 论坛
DYNAMIC_SENSITIVE_INFO
(
"50100"
,
"发布
信息
涉及敏感信息!"
);
DYNAMIC_SENSITIVE_INFO
(
"50100"
,
"发布
内容
涉及敏感信息!"
);
/**
* 错误码
*
...
...
release-service/src/main/java/com/mmc/csf/release/controller/DynamicController.java
浏览文件 @
7bd5136f
...
...
@@ -4,7 +4,6 @@ import com.mmc.csf.common.util.web.ResultBody;
import
com.mmc.csf.release.forum.vo.CommentVO
;
import
com.mmc.csf.release.forum.vo.DynamicVO
;
import
com.mmc.csf.release.service.DynamicService
;
import
com.mmc.csf.release.service.WxApiService
;
import
io.swagger.annotations.*
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -22,30 +21,13 @@ public class DynamicController extends BaseController {
@Resource
private
DynamicService
dynamicService
;
@Resource
private
WxApiService
wxApiService
;
@ApiOperation
(
value
=
"动态发布"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/publish"
)
public
ResultBody
publishDynamic
(
@RequestBody
DynamicVO
dynamicVO
,
HttpServletRequest
request
)
{
return
dynamicService
.
insertDynamic
(
dynamicVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
// @ApiOperation(value = "内容test")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @GetMapping("/test")
// public ResultBody publishDynamic(@RequestParam String content, HttpServletRequest request) {
// return wxApiService.msgSecCheck("ohQPS5Ca4K6mY4Eju6Vsev096SxM", content);
// }
@ApiOperation
(
value
=
"test"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"/test/te"
)
public
String
publishDynamic
(
String
content
)
{
System
.
out
.
println
(
content
);
return
"success"
;
dynamicVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
request
);
}
@ApiOperation
(
value
=
"点赞或取消点赞"
)
...
...
release-service/src/main/java/com/mmc/csf/release/controller/WxApiController.java
deleted
100644 → 0
浏览文件 @
226e4486
package
com
.
mmc
.
csf
.
release
.
controller
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.release.service.WxApiService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.Map
;
/**
* @Author LW
* @date 2023/7/12 17:32
* 概要:
*/
@Api
(
tags
=
{
"wx-api"
})
@RestController
@RequestMapping
(
"/wechat"
)
public
class
WxApiController
{
@Resource
WxApiService
wxApiService
;
/**
* 正确响应微信发送的Token验证,注意 这里是 get请求
*/
@PostMapping
(
"/checkSignature"
)
@ApiOperation
(
value
=
"校验签名"
)
public
String
verifyUrl
(
Map
<
String
,
String
>
params
)
throws
Exception
{
return
wxApiService
.
checkSignature
(
params
);
}
@PostMapping
(
"/mediaCheckAsync"
)
@ApiOperation
(
value
=
"媒体资源安全检查"
)
public
ResultBody
mediaCheckAsync
(
String
mediaUrl
)
{
return
wxApiService
.
mediaCheckAsync
(
"ohQPS5Ca4K6mY4Eju6Vsev096SxM"
,
mediaUrl
);
}
}
release-service/src/main/java/com/mmc/csf/release/dao/DynamicDAO.java
浏览文件 @
7bd5136f
...
...
@@ -10,136 +10,138 @@ import java.util.List;
/**
* @Author LW
*
* @date 2023/5/15 10:29 概要:动态信息数据访问层
*/
@Mapper
public
interface
DynamicDAO
{
/**
* 插入动态
*
* @param forumDynamicDO 论坛动态信息
* @return {@link ForumDynamicDO}
*/
void
insertDynamic
(
ForumDynamicDO
forumDynamicDO
);
/**
* 插入图片
*
* @param dynamicId 动态id
* @param url url
*/
void
insertPicture
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"url"
)
String
url
);
/**
* 插入视频
*
* @param dynamicId 动态id
* @param videoUrl 视频网址
*/
void
insertVideo
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"videoUrl"
)
String
videoUrl
);
/**
* 更新动态点赞数量
*
* @param dynamicId 动态id
* @param version version
*/
void
updateDynamicLikeCount
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"version"
)
Integer
version
);
/**
* 得到动态信息
*
* @param dynamicId 动态id
* @return {@link ForumDynamicDO}
*/
ForumDynamicDO
getDynamicInfo
(
Integer
dynamicId
);
/**
* 动态点赞数减
*
* @param dynamicId 动态id
* @param version version
*/
void
updateSubDynamicLikeCount
(
Integer
dynamicId
,
Integer
version
);
/**
* 更新动态评论数
*
* @param dynamicId 动态id
* @param version version
*/
void
updateDynamicCommentCount
(
Integer
dynamicId
,
Integer
version
);
/**
* 动态列表计数
*
* @return int
*/
int
countDynamicList
();
/**
* 动态列表
*
* @param itemIndex 项指数
* @param pageSize 页面大小
* @return {@link List}<{@link ForumDynamicDO}>
*/
List
<
ForumDynamicDO
>
dynamicList
(
int
itemIndex
,
Integer
pageSize
);
/**
* 列表动态图片
*
* @param ids id
* @return {@link List}<{@link ForumResourceDO}>
*/
List
<
ForumResourceDO
>
listDynamicPicture
(
List
<
Integer
>
ids
);
/**
* 动态视频列表
*
* @param ids id
* @return {@link List}<{@link ForumVideoDO}>
*/
List
<
ForumVideoDO
>
listDynamicVideo
(
List
<
Integer
>
ids
);
/**
* 动态图片
*
* @param dynamicId 动态id
* @return {@link List}<{@link ForumResourceDO}>
*/
List
<
ForumResourceDO
>
dynamicPicture
(
Integer
dynamicId
);
/**
* 动态视频
*
* @param dynamicId 动态id
* @return {@link ForumVideoDO}
*/
ForumVideoDO
dynamicVideo
(
Integer
dynamicId
);
void
insertResource
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"type"
)
int
type
,
@Param
(
"url"
)
String
url
);
List
<
ForumResourceDO
>
listDynamicResources
(
Integer
dynamicId
);
List
<
ForumDynamicDO
>
getDynamicComment
(
String
dynamicId
);
void
deleteDynamic
(
Integer
dynamicId
);
void
hiddenDynamic
(
Integer
dynamicId
);
List
<
ForumDynamicDO
>
listDynamicByUserId
(
Integer
id
);
void
batchDeleteDynamic
(
List
<
Integer
>
dynamicIds
);
/**
* 查询动态详情
* @param dynamicId
* @return
*/
ForumDynamicDO
getDynamicInfoById
(
Integer
dynamicId
);
/**
* 插入动态
*
* @param forumDynamicDO 论坛动态信息
* @return {@link ForumDynamicDO}
*/
void
insertDynamic
(
ForumDynamicDO
forumDynamicDO
);
/**
* 插入图片
*
* @param dynamicId 动态id
* @param url url
*/
void
insertPicture
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"url"
)
String
url
);
/**
* 插入视频
*
* @param dynamicId 动态id
* @param videoUrl 视频网址
*/
void
insertVideo
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"videoUrl"
)
String
videoUrl
);
/**
* 更新动态点赞数量
*
* @param dynamicId 动态id
* @param version version
*/
void
updateDynamicLikeCount
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"version"
)
Integer
version
);
/**
* 得到动态信息
*
* @param dynamicId 动态id
* @return {@link ForumDynamicDO}
*/
ForumDynamicDO
getDynamicInfo
(
Integer
dynamicId
);
/**
* 动态点赞数减
*
* @param dynamicId 动态id
* @param version version
*/
void
updateSubDynamicLikeCount
(
Integer
dynamicId
,
Integer
version
);
/**
* 更新动态评论数
*
* @param dynamicId 动态id
* @param version version
*/
void
updateDynamicCommentCount
(
Integer
dynamicId
,
Integer
version
);
/**
* 动态列表计数
*
* @return int
*/
int
countDynamicList
();
/**
* 动态列表
*
* @param itemIndex 项指数
* @param pageSize 页面大小
* @return {@link List}<{@link ForumDynamicDO}>
*/
List
<
ForumDynamicDO
>
dynamicList
(
int
itemIndex
,
Integer
pageSize
);
/**
* 列表动态图片
*
* @param ids id
* @return {@link List}<{@link ForumResourceDO}>
*/
List
<
ForumResourceDO
>
listDynamicPicture
(
List
<
Integer
>
ids
);
/**
* 动态视频列表
*
* @param ids id
* @return {@link List}<{@link ForumVideoDO}>
*/
List
<
ForumVideoDO
>
listDynamicVideo
(
List
<
Integer
>
ids
);
/**
* 动态图片
*
* @param dynamicId 动态id
* @return {@link List}<{@link ForumResourceDO}>
*/
List
<
ForumResourceDO
>
dynamicPicture
(
Integer
dynamicId
);
/**
* 动态视频
*
* @param dynamicId 动态id
* @return {@link ForumVideoDO}
*/
ForumVideoDO
dynamicVideo
(
Integer
dynamicId
);
void
insertResource
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"type"
)
int
type
,
@Param
(
"url"
)
String
url
);
List
<
ForumResourceDO
>
listDynamicResources
(
Integer
dynamicId
);
List
<
ForumDynamicDO
>
getDynamicComment
(
String
dynamicId
);
void
deleteDynamic
(
Integer
dynamicId
);
void
hiddenDynamic
(
Integer
dynamicId
);
List
<
ForumDynamicDO
>
listDynamicByUserId
(
Integer
id
);
void
batchDeleteDynamic
(
List
<
Integer
>
dynamicIds
);
/**
* 查询动态详情
*
* @param dynamicId
* @return
*/
ForumDynamicDO
getDynamicInfoById
(
Integer
dynamicId
);
List
<
ForumDynamicDO
>
firstTwoItemsComment
(
List
<
Integer
>
ids
);
}
release-service/src/main/java/com/mmc/csf/release/entity/forum/ForumDynamicDO.java
浏览文件 @
7bd5136f
...
...
@@ -22,59 +22,79 @@ import java.math.BigDecimal;
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
class
ForumDynamicDO
extends
BaseDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
570379773690905364L
;
/** 版本字段 */
private
Integer
version
;
/** 发布用户ID */
private
Integer
userAccountId
;
/** 动态描述 */
private
String
description
;
/** 发布动态具体位置 */
private
String
location
;
/** 发布动态纬度 */
private
BigDecimal
lat
;
/** 发布动态经度 */
private
BigDecimal
lon
;
/** 点赞数 */
private
Integer
likesCount
;
/** 评论数 */
private
Integer
commentsCount
;
/** 记录父节点id */
private
String
rootPath
;
private
static
final
long
serialVersionUID
=
570379773690905364L
;
/**
* 版本字段
*/
private
Integer
version
;
/**
* 发布用户ID
*/
private
Integer
userAccountId
;
/**
* 动态描述
*/
private
String
description
;
/**
* 发布动态具体位置
*/
private
String
location
;
/**
* 发布动态纬度
*/
private
BigDecimal
lat
;
/**
* 发布动态经度
*/
private
BigDecimal
lon
;
/**
* 点赞数
*/
private
Integer
likesCount
;
/**
* 评论数
*/
private
Integer
commentsCount
;
/**
* 记录父节点id
*/
private
String
rootPath
;
public
ForumDynamicDO
(
DynamicVO
dynamicVO
)
{
this
.
description
=
dynamicVO
.
getDescription
();
this
.
location
=
dynamicVO
.
getLocation
();
this
.
lat
=
dynamicVO
.
getLat
();
this
.
lon
=
dynamicVO
.
getLon
();
}
private
Integer
checkStatus
;
public
DynamicVO
buildDynamicVO
()
{
return
DynamicVO
.
builder
()
.
id
(
this
.
getId
())
.
userAccountId
(
userAccountId
)
.
description
(
description
)
.
commentCount
(
commentsCount
)
.
likesCount
(
likesCount
)
.
lat
(
lat
)
.
lon
(
lon
)
.
location
(
location
)
.
dynamicPublishTime
(
this
.
getCreateTime
())
.
build
();
}
public
ForumDynamicDO
(
DynamicVO
dynamicVO
)
{
this
.
description
=
dynamicVO
.
getDescription
();
this
.
location
=
dynamicVO
.
getLocation
();
this
.
lat
=
dynamicVO
.
getLat
();
this
.
lon
=
dynamicVO
.
getLon
();
}
public
DynamicInfoDTO
buildDynamicInfoDTO
()
{
return
DynamicInfoDTO
.
builder
()
.
id
(
this
.
getId
())
.
userAccountId
(
userAccountId
)
.
description
(
description
)
.
show
(
this
.
getDeleted
())
.
build
();
}
public
DynamicVO
buildDynamicVO
()
{
return
DynamicVO
.
builder
()
.
id
(
this
.
getId
())
.
userAccountId
(
userAccountId
)
.
description
(
description
)
.
commentCount
(
commentsCount
)
.
likesCount
(
likesCount
)
.
lat
(
lat
)
.
lon
(
lon
)
.
location
(
location
)
.
dynamicPublishTime
(
this
.
getCreateTime
())
.
build
();
}
public
void
defaultInfo
()
{
this
.
lon
=
null
;
this
.
lat
=
null
;
this
.
location
=
null
;
}
public
DynamicInfoDTO
buildDynamicInfoDTO
()
{
return
DynamicInfoDTO
.
builder
()
.
id
(
this
.
getId
())
.
userAccountId
(
userAccountId
)
.
description
(
description
)
.
show
(
this
.
getDeleted
())
.
build
();
}
public
void
defaultInfo
()
{
this
.
lon
=
null
;
this
.
lat
=
null
;
this
.
location
=
null
;
}
}
release-service/src/main/java/com/mmc/csf/release/service/DynamicService.java
浏览文件 @
7bd5136f
...
...
@@ -9,52 +9,51 @@ import javax.servlet.http.HttpServletRequest;
/**
* @Author LW 测试合并
*
* @date 2023/5/15 10:29 概要:动态信息service层
*/
public
interface
DynamicService
{
/**
* 插入动态
*
* @param dynamicVO 动态
* @return {@link ResultBody}
*/
ResultBody
insertDynamic
(
DynamicVO
dynamicVO
,
Integer
userAccountId
);
/**
* 点赞动态
*
* @param userId
用户id
* @param dynamicId 动态id
* @return {@link ResultBody}
*/
ResultBody
likeDynamic
(
Integer
userId
,
Integer
dynamicId
);
/**
* 评论动态
*
* @param commentVO 评论信息
* @return {@link ResultBody}
*/
ResultBody
commentDynamic
(
CommentVO
commentVO
,
Integer
userAccountId
);
/**
* 删除评论
*
* @param id id
* @return {@link ResultBody}
*/
ResultBody
deleteComment
(
Integer
id
);
/**
* 动态细节
*
* @param dynamicId 动态id
* @param userId
用户id
* @return {@link ResultBody}
*/
ResultBody
dynamicDetails
(
Integer
dynamicId
,
Integer
userId
,
HttpServletRequest
request
);
PageResult
dynamicList
(
Integer
pageNo
,
Integer
pageSize
,
Integer
userAccountId
,
HttpServletRequest
request
);
/**
* 插入动态
*
* @param dynamicVO 动态
* @return {@link ResultBody}
*/
ResultBody
insertDynamic
(
DynamicVO
dynamicVO
,
Integer
userAccountId
,
HttpServletRequest
request
);
/**
* 点赞动态
*
* @param userId
用户id
* @param dynamicId 动态id
* @return {@link ResultBody}
*/
ResultBody
likeDynamic
(
Integer
userId
,
Integer
dynamicId
);
/**
* 评论动态
*
* @param commentVO 评论信息
* @return {@link ResultBody}
*/
ResultBody
commentDynamic
(
CommentVO
commentVO
,
Integer
userAccountId
);
/**
* 删除评论
*
* @param id id
* @return {@link ResultBody}
*/
ResultBody
deleteComment
(
Integer
id
);
/**
* 动态细节
*
* @param dynamicId 动态id
* @param userId
用户id
* @return {@link ResultBody}
*/
ResultBody
dynamicDetails
(
Integer
dynamicId
,
Integer
userId
,
HttpServletRequest
request
);
PageResult
dynamicList
(
Integer
pageNo
,
Integer
pageSize
,
Integer
userAccountId
,
HttpServletRequest
request
);
}
release-service/src/main/java/com/mmc/csf/release/service/WxApiService.java
浏览文件 @
7bd5136f
...
...
@@ -2,8 +2,6 @@ package com.mmc.csf.release.service;
import
com.mmc.csf.common.util.web.ResultBody
;
import
java.util.Map
;
/**
* @Author LW
* @date 2023/7/12 13:44
...
...
@@ -18,8 +16,4 @@ public interface WxApiService {
* @return
*/
String
getStableAccessToken
()
throws
Exception
;
String
checkSignature
(
Map
<
String
,
String
>
params
)
throws
Exception
;
ResultBody
mediaCheckAsync
(
String
openid
,
String
mediaUrl
);
}
release-service/src/main/java/com/mmc/csf/release/service/impl/DynamicServiceImpl.java
浏览文件 @
7bd5136f
...
...
@@ -16,6 +16,7 @@ import com.mmc.csf.release.forum.vo.DynamicVO;
import
com.mmc.csf.release.forum.vo.MediaVO
;
import
com.mmc.csf.release.forum.vo.UserBaseInfoVO
;
import
com.mmc.csf.release.service.DynamicService
;
import
com.mmc.csf.release.service.WxApiService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -45,22 +46,38 @@ public class DynamicServiceImpl implements DynamicService {
private
CommentDAO
commentDAO
;
@Autowired
private
UserAppApi
userAppApi
;
@Resource
private
WxApiService
wxApiService
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
insertDynamic
(
DynamicVO
dynamicVO
,
Integer
userAccountId
)
{
public
ResultBody
insertDynamic
(
DynamicVO
dynamicVO
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
// 获取用户openid
// UserAccountSimpleDTO userAccountSimpleDTO = userAppApi.feignGetUserSimpleInfo(userAccountId, request.getHeader(TokenConstant.TOKEN));
// 插入动态基本信息
ForumDynamicDO
forumDynamicDO
=
new
ForumDynamicDO
(
dynamicVO
);
forumDynamicDO
.
setRootPath
(
null
);
forumDynamicDO
.
setUserAccountId
(
userAccountId
);
dynamicDAO
.
insertDynamic
(
forumDynamicDO
);
// 插入动态资源
if
(
CollectionUtils
.
isNotEmpty
(
dynamicVO
.
getMediaVO
()))
{
forumDynamicDO
.
setCheckStatus
(
0
);
dynamicDAO
.
insertDynamic
(
forumDynamicDO
);
for
(
MediaVO
mediaVO
:
dynamicVO
.
getMediaVO
())
{
dynamicDAO
.
insertResource
(
forumDynamicDO
.
getId
(),
mediaVO
.
getType
(),
mediaVO
.
getUrl
());
}
return
ResultBody
.
success
(
"您的信息通过审核后,即可向其他人展示"
);
}
else
{
// todo openid 需要获取
ResultBody
resultBody
=
wxApiService
.
msgSecCheck
(
"ohQPS5GV_ulnz4-PeftQlqktGLvw"
,
dynamicVO
.
getDescription
());
if
(
resultBody
.
getCode
().
equals
(
"200"
))
{
forumDynamicDO
.
setCheckStatus
(
1
);
dynamicDAO
.
insertDynamic
(
forumDynamicDO
);
}
else
{
forumDynamicDO
.
setCheckStatus
(
2
);
dynamicDAO
.
insertDynamic
(
forumDynamicDO
);
}
return
resultBody
;
}
return
ResultBody
.
success
(
"动态发布成功"
);
}
@Override
...
...
@@ -84,16 +101,22 @@ public class DynamicServiceImpl implements DynamicService {
if
(
forumDynamicDO
==
null
)
{
return
ResultBody
.
error
(
"动态不存在或已删除"
);
}
// 新增评论
ForumDynamicDO
comment
=
new
ForumDynamicDO
();
comment
.
setUserAccountId
(
userAccountId
);
comment
.
setDescription
(
commentVO
.
getContent
());
comment
.
defaultInfo
();
comment
.
setRootPath
(
commentVO
.
getRootPath
());
dynamicDAO
.
insertDynamic
(
comment
);
// 修改评论数量
dynamicDAO
.
updateDynamicCommentCount
(
commentVO
.
getDynamicId
(),
forumDynamicDO
.
getVersion
());
return
ResultBody
.
success
();
// todo openid 需要获取
ResultBody
resultBody
=
wxApiService
.
msgSecCheck
(
"ohQPS5GV_ulnz4-PeftQlqktGLvw"
,
commentVO
.
getContent
());
if
(
resultBody
.
getCode
().
equals
(
"200"
))
{
// 新增评论
ForumDynamicDO
comment
=
new
ForumDynamicDO
();
comment
.
setUserAccountId
(
userAccountId
);
comment
.
setDescription
(
commentVO
.
getContent
());
comment
.
defaultInfo
();
comment
.
setRootPath
(
commentVO
.
getRootPath
());
dynamicDAO
.
insertDynamic
(
comment
);
// 修改评论数量
dynamicDAO
.
updateDynamicCommentCount
(
commentVO
.
getDynamicId
(),
forumDynamicDO
.
getVersion
());
return
ResultBody
.
success
();
}
else
{
return
resultBody
;
}
}
@Override
...
...
@@ -181,6 +204,9 @@ public class DynamicServiceImpl implements DynamicService {
// 动态id集合
List
<
Integer
>
ids
=
forumDynamicList
.
stream
().
map
(
ForumDynamicDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 根据id集合查询评论
List
<
ForumDynamicDO
>
commentList
=
dynamicDAO
.
firstTwoItemsComment
(
ids
);
Map
<
String
,
List
<
ForumDynamicDO
>>
commentMap
=
commentList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ForumDynamicDO:
:
getRootPath
));
// 根据id集合查询图片
List
<
ForumResourceDO
>
forumImageList
=
dynamicDAO
.
listDynamicPicture
(
ids
);
Map
<
Integer
,
List
<
ForumResourceDO
>>
ImageMap
=
...
...
@@ -203,12 +229,20 @@ public class DynamicServiceImpl implements DynamicService {
.
map
(
d
->
{
DynamicVO
dynamicVO
=
d
.
buildDynamicVO
();
List
<
ForumResourceDO
>
forumResourceDOList
=
ImageMap
.
get
(
d
.
getId
());
if
(
CollectionUtils
.
isNotEmpty
(
forumResourceDOList
))
{
dynamicVO
.
setMediaVO
(
forumResourceDOList
.
stream
()
.
map
(
ForumResourceDO:
:
buildMedia
)
.
collect
(
Collectors
.
toList
()));
if
(
ImageMap
!=
null
)
{
List
<
ForumResourceDO
>
forumResourceDOList
=
ImageMap
.
get
(
d
.
getId
());
if
(
CollectionUtils
.
isNotEmpty
(
forumResourceDOList
))
{
dynamicVO
.
setMediaVO
(
forumResourceDOList
.
stream
()
.
map
(
ForumResourceDO:
:
buildMedia
)
.
collect
(
Collectors
.
toList
()));
}
}
if
(
commentMap
!=
null
)
{
List
<
ForumDynamicDO
>
comment
=
commentMap
.
get
(
d
.
getId
().
toString
());
if
(
CollectionUtils
.
isNotEmpty
(
comment
))
{
dynamicVO
.
setCommentAndReplyVO
(
comment
.
stream
().
limit
(
2
).
map
(
ForumDynamicDO:
:
buildDynamicVO
).
collect
(
Collectors
.
toList
()));
}
}
UserAccountSimpleDTO
userAccountSimpleDTO
=
userAccountInfoMap
.
get
(
d
.
getUserAccountId
());
...
...
release-service/src/main/java/com/mmc/csf/release/service/impl/WxApiServiceImpl.java
浏览文件 @
7bd5136f
...
...
@@ -5,7 +5,6 @@ import com.mmc.csf.common.util.web.HttpHelper;
import
com.mmc.csf.common.util.web.HttpsRequestUtil
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.common.util.web.ResultEnum
;
import
com.mmc.csf.common.util.wx.WXMsgPushUtils
;
import
com.mmc.csf.release.constant.UserSystemConstant
;
import
com.mmc.csf.release.constant.WxConstant
;
import
com.mmc.csf.release.service.WxApiService
;
...
...
@@ -50,7 +49,10 @@ public class WxApiServiceImpl implements WxApiService {
param
.
put
(
"scene"
,
3
);
param
.
put
(
"openid"
,
openid
);
String
url
=
"https://api.weixin.qq.com/wxa/msg_sec_check?access_token="
+
accessToken
;
if
(
buildParams
(
param
,
url
))
{
String
res
=
HttpHelper
.
httpPost
(
url
,
param
.
toString
());
JSONObject
result
=
JSONObject
.
parseObject
(
res
);
JSONObject
resultData
=
result
.
getJSONObject
(
WxConstant
.
RESULT
);
if
(!
resultData
.
get
(
WxConstant
.
LABEL
).
equals
(
100
))
{
return
ResultBody
.
error
(
ResultEnum
.
DYNAMIC_SENSITIVE_INFO
);
}
}
catch
(
Exception
e
)
{
...
...
@@ -59,43 +61,6 @@ public class WxApiServiceImpl implements WxApiService {
return
ResultBody
.
success
();
}
/**
* 图片视频识别
*
* @param openid
* @param mediaUrl
* @return
*/
@Override
public
ResultBody
mediaCheckAsync
(
String
openid
,
String
mediaUrl
)
{
try
{
String
accessToken
=
this
.
getStableAccessToken
();
JSONObject
param
=
new
JSONObject
();
param
.
put
(
"media_url"
,
mediaUrl
);
param
.
put
(
"media_type"
,
2
);
param
.
put
(
"version"
,
2
);
param
.
put
(
"scene"
,
3
);
param
.
put
(
"openid"
,
openid
);
String
url
=
"https://api.weixin.qq.com/wxa/media_check_async?access_token="
+
accessToken
;
if
(
buildParams
(
param
,
url
))
{
return
ResultBody
.
error
(
ResultEnum
.
DYNAMIC_SENSITIVE_INFO
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
ResultBody
.
success
();
}
private
boolean
buildParams
(
JSONObject
param
,
String
url
)
throws
Exception
{
String
res
=
HttpHelper
.
httpPost
(
url
,
param
.
toString
());
JSONObject
result
=
JSONObject
.
parseObject
(
res
);
JSONObject
resultData
=
result
.
getJSONObject
(
WxConstant
.
RESULT
);
if
(!
resultData
.
getString
(
WxConstant
.
LABEL
).
equals
(
WxConstant
.
LABEL_DATA
))
{
return
true
;
}
return
false
;
}
@Override
public
String
getStableAccessToken
()
{
//token有效期为7200s,需要保存起来,先从redis中获取accessToken,没有则请求获取
...
...
@@ -124,28 +89,4 @@ public class WxApiServiceImpl implements WxApiService {
}
return
accessToken
;
}
@Override
public
String
checkSignature
(
Map
<
String
,
String
>
params
)
throws
Exception
{
// 微信发送的请求中 会有四个参数
// 微信加密签名,signature结合了开发者填写的 token 参数和请求中的 timestamp 参数、nonce参数。
String
signature
=
params
.
get
(
"signature"
);
// 随机字符串
String
echostr
=
params
.
get
(
"echostr"
);
// 时间戳
String
timestamp
=
params
.
get
(
"timestamp"
);
// 随机数
String
nonce
=
params
.
get
(
"nonce"
);
// 消息推送配置中的 Token(令牌)
String
token
=
"IUAVKBTMMC"
;
// 验证
String
msgSignature
=
WXMsgPushUtils
.
getSHA1
(
token
,
timestamp
,
nonce
);
// 验证失败
if
(!
signature
.
equals
(
msgSignature
))
{
return
"false"
;
}
// 验证成功 将 echostr 原格式返回 ,即可完成验证
return
echostr
;
}
}
release-service/src/main/resources/mapper/forum/DynamicMapper.xml
浏览文件 @
7bd5136f
...
...
@@ -14,8 +14,8 @@
</insert>
<insert
id=
"insertDynamic"
keyProperty=
"id"
useGeneratedKeys=
"true"
parameterType=
"com.mmc.csf.release.entity.forum.ForumDynamicDO"
>
INSERT INTO forum_dynamic(user_account_id, description, location, lat, lon, root_path)
VALUES (#{userAccountId}, #{description}, #{location}, #{lat}, #{lon}, #{rootPath})
INSERT INTO forum_dynamic(user_account_id, description, location, lat, lon, root_path
, check_status
)
VALUES (#{userAccountId}, #{description}, #{location}, #{lat}, #{lon}, #{rootPath}
, #{checkStatus}
)
</insert>
<insert
id=
"insertResource"
>
insert into forum_resource(dynamic_id, resource_url, `type`)
...
...
@@ -45,10 +45,10 @@
<update
id=
"hiddenDynamic"
>
update forum_dynamic
set is_deleted =
case is_deleted
when 0 then 1
when 1 then 0
end
case is_deleted
when 0 then 1
when 1 then 0
end
where id = #{dynamicId}
</update>
<delete
id=
"deleteDynamic"
>
...
...
@@ -193,4 +193,21 @@
from forum_dynamic
where id = #{dynamicId}
</select>
<select
id=
"firstTwoItemsComment"
resultType=
"com.mmc.csf.release.entity.forum.ForumDynamicDO"
>
SELECT
id,
user_account_id,
description,
create_time,
root_path
FROM
forum_dynamic
<where>
<foreach
collection=
"list"
item=
"item"
separator=
","
open=
"root_path IN ("
close=
")"
>
#{item}
</foreach>
</where>
ORDER BY
create_time DESC
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论