Commit 8347b256 authored by 罗林杰's avatar 罗林杰

修改对话删除

parent 64e44947
...@@ -5,6 +5,10 @@ package org.rcisoft.app.appMemLeaveMessage.controller; ...@@ -5,6 +5,10 @@ package org.rcisoft.app.appMemLeaveMessage.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.media.Schema;
import org.rcisoft.business.memGoldCoinFlow.entity.MemGoldCoinFlow;
import org.rcisoft.business.memLeaveMessage.entity.MemLeaveMessage; import org.rcisoft.business.memLeaveMessage.entity.MemLeaveMessage;
import org.rcisoft.business.memLeaveMessage.service.impl.MemLeaveMessageServiceImpl; import org.rcisoft.business.memLeaveMessage.service.impl.MemLeaveMessageServiceImpl;
import org.rcisoft.core.anno.CyOpeLogAnno; import org.rcisoft.core.anno.CyOpeLogAnno;
...@@ -73,4 +77,20 @@ public class AppMemLeaveMessageController extends CyPaginationController<MemLeav ...@@ -73,4 +77,20 @@ public class AppMemLeaveMessageController extends CyPaginationController<MemLeav
return getGridModelResponse(); return getGridModelResponse();
} }
/**
* 删除对话表
*/
@PreAuthorize("@cyPerm.hasPerm('app:mem:delete')")
@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) {
memLeaveMessage.setBusinessId(businessId);
CyPersistModel data = memLeaveMessageServiceImpl.deleteMessage(memLeaveMessage);
return CyResultGenUtil.builder(data,
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
businessId);
}
} }
...@@ -44,5 +44,11 @@ public interface MemLeaveMessageRepository extends CyBaseMapper<MemLeaveMessage> ...@@ -44,5 +44,11 @@ public interface MemLeaveMessageRepository extends CyBaseMapper<MemLeaveMessage>
* 分页查询留言 * 分页查询留言
*/ */
IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo cyPageInfo, @Param("entity") MemLeaveMessage memLeaveMessage); IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo cyPageInfo, @Param("entity") MemLeaveMessage memLeaveMessage);
int selectDelUserById(@Param("entity") MemLeaveMessage memLeaveMessage);
int deleteMessageById(@Param("entity") MemLeaveMessage memLeaveMessage);
int updateMessageById(@Param("entity") MemLeaveMessage memLeaveMessage);
} }
...@@ -85,7 +85,7 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> { ...@@ -85,7 +85,7 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> {
* 0未删除,1本人已删除,2对方已删除,3双方都删除了 * 0未删除,1本人已删除,2对方已删除,3双方都删除了
*/ */
@TableField(exist = false) @TableField(exist = false)
private String delStatus; private Integer delUser;
/** /**
* 是否花费金币发送留言 * 是否花费金币发送留言
......
...@@ -32,4 +32,6 @@ public interface MemLeaveMessageService { ...@@ -32,4 +32,6 @@ public interface MemLeaveMessageService {
* 分页查询留言列表 * 分页查询留言列表
*/ */
IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage); IPage<MemLeaveMessage> queryMessageByPagination(CyPageInfo<MemLeaveMessage> paginationUtility, MemLeaveMessage memLeaveMessage);
CyPersistModel deleteMessage(MemLeaveMessage memLeaveMessage);
} }
...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.rcisoft.business.memGoldCoinFlow.dao.MemGoldCoinFlowRepository; import org.rcisoft.business.memGoldCoinFlow.dao.MemGoldCoinFlowRepository;
import org.rcisoft.business.memGoldCoinFlow.entity.MemGoldCoinFlow; import org.rcisoft.business.memGoldCoinFlow.entity.MemGoldCoinFlow;
import org.rcisoft.business.memInfo.bean.MemberInfoRedisBean;
import org.rcisoft.business.memInfo.dao.MemInfoRepository; import org.rcisoft.business.memInfo.dao.MemInfoRepository;
import org.rcisoft.business.memInfo.entity.MemInfo; import org.rcisoft.business.memInfo.entity.MemInfo;
import org.rcisoft.business.memLeaveMessage.bean.MemLeaveMessageRedisBean; import org.rcisoft.business.memLeaveMessage.bean.MemLeaveMessageRedisBean;
...@@ -15,7 +14,6 @@ import org.rcisoft.business.memLeaveMessage.service.MemLeaveMessageService; ...@@ -15,7 +14,6 @@ import org.rcisoft.business.memLeaveMessage.service.MemLeaveMessageService;
import org.rcisoft.core.exception.CyServiceException; import org.rcisoft.core.exception.CyServiceException;
import org.rcisoft.core.model.CyPageInfo; import org.rcisoft.core.model.CyPageInfo;
import org.rcisoft.core.model.CyPersistModel; import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.core.service.CyRedisService;
import org.rcisoft.core.service.impl.CyRedisServiceImpl; import org.rcisoft.core.service.impl.CyRedisServiceImpl;
import org.rcisoft.core.util.CyIdGenUtil; import org.rcisoft.core.util.CyIdGenUtil;
import org.rcisoft.core.util.CyUserUtil; import org.rcisoft.core.util.CyUserUtil;
...@@ -125,25 +123,27 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -125,25 +123,27 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
//修改对话表 //修改对话表
//查询是否已存在对话 //查询是否已存在对话
MemLeaveMessage memUserTalks = memLeaveMessageRepository.queryUserTalk(Integer.valueOf(userId),memLeaveMessage.getTargetId()); MemLeaveMessage memUserTalks = memLeaveMessageRepository.queryUserTalk(Integer.valueOf(userId),memLeaveMessage.getTargetId());
MemLeaveMessage memUserTalk = new MemLeaveMessage();
memUserTalk.setCreateBy(Integer.valueOf(userId));
memUserTalk.setUpdateBy(Integer.valueOf(userId));
memUserTalk.setTargetId(memLeaveMessage.getTargetId());
memUserTalk.setContent(memLeaveMessage.getContent());
memUserTalk.setCreateDate(new Date());
memUserTalk.setUpdateDate(new Date());
memUserTalk.setDelUser(0);
int line1 = 0;
if (memUserTalks != null){ if (memUserTalks != null){
//如果已经存在该对话,则只更新信息 //如果已经存在该对话,则只更新信息
MemLeaveMessage memUserTalk = new MemLeaveMessage();
memUserTalk.setBusinessId(memUserTalks.getBusinessId()); memUserTalk.setBusinessId(memUserTalks.getBusinessId());
memUserTalk.setCreateBy(Integer.valueOf(userId)); line1 = memLeaveMessageRepository.updateUserTalk(memUserTalk);
memUserTalk.setUpdateBy(Integer.valueOf(userId));
memUserTalk.setTargetId(memLeaveMessage.getTargetId());
memUserTalk.setContent(memLeaveMessage.getContent());
memUserTalk.setCreateDate(new Date());
memUserTalk.setUpdateDate(new Date());
memUserTalk.setDelStatus("0");
int line1 = memLeaveMessageRepository.updateUserTalk(memUserTalk);
if (line1 > 0) {
//插入对话表成功,则更新redis
this.redisTemplate.opsForHash().increment(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE + userId, String.valueOf(memLeaveMessage.getTargetId()), (double) 1L);
this.redisTemplate.opsForValue().increment(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE_All + userId, (long) 1L);
}
} else { } else {
throw new CyServiceException(1003,"系统异常,请稍后再试"); //不存在该对话,则插入对话表
line1 = memLeaveMessageRepository.insertUserTalk(memUserTalk);
}
if (line1 > 0) {
//插入对话表成功,则更新redis
this.redisTemplate.opsForHash().increment(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE + userId, String.valueOf(memLeaveMessage.getTargetId()), (double) 1L);
this.redisTemplate.opsForValue().increment(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE_All + userId, (long) 1L);
} }
return new CyPersistModel(line); return new CyPersistModel(line);
} else if (redisLeaveMessageCount == null){ } else if (redisLeaveMessageCount == null){
...@@ -164,7 +164,8 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -164,7 +164,8 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memUserTalk.setContent(memLeaveMessage.getContent()); memUserTalk.setContent(memLeaveMessage.getContent());
memUserTalk.setCreateDate(new Date()); memUserTalk.setCreateDate(new Date());
memUserTalk.setUpdateDate(new Date()); memUserTalk.setUpdateDate(new Date());
memUserTalk.setDelStatus("0"); //留言未删除默认值为0
memUserTalk.setDelUser(0);
if (memUserTalks != null){ if (memUserTalks != null){
//已经给该用户留过言 //已经给该用户留过言
memUserTalk.setBusinessId(memUserTalks.getBusinessId()); memUserTalk.setBusinessId(memUserTalks.getBusinessId());
...@@ -206,7 +207,8 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -206,7 +207,8 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
memUserTalk.setUpdateDate(new Date()); memUserTalk.setUpdateDate(new Date());
memUserTalk.setTargetId(memLeaveMessage.getTargetId()); memUserTalk.setTargetId(memLeaveMessage.getTargetId());
memUserTalk.setContent(memLeaveMessage.getContent()); memUserTalk.setContent(memLeaveMessage.getContent());
memUserTalk.setDelStatus("0"); //留言未删除默认值为0
memUserTalk.setDelUser(0);
int line1 = 0; int line1 = 0;
if (memUserTalks != null){ if (memUserTalks != null){
//如果已经存在该对话,则只更新信息 //如果已经存在该对话,则只更新信息
...@@ -281,4 +283,16 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos ...@@ -281,4 +283,16 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
redisTemplate.delete(key); redisTemplate.delete(key);
} }
} }
@Override
public CyPersistModel deleteMessage(MemLeaveMessage memLeaveMessage) {
if (memLeaveMessageRepository.selectDelUserById(memLeaveMessage) == 0){
memLeaveMessage.setDelUser(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
int line = memLeaveMessageRepository.updateMessageById(memLeaveMessage);
return new CyPersistModel(line);
} else {
int line = memLeaveMessageRepository.deleteMessageById(memLeaveMessage);
return new CyPersistModel(line);
}
}
} }
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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"> <mapper namespace="org.rcisoft.business.memLeaveMessage.dao.MemLeaveMessageRepository">
<insert id="insertUserTalk"> <insert id="insertUserTalk">
insert into mem_user_talk (target_id,create_by,create_date,update_by,update_date,content,del_status) 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},#{delStatus}) values(#{targetId},#{createBy},#{createDate},#{createBy},#{updateDate},#{content},#{delUser})
</insert> </insert>
<update id="updateUserTalk"> <update id="updateUserTalk">
update mem_user_talk update mem_user_talk
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
update_by = #{createBy}, update_by = #{createBy},
update_date = #{updateDate}, update_date = #{updateDate},
content = #{content}, content = #{content},
del_status = #{delStatus} del_user = #{delUser}
where business_id = #{businessId} where business_id = #{businessId}
</update> </update>
<select id="queryTalkByPagination" resultType="org.rcisoft.business.memLeaveMessage.entity.MemLeaveMessage"> <select id="queryTalkByPagination" resultType="org.rcisoft.business.memLeaveMessage.entity.MemLeaveMessage">
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
FROM mem_user_talk mut FROM mem_user_talk mut
LEFT JOIN mem_info mi ON mi.user_id = mut.target_id LEFT JOIN mem_info mi ON mi.user_id = mut.target_id
WHERE mut.create_by = #{entity.createBy} WHERE mut.create_by = #{entity.createBy}
and mut.del_user != #{entity.createBy}
UNION ALL( UNION ALL(
SELECT SELECT
mut.business_id, mut.business_id,
...@@ -40,6 +41,7 @@ ...@@ -40,6 +41,7 @@
FROM mem_user_talk mut FROM mem_user_talk mut
LEFT JOIN mem_info mi ON mi.user_id = mut.create_by LEFT JOIN mem_info mi ON mi.user_id = mut.create_by
WHERE mut.target_id = #{entity.createBy} WHERE mut.target_id = #{entity.createBy}
and mut.del_user != #{entity.createBy}
) )
ORDER BY create_date DESC ORDER BY create_date DESC
</select> </select>
...@@ -98,5 +100,15 @@ ...@@ -98,5 +100,15 @@
</if> </if>
ORDER BY oulm.create_date desc ORDER BY oulm.create_date desc
</select> </select>
<select id="selectDelUserById" resultType="java.lang.Integer">
select del_user from mem_user_talk where business_id = #{entity.businessId}
</select>
<delete id="deleteMessageById">
delete from mem_user_talk where business_id = #{entity.businessId}
</delete>
<update id="updateMessageById">
update mem_user_talk
set del_user = #{entity.delUser}
where business_id = #{entity.businessId}
</update>
</mapper> </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