package com.qxueyou.scc.portal.information.service.impl;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
//import com.qxueyou.appraisal.console.article.dto.ArticleDTO;
|
//import com.qxueyou.appraisal.console.article.dto.ArticleInfoDTO;
|
//import com.qxueyou.appraisal.console.article.service.IArticleService;
|
//import com.qxueyou.appraisal.console.article.vo.ListArticleVO;
|
//import com.qxueyou.appraisal.console.article.vo.SaveArticleVO;
|
//import com.qxueyou.appraisal.console.article.vo.UpdateArticleVO;
|
//import com.qxueyou.entity.article.ArticleDO;
|
//import com.qxueyou.model.Result;
|
import com.qxueyou.scc.base.model.Pager;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.service.impl.CommonAppService;
|
//import com.qxueyou.service.CommonMongoService;
|
//import com.qxueyou.util.TraceMongoUtils;
|
import com.qxueyou.scc.base.util.ClientUtils;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.portal.information.dto.ArticleInfoDTO;
|
import com.qxueyou.scc.portal.information.model.Information;
|
import com.qxueyou.scc.portal.information.service.IInformationService;
|
import com.qxueyou.scc.portal.information.vo.ListArticleVO;
|
import com.qxueyou.scc.portal.information.vo.SaveArticleVO;
|
import com.qxueyou.scc.portal.information.vo.UpdateArticleVO;
|
import com.qxueyou.scc.user.model.UserTeacher;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.data.domain.Sort;
|
//import org.springframework.data.mongodb.core.query.Criteria;
|
//import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.io.IOException;
|
import java.time.LocalDateTime;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author angy
|
* @created by 2021/3/1
|
*/
|
@Service
|
public class InformationService extends CommonAppService implements IInformationService {
|
|
private ObjectMapper objectMapper = new ObjectMapper();
|
|
/**
|
* 获取资讯总条数
|
*/
|
@Override
|
public int findInformationCount(String type,String title,String status) {
|
|
String hql = "from Information where type like :type and title like :title and status like :status and deleteFlag=0";
|
return findCountByComplexHql(hql, CollectionUtils.newObjectMap("type", type + "%","title", title + "%","status",status+"%"));
|
}
|
|
@Override
|
public Result listArticle(ListArticleVO vo) {
|
String type = StringUtils.isEmpty(vo.getType()) ? "" : vo.getType();
|
|
String title = StringUtils.isEmpty(vo.getKeyword()) ? "" : vo.getKeyword();
|
|
String hql = "from Information where deleteFlag=0 and type like ? and title like ? order by createTime desc";
|
List<Information> list = findList(hql, new Pager(vo.getSize(), vo.getPage()), CollectionUtils.newList(type.concat("%"), title.concat("%")), Information.class);
|
int count =findInformationCount(type,title,"");//资讯总条数
|
return new Result(true,"success", CollectionUtils.newObjectMap("list", list, "count", count));
|
}
|
|
@Override
|
public Result save(SaveArticleVO vo) {
|
Information articleDO = new Information();
|
BeanUtils.copyProperties(vo, articleDO);
|
articleDO.setBrowseCount(0);
|
articleDO.setDeleteFlag(0);
|
articleDO.setCreateTime(new Date());
|
articleDO.setUpdateTime(new Date());
|
articleDO.setStatus(Information.DRAFT_STATUS);
|
if (StringUtils.isNotBlank(vo.getAttachment())) {
|
// try {
|
//List<Map<String, String>> attachment = objectMapper.readValue(vo.getAttachment(), List.class);
|
articleDO.setAttachment(vo.getAttachment());
|
// } catch (IOException e) {
|
// log.error("文章附件json转换出错,json content : {}", vo.getAttachment());
|
// }
|
}
|
if (vo.getVideoUrl()!=null) {
|
// String videoUrl="";
|
// try {
|
// List<Map<String, String>> attachment = objectMapper.readValue(vo.getVideoUrl(), List.class);
|
// for (Map<String, String> map : attachment) {
|
// videoUrl=map.get("videoUrl");
|
// }
|
articleDO.setVideoUrl(vo.getVideoUrl());
|
// } catch (IOException e) {
|
// log.error("文章附件json转换出错,json content : {}", vo.getVideoUrl());
|
// }
|
}
|
// TraceMongoUtils.setCreateTrace(articleDO);
|
save(articleDO);
|
return Result.SUCCESS;
|
}
|
|
@Override
|
public Result delete(String id) {
|
Result result = new Result(true);
|
String[] arrStr = id.split(",");
|
if (arrStr != null && arrStr.length > 0) {
|
String hql = "update Information set deleteFlag = 1 where Id=?";
|
result = bulkUpdateInLoop(hql, arrStr);
|
}
|
// andIn(condition, "id", idLst);
|
//
|
// Update update = Update.update("deleteFlag", true);
|
// update.set("updateTime", LocalDateTime.now());
|
// template.updateMulti(Query.query(condition), update, ArticleDO.class);
|
//
|
return result;
|
//
|
}
|
|
@Override
|
public Result update(UpdateArticleVO vo) {
|
//
|
Information articleDO = read(Information.class, vo.getId());
|
//
|
if (StringUtils.equals(articleDO.getStatus(), Information.UP_STATUS)) {
|
return new Result(true, "不能对发布状态的文章进行修改!");
|
}
|
//
|
BeanUtils.copyProperties(vo, articleDO);
|
//
|
if (StringUtils.isNotBlank(vo.getAttachment())) {
|
// try {
|
// List<Map<String, String>> attachment = objectMapper.readValue(vo.getAttachment(), List.class);
|
articleDO.setAttachment(vo.getAttachment());
|
// } catch (IOException e) {
|
// log.error("文章附件json转换出错,json content : {}", vo.getAttachment());
|
// }
|
}
|
|
if (StringUtils.isNotBlank(vo.getVideoUrl())) {
|
String videoUrl="";
|
// try {
|
// List<Map<String, String>> attachment = objectMapper.readValue(vo.getVideoUrl(), List.class);
|
// for (Map<String, String> map : attachment) {
|
// videoUrl=map.get("videoUrl");
|
// }
|
articleDO.setVideoUrl(vo.getVideoUrl());
|
// } catch (IOException e) {
|
// log.error("文章附件json转换出错,json content : {}", vo.getVideoUrl());
|
// }
|
}
|
//
|
// TraceMongoUtils.setUpdateTrace(articleDO);
|
save(articleDO);
|
return Result.SUCCESS;
|
}
|
//
|
@Override
|
public Result getArticleById(String id) {
|
|
Information articleDO = read(Information.class, id);
|
ArticleInfoDTO articleInfoDTO = new ArticleInfoDTO();
|
BeanUtils.copyProperties(articleDO, articleInfoDTO);
|
return new Result(true, "articleInfoDTO",articleInfoDTO);
|
//
|
}
|
|
@Override
|
public Result upById(String id) {
|
Information articleDO = read(Information.class, id);
|
|
if (StringUtils.isNotBlank(articleDO.getTitle())) {
|
int count = findInformationCount("", articleDO.getTitle(),Information.UP_STATUS);
|
if (count > 0) {
|
return new Result(true, "该标题文章已发布,请勿发布相同的标题文章!");
|
}
|
}
|
articleDO.setStatus(Information.UP_STATUS);
|
// TraceMongoUtils.setUpdateTrace(articleDO);
|
save(articleDO);
|
return Result.SUCCESS;
|
}
|
//
|
@Override
|
public Result downById(String id) {
|
Result result = new Result(true);
|
// Criteria condition = condition();
|
String[] arrStr = id.split(",");
|
// List<String> idLst = Arrays.asList(arrStr);
|
// andIn(condition, "id", idLst);
|
// Update update = Update.update("status", Information.DOWN_STATUS);
|
// update.set("updateTime", LocalDateTime.now());
|
// template.updateMulti(Query.query(condition), update, ArticleDO.class);
|
String hql = "update Information set updateTime=now() ,status = 'down' where Id=?";
|
result = bulkUpdateInLoop(hql, arrStr);
|
return result;
|
}
|
}
|