Wei Ruifeng 4 年之前
父节点
当前提交
cc4ceb671b

+ 157 - 111
lift-push/src/main/java/cn/com/ty/lift/push/message/controller/TimeMessageController.java

@@ -1,130 +1,176 @@
 package cn.com.ty.lift.push.message.controller;
 package cn.com.ty.lift.push.message.controller;
 
 
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
 import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.model.TimeMessage;
 import cn.com.ty.lift.common.model.TimeMessage;
 import cn.com.ty.lift.push.message.object.MessageBO;
 import cn.com.ty.lift.push.message.object.MessageBO;
 import cn.com.ty.lift.push.message.object.MessageVo;
 import cn.com.ty.lift.push.message.object.MessageVo;
+import cn.com.ty.lift.push.message.object.TimeMessageDto;
 import cn.com.ty.lift.push.message.service.TimeMessageService;
 import cn.com.ty.lift.push.message.service.TimeMessageService;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.com.xwy.boot.web.dto.RestResponse;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Collection;
 
 
 @RestController
 @RestController
 @AllArgsConstructor
 @AllArgsConstructor
 @Slf4j
 @Slf4j
-@RequestMapping("message")
+@RequestMapping("/message")
 public class TimeMessageController {
 public class TimeMessageController {
-    private final TimeMessageService timeMessageService;
+	private final TimeMessageService timeMessageService;
+
+	/**
+	 * 消息列表
+	 *
+	 * @param messageVo
+	 *            分页数据的请求对象
+	 * @return 带已读,未读条数的分页列表
+	 */
+	@PostMapping("/list")
+	public RestResponse<MessageBO> list(@RequestBody MessageVo messageVo) {
+		IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
+		IPage<TimeMessage> result = timeMessageService.page(page,
+				Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.eq(messageVo.getType() != null, "type", messageVo.getType())
+						.notIn("device_model", ApiConstants.DeviceModel.PC).orderByAsc("view_flag")
+						.orderByDesc("create_time"));
+		MessageBO messageBO = MessageBO.pageCastMessageBo(result);
+		messageBO.setReadCount((long) timeMessageService.count(Wrappers.<TimeMessage>query()
+				.eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId()).eq("view_flag", 1)
+				.eq("type", messageVo.getType()).notIn("device_model", ApiConstants.DeviceModel.PC)));
+		messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
+		return RestResponse.success(messageBO);
+	}
+
+	/**
+	 * 最新系统消息和通知消息及其条数
+	 */
+	@PostMapping("/newMessageOne")
+	public RestResponse<Map<String, Object>> newMessageOne(@RequestBody MessageVo messageVo) {
+		Map<String, Object> result = new HashMap<>();
+		TimeMessageDto systemOne = new TimeMessageDto();
+		int count = timeMessageService
+				.count(Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.eq("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC));
+		TimeMessage one = timeMessageService.getOne(
+				Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.eq("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC).orderByAsc("view_flag")
+						.orderByDesc("create_time").last("Limit 1"));
+		systemOne.setCount(count);
+		systemOne.setTimeMessage(one);
+		result.put("系统消息", systemOne);
+		TimeMessageDto noticeOne = new TimeMessageDto();
+		int noticeOneCount = timeMessageService
+				.count(Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.notIn("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC));
+		TimeMessage notice = timeMessageService.getOne(
+				Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.notIn("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC).orderByAsc("view_flag")
+						.orderByDesc("create_time").last("Limit 1"));
+		noticeOne.setCount(noticeOneCount);
+		noticeOne.setTimeMessage(notice);
+		result.put("通知消息", noticeOne);
+		return RestResponse.success(result);
+	}
+
+	/**
+	 * 系统消息列表
+	 *
+	 * @param messageVo
+	 *            分页数据的请求对象
+	 * @return 带已读,未读条数的分页列表
+	 */
+	@PostMapping("/systemList")
+	public RestResponse<MessageBO> systemList(@RequestBody MessageVo messageVo) {
+		IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
+		IPage<TimeMessage> result = timeMessageService.page(page,
+				Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.eq("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC).orderByAsc("view_flag")
+						.orderByDesc("create_time"));
+		MessageBO messageBO = MessageBO.pageCastMessageBo(result);
+		messageBO.setReadCount((long) timeMessageService
+				.count(Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.eq("view_flag", 1).eq("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC)));
+		messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
+		return RestResponse.success(messageBO);
+	}
+
+	/**
+	 * 通知消息列表
+	 *
+	 * @param messageVo
+	 *            分页数据的请求对象
+	 * @return 带已读,未读条数的分页列表
+	 */
+	@PostMapping("/noticeList")
+	public RestResponse<MessageBO> noticeList(@RequestBody MessageVo messageVo) {
+		IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
+		IPage<TimeMessage> result = timeMessageService.page(page,
+				Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.notIn("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC).orderByAsc("view_flag")
+						.orderByDesc("create_time"));
+		MessageBO messageBO = MessageBO.pageCastMessageBo(result);
+		messageBO.setReadCount((long) timeMessageService
+				.count(Wrappers.<TimeMessage>query().eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
+						.eq("view_flag", 1).notIn("type", 0).notIn("device_model", ApiConstants.DeviceModel.PC)));
+		messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
+		return RestResponse.success(messageBO);
+	}
 
 
-    /**
-     * 消息列表
-     *
-     * @param messageVo 分页数据的请求对象
-     * @return 带已读,未读条数的分页列表
-     */
-    @PostMapping("list")
-    public RestResponse<MessageBO> list(@RequestBody MessageVo messageVo) {
-        IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
-        IPage<TimeMessage> result = timeMessageService.page(page, Wrappers.<TimeMessage>query()
-                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
-                .eq(messageVo.getType() != null, "type", messageVo.getType())
-                .notIn("device_model", ApiConstants.DeviceModel.PC)
-                .orderByAsc("view_flag")
-                .orderByDesc("create_time"));
-        MessageBO messageBO = MessageBO.pageCastMessageBo(result);
-        messageBO.setReadCount((long) timeMessageService.count(Wrappers.<TimeMessage>query()
-                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
-                .eq("view_flag", 1)
-                .eq("type", messageVo.getType())
-                .notIn("device_model", ApiConstants.DeviceModel.PC)));
-        messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
-        return RestResponse.success(messageBO);
-    }
+	/**
+	 * 清空消息列表
+	 *
+	 */
+	@PostMapping("/deleteMessageList")
+	public RestResponse<MessageBO> deleteMessageList(@RequestBody MessageVo messageVo) {
+		if (messageVo.getType() == 0) {
+			timeMessageService.remove(Wrappers.<TimeMessage>query()
+					.eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId()).eq("type", 0));
+		} else {
+			timeMessageService.remove(Wrappers.<TimeMessage>query()
+					.eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId()).notIn("type", 0));
+		}
+		return RestResponse.success();
+	}
 
 
-    /**
-     * 系统消息列表
-     *
-     * @param messageVo 分页数据的请求对象
-     * @return 带已读,未读条数的分页列表
-     */
-    @PostMapping("systemList")
-    public RestResponse<MessageBO> systemList(@RequestBody MessageVo messageVo) {
-        IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
-        IPage<TimeMessage> result = timeMessageService.page(page, Wrappers.<TimeMessage>query()
-                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
-                .eq( "type", 0)
-                .notIn("device_model", ApiConstants.DeviceModel.PC)
-                .orderByAsc("view_flag")
-                .orderByDesc("create_time"));
-        MessageBO messageBO = MessageBO.pageCastMessageBo(result);
-        messageBO.setReadCount((long) timeMessageService.count(Wrappers.<TimeMessage>query()
-                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
-                .eq("view_flag", 1)
-                .eq("type", 0)
-                .notIn("device_model", ApiConstants.DeviceModel.PC)));
-        messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
-        return RestResponse.success(messageBO);
-    }
-    
-    /**
-     * 通知消息列表
-     *
-     * @param messageVo 分页数据的请求对象
-     * @return 带已读,未读条数的分页列表
-     */
-    @PostMapping("noticeList")
-    public RestResponse<MessageBO> noticeList(@RequestBody MessageVo messageVo) {
-        IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
-        IPage<TimeMessage> result = timeMessageService.page(page, Wrappers.<TimeMessage>query()
-                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
-                .notIn("type", 0)
-                .notIn("device_model", ApiConstants.DeviceModel.PC)
-                .orderByAsc("view_flag")
-                .orderByDesc("create_time"));
-        MessageBO messageBO = MessageBO.pageCastMessageBo(result);
-        messageBO.setReadCount((long) timeMessageService.count(Wrappers.<TimeMessage>query()
-                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
-                .eq("view_flag", 1)
-                .notIn("type", 0)
-                .notIn("device_model", ApiConstants.DeviceModel.PC)));
-        messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
-        return RestResponse.success(messageBO);
-    }
-    
-    /**
-     * @param messageVo 分页功能的请求对象
-     * @return 一条消息详情
-     */
-    @PostMapping
-    public RestResponse<TimeMessage> message(@RequestBody MessageVo messageVo) {
-        TimeMessage byId = timeMessageService.getById(messageVo.getId());
-        byId.setViewFlag(1);
-        timeMessageService.updateById(byId);
-        return RestResponse.success(byId);
-    }
+	/**
+	 * @param messageVo
+	 *            分页功能的请求对象
+	 * @return 一条消息详情
+	 */
+	@PostMapping
+	public RestResponse<TimeMessage> message(@RequestBody MessageVo messageVo) {
+		TimeMessage byId = timeMessageService.getById(messageVo.getId());
+		byId.setViewFlag(1);
+		timeMessageService.updateById(byId);
+		return RestResponse.success(byId);
+	}
 
 
-    /**
-     * 设置多条消息已读
-     *
-     * @param messageVo id列表
-     * @return 操作结果
-     */
-    @PostMapping("read")
-    public RestResponse<Boolean> messages(@RequestBody MessageVo messageVo) {
-        Collection<TimeMessage> timeMessages = timeMessageService.listByIds(messageVo.getIds());
-        if (timeMessages.isEmpty()) {
-            return RestResponse.success(true);
-        }
-        timeMessages.forEach(timeMessage -> timeMessage.setViewFlag(1));
-        return RestResponse.success(timeMessageService.updateBatchById(timeMessages));
-    }
+	/**
+	 * 设置多条消息已读
+	 *
+	 * @param messageVo
+	 *            id列表
+	 * @return 操作结果
+	 */
+	@PostMapping("read")
+	public RestResponse<Boolean> messages(@RequestBody MessageVo messageVo) {
+		Collection<TimeMessage> timeMessages = timeMessageService.listByIds(messageVo.getIds());
+		if (timeMessages.isEmpty()) {
+			return RestResponse.success(true);
+		}
+		timeMessages.forEach(timeMessage -> timeMessage.setViewFlag(1));
+		return RestResponse.success(timeMessageService.updateBatchById(timeMessages));
+	}
 }
 }

+ 27 - 0
lift-push/src/main/java/cn/com/ty/lift/push/message/object/TimeMessageDto.java

@@ -0,0 +1,27 @@
+package cn.com.ty.lift.push.message.object;
+
+import cn.com.ty.lift.common.model.TimeMessage;
+
+public class TimeMessageDto {
+
+	private TimeMessage timeMessage;
+	
+	private Integer count;
+
+	public TimeMessage getTimeMessage() {
+		return timeMessage;
+	}
+
+	public void setTimeMessage(TimeMessage timeMessage) {
+		this.timeMessage = timeMessage;
+	}
+
+	public Integer getCount() {
+		return count;
+	}
+
+	public void setCount(Integer count) {
+		this.count = count;
+	}
+	
+}