浏览代码

修改新闻

DESKTOP-USV654P\pc 2 年之前
父节点
当前提交
a9ee5b995f

+ 39 - 11
src/main/java/com/xjrsoft/module/oa/controller/NewsController.java

@@ -17,18 +17,23 @@ import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.authority.entity.DataAuth;
 import com.xjrsoft.module.oa.dto.AddNewsDto;
 import com.xjrsoft.module.oa.dto.NewsPageDto;
 import com.xjrsoft.module.oa.dto.UpdateNewsDto;
 import com.xjrsoft.module.oa.entity.Message;
 import com.xjrsoft.module.oa.entity.News;
+import com.xjrsoft.module.oa.entity.NewsAppendix;
 import com.xjrsoft.module.oa.entity.NewsRelation;
 import com.xjrsoft.module.oa.service.IMessageService;
+import com.xjrsoft.module.oa.service.INewsAppendixService;
 import com.xjrsoft.module.oa.service.INewsRelationService;
 import com.xjrsoft.module.oa.service.INewsService;
-import com.xjrsoft.module.oa.vo.MessageVo;
-import com.xjrsoft.module.oa.vo.NewsPageVo;
-import com.xjrsoft.module.oa.vo.NewsVo;
+import com.xjrsoft.module.oa.vo.*;
+import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
+import com.xjrsoft.module.system.entity.File;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -55,6 +60,7 @@ public class NewsController {
     private INewsService newsService;
 
     private INewsRelationService newsRelationService;
+    private INewsAppendixService newsAppendixService;
 
 
     @GetMapping
@@ -102,15 +108,37 @@ public class NewsController {
             R.error("找不到此新闻!");
         }
         if (BooleanUtils.isTrue(isRead)) {
-            NewsRelation newsRelation = new NewsRelation();
-            newsRelation.setNewsId(id);
-            newsRelation.setUserId(StpUtil.getLoginIdAsLong());
-            newsRelationService.remove(Wrappers.<NewsRelation>query().lambda()
-                    .eq(NewsRelation::getUserId, StpUtil.getLoginIdAsLong())
-                    .eq(NewsRelation::getNewsId, id));
-            newsRelationService.save(newsRelation);
+//            NewsRelation newsRelation = new NewsRelation();
+//            newsRelation.setNewsId(id);
+//            newsRelation.setUserId(StpUtil.getLoginIdAsLong());
+//            newsRelationService.remove(Wrappers.<NewsRelation>query().lambda()
+//                    .eq(NewsRelation::getUserId, StpUtil.getLoginIdAsLong())
+//                    .eq(NewsRelation::getNewsId, id));
+//            newsRelationService.save(newsRelation);
+        }
+
+        NewsVo newsVo = BeanUtil.toBean(news, NewsVo.class);
+
+        List<NewsRelationVo> newsRelationVoList = newsRelationService.selectJoinList(NewsRelationVo.class,
+                new MPJLambdaWrapper<NewsRelation>()
+                        .eq(NewsRelation::getNewsId, id)
+                        .select(NewsRelation.class, x -> VoToColumnUtil.fieldsToColumns(NewsRelationVo.class).contains(x.getProperty()))
+                        .leftJoin(XjrUser.class, XjrUser::getId, NewsRelation::getUserId, ext -> ext.selectAs(XjrUser::getName, NewsRelationVo::getUserName)));
+        if (newsRelationVoList.size() > 0) {
+            newsVo.setRelationList(newsRelationVoList);
         }
-        return R.ok(BeanUtil.toBean(news, NewsVo.class));
+
+        List<NewsAppendixVo> newsAppendixVoList = newsAppendixService.selectJoinList(NewsAppendixVo.class,
+                new MPJLambdaWrapper<NewsAppendix>().eq(NewsAppendix::getNewsId, id)
+                        .select(NewsAppendix.class, x -> VoToColumnUtil.fieldsToColumns(NewsAppendixVo.class).contains(x.getProperty()))
+                        .leftJoin(File.class, File::getId, NewsAppendix::getFileId, ext -> ext.selectAs(File::getFileName, NewsAppendixVo::getFileName))
+        );
+
+        if (newsAppendixVoList.size() > 0) {
+            newsVo.setAppendixList(newsAppendixVoList);
+        }
+
+        return R.ok(newsVo);
     }
 
     @PutMapping

+ 2 - 2
src/main/java/com/xjrsoft/module/oa/mapper/NewsRelationMapper.java

@@ -1,9 +1,9 @@
 package com.xjrsoft.module.oa.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.oa.entity.NewsRelation;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
