package com.zhujizheng.IHome.everymoment.vo;
import com.github.binarywang.java.emoji.EmojiConverter;
import com.vdurmont.emoji.EmojiParser;
import com.zhujizheng.IHome.generator.dao.*;
import com.zhujizheng.IHome.generator.mapper.PYEveryMomentCommentMapper;
import com.zhujizheng.IHome.generator.mapper.PYEveryMomentImgMapper;
import com.zhujizheng.IHome.generator.mapper.PYEveryMomentThumbupMapper;
import com.zhujizheng.IHome.generator.mapper.PYUserInfoMapper;
import lombok.Data;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA
*
* Author: yons
* Date: 2019/03/08
* Time: 01:04
* Description:
* Copyright © 2019年 com.zhujizheng. All rights reserved.
*/
@Data
public class PYEveryMomentVO {
private Integer emId;
private Integer userId;
private String userName;
private String userIcon;
private Integer orientation;
private Boolean userSex;
private String title;
private Long releaseTime;
private List imgs;
private String tag;
private String location;
private String deviceName;
private Boolean needDecode;
private List comments;
private List thumbups;
public static Pair createVO(PYEveryMoment everyMoment,
PYUserInfoMapper userInfoMapper,
PYEveryMomentImgMapper imgMapper,
PYEveryMomentCommentMapper commentMapper,
PYEveryMomentThumbupMapper thumbupMapper) {
System.out.println("everyMoment = " + everyMoment + ", userInfoMapper = " + userInfoMapper + ", imgMapper = " + imgMapper + ", commentMapper = " + commentMapper + ", thumbupMapper = " + thumbupMapper);
if (everyMoment == null || userInfoMapper == null || imgMapper == null || commentMapper == null || thumbupMapper == null) {
return null;
}
// 初始化一个动态VO模型
PYEveryMomentVO everyMomentVO = new PYEveryMomentVO();
// 设置动态VO的每刻id
everyMomentVO.setEmId(everyMoment.getId());
// 设置动态VO的标题
String title = EmojiConverter.getInstance().toUnicode(everyMoment.getTitle());
everyMomentVO.setTitle(title);
// 是否需要解密
everyMomentVO.setNeedDecode(everyMoment.getNeedDecode());
// 设置动态VO的标签
String tag = EmojiConverter.getInstance().toUnicode(everyMoment.getTag());
everyMomentVO.setTag(tag);
// 设置动态VO的发布时间
everyMomentVO.setReleaseTime(everyMoment.getReleaseTime());
// 设置动态VO的位置信息
everyMomentVO.setLocation(everyMoment.getLocation());
// 设置动态VO的设备名
everyMomentVO.setDeviceName(everyMoment.getDeviceName());
// 根据动态id获取动态图片模型集合
List imgList = imgMapper.selectImgByEmId(everyMoment.getId());
// 初始化一个图片VO集合
List imgVOList = new ArrayList<>();
// 遍历动态图片模型集合
for (PYEveryMomentImg img : imgList) {
// 初始化一个图片VO模型
PYEveryMomentImgVO imgVO = PYEveryMomentImgVO.createImgVO(img);
// 将动态图片模型的图片url存入图片url集合中
imgVOList.add(imgVO);
}
// 设置动态VO的图片集合
everyMomentVO.setImgs(imgVOList);
PYUserInfo userInfo = userInfoMapper.selectUserInfoByUserId(everyMoment.getUserId());
if (userInfo == null) {
return null;
}
// 设置动态VO的用户id
everyMomentVO.setUserId(userInfo.getId());
// 设置动态VO的用户名
String userName = EmojiConverter.getInstance().toUnicode(userInfo.getUserName());
everyMomentVO.setUserName(userName);
// 设置动态VO的用户头像
everyMomentVO.setUserIcon(userInfo.getUserIcon());
// 设置动态VO的用户头像方向
everyMomentVO.setOrientation(userInfo.getOrientation());
// 设置动态VO的用户性别
everyMomentVO.setUserSex(userInfo.getUserSex());
// 根据动态id获取所有评论
List commentList = commentMapper.seletAllCommentByEmId(everyMoment.getId());
// 评论VO集合
List commentVOList = new ArrayList<>();
for (PYEveryMomentComment comment : commentList) {
// 初始化一个评论VO模型
PYEveryMomentCommentVO commentVO = PYEveryMomentCommentVO.createCommentVO(comment, userInfoMapper);
// 将评论VO添加到评论VO集合
commentVOList.add(commentVO);
}
// 设置评论VO集合
everyMomentVO.setComments(commentVOList);
// 根据动态id获取所有点赞
List thumbupList = thumbupMapper.selectAllThumbupByEmId(everyMoment.getId());
// 点赞VO集合
List thumbupVOList = new ArrayList<>();
for (PYEveryMomentThumbup thumbup : thumbupList) {
// 初始化一个点赞VO模型
PYEveryMomentThumbupVO thumbupVO = PYEveryMomentThumbupVO.createThumbupVO(thumbup, userInfoMapper);
// 将点赞VO添加到点赞VO集合
thumbupVOList.add(thumbupVO);
}
// 设置点赞VO集合
everyMomentVO.setThumbups(thumbupVOList);
System.out.println("everyMomentVO = " + everyMomentVO + ", loverId = " + userInfo.getLoverId());
return Pair.of(everyMomentVO, userInfo.getLoverId());
}
}