|
|
@@ -146,7 +146,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
News news = BeanUtil.toBean(addProclamationDto, News.class);
|
|
|
news.setTypeId(2);
|
|
|
news.setEnabledMark(EnabledMark.ENABLED.getCode());
|
|
|
- LambdaQueryWrapper<News> queryWrapperSortcode = new LambdaQueryWrapper<>();
|
|
|
+ //LambdaQueryWrapper<News> queryWrapperSortcode = new LambdaQueryWrapper<>();
|
|
|
//queryWrapperSortcode.select("SELECT IFNULL(MAX(sort_code),1)");
|
|
|
newsMapper.insert(news);
|
|
|
|
|
|
@@ -159,51 +159,14 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //如果状态是2,表示立即发布的公告,需要将阅读人添加进阅读关系表
|
|
|
+ if(addProclamationDto.getStatus() == 2){
|
|
|
+ addRelation(news);
|
|
|
+ }
|
|
|
+
|
|
|
//公告需要添加阅读关系,关系类型 1=部门 2=人员 3=班级
|
|
|
if (addProclamationDto.getSendRange() == 3 && addProclamationDto.getRelationList() != null) {
|
|
|
- for (AddNewsRelationDto relationDto : addProclamationDto.getRelationList()) {
|
|
|
- if (relationDto.getRelationType() == 1) {
|
|
|
- Department department = departmentMapper.selectById(relationDto.getRelationId());
|
|
|
- newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
- setNewsId(news.getId());
|
|
|
- setRelationId(relationDto.getRelationId());
|
|
|
- setRelationType(relationDto.getRelationType());
|
|
|
- if (department != null) {
|
|
|
- setRelationName(department.getName());
|
|
|
- }
|
|
|
- }});
|
|
|
- }
|
|
|
- if (relationDto.getRelationType() == 2) {
|
|
|
- XjrUser xjrUser = xjrUserMapper.selectById(relationDto.getRelationId());
|
|
|
- newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
- setNewsId(news.getId());
|
|
|
- setRelationId(relationDto.getRelationId());
|
|
|
- setRelationType(relationDto.getRelationType());
|
|
|
- if (xjrUser != null) {
|
|
|
- setRelationName(xjrUser.getName());
|
|
|
- }
|
|
|
- }});
|
|
|
- }
|
|
|
- if (relationDto.getRelationType() == 3) {
|
|
|
- BaseClass baseClass = baseClassMapper.selectById(relationDto.getRelationId());
|
|
|
- BaseGrade baseGrade = null;
|
|
|
- if (baseClass == null) {
|
|
|
- baseGrade = baseGradeMapper.selectById(relationDto.getRelationId());
|
|
|
- }
|
|
|
- BaseGrade finalBaseGrade = baseGrade;
|
|
|
- newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
- setNewsId(news.getId());
|
|
|
- setRelationId(relationDto.getRelationId());
|
|
|
- setRelationType(relationDto.getRelationType());
|
|
|
- if (baseClass != null) {
|
|
|
- setRelationName(baseClass.getName());
|
|
|
- }
|
|
|
- if (finalBaseGrade != null) {
|
|
|
- setRelationName(finalBaseGrade.getName());
|
|
|
- }
|
|
|
- }});
|
|
|
- }
|
|
|
- }
|
|
|
+ addRelationConfig(news, addProclamationDto);
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
@@ -341,76 +304,172 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
xjrNews.setModifyUserId(StpUtil.getLoginIdAsLong());
|
|
|
xjrNews.setModifyDate(LocalDateTime.now());
|
|
|
|
|
|
- if (xjrNews.getSendRange() == 3) {
|
|
|
- //查出当前公告的关系配置
|
|
|
- //部门
|
|
|
- LambdaQueryWrapper<NewsRelationConfig> queryDeptList = new LambdaQueryWrapper<>();
|
|
|
- queryDeptList
|
|
|
- .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
|
|
|
- .eq(NewsRelationConfig::getRelationType, 1);
|
|
|
- List<NewsRelationConfig> deptList = newsRelationConfigMapper.selectList(queryDeptList);
|
|
|
- List<Long> deptIdList = new ArrayList<>();
|
|
|
- for (NewsRelationConfig newsRelationConfig : deptList) {
|
|
|
- deptIdList.add(newsRelationConfig.getRelationId());
|
|
|
- }
|
|
|
+ addRelation(xjrNews);
|
|
|
+ }
|
|
|
|
|
|
- //人员
|
|
|
- LambdaQueryWrapper<NewsRelationConfig> queryPersonalList = new LambdaQueryWrapper<>();
|
|
|
- queryPersonalList
|
|
|
- .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
|
|
|
- .eq(NewsRelationConfig::getRelationType, 2);
|
|
|
- List<NewsRelationConfig> personalList = newsRelationConfigMapper.selectList(queryPersonalList);
|
|
|
- List<Long> personalIdList = new ArrayList<>();
|
|
|
- for (NewsRelationConfig newsRelationConfig : personalList) {
|
|
|
- personalIdList.add(newsRelationConfig.getRelationId());
|
|
|
- }
|
|
|
+ if (xjrNews.getStatus() == 3) {
|
|
|
+ //应该将关系配置表和关系表的数据设置为删除
|
|
|
+ }
|
|
|
+ return this.updateById(xjrNews);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean updateProclamation(UpdateProclamationDto updateProclamationDto) {
|
|
|
+ News news = BeanUtil.toBean(updateProclamationDto, News.class);
|
|
|
+ news.setModifyDate(LocalDateTime.now());
|
|
|
+ news.setModifyUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ newsMapper.updateById(news);
|
|
|
|
|
|
- //班级
|
|
|
- LambdaQueryWrapper<NewsRelationConfig> queryClassList = new LambdaQueryWrapper<>();
|
|
|
- queryClassList
|
|
|
- .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
|
|
|
- .eq(NewsRelationConfig::getRelationType, 3);
|
|
|
- List<NewsRelationConfig> classList = newsRelationConfigMapper.selectList(queryClassList);
|
|
|
- List<Long> classIdList = new ArrayList<>();
|
|
|
- for (NewsRelationConfig newsRelationConfig : classList) {
|
|
|
- classIdList.add(newsRelationConfig.getRelationId());
|
|
|
+ newsAppendixMapper.delete(Wrappers.lambdaQuery(NewsAppendix.class).eq(NewsAppendix::getNewsId, news.getId()));
|
|
|
+ if (updateProclamationDto.getAppendixList() != null) {
|
|
|
+ for (AddNewsAppendixDto appendixDto : updateProclamationDto.getAppendixList()) {
|
|
|
+ NewsAppendix newsAppendix = BeanUtil.toBean(appendixDto, NewsAppendix.class);
|
|
|
+ newsAppendix.setNewsId(news.getId());
|
|
|
+ newsAppendixMapper.insert(newsAppendix);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (updateProclamationDto.getSendRange() == 3 && updateProclamationDto.getRelationList() != null) {
|
|
|
+ newsRelationMapper.delete(Wrappers.lambdaQuery(NewsRelation.class).eq(NewsRelation::getNewsId, news.getId()));
|
|
|
+ newsRelationConfigMapper.delete(Wrappers.lambdaQuery(NewsRelationConfig.class).eq(NewsRelationConfig::getNewsId, news.getId()));
|
|
|
+ updateRelationConfig(news, updateProclamationDto);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加阅读关系配置表
|
|
|
+ * @param news
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Boolean updateRelationConfig(News news, UpdateProclamationDto updateProclamationDto){
|
|
|
+ AddProclamationDto addProclamationDto = BeanUtil.toBean(updateProclamationDto, AddProclamationDto.class);
|
|
|
+ return addRelationConfig(news, addProclamationDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Boolean addRelationConfig(News news, AddProclamationDto addProclamationDto){
|
|
|
+ for (AddNewsRelationDto relationDto : addProclamationDto.getRelationList()) {
|
|
|
+ if (relationDto.getRelationType() == 1) {
|
|
|
+ Department department = departmentMapper.selectById(relationDto.getRelationId());
|
|
|
+ newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
+ setNewsId(news.getId());
|
|
|
+ setRelationId(relationDto.getRelationId());
|
|
|
+ setRelationType(relationDto.getRelationType());
|
|
|
+ if (department != null) {
|
|
|
+ setRelationName(department.getName());
|
|
|
+ }
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ if (relationDto.getRelationType() == 2) {
|
|
|
+ XjrUser xjrUser = xjrUserMapper.selectById(relationDto.getRelationId());
|
|
|
+ newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
+ setNewsId(news.getId());
|
|
|
+ setRelationId(relationDto.getRelationId());
|
|
|
+ setRelationType(relationDto.getRelationType());
|
|
|
+ if (xjrUser != null) {
|
|
|
+ setRelationName(xjrUser.getName());
|
|
|
+ }
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ if (relationDto.getRelationType() == 3) {
|
|
|
+ BaseClass baseClass = baseClassMapper.selectById(relationDto.getRelationId());
|
|
|
+ BaseGrade baseGrade = null;
|
|
|
+ if (baseClass == null) {
|
|
|
+ baseGrade = baseGradeMapper.selectById(relationDto.getRelationId());
|
|
|
}
|
|
|
+ BaseGrade finalBaseGrade = baseGrade;
|
|
|
+ newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
+ setNewsId(news.getId());
|
|
|
+ setRelationId(relationDto.getRelationId());
|
|
|
+ setRelationType(relationDto.getRelationType());
|
|
|
+ if (baseClass != null) {
|
|
|
+ setRelationName(baseClass.getName());
|
|
|
+ }
|
|
|
+ if (finalBaseGrade != null) {
|
|
|
+ setRelationName(finalBaseGrade.getName());
|
|
|
+ }
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加阅读关系到关系表
|
|
|
+ * @param xjrNews
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Boolean addRelation(News xjrNews){
|
|
|
+ if (xjrNews.getSendRange() == 3) {
|
|
|
+ //查出当前公告的关系配置
|
|
|
+ //部门
|
|
|
+ LambdaQueryWrapper<NewsRelationConfig> queryDeptList = new LambdaQueryWrapper<>();
|
|
|
+ queryDeptList
|
|
|
+ .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
|
|
|
+ .eq(NewsRelationConfig::getRelationType, 1);
|
|
|
+ List<NewsRelationConfig> deptList = newsRelationConfigMapper.selectList(queryDeptList);
|
|
|
+ List<Long> deptIdList = new ArrayList<>();
|
|
|
+ for (NewsRelationConfig newsRelationConfig : deptList) {
|
|
|
+ deptIdList.add(newsRelationConfig.getRelationId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //人员
|
|
|
+ LambdaQueryWrapper<NewsRelationConfig> queryPersonalList = new LambdaQueryWrapper<>();
|
|
|
+ queryPersonalList
|
|
|
+ .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
|
|
|
+ .eq(NewsRelationConfig::getRelationType, 2);
|
|
|
+ List<NewsRelationConfig> personalList = newsRelationConfigMapper.selectList(queryPersonalList);
|
|
|
+ List<Long> personalIdList = new ArrayList<>();
|
|
|
+ for (NewsRelationConfig newsRelationConfig : personalList) {
|
|
|
+ personalIdList.add(newsRelationConfig.getRelationId());
|
|
|
+ }
|
|
|
|
|
|
- //对人员进行筛选,避免重复添加
|
|
|
- List<Long> userIdList = new ArrayList<>();
|
|
|
- if (personalIdList != null) {
|
|
|
- //获取人员的班级或者部门
|
|
|
- List<DeptIdOrClassIdVo> deptIdOrClassIdVoList = newsMapper.getDeptIdOrClassId(personalIdList);
|
|
|
- for (DeptIdOrClassIdVo deptIdOrClassIdVo : deptIdOrClassIdVoList) {
|
|
|
- if (deptIdOrClassIdVo.getClassId() != null) {//有班级是学生
|
|
|
- if (!classIdList.contains(deptIdOrClassIdVo.getClassId())) {
|
|
|
- userIdList.add(deptIdOrClassIdVo.getUserId());
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (!deptIdList.contains(deptIdOrClassIdVo.getDeptId())) {
|
|
|
- userIdList.add(deptIdOrClassIdVo.getUserId());
|
|
|
- }
|
|
|
+ //班级
|
|
|
+ LambdaQueryWrapper<NewsRelationConfig> queryClassList = new LambdaQueryWrapper<>();
|
|
|
+ queryClassList
|
|
|
+ .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
|
|
|
+ .eq(NewsRelationConfig::getRelationType, 3);
|
|
|
+ List<NewsRelationConfig> classList = newsRelationConfigMapper.selectList(queryClassList);
|
|
|
+ List<Long> classIdList = new ArrayList<>();
|
|
|
+ for (NewsRelationConfig newsRelationConfig : classList) {
|
|
|
+ classIdList.add(newsRelationConfig.getRelationId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //对人员进行筛选,避免重复添加
|
|
|
+ List<Long> userIdList = new ArrayList<>();
|
|
|
+ if (personalIdList != null) {
|
|
|
+ //获取人员的班级或者部门
|
|
|
+ List<DeptIdOrClassIdVo> deptIdOrClassIdVoList = newsMapper.getDeptIdOrClassId(personalIdList);
|
|
|
+ for (DeptIdOrClassIdVo deptIdOrClassIdVo : deptIdOrClassIdVoList) {
|
|
|
+ if (deptIdOrClassIdVo.getClassId() != null) {//有班级是学生
|
|
|
+ if (!classIdList.contains(deptIdOrClassIdVo.getClassId())) {
|
|
|
+ userIdList.add(deptIdOrClassIdVo.getUserId());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!deptIdList.contains(deptIdOrClassIdVo.getDeptId())) {
|
|
|
+ userIdList.add(deptIdOrClassIdVo.getUserId());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- //添加部门人员
|
|
|
- if (deptIdList != null) {
|
|
|
- newsRelationMapper.insertDeptUser(xjrNews.getId(), deptIdList);
|
|
|
- }
|
|
|
+ //添加部门人员
|
|
|
+ if (deptIdList != null) {
|
|
|
+ newsRelationMapper.insertDeptUser(xjrNews.getId(), deptIdList);
|
|
|
+ }
|
|
|
|
|
|
- //添加部门人员
|
|
|
- if (classIdList != null) {
|
|
|
- newsRelationMapper.insertClassUser(xjrNews.getId(), classIdList);
|
|
|
- }
|
|
|
+ //添加部门人员
|
|
|
+ if (classIdList != null) {
|
|
|
+ newsRelationMapper.insertClassUser(xjrNews.getId(), classIdList);
|
|
|
+ }
|
|
|
|
|
|
- //添加部门人员
|
|
|
- if (userIdList != null) {
|
|
|
- newsRelationMapper.insertPersonl(xjrNews.getId(), userIdList);
|
|
|
- }
|
|
|
+ //添加部门人员
|
|
|
+ if (userIdList != null) {
|
|
|
+ newsRelationMapper.insertPersonl(xjrNews.getId(), userIdList);
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- //遍历所有关系配置
|
|
|
+ //遍历所有关系配置
|
|
|
/* for (NewsRelationConfig newsRelationConfig : newsRelationConfigList) {
|
|
|
//阅读关系是部门
|
|
|
if (newsRelationConfig.getRelationType() == 1) {
|
|
|
@@ -473,7 +532,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
}
|
|
|
}
|
|
|
}*/
|
|
|
- if (xjrNews.getSendRange() == 2) {
|
|
|
+ if (xjrNews.getSendRange() == 2) {
|
|
|
// MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
// queryUser
|
|
|
// .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
|
|
|
@@ -488,74 +547,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
// setCreateDate(LocalDateTime.now());
|
|
|
// }});
|
|
|
// }
|
|
|
- newsRelationMapper.insertAllTeaStaff(xjrNews.getId());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (xjrNews.getStatus() == 3) {
|
|
|
- //应该将关系配置表和关系表的数据设置为删除
|
|
|
- }
|
|
|
- return this.updateById(xjrNews);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean updateProclamation(UpdateProclamationDto updateProclamationDto) {
|
|
|
- News news = BeanUtil.toBean(updateProclamationDto, News.class);
|
|
|
- news.setModifyDate(LocalDateTime.now());
|
|
|
- news.setModifyUserId(StpUtil.getLoginIdAsLong());
|
|
|
- newsMapper.updateById(news);
|
|
|
-
|
|
|
- newsAppendixMapper.delete(Wrappers.lambdaQuery(NewsAppendix.class).eq(NewsAppendix::getNewsId, news.getId()));
|
|
|
- if (updateProclamationDto.getAppendixList() != null) {
|
|
|
- for (AddNewsAppendixDto appendixDto : updateProclamationDto.getAppendixList()) {
|
|
|
- NewsAppendix newsAppendix = BeanUtil.toBean(appendixDto, NewsAppendix.class);
|
|
|
- newsAppendix.setNewsId(news.getId());
|
|
|
- newsAppendixMapper.insert(newsAppendix);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (updateProclamationDto.getSendRange() == 3 && updateProclamationDto.getRelationList() != null) {
|
|
|
- newsRelationMapper.delete(Wrappers.lambdaQuery(NewsRelation.class).eq(NewsRelation::getNewsId, news.getId()));
|
|
|
- newsRelationConfigMapper.delete(Wrappers.lambdaQuery(NewsRelationConfig.class).eq(NewsRelationConfig::getNewsId, news.getId()));
|
|
|
-
|
|
|
- for (AddNewsRelationDto relationDto : updateProclamationDto.getRelationList()) {
|
|
|
- if (relationDto.getRelationType() == 1) {
|
|
|
- Department department = departmentMapper.selectById(relationDto.getRelationId());
|
|
|
-
|
|
|
- newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
- setNewsId(news.getId());
|
|
|
- setRelationId(relationDto.getRelationId());
|
|
|
- setRelationType(relationDto.getRelationType());
|
|
|
- if (department != null) {
|
|
|
- setRelationName(department.getName());
|
|
|
- }
|
|
|
- }});
|
|
|
- }
|
|
|
- if (relationDto.getRelationType() == 2) {
|
|
|
- XjrUser xjrUser = xjrUserMapper.selectById(relationDto.getRelationId());
|
|
|
-
|
|
|
- newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
- setNewsId(news.getId());
|
|
|
- setRelationId(relationDto.getRelationId());
|
|
|
- setRelationType(relationDto.getRelationType());
|
|
|
- if (xjrUser != null) {
|
|
|
- setRelationName(xjrUser.getName());
|
|
|
- }
|
|
|
- }});
|
|
|
- }
|
|
|
- if (relationDto.getRelationType() == 3) {
|
|
|
- BaseClass baseClass = baseClassMapper.selectById(relationDto.getRelationId());
|
|
|
-
|
|
|
- newsRelationConfigMapper.insert(new NewsRelationConfig() {{
|
|
|
- setNewsId(news.getId());
|
|
|
- setRelationId(relationDto.getRelationId());
|
|
|
- setRelationType(relationDto.getRelationType());
|
|
|
- if (baseClass != null) {
|
|
|
- setRelationName(baseClass.getName());
|
|
|
- }
|
|
|
- }});
|
|
|
- }
|
|
|
- }
|
|
|
+ newsRelationMapper.insertAllTeaStaff(xjrNews.getId());
|
|
|
}
|
|
|
return true;
|
|
|
}
|