package com.qxueyou.scc.portal.homepage.serivce.imp; //import com.qxueyou.appraisal.web.homepage.dao.AppraisalBatchDao; //import com.qxueyou.appraisal.web.homepage.dao.ArticleDao; //import com.qxueyou.appraisal.web.homepage.dao.ContestsBatchDao; //import com.qxueyou.appraisal.web.homepage.dao.OccupationDao; //import com.qxueyou.appraisal.web.homepage.serivce.IHomepageService; //import com.qxueyou.entity.article.ArticleDO; //import com.qxueyou.util.CollectionUtils; import com.querydsl.jpa.impl.JPAQuery; import com.qxueyou.scc.admin.classes.service.IClassLectureService; import com.qxueyou.scc.admin.progress.dao.ProgressDAO; import com.qxueyou.scc.base.service.impl.CommonAppService; import com.qxueyou.scc.base.util.CollectionUtils; import com.qxueyou.scc.evaluate.service.IEvaluateService; import com.qxueyou.scc.operation.topic.service.ITopicService; import com.qxueyou.scc.portal.homepage.dao.ArticleDao; import com.qxueyou.scc.portal.homepage.serivce.IHomepageService; import com.qxueyou.scc.portal.information.model.Information; import com.qxueyou.scc.teach.res.model.Res; import com.qxueyou.scc.teach.res.model.ResLib; import com.qxueyou.scc.teach.res.service.IResAudioService; import com.qxueyou.scc.teach.subject.model.QSubjectLecture; import com.qxueyou.scc.teach.subject.model.SubjectLecture; import com.qxueyou.scc.teach.subject.model.view.OpenSubjectV; import com.qxueyou.scc.teach.subject.service.ILectureService; import com.qxueyou.scc.teach.subject.service.ISubjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import java.util.*; import static java.util.stream.Collectors.toList; /** * @author ZERO 2021-03-03 09:16 */ @Service public class HomepageService extends CommonAppService implements IHomepageService { @Autowired private ArticleDao articleDao; @Autowired ISubjectService subjectService; @Autowired ILectureService lectureService; @Autowired IClassLectureService clsLectureService; @Autowired IResAudioService audioService; @Autowired ProgressDAO progressDao; @Autowired ITopicService topicService; @Autowired IEvaluateService evaluateService; /** * 获取首页数据 */ // @Override // public Map getIndexDetail() { // // List openSubjectVS = subjectService.listOpenSubjectV(); // //华文课堂 //// List chineseLanguageClassId= openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("华文课堂")).map(OpenSubjectV::getSubjectId).collect(toList()); // //文化中国 // List culturalChinaId = openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("文化中国")).map(OpenSubjectV::getSubjectId).collect(toList()); // //文化课堂 // List culturalClassroomId = openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("文化课堂")).map(OpenSubjectV::getSubjectId).collect(toList()); // //实景课堂 // List realClassId = openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("实景课堂")).map(OpenSubjectV::getSubjectId).collect(toList()); // //中文+职业教育课程 // List chineseCourseId = openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("中文职业教育课程")).map(OpenSubjectV::getSubjectId).collect(toList()); // // StringBuffer hql = new StringBuffer("from SubjectLecture p where deleteFlag is false and status=?"); // List args = CollectionUtils.newList(SubjectLecture.STATUS_DRAFT); // List subjectLectureList = find(hql.toString(), args, SubjectLecture.class); // // //华文课堂 //// List shineseLanguageClassResId= subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getSubjectId().equals(chineseLanguageClassId.get(0))).map(SubjectLecture::getResItemId).collect(toList()); // //文化中国 // List culturalChinaResId = subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getName().equals(culturalChinaId.get(0))).map(SubjectLecture::getResItemId).collect(toList()); // //文化课堂 // List culturalClassroomResId = subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getName().equals(culturalClassroomId.get(0))).map(SubjectLecture::getResItemId).collect(toList()); // //实景课堂 // List realClassResId = subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getName().equals(realClassId.get(0))).map(SubjectLecture::getResItemId).collect(toList()); // //中文+职业教育课程 // List chineseCourseResId = subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getName().equals(chineseCourseId.get(0))).map(SubjectLecture::getResItemId).collect(toList()); // StringBuffer hqlRes = new StringBuffer("from Res p where deleteFlag is false and status=?"); // List resList = find(hqlRes.toString(), args, Res.class); // ArrayList shineseLanguageClassRes = new ArrayList<>(); // ArrayList culturalChinaRes = new ArrayList<>(); // ArrayList culturalClassroomRes = new ArrayList<>(); // ArrayList realClassRes = new ArrayList<>(); // for (Res res : resList) { //// for (String resItemId : shineseLanguageClassResId) { //// if (res.getResId().equals(resItemId)) { //// shineseLanguageClassRes.add(res); //// } //// } // for (String resItemId : culturalChinaResId) { // if (res.getResId().equals(resItemId)) { // culturalChinaRes.add(res); // } // } // for (String resItemId : culturalClassroomResId) { // if (res.getResId().equals(resItemId)) { // culturalClassroomRes.add(res); // } // } // for (String resItemId : realClassResId) { // if (res.getResId().equals(resItemId)) { // realClassRes.add(res); // } // } // } // //// System.err.println("================>获取首页数据"); // return CollectionUtils.newObjectMap( // "华文课堂", shineseLanguageClassRes, // "文化中国", culturalChinaRes, // "实景课堂", culturalClassroomRes, // "中文+职业教育课程", realClassRes); // } @Override public Map getIndexDetail() { List openSubjectVS = subjectService.listOpenSubjectV(); //文化中国 List culturalChinaId = openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("文化中国")).map(OpenSubjectV::getSubjectId).collect(toList()); //文化课堂 // List culturalClassroomId = openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("文化课堂")).map(OpenSubjectV::getSubjectId).collect(toList()); //华文课堂 List chineseLanguageClassId= openSubjectVS.stream().filter(openSubjectV -> openSubjectV.getSubjectName().equals("华文课堂")).map(OpenSubjectV::getSubjectId).collect(toList()); StringBuffer hql = new StringBuffer("from SubjectLecture p where deleteFlag is false and status=?"); List args = CollectionUtils.newList(SubjectLecture.STATUS_DRAFT); List subjectLectureList = find(hql.toString(), args, SubjectLecture.class); //文化中国 List culturalChinaResId = culturalChinaId.size() == 0 ? null : subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getSubjectId().equals(culturalChinaId.get(0))).map(SubjectLecture::getResItemId).collect(toList()); //文化课堂 List chineseLanguageClassResId = chineseLanguageClassId.size() == 0 ? null : subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getSubjectId().equals(chineseLanguageClassId.get(0))).map(SubjectLecture::getResItemId).collect(toList()); StringBuffer hqlRes = new StringBuffer("from Res p where deleteFlag is false and status=?"); List resList = find(hqlRes.toString(), args, Res.class); List culturalChinaRes = new ArrayList<>(); List chineseLanguageClassRes = new ArrayList<>(); if (culturalChinaResId != null) { for (Res res : resList) { for (String resItemId : culturalChinaResId) { if (res.getResId().equals(resItemId)) { culturalChinaRes.add(res); } } } } if (chineseLanguageClassResId != null) { for (Res res : resList) { for (String resItemId : chineseLanguageClassResId) { if (res.getResId().equals(resItemId)) { chineseLanguageClassRes.add(res); } } } } // return CollectionUtils.newObjectMap( // "culturalClassroomRes", chineseLanguageClassRes, // "culturalChinaRes", culturalChinaRes); return CollectionUtils.newObjectMap( "culturalClassroomRes",CollectionUtils.newObjectMap("subjectId",culturalChinaId.get(0),"data",chineseLanguageClassRes), "culturalChinaRes",CollectionUtils.newObjectMap("subjectId",chineseLanguageClassId.get(0),"data",culturalChinaRes) ); } @Override public Map getExcellentTeaching() { List openSubjectVS = subjectService.listOpenSubjectV(); //文化课堂 List culturalClassroomId = openSubjectVS.stream() .filter(openSubjectV -> openSubjectV.getSubjectName().equals("华文课堂")) .map(OpenSubjectV::getSubjectId).collect(toList()); //实景课堂 List realClassId = openSubjectVS.stream() .filter(openSubjectV -> openSubjectV.getSubjectName().equals("实景课堂")) .map(OpenSubjectV::getSubjectId).collect(toList()); //中文+职业教育课程 List chineseCourseId = openSubjectVS.stream() .filter(openSubjectV -> openSubjectV.getSubjectName().equals("中文+职业教育课程")) .map(OpenSubjectV::getSubjectId).collect(toList()); StringBuffer hql = new StringBuffer("from SubjectLecture p where deleteFlag is false and status=?"); List args = CollectionUtils.newList(SubjectLecture.STATUS_DRAFT); List subjectLectureList = find(hql.toString(), args, SubjectLecture.class); //华文课堂 List culturalClassroomResId = culturalClassroomId.size() == 0 ? null : subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getSubjectId().equals(culturalClassroomId.get(0))) .sorted(Comparator.comparing(SubjectLecture::getCreateTime) .reversed()).map(SubjectLecture::getResItemId).limit(8).collect(toList()); //实景课堂 List realClassResId = realClassId.size() == 0 ? null : subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getSubjectId().equals(realClassId.get(0))) .sorted(Comparator.comparing(SubjectLecture::getCreateTime) .reversed()).map(SubjectLecture::getResItemId).limit(8).collect(toList()); //中文+职业教育课程 List chineseCourseResId = chineseCourseId.size() == 0 ? null : subjectLectureList.stream().filter(subjectLecture -> subjectLecture.getSubjectId().equals(chineseCourseId.get(0))) .sorted(Comparator.comparing(SubjectLecture::getCreateTime) .reversed()).map(SubjectLecture::getResItemId).limit(8).collect(toList()); StringBuffer hqlRes = new StringBuffer("from Res p where deleteFlag is false and status=?"); List resList = find(hqlRes.toString(), args, Res.class); ArrayList chineseCourseRes = new ArrayList<>(); ArrayList culturalClassroomRes = new ArrayList<>();//文化课堂 ArrayList realClassRes = new ArrayList<>(); if (culturalClassroomResId != null) { for (String resItemId : culturalClassroomResId) { for (Res res : resList) { if (res.getResId().equals(resItemId)) { culturalClassroomRes.add(res); } } } } if (realClassResId != null) { for (String resItemId : realClassResId) { for (Res res : resList) { if (res.getResId().equals(resItemId)) { realClassRes.add(res); } } } } if (chineseCourseResId != null) { for (String resItemId : chineseCourseResId) { for (Res res : resList) { if (res.getResId().equals(resItemId)) { chineseCourseRes.add(res); } } } } return CollectionUtils.newObjectMap( "chineseCourseRes",CollectionUtils.newObjectMap("subjectId",culturalClassroomId.size() == 0 ? null : culturalClassroomId.get(0),"data",chineseCourseRes), "culturalClassroomRes",CollectionUtils.newObjectMap("subjectId",realClassId.size() == 0 ? null : realClassId.get(0),"data",culturalClassroomRes), "realClassRes", CollectionUtils.newObjectMap("subjectId",chineseCourseId.size() == 0 ? null :chineseCourseId.get(0),"data",realClassRes)); } /** * 获取首页标签 */ @Override public List> getTabs() { boolean exist; List> tabs = new ArrayList<>(); List> sub = new ArrayList<>(); exist = articleDao.exist("examBriefing"); if (exist) tabs.add(CollectionUtils.newObjectMap("name", "媒体聚焦", "type", "examBriefing", "list", sub)); exist = articleDao.exist("qualifiedSet"); if (exist) tabs.add(CollectionUtils.newObjectMap("name", "华教新鲜事", "type", "qualifiedSet")); exist = articleDao.exist("policiesRegulations"); if (exist) tabs.add(CollectionUtils.newObjectMap("name", "新闻中心", "type", "policiesRegulations")); exist = articleDao.exist("examinationGuide"); if (exist) tabs.add(CollectionUtils.newObjectMap("name", "专家风采", "type", "examinationGuide")); exist = articleDao.exist("popularInformation"); if (exist) tabs.add(CollectionUtils.newObjectMap("name", "联系我们", "type", "popularInformation")); exist = articleDao.existsubColumn("examBriefing", "introduce"); if (exist) sub.add(CollectionUtils.newStringMap("name", "海外资讯", "subColumn", "introduce")); exist = articleDao.existsubColumn("examBriefing", "contestFile"); if (exist) sub.add(CollectionUtils.newStringMap("name", "海外资讯", "subColumn", "contestFile")); exist = articleDao.existsubColumn("examBriefing", "previousContest"); if (exist) sub.add(CollectionUtils.newStringMap("name", "往届大赛", "subColumn", "previousContest")); return tabs; } /** * 获取文章列表 */ @Override public Map getArticle(String type, String subColumn, String numbers, int page, int size, String keyword) { return articleDao.moreOccupation(type, subColumn, numbers, page, size, keyword); } /** * @param id * @return */ @Override public Map getArticleDetail(String id) { //inc浏览数 articleDao.incBrowseCount(id); Information article = articleDao.read(Information.class, id); Map data = CollectionUtils.newObjectMap( "title", article.getTitle(), "dateTime", article.getDateTime(), "browseCount", article.getBrowseCount(), "content", article.getContent(), "attachment", article.getAttachment()); Map preAndBehindArticle = articleDao.getPreAndBehindArticle(id, article.getType()); data.putAll(preAndBehindArticle); return data; } public Information getArticlesType(String type, String subColumn) { Information articleDO = articleDao.getArticle(type, subColumn); return articleDO; } @Override public Map getVideo(String type, String subColumn, int page, int size) { return articleDao.getVideoList(type, subColumn, page, size); } }