Bläddra i källkod

update:私信消息

liujunchi 3 år sedan
förälder
incheckning
f7a6d3402f

+ 11 - 13
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsPrivateMessageController.java

@@ -21,14 +21,12 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 
-import com.yonge.cooleshow.bbs.vo.BbsPrivateMessageVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsPrivateMessageSearch;
 import com.yonge.cooleshow.bbs.entity.BbsPrivateMessage;
 import com.yonge.cooleshow.bbs.service.BbsPrivateMessageService;
 
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/bbsPrivateMessage")
@@ -56,7 +54,7 @@ public class BbsPrivateMessageController extends BaseController {
 
 	@PostMapping("/page/message")
 	@ApiOperation(value = "私信人员消息列表", notes = "传入bbsPrivateMessageSearch")
-	public HttpResponseResult<PageInfo<BbsPrivateMessageDto>> pageMessage(@RequestBody @Valid BbsPrivateMessageSearch query) {
+	public HttpResponseResult<BbsPrivateMessageDto> pageMessage(@RequestBody @Valid BbsPrivateMessageSearch query) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (user == null || user.getId() == null) {
 			throw  new BizException("请重新登录");
@@ -65,17 +63,17 @@ public class BbsPrivateMessageController extends BaseController {
 		if (receiverUser == null || user.getId() == null) {
 			throw  new BizException("私信接收方用户不存在");
 		}
+		BbsPrivateMessageDto bbsPrivateMessageDto = new BbsPrivateMessageDto();
 		query.setUserId(user.getId());
-		IPage<BbsPrivateMessageDto> pages = bbsPrivateMessageService.selectMessagePage(PageUtil.getPage(query), query);
-		List<BbsPrivateMessageDto> collect = pages.getRecords().stream().peek(bbsPrivateMessageDto -> {
-			bbsPrivateMessageDto.setReceiverAvatar(receiverUser.getAvatar());
-			bbsPrivateMessageDto.setReceiverName(receiverUser.getUsername());
-			bbsPrivateMessageDto.setUserName(user.getUsername());
-			bbsPrivateMessageDto.setUserAvatar(user.getAvatar());
-
-		}).collect(Collectors.toList());
-		pages.setRecords(collect);
-		return succeed(PageUtil.pageInfo(pages));
+		IPage<BbsPrivateMessage> pages = bbsPrivateMessageService.selectReadMessagePage(PageUtil.getPage(query), query);
+		bbsPrivateMessageDto.setReadPage(PageUtil.pageInfo(pages));
+		bbsPrivateMessageDto.setReceiverAvatar(receiverUser.getAvatar());
+		bbsPrivateMessageDto.setReceiverName(receiverUser.getUsername());
+		bbsPrivateMessageDto.setUserName(user.getUsername());
+		bbsPrivateMessageDto.setUserAvatar(user.getAvatar());
+		List<BbsPrivateMessage> unreadMessage  = bbsPrivateMessageService.selectUnreadMessage(query);
+		bbsPrivateMessageDto.setUnreadList(unreadMessage);
+		return succeed(bbsPrivateMessageDto);
 	}
 
 

+ 1 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsReplyController.java

@@ -45,7 +45,7 @@ public class BbsReplyController extends BaseController {
 	@PostMapping("/remove/{id}")
 	@ApiOperation(value = "后台-评论删除", notes = "传入id")
 	public HttpResponseResult remove(@PathVariable Long id) {
-        if (id != null) {
+        if (id == null) {
 			return failed("参数不能为空");
 		}
 		return status(bbsReplyService.removeById(id));

+ 10 - 2
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsPrivateMessageDao.java

@@ -50,7 +50,15 @@ public interface BbsPrivateMessageDao extends BaseMapper<BbsPrivateMessage> {
 	boolean read(@Param("readDto") MessageReadDto readDto);
 
 	/**
-	 * 私信人员消息列表
+	 * 私信人员已读消息列表
 	 */
-	List<BbsPrivateMessageDto> selectMessagePage(@Param("page") IPage<BbsPrivateMessageDto> page, @Param("query") BbsPrivateMessageSearch query);
+	List<BbsPrivateMessage> selectMessagePage(@Param("page") IPage<BbsPrivateMessage> page, @Param("query") BbsPrivateMessageSearch query);
+
+	/**
+	 * 未读消息列表
+	 *
+	 * @param query
+	 * @return
+	 */
+	List<BbsPrivateMessage> selectUnreadMessage(@Param("query") BbsPrivateMessageSearch query);
 }

+ 24 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/BbsPrivateMessageDto.java

@@ -1,10 +1,13 @@
 package com.yonge.cooleshow.bbs.dto;
 
 import com.yonge.cooleshow.bbs.entity.BbsPrivateMessage;
+import com.yonge.toolset.base.page.PageInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.beanutils.BeanUtils;
 
+import java.util.List;
+
 /**
  * @Author: liweifan
  * @Data: 2022-06-09 17:27:11
@@ -26,6 +29,27 @@ public class BbsPrivateMessageDto extends BbsPrivateMessage{
     @ApiModelProperty("头像")
     private String userAvatar;
 
+    @ApiModelProperty("所有的未读消息列表")
+    private List<BbsPrivateMessage> unreadList;
+
+    @ApiModelProperty("已读消息列表")
+    private PageInfo<BbsPrivateMessage> readPage;
+
+    public List<BbsPrivateMessage> getUnreadList() {
+        return unreadList;
+    }
+
+    public void setUnreadList(List<BbsPrivateMessage> unreadList) {
+        this.unreadList = unreadList;
+    }
+
+    public PageInfo<BbsPrivateMessage> getReadPage() {
+        return readPage;
+    }
+
+    public void setReadPage(PageInfo<BbsPrivateMessage> readPage) {
+        this.readPage = readPage;
+    }
 
     public String getReceiverName() {
         return receiverName;

+ 12 - 3
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsPrivateMessageService.java

@@ -2,13 +2,14 @@ package com.yonge.cooleshow.bbs.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.yonge.cooleshow.bbs.dto.BbsPrivateMessageDto;
 import com.yonge.cooleshow.bbs.dto.MessageReadDto;
 import com.yonge.cooleshow.bbs.dto.PrivateMessagePersonVo;
 import com.yonge.cooleshow.bbs.vo.BbsPrivateMessageVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsPrivateMessageSearch;
 import com.yonge.cooleshow.bbs.entity.BbsPrivateMessage;
 
+import java.util.List;
+
 /**
  * 私信 服务类
  * @author liweifan
@@ -48,9 +49,17 @@ public interface BbsPrivateMessageService extends IService<BbsPrivateMessage>  {
 	boolean read(MessageReadDto readDto);
 
 	/**
-	 * 私信人员消息列表
+	 * 私信人员已读消息列表
+	 *
+	 * @return
+	 */
+	IPage<BbsPrivateMessage> selectReadMessagePage(IPage<BbsPrivateMessage> page, BbsPrivateMessageSearch query);
+
+	/**
+	 * 私信未读消息列表
 	 *
+	 * @param query
 	 * @return
 	 */
-	IPage<BbsPrivateMessageDto> selectMessagePage(IPage<BbsPrivateMessageDto> page, BbsPrivateMessageSearch query);
+	List<BbsPrivateMessage> selectUnreadMessage(BbsPrivateMessageSearch query);
 }

+ 8 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsPrivateMessageServiceImpl.java

@@ -14,6 +14,8 @@ import com.yonge.cooleshow.bbs.dto.search.BbsPrivateMessageSearch;
 import com.yonge.cooleshow.bbs.dao.BbsPrivateMessageDao;
 import com.yonge.cooleshow.bbs.service.BbsPrivateMessageService;
 
+import java.util.List;
+
 
 @Service
 public class BbsPrivateMessageServiceImpl extends ServiceImpl<BbsPrivateMessageDao, BbsPrivateMessage> implements BbsPrivateMessageService {
@@ -40,8 +42,13 @@ public class BbsPrivateMessageServiceImpl extends ServiceImpl<BbsPrivateMessageD
     }
 
     @Override
-    public IPage<BbsPrivateMessageDto> selectMessagePage(IPage<BbsPrivateMessageDto> page, BbsPrivateMessageSearch query) {
+    public IPage<BbsPrivateMessage> selectReadMessagePage(IPage<BbsPrivateMessage> page, BbsPrivateMessageSearch query) {
         return page.setRecords(baseMapper.selectMessagePage(page, query));
     }
 
+    @Override
+    public List<BbsPrivateMessage> selectUnreadMessage(BbsPrivateMessageSearch query) {
+        return baseMapper.selectUnreadMessage( query);
+    }
+
 }

+ 23 - 3
cooleshow-bbs/src/main/resources/config/mybatis/BbsPrivateMessageMapper.xml

@@ -55,12 +55,12 @@
 
 	<update id="read">
         update bbs_private_message bpm set bpm.read_flag_ = 1
-        where #{readDto.userId} = bpm.send_user_id_
-        and #{readDto.sendUserId} = bpm.receiver_user_id_
+        where #{readDto.sendUserId} = bpm.send_user_id_
+        and #{readDto.userId} = bpm.receiver_user_id_
         and #{readDto.readTime} &gt; bpm.created_time_
     </update>
 
-	<select id="selectMessagePage" resultType="com.yonge.cooleshow.bbs.dto.BbsPrivateMessageDto">
+	<select id="selectMessagePage" resultType="com.yonge.cooleshow.bbs.entity.BbsPrivateMessage">
 
         select
         bpm.id as id
@@ -71,6 +71,7 @@
         , bpm.read_flag_ as readFlag
         from bbs_private_message bpm
         <where>
+            bpm.read_flag_ = 1
             <if test="query.userId != null and query.receiverUserId != null">
                 and ((#{query.userId} = bpm.send_user_id_ and #{query.receiverUserId} = bpm.receiver_user_id_)
                 or (#{query.userId} = bpm.receiver_user_id_ and #{query.receiverUserId} = bpm.send_user_id_))
@@ -79,4 +80,23 @@
 
         order by bpm.created_time_ desc
     </select>
+
+	<select id="selectUnreadMessage" resultMap="BaseResultMap">
+
+        select
+        bpm.id as id
+        , bpm.send_user_id_ as sendUserId
+        , bpm.receiver_user_id_ as receiverUserId
+        , bpm.message_content_ as messageContent
+        , bpm.created_time_ as createdTime
+        , bpm.read_flag_ as readFlag
+        from bbs_private_message bpm
+        <where>
+            bpm.read_flag_ = 0
+            <if test="query.userId != null and query.receiverUserId != null">
+                and
+             (#{query.userId} = bpm.receiver_user_id_ and #{query.receiverUserId} = bpm.send_user_id_)
+            </if>
+        </where>
+    </select>
 </mapper>