瀏覽代碼

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

liujc 1 年之前
父節點
當前提交
49d7f929ef

+ 10 - 0
mec-application/pom.xml

@@ -19,6 +19,16 @@
     </properties>
     <dependencies>
         <dependency>
+            <groupId>com.plumelog</groupId>
+            <artifactId>plumelog-logback</artifactId>
+            <version>3.5.3</version>
+        </dependency>
+<!--        <dependency>
+            <groupId>com.plumelog</groupId>
+            <artifactId>plumelog-trace</artifactId>
+            <version>3.5.3</version>
+        </dependency>-->
+        <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
         </dependency>

+ 12 - 0
mec-application/src/main/resources/bootstrap-dev.properties

@@ -0,0 +1,12 @@
+spring.cloud.nacos.config.server-addr=10.206.0.17:8848
+#\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
+spring.cloud.nacos.config.namespace=470509f8-ea21-42cb-9c64-924c5ccc68ce
+#\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
+spring.cloud.nacos.config.group=DEFAULT_GROUP
+#\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}
+spring.cloud.nacos.config.prefix=app
+#\u6307\u5b9a\u6587\u4ef6\u540e\u7f00
+spring.cloud.nacos.config.file-extension=yaml
+#\u662f\u5426\u52a8\u6001\u5237\u65b0
+spring.cloud.nacos.config.enabled=true
+logging.config=classpath:logback-dev.xml

+ 1 - 0
mec-application/src/main/resources/bootstrap-prod.properties

@@ -9,3 +9,4 @@ spring.cloud.nacos.config.prefix=auth
 spring.cloud.nacos.config.file-extension=yaml
 #\u662f\u5426\u542f\u7528nacos\u914d\u7f6e\u4e2d\u5fc3
 spring.cloud.nacos.config.enabled=true
+logging.config=classpath:logback-dev.xml

+ 1 - 0
mec-application/src/main/resources/bootstrap-test.properties

@@ -9,3 +9,4 @@ spring.cloud.nacos.config.prefix=app
 spring.cloud.nacos.config.file-extension=yaml
 #\u662f\u5426\u52a8\u6001\u5237\u65b0
 spring.cloud.nacos.config.enabled=true
+logging.config=classpath:logback-test-env.xml

+ 11 - 0
mec-application/src/main/resources/logback-dev.xml

@@ -27,6 +27,16 @@
         </encoder>
     </appender>
 
+    <appender name="redisAppender" class="com.plumelog.logback.appender.RedisAppender">
+        <appName>plumelog</appName>
+        <redisHost>10.206.0.13</redisHost>
+        <redisPort>6379</redisPort>
+        <redisAuth>dyym</redisAuth>
+        <env>dev</env>
+        <redisDb>10</redisDb>
+        <runModel>2</runModel>
+    </appender>
+
     <logger name="com.ym.app" level="INFO" />
 <!--    <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="trace" />-->
 
@@ -34,5 +44,6 @@
     <root level="INFO">
         <appender-ref ref="stdout" />
         <appender-ref ref="file" />
+        <appender-ref ref="redisAppender" />
     </root>
 </configuration>

+ 63 - 0
mec-application/src/main/resources/logback-spring.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+
+	<property name="LOG_HOME" value="/mdata/logs/gateway-%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>
+
+	<logger name="com.ym.mec" level="INFO" />
+
+	<!--本地环境:打印控制台 -->
+	<springProfile name="local">
+		<root level="INFO">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
+
+	<!--开发环境:打印控制台 -->
+	<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="prod">
+		<root level="WARN">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
+
+</configuration>

+ 38 - 0
mec-application/src/main/resources/logback-test-env.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+
+    <property name="LOG_HOME" value="/mdata/mec-test/logs/app-%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>
+
+    <logger name="com.ym.app" level="INFO" />
+<!--    <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="trace" />-->
+
+    <!--本地环境:打印控制台 -->
+    <root level="INFO">
+        <appender-ref ref="stdout" />
+        <appender-ref ref="file" />
+    </root>
+</configuration>

+ 27 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -24,6 +24,7 @@ import com.microsvc.toolkit.middleware.im.message.GroupMemberWrapper;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.enums.im.ClientEnum;
 import com.ym.mec.biz.dal.wrapper.ImGroupMemberWrapper;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.biz.service.im.ImGroupCoreService;
 import com.ym.mec.common.page.QueryInfo;
