瀏覽代碼

Merge remote-tracking branch 'origin/master'

liweifan 3 年之前
父節點
當前提交
6ca8c359de

+ 9 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java

@@ -216,4 +216,13 @@ public interface SysConfigConstant {
      */
     String HOMEWORK_EXPIRE_TIME = "homework_expire_time";
 
+    /**
+     * 敏感词-黑名单
+     */
+    String BLACK_LIST = "black_list";
+
+    /**
+     * 敏感词-白名单
+     */
+    String WHITE_LIST = "white_list";
 }

+ 2 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CourseRemindTask.java

@@ -4,11 +4,13 @@ import com.yonge.cooleshow.api.feign.TeacherFeignService;
 import com.yonge.cooleshow.task.core.BaseTask;
 import com.yonge.cooleshow.task.core.TaskException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 /**
  * @Author: cy
  * @Date: 2022/5/6
  */
+@Service
 public class CourseRemindTask extends BaseTask {
 
     @Autowired

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysConfigDao.java

@@ -28,4 +28,6 @@ public interface SysConfigDao extends BaseDAO<Long, SysConfig> {
     String findConfigValue(String paramName);
 
     void batchUpdate(@Param("configList") List<SysConfig> configList);
+
+    void updateByName(@Param("paramName") String paramName, @Param("paramValue") String paramValue);
 }

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysConfigService.java

@@ -15,7 +15,7 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      * @describe 根据配置名称获取配置信息
      */
     SysConfig findByParamName(String paramName);
-    
+
     List<SysConfig> findByParamName(List<String> paramNameList);
 
     String findConfigValue(String paramName);
@@ -23,4 +23,6 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     void batchUpdate(List<SysConfig> configList);
 
     void updateConfig(SysConfig config);
+
+    void updateByName(String paramName, String paramValue);
 }

+ 14 - 16
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseRepliedServiceImpl.java

@@ -87,24 +87,22 @@ public class CourseRepliedServiceImpl extends ServiceImpl<CourseScheduleRepliedD
             replied.setTeacherRepliedTime(new Date());
             if (!repliedIsNull(replied)) {
                 repliedDao.updateReplied(replied);
-                return;
+            }else {
+                repliedDao.insert(replied);
             }
-            repliedDao.insert(replied);
-            return;
-        }
-
-        //当前用户为学员
-        isPayment(userId, scheduleId);
-        replied.setStudentId(userId);
-        replied.setTeacherReplied(null);
-        replied.setStudentRepliedTime(new Date());
-        if (!repliedIsNull(replied)) {
-            repliedDao.updateReplied(replied);
-            return;
+        }else {
+            //当前用户为学员
+            isPayment(userId, scheduleId);
+            replied.setStudentId(userId);
+            replied.setTeacherReplied(null);
+            replied.setStudentRepliedTime(new Date());
+            if (!repliedIsNull(replied)) {
+                repliedDao.updateReplied(replied);
+            }else {
+                repliedDao.insert(replied);
+            }
+            repliedSend(courseSchedule.getTeacherId(), userId);
         }
