From 50c0bd57d81f638943f1d945cbd6ba2a2289628f Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期五, 30 十二月 2022 13:33:09 +0800
Subject: [PATCH] fix: 用户栏目设置消息相关接口修改

---
 ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnService.java            |    6 ++
 ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java       |    6 +-
 ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnServiceImpl.java    |   28 +++++++++
 ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnSetServiceImpl.java |    6 +
 ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java                     |    7 ++
 ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java            |    4 +
 ycl-platform/src/main/resources/mapper/message/MessageColumnSetMapper.xml                |   37 ++++++++---
 ycl-platform/src/main/resources/mapper/message/MessageMapper.xml                         |   17 +++++
 ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java                         |    6 ++
 ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnSetVO.java                    |    3 +
 ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java             |   13 ++++
 ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnUserVO.java                   |    9 +++
 12 files changed, 125 insertions(+), 17 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java b/ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java
index d0de9b9..12d3218 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java
@@ -62,11 +62,11 @@
         return CommonResult.success(iMessageColumnService.list());
     }
 
-    @ApiOperation(value = "鑾峰彇鏄剧ず鐨勬爮鐩�")
+    @ApiOperation(value = "鑾峰彇鐢ㄦ埛鐨勬爮鐩缃�")
     @RequestMapping(value = "/getShowColumn", method = RequestMethod.GET)
     @ResponseBody
-    public CommonResult getShowColumn() {
-        return CommonResult.success(iMessageColumnService.list(new LambdaQueryWrapper<MessageColumn>().eq(MessageColumn::getIsShow,1)));
+    public CommonResult getShowColumn(@RequestParam Integer id) {
+        return CommonResult.success(iMessageColumnService.listColumnUser(id));
     }
 
     @ApiOperation(value = "鑾峰彇鏍忕洰鍒嗛〉鏌ヨ")
diff --git a/ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java b/ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
index c0825b0..2489f87 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
@@ -91,6 +91,19 @@
         return CommonResult.failed();
     }
 
+
+    @ApiOperation("娑堟伅宸叉煡鐪�")
+    @PostMapping("/modification_batch")
+    public CommonResult updateBatchMessage(List<Long> ids) {
+        ids.forEach(item -> {
+            Message message = new Message();
+            message.setId(item);
+            message.setIsView(1);
+            iMessageService.updateById(message);
+        });
+        return CommonResult.success("success");
+    }
+
     @ApiOperation("鎵归噺鍒犻櫎娑堟伅")
     @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
     @ResponseBody
diff --git a/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java b/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
index 7beeff7..e8a0ee4 100644
--- a/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
+++ b/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
@@ -45,6 +45,12 @@
     @ApiModelProperty(value = "鐘舵��0-鏈彂甯�1-宸插彂甯�")
     private Integer status;
 
+    @ApiModelProperty(value = "鏄惁鏌ョ湅0-鏈彂甯�1-宸插彂甯�")
+    private Integer isView;
+
+    @ApiModelProperty(value = "鏄惁鏌ョ湅0-鏈彂甯�1-宸插彂甯�")
+    private String targetTo;
+
     @ApiModelProperty(value = "鍝嶅簲缁撴灉")
     private String respondResult;
 }
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java
index 7670a55..53870e1 100644
--- a/ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java
+++ b/ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java
@@ -16,5 +16,7 @@
  * @since 2022-10-12
  */
 public interface MessageColumnSetMapper extends BaseMapper<MessageColumnSet> {
-    List<MessageColumnSetVO> selectColumnAndCount(@Param(value = "userId") Long userId);
+    List<MessageColumnSetVO> selectColumn(@Param(value = "userId") Long userId);
+
+    Integer selectColumnCount(Long userId, Integer id);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java
index 181a7e3..42f2ac5 100644
--- a/ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java
+++ b/ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java
@@ -4,7 +4,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ycl.dto.message.MessageParam;
 import com.ycl.entity.message.Message;
+import com.ycl.vo.message.MessageColumnUserVO;
 import com.ycl.vo.message.MessageVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -16,4 +19,6 @@
  */
 public interface MessageMapper extends BaseMapper<Message> {
     Page<MessageVO> selectMessagePage(Page<Message> page, MessageParam messageParam);
-}
+
+    List<MessageColumnUserVO> selectUserColumn(Integer id);
+ }
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnService.java b/ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnService.java
index 77a0ff8..65c26d0 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnService.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnService.java
@@ -4,6 +4,10 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ycl.dto.message.MessageColumnParam;
 import com.ycl.entity.message.MessageColumn;
