Commit e22b463c authored by liwei's avatar liwei

修改了app黑名单和对话联动

parent 5d081d6a
......@@ -81,8 +81,8 @@ public class AppMemLeaveMessageController extends CyPaginationController<MemLeav
* 删除对话表
*/
@PreAuthorize("@cyPerm.hasPerm('app:mem:delete')")
@CyOpeLogAnno(title = "system-金币流水表管理-删除金币流水表", businessType = CyLogTypeEnum.DELETE)
@Operation(summary="删除金币流水表", description="删除金币流水表")
@CyOpeLogAnno(title = "system-对话管理-删除对话表", businessType = CyLogTypeEnum.DELETE)
@Operation(summary="删除对话表", description="删除对话表")
@Parameters({@Parameter(name = "businessId", description = "businessId", required = true, schema = @Schema(type = "string"))})
@DeleteMapping("/memLeaveMessage/delete/{businessId:\\w+}")
public CyResult delete(@PathVariable int businessId, MemLeaveMessage memLeaveMessage) {
......
......@@ -45,10 +45,25 @@ public interface MemLeaveMessageRepository extends CyBaseMapper<MemLeaveMessage>
*/
IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo cyPageInfo, @Param("entity") MemLeaveMessage memLeaveMessage);
/**
* 查询该对话是否已移除
*/
int selectDelUserById(@Param("entity") MemLeaveMessage memLeaveMessage);
int deleteMessageById(@Param("entity") MemLeaveMessage memLeaveMessage);
/**
* 删除该对话
*/
int deleteTalkById(@Param("entity") MemLeaveMessage memLeaveMessage);
/**
* 移除该对话
*/
int updateTalkDel(@Param("entity") MemLeaveMessage memLeaveMessage);
/**
* 拉黑该对话
*/
int updateTalkBlack(@Param("entity") MemLeaveMessage memLeaveMessage);
int updateMessageById(@Param("entity") MemLeaveMessage memLeaveMessage);
}
......@@ -135,7 +135,6 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memUserTalk.setCreateDate(new Date());
memUserTalk.setUpdateDate(new Date());
memUserTalk.setDelUser(0);
memUserTalk.setBlackUser(0);
int line1 = 0;
if (memUserTalks != null){
//如果已经存在该对话,则只更新信息
......@@ -171,7 +170,6 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memUserTalk.setUpdateDate(new Date());
//留言未删除默认值为0
memUserTalk.setDelUser(0);
memUserTalk.setBlackUser(0);
if (memUserTalks != null){
//已经给该用户留过言
memUserTalk.setBusinessId(memUserTalks.getBusinessId());
......@@ -215,7 +213,6 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memUserTalk.setContent(memLeaveMessage.getContent());
//留言未删除默认值为0
memUserTalk.setDelUser(0);
memUserTalk.setBlackUser(0);
int line1 = 0;
if (memUserTalks != null){
//如果已经存在该对话,则只更新信息
......@@ -295,10 +292,10 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
public CyPersistModel deleteMessage(MemLeaveMessage memLeaveMessage) {
if (memLeaveMessageRepository.selectDelUserById(memLeaveMessage) == 0){
memLeaveMessage.setDelUser(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
int line = memLeaveMessageRepository.updateMessageById(memLeaveMessage);
int line = memLeaveMessageRepository.updateTalkDel(memLeaveMessage);
return new CyPersistModel(line);
} else {
int line = memLeaveMessageRepository.deleteMessageById(memLeaveMessage);
int line = memLeaveMessageRepository.deleteTalkById(memLeaveMessage);
return new CyPersistModel(line);
}
}
......
......@@ -59,10 +59,17 @@ public class OpmBlackListServiceImpl extends ServiceImpl<OpmBlackListRepository,
opmBlackList.setCreateDate(new Date());
int line = baseMapper.insert(opmBlackList);
//添加到对话表设置拉黑用户
//判断是否对方已将自己拉黑,如果对方也拉黑了,则直接删除这条对话
Integer targetId = opmBlackList.getTargetId().intValue();
MemLeaveMessage userTalk = memLeaveMessageRepository.queryUserTalk(userId, targetId);
userTalk.setBlackUser(userId);
memLeaveMessageRepository.updateUserTalk(userTalk);
if (userTalk.getBlackUser() != 0){
//对方也将自己拉黑了 则删除该条对话
memLeaveMessageRepository.deleteTalkById(userTalk);
} else {
//对方没将自己拉黑
userTalk.setBlackUser(userId);
memLeaveMessageRepository.updateTalkBlack(userTalk);
}
//取消当前用户对该用户的关注
MemFollowDTO memFollowDTO = new MemFollowDTO();
memFollowDTO.setUserId(userId);
......
......@@ -591,8 +591,13 @@
select * from mem_info where wx_openid = #{openId} and del_flag = 0
</select>
<select id="getIsFollow" resultType="org.rcisoft.business.memInfo.entity.MemFollowDTO" parameterType="org.rcisoft.business.memInfo.entity.MemFollowDTO">
SELECT MAX(CASE WHEN ouf.business_id IS NOT NULL THEN 1 ELSE 0 END) AS isFollowed
FROM (SELECT 1 AS dummy) d LEFT JOIN opm_user_follow ouf ON ouf.user_id = #{entity.userId} AND ouf.target_id = #{entity.targetId};
SELECT
COALESCE(
(SELECT CASE WHEN ouf.business_id IS NOT NULL THEN 1 ELSE 0 END
FROM opm_user_follow ouf
WHERE 1=1
and ouf.user_id = #{entity.userId}
and ouf.target_id = #{entity.targetId}),0) AS isFollowed;
</select>
<select id="queryRankPaged" resultType="org.rcisoft.business.memInfo.entity.MemInfo">
select
......
......@@ -2,8 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.rcisoft.business.memLeaveMessage.dao.MemLeaveMessageRepository">
<insert id="insertUserTalk">
insert into mem_user_talk (target_id,create_by,create_date,update_by,update_date,content,del_user)
values(#{targetId},#{createBy},#{createDate},#{createBy},#{updateDate},#{content},#{delUser})
insert into mem_user_talk (target_id,create_by,create_date,update_by,update_date,content)
values(#{targetId},#{createBy},#{createDate},#{createBy},#{updateDate},#{content})
</insert>
<update id="updateUserTalk">
update mem_user_talk
......@@ -13,8 +13,7 @@
update_by = #{createBy},
update_date = #{updateDate},
content = #{content},
del_user = #{delUser},
black_user = #{blackUser}
del_user = #{delUser}
where business_id = #{businessId}
</update>
<select id="queryTalkByPagination" resultType="org.rcisoft.business.memLeaveMessage.entity.MemLeaveMessage">
......@@ -106,12 +105,17 @@
<select id="selectDelUserById" resultType="java.lang.Integer">
select del_user from mem_user_talk where business_id = #{entity.businessId}
</select>
<delete id="deleteMessageById">
<delete id="deleteTalkById">
delete from mem_user_talk where business_id = #{entity.businessId}
</delete>
<update id="updateMessageById">
<update id="updateTalkDel">
update mem_user_talk
set del_user = #{entity.delUser}
where business_id = #{entity.businessId}
</update>
<update id="updateTalkBlack">
update mem_user_talk
set black_user = #{entity.blackUser}
where business_id = #{entity.businessId}
</update>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment