Explorar o código

fix:合并冲突

liujunchi %!s(int64=3) %!d(string=hai) anos
pai
achega
5f16be86a2
Modificáronse 74 ficheiros con 601 adicións e 435 borrados
  1. 4 0
      .gitignore
  2. 8 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java
  3. 1 1
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/dao/SysConfigDao.java
  4. 8 1
      cooleshow-cms/src/main/resources/logback-spring.xml
  5. 8 1
      cooleshow-gateway/gateway-web/src/main/resources/logback-spring.xml
  6. 9 2
      cooleshow-task/src/main/resources/logback-spring.xml
  7. 1 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/EmployeeController.java
  8. 0 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherAuthMusicianRecordController.java
  9. 1 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java
  10. 8 1
      cooleshow-user/user-admin/src/main/resources/logback-spring.xml
  11. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/constant/CourseConstant.java
  12. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseGroupDao.java
  13. 0 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  14. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysConfigDao.java
  15. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysUserContractsDao.java
  16. 1 13
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/LiveCourseGroupDto.java
  17. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/AuthEntryRecordSearch.java
  18. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/CourseHomeworkSearch.java
  19. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/CourseScheduleRepliedSearch.java
  20. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/EmployeeSearch.java
  21. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicAlbumSearch.java
  22. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetPracticeRecordSearch.java
  23. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetSearch.java
  24. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicTagSearch.java
  25. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/OrderDetailSearch.java
  26. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/OrderRefundsSearch.java
  27. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/OrderSearch.java
  28. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentAttendanceSearch.java
  29. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentCourseHomeworkSearch.java
  30. 5 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentMusicSheetOrderSearch.java
  31. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentSearch.java
  32. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetAuditSearch.java
  33. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetSearch.java
  34. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherSearch.java
  35. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherWithdrawalSearch.java
  36. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserAccountRecordSearch.java
  37. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserAccountSearch.java
  38. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserBankCardSearch.java
  39. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VideoLessonGroupSearch.java
  40. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VideoLessonSearch.java
  41. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VipCardRecordSearch.java
  42. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CoursePlan.java
  43. 19 19
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderPayment.java
  44. 41 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/PayStatusEnum.java
  45. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java
  46. 4 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java
  47. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/EmployeeService.java
  48. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysConfigService.java
  49. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysUserContractsService.java
  50. 169 37
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  51. 7 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  52. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/EmployeeServiceImpl.java
  53. 6 12
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicTagServiceImpl.java
  54. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherAuthEntryRecordServiceImpl.java
  55. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherAuthMusicianRecordServiceImpl.java
  56. 32 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  57. 0 44
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/BaseEntityWrapper.java
  58. 0 88
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/BasePage.java
  59. 11 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/PageUtil.java
  60. 0 71
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/Query.java
  61. 49 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherCourseGroupVo.java
  62. 6 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonStudentDetailVo.java
  63. 46 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml
  64. 0 29
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  65. 2 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderPaymentMapper.xml
  66. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml
  67. 2 2
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicAlbumController.java
  68. 4 4
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  69. 8 1
      cooleshow-user/user-student/src/main/resources/logback-spring.xml
  70. 35 5
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseGroupController.java
  71. 2 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java
  72. 0 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherAuthMusicianRecordController.java
  73. 2 1
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupController.java
  74. 8 2
      cooleshow-user/user-teacher/src/main/resources/logback-spring.xml

+ 4 - 0
.gitignore

@@ -53,3 +53,7 @@ target
 *.classpath
 /bin/
 **/bootstrap-local.yml
+**/bootstrap-local.properties
+**/logback-spring.xml
+/.gitignore
+/.gitignore

+ 8 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.common.constant.CommonConstants;
 import com.yonge.toolset.thirdparty.user.realname.RealnameAuthenticationPlugin;
 import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
 import com.yonge.toolset.utils.idcard.IdcardValidator;
+import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -322,7 +323,13 @@ public class UserController extends BaseController {
             if (sysUser.getBirthdate() != null && DateUtil.daysBetween(sysUser.getBirthdate(), date) <= 0) {
                 throw new BizException("出生日期不可超过当前时间");
             }
-
+            //手机号不能被占用
+            if(!StringUtil.isEmpty(sysUser.getPhone())){
+                SysUser newSysUser = sysUserService.queryByPhone(sysUser.getPhone());
+                if (newSysUser != null && !newSysUser.getId().equals(sysUser.getId())) {
+                    return failed("手机号被占用");
+                }
+            }
             sysUserService.updateBaseInfo(sysUser);
             return succeed();
         }

+ 1 - 1
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/dao/SysConfigDao.java

