Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 years ago
parent
commit
d24d827597

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java

@@ -231,5 +231,6 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      */
     void sendTodayNotRepliedAndNotDecorateHomework();
 
+    Map<String, String> selectRoomConfig();
 }
 

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

@@ -797,7 +797,6 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         return map;
     }
 
-
     /**
      * 学生-查询直播课
      *
@@ -844,6 +843,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         ObjectMapper objectMapper = new ObjectMapper();
         PracticeScheduleDto scheduleDto = objectMapper.convertValue(orderReqInfo.getBizContent(), PracticeScheduleDto.class);
 
+        //校验课程数与价格
+
         String orderNo = orderReqInfo.getOrderNo();
         scheduleDto.setType(CourseScheduleEnum.PRACTICE.getCode());
         scheduleDto.setStatus(CourseGroupEnum.ING.getCode());
@@ -1169,4 +1170,22 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             }
         }
     }
+
+    /**
+     * @Description: 查询课程配置
+     * @Author: cy
+     * @Date: 2022/5/10
+     */
+    public Map<String, String> selectRoomConfig() {
+        Map<String, String> sysConfig = new HashMap<>();
+        //提前XX分钟创建/进入陪练课房间时间
+        sysConfig.put("practiceStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_PRACTICE_ROOM_MINUTE));
+        //陪练课结束后,XX分钟关闭房间
+        sysConfig.put("practiceEndTime", sysConfigService.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_PRACTICE_ROOM_MINUTE));
+        //提前XX分钟创建/进入直播房间的时间
+        sysConfig.put("liveStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_LIVE_ROOM_MINUTE));
+        //直播结束后,XX分钟关闭房间
+        sysConfig.put("liveEndTime", sysConfigService.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_LIVE_ROOM_MINUTE));
+        return sysConfig;
+    }
 }

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

@@ -1,6 +1,8 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.TeacherFreeTimeDao;
 import com.yonge.cooleshow.biz.dal.dto.PracticeTimesSetting;
@@ -8,15 +10,18 @@ import com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime;
 import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
 import com.yonge.cooleshow.biz.dal.service.TeacherFreeTimeService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherFreeTimeVo;
+import com.yonge.cooleshow.biz.dal.vo.WeekVo;
 import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.utils.date.DateUtil;
+import jodd.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * 老师可排课时间表(TeacherFreeTime)表服务实现类
@@ -39,6 +44,30 @@ public class TeacherFreeTimeServiceImpl extends ServiceImpl<TeacherFreeTimeDao,
         TeacherFreeTime oldTeacherFreeTime = baseMapper.findOne(teacherFreeTime.getTeacherId(),
                 teacherFreeTime.getCourseMinutes(),
                 teacherFreeTime.getFreeMinutes());
+        System.out.println(teacherFreeTime.getMonday());
+        //结束时间减去休息时间
+        if (StringUtil.isNotBlank(teacherFreeTime.getMonday())){
+            teacherFreeTime.setMonday(timeOffSet(teacherFreeTime.getMonday(), teacherFreeTime.getFreeMinutes()));
+        }
+        if (StringUtil.isNotBlank(teacherFreeTime.getTuesday())){
+            teacherFreeTime.setTuesday(timeOffSet(teacherFreeTime.getTuesday(),teacherFreeTime.getFreeMinutes()));
+        }
+        if (StringUtil.isNotBlank(teacherFreeTime.getWednesday())){
+            teacherFreeTime.setWednesday(timeOffSet(teacherFreeTime.getWednesday(),teacherFreeTime.getFreeMinutes()));
+        }
+        if (StringUtil.isNotBlank(teacherFreeTime.getThursday())){
+            teacherFreeTime.setThursday(timeOffSet(teacherFreeTime.getThursday(),teacherFreeTime.getFreeMinutes()));
+        }
+        if (StringUtil.isNotBlank(teacherFreeTime.getFriday())){
+            teacherFreeTime.setFriday(timeOffSet(teacherFreeTime.getFriday(),teacherFreeTime.getFreeMinutes()));
+        }
+        if (StringUtil.isNotBlank(teacherFreeTime.getSaturday())){
+            teacherFreeTime.setSaturday(timeOffSet(teacherFreeTime.getSaturday(),teacherFreeTime.getFreeMinutes()));
+        }
+        if (StringUtil.isNotBlank(teacherFreeTime.getSunday())){
+            teacherFreeTime.setSunday(timeOffSet(teacherFreeTime.getSunday(),teacherFreeTime.getFreeMinutes()));
+        }
+
         //删除原有设置
         if(Objects.nonNull(oldTeacherFreeTime)){
             baseMapper.deleteById(oldTeacherFreeTime.getId());
@@ -68,5 +97,18 @@ public class TeacherFreeTimeServiceImpl extends ServiceImpl<TeacherFreeTimeDao,
         getDetail.setSubjectPrice(priceList);
         return getDetail;
     }
+
+    public static String timeOffSet(String week,Integer freeMinutes){
+        List<WeekVo> list = JSONObject.parseArray(week, WeekVo.class);
+        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+        List<WeekVo> weekList = new ArrayList<>();
+        for (WeekVo weekVo : list) {
+            WeekVo vo = new WeekVo();
+            vo.setStartTime(weekVo.getStartTime());
+            vo.setEndTime(sdf.format(DateUtil.offsetMinute(weekVo.getEndTime(), -freeMinutes, "HH:mm:ss")));
+            weekList.add(vo);
+        }
+        return JSON.toJSON(weekList).toString();
+    }
 }
 

+ 24 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/WeekVo.java

