package com.yeshi.buwan.controller.parser; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.video.VideoWatchHistory; import com.yeshi.buwan.service.imp.AttentionService; import com.yeshi.buwan.service.imp.CollectionService; import com.yeshi.buwan.service.imp.VideoService; import com.yeshi.buwan.service.inter.video.VideoWatchHistoryService; import com.yeshi.buwan.util.Constant; import com.yeshi.buwan.util.JsonUtil; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.vo.AcceptData; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Component public class UserVideoParser { @Resource private VideoWatchHistoryService videoWatchHistoryService; @Resource private VideoService videoService; @Resource private CollectionService collectionService; @Resource private AttentionService attentionService; public void getWatchHistory(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { int page = Integer.parseInt(request.getParameter("Page")); page = page == 0 ? 1 : page; List list = videoWatchHistoryService.listHistory(acceptData.getDevice(), page, Constant.pageCount); long count = videoWatchHistoryService.countHistory(acceptData.getDevice()); List videoIds = new ArrayList<>(); if (list != null) for (VideoWatchHistory wh : list) { videoIds.add(wh.getVideoId()); } List videoInfoList = videoService.getVideoInfoList(videoIds); Map videoInfoMap = new HashMap<>(); if (videoInfoList != null) for (VideoInfo vi : videoInfoList) { if (vi != null) videoInfoMap.put(vi.getId(), vi); } for (VideoWatchHistory wh : list) { wh.setVideo(videoInfoMap.get(wh.getVideoId())); } JSONObject root = new JSONObject(); root.put("count", count); root.put("list", StringUtil.outPutResultJson(list)); out.print(JsonUtil.loadTrueJson(root.toString())); } public void deleteWatchHistory(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String ids = (request.getParameter("Ids")); List idList = new ArrayList<>(); JSONArray array = JSONArray.fromObject(ids); if (array != null) for (int i = 0; i < array.size(); i++) { idList.add(array.optString(i)); } videoWatchHistoryService.delete(idList); out.print(JsonUtil.loadTrueJson("")); } /** * 获取用户视频数据数量信息 * * @param acceptData * @param request * @param out */ public void getUserVideoDataCount(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String loginUid = request.getParameter("LoginUid"); if (StringUtil.isNullOrEmpty(loginUid)) { out.print(JsonUtil.loadFalseJson("用户未登录")); return; } long collectionCount = collectionService.getCollectVideoCount(acceptData.getUid()); long attentionCount = attentionService.getAttentionCountByLoginUid(Long.parseLong(loginUid)); JSONObject data = new JSONObject(); data.put("collectionCount", collectionCount); data.put("attentionCount", attentionCount); out.print(JsonUtil.loadTrueJson(data.toString())); } }