소스 검색

Merge branch 'saas' of http://git.dayaedu.com/yonge/mec into zouxuan_saas_2022_04_15

zouxuan 3 년 전
부모
커밋
ea00cd2210

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentExercisesSituationQueryInfo.java

@@ -13,6 +13,8 @@ public class StudentExercisesSituationQueryInfo extends QueryInfo {
 
     private String organId;
 
+    private String organIdList;
+
     @ApiModelProperty(value = "周一日期")
     private java.util.Date monday;
 
@@ -51,6 +53,15 @@ public class StudentExercisesSituationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "服务是否异常")
     private Boolean serviceIsError;
 
+    public String getOrganIdList() {
+        return organIdList;
+    }
+
+    public void setOrganIdList(String organIdList) {
+        this.organIdList = organIdList;
+        this.organId = organIdList;
+    }
+
     public Boolean getServiceIsError() {
         return serviceIsError;
     }
@@ -104,6 +115,7 @@ public class StudentExercisesSituationQueryInfo extends QueryInfo {
     }
 
     public void setOrganId(String organId) {
+        this.organIdList = organIdList;
         this.organId = organId;
     }
 

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/ExportService.java

@@ -268,9 +268,6 @@ public interface ExportService {
     //订单列表导出
     HttpResponseResult orderList(Map<String, Object> info,List<String> headColumns);
 
-    //终课表列表导出
-    HttpResponseResult superFindCourseSchedules(Map<String, Object> info);
-
     //保存下载记录
     ManagerDownload saveManagerDownload(ExportTypeEnum exportTypeEnum, Integer userId);
 

+ 0 - 42
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -1533,48 +1533,6 @@ public class ExportServiceImpl implements ExportService {
         return succeed;
     }
 
-    //终课表列表导出
-    @Override
-    public HttpResponseResult superFindCourseSchedules(Map<String, Object> info){
-        EndCourseScheduleQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info),EndCourseScheduleQueryInfo.class);
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
-        queryInfo.setOrganIdList(organizationService.getEmployeeOrgan(sysUser.getId(),queryInfo.getOrganIdList(),sysUser.getIsSuperAdmin()));
-        Map<String, Object> params = new HashMap<>();
-        MapUtil.populateMap(params, queryInfo);
-        Integer tenantId = TenantContextHolder.getTenantId();
-        if(Objects.equals("COURSE_TIME_ERROR",queryInfo.getSearchType())){
-            String courseStartTimeError = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_START_TIME_ERROR, tenantId);
-            String courseEndTimeError = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_END_TIME_ERROR, tenantId);
-            if(StringUtils.isEmpty(courseStartTimeError) || StringUtils.isEmpty(courseEndTimeError)){
-                return BaseController.failed("没有可导出的数据");
-            }
-            params.put("courseStartTimeError",courseStartTimeError);
-            params.put("courseEndTimeError",courseEndTimeError);
-        }
-        int count = scheduleService.endCountCourseSchedules(params);
-        if (count <= 0) {
-            return BaseController.failed("没有可导出的数据");
-        }
-        if (count > 50000) {
-            return BaseController.failed("数据集太大,不能导出.最大数据集不能超过50000");
-        }
-        ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.COURSE_SCHEDULE,sysUser.getId());
-        ExecutorService executor = Executors.newCachedThreadPool();
-        CompletableFuture.runAsync(()->{
-            try {
-                this.superFindCourseSchedules(queryInfo, managerDownload);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        },executor);
-        HttpResponseResult<Object> succeed = BaseController.succeed();
-        succeed.setMsg(managerDownload.getName() + "导出申请已提交,请到【报表中心-下载列表查看】");
-        return succeed;
-    }
-
     //保存下载记录
     @Override
     public ManagerDownload saveManagerDownload(ExportTypeEnum exportTypeEnum, Integer userId){

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesMessageServiceImpl.java

@@ -71,7 +71,7 @@ public class ExtracurricularExercisesMessageServiceImpl extends BaseServiceImpl<
 				boolean change=false;
 				if(!Integer.valueOf(1).equals(extracurricularExercisesReply.getIsRepliedTimely())&&Objects.nonNull(extracurricularExercisesReply.getSubmitTime())){
 					int hours = DateUtil.hoursBetween(extracurricularExercisesReply.getSubmitTime(), new Date());
-					if(hours>=0&&hours<=12){
+					if(hours>=0&&hours<=24){
 						extracurricularExercisesReply.setIsRepliedTimely(1);
 						change=true;
 					}

+ 19 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -43,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.Serializable;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.function.BiConsumer;
 import java.util.stream.Collectors;
 
@@ -81,6 +82,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     public static final String LIVE_SPEAKER_INFO = "IM:LIVE_SPEAKER_INFO:" + USER_ID;
     //用户对应的直播间Uid
     public static final String LIVE_USER_ROOM = "IM:LIVE_ROOM_USER:" + USER_ID;
+    //记录人员最后变更的状态消息时间
+    public static final String LIVE_USER_STATE_TIME = "IM:LIVE_USER_STATE_TIME:" + USER_ID;
     //房间点赞数
     public static final String LIVE_ROOM_LIKE = "IM:LIVE_ROOM_LIKE:" + ROOM_UID;
     //直播提前开始时间
@@ -443,8 +446,21 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 return;
             }
             Date now = new Date();
+            //获取当前用户状态变更的时间
+            long userStateTime = Optional.ofNullable(user.getTime()).orElse(now.getTime());
+            String userid = user.getUserid();
+            RBucket<Long> userStateTimeCache = redissonClient.getBucket(LIVE_USER_STATE_TIME.replace(USER_ID, userid));
+            if (userStateTimeCache.isExists()) {
+                //缓存的时间比当前传入时间大则放弃这条数据
+                long cacheTime = userStateTimeCache.get();
+                if (cacheTime > userStateTime) {
+                    return;
+                }
+            }
+            //将最新的时间写入缓存
+            userStateTimeCache.set(userStateTime,5L, TimeUnit.MINUTES);
             //查询主讲人userId,若是主讲人
-            RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, user.getUserid()));
+            RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, userid));
             if (speakerCache.isExists()) {
                 RoomSpeakerInfo speakerInfo = speakerCache.get();
                 //主讲人进入房间
@@ -466,12 +482,12 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 return;
             }
             //获取当前用户所在房间的uid
