|
@@ -1,19 +1,38 @@
|
|
|
package org.dromara.system.service.impl.notice;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.google.api.client.util.SecurityUtils;
|
|
|
+import org.dromara.common.core.constant.UserConstants;
|
|
|
+import org.dromara.common.core.domain.model.LoginUser;
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
+import org.dromara.common.core.utils.StreamUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.dromara.common.mybatis.helper.DataBaseHelper;
|
|
|
+import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
+import org.dromara.system.domain.FormalParentsStudent;
|
|
|
+import org.dromara.system.domain.FormalTeacherClass;
|
|
|
+import org.dromara.system.domain.SysDept;
|
|
|
+import org.dromara.system.domain.SysUser;
|
|
|
+import org.dromara.system.domain.bo.SysUserBo;
|
|
|
import org.dromara.system.domain.notice.XiaoyuanNotice;
|
|
|
import org.dromara.system.domain.notice.bo.XiaoyuanNoticeBo;
|
|
|
import org.dromara.system.domain.notice.vo.XiaoyuanNoticeVo;
|
|
|
+import org.dromara.system.mapper.FormalParentsStudentMapper;
|
|
|
+import org.dromara.system.mapper.FormalTeacherClassMapper;
|
|
|
import org.dromara.system.mapper.notice.XiaoyuanNoticeMapper;
|
|
|
import org.dromara.system.service.notice.IXiaoyuanNoticeService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Collection;
|
|
@@ -29,6 +48,11 @@ import java.util.Collection;
|
|
|
public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
|
|
|
|
|
|
private final XiaoyuanNoticeMapper baseMapper;
|
|
|
+ @Autowired
|
|
|
+ private FormalTeacherClassMapper formalTeacherClassMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private FormalParentsStudentMapper formalParentsStudentMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询校园新闻
|
|
@@ -43,8 +67,50 @@ public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
|
|
|
*/
|
|
|
@Override
|
|
|
public TableDataInfo<XiaoyuanNoticeVo> queryPageList(XiaoyuanNoticeBo bo, PageQuery pageQuery) {
|
|
|
- LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
|
|
|
- Page<XiaoyuanNoticeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
+
|
|
|
+ Page<XiaoyuanNoticeVo> result = new Page<>();
|
|
|
+ Map<String, Object> params = bo.getParams();
|
|
|
+ String role = "admin";
|
|
|
+ if (params != null && params.size() > 0) {
|
|
|
+ role = (String) params.get("role");
|
|
|
+ }
|
|
|
+ StringBuilder classId = new StringBuilder("0,");
|
|
|
+ if ("teacher".equals(role)) {
|
|
|
+ FormalTeacherClass formalTeacherClass = new FormalTeacherClass();
|
|
|
+ formalTeacherClass.setTeacherId(LoginHelper.getUserId());
|
|
|
+ List<FormalTeacherClass> formalTeacherClasses = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClass);
|
|
|
+ if (formalTeacherClasses != null && formalTeacherClasses.size() > 0) {
|
|
|
+ for (FormalTeacherClass teacherClass : formalTeacherClasses) {
|
|
|
+ classId.append(teacherClass.getClassId()).append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(classId.toString())) {
|
|
|
+ classId = new StringBuilder(classId.substring(0, classId.length() - 1));
|
|
|
+ }
|
|
|
+ //查询出所有班级id
|
|
|
+ bo.setSenderDept(classId.toString());
|
|
|
+ LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
|
|
|
+ result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
+ }
|
|
|
+ else if ("parents".equals(role)) {
|
|
|
+ FormalParentsStudent formalParentsStudent = new FormalParentsStudent();
|
|
|
+ formalParentsStudent.setParentsId(LoginHelper.getUserId());
|
|
|
+ List<FormalParentsStudent> formalParentsStudents = formalParentsStudentMapper.selectFormalParentsStudentList(formalParentsStudent);
|
|
|
+ for (FormalParentsStudent parentsStudent : formalParentsStudents) {
|
|
|
+ classId.append(parentsStudent.getClassId()).append(",");
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(classId.toString())) {
|
|
|
+ classId = new StringBuilder(classId.substring(0, classId.length() - 1));
|
|
|
+ }
|
|
|
+ //查询出所有班级id
|
|
|
+ bo.setSenderDept(classId.toString());
|
|
|
+ LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
|
|
|
+ result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
+ }
|
|
|
+ else if ("admin".equals(role)){
|
|
|
+ LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
|
|
|
+ result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
+ }
|
|
|
return TableDataInfo.build(result);
|
|
|
}
|
|
|
|
|
@@ -53,6 +119,7 @@ public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
|
|
|
*/
|
|
|
@Override
|
|
|
public List<XiaoyuanNoticeVo> queryList(XiaoyuanNoticeBo bo) {
|
|
|
+ bo.setSenderId(String.valueOf(LoginHelper.getUserId()));
|
|
|
LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
|
|
|
return baseMapper.selectVoList(lqw);
|
|
|
}
|
|
@@ -120,4 +187,25 @@ public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
|
|
|
}
|
|
|
return baseMapper.deleteBatchIds(ids) > 0;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 我的收藏
|
|
|
+ * @param bo
|
|
|
+ * @param pageQuery
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public TableDataInfo<XiaoyuanNoticeVo> myCollect(XiaoyuanNoticeBo bo, PageQuery pageQuery) {
|
|
|
+ bo.setCollect("\"userId\":" + LoginHelper.getUserId());
|
|
|
+ Page<XiaoyuanNoticeVo> xiaoyuanNoticePage = baseMapper.selectXiaoyuanNoticeByMyCollect(pageQuery.build(), this.buildQueryWrapperCollect(bo));
|
|
|
+ return TableDataInfo.build(xiaoyuanNoticePage);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Wrapper<XiaoyuanNoticeBo> buildQueryWrapperCollect(XiaoyuanNoticeBo bo) {
|
|
|
+
|
|
|
+ QueryWrapper<XiaoyuanNoticeBo> wrapper = Wrappers.query();
|
|
|
+ wrapper
|
|
|
+ .like(StringUtils.isNotBlank(bo.getCollect()), "concat", bo.getCollect());
|
|
|
+ return wrapper;
|
|
|
+ }
|
|
|
}
|