@@ -0,0 +1,24 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import java.io.Serializable;
+
+public class WeekVo implements Serializable {
+    private String startTime;
+    private String endTime;
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+}

+ 3 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -145,6 +145,7 @@
         <if test="param.subjectId != null">
             AND b.subject_id_ = #{param.subjectId}
         </if>
+        order by start_time_
     </select>
 
     <select id="queryTeacherPracticeCourse" resultType="com.yonge.cooleshow.biz.dal.vo.MyCourseVo">
@@ -192,6 +193,7 @@
         <if test="param.studentName !=null and param.studentName !=''">
             AND u.username_ LIKE CONCAT('%', #{param.studentName}, '%')
         </if>
+        ORDER BY cs.start_time_
     </select>
 
     <select id="countTeacherNoDecorateHomework" resultType="java.lang.Integer">
@@ -332,7 +334,7 @@
     <select id="queryCourseScheduleStudent" resultType="java.lang.String"
             parameterType="com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch">
         SELECT class_date_ FROM course_schedule
-        WHERE id_ IN (SELECT course_id_ FROM course_schedule_student_payment WHERE user_id_ = #{studentId} AND course_type_ = 'PRACTICE')
+        WHERE id_ IN (SELECT course_id_ FROM course_schedule_student_payment WHERE user_id_ = #{studentId})
         <![CDATA[ AND class_date_  >= #{startDate} ]]>
         <![CDATA[ AND class_date_  <= #{endDate} ]]>
     </select>

+ 10 - 8
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupDetailMapper.xml

@@ -64,14 +64,16 @@
 	</select>
 	<select id="selectPageStudent" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonPurchaseStudent">
 		SELECT
-		id_ AS userId,
-		real_name_ AS realName,
-		<include refid="userDetail"/>
-		FROM sys_user
-		WHERE id_ IN
-		(SELECT student_id_
-		FROM video_lesson_purchase_record
-		WHERE video_lesson_group_id_ = #{param.videoLessonGroupId})
+			u.id_ AS userId,
+			u.real_name_ AS realName,
+			u.username_ AS username,
+			u.avatar_ AS avatar,
+			u.gender_ AS gender,
+			o.pay_time_ AS createTime
+		FROM video_lesson_purchase_record r
+		LEFT JOIN sys_user u ON r.student_id_=u.id_
+		LEFT JOIN user_order o ON r.order_no_=o.order_no_
+		WHERE r.video_lesson_group_id_ = #{param.videoLessonGroupId}
 	</select>
 	<select id="selectPageAuth" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupDetailVo">
 			SELECT

+ 6 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseScheduleController.java

@@ -50,6 +50,12 @@ public class StudentCourseScheduleController extends BaseController {
     @Autowired
     private AppVersionInfoService appVersionInfoService;
 
+    @ApiOperation("学生端-查询房间配置")
+    @GetMapping("/selectRoomConfig")
+    public HttpResponseResult<Object> selectRoomConfig() {
+        return succeed(courseScheduleService.selectRoomConfig());
+    }
+
     @ApiOperation("学生端-我的-我的课程-陪练课")
     @PostMapping("/queryStudentPracticeCourse")
     public HttpResponseResult<PageInfo<MyCourseVo>> queryStudentPracticeCourse(@RequestBody MyCourseSearch search) {

+ 6 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseScheduleController.java

@@ -145,5 +145,11 @@ public class TeacherCourseScheduleController extends BaseController {
         }
         return succeed(courseScheduleService.queryLiveAndVideo(null, user.getId(), null));
     }
+
+    @ApiOperation("老师端-查询房间配置")
+    @GetMapping("/selectRoomConfig")
+    public HttpResponseResult<Object> selectRoomConfig() {
+        return succeed(courseScheduleService.selectRoomConfig());
+    }
 }
 

+ 4 - 4
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/WithdrawController.java

@@ -44,7 +44,7 @@ public class WithdrawController extends BaseController {
      * @return
      */
     @PostMapping("/callback")
-    public HttpResponseResult<Object> callback(@RequestBody String content, HttpServletRequest request) {
+    public String test(@RequestBody String content, HttpServletRequest request) {
         log.info("交易回调请求地址:{} 请求参数:{}", request.getRemoteAddr(), content);
         try {
             if (StringUtils.isBlank(content)) {
@@ -57,11 +57,11 @@ public class WithdrawController extends BaseController {
             Map<String, Object> withdrawRecord = JSONObject.parseObject(jsonStr);
             UserWithdrawalCallback callback = JsonUtil.toJavaObject(withdrawRecord, UserWithdrawalCallback.class);
             callbackService.insertCallback(callback);
-            return succeed();
         } catch (Exception e) {
             log.error("解密失败e:{}", e);
-            return failed();
+            return "failed";
         }
+        return "success";
     }
 
     @GetMapping("/test")
@@ -97,4 +97,4 @@ public class WithdrawController extends BaseController {
         log.info("单笔请求返回参数:{}", requestParam);
         return requestParam;
     }
-}
+}

+ 13 - 0
toolset/utils/src/main/java/com/yonge/toolset/utils/date/DateUtil.java

@@ -1319,6 +1319,19 @@ public class DateUtil {
 		return null;
 	}
 
+	public static Date offsetMinute(String time,int offset,String format){
+		try {
+			Date parse = new SimpleDateFormat(format).parse(time);
+			Calendar beforeTime = Calendar.getInstance();
+			beforeTime.setTime(parse);
+			beforeTime.add(Calendar.MINUTE, offset);
+			return beforeTime.getTime();
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
 	public static void main(String[] args) throws ParseException {
 		// DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 		DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");