Переглянути джерело

Merge remote-tracking branch 'origin/master'

liweifan 3 роки тому
батько
коміт
62160c5d50

+ 2 - 2
audio-analysis/src/main/resources/logback-spring.xml

@@ -31,7 +31,7 @@
 
 	<!--开发环境:打印控制台 -->
 	<springProfile name="local">
-		<root level="dev">
+		<root level="info">
 			<appender-ref ref="stdout" />
 			<appender-ref ref="file" />
 		</root>
@@ -39,7 +39,7 @@
 
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
-		<root level="dev">
+		<root level="info">
 			<appender-ref ref="stdout" />
 			<appender-ref ref="file" />
 		</root>

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

@@ -217,4 +217,9 @@ public interface SysConfigConstant {
     /** 统一社会信用代码 */
     String COMPANY_ORGAN_CODE = "company_organ_code";
 
+    /**
+     * 课后作业过期时间 天
+     */
+    String HOMEWORK_EXPIRE_TIME = "homework_expire_time";
+
 }

+ 5 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseHomeworkDao.java

@@ -36,11 +36,13 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	/**
 	 * 课程详情 课后作业信息
 	 *
-	 * @param courseId  课程id
+	 * @param courseId           课程id
 	 * @param studentId
+	 * @param homeworkExpireTime
 	 * @return 课后作业信息
 	 */
-	CourseHomeworkDetailVo selectCourseHomeworkDetailByCourseId(@Param("courseId") Long courseId, @Param("studentId") Long studentId);
+	CourseHomeworkDetailVo selectCourseHomeworkDetailByCourseId(@Param("courseId") Long courseId, @Param("studentId") Long studentId,
+																@Param("homeworkExpireTime") String homeworkExpireTime);
 
 	/**
 	 * 获取课程购买的用户信息
@@ -117,6 +119,5 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @param studentId
 	 * @return
 	 */
-	List<CourseHomeworkVo> selectAbsenteeism(@Param("practiceRecord") List<Long> practiceRecord,
-											 @Param("studentId") Long studentId);
+	List<CourseHomeworkVo> selectAbsenteeism(@Param("practiceRecord") List<Long> practiceRecord, @Param("studentId") Long studentId);
 }

+ 12 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/PianoRoomSettings.java

