package com.yeshi.buwan.service.manager;
|
|
import com.yeshi.buwan.dto.statistic.video.VideoDetailStatisticData;
|
import com.yeshi.buwan.util.RedisManager;
|
import com.yeshi.buwan.util.StringUtil;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.UUID;
|
|
/**
|
* 播放统计管理
|
*/
|
@Component
|
public class VideoPlayStatisticManager {
|
|
Logger sessionLogger = LoggerFactory.getLogger("session");
|
|
|
@Resource
|
private RedisManager redisManager;
|
|
/**
|
* 创建会话
|
*
|
* @param data
|
* @return
|
*/
|
public String createVideoDetailSessionId(VideoDetailStatisticData data) {
|
if (data.getCreateTime() == 0L) {
|
data.setCreateTime(System.currentTimeMillis());
|
}
|
String sessionId = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis() + "#" + data.getUtdId());
|
//缓存8小时
|
redisManager.setDataToRedis("session-" + sessionId, data, 60 * 60 * 8);
|
return sessionId;
|
}
|
|
|
public void consumeVideoDetailSession(String sessionId, String type) {
|
String key = "session-" + sessionId;
|
VideoDetailStatisticData data = (VideoDetailStatisticData) redisManager.getDataFromRedis(key);
|
redisManager.remove(key);
|
if (data != null) {
|
String st = String.format("%s#%s#%s", type, (System.currentTimeMillis() - data.getCreateTime()), data.toString());
|
sessionLogger.info(st);
|
}
|
}
|
|
|
}
|