-            RBucket<String> userRoom = redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, user.getUserid()));
+            RBucket<String> userRoom = redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, userid));
             if (!userRoom.isExists()) {
                 return;
             }
             String roomUid = userRoom.get();
-            Integer userId = Integer.valueOf(user.getUserid());
+            Integer userId = Integer.valueOf(userid);
 
             //从房间累计用户信息中查询该用户的信息
             RMap<Integer, RoomUserInfoVo> roomTotalUser = redissonClient.getMap(LIVE_ROOM_TOTAL_USER_LIST.replace(ROOM_UID, roomUid));

+ 6 - 3
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -1956,9 +1956,6 @@ public class ExportController extends BaseController {
     @GetMapping("export/superFindCourseSchedules")
     @PreAuthorize("@pcs.hasPermissions('export/superFindCourseSchedules')")
     public HttpResponseResult superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo) throws IOException {
-        queryInfo.setPage(1);
-        queryInfo.setRows(49999);
-        queryInfo.setIsExport(true);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
@@ -1987,9 +1984,15 @@ public class ExportController extends BaseController {
         ExecutorService executor = Executors.newCachedThreadPool();
         CompletableFuture.runAsync(()->{
             try {
+                TenantContextHolder.setTenantId(tenantId);
+                queryInfo.setPage(1);
+                queryInfo.setRows(49999);
+                queryInfo.setIsExport(true);
                 exportService.superFindCourseSchedules(queryInfo, managerDownload);
             } catch (Exception e) {
                 e.printStackTrace();
+            }finally {
+                TenantContextHolder.clearTenantId();
             }
         },executor);
         HttpResponseResult<Object> succeed = succeed();

+ 98 - 78
mec-web/src/main/resources/logback-spring.xml

@@ -1,83 +1,103 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/logs/web-%d{yyyy-MM-dd_HH}-%i.log" />
-	<property name="CONSOLE_LOG_PATTERN"
-			  value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
-
-	<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder charset="UTF-8">
-			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
-		</encoder>
-	</appender>
-
-	<appender name="file"
-			  class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<FileNamePattern>${LOG_HOME}</FileNamePattern>
-			<MaxHistory>90</MaxHistory>
-			<TimeBasedFileNamingAndTriggeringPolicy
-					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<MaxFileSize>20MB</MaxFileSize>
-			</TimeBasedFileNamingAndTriggeringPolicy>
-		</rollingPolicy>
-
-		<encoder>
-			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
-		</encoder>
-	</appender>
-
-	<appender name="messagefile"
-			  class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<FileNamePattern>/mdata/logs/web-message-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
-			<MaxHistory>90</MaxHistory>
-			<TimeBasedFileNamingAndTriggeringPolicy
-					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<MaxFileSize>20MB</MaxFileSize>
-			</TimeBasedFileNamingAndTriggeringPolicy>
-		</rollingPolicy>
-
-		<encoder>
-			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
-		</encoder>
-	</appender>
-
-	<logger name="com.ym.mec" level="INFO" />
-
-	<logger name="com.ym.mec.thirdparty" level="INFO"
-			additivity="false">
-		<appender-ref ref="messagefile" />
-	</logger>
-
-	<!--开发环境:打印控制台 -->
-	<springProfile name="dev">
-		<root level="INFO">
-			<appender-ref ref="stdout" />
-			<appender-ref ref="file" />
-		</root>
-	</springProfile>
-
-	<springProfile name="test">
-		<root level="INFO">
-			<appender-ref ref="stdout" />
-			<appender-ref ref="file" />
-		</root>
-	</springProfile>
-
-	<springProfile name="dev_server">
-		<root level="INFO">
-			<appender-ref ref="stdout" />
-			<appender-ref ref="file" />
-		</root>
-	</springProfile>
-
-	<!--生产环境:输出到文件 -->
-	<springProfile name="prod">
-		<root level="WARN">
-			<appender-ref ref="stdout" />
-			<appender-ref ref="file" />
-		</root>
-	</springProfile>
+    <property name="LOG_HOME" value="/mdata/logs/web-%d{yyyy-MM-dd_HH}-%i.log"/>
+    <property name="CONSOLE_LOG_PATTERN"
+              value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n"/>
+
+    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder charset="UTF-8">
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="file"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}</FileNamePattern>
+            <MaxHistory>90</MaxHistory>
+            <TimeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <MaxFileSize>20MB</MaxFileSize>
+            </TimeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="messagefile"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>/mdata/logs/web-message-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
+            <MaxHistory>90</MaxHistory>
+            <TimeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <MaxFileSize>20MB</MaxFileSize>
+            </TimeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="liveFile"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>/mdata/logs/web-live-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
+            <MaxHistory>90</MaxHistory>
+            <TimeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <MaxFileSize>20MB</MaxFileSize>
+            </TimeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+
+    <logger name="com.ym.mec" level="INFO"/>
+
+    <logger name="com.ym.mec.thirdparty" level="INFO" additivity="false">
+        <appender-ref ref="messagefile"/>
+    </logger>
+
+    <!--开发环境:打印控制台 -->
+    <logger name="com.ym.mec.biz.service.impl.ImLiveBroadcastRoomServiceImpl" level="INFO" additivity="false">
+        <appender-ref ref="liveFile"/>
+    </logger>
+
+    <!--开发环境:打印控制台 -->
+    <springProfile name="dev">
+        <root level="INFO">
+            <appender-ref ref="stdout"/>
+            <appender-ref ref="file"/>
+        </root>
+    </springProfile>
+
+    <springProfile name="test">
+        <root level="INFO">
+            <appender-ref ref="stdout"/>
+            <appender-ref ref="file"/>
+        </root>
+    </springProfile>
+
+    <springProfile name="dev_server">
+        <root level="INFO">
+            <appender-ref ref="stdout"/>
+            <appender-ref ref="file"/>
+        </root>
+    </springProfile>
+
+    <!--生产环境:输出到文件 -->
+    <springProfile name="prod">
+        <root level="WARN">
+            <appender-ref ref="stdout"/>
+            <appender-ref ref="file"/>
+        </root>
+    </springProfile>
 
 </configuration>