-public interface NewsRelationMapper extends BaseMapper<NewsRelation> {
+public interface NewsRelationMapper extends MPJBaseMapper<NewsRelation> {
 }

+ 8 - 0
src/main/java/com/xjrsoft/module/oa/service/INewsAppendixService.java

@@ -0,0 +1,8 @@
+package com.xjrsoft.module.oa.service;
+
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.oa.entity.NewsAppendix;
+
+public interface INewsAppendixService extends MPJBaseService<NewsAppendix> {
+}

+ 2 - 2
src/main/java/com/xjrsoft/module/oa/service/INewsRelationService.java

@@ -1,6 +1,6 @@
 package com.xjrsoft.module.oa.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.oa.entity.NewsRelation;
 
 /**
@@ -8,5 +8,5 @@ import com.xjrsoft.module.oa.entity.NewsRelation;
  * @author zlf
  * @since 2023-04-06
  */
-public interface INewsRelationService extends IService<NewsRelation> {
+public interface INewsRelationService extends MPJBaseService<NewsRelation> {
 }

+ 13 - 0
src/main/java/com/xjrsoft/module/oa/service/impl/NewsAppendixServiceImpl.java

@@ -0,0 +1,13 @@
+package com.xjrsoft.module.oa.service.impl;
+
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.oa.entity.NewsAppendix;
+import com.xjrsoft.module.oa.mapper.NewsAppendixMapper;
+import com.xjrsoft.module.oa.service.INewsAppendixService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class NewsAppendixServiceImpl extends MPJBaseServiceImpl<NewsAppendixMapper, NewsAppendix> implements INewsAppendixService {
+}

+ 2 - 2
src/main/java/com/xjrsoft/module/oa/service/impl/NewsRelationServiceImpl.java

@@ -1,7 +1,7 @@
 package com.xjrsoft.module.oa.service.impl;
 
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.oa.entity.NewsRelation;
 import com.xjrsoft.module.oa.mapper.NewsRelationMapper;
 import com.xjrsoft.module.oa.service.INewsRelationService;
@@ -10,5 +10,5 @@ import org.springframework.stereotype.Service;
 
 @Service
 @AllArgsConstructor
-public class NewsRelationServiceImpl extends ServiceImpl<NewsRelationMapper, NewsRelation> implements INewsRelationService {
+public class NewsRelationServiceImpl extends MPJBaseServiceImpl<NewsRelationMapper, NewsRelation> implements INewsRelationService {
 }

+ 20 - 0
src/main/java/com/xjrsoft/module/oa/vo/NewsAppendixVo.java

@@ -0,0 +1,20 @@
+package com.xjrsoft.module.oa.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class NewsAppendixVo {
+
+    @ApiModelProperty("主键")
+    private Long id;
+
+    @ApiModelProperty("新闻主键")
+    private Long newsId;
+
+    @ApiModelProperty("文件主键")
+    private Long fileId;
+
+    @ApiModelProperty("文件名称")
+    private Long fileName;
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/oa/vo/NewsRelationVo.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.oa.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class NewsRelationVo {
+    @ApiModelProperty("主键")
+    private Long id;
+
+    @ApiModelProperty("新闻主键")
+    private Long newsId;
+
+    @ApiModelProperty("用户主键")
+    private Long userId;
+
+    @ApiModelProperty("用户名称")
+    private String userName;
+
+    @ApiModelProperty("阅读标记  0=未读 1=已读")
+    private Integer readMark;
+
+    @ApiModelProperty("阅读时间")
+    private LocalDateTime readDate;
+
+    @ApiModelProperty("回复内容")
+    private String replyContent;
+}

+ 18 - 0
src/main/java/com/xjrsoft/module/oa/vo/NewsVo.java

@@ -2,6 +2,8 @@ package com.xjrsoft.module.oa.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.github.yulichang.annotation.EntityMapping;
+import com.xjrsoft.module.oa.dto.AddNewsAppendixDto;
+import com.xjrsoft.module.oa.dto.AddNewsRelationDto;
 import com.xjrsoft.module.oa.entity.NewsAppendix;
 import com.xjrsoft.module.student.entity.BaseStudentSubsidize;
 import io.swagger.annotations.ApiModelProperty;
@@ -116,4 +118,20 @@ public class NewsVo {
     @ApiModelProperty("级别 1=校级 2=班级")
     private Integer level;
 
+    /**
+     * 附件子表
+     */
+    @ApiModelProperty("附件子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "newsId")
+    private List<NewsAppendixVo> appendixList;
+
+    /**
+     * 关系子表
+     */
+    @ApiModelProperty("关系子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "newsId")
+    private List<NewsRelationVo> relationList;
+
 }