parent
f7231f8f8d
commit
ed43cc3bb7
@ -0,0 +1,27 @@
|
|||||||
|
package com.luoo.comment.config;
|
||||||
|
|
||||||
|
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
|
||||||
|
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
|
||||||
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
|
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class RabbitMQConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
|
||||||
|
RabbitTemplate template = new RabbitTemplate(connectionFactory);
|
||||||
|
template.setMessageConverter(new Jackson2JsonMessageConverter());
|
||||||
|
return template;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {
|
||||||
|
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
|
||||||
|
factory.setConnectionFactory(connectionFactory);
|
||||||
|
factory.setMessageConverter(new Jackson2JsonMessageConverter());
|
||||||
|
return factory;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.luoo.comment.dao;
|
||||||
|
|
||||||
|
import com.luoo.comment.pojo.MusicPoint;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: yawei.huang
|
||||||
|
* @Package: com.luoo.comment.dao
|
||||||
|
* @Project: luoo_parent
|
||||||
|
* @Date: 2024/7/3 9:26
|
||||||
|
* @Filename: MusicPointDao
|
||||||
|
* @Describe:
|
||||||
|
*/
|
||||||
|
public interface MusicPointDao extends MongoRepository<MusicPoint, String> {
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.luoo.comment.listener;
|
||||||
|
|
||||||
|
import com.luoo.comment.pojo.MusicPoint;
|
||||||
|
import com.luoo.comment.service.MusicPointService;
|
||||||
|
import dto.MusicPointDto;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
||||||
|
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: yawei.huang
|
||||||
|
* @Package: com.luoo.comment.listener
|
||||||
|
* @Project: luoo_parent
|
||||||
|
* @Date: 2024/7/3 9:32
|
||||||
|
* @Filename: MusicPointListener
|
||||||
|
* @Describe:
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
@RabbitListener(queues = "musicPoint")
|
||||||
|
public class MusicPointListener {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MusicPointService musicPointService;
|
||||||
|
|
||||||
|
@RabbitHandler
|
||||||
|
public void receive(MusicPointDto message) {
|
||||||
|
log.info("message:{}", message);
|
||||||
|
MusicPoint musicPoint = new MusicPoint();
|
||||||
|
BeanUtils.copyProperties(message, musicPoint);
|
||||||
|
musicPointService.save(musicPoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package com.luoo.comment.pojo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: yawei.huang
|
||||||
|
* @Package: com.luoo.comment.pojo
|
||||||
|
* @Project: luoo_parent
|
||||||
|
* @Date: 2024/7/3 9:14
|
||||||
|
* @Filename: musicPoint
|
||||||
|
* @Describe: 音乐埋点 谁-在什么时间-听了什么歌-属于哪个专辑/期刊-属于哪个音乐人-属于哪个厂牌
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MusicPoint implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "id")
|
||||||
|
private String _id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户昵称")
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "歌曲id")
|
||||||
|
private String songId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "歌曲名称")
|
||||||
|
private String songName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "期刊id")
|
||||||
|
private String journalId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "期刊封面")
|
||||||
|
private String journalImage;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "专辑id")
|
||||||
|
private String albumId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "专辑名称")
|
||||||
|
private String albumName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "音乐人id")
|
||||||
|
private String artistId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "音乐人名称")
|
||||||
|
private String artistName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "厂牌id")
|
||||||
|
private String bandId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "厂牌名称")
|
||||||
|
private String bandName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "发生时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date eventTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "节点")
|
||||||
|
private String node;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.luoo.comment.service;
|
||||||
|
|
||||||
|
import com.luoo.comment.dao.MusicPointDao;
|
||||||
|
import com.luoo.comment.pojo.MusicPoint;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: yawei.huang
|
||||||
|
* @Package: com.luoo.comment.service
|
||||||
|
* @Project: luoo_parent
|
||||||
|
* @Date: 2024/7/3 9:30
|
||||||
|
* @Filename: MusicPointService
|
||||||
|
* @Describe:
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class MusicPointService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MusicPointDao musicPointDao;
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void save(MusicPoint musicPoint) {
|
||||||
|
musicPointDao.save(musicPoint);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,72 @@
|
|||||||
|
package dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: yawei.huang
|
||||||
|
* @Package: com.luoo.comment.pojo
|
||||||
|
* @Project: luoo_parent
|
||||||
|
* @Date: 2024/7/3 9:14
|
||||||
|
* @Filename: musicPoint
|
||||||
|
* @Describe: 音乐埋点 谁-在什么时间-听了什么歌-属于哪个专辑/期刊-属于哪个音乐人-属于哪个厂牌
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MusicPointDto implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "id")
|
||||||
|
private String _id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户昵称")
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "歌曲id")
|
||||||
|
@NotBlank
|
||||||
|
private String songId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "歌曲名称")
|
||||||
|
private String songName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "期刊id")
|
||||||
|
private String journalId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "期刊封面")
|
||||||
|
private String journalImage;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "专辑id")
|
||||||
|
private String albumId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "专辑名称")
|
||||||
|
private String albumName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "音乐人id")
|
||||||
|
private String artistId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "音乐人名称")
|
||||||
|
private String artistName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "厂牌id")
|
||||||
|
private String bandId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "厂牌名称")
|
||||||
|
private String bandName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "发生时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date eventTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "节点")
|
||||||
|
private String node;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue