package com.panzhihua.service_community.service.impl; import java.util.Date; import java.util.List; import javax.annotation.Resource; import com.panzhihua.common.model.vos.community.DataCount; import com.panzhihua.service_community.dao.ComActDynTypeMapper; import com.panzhihua.service_community.model.dos.ComActDynTypeDO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActDynVO; import com.panzhihua.common.utlis.RichTextUtil; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.ComActDynDAO; import com.panzhihua.service_community.dao.ComActDynUserDAO; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.model.dos.ComActDynDO; import com.panzhihua.service_community.model.dos.ComActDynUserDO; import com.panzhihua.service_community.service.ComActDynService; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; import static java.util.Objects.nonNull; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 社区动态 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-07 14:29 **/ @Slf4j @Service public class ComActDynServiceImpl extends ServiceImpl implements ComActDynService { @Resource private ComActDynDAO comActDynDAO; @Resource private ComActDynUserDAO comActDynUserDAO; @Resource private ComActDAO comActDAO; @Resource private ComActDynTypeMapper comActDynTypeMapper; /** * 分页查询社区动态 * * @param comActDynVO * 查询参数 * @return 动态集合 */ @Override public R pageDynamic(ComActDynVO comActDynVO) { Page page = new Page<>(); Long pageNum = comActDynVO.getPageNum(); Long pageSize = comActDynVO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActDynDAO.pageDynamic(page, comActDynVO); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActDynVO1 -> { if(comActDynVO1.getCategory()!=null&&comActDynVO1.getCategory()==4){ comActDynVO1.setContent(null); }else { String content = comActDynVO1.getContent(); if (!ObjectUtils.isEmpty(content)) { String text = RichTextUtil.getText(content); comActDynVO1.setContentText(text); } } }); } return R.ok(iPage); } /** * 社区动态详情 * * @param id * 动态id * @return 详情 */ @Override public R detailDynamic(Long id) { ComActDynDO comActDynDO = this.getById(id); ComActDynTypeDO comActDynTypeDO=comActDynTypeMapper.selectById(comActDynDO.getType()); if (ObjectUtils.isEmpty(comActDynDO)) { return R.fail("社区动态不存在"); } Integer category = comActDynDO.getCategory(); Integer count = comActDynUserDAO .selectCount(new QueryWrapper().lambda().eq(ComActDynUserDO::getDynId, id)); ComActDynVO comActDynVO = new ComActDynVO(); BeanUtils.copyProperties(comActDynDO, comActDynVO); comActDynVO.setReadNum(count); if (nonNull(category) && !category.equals(3)) { ComActDO comActDO = comActDAO.selectById(comActDynDO.getCommunityId()); if(comActDO!=null){ comActDynVO.setCommunityName(comActDO.getName()); } } if(comActDynDO.getCategory()==4){ if(comActDynDO.getReadNum()!=null){ comActDynDO.setReadNum(comActDynDO.getReadNum()+1); } else { comActDynDO.setReadNum(1); } comActDynDAO.updateById(comActDynDO); } if(comActDynTypeDO!=null && !StringUtils.isEmpty(comActDynTypeDO.getName())) { comActDynVO.setTypeName(comActDynTypeDO.getName()); } return R.ok(comActDynVO); } /** * 新增社区动态浏览记录 * * @param id * 动态主键 * @param userId * 登录用户id * @return 新增结果 */ @Override public R addDynamicUser(Long id, Long userId) { ComActDynUserDO comActDynUserDO = new ComActDynUserDO(); comActDynUserDO.setCreateAt(new Date()); comActDynUserDO.setDynId(id); comActDynUserDO.setUserId(userId); int insert = comActDynUserDAO.insert(comActDynUserDO); if (insert > 0) { return R.ok(); } return R.fail(); } /** * 定时任务刷新社区动态置顶状态 * * @return 刷新结果 */ @Override public R timedTaskDynIstopping() { int num = comActDynUserDAO.timedTaskDynIstopping(); log.info("定时任务--一共维护社区动态数量【{}】", num); return R.ok(num); } /** * 定时任务刷新社区动态发布状态 * * @return 刷新结果 */ @Override public R timedTaskDynStatus() { int num = comActDynDAO.timedTaskDynStatus(); log.info("定时任务--一共刷新社区动态发布状态数量【{}】", num); return R.ok(num); } /** * 管理后台分页查询社区动态 * * @param comActDynVO * 查询参数 * @return 动态集合 */ @Override public R pageDynamicByAdmin(ComActDynVO comActDynVO) { Long pageNum = comActDynVO.getPageNum(); Long pageSize = comActDynVO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } Page page = new Page(pageNum,pageSize); IPage iPage = comActDynDAO.pageDynamicByAdmin(page, comActDynVO); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActDynVO1 -> { // String content = comActDynVO1.getContent(); // if (!ObjectUtils.isEmpty(content)) { // String text = RichTextUtil.getText(content); // comActDynVO1.setContentText(text); // } // String content = comActDynDAO.getContent(comActDynVO1.getId()+""); int num=comActDynDAO.getReadNum(comActDynVO1.getId()+""); comActDynVO1.setReadNum(num); // comActDynVO1.setContent(content); // if (!ObjectUtils.isEmpty(content)) { // String text = RichTextUtil.getText(content); // comActDynVO1.setContentText(text); // } }); } return R.ok(iPage); } @Override public String getTypeId(String communityId, String name) { return comActDynDAO.getTypeId(communityId,name); } }