From 86f415c76ab9f5b48960ff1086f996fa47733d46 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 17 七月 2024 17:36:07 +0800
Subject: [PATCH] 代码提交

---
 server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 105 insertions(+), 3 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..f138695 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,23 @@
 package com.doumee.service.business.impl;
 
 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 +31,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 +49,8 @@
     private MultifileMapper multifileMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private ActionsMapper actionsMapper;
 
     @Override
     @Transactional
@@ -55,6 +63,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){
@@ -242,6 +252,7 @@
         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){
@@ -318,4 +329,95 @@
         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(Integer fileType){
+        DailyUpdatesResponse dailyUpdatesResponse = new DailyUpdatesResponse();
+        dailyUpdatesResponse.setDailyUpdateNum(
+                newsMapper.selectCount(new QueryWrapper<News>().lambda()
+                .eq(News::getIsdeleted,Constants.ZERO)
+                .like(News::getCreateDate, DateUtil.getDateLong(new Date()))
+                .eq(News::getType,Constants.ONE)
+        ));
+        dailyUpdatesResponse.setShareNum(
+                actionsMapper.selectCount(new QueryWrapper<Actions>())
+        );
+        dailyUpdatesResponse.setNewsList(
+                this.getCustomizedNewsList(Constants.ZERO,Constants.THREE,fileType)
+        );
+        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