+import com.ycl.vo.message.MessageColumnSetVO;
+import com.ycl.vo.message.MessageColumnUserVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -16,4 +20,6 @@
 public interface IMessageColumnService extends IService<MessageColumn> {
 
     IPage<MessageColumn> list(MessageColumnParam messageColumnParam);
+
+    List<MessageColumnUserVO> listColumnUser(Integer id);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnServiceImpl.java
index e38d818..4d34676 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnServiceImpl.java
@@ -7,8 +7,15 @@
 import com.ycl.dto.message.MessageColumnParam;
 import com.ycl.entity.message.MessageColumn;
 import com.ycl.mapper.message.MessageColumnMapper;
+import com.ycl.mapper.message.MessageMapper;
 import com.ycl.service.message.IMessageColumnService;
+import com.ycl.vo.message.MessageColumnUserVO;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -20,6 +27,10 @@
  */
 @Service
 public class MessageColumnServiceImpl extends ServiceImpl<MessageColumnMapper, MessageColumn> implements IMessageColumnService {
+
+    @Resource
+    MessageMapper messageMapper;
+
     @Override
     public IPage<MessageColumn> list(MessageColumnParam messageColumnParam) {
         Page<MessageColumn> page = new Page<>(messageColumnParam.getCurrent(), messageColumnParam.getPageSize());
@@ -28,4 +39,21 @@
         Page<MessageColumn> result = baseMapper.selectPage(page, queryWrapper);
         return result;
     }
+
+    @Override
+    public List<MessageColumnUserVO> listColumnUser(Integer id) {
+        List<MessageColumnUserVO> messageColumnUserVOS = messageMapper.selectUserColumn(id);
+        List<Long> ids = messageColumnUserVOS.stream().map(item -> item.getId()).collect(Collectors.toList());
+        baseMapper
+                .selectList(new LambdaQueryWrapper<MessageColumn>().eq(MessageColumn::getIsShow, 1))
+                .stream()
+                .forEach(item -> {
+                    if (!ids.contains(item.getId())) {
+                        MessageColumnUserVO messageColumnUserVO = new MessageColumnUserVO();
+                        BeanUtils.copyProperties(item, messageColumnUserVO);
+                        messageColumnUserVOS.add(messageColumnUserVO);
+                    }
+                });
+        return messageColumnUserVOS;
+    }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnSetServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnSetServiceImpl.java
index 37346a0..9f134c3 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnSetServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnSetServiceImpl.java
@@ -26,6 +26,10 @@
 
     @Override
     public List<MessageColumnSetVO> listColumnAndPage(Long userId) {
-        return messageColumnSetMapper.selectColumnAndCount(userId);
+        List<MessageColumnSetVO> messageColumnSetVOS = messageColumnSetMapper.selectColumn(userId);
+        messageColumnSetVOS.forEach(item -> {
+            item.setMessageNumber(messageColumnSetMapper.selectColumnCount(userId, item.getId()));
+        });
+        return messageColumnSetVOS;
     }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnSetVO.java b/ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnSetVO.java
index 08ab779..2ad8c41 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnSetVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnSetVO.java
@@ -13,4 +13,7 @@
 
     @ApiModelProperty(value = "娑堟伅鏁扮洰")
     private Integer messageNumber;
+
+    @ApiModelProperty(value = "娑堟伅鏍忕洰id")
+    private Integer id;
 }
diff --git a/ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnUserVO.java b/ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnUserVO.java
new file mode 100644
index 0000000..8b28685
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnUserVO.java
@@ -0,0 +1,9 @@
+package com.ycl.vo.message;
+
+import com.ycl.entity.message.MessageColumn;
+import lombok.Data;
+
+@Data
+public class MessageColumnUserVO extends MessageColumn {
+    private Integer isReceive;
+}
diff --git a/ycl-platform/src/main/resources/mapper/message/MessageColumnSetMapper.xml b/ycl-platform/src/main/resources/mapper/message/MessageColumnSetMapper.xml
index e44e466..88b0188 100644
--- a/ycl-platform/src/main/resources/mapper/message/MessageColumnSetMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/message/MessageColumnSetMapper.xml
@@ -4,21 +4,22 @@
 
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.ycl.entity.message.MessageColumnSet">
-        <id column="id" property="id" />
-        <result column="user_id" property="userId" />
-        <result column="message_column_id" property="messageColumnId" />
-        <result column="is_receive" property="isReceive" />
+        <id column="id" property="id"/>
+        <result column="user_id" property="userId"/>
+        <result column="message_column_id" property="messageColumnId"/>
+        <result column="is_receive" property="isReceive"/>
     </resultMap>
 
     <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
     <sql id="Base_Column_List">
-        id, user_id, message_column_id, is_receive
+        id
+        , user_id, message_column_id, is_receive
     </sql>
 
-    <select id="selectColumnAndCount" resultType="com.ycl.vo.message.MessageColumnSetVO" >
+    <select id="selectColumn" resultType="com.ycl.vo.message.MessageColumnSetVO">
         SELECT
-        count( 1 ) AS messageNumber,
-        t2.column_name AS columnName
+        t2.column_name AS columnName,
+        t2.id
         FROM
         `ums_message_column_set` t1
         LEFT JOIN ums_message_column t2 ON t1.message_column_id = t2.id
@@ -26,11 +27,25 @@
         <where>
             t1.is_receive=1
             <if test="userId !=null">
-              and   t1.user_id = #{userId}
+                and t1.user_id = #{userId}
             </if>
         </where>
-        GROUP BY
-        t2.column_name
+        GROUP BY t2.id
+    </select>
+
+    <select id="selectColumnCount" resultType="java.lang.Integer">
+        SELECT
+            COUNT(1) as count
+        FROM
+            `ums_message_column_set` t1
+            LEFT JOIN ums_message_column t2 ON t1.message_column_id = t2.id
+            LEFT JOIN ums_message t3 ON t2.id = t3.message_type
+        where
+            t1.user_id = #{userId}
+          and t3.target_to=#{userId}
+          AND t2.id=#{id}
+          AND t3.is_view=0
+
     </select>
 
 </mapper>
diff --git a/ycl-platform/src/main/resources/mapper/message/MessageMapper.xml b/ycl-platform/src/main/resources/mapper/message/MessageMapper.xml
index 94cf1ad..f1b0a73 100644
--- a/ycl-platform/src/main/resources/mapper/message/MessageMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/message/MessageMapper.xml
@@ -58,8 +58,14 @@
             <if test="messageParam.channelCode !='' and messageParam.channelCode != null">
                 and t1.channel_code=#{messageParam.channelCode}
             </if>
+            <if test="messageParam.targetTo !='' and messageParam.targetTo != null">
+                and t1.target_to=#{messageParam.targetTo}
+            </if>
             <if test="messageParam.messageType != null">
                 and t1.message_type=#{messageParam.messageType}
+            </if>
+            <if test="messageParam.isView != null">
+                and t1.is_view=#{messageParam.isView}
             </if>
             <if test="messageParam.startTime != null and messageParam.startTime != '' and messageParam.endTime != null and messageParam.endTime != '' ">
                 and t1.create_time between #{messageParam.startTime} and #{messageParam.endTime}
@@ -80,4 +86,15 @@
         </where>
     </select>
 
+    <select id="selectUserColumn" resultType="com.ycl.vo.message.MessageColumnUserVO">
+        SELECT
+            t1.*,
+            t2.is_receive
+        FROM
+            ums_message_column t1 LEFT JOIN ums_message_column_set t2 ON t1.id = t2.message_column_id
+        WHERE
+            t2.user_id=#{id}
+          and t1.is_show=1
+    </select>
+
 </mapper>

--
Gitblit v1.8.0