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()); } }