فهرست منبع

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 7 ماه پیش
والد
کامیت
9e03915a0f

+ 1 - 1
src/main/java/com/xjrsoft/common/xss/XssHttpServletRequestWrapper.java

@@ -34,7 +34,7 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
 
     private String method;
 
-    private final List<String> ignoreXssUrl = ListUtil.toList("/magic-api/**", "/magic/web/**", "/workflow/execute/*", "/oa/wfMeetingApply/update_meetingSummary");
+    private final List<String> ignoreXssUrl = ListUtil.toList("/magic-api/**", "/magic/web/**", "/workflow/execute/*", "/oa/wfMeetingApply/update_meetingSummary", "/base/baseClassDynamics");
     //html过滤
     private final static HTMLFilter HTML_FILTER = new HTMLFilter();
 

+ 6 - 3
src/main/java/com/xjrsoft/module/attendance/controller/StatisticsController.java

@@ -164,9 +164,12 @@ public class StatisticsController {
             attendanceTeacherList.addAll(teacherbaseManagerService.getList(teacherPageDto));
 
             teacherPageDto = new BaseTeacherPageDto();
-            List<Long> dtoDeptIds = new ArrayList<>();
-            dtoDeptIds.add(dto.getDeptId());
-            teacherPageDto.setDeptIds(dtoDeptIds);
+            if(dto.getDeptId() != null){
+                List<Long> dtoDeptIds = new ArrayList<>();
+                dtoDeptIds.add(dto.getDeptId());
+                teacherPageDto.setDeptIds(dtoDeptIds);
+            }
+
             List<XjrUserPageVo> allTeacherList = teacherbaseManagerService.getList(teacherPageDto);
 
             statisticsVo.setNotAttendanceCount(allTeacherList.size() - attendanceTeacherList.size());

+ 4 - 3
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassServiceImpl.java

@@ -630,9 +630,10 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 .filter(x -> x.getIsReport() == 0)
                 .collect(Collectors.toList());
         result.setNotArrivedCount(notArrivedList.size());
-
-        BigDecimal divide = BigDecimal.valueOf(result.getArrivedCount()).divide(BigDecimal.valueOf(result.getAllCount()), 4, RoundingMode.HALF_UP);
-        result.setReportRate(divide.doubleValue() + "");
+        if(result.getAllCount() != 0){
+            BigDecimal divide = BigDecimal.valueOf(result.getArrivedCount()).divide(BigDecimal.valueOf(result.getAllCount()), 4, RoundingMode.HALF_UP);
+            result.setReportRate(divide.doubleValue() + "");
+        }
 
         return result;
     }

+ 2 - 0
src/main/java/com/xjrsoft/module/base/controller/BaseClassDynamicsController.java

@@ -143,6 +143,8 @@ public class BaseClassDynamicsController {
             }
         }
 
+        baseClassDynamicsService.read(id);
+
         return RT.ok(dynamicsVo);
     }
 

+ 2 - 0
src/main/java/com/xjrsoft/module/base/service/IBaseClassDynamicsService.java

@@ -14,4 +14,6 @@ import com.xjrsoft.module.base.entity.BaseClassDynamics;
 public interface IBaseClassDynamicsService extends MPJBaseService<BaseClassDynamics> {
 
     Boolean add(AddBaseClassDynamicsDto dto);
+
+    Boolean read(Long baseClassDynamicsId);
 }

+ 18 - 0
src/main/java/com/xjrsoft/module/base/service/impl/BaseClassDynamicsServiceImpl.java

@@ -1,8 +1,10 @@
 package com.xjrsoft.module.base.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.utils.LocalDateTimeUtil;
@@ -151,4 +153,20 @@ public class BaseClassDynamicsServiceImpl extends MPJBaseServiceImpl<BaseClassDy
 
         return true;
     }
+
+    @Override
+    @Transactional
+    public Boolean read(Long baseClassDynamicsId) {
+        List<BaseClassDynamicsRelation> list = dynamicsRelationMapper.selectList(
+                new QueryWrapper<BaseClassDynamicsRelation>().lambda()
+                        .eq(BaseClassDynamicsRelation::getBaseClassDynamicsId, baseClassDynamicsId)
+                        .eq(BaseClassDynamicsRelation::getUserId, StpUtil.getLoginIdAsLong())
+        );
+        for (BaseClassDynamicsRelation dynamicsRelation : list) {
+            dynamicsRelation.setReadMark(1);
+            dynamicsRelation.setReadDate(LocalDateTime.now());
+            dynamicsRelationMapper.updateById(dynamicsRelation);
+        }
+        return true;
+    }
 }

+ 14 - 0
src/main/resources/sqlScript/20250427_sql.sql

@@ -131,6 +131,20 @@ CREATE TABLE `class_internship_dynamic_read`
   DEFAULT CHARSET = utf8mb4
   COLLATE = utf8mb4_0900_ai_ci COMMENT ='实习动态已读表';
 
+-- --------------------------------------------------------------------------------------------
+-- 班级动态表阅读表
+-- --------------------------------------------------------------------------------------------
+DROP TABLE IF EXISTS base_class_dynamics_relation;
+CREATE TABLE `base_class_dynamics_relation` (
+`id` BIGINT NOT NULL,
+`base_class_dynamics_id` BIGINT DEFAULT NULL COMMENT '动态id(base_class_dynamics)',
+`read_mark` INT DEFAULT NULL COMMENT '是否已阅读(0:否 1:是)',
+`read_date` DATETIME DEFAULT NULL COMMENT '阅读时间',
+`user_id` BIGINT DEFAULT NULL COMMENT '阅读用户',
+`reply_content` VARCHAR(250) DEFAULT NULL COMMENT '回复内容',
+PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班级动态表阅读表';
+