diff --git a/src/main/java/com/geekq/miaosha/controller/MiaoShaMessageController.java b/src/main/java/com/geekq/miaosha/controller/MiaoShaMessageController.java index f986caa..05b3081 100644 --- a/src/main/java/com/geekq/miaosha/controller/MiaoShaMessageController.java +++ b/src/main/java/com/geekq/miaosha/controller/MiaoShaMessageController.java @@ -1,12 +1,15 @@ package com.geekq.miaosha.controller; +import com.geekq.miaosha.common.SnowflakeIdWorker; import com.geekq.miaosha.domain.MiaoShaMessageUser; import com.geekq.miaosha.rabbitmq.MQSender; import com.geekq.miaosha.service.MiaoShaMessageService; +import com.geekq.miaosha.vo.MiaoShaMessageVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.Date; import java.util.List; @Controller @@ -19,10 +22,15 @@ public class MiaoShaMessageController { private MQSender sendMessage; @RequestMapping(value="/list", produces="text/html") - public String list() { + public void list() { -// List messageUserList = messageService.getMessage(""); - sendMessage.sendMessage(null); - return ""; + MiaoShaMessageVo vo = new MiaoShaMessageVo(); + vo.setContent("尊敬的用户你好,你已经成功注册!"); + vo.setCreateTime(new Date()); + vo.setMessageId(SnowflakeIdWorker.getOrderId(0,0)); + vo.setSendType(0); + vo.setStatus(0); + vo.setUserId(Long.valueOf(22)); + sendMessage.sendMessage(null); } } diff --git a/src/main/java/com/geekq/miaosha/domain/MiaoShaMessage.java b/src/main/java/com/geekq/miaosha/domain/MiaoShaMessage.java index 005b6c0..53699f1 100644 --- a/src/main/java/com/geekq/miaosha/domain/MiaoShaMessage.java +++ b/src/main/java/com/geekq/miaosha/domain/MiaoShaMessage.java @@ -11,7 +11,7 @@ public class MiaoShaMessage implements Serializable { private Integer id ; - private String messageId ; + private Long messageId ; private String content ; @@ -38,11 +38,11 @@ public class MiaoShaMessage implements Serializable { this.id = id; } - public String getMessageId() { + public Long getMessageId() { return messageId; } - public void setMessageId(String messageId) { + public void setMessageId(Long messageId) { this.messageId = messageId; } diff --git a/src/main/java/com/geekq/miaosha/domain/MiaoShaMessageUser.java b/src/main/java/com/geekq/miaosha/domain/MiaoShaMessageUser.java index f3e824d..752d69e 100644 --- a/src/main/java/com/geekq/miaosha/domain/MiaoShaMessageUser.java +++ b/src/main/java/com/geekq/miaosha/domain/MiaoShaMessageUser.java @@ -1,60 +1,30 @@ package com.geekq.miaosha.domain; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import java.io.Serializable; import java.util.Date; /** * 消息中心用戶存储关系表 */ +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor public class MiaoShaMessageUser implements Serializable { - private Integer id ; + private Long id ; - private Integer userId ; + private Long userId ; - private String messageId ; + private Long messageId ; private String goodId ; private Date orderId; - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getUserId() { - return userId; - } - - public void setUserId(Integer userId) { - this.userId = userId; - } - - public String getMessageId() { - return messageId; - } - - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - public String getGoodId() { - return goodId; - } - - public void setGoodId(String goodId) { - this.goodId = goodId; - } - - public Date getOrderId() { - return orderId; - } - - public void setOrderId(Date orderId) { - this.orderId = orderId; - } } diff --git a/src/main/java/com/geekq/miaosha/rabbitmq/MQConfig.java b/src/main/java/com/geekq/miaosha/rabbitmq/MQConfig.java index a545697..337335a 100644 --- a/src/main/java/com/geekq/miaosha/rabbitmq/MQConfig.java +++ b/src/main/java/com/geekq/miaosha/rabbitmq/MQConfig.java @@ -18,7 +18,7 @@ public class MQConfig { public static final String EXCHANGE_TOPIC = "exchange_topic"; - public static final String MIAOSHA_MESSAGE = "miaosha_message"; + public static final String MIAOSHA_MESSAGE = "miaosha_mess"; public static final String QUEUE = "queue"; public static final String TOPIC_QUEUE1 = "topic.queue1"; diff --git a/src/main/java/com/geekq/miaosha/rabbitmq/MQReceiver.java b/src/main/java/com/geekq/miaosha/rabbitmq/MQReceiver.java index a9d3fe2..1d39dd6 100644 --- a/src/main/java/com/geekq/miaosha/rabbitmq/MQReceiver.java +++ b/src/main/java/com/geekq/miaosha/rabbitmq/MQReceiver.java @@ -4,16 +4,22 @@ import com.geekq.miaosha.domain.MiaoshaOrder; import com.geekq.miaosha.domain.MiaoshaUser; import com.geekq.miaosha.redis.RedisService; import com.geekq.miaosha.service.GoodsService; +import com.geekq.miaosha.service.MiaoShaMessageService; import com.geekq.miaosha.service.MiaoshaService; import com.geekq.miaosha.service.OrderService; import com.geekq.miaosha.vo.GoodsVo; +import com.geekq.miaosha.vo.MiaoShaMessageVo; +import com.rabbitmq.client.Channel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.IOException; + @Service public class MQReceiver { @@ -30,6 +36,9 @@ public class MQReceiver { @Autowired MiaoshaService miaoshaService; + + @Autowired + MiaoShaMessageService messageService ; @RabbitListener(queues=MQConfig.MIAOSHA_QUEUE) public void receive(String message) { @@ -55,9 +64,10 @@ public class MQReceiver { @RabbitListener(queues=MQConfig.MIAOSHA_MESSAGE) - @RabbitHandler - public void receiveMiaoShaMessage(Object message) { - System.out.println(111111); - System.out.println(message); - } + public void receiveMiaoShaMessage(Message message, Channel channel) throws IOException { + log.info("接受到的消息为:{}",message); + channel.basicAck(message.getMessageProperties().getDeliveryTag(), true); +// MiaoShaMessageVo msm = RedisService.stringToBean((String) message, MiaoShaMessageVo.class); +// messageService.insertMs(msm); + } } diff --git a/src/main/java/com/geekq/miaosha/rabbitmq/MQSender.java b/src/main/java/com/geekq/miaosha/rabbitmq/MQSender.java index 3701568..8a9965f 100644 --- a/src/main/java/com/geekq/miaosha/rabbitmq/MQSender.java +++ b/src/main/java/com/geekq/miaosha/rabbitmq/MQSender.java @@ -1,6 +1,8 @@ package com.geekq.miaosha.rabbitmq; +import com.geekq.miaosha.domain.MiaoshaUser; import com.geekq.miaosha.redis.RedisService; +import com.geekq.miaosha.vo.MiaoShaMessageVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.AmqpTemplate; @@ -34,6 +36,14 @@ public class MQSender { log.info("send message:"+"11111"); rabbitTemplate.convertAndSend(MQConfig.EXCHANGE_TOPIC,"miaosha_*", "111111111"); } - - + + /** + * 站内信 + * @param + */ + public void sendRegisterMessage(MiaoShaMessageVo miaoShaMessageVo) { + String msg = RedisService.beanToString(miaoShaMessageVo); + log.info("send message:{}" , msg); + rabbitTemplate.convertAndSend(MQConfig.EXCHANGE_TOPIC,"miaosha_*", msg); + } } diff --git a/src/main/java/com/geekq/miaosha/service/MiaoShaMessageService.java b/src/main/java/com/geekq/miaosha/service/MiaoShaMessageService.java index 5379442..c115a0b 100644 --- a/src/main/java/com/geekq/miaosha/service/MiaoShaMessageService.java +++ b/src/main/java/com/geekq/miaosha/service/MiaoShaMessageService.java @@ -2,6 +2,7 @@ package com.geekq.miaosha.service; import com.geekq.miaosha.dao.MiaoShaMessageDao; import com.geekq.miaosha.domain.MiaoShaMessageUser; +import com.geekq.miaosha.vo.MiaoShaMessageVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,4 +20,12 @@ public class MiaoShaMessageService { return messageUserList; } + + + public void insertMs(MiaoShaMessageVo miaoShaMessageVo){ + MiaoShaMessageUser mu = new MiaoShaMessageUser() ; + mu.setUserId(miaoShaMessageVo.getUserId()); + mu.setMessageId(miaoShaMessageVo.getMessageId()); + messageDao.insertMiaoShaMessageUser(mu); + } } diff --git a/src/main/java/com/geekq/miaosha/service/MiaoShaUserService.java b/src/main/java/com/geekq/miaosha/service/MiaoShaUserService.java index eb21966..02b2fd6 100644 --- a/src/main/java/com/geekq/miaosha/service/MiaoShaUserService.java +++ b/src/main/java/com/geekq/miaosha/service/MiaoShaUserService.java @@ -1,14 +1,17 @@ package com.geekq.miaosha.service; +import com.geekq.miaosha.common.SnowflakeIdWorker; import com.geekq.miaosha.controller.RegisterController; import com.geekq.miaosha.dao.MiaoShaUserDao; import com.geekq.miaosha.domain.MiaoshaUser; import com.geekq.miaosha.exception.GlobleException; +import com.geekq.miaosha.rabbitmq.MQSender; import com.geekq.miaosha.redis.MiaoShaUserKey; import com.geekq.miaosha.redis.RedisService; import com.geekq.miaosha.utils.MD5Utils; import com.geekq.miaosha.utils.UUIDUtil; import com.geekq.miaosha.vo.LoginVo; +import com.geekq.miaosha.vo.MiaoShaMessageVo; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,6 +37,9 @@ public class MiaoShaUserService { @Autowired private RedisService redisService ; + @Autowired + private MQSender sender ; + public MiaoshaUser getByToken(HttpServletResponse response , String token) { @@ -97,6 +103,17 @@ public class MiaoShaUserService { if(user == null){ return false; } + + MiaoShaMessageVo vo = new MiaoShaMessageVo(); + vo.setContent("尊敬的用户你好,你已经成功注册!"); + vo.setCreateTime(new Date()); + vo.setMessageId(SnowflakeIdWorker.getOrderId(0,0)); + vo.setSendType(0); + vo.setStatus(0); + vo.setUserId(miaoShaUser.getId()); + sender.sendRegisterMessage(vo); + + //生成cookie 将session返回游览器 分布式session String token= UUIDUtil.uuid(); addCookie(response, token, user); @@ -106,6 +123,7 @@ public class MiaoShaUserService { } return true; } + public boolean login(HttpServletResponse response , LoginVo loginVo) { if(loginVo ==null){ throw new GlobleException(SYSTEM_ERROR); diff --git a/src/main/java/com/geekq/miaosha/vo/MiaoShaMessageVo.java b/src/main/java/com/geekq/miaosha/vo/MiaoShaMessageVo.java new file mode 100644 index 0000000..1a57cec --- /dev/null +++ b/src/main/java/com/geekq/miaosha/vo/MiaoShaMessageVo.java @@ -0,0 +1,43 @@ +package com.geekq.miaosha.vo; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class MiaoShaMessageVo implements Serializable { + + private static final long serialVersionUID = -1341750239648941486L; + private Integer id ; + + private Long userId; + + private String goodId ; + + private Date orderId; + + private Long messageId ; + + private String content ; + + private Date createTime; + + private Integer status ; + + private Date overTime ; + + private Integer messageType ; + + private Integer sendType ; + + private String goodName ; + + private BigDecimal price ; +}