-        repliedDao.insert(replied);
-
-        repliedSend(courseSchedule.getTeacherId(), userId);
     }
 
     /**

+ 22 - 18
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1424,27 +1424,31 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 Integer liveCount = 0;
                 Integer practiceCount = 0;
                 List<CountVo> typeCount = baseMapper.selectTypeCount(sysUser.getId(), tomorrow);
-                for (CountVo countVo : typeCount) {
-                    if (countVo.getType().equals(CourseScheduleEnum.LIVE.getCode())) {
-                        liveCount = countVo.getCount();
-                    }
-                    if (countVo.getType().equals(CourseScheduleEnum.PRACTICE.getCode())) {
-                        practiceCount = countVo.getCount();
+                if (CollectionUtils.isNotEmpty(typeCount)) {
+                    for (CountVo countVo : typeCount) {
+                        if (countVo.getType().equals(CourseScheduleEnum.LIVE.getCode())) {
+                            liveCount = countVo.getCount();
+                        }
+                        if (countVo.getType().equals(CourseScheduleEnum.PRACTICE.getCode())) {
+                            practiceCount = countVo.getCount();
+                        }
                     }
                 }
 
                 //老师端-明日课程提醒
-                String teacherUrl = sysMessageService.selectConfigUrl(MessageTypeEnum.TOMORROW_COURSE_REMINDER.getCode());
-                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TOMORROW_COURSE_REMINDER,
-                        teacherReceivers, null, 0, teacherUrl, ClientEnum.TEACHER.getCode(),
-                        practiceCount.toString(), liveCount.toString());
-                log.info("send success {}", MessageTypeEnum.TOMORROW_COURSE_REMINDER);
-
-                //老师端-明日课程提醒(短信)
-                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TOMORROW_COURSE_REMINDER,
-                        teacherSms, null, 0, null, null,
-                        practiceCount, liveCount);
-                log.info("send success {}", MessageTypeEnum.SMS_STUDENT_BUY_PRACTICE);
+                if (liveCount != 0 || practiceCount != 0) {
+                    String teacherUrl = sysMessageService.selectConfigUrl(MessageTypeEnum.TOMORROW_COURSE_REMINDER.getCode());
+                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TOMORROW_COURSE_REMINDER,
+                            teacherReceivers, null, 0, teacherUrl, ClientEnum.TEACHER.getCode(),
+                            practiceCount.toString(), liveCount.toString());
+                    log.info("send success {}", MessageTypeEnum.TOMORROW_COURSE_REMINDER);
+
+                    //老师端-明日课程提醒(短信)
+                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TOMORROW_COURSE_REMINDER,
+                            teacherSms, null, 0, null, null,
+                            practiceCount, liveCount);
+                    log.info("send success {}", MessageTypeEnum.SMS_STUDENT_BUY_PRACTICE);
+                }
             }
         }
     }
@@ -1710,7 +1714,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             }
 
             List<CourseScheduleStudentVo> courseList = userList.stream()
-                    .filter(s -> (s.getType().equals(CourseScheduleEnum.PRACTICE.getCode()) || s.getType().equals(CourseScheduleEnum.PIANO_ROOM_CLASS.getCode()) ))
+                    .filter(s -> (s.getType().equals(CourseScheduleEnum.PRACTICE.getCode()) || s.getType().equals(CourseScheduleEnum.PIANO_ROOM_CLASS.getCode())))
                     .collect(Collectors.toList());
 
             //清除缓存

+ 27 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java

@@ -10,10 +10,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.LiveRoomDao;
 import com.yonge.cooleshow.biz.dal.entity.*;
-import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
-import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.RoomTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.TeacherSalaryEnum;
+import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.IMHelper;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
@@ -21,6 +18,7 @@ import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.utils.date.DateUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -76,6 +74,8 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
     private StudentAttendanceService studentAttendanceService;
     @Autowired
     private TeacherAttendanceService teacherAttendanceService;
+    @Autowired
+    private SysMessageService sysMessageService;
 
     /**
      * 生成房间UID
@@ -169,7 +169,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         //查询房间提前创建的时间
         String preCreateRoomMinute = sysConfigService.findConfigValue(PRE_CREATE_LIVE_ROOM_MINUTE);
         if (StringUtils.isEmpty(preCreateRoomMinute)) {
-            log.info("roomDestroy>>>> 未查询到配置:{}", PRE_CREATE_LIVE_ROOM_MINUTE);
+            log.info("createCourseLiveRoom>>>> 未查询到配置:{}", PRE_CREATE_LIVE_ROOM_MINUTE);
             return;
         }
         //查询课时表生成直播间
@@ -225,10 +225,32 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             this.save(room);
             //去融云创建房间及创建房间缓存信息
             createLiveRoomInfo(room);
+            //开课提醒
+            pushLiveCreateRoom(room);
         });
     }
 
     /**
+     * 开课提醒
+     */
+    private void pushLiveCreateRoom(LiveRoom room) {
+        try {
+            //查询老师信息
+            SysUser teacherInfo = getSysUser(room.getSpeakerId());
+            //极光-消息推送
+            Map<Long, String> teacherMap = new HashMap<>();
+            teacherMap.put(teacherInfo.getId(), teacherInfo.getPhone());
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_REMINDER,
+                    teacherMap, null, 0, null, ClientEnum.TEACHER.getCode(),
+                    teacherInfo.getUsername(), room.getRoomTitle());
+        } catch (Exception e) {
+            log.error("pushLiveCreateRoom JIGUANG error param : {}", JSONObject.toJSONString(room));
+            log.error("pushLiveCreateRoom JIGUANG error", e.getCause());
+        }
+        log.info("pushLiveCreateRoom JIGUANG ok param : {}", JSONObject.toJSONString(room));
+    }
+
+    /**
      * 创建临时房间-直播间
      */
     @Override

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysConfigServiceImpl.java

@@ -47,4 +47,7 @@ public class SysConfigServiceImpl extends BaseServiceImpl<Long, SysConfig> imple
 		sysConfigDao.update(config);
 	}
 
+    public void updateByName(String paramName, String paramValue) {
+        sysConfigDao.updateByName(paramName, paramValue);
+    }
 }

+ 18 - 9
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -721,18 +721,27 @@
     </select>
     <select id="selectTeacher" resultType="com.yonge.cooleshow.auth.api.entity.SysUser"
             parameterType="java.lang.String">
-        SELECT s.teacher_id_ AS id,u.phone_ AS phone
+        SELECT DISTINCT
+            s.teacher_id_ AS id,
+            u.phone_ AS phone
         FROM course_schedule s
-        LEFT JOIN sys_user u ON s.teacher_id_=u.id_
-        WHERE class_date_=#{tomorrow} AND lock_=0
-        GROUP BY s.teacher_id_
+        LEFT JOIN sys_user u ON s.teacher_id_ = u.id_
+        LEFT JOIN course_group g ON s.course_group_id_=g.id_
+        WHERE lock_=0
+        AND class_date_ = DATE_SUB(curdate(),INTERVAL -1 DAY)
+        AND g.status_='ING'
     </select>
     <select id="selectTypeCount" resultType="com.yonge.cooleshow.biz.dal.vo.CountVo">
-        SELECT type_ AS type, COUNT(1) AS count
-        FROM course_schedule
-        WHERE class_date_=#{tomorrow}
-        AND teacher_id_=#{teacherId} AND lock_=0
-        GROUP BY type_
+        SELECT
+            s.type_ AS type,
+            COUNT(1) AS count
+        FROM course_schedule s
+        LEFT JOIN course_group g ON s.course_group_id_=g.id_
+        WHERE s.lock_=0
+        AND s.teacher_id_=#{teacherId}
+        AND s.class_date_=DATE_SUB(curdate(),INTERVAL -1 DAY)
+        AND g.status_='ING'
+        GROUP BY s.type_
     </select>
 
 

+ 5 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysConfigMapper.xml

@@ -87,6 +87,11 @@
 				WHERE id_ = #{config.id}
 		</foreach>
 	</update>
+    <update id="updateByName">
+		UPDATE sys_config
+		SET param_value_=#{paramValue}
+		WHERE param_name_=#{paramName}
+	</update>
 
     <!-- 根据主键删除一条记录 -->
 	<delete id="delete">