|
|
@@ -5,12 +5,14 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.enums.EnabledMark;
|
|
|
+import com.xjrsoft.common.exception.MyException;
|
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
|
import com.xjrsoft.common.utils.LocalDateTimeUtil;
|
|
|
import com.xjrsoft.common.utils.TreeUtil;
|
|
|
@@ -28,10 +30,10 @@ import com.xjrsoft.module.oa.mapper.NewsAppendixMapper;
|
|
|
import com.xjrsoft.module.oa.mapper.NewsMapper;
|
|
|
import com.xjrsoft.module.oa.mapper.NewsRelationConfigMapper;
|
|
|
import com.xjrsoft.module.oa.mapper.NewsRelationMapper;
|
|
|
+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.NewsGradeClassTreeVo;
|
|
|
-import com.xjrsoft.module.oa.vo.NewsPageVo;
|
|
|
-import com.xjrsoft.module.oa.vo.NewsRelationVo;
|
|
|
+import com.xjrsoft.module.oa.vo.*;
|
|
|
import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
|
|
|
import com.xjrsoft.module.organization.entity.*;
|
|
|
import com.xjrsoft.module.organization.mapper.UserDeptRelationMapper;
|
|
|
@@ -39,13 +41,17 @@ import com.xjrsoft.module.organization.mapper.UserMapper;
|
|
|
import com.xjrsoft.module.organization.service.IWeChatService;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
|
import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
|
|
|
+import com.xjrsoft.module.system.entity.File;
|
|
|
import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -84,6 +90,9 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
|
|
|
private final CommonPropertiesConfig commonPropertiesConfig;
|
|
|
|
|
|
+ private INewsRelationService newsRelationService;
|
|
|
+ private INewsAppendixService newsAppendixService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<NewsGradeClassTreeVo> getGradeClassTree() {
|
|
|
List<NewsGradeClassTreeVo> treeVoList = new ArrayList<NewsGradeClassTreeVo>();
|
|
|
@@ -91,7 +100,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
//虚拟父级
|
|
|
treeVoList.add(new NewsGradeClassTreeVo(){{
|
|
|
setId(666666L);
|
|
|
- setName("虚拟根节点");
|
|
|
+ setName("班级");
|
|
|
}});
|
|
|
|
|
|
//获取所有班级的年级作为树的父级
|
|
|
@@ -141,109 +150,261 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //公告需要添加阅读关系,发送范围 1=全校教职工 2=全校师生 3=指定人员
|
|
|
- //1=全校教职工,添加全校教职工到关系表
|
|
|
- if(addProclamationDto.getSendRange() == 1){
|
|
|
- MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
- queryUser
|
|
|
- .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
|
|
|
- .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
|
|
|
- .eq(Role::getId, 2);
|
|
|
- List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
|
|
|
- for (XjrUser user: userList) {
|
|
|
- newsRelationMapper.insert(new NewsRelation(){{
|
|
|
- setUserId(user.getId());
|
|
|
- setNewsId(news.getId());
|
|
|
- setReadMark(0);
|
|
|
- setCreateDate(java.time.LocalDateTime.now());
|
|
|
- }});
|
|
|
+ //公告需要添加阅读关系,关系类型 1=部门 2=人员 3=班级
|
|
|
+ if (addProclamationDto.getSendRange() == 3 && addProclamationDto.getRelationList() != null) {
|
|
|
+ for (AddNewsRelationDto relationDto : addProclamationDto.getRelationList()) {
|
|
|
+ if (relationDto.getRelationType() == 1) {
|
|
|
+ newsRelationConfigMapper.insert(new NewsRelationConfig(){{
|
|
|
+ setNewsId(news.getId());
|
|
|
+ setRelationId(relationDto.getRelationId());
|
|
|
+ setRelationType(relationDto.getRelationType());
|
|
|
+ setRelationName("部门");
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ if (relationDto.getRelationType() == 2) {
|
|
|
+ newsRelationConfigMapper.insert(new NewsRelationConfig(){{
|
|
|
+ setNewsId(news.getId());
|
|
|
+ setRelationId(relationDto.getRelationId());
|
|
|
+ setRelationType(relationDto.getRelationType());
|
|
|
+ setRelationName("人员");
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ if (relationDto.getRelationType() == 3) {
|
|
|
+ newsRelationConfigMapper.insert(new NewsRelationConfig(){{
|
|
|
+ setNewsId(news.getId());
|
|
|
+ setRelationId(relationDto.getRelationId());
|
|
|
+ setRelationType(relationDto.getRelationType());
|
|
|
+ setRelationName("班级");
|
|
|
+ }});
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
+ @Override
|
|
|
+ public ProclamationVo getProclamationById(Long id) {
|
|
|
+ MPJLambdaWrapper<News> queryWrapperNews = new MPJLambdaWrapper<>();
|
|
|
+ queryWrapperNews
|
|
|
+ .select(News::getId)
|
|
|
+ .selectAs(Department::getName, ProclamationVo::getSendDeptIdCN)
|
|
|
+ .select(News.class, x -> VoToColumnUtil.fieldsToColumns(ProclamationVo.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(Department.class, Department::getId, News::getSendDeptId)
|
|
|
+ .eq(News::getId , id);
|
|
|
+ ProclamationVo proclamationVo = this.selectJoinOne(ProclamationVo.class, queryWrapperNews);
|
|
|
+ if (proclamationVo == null) {
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
- //2=全校师生,添加全校师生到关系表
|
|
|
- if(addProclamationDto.getSendRange() == 2){
|
|
|
- MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
- queryUser
|
|
|
- .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
|
|
|
- .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
|
|
|
- .inSql(Role::getId, "(1,2)");
|
|
|
- List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
|
|
|
- for (XjrUser user: userList) {
|
|
|
- newsRelationMapper.insert(new NewsRelation(){{
|
|
|
- setUserId(user.getId());
|
|
|
- setNewsId(news.getId());
|
|
|
- setReadMark(0);
|
|
|
- setCreateDate(java.time.LocalDateTime.now());
|
|
|
- }});
|
|
|
+ //添加阅读关系集合
|
|
|
+ List<NewsRelationConfigVo> newsRelationConfigVoList = new ArrayList<>();
|
|
|
+ //公告在草稿状态还没有阅读状态,只有阅读关系
|
|
|
+ if(proclamationVo.getStatus() == 1){
|
|
|
+ MPJLambdaWrapper<NewsRelationConfig> queryWrapperNewsRelationConfig = new MPJLambdaWrapper<>();
|
|
|
+ queryWrapperNewsRelationConfig
|
|
|
+ .select(NewsRelationConfig.class, x -> VoToColumnUtil.fieldsToColumns(NewsRelationConfigVo.class).contains(x.getProperty()))
|
|
|
+ .eq(NewsRelationConfig::getNewsId , proclamationVo.getId());
|
|
|
+ newsRelationConfigVoList = newsRelationConfigMapper.selectJoinList(NewsRelationConfigVo.class, queryWrapperNewsRelationConfig);
|
|
|
+ }
|
|
|
+ proclamationVo.setNewsRelationConfigVoList(newsRelationConfigVoList);
|
|
|
+
|
|
|
+ //添加阅读状态集合
|
|
|
+ List<NewsRelationVo> newsRelationVoList = new ArrayList<>();
|
|
|
+ //公告在发布状态或下架状态
|
|
|
+ if(proclamationVo.getStatus() == 2 || proclamationVo.getStatus() == 3){
|
|
|
+ MPJLambdaWrapper<NewsRelation> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
+ queryWrapper
|
|
|
+ .select(NewsRelation::getId)
|
|
|
+ .selectAs(XjrUser::getName,NewsRelationVo::getUserName)
|
|
|
+ .select(NewsRelation.class, x -> VoToColumnUtil.fieldsToColumns(NewsRelationVo.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(XjrUser.class,XjrUser::getId,NewsRelation::getUserId)
|
|
|
+ .eq(NewsRelation::getNewsId , proclamationVo.getId())
|
|
|
+ .disableSubLogicDel();
|
|
|
+ //当是发布人点击了该公告可以看到其下所有人的回复
|
|
|
+ if(ObjectUtil.isNotNull(proclamationVo.getCreateUserId()) && StpUtil.getLoginIdAsLong() == proclamationVo.getCreateUserId()) {
|
|
|
+ newsRelationVoList = newsRelationService.selectJoinList(NewsRelationVo.class, queryWrapper);
|
|
|
+ }else {//当不是发布人点击了该公告只能看到自己的回复
|
|
|
+ queryWrapper.eq(NewsRelation::getUserId , StpUtil.getLoginIdAsLong());
|
|
|
+ NewsRelationVo newsRelationVo = newsRelationService.selectJoinOne(NewsRelationVo.class, queryWrapper);
|
|
|
+ if(ObjectUtil.isNotNull(newsRelationVo)){
|
|
|
+ newsRelationVoList.add(newsRelationVo);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// if (addNewsDto.getTypeId() == 2 && addNewsDto.getSendRange() == 1) {
|
|
|
-// for (AddNewsRelationDto relationDto : addNewsDto.getRelationList()) {
|
|
|
-//
|
|
|
-// NewsRelationConfig newsRelationConfig = BeanUtil.toBean(relationDto, NewsRelationConfig.class);
|
|
|
-// newsRelationConfig.setNewsId(news.getId());
|
|
|
-// newsRelationConfigMapper.insert(newsRelationConfig);
|
|
|
-//
|
|
|
-// NewsRelation newsRelation = BeanUtil.toBean(relationDto, NewsRelation.class);
|
|
|
-// newsRelation.setNewsId(news.getId());
|
|
|
-// newsRelation.setReadMark(0);
|
|
|
-// if (relationDto.getRelationType() == 1) {
|
|
|
-// // 获取部门下的人员添加
|
|
|
-// Long deptId = relationDto.getRelationId();
|
|
|
-// MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
-// queryUser
|
|
|
-// .leftJoin(UserDeptRelation.class,UserDeptRelation::getUserId,XjrUser::getId)
|
|
|
-// .leftJoin(Department.class,Department::getId,UserDeptRelation::getDeptId)
|
|
|
-// .eq(Department::getId,deptId);
|
|
|
-// List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
|
|
|
-// for (XjrUser user: userList) {
|
|
|
-// newsRelation.setUserId(user.getId());
|
|
|
-// newsRelationMapper.insert(newsRelation);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if (relationDto.getRelationType() == 2) {
|
|
|
-// newsRelation.setUserId(relationDto.getRelationId());
|
|
|
-// newsRelationMapper.insert(newsRelation);
|
|
|
-// }
|
|
|
-// if (relationDto.getRelationType() == 3) {
|
|
|
-// // 获取班级下的人员添加
|
|
|
-// Long deptId = relationDto.getRelationId();
|
|
|
-// MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
-// queryUser
|
|
|
-// .leftJoin(UserDeptRelation.class,UserDeptRelation::getUserId,XjrUser::getId)
|
|
|
-// .leftJoin(Department.class,Department::getId,UserDeptRelation::getDeptId)
|
|
|
-// .eq(Department::getId,deptId);
|
|
|
-// List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
|
|
|
-// List<Long> userIdList = new ArrayList<>();
|
|
|
-// for (XjrUser user: userList) {
|
|
|
-// userIdList.add(user.getId());
|
|
|
-// }
|
|
|
-// for (Long userId: userIdList) {
|
|
|
-// newsRelation.setUserId(userId);
|
|
|
-// newsRelationMapper.insert(newsRelation);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// //添加新闻和公告的时候,如果状态是2,表示新闻和公告实时发布了,张贴开始时间就应该是发布时间需要发送消息
|
|
|
-// if(ObjectUtil.isNotNull(addNewsDto.getStatus()) && addNewsDto.getStatus() == 2){
|
|
|
-// SendMessage(news.getId());
|
|
|
-// }
|
|
|
+ proclamationVo.setRelationList(newsRelationVoList);
|
|
|
+
|
|
|
+ //添加附件
|
|
|
+ List<NewsAppendixVo> newsAppendixVoList = newsAppendixService.selectJoinList(NewsAppendixVo.class,
|
|
|
+ new MPJLambdaWrapper<NewsAppendix>().eq(NewsAppendix::getNewsId, id)
|
|
|
+ .select(NewsRelation::getId)
|
|
|
+ .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)
|
|
|
+ .selectAs(File::getFolderId, NewsAppendixVo::getFolderId)
|
|
|
+ .selectAs(File::getFileUrl, NewsAppendixVo::getFileUrl))
|
|
|
+ );
|
|
|
+ if (newsAppendixVoList.size() > 0) {
|
|
|
+ proclamationVo.setAppendixList(newsAppendixVoList);
|
|
|
+ }
|
|
|
|
|
|
- return true;
|
|
|
+ return proclamationVo;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public IPage<NewsPageVo> proclamationManageBox(NewsPageDto dto) {
|
|
|
- return null;
|
|
|
+ public IPage<ProclamationPageVo> proclamationManageBox(ProclamationPageDto dto) {
|
|
|
+ MPJLambdaWrapper<News> queryNews = new MPJLambdaWrapper<>();
|
|
|
+ queryNews
|
|
|
+ .select(News::getId)
|
|
|
+ .selectAs(Department::getName, ProclamationPageVo::getSendDeptIdCN)
|
|
|
+ .select(News.class, x -> VoToColumnUtil.fieldsToColumns(ProclamationPageVo.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(Department.class, Department::getId, News::getSendDeptId)
|
|
|
+ .eq(News::getCreateUserId, StpUtil.getLoginIdAsLong())
|
|
|
+ .eq(News::getTypeId, 2)
|
|
|
+ .like(dto.getFullHead() != null, News::getFullHead, dto.getFullHead())
|
|
|
+ .like(dto.getKeyword() != null, News::getNewsContent, dto.getKeyword())
|
|
|
+ .orderByDesc(News::getReleaseTime);
|
|
|
+ IPage<ProclamationPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), ProclamationPageVo.class, queryNews);
|
|
|
+ return page;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public IPage<NewsPageVo> proclamationReceiptBox(NewsPageDto dto) {
|
|
|
- return null;
|
|
|
+ public IPage<ProclamationPageVo> proclamationReceiptBox(ProclamationPageDto dto) {
|
|
|
+ MPJLambdaWrapper<News> queryNews = new MPJLambdaWrapper<>();
|
|
|
+ queryNews
|
|
|
+ .select(News::getId)
|
|
|
+ .selectAs(Department::getName, ProclamationPageVo::getSendDeptIdCN)
|
|
|
+ .select(News.class, x -> VoToColumnUtil.fieldsToColumns(ProclamationPageVo.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(Department.class, Department::getId, News::getSendDeptId)
|
|
|
+ .leftJoin(NewsRelation.class, NewsRelation::getNewsId, News::getId)
|
|
|
+ .eq(News::getTypeId, 2)
|
|
|
+ .eq(News::getStatus, 2)
|
|
|
+ .gt(News::getSendEndDate, new Date())
|
|
|
+ .eq(NewsRelation::getUserId, StpUtil.getLoginIdAsLong())
|
|
|
+ .or()
|
|
|
+ .eq(News::getSendRange, 2)
|
|
|
+ .orderByDesc(News::getReleaseTime);
|
|
|
+ IPage<ProclamationPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), ProclamationPageVo.class, queryNews);
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean changeStatus(ChangeNewsDto changeNewsDto) {
|
|
|
+ News xjrNews = this.getById(changeNewsDto.getId());
|
|
|
+ if (changeNewsDto.getStatus() == null || xjrNews == null) {
|
|
|
+ throw new MyException("参数异常");
|
|
|
+ }
|
|
|
+ if (changeNewsDto.getStatus().equals(xjrNews.getStatus())) {
|
|
|
+ if (changeNewsDto.getStatus() == 2) {
|
|
|
+ throw new MyException("公告已发布!!!");
|
|
|
+ } else if (changeNewsDto.getStatus() == 3) {
|
|
|
+ throw new MyException("公告已下架!!!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ xjrNews.setStatus(changeNewsDto.getStatus());
|
|
|
+ //发布公告,将阅读关系中选择的阅读人添加到关系表
|
|
|
+ if(xjrNews.getStatus() == 2){
|
|
|
+ //将发布时间改为当前时间
|
|
|
+ xjrNews.setReleaseTime(LocalDateTime.now());
|
|
|
+ //将张贴时间改为当前时间
|
|
|
+ xjrNews.setSendStartDate(LocalDateTime.now());
|
|
|
+ xjrNews.setModifyUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ xjrNews.setModifyDate(LocalDateTime.now());
|
|
|
+
|
|
|
+ LambdaQueryWrapper<NewsRelationConfig> queryConfig = new LambdaQueryWrapper<>();
|
|
|
+ queryConfig
|
|
|
+ .eq(NewsRelationConfig::getNewsId, xjrNews.getId());
|
|
|
+ List<NewsRelationConfig> newsRelationConfigList = newsRelationConfigMapper.selectList(queryConfig);
|
|
|
+
|
|
|
+ HashMap<Long, XjrUser> userMap = new HashMap<>();
|
|
|
+ if(xjrNews.getSendRange() == 3){
|
|
|
+ //遍历所有关系配置
|
|
|
+ for (NewsRelationConfig newsRelationConfig : newsRelationConfigList) {
|
|
|
+ //阅读关系是部门
|
|
|
+ if(newsRelationConfig.getRelationType() == 1){
|
|
|
+ // 获取部门下的人员添加
|
|
|
+ Long deptId = newsRelationConfig.getRelationId();
|
|
|
+ MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
+ queryUser
|
|
|
+ .leftJoin(UserDeptRelation.class,UserDeptRelation::getUserId,XjrUser::getId)
|
|
|
+ .leftJoin(Department.class,Department::getId,UserDeptRelation::getDeptId)
|
|
|
+ .eq(Department::getId,deptId);
|
|
|
+ List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
|
|
|
+ for (XjrUser user: userList) {
|
|
|
+ if(!userMap.containsKey(user.getId())){
|
|
|
+ userMap.put(user.getId(),user);
|
|
|
+ newsRelationMapper.insert(new NewsRelation(){{
|
|
|
+ setNewsId(xjrNews.getId());
|
|
|
+ setUserId(user.getId());
|
|
|
+ setReadMark(0);
|
|
|
+ setCreateDate(LocalDateTime.now());
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //阅读关系是人员
|
|
|
+ if(newsRelationConfig.getRelationType() == 2){
|
|
|
+ if(!userMap.containsKey(newsRelationConfig.getRelationId())){
|
|
|
+ userMap.put(newsRelationConfig.getRelationId(),new XjrUser(){{
|
|
|
+ setId(newsRelationConfig.getRelationId());
|
|
|
+ }});
|
|
|
+ newsRelationMapper.insert(new NewsRelation(){{
|
|
|
+ setNewsId(xjrNews.getId());
|
|
|
+ setUserId(newsRelationConfig.getRelationId());
|
|
|
+ setReadMark(0);
|
|
|
+ setCreateDate(LocalDateTime.now());
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //阅读关系是班级
|
|
|
+ if(newsRelationConfig.getRelationType() == 3){
|
|
|
+ // 获取班级下的人员添加
|
|
|
+ Long classId = newsRelationConfig.getRelationId();
|
|
|
+ MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
+ queryUser
|
|
|
+ .leftJoin(BaseStudentSchoolRoll.class,BaseStudentSchoolRoll::getUserId,XjrUser::getId)
|
|
|
+ .eq(BaseStudentSchoolRoll::getClassId,classId);
|
|
|
+ List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
|
|
|
+ for (XjrUser user: userList) {
|
|
|
+ if(!userMap.containsKey(user.getId())){
|
|
|
+ userMap.put(user.getId(),user);
|
|
|
+ newsRelationMapper.insert(new NewsRelation(){{
|
|
|
+ setNewsId(xjrNews.getId());
|
|
|
+ setUserId(user.getId());
|
|
|
+ setReadMark(0);
|
|
|
+ setCreateDate(LocalDateTime.now());
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(xjrNews.getSendRange() == 1){
|
|
|
+ MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
+ queryUser
|
|
|
+ .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
|
|
|
+ .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
|
|
|
+ .eq(Role::getId,2);
|
|
|
+ List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
|
|
|
+ for (XjrUser user: userList) {
|
|
|
+ if(!userMap.containsKey(user.getId())){
|
|
|
+ userMap.put(user.getId(),user);
|
|
|
+ newsRelationMapper.insert(new NewsRelation(){{
|
|
|
+ setNewsId(xjrNews.getId());
|
|
|
+ setUserId(user.getId());
|
|
|
+ setReadMark(0);
|
|
|
+ setCreateDate(LocalDateTime.now());
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(xjrNews.getStatus() == 3){
|
|
|
+ //应该将关系配置表和关系表的数据设置为删除
|
|
|
+ }
|
|
|
+ return this.updateById(xjrNews);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -509,7 +670,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
public boolean SendMessage(Long id) {
|
|
|
try {
|
|
|
News news = newsMapper.selectById(id);
|
|
|
- if (news.getSendRange() == 1) {
|
|
|
+ if (news.getSendRange() == 2) {
|
|
|
List<User> userList = userMapper.selectList(Wrappers.<User>query().lambda().isNotNull(User::getOpenId).ne(User::getOpenId, ""));
|
|
|
if (userList.size() > 0) {
|
|
|
for (User user : userList) {
|
|
|
@@ -570,7 +731,6 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
|
|
|
}
|
|
|
} catch (Exception ex) {
|
|
|
}
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
}
|