From b2d360d9113b6955287108ca9e90d76a1f3c1419 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期日, 29 九月 2024 15:05:11 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia --- server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java | 134 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 129 insertions(+), 5 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java index f51413f..142c846 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java @@ -1,17 +1,24 @@ package com.doumee.service.business.impl; +import com.dingtalk.api.request.OapiMaterialNewsListRequest; import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; +import com.doumee.dao.business.ActionsMapper; import com.doumee.dao.business.MultifileMapper; import com.doumee.dao.business.NewsMapper; +import com.doumee.dao.business.model.Actions; import com.doumee.dao.business.model.BjParam; import com.doumee.dao.business.model.Multifile; import com.doumee.dao.business.model.News; import com.doumee.dao.system.model.SystemUser; +import com.doumee.dao.web.response.DailyUpdatesResponse; import com.doumee.service.business.NewsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -25,9 +32,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import javax.swing.*; +import java.util.*; +import java.util.stream.Collectors; /** * 璧勮鍜屽畾鍒舵湇鍔′俊鎭〃Service瀹炵幇 @@ -43,6 +50,8 @@ private MultifileMapper multifileMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; + @Autowired + private ActionsMapper actionsMapper; @Override @Transactional @@ -55,6 +64,8 @@ param.setCreateDate(new Date()); param.setEditDate(param.getCreateDate()); param.setPublishUserid(param.getCreator()); + param.setLookNum(Constants.ZERO); + param.setDonwloadNum(Constants.ZERO); param.setFileType(Constants.formatIntegerNum(param.getFileType())); newsMapper.insert(param); if(param.getFileList()!=null && param.getFileList().size()>0){ @@ -178,12 +189,19 @@ IPage<News> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<News> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); + if(Objects.isNull(pageWrap.getModel())){ + News news = new News(); + pageWrap.setModel(news); + } pageWrap.getModel().setIsdeleted(Constants.ZERO); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,News::getEditor) .selectAll(News.class) .selectAs(SystemUser::getRealname,News::getEditorName); if (pageWrap.getModel().getId() != null) { queryWrapper.eq(News::getId, pageWrap.getModel().getId()); + } + if(pageWrap.getModel().getIsPublish()!=null && Constants.equalsInteger(pageWrap.getModel().getIsPublish(),Constants.ONE)){ + queryWrapper.apply(" now() >= t.PUBLISH_DATE "); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.eq(News::getCreator, pageWrap.getModel().getCreator()); @@ -242,10 +260,10 @@ if (pageWrap.getModel().getType() != null) { queryWrapper.eq(News::getType, pageWrap.getModel().getType()); } + queryWrapper.orderByDesc(News::getCreateDate); PageData<News> pageData = PageData.from(newsMapper.selectJoinPage(page, News.class,queryWrapper)); if(pageData!=null && pageData.getRecords()!=null && pageData.getRecords().size()>0){ - List<Long> idList = new ArrayList<>(); for(News model : pageData.getRecords()){ idList.add(model.getId()); @@ -254,7 +272,6 @@ for(News model : pageData.getRecords()){ setFilelistById(model,files); } - } return pageData; } @@ -318,4 +335,111 @@ QueryWrapper<News> wrapper = new QueryWrapper<>(news); return newsMapper.selectCount(wrapper); } + + + /** + * 鏌ヨ瀹氬埗鏈嶅姟鍒楄〃 + * @return + */ + @Override + public List<News> getCustomizedNewsList(Integer type,Integer num,Integer fileType){ + List<News> list = newsMapper.selectList(new QueryWrapper<News>().lambda() + .eq(News::getIsdeleted,Constants.ZERO) + .eq(News::getType,type) + .eq(News::getStatus,Constants.ZERO) + .eq(Objects.nonNull(fileType),News::getFileType,fileType) + .last(Objects.nonNull(num),"limit " + num) + .orderByAsc(News::getSortnum) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){ + List<Long> idList = list.stream().map(i->i.getId()).collect(Collectors.toList()); + List<Multifile> files = dealMultifileList(idList); + for(News model : list){ + setFilelistById(model,files); + } + } + return list; + } + + @Override + public News getCustomizedNewsDetail(Long id){ + News news = newsMapper.selectById(id); + if(Objects.isNull(news)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + List<Long> idList = new ArrayList<>(); + idList.add(id); + List<Multifile> files = dealMultifileList(idList); + setFilelistById(news,files); + //澧炲姞娴忚閲� + newsMapper.update(new UpdateWrapper<News>().lambda() + .setSql( " LOOK_NUM = ( LOOK_NUM + 1 ) ").eq(News::getId,id)); + return news; + } + + + /** + * 姣忔棩涓婃柊 + * @return + */ + @Override + public DailyUpdatesResponse getDailyUpdatesResponse(){ + DailyUpdatesResponse dailyUpdatesResponse = new DailyUpdatesResponse(); + dailyUpdatesResponse.setDailyUpdateNum( + newsMapper.selectCount(new QueryWrapper<News>().lambda() + .eq(News::getIsdeleted,Constants.ZERO) + .like(News::getCreateDate, DateUtil.getDateLong(new Date())) + .apply(" now() >= PUBLISH_DATE ") + .eq(News::getType,Constants.ZERO) + )); + dailyUpdatesResponse.setShareNum( + actionsMapper.selectCount(new QueryWrapper<Actions>()) + ); + List<News> list = newsMapper.selectList(new QueryWrapper<News>().lambda() + .eq(News::getIsdeleted,Constants.ZERO) + .eq(News::getType,Constants.ZERO) + .eq(News::getStatus,Constants.ZERO) + .eq(News::getFileType,Constants.ZERO) + .apply(" now() >= PUBLISH_DATE ") + .last( "limit 3" ) + .orderByDesc(News::getCreateDate) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){ + List<Long> idList = list.stream().map(i->i.getId()).collect(Collectors.toList()); + List<Multifile> files = dealMultifileList(idList); + for(News model : list){ + setFilelistById(model,files); + } + } + dailyUpdatesResponse.setNewsList(list); + return dailyUpdatesResponse; + } + + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + @Override + public void saveShareRecord(Long id,Long userId){ + News news = newsMapper.selectById(id); + if(Objects.isNull(news)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + Actions actions = new Actions(); + actions.setCreateDate(new Date()); + actions.setIsDeleted(Constants.ZERO); + actions.setType(Constants.ZERO); + actions.setObjId(id); + actions.setObjType(Constants.ZERO); + actions.setMemberId(userId); + actions.setTitle(news.getTitle()); + actions.setContent(news.getContent()); + actions.setSubTitle(news.getSubTitle()); + actionsMapper.insert(actions); + //澧炲姞鍒嗕韩閲� + newsMapper.update(new UpdateWrapper<News>().lambda() + .setSql( " DONWLOAD_NUM = ( DONWLOAD_NUM + 1 ) ").eq(News::getId,id)); + + } + + + + } -- Gitblit v1.9.3