@@ -141,7 +142,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
     @Transactional(rollbackFor = Exception.class)
     public void add(Employee employee) {
         RBucket<String> bucket = redissonClient.getBucket("add_employee_lock" + employee.getPhone());
-        if (!bucket.trySet(employee.getPhone(), 1l, TimeUnit.SECONDS)) {
+        if (!bucket.trySet(employee.getPhone(), 1L, TimeUnit.SECONDS)) {
             throw new BizException("请勿重复提交");
         }
         SysUser user = teacherDao.getUserWithPhone(employee.getPhone());
@@ -149,6 +150,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
             throw new BizException("用户已存在学校账户");
         }
         Integer tenantId = employee.getTenantId();
+
         if (user != null && user.getId() != null) {
             checkTenantId(tenantId, user.getTenantId());
             Employee employee1 = employeeDao.get(user.getId());
@@ -175,6 +177,11 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                 }
                 employee.setUserType(user.getUserType() + ",SYSTEM");
                 teacherDao.updateUser(employee);
+
+                // 用户更新信息同步到三方
+                if (Objects.nonNull(employee.getId())) {
+                    registerImUserInfo(employee.getId());
+                }
                 return;
             } else {
                 throw new BizException("员工已存在");
@@ -214,6 +221,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
         addUserTenant(employee.getTenantIds(), tenantId, userId);
         //添加到OA
         oaUserService.addOaUser(employee);
+
     }
 
     /**
@@ -307,6 +315,11 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                 e.printStackTrace();
             }
         });
+
+        // 用户更新信息同步到三方
+        if (Objects.nonNull(employee.getId())) {
+            registerImUserInfo(employee.getId());
+        }
     }
 
     @Override
@@ -729,7 +742,16 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
         employeeDao.update(employee);
 
         // 用户更新信息同步到三方
-        SysUser userInfo = teacherDao.getUser(employee.getId());
+        registerImUserInfo(employee.getId());
+
+    }
+
+    /**
+     *  用户更新信息同步到三方
+     * @param userId 用户id
+     */
+    private void registerImUserInfo(Integer userId) {
+        SysUser userInfo = teacherDao.getUser(userId);
         if (Objects.nonNull(userInfo)) {
 
             try {
@@ -739,12 +761,13 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                     username = Optional.ofNullable(userInfo.getRealName()).filter(StringUtils::isNotBlank).orElse(username);
                 }
 
-                imGroupCoreService.register(String.valueOf(userInfo.getId()), "", username, sysUserService.getImAvatar(userInfo));
+                ImGroupWrapper.ImUserInfo imUserInfo = imGroupCoreService.register(String.valueOf(userInfo.getId()), "",
+                    username, sysUserService.getImAvatar(userInfo));
+                log.info("用户更新信息同步到三方成功,userId={}, ret={}", userInfo.getId(), JSON.toJSONString(imUserInfo));
             } catch (Exception e) {
                 log.error("用户更新信息同步到三方失败,userId:{}", userInfo.getId(), e);
             }
         }
-
     }
 
     @Override

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

@@ -546,7 +546,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             imGroup.setIntroduce(imGroup.getName());
             imGroup.setMemo(imGroup.getName());
             imGroup.setMemberNum(0);
-            imGroup.setImg(sysConfigService.findByParamName(SysConfigService.SCHOOL_IM_GROUP_IMG).getParanValue());
+            //imGroup.setImg(sysConfigService.findByParamName(SysConfigService.SCHOOL_IM_GROUP_IMG).getParanValue());
             imGroup.setType(ImGroup.GroupTypeEnum.SCHOOL.getCode());
             imGroup.setGroupType(ImGroup.GroupTypeEnum.SCHOOL);
             imGroup.setCreateTime(new Date());

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -306,7 +306,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		messageDto.setObjectName("RC:ImgMsg");
         if (StringUtils.isNotBlank(messageDto.getTargetIds())) {
             ImMessageDto imMessageDto = this.getImGroupMessage(messageDto);
-            imMessageDto.setMessageContent(imageToBase64(bufferedImage, "png"));
+            //imMessageDto.setMessageContent(imageToBase64(bufferedImage, "png"));
             imMessageDto.setFileUrl(messageDto.getFileUrl());
             this.sendGroupMessage(imMessageDto);
         }
@@ -315,7 +315,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
             messageDto.setTargetIds(messageDto.getUserTargetIds());
             ImMessageDto imMessageDto = this.getImGroupMessage(messageDto);
             messageDto.setTargetIds(targetIds);
-            imMessageDto.setMessageContent(imageToBase64(bufferedImage, "png"));
+            //imMessageDto.setMessageContent(imageToBase64(bufferedImage, "png"));
             imMessageDto.setFileUrl(messageDto.getFileUrl());
             imMessageDto.setObjectName(messageDto.getObjectName());
             this.sendImMessage(imMessageDto);