@@ -31,6 +31,9 @@ public class PianoRoomSettings implements Serializable {
     @ApiModelProperty("状态 0-停用 1-使用 ")
     @TableField(value = "status_")
     private Integer status;
+    @ApiModelProperty("封面url")
+    @TableField(value = "cover_url_")
+    private String coverUrl;
     @ApiModelProperty("创建人 ")
 	@TableField(value = "create_by_")
     private Long createBy;
@@ -52,7 +55,15 @@ public class PianoRoomSettings implements Serializable {
     @TableLogic
     private Integer delFlag;
 
-	public Long getId() {
+    public String getCoverUrl() {
+        return coverUrl;
+    }
+
+    public void setCoverUrl(String coverUrl) {
+        this.coverUrl = coverUrl;
+    }
+
+    public Long getId() {
         return id;
     }
 

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

@@ -20,6 +20,7 @@ import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
@@ -35,6 +36,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -64,6 +66,9 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
     @Autowired
     private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
 
+    @Autowired
+    private SysConfigService sysConfigService;
+
 	@Override
     public CourseHomeworkVo detail(Long id) {
         return baseMapper.detail(id);
@@ -164,7 +169,8 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
     public CourseHomeworkDetailVo getCourseHomeworkDetailByCourseId(Long courseId, Long studentId) {
 
         // 课程基本信息
-        CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper.selectCourseHomeworkDetailByCourseId(courseId,studentId);
+        CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper.selectCourseHomeworkDetailByCourseId(courseId, studentId,
+                                                                                                        getHomeworkExpireTime());
 
         if (courseHomeworkDetailVo == null) {
             throw  new BizException("未找到作业信息");
@@ -279,7 +285,8 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
 
         // 课程基本信息
         CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper
-                .selectCourseHomeworkDetailByCourseId(reviewDto.getCourseScheduleId(), reviewDto.getStudentId());
+                .selectCourseHomeworkDetailByCourseId(reviewDto.getCourseScheduleId(), reviewDto.getStudentId(),
+                                                      getHomeworkExpireTime());
 
         // 检查学生是否提交作业
         if (!YesOrNoEnum.YES.getCode().equals(courseHomeworkDetailVo.getSubmitHomework().getCode())) {
@@ -322,7 +329,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
         }
         // 课程基本信息
         CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper
-                .selectCourseHomeworkDetailByCourseId(submitDto.getCourseScheduleId(), submitDto.getStudentId());
+                .selectCourseHomeworkDetailByCourseId(submitDto.getCourseScheduleId(), submitDto.getStudentId(),getHomeworkExpireTime());
 
         // 检查老师是否评价作业
         if (YesOrNoEnum.YES.getCode().equals(courseHomeworkDetailVo.getReviewHomework().getCode())) {
@@ -351,6 +358,15 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
 
     }
 
+    private String getHomeworkExpireTime() {
+
+        String homeworkExpireTime = sysConfigService.findConfigValue(SysConfigConstant.HOMEWORK_EXPIRE_TIME);
+        if (StringUtils.isEmpty(homeworkExpireTime)) {
+            return "9999";
+        }
+        return homeworkExpireTime;
+    }
+
     //  发送学生提交作业消息
     private void sendSubmitMessage(CourseHomeworkSubmitDto submitDto, CourseHomeworkDetailVo courseHomeworkDetailVo) {
         // 发送学生提交作业消息给老师

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

@@ -37,6 +37,7 @@ import com.yonge.toolset.utils.date.DateUtil;
 import com.yonge.toolset.utils.obj.ObjectUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.redisson.api.RLock;
 import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
@@ -1020,9 +1021,18 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     public HttpResponseResult<OrderCreateRes> buyPracticeCourse(OrderReq.OrderReqInfo orderReqInfo) {
         ObjectMapper objectMapper = new ObjectMapper();
         PracticeScheduleDto scheduleDto = objectMapper.convertValue(orderReqInfo.getBizContent(), PracticeScheduleDto.class);
-        return DistributedLock.of(redissonClient)
-                .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey("teacherId:" + scheduleDto.getTeacherId())
-                        , () -> this.buyPracticeCourseTran(orderReqInfo), 60L, TimeUnit.SECONDS);
+
+        RLock lock = redissonClient.getLock("teacherId:" + scheduleDto.getTeacherId());
+        try {
+            if (lock.tryLock(10,60, TimeUnit.SECONDS)) {
+                return buyPracticeCourseTran(orderReqInfo);
+            }
+        } catch (InterruptedException e) {
+            throw new BizException("创建陪练课失败:{}", e.getMessage());
+        } finally {
+            lock.unlock();
+        }
+        return HttpResponseResult.failed();
     }
 
     /**

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

@@ -48,6 +48,7 @@ public class StudentCourseHomeworkServiceImpl extends ServiceImpl<StudentCourseH
                                         .one();
         if (studentCourseHomework == null) {
             studentCourseHomework = new StudentCourseHomework();
+            studentCourseHomework.setSubmitTime(new Date());
         }
         studentCourseHomework.setCourseHomeworkId(courseHomeworkDetailVo.getId());
         studentCourseHomework.setCourseGroupType(courseHomeworkDetailVo.getCourseType().getCode());
@@ -55,7 +56,6 @@ public class StudentCourseHomeworkServiceImpl extends ServiceImpl<StudentCourseH
         studentCourseHomework.setCourseScheduleId(courseHomeworkDetailVo.getCourseScheduleId());
         studentCourseHomework.setStudentId(studentId);
         studentCourseHomework.setAttachments(submit);
-        studentCourseHomework.setSubmitTime(new Date());
         studentCourseHomework.setTeacherReplied("");
         return this.saveOrUpdate(studentCourseHomework);
     }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseHomeworkDetailVo.java

@@ -104,6 +104,16 @@ public class CourseHomeworkDetailVo {
     @ApiModelProperty("作业布置时间")
     private Date decorateTime;
 
+    @ApiModelProperty("作业过期 1:已过期 0:未过期")
+    private Integer homeworkExpire;
+
+    public Integer getHomeworkExpire() {
+        return homeworkExpire;
+    }
+
+    public void setHomeworkExpire(Integer homeworkExpire) {
+        this.homeworkExpire = homeworkExpire;
+    }
 
     public Long getStudentId() {
         return studentId;

+ 1 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -201,6 +201,7 @@
         ,if(ch.id_ is null,0,1) as decorateHomework
         ,if(sch.attachments_ is null or sch.attachments_ = '',0,1) as submitHomework
         ,if(sch.teacher_replied_ is null or sch.teacher_replied_ = '',0,1) as reviewHomework
+        ,if(sch.id_ is not null and date_add(sch.submit_time_,INTERVAL #{homeworkExpireTime} DAY) &lt; now(),1,0) as homeworkExpire
         from course_schedule cs
         left join course_homework ch on ch.course_schedule_id_ = cs.id_
         left join student_course_homework sch on ch.id_ = sch.course_homework_id_

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

@@ -12,7 +12,8 @@
 	        <result column="create_time_" property="createTime" />
 	        <result column="update_by_" property="updateBy" />
 	        <result column="update_time_" property="updateTime" />
-		</resultMap>  
+	        <result column="cover_url_" property="coverUrl" />
+		</resultMap>
     
     <!-- 表字段 -->
     <sql id="baseColumns">
@@ -26,6 +27,7 @@
         , t.create_time_ as createTime
         , t.update_by_ as updateBy
         , t.update_time_ as updateTime
+        , t.cover_url_ as coverUrl
         </sql>
 
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.PianoRoomSettingsVo">

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

@@ -40,6 +40,6 @@
 	</select>
     <select id="findByUserIdAndCourseId" resultMap="BaseResultMap">
         select * from student_attendance where student_id_ = #{userId} and
-        course_schedule_id_ = #{courseId} LIMIT 1
+        course_schedule_id_ = #{scheduleId} LIMIT 1
     </select>
 </mapper>

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

@@ -31,7 +31,7 @@
     </insert>
     <select id="findByUserIdAndCourseId" resultMap="BaseResultMap">
         select <include refid="Base_Column_List" /> from teacher_attendance where teacher_id_ = #{userId} and
-        course_schedule_id_ = #{courseId} LIMIT 1
+        course_schedule_id_ = #{scheduleId} LIMIT 1
     </select>
 
 </mapper>