@@ -9,7 +9,7 @@ public interface SysConfigDao extends BaseDAO<Long, SysConfig> {
      * @Author: Joburgess
      * @Date: 2019/10/9
      * @params [paramName]
-     * @return com.ym.mec.biz.dal.entity.SysConfig
+     * @return com.yonge.cooleshow.biz.dal.entity.SysConfig
      * @describe 根据配置名称获取配置信息
      */
     SysConfig findByParamName(String paramName);

+ 8 - 1
cooleshow-cms/src/main/resources/logback-spring.xml

@@ -27,8 +27,15 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="INFO" />
+	<logger name="com.yonge.cooleshow" level="INFO" />
 
+	<!--本地环境:打印控制台 -->
+	<springProfile name="local">
+		<root level="INFO">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
 		<root level="INFO">

+ 8 - 1
cooleshow-gateway/gateway-web/src/main/resources/logback-spring.xml

@@ -27,8 +27,15 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="INFO" />
+	<logger name="com.yonge.cooleshow" level="INFO" />
 
+	<!--本地环境:打印控制台 -->
+	<springProfile name="local">
+		<root level="INFO">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
 		<root level="INFO">

+ 9 - 2
cooleshow-task/src/main/resources/logback-spring.xml

@@ -27,11 +27,18 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="debug" />
+	<logger name="com.yonge.cooleshow" level="debug" />
 
+	<!--本地环境:打印控制台 -->
+	<springProfile name="local">
+		<root level="INFO">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
-		<root level="info">
+		<root level="INFO">
 			<appender-ref ref="stdout" />
 			<appender-ref ref="file" />
 		</root>

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/EmployeeController.java

@@ -4,7 +4,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.EmployeeDao;
 import com.yonge.cooleshow.biz.dal.dto.search.EmployeeSearch;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
 import io.swagger.annotations.Api;

+ 0 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherAuthMusicianRecordController.java

@@ -22,7 +22,6 @@ import javax.validation.Valid;
 @RequestMapping("/teacherAuthMusicianRecord")
 @Api(value = "老师音乐人审核表", tags = "老师音乐人审核表")
 public class TeacherAuthMusicianRecordController extends BaseController {
-
     @Autowired
     private TeacherAuthMusicianRecordService teacherAuthMusicianRecordService;
 	@Autowired

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java

@@ -31,7 +31,7 @@ public class VideoLessonController extends BaseController {
     * @Date: 2022/4/2
     */
     @ApiOperation(value = "查询学员购买视频课")
-    @PostMapping(value = "/selectStudentPage")
+    @PostMapping(value = "/student/page")
     public HttpResponseResult<PageInfo<VideoLessonStudentDetailVo>> selectStudentPage(@RequestBody VideoLessonSearch query) {
         return succeed(PageUtil.pageInfo(lessonGroupService.selectStudentPage(PageUtil.getPage(query), query)));
     }

+ 8 - 1
cooleshow-user/user-admin/src/main/resources/logback-spring.xml

@@ -27,8 +27,15 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="INFO" />
+	<logger name="com.yonge.cooleshow" level="INFO" />
 
+	<!--本地环境:打印控制台 -->
+	<springProfile name="local">
+		<root level="INFO">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
 		<root level="INFO">

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/constant/CourseConstant.java

@@ -3,7 +3,8 @@ package com.yonge.cooleshow.biz.dal.constant;
 public interface CourseConstant {
     /**
      * 未正式写入数据库的排课时间临时数据
-     * <p>用途将未写入数据库的排课数据写入缓存,然后生成日历及陪练课买课时校验课时将缓存时间拿出来比对</p>
+     * <p>用途将未写入数据库的排课数据写入缓存,然后生成日历及陪练课买课时校验课时将缓存时间拿出来比对
+     * <p>返回结果 List<CourseTimeEntity>
      */
     String LOCK_COURSE_TIME_INFO = "LOCK_COURSE_TIME_INFO";
 }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseGroupDao.java

@@ -1,10 +1,13 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课程组表(CourseGroup)表数据库访问层
@@ -16,5 +19,10 @@ public interface CourseGroupDao extends BaseMapper<CourseGroup> {
 
     int insertBatch(@Param("entities") List<CourseGroup> entities);
 
+    /**
+     * 分页查询课程组信息
+     */
+    <T> IPage<T> queryTeacherCourseGroup(Page<T> page, @Param("param") Map<String, Object> param);
+
 }
 

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

@@ -45,7 +45,5 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      */
     List<CourseSchedule> queryStudentCourse(@Param("studentId") Long studentId, @Param("classDate") String classDate);
 
-    <T> IPage<T> queryTeacherCourse(Page<T> page, @Param("param") Map<String, Object> param);
-
 }
 

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

@@ -13,7 +13,7 @@ public interface SysConfigDao extends BaseDAO<Long, SysConfig> {
      * @Author: Joburgess
      * @Date: 2019/10/9
      * @params [paramName]
-     * @return com.ym.mec.biz.dal.entity.SysConfig
+     * @return com.yonge.cooleshow.biz.dal.entity.SysConfig
      * @describe 根据配置名称获取配置信息
      */
     SysConfig findByParamName(String paramName);

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysUserContractsDao.java

@@ -15,7 +15,7 @@ public interface SysUserContractsDao extends BaseDAO<Long, SysUserContracts> {
      * @date 2020.09.18
      * @param userId:
      * @param contractType:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.SysUserContracts>
+     * @return java.util.List<com.yonge.cooleshow.biz.dal.entity.SysUserContracts>
      */
     List<SysUserContracts> getUserContractWithType(@Param("userId") Long userId,
                                                    @Param("contractType") SysUserContracts.ContractType contractType,

+ 1 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/LiveCourseGroupDto.java

@@ -23,10 +23,6 @@ public class LiveCourseGroupDto implements Serializable {
     @ApiModelProperty(value = "主键")
     private Long id;
 
-    @NotBlank(message = "课程类型不能为空")
-    @ApiModelProperty(value = "类型 practice陪练课 live直播课")
-    private String type;
-
     @NotNull(message = "授课老师不能为空")
     @ApiModelProperty(value = "授课老师")
     private Long teacherId;
@@ -79,7 +75,7 @@ public class LiveCourseGroupDto implements Serializable {
     private List<CoursePlanDto> CoursePlanList;
 
     @ApiModel(value = "课程详情接收类")
-    static class CoursePlanDto extends CourseTimeEntity implements Serializable {
+    public static class CoursePlanDto extends CourseTimeEntity implements Serializable {
 
         @NotNull(message = "课堂编号不能为空")
         @ApiModelProperty(value = "课堂编号-第几堂课")
@@ -115,14 +111,6 @@ public class LiveCourseGroupDto implements Serializable {
         this.id = id;
     }
 
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
     public Long getTeacherId() {
         return teacherId;
     }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/AuthEntryRecordSearch.java

@@ -2,7 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -14,7 +14,7 @@ import java.util.Date;
  * @Data: 2022/3/21 15:26
  */
 @ApiModel(value = "AuthEntryRecordSearch", description = "审核列表查询")
-public class AuthEntryRecordSearch extends Query {
+public class AuthEntryRecordSearch extends QueryInfo{
     @ApiModelProperty(value = "老师编号/名称/电话")
     private String search;
     @ApiModelProperty(value = "审批人")

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/CourseHomeworkSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "CourseHomeworkSearch对象", description = "课程作业表查询对象")
-public class CourseHomeworkSearch extends Query{
+public class CourseHomeworkSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/CourseScheduleRepliedSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "CourseScheduleRepliedSearch对象", description = "课程点评查询对象")
-public class CourseScheduleRepliedSearch extends Query{
+public class CourseScheduleRepliedSearch extends QueryInfo {
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/EmployeeSearch.java

@@ -3,7 +3,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -15,7 +15,7 @@ import java.util.Date;
  * @Data: 2022/3/21 15:26
  */
 @ApiModel(value = "StudentSearch", description = "学院管理查询")
-public class EmployeeSearch extends Query {
+public class EmployeeSearch extends QueryInfo{
     @ApiModelProperty(value = "学院编号/昵称/电话")
     private String search;
     @ApiModelProperty(value = "性别 0女 1男")

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicAlbumSearch.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.cooleshow.biz.dal.enums.StateEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -16,7 +16,7 @@ import java.util.List;
  * @date: 2022-03-31
  */
 @ApiModel(value = "MusicAlbumSearch", description = "专辑列表查询")
-public class MusicAlbumSearch extends Query {
+public class MusicAlbumSearch extends QueryInfo{
 
     @ApiModelProperty("专辑编号/名称")
     private String idAndName;

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetPracticeRecordSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-04-02 10:05:39
  */
 @ApiModel(value = "MusicSheetPracticeRecordSearch对象", description = "曲目练习记录表查询对象")
-public class MusicSheetPracticeRecordSearch extends Query{
+public class MusicSheetPracticeRecordSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetSearch.java

@@ -2,7 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.cooleshow.biz.dal.enums.AuditEnum;
 import com.yonge.cooleshow.biz.dal.enums.StateEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -17,7 +17,7 @@ import java.util.List;
  * @date: 2022-03-30
  */
 @ApiModel(value = "MusicSheetSearch对象", description = "曲目表查询对象")
-public class MusicSheetSearch  extends Query {
+public class MusicSheetSearch  extends QueryInfo{
 
     @ApiModelProperty("曲目编号/名称")
     private String idAndName;

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicTagSearch.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.cooleshow.biz.dal.enums.StateEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @Data: 2022-03-29 17:47:57
  */
 @ApiModel(value = "MusicTagSearch对象", description = "音乐标签表查询对象")
-public class MusicTagSearch extends Query{
+public class MusicTagSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 	@ApiModelProperty("标签编号/名称")

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/OrderDetailSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "OrderDetailSearch对象", description = "平台订单表查询对象")
-public class OrderDetailSearch extends Query{
+public class OrderDetailSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/OrderRefundsSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "OrderRefundsSearch对象", description = "用户退款表查询对象")
-public class OrderRefundsSearch extends Query{
+public class OrderRefundsSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/OrderSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "OrderSearch对象", description = "平台订单表查询对象")
-public class OrderSearch extends Query{
+public class OrderSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentAttendanceSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "StudentAttendanceSearch对象", description = "学生考勤表查询对象")
-public class StudentAttendanceSearch extends Query{
+public class StudentAttendanceSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentCourseHomeworkSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "StudentCourseHomeworkSearch对象", description = "学生课程作业查询对象")
-public class StudentCourseHomeworkSearch extends Query{
+public class StudentCourseHomeworkSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 5 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentMusicSheetOrderSearch.java

@@ -1,9 +1,8 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang.StringUtils;
@@ -19,9 +18,9 @@ import java.util.List;
  * @author liujunchi
  * @date 2022-04-02
  */
-public class StudentMusicSheetOrderSearch extends Query {
+public class StudentMusicSheetOrderSearch extends QueryInfo {
 
-    @ApiModelProperty(value = "学生id",required = true)
+    @ApiModelProperty(value = "学生id", required = true)
     @NotNull(message = "学生编号不能为空")
     private Long studentId;
 
@@ -47,10 +46,10 @@ public class StudentMusicSheetOrderSearch extends Query {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
-    @ApiModelProperty(value = "订单状态 WAIT_PAY 待支付 PAYING 支付中  PAID 已付款 CLOSE 已关闭",hidden = true)
+    @ApiModelProperty(value = "订单状态 WAIT_PAY 待支付 PAYING 支付中  PAID 已付款 CLOSE 已关闭", hidden = true)
     private YesOrNoEnum orderStatus = YesOrNoEnum.YES;
 
-    @ApiModelProperty(value = "假删除 0 : 未删除 1:已删除",hidden = true)
+    @ApiModelProperty(value = "假删除 0 : 未删除 1:已删除", hidden = true)
     private Boolean delFlag = false;
 
     public Long getStudentId() {

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentSearch.java

@@ -3,7 +3,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -15,7 +15,7 @@ import java.util.Date;
  * @Data: 2022/3/21 15:26
  */
 @ApiModel(value = "StudentSearch", description = "学院管理查询")
-public class StudentSearch extends Query {
+public class StudentSearch extends QueryInfo{
     @ApiModelProperty(value = "学员编号/昵称/电话")
     private String search;
     @ApiModelProperty(value = "性别 0女 1男")

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetAuditSearch.java

@@ -2,7 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.AuditEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -16,7 +16,7 @@ import java.util.Date;
  * @date 2022-04-02
  */
 @ApiModel(value = "TeacherMusicSheetAuditSearch", description = "老师乐谱审核查询")
-public class TeacherMusicSheetAuditSearch extends Query {
+public class TeacherMusicSheetAuditSearch extends QueryInfo{
 
     @ApiModelProperty("老师编号/名称/电话")
     private String idAndName;

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetSearch.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -16,7 +16,7 @@ import java.util.Date;
  * @date 2022-04-02
  */
 @ApiModel(value = "TeacherMusicSheetSearch", description = "老师详情乐谱查询")
-public class TeacherMusicSheetSearch extends Query {
+public class TeacherMusicSheetSearch extends QueryInfo{
 
     @ApiModelProperty(value = "老师编号",required = true)
     @NotNull(message = "老师ID不为空")

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherSearch.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @Data: 2022/3/21 15:26
  */
 @ApiModel(value = "TeacherSearch", description = "老师管理查询")
-public class TeacherSearch extends Query {
+public class TeacherSearch extends QueryInfo{
     @ApiModelProperty(value = "老师编号/昵称/电话")
     private String search;
     @ApiModelProperty(value = "老师类型 TOURIST 游客 ENTRY 认证老师 MUSICIAN 平台音乐人")

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherWithdrawalSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "TeacherWithdrawalSearch对象", description = "老师账户提现表查询对象")
-public class TeacherWithdrawalSearch extends Query{
+public class TeacherWithdrawalSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserAccountRecordSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "UserAccountRecordSearch对象", description = "用户账户流水表查询对象")
-public class UserAccountRecordSearch extends Query{
+public class UserAccountRecordSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserAccountSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "UserAccountSearch对象", description = "用户账户表查询对象")
-public class UserAccountSearch extends Query{
+public class UserAccountSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserBankCardSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "UserBankCardSearch对象", description = "用户绑卡记录表查询对象")
-public class UserBankCardSearch extends Query{
+public class UserBankCardSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VideoLessonGroupSearch.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.cooleshow.biz.dal.enums.AuditEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @date: 2022/3/30 11:32
  */
 @ApiModel(value = "VideoLessonGroupSearch", description = "视频课组列表查询")
-public class VideoLessonGroupSearch extends Query {
+public class VideoLessonGroupSearch extends QueryInfo{
     @ApiModelProperty(value = "审核状态(0:待审核 1:通过 2:未通过)")
     private AuditEnum auditStatus;
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VideoLessonSearch.java

@@ -2,7 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.AuditEnum;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -14,7 +14,7 @@ import java.util.Date;
  * @date: 2022/3/30 11:32
  */
 @ApiModel(value = "VideoLessonGroupSearch", description = "视频课组列表查询")
-public class VideoLessonSearch extends Query {
+public class VideoLessonSearch extends QueryInfo{
     @ApiModelProperty(value = "视频组id")
     private Long videoLessonGroupId;
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VipCardRecordSearch.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 
 /**
@@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModel;
  * @Data: 2022-03-30 13:53:51
  */
 @ApiModel(value = "VipCardRecordSearch对象", description = "购买会员卡记录表查询对象")
-public class VipCardRecordSearch extends Query{
+public class VipCardRecordSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
 }

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CoursePlan.java

@@ -24,7 +24,7 @@ public class CoursePlan implements Serializable {
 
     @TableField("course_group_id_")
     @ApiModelProperty(value = "课程组id")
-    private Integer courseGroupId;
+    private Long courseGroupId;
 
     @TableField("class_num_")
     @ApiModelProperty(value = "课堂编号-第几堂课")
@@ -47,11 +47,11 @@ public class CoursePlan implements Serializable {
         this.id = id;
     }
 
-    public Integer getCourseGroupId() {
+    public Long getCourseGroupId() {
         return courseGroupId;
     }
 
-    public void setCourseGroupId(Integer courseGroupId) {
+    public void setCourseGroupId(Long courseGroupId) {
         this.courseGroupId = courseGroupId;
     }
 

+ 19 - 19
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderPayment.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.biz.dal.enums.PayChannelEnum;
+import com.yonge.cooleshow.biz.dal.enums.PayStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -30,18 +32,16 @@ public class UserOrderPayment implements Serializable {
     private String transNo;
     @ApiModelProperty("支付渠道:  alipay 支付宝  wx_lite 微信 ")
 	@TableField(value = "pay_channel_")
-    private String payChannel;
+    private PayChannelEnum payChannel;
     @ApiModelProperty("交易金额,必须大于0,保留两位小数点,如0.10、100.05等 ")
 	@TableField(value = "pay_amt_")
     private BigDecimal payAmt;
     @ApiModelProperty("支付详情信息(用于拉起支付) ")
-	@TableField(value = "pay_info")
+	@TableField(value = "pay_info_")
     private String payInfo;
-    @ApiModelProperty("失效时间(超过支付失效时间的订单,会取出来判断是否已经关单,最大失效时间往前推5分钟) ")
-	@TableField(value = "invalid_time_")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-    private Date invalidTime;
+    @ApiModelProperty("交易状态 pending 交易处理中 succeeded 交易成功 failed 交易失败")
+    @TableField(value = "status_")
+    private PayStatusEnum status;
     @ApiModelProperty("到账时间 ")
 	@TableField(value = "arrival_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -85,16 +85,16 @@ public class UserOrderPayment implements Serializable {
     public void setTransNo(String transNo) {
         this.transNo = transNo;
     }
-    
-	public String getPayChannel() {
+
+    public PayChannelEnum getPayChannel() {
         return payChannel;
     }
 
-    public void setPayChannel(String payChannel) {
+    public void setPayChannel(PayChannelEnum payChannel) {
         this.payChannel = payChannel;
     }
-    
-	public BigDecimal getPayAmt() {
+
+    public BigDecimal getPayAmt() {
         return payAmt;
     }
 
@@ -109,16 +109,16 @@ public class UserOrderPayment implements Serializable {
     public void setPayInfo(String payInfo) {
         this.payInfo = payInfo;
     }
-    
-	public Date getInvalidTime() {
-        return invalidTime;
+
+    public PayStatusEnum getStatus() {
+        return status;
     }
 
-    public void setInvalidTime(Date invalidTime) {
-        this.invalidTime = invalidTime;
+    public void setStatus(PayStatusEnum status) {
+        this.status = status;
     }
-    
-	public Date getArrivalTime() {
+
+    public Date getArrivalTime() {
         return arrivalTime;
     }
 

+ 41 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/PayStatusEnum.java

@@ -0,0 +1,41 @@
+package com.yonge.cooleshow.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.cooleshow.common.enums.BaseEnum;
+
+/**
+ * 交易状态 pending 交易处理中 succeeded 交易成功 failed 交易失败
+ * @Author: liweifan
+ * @Data: 2022/3/31 14:59
+ */
+public enum PayStatusEnum implements BaseEnum<String, PayStatusEnum> {
+    pending("pending","交易处理中"),
+    succeeded("succeeded","交易成功"),
+    failed("failed","交易失败")
+    ;
+    @EnumValue
+    private String code;
+    private String msg;
+
+    PayStatusEnum(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+}

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java

@@ -3,10 +3,14 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.CheckLiveCourseTimeDto;
+import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
+import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.common.page.PageInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课程组表(CourseGroup)表服务接口
@@ -19,9 +23,27 @@ public interface CourseGroupService extends IService<CourseGroup> {
     CourseGroupDao getDao();
 
     /**
+     * 分页查询课程组列表
+     *
+     * @param param 传入参数
+     *              <p> - teacherId    老师id
+     *              <p> - groupStatus  课程组状态  ING(进行中)  NOT_SALE(未开售,未上架) APPLY(报名中,销售中) COMPLETE(已完成)
+     *              <p> - row 条数
+     *              <p> - page 页数
+     */
+    PageInfo<TeacherCourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param);
+
+    void addLiveCourse(LiveCourseGroupDto dto);
+
+    /**
      * 创建直播课程组时将课时写到缓存当作锁定的时间
      */
     List<CourseTimeEntity> lockCourseToCache(CheckLiveCourseTimeDto dto);
 
+    /**
+     * 创建直播课程组-解除锁定课程时间-删除写到缓存当作锁定的课时
+     */
+   void unlockCourseToCache(Long teacherId);
+
 }
 

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

@@ -3,7 +3,7 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
 import com.yonge.cooleshow.common.page.PageInfo;
 
 import javax.validation.Valid;
@@ -32,7 +32,7 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      *              <p> - page 页数
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
      */
-    PageInfo<TeacherCourseVo> queryTeacherLiveCourse(Map<String, Object> param);
+    PageInfo<TeacherCourseGroupVo> queryTeacherLiveCourse(Map<String, Object> param);
 
     /**
      * 校验该学生大于当前时间并未开始的课程时间和传入时间段有没有交集
@@ -82,14 +82,14 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
                                 Date startTime, Date endTime);
 
     /**
-     * 锁定课时
+     * 修改-锁定课时
      *
      * @param id 课程id
      */
     void lockCourseTime(Long id);
 
     /**
-     * 解锁
+     * 修改-解锁课时
      *
      * @param id 课程id
      */

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/EmployeeService.java

@@ -6,7 +6,7 @@ import com.yonge.cooleshow.auth.api.entity.SysRole;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.EmployeeSearch;
 import com.yonge.cooleshow.biz.dal.entity.Employee;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.cooleshow.common.service.BaseService;
 
@@ -27,7 +27,7 @@ public interface EmployeeService extends BaseService<Long, Employee> {
      * @updateTime 2022/3/25 13:44
      * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yonge.cooleshow.biz.dal.entity.Employee>
      */
-    PageInfo<Employee> selectPage(Query page, EmployeeSearch employeeSearch);
+    PageInfo<Employee> selectPage(QueryInfo page, EmployeeSearch employeeSearch);
     /**
      * 新增员工
      * @param employee

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

@@ -10,7 +10,7 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 	public static final String SMS_MAX_TIMES = "sms_max_times";
 
     /**
-     * @return com.ym.mec.biz.dal.entity.SysConfig
+     * @return com.yonge.cooleshow.biz.dal.entity.SysConfig
      * @params paramName
      * @describe 根据配置名称获取配置信息
      */

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

@@ -13,7 +13,7 @@ public interface SysUserContractsService extends BaseService<Long, SysUserContra
      * @date 2020.09.18
      * @param userId:
      * @param contractType:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.SysUserContracts>
+     * @return java.util.List<com.yonge.cooleshow.biz.dal.entity.SysUserContracts>
      */
     List<SysUserContracts> getUserContractWithType(Long userId, SysUserContracts.ContractType contractType, Integer contractVersion);
 

+ 169 - 37
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -1,5 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -9,12 +11,21 @@ import com.yonge.cooleshow.biz.dal.constant.SysConfigConstant;
 import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.CheckLiveCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
+import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto.CoursePlanDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
+import com.yonge.cooleshow.biz.dal.entity.CoursePlan;
+import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
+import com.yonge.cooleshow.biz.dal.enums.CourseGroupEnum;
+import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
+import com.yonge.cooleshow.biz.dal.service.CoursePlanService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
+import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
 import com.yonge.cooleshow.common.exception.BizException;
+import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.toolset.utils.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.redisson.api.RMap;
@@ -25,14 +36,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -53,6 +62,8 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Autowired
     private CourseScheduleService courseScheduleService;
     @Autowired
+    private CoursePlanService coursePlanService;
+    @Autowired
     private SysConfigService sysConfigService;
 
     @Override
@@ -61,18 +72,104 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     }
 
     /**
+     * 查询课程组详情-直播课详情
+     *
+     * @param groupId
+     */
+    public void queryLiveCourseInfo(Long groupId) {
+
+    }
+
+    /**
+     * 分页查询课程组列表
+     *
+     * @param param 传入参数
+     *              <p> - teacherId    老师id
+     *              <p> - groupStatus  课程组状态  ING(进行中)  NOT_SALE(未开售,未上架) APPLY(报名中,销售中) COMPLETE(已完成)
+     *              <p> - row 条数
+     *              <p> - page 页数
+     */
+    public PageInfo<TeacherCourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param) {
+        //查询该月的所有课程
+        param.put("teacherId", param.get("teacherId"));
+        param.put("groupStatus", param.get("groupStatus"));
+        param.put("type", CourseScheduleEnum.LIVE.getCode());
+        Page<TeacherCourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
+        pageInfo.setAsc("a.start_time_");
+        IPage<TeacherCourseGroupVo> page = baseMapper.queryTeacherCourseGroup(pageInfo, param);
+        return PageUtil.pageInfo(page);
+    }
+
+    /**
      * 新增课程组
      *
-     * @param dto
+     * @param dto 创建直播课课程组参数
      */
     @Transactional(rollbackFor = Exception.class)
-    public void add(LiveCourseGroupDto dto) {
-        //1.查询该老师没有用缓存的课时
+    @Override
+    public void addLiveCourse(LiveCourseGroupDto dto) {
+        //批量检查老师课时在数据库是否重复
+        batchCheckTeacherCourseTime(dto.getTeacherId(), dto.getCoursePlanList(), CoursePlanDto::getStartTime, CoursePlanDto::getEndTime);
+        //获取锁定课时缓存,没有问题就刷新缓存
+        RMap<Long, List<CourseTimeEntity>> cacheTime = getExpireLockTimeCache(dto.getTeacherId());
+        List<CourseTimeEntity> timeEntities = new ArrayList<>();
+        dto.getCoursePlanList().forEach(o -> {
+            CourseTimeEntity time = new CourseTimeEntity();
+            time.setStartTime(o.getStartTime());
+            time.setEndTime(o.getEndTime());
+            timeEntities.add(time);
+        });
+        cacheTime.fastPut(dto.getTeacherId(), timeEntities);
+        Date now = new Date();
+        String live = CourseScheduleEnum.LIVE.getCode();
+        //写入课程组表
+        CourseGroup group = new CourseGroup();
+        group.setType(live);
+        group.setTeacherId(dto.getTeacherId());
+        group.setName(dto.getName());
+        group.setSubjectId(dto.getSubjectId());
+        group.setSingleCourseMinutes(dto.getSingleCourseMinutes());
+        group.setCourseNum(dto.getCourseNum());
+        group.setCourseIntroduce(dto.getCourseIntroduce());
+        group.setCoursePrice(dto.getCoursePrice());
+        group.setStatus(CourseGroupEnum.NOT_SALE.getCode());
+        group.setSalesStartDate(dto.getSalesStartDate());
+        group.setSalesEndDate(dto.getSalesEndDate());
+        group.setBackgroundPic(dto.getBackgroundPic());
+        group.setMixStudentNum(dto.getMixStudentNum());
+        group.setCreatedBy(dto.getTeacherId());
+        group.setCreatedTime(now);
+        this.save(group);
 
-        //1.1 有缓存课时
+        //写入课程表及课程计划表
+        List<CourseSchedule> courseList = new ArrayList<>();
+        List<CoursePlan> planList = new ArrayList<>();
+        dto.getCoursePlanList().forEach(o -> {
+            CourseSchedule course = new CourseSchedule();
+            course.setCourseGroupId(group.getId());
+            course.setType(live);
+            course.setClassNum(o.getClassNum());
+            course.setTeacherId(dto.getTeacherId());
+            course.setClassDate(o.getStartTime());
+            course.setStartTime(o.getStartTime());
+            course.setEndTime(o.getEndTime());
+            course.setCreatedBy(dto.getTeacherId());
+            course.setCreatedTime(now);
+            course.setStatus(CourseScheduleEnum.NOT_START.getCode());
+            courseList.add(course);
 
-        //1.2 没有缓存课时
+            CoursePlan plan = new CoursePlan();
+            plan.setCourseGroupId(group.getId());
+            plan.setClassNum(o.getClassNum());
+            plan.setPlan(o.getPlan());
+            plan.setCreatedTime(now);
+            planList.add(plan);
+        });
+        courseScheduleService.getDao().insertBatch(courseList);
+        coursePlanService.getDao().insertBatch(planList);
 
+        //课程组完成删除缓存
+        cacheTime.delete();
     }
 
     /**
@@ -86,61 +183,66 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 if (i == timeList.size() - 1) {
                     break;
                 }
-                CourseTimeEntity o1 = timeList.get(i);
+                CourseTimeEntity o = timeList.get(i);
                 List<CourseTimeEntity> newList = timeList.subList(i + 1, timeList.size());
-                boolean checkParamTime = courseScheduleService.checkCourseTime(newList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime, o1.getStartTime(), o1.getEndTime());
+                boolean checkParamTime = courseScheduleService.checkCourseTime(newList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime, o.getStartTime(), o.getEndTime());
                 if (checkParamTime) {
-                    throw new BizException(DateUtil.dateToString(o1.getStartTime(), "yyyy年MM月dd号 HH点mm分") + "的课程时间重复!");
+                    throw new BizException(DateUtil.dateToString(o.getStartTime(), "yyyy年MM月dd号 HH点mm分") + "的课程时间重复!");
                 }
             }
         }
-
-        //再校验数据库中课程时间和传入时间是否有交集
-        timeList.forEach(o -> {
-            boolean checkDataTime = courseScheduleService.checkTeacherCourseTime(dto.getTeacherId(), o.getStartTime(), o.getEndTime());
-            if (checkDataTime) {
-                throw new BizException("预计安排在" + DateUtil.dateToString(o.getStartTime(), "yyyy年MM月dd号 HH点mm分") + "的课程已被学员选择!");
-            }
-        });
-        //先将当前验证通过课程时间锁住
-        String key = String.join(":", LiveRoomConstant.COOLESHOW, CourseConstant.LOCK_COURSE_TIME_INFO, dto.getTeacherId().toString());
-        RMap<Long, List<CourseTimeEntity>> map = redissonClient.getMap(key);
-        map.expire(1L, TimeUnit.DAYS);
+        //批量检查老师课时在数据库是否重复
+        batchCheckTeacherCourseTime(dto.getTeacherId(), timeList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime);
+        //获取老师锁课缓存并添加课时数据
+        RMap<Long, List<CourseTimeEntity>> map = getExpireLockTimeCache(dto.getTeacherId());
         map.fastPut(dto.getTeacherId(), timeList);
 
         //需要自动补全课时
         if (dto.getLoop() == 1) {
-            //获取总课程数量
-            Integer totalCourseNum = dto.getCourseNum();
-            //获取当前课程
-            int nowCourseNum = timeList.size();
             //自动排课,获取排课后所有的课程时间
-            List<CourseTimeEntity> allCourseTime = teacherAutoPlanningLiveCourseTime(dto.getTeacherId(), totalCourseNum, nowCourseNum, timeList);
+            List<CourseTimeEntity> allCourseTime = teacherAutoPlanningLiveCourseTime(dto.getTeacherId(), dto.getCourseNum(), timeList);
             allCourseTime.sort(Comparator.comparing(CourseTimeEntity::getStartTime));
             //替换掉原有的课时
             dto.setTimeList(allCourseTime);
             //将自动排课后的课时写入缓存覆盖原有的
-            map.fastPut(dto.getTeacherId(), allCourseTime);
+            map.fastPut(dto.getTeacherId(), dto.getTimeList());
         }
         return dto.getTimeList();
     }
 
     /**
+     * 批量检查老师课时在数据库是否重复
+     *
+     * @param teacherId 老师id
+     * @param timeList  时间集合
+     */
+    private <T> void batchCheckTeacherCourseTime(Long teacherId, List<T> timeList, Function<T, Date> startTimeFun, Function<T, Date> endTimeFun) {
+        //再校验数据库中课程时间和传入时间是否有交集
+        timeList.forEach(o -> {
+            boolean checkDataTime = courseScheduleService.checkTeacherCourseTime(teacherId, startTimeFun.apply(o), endTimeFun.apply(o));
+            if (checkDataTime) {
+                throw new BizException("预计安排在" + DateUtil.dateToString(startTimeFun.apply(o), "yyyy年MM月dd号 HH点mm分") + "的课程已被学员选择!");
+            }
+        });
+    }
+
+    /**
      * 老师创建直播课自动排课
      * <p>自动排课规则及场景:总5节课,填入2节,需要自动补3节
      * <p>1.把前面2节课的时间循环+1周直到填满5节课为止
      * <p>2.如果自动排课时的时间和未来课程时间有冲突则继续往后面延续一周
      *
      * @param totalCourseNum 总课程数量
-     * @param nowCourseNum   当前选择的课程数量
      * @param paramTimeList  当前课程的时间段
      * @return 自动排课后的全部课时
      */
-    private List<CourseTimeEntity> teacherAutoPlanningLiveCourseTime(Long teacherId, int totalCourseNum, int nowCourseNum, List<CourseTimeEntity> paramTimeList) {
+    private List<CourseTimeEntity> teacherAutoPlanningLiveCourseTime(Long teacherId, int totalCourseNum, List<CourseTimeEntity> paramTimeList) {
+        //获取当前课程
+        int nowCourseNum = paramTimeList.size();
         //获取总课程数量 - 获取当前选择的课程数量 = 要自动排课的课程数量
         int diffCourse = totalCourseNum - nowCourseNum;
         //获取课程时间,并按开始时间排序
-        List<CourseTimeEntity> sortCourseTime = paramTimeList.stream()
+        List<CourseTimeEntity> resultCourseTime = paramTimeList.stream()
                 .sorted(Comparator.comparing(CourseTimeEntity::getStartTime))
                 .collect(Collectors.toList());
         //获取最大排课周
@@ -163,7 +265,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                     //进入新的循环周数+1
                     week.getAndIncrement();
                 }
-                CourseTimeEntity timeDto = sortCourseTime.get(index);
+                CourseTimeEntity timeDto = resultCourseTime.get(index);
                 if (week.get() > maxWeek) {
                     throw new BizException("系统自动排课时发现当前时间往后" + maxWeek + "周的课程时间已排满,请手动排课!");
                 }
@@ -184,7 +286,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 boolean checkTime;
 
                 //若:传入时间是1号10点和8号10点,然后1号10点自动生成的课时是8号10点那么就和传入的8号10点冲突了,这种情况需要继续往后延续1周
-                checkTime = courseScheduleService.checkCourseTime(sortCourseTime, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime, autoStartDate, autoEndDate);
+                checkTime = courseScheduleService.checkCourseTime(resultCourseTime, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime, autoStartDate, autoEndDate);
                 con.accept(checkTime);
                 //如果和传入时间冲突则跳过
                 if (flag.get()) {
@@ -203,11 +305,41 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 CourseTimeEntity autoTimeDto = new CourseTimeEntity();
                 autoTimeDto.setStartTime(autoStartDate);
                 autoTimeDto.setEndTime(autoEndDate);
-                sortCourseTime.add(autoTimeDto);
+                resultCourseTime.add(autoTimeDto);
             }
             index++;
         }
-        return sortCourseTime;
+        return resultCourseTime;
+    }
+
+    /**
+     * 创建直播课程组-解除锁定课程时间-删除写到缓存当作锁定的课时
+     *
+     * @param teacherId 老师id
+     */
+    @Override
+    public void unlockCourseToCache(Long teacherId) {
+        Optional.ofNullable(teacherId)
+                .ifPresent(id -> getLockTimeCache(id).delete());
+    }
+
+    /**
+     * 获取老师锁定课时数据的缓存
+     *
+     * @param teacherId 老师id
+     * @return 缓存
+     */
+    private RMap<Long, List<CourseTimeEntity>> getExpireLockTimeCache(Long teacherId) {
+        String lockMinuteStr = sysConfigService.findConfigValue(SysConfigConstant.CREATE_LIVE_TIME_LOCK_MINUTE);
+        long lockMinute = StringUtils.isBlank(lockMinuteStr) ? 15L : Long.parseLong(lockMinuteStr);
+        RMap<Long, List<CourseTimeEntity>> cache = getLockTimeCache(teacherId);
+        cache.expire(lockMinute, TimeUnit.MINUTES);
+        return cache;
+    }
+
+    private RMap<Long, List<CourseTimeEntity>> getLockTimeCache(Long teacherId) {
+        String key = String.join(":", LiveRoomConstant.COOLESHOW, CourseConstant.LOCK_COURSE_TIME_INFO, teacherId.toString());
+        return redissonClient.getMap(key);
     }
 
     private SysUser getSysUser(Long userId) {

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

@@ -9,10 +9,11 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
+import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.toolset.utils.date.DateUtil;
@@ -47,6 +48,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
 
     @Autowired
     private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private CourseGroupService courseGroupService;
 
     @Override
     public CourseScheduleDao getDao() {
@@ -64,7 +67,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
      *              <p> - subjectId 声部id
      */
-    public PageInfo<TeacherCourseVo> queryTeacherLiveCourse(Map<String, Object> param) {
+    public PageInfo<TeacherCourseGroupVo> queryTeacherLiveCourse(Map<String, Object> param) {
         String status = WrapperUtil.toStr(param, "status", "课程状态不能为空!");
         CourseScheduleEnum.existCourseState(status, "查询条件错误,课程状态不正确");
         Integer year = WrapperUtil.toInt(param, "year", "查询时间年份不能为空!");
@@ -78,9 +81,9 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         param.put("endDate", lastDay.toString());
         param.put("teacherId", getSysUser().getId());
         param.put("type", CourseScheduleEnum.LIVE.getCode());
-        Page<TeacherCourseVo> pageInfo = PageUtil.getPageInfo(param);
+        Page<TeacherCourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("a.start_time_");
-        IPage<TeacherCourseVo> page = baseMapper.queryTeacherCourse(pageInfo, param);
+        IPage<TeacherCourseGroupVo> page = courseGroupService.getDao().queryTeacherCourseGroup(pageInfo, param);
         return PageUtil.pageInfo(page);
     }
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/EmployeeServiceImpl.java

@@ -7,7 +7,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.enums.SysUserType;
 import com.yonge.cooleshow.biz.dal.dto.search.EmployeeSearch;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.cooleshow.common.page.PageInfo;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.ibatis.annotations.Param;
@@ -40,7 +40,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Long, Employee> impleme
     }
 
     @Override
-    public PageInfo<Employee> selectPage(Query page, EmployeeSearch employeeSearch) {
+    public PageInfo<Employee> selectPage(QueryInfo page, EmployeeSearch employeeSearch) {
         Page<Employee> pageInfo = PageUtil.getPage(page.getPage(), page.getRows());
         pageInfo.setDesc("id_");
         return PageUtil.pageInfo(employeeDao.queryPage(pageInfo,employeeSearch));

+ 6 - 12
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicTagServiceImpl.java

@@ -80,18 +80,12 @@ public class MusicTagServiceImpl extends ServiceImpl<MusicTagDao, MusicTag> impl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean del(Long musicTagId) {
-        MusicTag musicTag = new MusicTag();
-        musicTag.setId(musicTagId);
-        musicTag.setDelFlag(true);
-        if (this.updateById(musicTag)) {
-            // 删除下面的子集标签
-            return this.lambdaUpdate()
-                       .eq(MusicTag::getParentTagId,musicTagId)
-                       .set(MusicTag::getDelFlag,true)
-                       .update();
-        }
-
-        return false;
+        // 删除下面的子集标签
+        return this.lambdaUpdate()
+                   .eq(MusicTag::getParentTagId,musicTagId)
+                   .or(wrapper -> wrapper.eq(MusicTag::getId,musicTagId))
+                   .set(MusicTag::getDelFlag,true)
+                   .update();
 
     }
 

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

@@ -67,7 +67,7 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
         }
         //判断用户是否已经通过申请
         Teacher teacher = teacherDao.selectById(sysUser.getId());
-        if (teacher.getEntryFlag().equals(YesOrNoEnum.YES)) {
+        if (YesOrNoEnum.YES.equals(teacher.getEntryFlag())) {
             return HttpResponseResult.failed("已经通过审批");
         }
         //修改用户表

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

@@ -52,7 +52,7 @@ public class TeacherAuthMusicianRecordServiceImpl extends ServiceImpl<TeacherAut
         }
         //判断用户是否已经通过申请
         Teacher teacher = teacherDao.selectById(userId);
-        if(teacher.getMusicianFlag().equals(YesOrNoEnum.YES)){
+        if(YesOrNoEnum.YES.equals(teacher.getMusicianFlag())){
             return HttpResponseResult.failed("已经通过审批");
         }
 

+ 32 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.biz.dal.entity.UserOrderPayment;
 import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.PayChannelEnum;
+import com.yonge.cooleshow.biz.dal.enums.PayStatusEnum;
 import com.yonge.cooleshow.biz.dal.sdk.PaymentSdk;
 import com.yonge.cooleshow.biz.dal.sdk.req.DeviceInfo;
 import com.yonge.cooleshow.biz.dal.sdk.req.PaymentReq;
@@ -173,13 +174,42 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                 MapUtil.populateMap(new HashMap<>(), res.get("expend"))
                         .get("pay_info").toString()
         );
-        //insertOrderPayment();
+
+        UserOrderPayment orderPayment = insertOrderPayment(res, payReq);
         //入订单付款表,同时修改订单状态
+
+
+        return HttpResponseResult.succeed(orderPayRes);
+    }
+
+    private UserOrderPayment insertOrderPayment(Map<String, Object> res, OrderPayReq payReq) {
         UserOrderPayment orderPayment = new UserOrderPayment();
+        orderPayment.setOrderNo(payReq.getOrderNo());
+        orderPayment.setPayChannel(payReq.getPayChannel());
 
+        try {
+            orderPayment.setTransNo(res.get("id").toString());
+            orderPayment.setPayAmt(
+                    new BigDecimal(res.get("pay_amt").toString()).setScale(2)
+            );
+            String pay_info = MapUtil.populateMap(new HashMap<>(), res.get("expend"))
+                    .get("pay_info").toString();
+            orderPayment.setPayInfo(pay_info);
+            orderPayment.setStatus(PayStatusEnum.pending);
+        } catch (Exception e) {
+            //保存异常信息
+            Map<String, Object> errMsg = new HashMap<>();
+            errMsg.put("error_code", res.get("error_code"));
+            errMsg.put("error_type", res.get("error_type"));
+            errMsg.put("error_msg", res.get("error_msg"));
+            errMsg.put("status", res.get("status"));
+            errMsg.put("invalid_param", res.get("invalid_param"));
+            orderPayment.setPayFailMsg(JSONObject.toJSONString(errMsg));
+            orderPayment.setStatus(PayStatusEnum.failed);
+        }
 
 
-        return HttpResponseResult.succeed(orderPayRes);
+        return orderPayment;
     }
 
     /***

+ 0 - 44
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/BaseEntityWrapper.java

@@ -1,44 +0,0 @@
-package com.yonge.cooleshow.biz.dal.support;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 视图包装基类
- *
- * @author Chill
- */
-public abstract class BaseEntityWrapper<E, V> {
-
-	/**
-	 * 单个实体类包装
-	 * @param entity
-	 * @return
-	 */
-	public abstract V entityVO(E entity);
-
-	/**
-	 * 实体类集合包装
-	 * @param list
-	 * @return
-	 */
-	public List<V> listVO(List<E> list) {
-		return list.stream().map(this::entityVO).collect(Collectors.toList());
-	}
-
-	/**
-	 * 分页实体类集合包装
-	 * @param pages
-	 * @return
-	 */
-	public IPage<V> pageVO(IPage<E> pages) {
-		List<V> records = listVO(pages.getRecords());
-		IPage<V> pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal());
-		pageVo.setRecords(records);
-		return pageVo;
-	}
-
-}

+ 0 - 88
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/BasePage.java

@@ -1,88 +0,0 @@
-package com.yonge.cooleshow.biz.dal.support;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * 分页模型
- *
- * @author Chill
- */
-public class BasePage<T> implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * 查询数据列表
-	 */
-	private List<T> records = Collections.emptyList();
-
-	/**
-	 * 总数
-	 */
-	private long total = 0;
-	/**
-	 * 每页显示条数,默认 10
-	 */
-	private long size = 10;
-
-	/**
-	 * 当前页
-	 */
-	private long current = 1;
-
-	public static long getSerialVersionUID() {
-		return serialVersionUID;
-	}
-
-	public List<T> getRecords() {
-		return records;
-	}
-
-	public void setRecords(List<T> records) {
-		this.records = records;
-	}
-
-	public long getTotal() {
-		return total;
-	}
-
-	public void setTotal(long total) {
-		this.total = total;
-	}
-
-	public long getSize() {
-		return size;
-	}
-
-	public void setSize(long size) {
-		this.size = size;
-	}
-
-	public long getCurrent() {
-		return current;
-	}
-
-	public void setCurrent(long current) {
-		this.current = current;
-	}
-
-	/**
-	 * mybatis-plus分页模型转化
-	 *
-	 * @param page 分页实体类
-	 * @return BasePage<T>
-	 */
-	public static <T> BasePage<T> of(IPage<T> page) {
-		BasePage<T> basePage = new BasePage<>();
-		basePage.setRecords(page.getRecords());
-		basePage.setTotal(page.getTotal());
-		basePage.setSize(page.getSize());
-		basePage.setCurrent(page.getCurrent());
-		return basePage;
-	}
-
-}

+ 11 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/PageUtil.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.common.page.PageInfo;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.toolset.utils.string.StringUtil;
 import org.springframework.beans.BeanUtils;
 
@@ -17,6 +18,9 @@ import java.util.Optional;
  */
 public class PageUtil {
 
+    private static final String ASC = "ASC";
+    private static final String DESC = "DESC";
+
     private static Integer toInt(Integer num,Integer bak){
         if(null == num || 0 == num){
             return bak;
@@ -29,10 +33,14 @@ public class PageUtil {
      * @param query 查询条件
      * @return IPage
      */
-    public static <T> IPage<T> getPage(Query query) {
+    public static <T> IPage<T> getPage(QueryInfo query) {
         Page<T> page = new Page<T>(toInt(query.getPage(),1), toInt(query.getRows(),10));
-        page.setAsc(StringUtil.toStrArray(SqlKeyword.filter(query.getAscs())));
-        page.setDesc(StringUtil.toStrArray(SqlKeyword.filter(query.getDescs())));
+        if(ASC.equals(query.getOrder()) && !StringUtil.isEmpty(query.getSort())){
+            page.setAsc(StringUtil.toStrArray(SqlKeyword.filter(query.getOrder())));
+        }
+        if(DESC.equals(query.getOrder()) && !StringUtil.isEmpty(query.getSort())){
+            page.setDesc(StringUtil.toStrArray(SqlKeyword.filter(query.getOrder())));
+        }
         return page;
     }
 

+ 0 - 71
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/Query.java

@@ -1,71 +0,0 @@
-package com.yonge.cooleshow.biz.dal.support;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-
-/**
- * 分页工具
- *
- * @author Chill
- */
-@ApiModel(description = "查询条件")
-public class Query implements Serializable {
-
-	/**
-	 * 当前页
-	 */
-	@ApiModelProperty(value = "当前页")
-	private Integer page;
-
-	/**
-	 * 每页的数量
-	 */
-	@ApiModelProperty(value = "每页的数量")
-	private Integer rows;
-
-	/**
-	 * 正排序规则
-	 */
-	@ApiModelProperty(hidden = true)
-	private String ascs;
-
-	/**
-	 * 倒排序规则
-	 */
-	@ApiModelProperty(hidden = true)
-	private String descs;
-
-	public Integer getPage() {
-		return page;
-	}
-
-	public void setPage(Integer page) {
-		this.page = page;
-	}
-
-	public Integer getRows() {
-		return rows;
-	}
-
-	public void setRows(Integer rows) {
-		this.rows = rows;
-	}
-
-	public String getAscs() {
-		return ascs;
-	}
-
-	public void setAscs(String ascs) {
-		this.ascs = ascs;
-	}
-
-	public String getDescs() {
-		return descs;
-	}
-
-	public void setDescs(String descs) {
-		this.descs = descs;
-	}
-}

+ 49 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherCourseVo.java → cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherCourseGroupVo.java

@@ -1,16 +1,20 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
+ *
  * @author hgw
  * Created by 2022-03-29
  */
-public class TeacherCourseVo implements Serializable {
+@ApiModel(value = "TeacherCourseGroupVo", description = "课程组信息")
+public class TeacherCourseGroupVo implements Serializable {
 
     @ApiModelProperty(value = "课程组id")
     private Long courseGroupId;
@@ -38,6 +42,18 @@ public class TeacherCourseVo implements Serializable {
     @ApiModelProperty(value = "课程图片")
     private String backgroundPic;
 
+    @ApiModelProperty(value = "老师id")
+    private Long teacherId;
+
+    @ApiModelProperty(value = "老师名称")
+    private String teacherName;
+
+    @ApiModelProperty(value = "课程组售价")
+    private BigDecimal coursePrice;
+
+    @ApiModelProperty(value = "课程数")
+    private Integer courseNum;
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }
@@ -101,4 +117,36 @@ public class TeacherCourseVo implements Serializable {
     public void setBackgroundPic(String backgroundPic) {
         this.backgroundPic = backgroundPic;
     }
+
+    public Long getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public BigDecimal getCoursePrice() {
+        return coursePrice;
+    }
+
+    public void setCoursePrice(BigDecimal coursePrice) {
+        this.coursePrice = coursePrice;
+    }
+
+    public Integer getCourseNum() {
+        return courseNum;
+    }
+
+    public void setCourseNum(Integer courseNum) {
+        this.courseNum = courseNum;
+    }
 }

+ 6 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonStudentDetailVo.java

@@ -22,8 +22,8 @@ public class VideoLessonStudentDetailVo extends BaseEntity {
     @ApiModelProperty("课程数")
     private Integer lessonCount;
 
-    @ApiModelProperty("课程价格")
-    private String lessonPrice;
+    @ApiModelProperty("支付金额")
+    private String payMoney;
 
     @ApiModelProperty("订单号")
     private String orderNo;
@@ -63,12 +63,12 @@ public class VideoLessonStudentDetailVo extends BaseEntity {
         this.lessonCount = lessonCount;
     }
 
-    public String getLessonPrice() {
-        return lessonPrice;
+    public String getPayMoney() {
+        return payMoney;
     }
 
-    public void setLessonPrice(String lessonPrice) {
-        this.lessonPrice = lessonPrice;
+    public void setPayMoney(String payMoney) {
+        this.payMoney = payMoney;
     }
 
     public String getOrderNo() {

+ 46 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -43,4 +43,50 @@
         </foreach>
     </insert>
 
+    <select id="queryTeacherCourseGroup" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo">
+        select
+        b.id_                         as courseGroupId,
+        b.name_                       as courseGroupName,
+        s.name_                       as subjectName,
+        a.teacher_id_                 as teacherId,
+        u.real_name_                  as teacherName,
+        a.start_time_                 as startTime,
+        a.end_time_                   as endTime,
+        a.status_                     as `status`,
+        ifnull(a.pre_student_num_, 0) as studentCount,
+        b.background_pic_             as backgroundPic,
+        b.course_price_               as coursePrice,
+        b.course_num_                 as courseNum
+        from course_group as b
+        left join course_schedule as a on a.course_group_id_ = b.id_
+        left join subject as s on b.subject_id_ = s.id_
+        left join sys_user as u on a.teacher_id_ = u.id_
+        <where>
+            a.lock_ = 0
+            <if test="param.teacherId != null">
+                and b.teacher_id_ = #{param.teacherId}
+            </if>
+            <if test="param.status != null">
+                and a.status_ = #{param.status}
+            </if>
+            <if test="param.groupStatus != null">
+                and b.status_ = #{param.groupStatus}
+            </if>
+            <if test="param.type_ != null">
+                and a.type_ = #{param.type}
+            </if>
+            <if test="param.startDate != null">
+                AND <![CDATA[ a.class_date_  >= #{param.startDate} ]]>
+            </if>
+            <if test="param.endDate != null">
+                AND <![CDATA[ a.class_date_  <= #{param.endDate} ]]>
+            </if>
+            <if test="param.subjectId != null">
+                AND b.subject_id_ = #{param.subjectId}
+            </if>
+        </where>
+    </select>
+
+
+
 </mapper>

+ 0 - 29
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -100,33 +100,4 @@
         order by b.start_time_ desc
     </select>
 
-
-    <select id="queryTeacherCourse" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherCourseVo">
-        select
-               b.id_  as courseGroupId,
-               b.name_             as courseGroupName,
-               s.name_             as subjectName,
-               a.start_time_ as startTime,
-               a.end_time_ as endTime,
-               a.status_           as `status`,
-               a.pre_student_num_  as studentCount,
-               b.background_pic_   as backgroundPic
-        from course_schedule as a
-                 left join course_group as b on a.course_group_id_ = b.id_
-                 left join subject as s on b.subject_id_ = s.id_
-        where b.teacher_id_ = #{param.teacherId}
-          and a.lock_ = 0
-          and a.status_ = #{param.status}
-          and a.type_ = #{param.type}
-        <![CDATA[
-          AND a.class_date_  >= #{param.startDate}
-          AND a.class_date_  <= #{param.endDate}
-            # ]]>
-        <if test="param.subjectId != null">
-            AND b.subject_id_ = #{param.subjectId}
-        </if>
-
-    </select>
-
-
 </mapper>

+ 2 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderPaymentMapper.xml

@@ -8,7 +8,7 @@
 	        <result column="pay_channel_" property="payChannel" />
 	        <result column="pay_amt_" property="payAmt" />
 	        <result column="pay_info" property="payInfo" />
-	        <result column="invalid_time_" property="invalidTime" />
+	        <result column="status_" property="status" />
 	        <result column="arrival_time_" property="arrivalTime" />
 	        <result column="pay_fail_msg_" property="payFailMsg" />
             <result column="create_time_" property="createTime" />
@@ -23,7 +23,7 @@
         , t.pay_channel_
         , t.pay_amt_
         , t.pay_info
-        , t.invalid_time_
+        , t.status_
         , t.arrival_time_
         , t.pay_fail_msg_
         ,create_time_

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

@@ -79,7 +79,7 @@
 			g.lesson_name_ AS lessonName,
 			g.lesson_subject_ AS lessonSubject,
 			g.lesson_count_ AS lessonCount,
-			g.lesson_price_ AS lessonPrice,
+			p.pay_money_ AS payMoney,
 			p.order_no_ AS orderNo,
 			p.purchase_time_ AS purchaseTime
 		FROM video_lesson_group g

+ 2 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicAlbumController.java

@@ -10,7 +10,7 @@ import com.yonge.cooleshow.biz.dal.enums.StateEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -92,7 +92,7 @@ public class MusicAlbumController extends BaseController {
      */
     @GetMapping("/favorite")
     @ApiOperation(value = "收藏专辑列表")
-    public HttpResponseResult<PageInfo<MusicAlbumVo>> favoriteAlbum(Query query) {
+    public HttpResponseResult<PageInfo<MusicAlbumVo>> favoriteAlbum(QueryInfo query) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");

+ 4 - 4
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -9,7 +9,7 @@ import com.yonge.cooleshow.biz.dal.enums.AuditEnum;
 import com.yonge.cooleshow.biz.dal.enums.StateEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -87,7 +87,7 @@ public class MusicSheetController extends BaseController {
      */
     @GetMapping("/my")
     @ApiOperation(value = "我的单曲")
-    public HttpResponseResult<PageInfo<MusicSheetVo>> myMusic(Query query) {
+    public HttpResponseResult<PageInfo<MusicSheetVo>> myMusic(QueryInfo query) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
@@ -106,7 +106,7 @@ public class MusicSheetController extends BaseController {
      */
     @GetMapping("/favorite")
     @ApiOperation(value = "收藏单曲")
-    public HttpResponseResult<PageInfo<MusicSheetVo>> favoriteMusic(Query query) {
+    public HttpResponseResult<PageInfo<MusicSheetVo>> favoriteMusic(QueryInfo query) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
@@ -125,7 +125,7 @@ public class MusicSheetController extends BaseController {
      */
     @GetMapping("/practice")
     @ApiOperation(value = "最近练习")
-    public HttpResponseResult<PageInfo<MusicSheetVo>> practiceMusic(Query query) {
+    public HttpResponseResult<PageInfo<MusicSheetVo>> practiceMusic(QueryInfo query) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");

+ 8 - 1
cooleshow-user/user-student/src/main/resources/logback-spring.xml

@@ -27,8 +27,15 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="INFO" />
+	<logger name="com.yonge.cooleshow" level="INFO" />
 
+	<!--本地环境:打印控制台 -->
+	<springProfile name="local">
+		<root level="INFO">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
 		<root level="INFO">

+ 35 - 5
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseGroupController.java

@@ -2,19 +2,22 @@ package com.yonge.cooleshow.teacher.controller;
 
 
 import com.yonge.cooleshow.biz.dal.dto.CheckLiveCourseTimeDto;
+import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
+import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.page.PageInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课程组表(CourseGroup)表控制层
@@ -32,11 +35,38 @@ public class CourseGroupController extends BaseController {
     @Resource
     private CourseGroupService courseGroupService;
 
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "teacherId", dataType = "Long", value = "老师id"),
+            @ApiImplicitParam(name = "groupStatus", dataType = "String", value = "课程组状态  ING(进行中)  NOT_SALE(未开售,未上架) APPLY(报名中,销售中) COMPLETE(已完成)"),
+            @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
+    })
+    @ApiOperation("分页查询课程组列表")
+    @PostMapping("/queryPageCourseGroup")
+    public HttpResponseResult<PageInfo<TeacherCourseGroupVo>> queryPageLiveCourseGroup(@RequestBody Map<String, Object> param) {
+        return succeed(courseGroupService.queryPageLiveCourseGroup(param));
+    }
+
+    @ApiOperation("创建直播课程组-新增课程组")
+    @PostMapping("/addLiveCourse")
+    public HttpResponseResult<Object> addLiveCourse(@RequestBody LiveCourseGroupDto dto) {
+        courseGroupService.addLiveCourse(dto);
+        return succeed();
+    }
+
     @ApiOperation("创建直播课程组-锁定课程时间-将课时写到缓存当作锁定的时间")
-    @PostMapping("/lockCourseTime")
+    @PostMapping("/lockCourseToCache")
     public HttpResponseResult<List<CourseTimeEntity>> lockCourseToCache(@RequestBody CheckLiveCourseTimeDto dto) {
         return succeed(courseGroupService.lockCourseToCache(dto));
     }
 
+    @ApiOperation("创建直播课程组-解除锁定课程时间-删除写到缓存当作锁定的课时")
+    @GetMapping("/unlockCourseToCache")
+    public HttpResponseResult<Object> unlockCourseToCache(@RequestParam("teacherId") Long teacherId) {
+        courseGroupService.unlockCourseToCache(teacherId);
+        return succeed();
+    }
+
 }
 

+ 2 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java

@@ -2,7 +2,7 @@ package com.yonge.cooleshow.teacher.controller;
 
 
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -44,7 +44,7 @@ public class CourseScheduleController extends BaseController {
     })
     @ApiOperation("老师端-首页-我的课程-直播课")
     @PostMapping("/queryTeacherLiveCourse")
-    public HttpResponseResult<PageInfo<TeacherCourseVo>> queryTeacherLiveCourse(@RequestBody Map<String, Object> param) {
+    public HttpResponseResult<PageInfo<TeacherCourseGroupVo>> queryTeacherLiveCourse(@RequestBody Map<String, Object> param) {
         return succeed(courseScheduleService.queryTeacherLiveCourse(param));
     }
 

+ 0 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherAuthMusicianRecordController.java

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.teacher.controller;
 
-
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
@@ -18,7 +17,6 @@ import com.yonge.cooleshow.biz.dal.service.TeacherAuthMusicianRecordService;
 @RequestMapping("/teacherAuthMusicianRecord")
 @Api(value = "老师音乐人审核表", tags = "老师音乐人审核表")
 public class TeacherAuthMusicianRecordController extends BaseController {
-
     @Autowired
     private TeacherAuthMusicianRecordService teacherAuthMusicianRecordService;
     @Autowired

+ 2 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupController.java

@@ -99,7 +99,8 @@ public class VideoLessonGroupController extends BaseController {
     @PostMapping(value = "/add", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> add(@Validated @RequestBody VideoLessonVo lessonVo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
+
+        if (sysUser == null||sysUser.getId()==null) {
             return failed("用户信息获取失败");
         }
         if (lessonVo.getLessonList().isEmpty()) {

+ 8 - 2
cooleshow-user/user-teacher/src/main/resources/logback-spring.xml

@@ -27,8 +27,14 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="INFO" />
-
+	<logger name="com.yonge.cooleshow" level="INFO" />
+	<!--本地环境:打印控制台 -->
+	<springProfile name="local">
+		<root level="INFO">
+			<appender-ref ref="stdout" />
+			<appender-ref ref="file" />
+		</root>
+	</springProfile>
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
 		<root level="INFO">