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.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;
|
|
public void getWatchHistory(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
|
int page = Integer.parseInt(request.getParameter("Page"));
|
page = page == 0 ? 1 : page;
|
List<VideoWatchHistory> list = videoWatchHistoryService.listHistory(acceptData.getDevice(), page, Constant.pageCount);
|
long count = videoWatchHistoryService.countHistory(acceptData.getDevice());
|
|
List<String> videoIds = new ArrayList<>();
|
if (list != null)
|
for (VideoWatchHistory wh : list) {
|
videoIds.add(wh.getVideoId());
|
}
|
|
List<VideoInfo> videoInfoList = videoService.getVideoInfoList(videoIds);
|
Map<String, VideoInfo> videoInfoMap = new HashMap<>();
|
if (videoInfoList != null)
|
for (VideoInfo vi : videoInfoList) {
|
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<String> 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(""));
|
}
|
|
}
|