@@ -323,7 +323,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	public void sendGroupMessage(ImMessageDto imMessageDto){
-		LOGGER.info("sendGroupMessage groupSend ret={}", imMessageDto);
+		LOGGER.info("sendGroupMessage groupSend ret={}", JSON.toJSONString(imMessageDto));
 		//ExecutorService executor = Executors.newCachedThreadPool();
 		CompletableFuture.runAsync(()->{
 			imFeignService.groupSend(imMessageDto);
@@ -332,7 +332,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 
     public void sendImMessage(ImMessageDto imMessageDto){
-		LOGGER.info("sendImMessage privateSend ret={}", imMessageDto);
+		LOGGER.info("sendImMessage privateSend ret={}", JSON.toJSONString(imMessageDto));
         CompletableFuture.runAsync(()-> imFeignService.privateSend(imMessageDto));
     }
 

+ 16 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -450,9 +450,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
         applyBaseInfo.setName(vipGroup.getLiveBroadcastRoom().getRoomTitle());
         //课程信息调整
-        List<CourseSchedule> courseSchedules = vipGroup.getCourseSchedules();
-        ClassGroup finalClassGroup = classGroup;
-        courseSchedules.forEach(courseSchedule -> {
+        List<CourseSchedule> courseSchedules = courseScheduleDao.getClassGroupCourses(classGroup.getId().longValue());
+
+        Boolean upCourseFlag = true;
+        //兼容历史的直播课
+        if(CollectionUtils.isEmpty(courseSchedules)){
+            courseSchedules = vipGroup.getCourseSchedules();
+            upCourseFlag = false;
+        }
+        for (CourseSchedule courseSchedule : courseSchedules) {
             courseSchedule.setGroupType(GroupType.valueOf(groupType));
             courseSchedule.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
             if (courseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
@@ -462,10 +468,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             courseSchedule.setActualTeacherId(vipGroupApplyBaseInfoDto.getUserId());
             courseSchedule.setStatus(CourseStatusEnum.NOT_START);
             courseSchedule.setType(CourseSchedule.CourseScheduleType.valueOf(groupType));
-            courseSchedule.setClassGroupId(finalClassGroup.getId());
+            courseSchedule.setClassGroupId(classGroup.getId());
             courseSchedule.setName(vipGroupApplyBaseInfoDto.getName());
             courseSchedule.setOrganId(vipGroupApplyBaseInfoDto.getOrganId());
-        });
+        }
+        if (upCourseFlag) {
+            vipGroup.setCourseSchedules(courseSchedules);
+            courseScheduleDao.batchUpdate(courseSchedules);
+        }
         if (vipGroup1.getStatus().equals(VipGroupStatusEnum.PROGRESS)) {
             // 修改课程信息
             // 修改直播间标题
@@ -2649,7 +2659,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("您已加入此课程");
         }
         int courseNum = courseScheduleDao.countVipGroupCourses(vipGroup.getId().intValue(), vipGroup.getGroupType());
-        if (vipGroup.getStatus() != VipGroupStatusEnum.APPLYING || classGroup.getDelFlag() != 1 || courseNum > 0) {
+        if (vipGroup.getGroupType().equals("VIP") && (vipGroup.getStatus() != VipGroupStatusEnum.APPLYING || classGroup.getDelFlag() != 1 || courseNum > 0)) {
             throw new BizException("当前课程已无法通过购买加入,请联系教务老师");
         }
         GroupType groupType = GroupType.VIP;

+ 1 - 0
mec-gateway/mec-gateway-web/src/main/resources/bootstrap-dev.properties

@@ -11,3 +11,4 @@ spring.cloud.nacos.config.file-extension=yaml
 spring.cloud.nacos.config.refresh.enabled=true
 #\u662f\u5426\u542f\u7528nacos\u914d\u7f6e\u4e2d\u5fc3
 spring.cloud.nacos.config.enabled=true
+logging.config=classpath:logback-dev.xml

+ 1 - 0
mec-gateway/mec-gateway-web/src/main/resources/bootstrap-prod.properties

@@ -14,3 +14,4 @@ spring.cloud.nacos.config.file-extension=yaml
 spring.cloud.nacos.config.refresh.enabled=true
 #\u662f\u5426\u542f\u7528nacos\u914d\u7f6e\u4e2d\u5fc3
 spring.cloud.nacos.config.enabled=true
+logging.config=classpath:logback-spring.xml

+ 0 - 5
pom.xml

@@ -27,11 +27,6 @@
 
 	<dependencyManagement>
 		<dependencies>
-			<!--<dependency>
-				<groupId>com.alibaba.cloud</groupId>
-				<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-				<version>2.2.1.RELEASE</version>
-			</dependency>-->
 			<dependency>
 				<groupId>org.springframework.cloud</groupId>
 				<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>