Browse Source

Merge branch 'feature/1108_audio' of http://git.dayaedu.com/yonge/cooleshow into feature/1108_audio

刘俊驰 3 months ago
parent
commit
78738949f5
100 changed files with 1237 additions and 1773 deletions
  1. 4 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java
  2. 1 1
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/StudentFeignService.java
  3. 5 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java
  4. 9 57
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java
  5. 3 44
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/AdminCourseGroupController.java
  6. 4 19
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/CourseGroupController.java
  7. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/HomeController.java
  8. 39 28
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MemberPriceSettingsController.java
  9. 3 3
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/PracticeController.java
  10. 4 4
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponInfoVO.java
  11. 2 2
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponIssueVo.java
  12. 6 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java
  13. 3 19
      cooleshow-app/src/main/java/com/yonge/cooleshow/classroom/controller/RoomController.java
  14. 20 32
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/CourseHomeworkController.java
  15. 33 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ExposureRecordController.java
  16. 52 20
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MemberPriceSettingsController.java
  17. 12 50
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentController.java
  18. 29 19
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseGroupController.java
  19. 49 72
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseScheduleController.java
  20. 34 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentIndexController.java
  21. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/SubjectController.java
  22. 83 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TeacherSubjectPriceController.java
  23. 4 19
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TenantAlbumController.java
  24. 3 2
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  25. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/UserOrderRefundController.java
  26. 4 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/coupon/CouponInfoController.java
  27. 58 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/open/OpenSubjectController.java
  28. 3 3
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/io/request/CouponInfoVO.java
  29. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/task/TaskController.java
  30. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/vo/UserPaymentOrderVo.java
  31. 9 35
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ActivityController.java
  32. 24 43
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/CourseHomeworkController.java
  33. 12 23
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/CourseRepliedController.java
  34. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetCbsController.java
  35. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/SubjectController.java
  36. 36 116
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java
  37. 50 25
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java
  38. 33 100
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseScheduleController.java
  39. 13 31
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherFreeTimeController.java
  40. 88 27
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherHomeController.java
  41. 107 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherSubjectPriceController.java
  42. 2 2
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/UserOrderController.java
  43. 6 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/coupon/CouponInfoController.java
  44. 3 3
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/io/request/CouponInfoVO.java
  45. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/vo/UserPaymentOrderVo.java
  46. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/vo/UserPaymentOrderVo.java
  47. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/StudentController.java
  48. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/TeacherController.java
  49. 15 29
      cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/TeacherFreeTimeController.java
  50. 10 69
      cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/VideoGroupController.java
  51. 4 4
      cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/WebCourseScheduleController.java
  52. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/open/OpenSubjectController.java
  53. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/open/SubjectController.java
  54. 3 2
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/HelpCenterContentController.java
  55. 27 7
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java
  56. 1 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityTypeEnum.java
  57. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ConditionEnum.java
  58. 31 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/EDiscountType.java
  59. 1 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/RewardTypeEnum.java
  60. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserFirstTimeTypeEnum.java
  61. 3 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/payment/EPaymentType.java
  62. 20 0
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CourseStartRemindTask.java
  63. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/constant/CourseConstant.java
  64. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityPlanRewardDao.java
  65. 13 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseGroupDao.java
  66. 14 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  67. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleRepliedDao.java
  68. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  69. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ExposureRecordDao.java
  70. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/HomeDao.java
  71. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java
  72. 18 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysMusicCompareRecordDao.java
  73. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherDao.java
  74. 6 40
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherFreeTimeDao.java
  75. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherSubjectPriceDao.java
  76. 4 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountRecordDao.java
  77. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserOrderDetailDao.java
  78. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java
  79. 5 33
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityPlanDto.java
  80. 14 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/CheckCourseTimeDto.java
  81. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkRoomResult.java
  82. 23 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/LiveCourseGroupDto.java
  83. 5 120
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/PracticeScheduleDto.java
  84. 5 35
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/PracticeTimesSetting.java
  85. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/SubjectHomeSearch.java
  86. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java
  87. 4 129
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/CourseGroupSearch.java
  88. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/HomeworkAdminSearch.java
  89. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/HomeworkSearch.java
  90. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MemberPriceSettingsSearch.java
  91. 6 86
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MyCourseSearch.java
  92. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/OrderSearch.java
  93. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/PlatformCashAccountRecordSearch.java
  94. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserAccountRecordSearch.java
  95. 32 213
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java
  96. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlanStandard.java
  97. 8 142
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityReward.java
  98. 5 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java
  99. 9 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseSchedule.java
  100. 4 21
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleDate.java

+ 4 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -201,6 +201,10 @@ public interface AdminFeignService {
     @GetMapping("/task/workOverdue")
     HttpResponseResult<Object> workOverdue();
 
+    //课程开始前一20分组提醒
+    @GetMapping("/task/courseStartRemind")
+    HttpResponseResult<Object> courseStartRemind();
+
 
     /**
      * 账号注销校验

+ 1 - 1
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/StudentFeignService.java

@@ -32,7 +32,7 @@ public interface StudentFeignService {
     HttpResponseResult<Boolean> studentFirstBuy();
 
     /**
-     * @Description: 当日陪练课未对老师评价(每晚9点,已评价不发)
+     * @Description: 当日趣纠课未对老师评价(每晚9点,已评价不发)
      * @Author: cy
      * @Date: 2022/5/6
      */

+ 5 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -201,6 +201,11 @@ public class AdminFeignServiceFallback implements AdminFeignService {
     }
 
     @Override
+    public HttpResponseResult<Object> courseStartRemind() {
+        return null;
+    }
+
+    @Override
     public ImUserInfo register(String userId, String clientType, String username, String avatar) {
         return null;
     }

+ 9 - 57
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java

@@ -1,36 +1,26 @@
 package com.yonge.cooleshow.admin.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.biz.dal.dto.SaveOrUpdateRewardDto;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
 import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 
 @RestController
@@ -38,15 +28,12 @@ import javax.validation.Valid;
 @Api(value = "活动计划表", tags = "活动计划表")
 public class ActivityPlanController extends BaseController {
 
-    @Autowired
+    @Resource
     private ActivityPlanService activityPlanService;
 
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    /**
-     * 查询单条
-     */
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入id")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/detail')")
@@ -54,9 +41,6 @@ public class ActivityPlanController extends BaseController {
         return succeed(activityPlanService.detail(id));
     }
 
-    /**
-     * 查询分页
-     */
     @PostMapping("/page")
     @ApiOperation(value = "查询分页", notes = "传入activityPlanSearch")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/page')")
@@ -65,24 +49,11 @@ public class ActivityPlanController extends BaseController {
         return succeed(PageUtil.pageInfo(pages));
     }
 
-    /**
-     * 新增或修改
-     */
     @PostMapping("/submit")
     @ApiOperation(value = "新增或修改", notes = "传入activityPlan")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/submit')")
     public HttpResponseResult<ActivityPlan> submit(@Valid @RequestBody ActivityPlanDto activityPlan) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        activityPlan.setUserId(user.getId());
-
-        // 分享活动奖品校验
-        if (ActivityTypeEnum.SHARE == activityPlan.getActivityType()
-                && CollectionUtils.isEmpty(activityPlan.getRewardItems())) {
-            return failed("分享活动奖品信息为空");
-        }
+        activityPlan.setUserId(sysUserService.getUserId());
 
         try {
             return HttpResponseResult.succeed(activityPlanService.submit(activityPlan));
@@ -103,41 +74,22 @@ public class ActivityPlanController extends BaseController {
     public HttpResponseResult updateActivityState(
             @ApiParam(value = "活动id", required = true) @RequestParam("activityId") Long activityId,
             @ApiParam(value = "活动状态 0 停用 1 启用", required = true) @RequestParam("activityState") Integer activityState) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return status(activityPlanService.updateActivityState(activityId, activityState, user.getId()));
+        return status(activityPlanService.updateActivityState(activityId, activityState, sysUserService.getUserId()));
     }
 
-    /**
-     * 草稿/正式
-     */
     @GetMapping("/updateDraftFlag")
     @ApiOperation(value = "草稿/正式")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/updateDraftFlag')")
     public HttpResponseResult updateDraftFlag(
             @ApiParam(value = "活动id", required = true) @RequestParam("activityId") Long activityId,
             @ApiParam(value = "创建状态 0 正式 1 草稿 ", required = true) @RequestParam("draftFlag") Integer draftFlag) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return status(activityPlanService.updateDraftFlag(activityId, draftFlag, user.getId()));
+        return status(activityPlanService.updateDraftFlag(activityId, draftFlag, sysUserService.getUserId()));
     }
 
-    /**
-     * 修改奖品
-     */
     @PostMapping("/saveOrUpdateReward")
     @ApiOperation(value = "修改奖品")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/saveOrUpdateReward')")
     public HttpResponseResult saveOrUpdateReward(@Validated @RequestBody SaveOrUpdateRewardDto saveOrUpdateRewardDto) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
         try {
             return HttpResponseResult.succeed(activityPlanService.saveOrUpdateReward(saveOrUpdateRewardDto));
         } catch (BizException e) {

+ 3 - 44
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/AdminCourseGroupController.java

@@ -1,8 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.LiveSaleOutDto;
 import com.yonge.cooleshow.biz.dal.dto.search.LiveCourseGroupSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.LiveCourseGroupStudentCourseSearch;
@@ -20,14 +18,10 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PathVariable;
-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 javax.validation.Valid;
 import java.util.List;
 
@@ -41,23 +35,14 @@ import java.util.List;
 @RestController
 @RequestMapping("${app-config.url.admin:}/courseGroup")
 public class AdminCourseGroupController extends BaseController {
-    /**
-     * 服务对象
-     */
-    @Autowired
+    @Resource
     private CourseGroupService courseGroupService;
 
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "老师直播课列表", httpMethod="POST", consumes="application/json", produces="application/json")
     @PostMapping(value="/live/list", consumes="application/json", produces="application/json")
     public HttpResponseResult<PageInfo<LiveCourseGroupVo>> teacherList(@Validated(value = LiveCourseGroupSearch.TeacherGroup.class)
                                                                            @RequestBody LiveCourseGroupSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
         query.setCourseType(CourseScheduleEnum.LIVE);
 
         IPage<LiveCourseGroupVo> liveCourseGroupVoIPage = courseGroupService
@@ -70,10 +55,6 @@ public class AdminCourseGroupController extends BaseController {
     @PostMapping(value="/live/list/student", consumes="application/json", produces="application/json")
     public HttpResponseResult<PageInfo<LiveCourseGroupVo>> studentList(@Validated(value = LiveCourseGroupSearch.StudentGroup.class)
                                                                            @RequestBody LiveCourseGroupSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
         query.setCourseType(CourseScheduleEnum.LIVE);
 
         IPage<LiveCourseGroupVo> liveCourseGroupVoIPage = courseGroupService
@@ -85,10 +66,6 @@ public class AdminCourseGroupController extends BaseController {
     @PostMapping(value="/detail/{courseGroupId}")
     public HttpResponseResult<LiveCourseGroupVo> detail(@ApiParam(value = "课程组编号ID", required = true)
                                                                    @PathVariable("courseGroupId") Long courseGroupId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
         if (courseGroupId == null) {
             return failed("课程组id不能为空");
         }
@@ -104,10 +81,6 @@ public class AdminCourseGroupController extends BaseController {
     @ApiOperation(value = "直播课下架")
     @PostMapping(value="/live/saleOut")
     public HttpResponseResult<Boolean> liveSaleOut(@RequestBody @Valid LiveSaleOutDto dto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
         if (dto.getCourseGroupId() == null) {
             return failed("课程组id不能为空");
         }
@@ -120,11 +93,6 @@ public class AdminCourseGroupController extends BaseController {
     @ApiOperation(value = "老师详情-直播课购买学员信息", httpMethod="POST", consumes="application/json", produces="application/json")
     @PostMapping(value="/live/student", consumes="application/json", produces="application/json")
     public HttpResponseResult<PageInfo<LiveCourseGroupStudentVo>> student(@Valid @RequestBody LiveCourseGroupStudentSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-
         IPage<LiveCourseGroupStudentVo> liveCourseGroupVoIPage = courseGroupService
                 .selectAdminLiveStudentPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(liveCourseGroupVoIPage));
@@ -135,10 +103,6 @@ public class AdminCourseGroupController extends BaseController {
     @PostMapping(value="/live/{courseGroupId}")
     public HttpResponseResult<List<LiveCourseGroupPlanVo>> student(@ApiParam(value = "课程组编号ID", required = true)
                                                                               @PathVariable("courseGroupId") Long courseGroupId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
         if (courseGroupId == null) {
             return failed("课程组id不能为空");
         }
@@ -150,11 +114,6 @@ public class AdminCourseGroupController extends BaseController {
     @ApiOperation(value = "学生详情-直播课详情-学生上课状态", httpMethod="POST", consumes="application/json", produces="application/json")
     @PostMapping(value="/live/student/course", consumes="application/json", produces="application/json")
     public HttpResponseResult<PageInfo<LiveCourseGroupStudentCourseVo>> studentCourse(@Valid @RequestBody LiveCourseGroupStudentCourseSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-
         IPage<LiveCourseGroupStudentCourseVo> liveCourseGroupStudentCourseVoIPage = courseGroupService
                 .selectAdminLiveStudentCoursePage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(liveCourseGroupStudentCourseVoIPage));

+ 4 - 19
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/CourseGroupController.java

@@ -5,18 +5,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.CourseGroupSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupInfoVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupLiveVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupPianoDetailVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupPianoVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupPracticeDetailVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupPracticeVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupStudentVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseGroupVideoVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseSchedulePaymentVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseSchedulePlanVo;
-import com.yonge.cooleshow.biz.dal.vo.PianoRoomTimeVo;
-import com.yonge.cooleshow.biz.dal.vo.StudentSignVo;
+import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
@@ -25,11 +14,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-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.validation.constraints.NotNull;
 import java.util.List;
@@ -48,7 +33,7 @@ public class CourseGroupController extends BaseController {
     @Autowired
     private CourseScheduleService courseScheduleService;
 
-    @ApiOperation(value = "课程组管理-陪练课", notes = "{\n" +
+    @ApiOperation(value = "课程组管理-趣纠课", notes = "{\n" +
             "    \"subjectId\":20,\n" +
             "    \"search\":\"师\",\n" +
             "    \"status\":\"ING\"\n" +
@@ -58,7 +43,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectPracticeGroup(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-陪练课-详情", notes = "{\n" +
+    @ApiOperation(value = "课程组管理-趣纠课-详情", notes = "{\n" +
             "    \"courseGroupId\": 140,\n" +
             "    \"teacherSign\": 0,\n" +
             "    \"studentSign\": 0,\n" +

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/HomeController.java

@@ -69,7 +69,7 @@ public class HomeController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "dateTime", dataType = "String", value = "如果查询年数据 yyyy   如果查询月数据 yyyy-mm"),
             @ApiImplicitParam(name = "timeType", dataType = "String", value = " 时间类型 MONTH月度  YEAR年度"),
-            @ApiImplicitParam(name = "type", dataType = "String", value = "类型  PRACTICE陪练课  LIVE直播课"),
+            @ApiImplicitParam(name = "type", dataType = "String", value = "类型  PRACTICE趣纠课  LIVE直播课"),
     })
     @ApiOperation(value = "获取首页课程数据")
     @PostMapping("/courseHome")

+ 39 - 28
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MemberPriceSettingsController.java

@@ -1,55 +1,48 @@
 package com.yonge.cooleshow.admin.controller;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
+import com.yonge.cooleshow.biz.dal.enums.EVipType;
 import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
+import com.yonge.cooleshow.biz.dal.wrapper.ActivityPlayWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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 javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @RequestMapping("${app-config.url.admin:}/memberPriceSettings")
 @Api(tags = "会员价格设置")
 @RestController
 public class MemberPriceSettingsController extends BaseController {
-	@Autowired
+	@Resource
 	private MemberPriceSettingsService memberPriceSettingsService;
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	@Resource
+	private SysUserService sysUserService;
 
-	/**
-	 * 查询单条
-	 */
 	@GetMapping("/detail/{id}")
 	@ApiOperation(value = "详情", notes = "传入id")
 	public HttpResponseResult<MemberPriceSettingsVo> detail(@PathVariable("id") Long id) {
 		return succeed(memberPriceSettingsService.detail(id));
 	}
 
-	/**
-	 * 查询分页
-	 */
 	@GetMapping("/list")
 	@ApiOperation(value = "查询分页", notes = "传入memberPriceSettingsSearch")
 	@PreAuthorize("@pcs.hasPermissions('memberPriceSettings/list')")
@@ -58,18 +51,36 @@ public class MemberPriceSettingsController extends BaseController {
 		return succeed(PageUtil.pageInfo(pages));
 	}
 
-	/**
-	 * 修改
-	 */
+	@GetMapping("/groupList")
+	@ApiOperation(value = "按分类分组")
+	@PreAuthorize("@pcs.hasPermissions('memberPriceSettings/groupList')")
+	public HttpResponseResult<List<ActivityPlayWrapper.GroupListDto>> groupList() {
+		MemberPriceSettingsSearch query = new MemberPriceSettingsSearch();
+		query.setStatus(true);
+		query.setSearchType("VIP,SVIP,DISCOUNT");
+		query.setPage(1);
+		query.setRows(1000);
+		IPage<MemberPriceSettingsVo> pages = memberPriceSettingsService.selectPage(PageUtil.getPage(query), query);
+		List<MemberPriceSettingsVo> records = pages.getRecords();
+		if (CollectionUtils.isNotEmpty(records)) {
+			List<ActivityPlayWrapper.GroupListDto> groupListDto = new ArrayList<>();
+			Map<EVipType, List<MemberPriceSettingsVo>> collect = records.stream().collect(Collectors.groupingBy(MemberPriceSettingsVo::getVipType));
+			collect.forEach((k, v) -> {
+				ActivityPlayWrapper.GroupListDto dto = new ActivityPlayWrapper.GroupListDto();
+				dto.setType(k.getCode());
+				dto.setMemberList(v);
+				groupListDto.add(dto);
+			});
+			return succeed(groupListDto);
+		}
+		return succeed();
+	}
+
 	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@ApiOperation(value = "修改", notes = "传入memberPriceSettings")
 	@PreAuthorize("@pcs.hasPermissions('memberPriceSettings/update')")
 	public HttpResponseResult<Boolean> update(@Valid @RequestBody MemberPriceSettings memberPriceSettings) {
-		SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null || user.getId() == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-		memberPriceSettings.setUpdateBy(user.getId());
+		memberPriceSettings.setUpdateBy(sysUserService.getUserId());
 		memberPriceSettings.setUpdateTime(new Date());
 		boolean update = memberPriceSettingsService.update(memberPriceSettings, new UpdateWrapper<MemberPriceSettings>().lambda()
 				.set(MemberPriceSettings::getDesc, memberPriceSettings.getDesc())

+ 3 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/PracticeController.java

@@ -18,20 +18,20 @@ import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("${app-config.url.admin:}/pactice")
-@Api(value = "陪练课")
+@Api(value = "趣纠课")
 public class PracticeController extends BaseController {
 
     @Autowired
     private PracticeService pacticeService;
 
-    @ApiOperation(value = "陪练课-老师详情")
+    @ApiOperation(value = "趣纠课-老师详情")
     @PostMapping("/teacherPactice")
     public HttpResponseResult<PageInfo<PracticeVo>> teacherPactice(@RequestBody PracticeSearch search) {
         IPage<PracticeVo> pages = pacticeService.selectTeacherPactice(PageUtil.getPage(search), search);
         return succeed(PageUtil.pageInfo(pages));
     }
 
-    @ApiOperation(value = "陪练课-学生详情")
+    @ApiOperation(value = "趣纠课-学生详情")
     @PostMapping("/studentPactice")
     public HttpResponseResult<PageInfo<PracticeVo>> studentPactice(@RequestBody PracticeSearch search) {
         IPage<PracticeVo> pages = pacticeService.selectStudentPactice(PageUtil.getPage(search), search);

+ 4 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponInfoVO.java

@@ -52,7 +52,7 @@ public class CouponInfoVO {
         @ApiModelProperty("优惠券类型 FULL_DISCOUNT(满减券) VOUCHER(代金券)")
         private CouponTypeEnum couponType;
 
-        @ApiModelProperty("可用品类 UNIVERSAL(全场通用) VIP(小酷Ai) PIANO(云酷琴房) MALL(商场购物券) MUSIC(单曲点播券) ALBUM(专辑优惠券) SPARRING(陪练课购买券) LIVE(直播课购买券) ")
+        @ApiModelProperty("可用品类 UNIVERSAL(全场通用) VIP(小酷Ai) PIANO(云酷琴房) MALL(商场购物券) MUSIC(单曲点播券) ALBUM(专辑优惠券) SPARRING(趣纠课购买券) LIVE(直播课购买券) ")
         private CouponCategoryEnum category;
 
         @ApiModelProperty("优惠券状态")
@@ -116,7 +116,7 @@ public class CouponInfoVO {
         @ApiModelProperty("客户端类型: TEACHER(老师端), STUDENT(学生端)")
         private ClientEnum clientType;
 
-        @ApiModelProperty("可用品类: UNIVERSAL(全场通用) VIP(小酷Ai) PIANO(云酷琴房) MALL(商场购物券) MUSIC(单曲点播券) SPARRING(陪练课购买券) LIVE(直播课购买券) VIDEO(视频课购买券) ")
+        @ApiModelProperty("可用品类: UNIVERSAL(全场通用) VIP(小酷Ai) PIANO(云酷琴房) MALL(商场购物券) MUSIC(单曲点播券) SPARRING(趣纠课购买券) LIVE(直播课购买券) VIDEO(视频课购买券) ")
         private CouponCategoryEnum category;
 
         @ApiModelProperty("优惠券类型: FULL_DISCOUNT(满减券) VOUCHER(代金券) ")
@@ -182,7 +182,7 @@ public class CouponInfoVO {
 
         @ApiModelProperty("可用品类: UNIVERSAL(全场通用) VIP(小酷Ai) " +
                 "PIANO(云酷琴房) MALL(商场购物券) MUSIC(单曲点播券) " +
-                "SPARRING(陪练课购买券) LIVE(直播课购买券) VIDEO(视频课购买券) " +
+                "SPARRING(趣纠课购买券) LIVE(直播课购买券) VIDEO(视频课购买券) " +
                 "VIDEO(视频课购买券)")
         private CouponCategoryEnum category;
 
@@ -255,7 +255,7 @@ public class CouponInfoVO {
         @ApiModelProperty("客户端类型: TEACHER(老师端), STUDENT(学生端)")
         private ClientEnum clientType;
 
-        @ApiModelProperty("可用品类: UNIVERSAL(全场通用) VIP(小酷Ai) PIANO(云酷琴房) MALL(商场购物券) MUSIC(单曲点播券) SPARRING(陪练课购买券) LIVE(直播课购买券) VIDEO(视频课购买券) ")
+        @ApiModelProperty("可用品类: UNIVERSAL(全场通用) VIP(小酷Ai) PIANO(云酷琴房) MALL(商场购物券) MUSIC(单曲点播券) SPARRING(趣纠课购买券) LIVE(直播课购买券) VIDEO(视频课购买券) ")
         private CouponCategoryEnum category;
 
         @ApiModelProperty("使用门槛")

+ 2 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponIssueVo.java

@@ -455,7 +455,7 @@ public class CouponIssueVo {
         @ApiModelProperty("优惠券类型 ")
         private CouponTypeEnum couponType;
 
-        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
+        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:趣纠课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
         private CouponCategoryEnum couponCategory;
 
         @ApiModelProperty("获取途径 PLATFORM:平台,ACTIVITY:活动")
@@ -562,7 +562,7 @@ public class CouponIssueVo {
         @ApiModelProperty("优惠券类型 ")
         private CouponTypeEnum couponType;
 
-        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
+        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:趣纠课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
         private CouponCategoryEnum couponCategory;
 
         @ApiModelProperty("使用状态 USED:已使用 USABLE:未使用 EXPIRED:过期")

+ 6 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java

@@ -258,4 +258,10 @@ public class TaskController extends BaseController {
     public void workOverdue(){
         userMusicService.workOverdue();
     }
+
+    //课程开始前一20分组提醒
+    @GetMapping("/courseStartRemind")
+    public void courseStartRemind(){
+        courseScheduleService.courseStartRemind();
+    }
 }

+ 3 - 19
cooleshow-app/src/main/java/com/yonge/cooleshow/classroom/controller/RoomController.java

@@ -2,17 +2,7 @@ package com.yonge.cooleshow.classroom.controller;
 
 
 import com.alibaba.fastjson.JSONObject;
-import com.yonge.cooleshow.biz.dal.dto.BasicUserInfoDto;
-import com.yonge.cooleshow.biz.dal.dto.ETencentTRTCCallbackCommand;
-import com.yonge.cooleshow.biz.dal.dto.ImChannelStateNotify;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkBaseDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkCustomMessage;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkDeviceControlDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkDisplayDataDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkMusicSheetDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkRoomResult;
-import com.yonge.cooleshow.biz.dal.dto.RoomStatusNotify;
-import com.yonge.cooleshow.biz.dal.dto.TencentData;
+import com.yonge.cooleshow.biz.dal.dto.*;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
@@ -25,13 +15,7 @@ import io.swagger.annotations.ApiOperation;
 import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-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.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -56,7 +40,7 @@ public class RoomController extends BaseController {
     private ImNetworkRoomService imNetworkRoomService;
     @Resource
     private SysUserService sysUserService;
-    @Autowired
+    @Resource
     private ImGroupService imGroupService;
 
     @ApiOperation("加入网络教室")

+ 20 - 32
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/CourseHomeworkController.java

@@ -1,8 +1,6 @@
 package com.yonge.cooleshow.student.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSubmitDto;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
@@ -10,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseHomeworkService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -21,14 +20,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.apache.commons.collections.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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 javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
@@ -44,68 +38,62 @@ import java.util.List;
 @RequestMapping("${app-config.url.student:}/homework")
 public class CourseHomeworkController extends BaseController {
 
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    @Autowired
+    @Resource
     private CourseScheduleService courseScheduleService;
 
-    @Autowired
+    @Resource
     private CourseHomeworkService courseHomeworkService;
 
-    @Autowired
+    @Resource
     private ImGroupService imGroupService;
 
 
-    @ApiOperation(value = "首页-我的课程-课程详情(陪练课)-课后作业信息详情",notes = "传入课程编号ID")
+    @ApiOperation(value = "首页-我的课程-课程详情(趣纠课)-课后作业信息详情",notes = "传入课程编号ID")
     @GetMapping(value = "/detail/{courseId}")
     public HttpResponseResult<CourseHomeworkDetailVo> detail(@ApiParam(value = "课程编号ID", required = true)
                                                                  @PathVariable("courseId") Long courseId) {
 
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        HttpResponseResult info = checkCourseSchedule(courseId,sysUser);
+        Long userId = sysUserService.getUserId();
+        HttpResponseResult info = checkCourseSchedule(courseId,userId);
         if (info != null) return info;
-        CourseHomeworkDetailVo detailVo = courseHomeworkService.getCourseHomeworkDetailByCourseId(courseId, sysUser.getId());
+        CourseHomeworkDetailVo detailVo = courseHomeworkService.getCourseHomeworkDetailByCourseId(courseId, userId);
         if (detailVo != null) {
             detailVo.setImUserId(imGroupService.getImUserId(String.valueOf(detailVo.getTeacherId()),ClientEnum.TEACHER.name()));
         }
         return succeed(detailVo);
     }
 
-    private HttpResponseResult checkCourseSchedule(Long courseId,SysUser sysUser) {
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-        if (!courseScheduleService.checkStudentCourseSchedule(sysUser.getId(), courseId)) {
+    private HttpResponseResult checkCourseSchedule(Long courseId,Long userId) {
+        if (!courseScheduleService.checkStudentCourseSchedule(userId, courseId)) {
             return failed("学生只能看自己购买的课程详情");
         }
         return null;
     }
 
 
-    @ApiOperation(value = "陪练课-作业提交", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @ApiOperation(value = "趣纠课-作业提交", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/submit", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Boolean> reviewCourseHomework(@Valid @RequestBody CourseHomeworkSubmitDto submitDto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        HttpResponseResult info = checkCourseSchedule(submitDto.getCourseScheduleId(),sysUser);
+        Long userId = sysUserService.getUserId();
+        HttpResponseResult info = checkCourseSchedule(submitDto.getCourseScheduleId(),userId);
         if (info != null) return info;
-        submitDto.setStudentId(sysUser.getId());
+        submitDto.setStudentId(userId);
         return succeed(courseHomeworkService.submitCourseHomework(submitDto));
     }
 
     @ApiOperation(value = "课后作业-列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/list", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<PageInfo<CourseHomeworkVo>> list(@Valid @RequestBody HomeworkSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (query.getSubmit() == null) {
-            return failed("提交状态不能为空");
-        }
         query.setDecorate(YesOrNoEnum.YES);
-        query.setStudentId(sysUser.getId());
+        query.setStudentId(sysUserService.getUserId());
         query.setCourseStatus(CourseScheduleEnum.COMPLETE);
         List<CourseScheduleEnum> list = new ArrayList<>();
         list.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
         list.add(CourseScheduleEnum.PRACTICE);
+        list.add(CourseScheduleEnum.VIP);
         query.setCourseType(list);
 
         IPage<CourseHomeworkVo> page = courseHomeworkService.selectPage(PageUtil.getPage(query), query);

+ 33 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ExposureRecordController.java

@@ -0,0 +1,33 @@
+package com.yonge.cooleshow.student.controller;
+
+import com.yonge.cooleshow.biz.dal.service.ExposureRecordService;
+import com.yonge.cooleshow.biz.dal.wrapper.ExposureRecordWrapper;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+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 javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = "曝光记录")
+@RestController
+@RequestMapping("${app-config.url.student:}/exposure")
+public class ExposureRecordController extends BaseController {
+
+    @Resource
+    private ExposureRecordService exposureRecordService;
+
+
+    @ApiOperation(value = "记录曝光信息")
+    @PostMapping("/record")
+    public HttpResponseResult record(@RequestBody List<ExposureRecordWrapper.SaveExposureRecordDto> exposureReportDto) {
+        exposureRecordService.record(exposureReportDto);
+        return succeed();
+    }
+
+}

+ 52 - 20
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MemberPriceSettingsController.java

@@ -1,9 +1,14 @@
 package com.yonge.cooleshow.student.controller;
 
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
+import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
 import com.yonge.cooleshow.biz.dal.entity.SysConfig;
+import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
 import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceVo;
 import com.yonge.cooleshow.biz.dal.wrapper.MemberPriceSettingsWrapper;
@@ -12,14 +17,11 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -28,14 +30,16 @@ import java.util.Map;
 @Api(tags = "会员价格设置")
 @RestController
 public class MemberPriceSettingsController extends BaseController {
-	@Autowired
+	@Resource
 	private MemberPriceSettingsService memberPriceSettingsService;
-	@Autowired
+	@Resource
 	private SysConfigService sysConfigService;
+	@Resource
+	private ActivityPlanService activityPlanService;
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
-	/**
-	 * 查询单条
-	 */
 	@GetMapping("/detail/{id}")
 	@ApiOperation(value = "详情", notes = "传入id")
 	public HttpResponseResult<MemberPriceSettingsVo> detail(@PathVariable("id") Long id) {
@@ -50,11 +54,6 @@ public class MemberPriceSettingsController extends BaseController {
 		return succeed(memberPriceVo);
 	}
 
-
-
-    /**
-     * 查询单条
-     */
     @GetMapping("/check/{id}")
     @ApiOperation(value = "检查会员是否有效", notes = "传入id")
     public HttpResponseResult<Boolean> check(@PathVariable("id") Long id) {
@@ -67,10 +66,6 @@ public class MemberPriceSettingsController extends BaseController {
         return succeed(true);
     }
 
-
-    /**
-     * 查询单条
-     */
     @PostMapping("/checkChange")
     @ApiOperation(value = "检查会员是否有效", notes = "传入id")
     public HttpResponseResult<Boolean> checkChange(@RequestBody @Validated MemberPriceSettingsWrapper.MemberChange memberChange) {
@@ -93,4 +88,41 @@ public class MemberPriceSettingsController extends BaseController {
 		List<SysConfig> configs = sysConfigService.findAll(params);
 		return succeed(configs);
 	}
+
+	@ApiOperation(value = "获取进行中的会员买赠活动")
+	@PostMapping("/getMemberBuyGift")
+	public HttpResponseResult<ActivityPlanVo> getMemberBuyGift() {
+		return succeed(activityPlanService.getMemberBuyGift());
+	}
+
+	@ApiOperation(value = "获取双十二活动")
+	@GetMapping("/getDoubleTwelve/{id}")
+	public HttpResponseResult<ActivityPlanVo> getDoubleTwelve(@PathVariable("id") Long id) {
+		return succeed(activityPlanService.detail(id));
+	}
+
+	@ApiOperation(value = "获取畅学卡")
+	@GetMapping("/getDiscount")
+	public HttpResponseResult<MemberPriceSettingsWrapper.UserDiscount> getDiscount() {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		Long userId = null;
+		if (user != null ){
+			userId = user.getId();
+		}
+		return succeed(memberPriceSettingsService.getDiscount(userId));
+	}
+
+
+	@ApiOperation(value = "获取畅学卡")
+	@GetMapping("/getDiscount/detail/{orderDetilId}")
+	public HttpResponseResult<MemberPriceSettingsWrapper.UserDiscount> getDiscountByOrder(@PathVariable("orderDetilId") Long orderDetilId) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		Long userId = null;
+		if (user != null ){
+			userId = user.getId();
+		}
+		return succeed(memberPriceSettingsService.getDiscountByOrder(userId,orderDetilId));
+	}
+
+
 }

+ 12 - 50
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentController.java

@@ -26,17 +26,10 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-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.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
@@ -50,13 +43,10 @@ public class StudentController extends BaseController {
     private StudentService studentService;
     @Resource
     private SysUserFeignService sysUserFeignService;
-
     @Resource
     private SysUserService sysUserService;
-
     @Resource
     private SmsCodeService smsCodeService;
-
     @Resource
     private SubjectService subjectService;
 
@@ -85,19 +75,15 @@ public class StudentController extends BaseController {
     @ApiOperation(value = "查询学员")
     @GetMapping("/queryUser")
     public HttpResponseResult<Student> queryUser() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        Student student = studentService.getById(user.getId());
+        Student student = studentService.getById(sysUserService.getUserId());
         return succeed(student);
     }
 
     @ApiOperation(value = "查询学员基本信息")
     @GetMapping("/queryUserInfo")
     public HttpResponseResult<StudentHomeVo> queryUserInfo() throws Exception {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId() || (user.getDelFlag()!=null && user.getDelFlag())) {
+        SysUser user = sysUserService.getUser();
+        if (user.getDelFlag()!=null && user.getDelFlag()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
         return succeed(studentService.queryUserInfo(user));
@@ -106,12 +92,7 @@ public class StudentController extends BaseController {
     @ApiOperation(value = "设置系统默认客服")
     @GetMapping("/updateUserCustomerService")
     public HttpResponseResult<String> updateUserCustomerService() {
-
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
+        SysUser user = sysUserService.getUser();
         return succeed(studentService.updateUserCustomerService(user));
     }
 
@@ -121,22 +102,14 @@ public class StudentController extends BaseController {
         if (StringUtil.isEmpty(subjectIds)) {
             return failed("参数不能为空");
         }
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return status(studentService.setSubject(user.getId(), subjectIds) > 0);
+        return status(studentService.setSubject(sysUserService.getUserId(), subjectIds) > 0);
     }
 
     @ApiOperation(value = "获取声部搜索下拉框")
     @PostMapping("/querySubjectItem")
     public HttpResponseResult<List<Subject>> querySubjectItem(
-            @ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        List<Subject> subjects = studentService.querySubjectItem(user.getId(), type);
+            @ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
+        List<Subject> subjects = studentService.querySubjectItem(sysUserService.getUserId(), type);
         subjectService.convertSubject(subjects);
         return succeed(subjects);
     }
@@ -144,11 +117,7 @@ public class StudentController extends BaseController {
     @ApiOperation(value = "我的关注")
     @PostMapping(value = "/queryMyFollow")
     public HttpResponseResult<PageInfo<MyFollow>> queryMyFollow(@RequestBody QueryMyFollowSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        query.setUserId(sysUser.getId());
+        query.setUserId(sysUserService.getUserId());
         IPage<MyFollow> pages = studentService.queryMyFollow(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }
@@ -157,11 +126,7 @@ public class StudentController extends BaseController {
     @ApiOperation(value = "实名认证", notes = "传入realNameAuthDto")
     @ResponseBody
     public HttpResponseResult<IdcardInfoExtractor> realNameAuth(@Valid @RequestBody RealnameAuthReq realNameAuthDto) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        IdcardInfoExtractor idcardInfoExtractor = sysUserService.updateUserCard(realNameAuthDto, user,
+        IdcardInfoExtractor idcardInfoExtractor = sysUserService.updateUserCard(realNameAuthDto, sysUserService.getUser(),
                 ClientEnum.STUDENT);
         return succeed(idcardInfoExtractor);
     }
@@ -169,13 +134,10 @@ public class StudentController extends BaseController {
     @PostMapping("/logoffAccount")
     @ApiOperation(value = "注销学生账户")
     public HttpResponseResult<Boolean> logoffAccount(@RequestParam("code") String code) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
         if (StringUtils.isEmpty(code)) {
             return failed("验证码不能为空");
         }
+        SysUser user = sysUserService.getUser();
         boolean validCode = smsCodeService.verifyValidCode(user.getPhone(), code, "");
         if (!validCode) {
             return failed("验证码错误");
@@ -195,7 +157,7 @@ public class StudentController extends BaseController {
     @PostMapping("/checkPassword")
     @ApiOperation(value = "校验密码")
     public Object checkPassword(@Validated @RequestBody StudentWrapper.StudentUpdatePassword updatePassword){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        SysUser sysUser = sysUserService.getUser();
         BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
         if(!encoder.matches(updatePassword.getPassword(),sysUser.getPassword())){
             throw new BizException("原密码错误");

+ 29 - 19
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseGroupController.java

@@ -1,29 +1,25 @@
 package com.yonge.cooleshow.student.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-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.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import io.swagger.annotations.*;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import javax.validation.Valid;
 import java.util.List;
 import java.util.Map;
 
@@ -37,13 +33,11 @@ import java.util.Map;
 @RestController
 @RequestMapping("${app-config.url.student:}/courseGroup")
 public class StudentCourseGroupController extends BaseController {
-    /**
-     * 服务对象
-     */
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     private CourseGroupService courseGroupService;
-
-    @Autowired
+    @Resource
     private AppVersionInfoService appVersionInfoService;
 
     @ApiOperation("直播课详情")
@@ -76,7 +70,7 @@ public class StudentCourseGroupController extends BaseController {
 
     @ApiOperation("创建直播课程组-锁定课程时间-将课时写到缓存当作锁定的时间")
     @PostMapping("/lockCourseToCache")
-    public HttpResponseResult<List<CourseTimeEntity>> lockCourseToCache(@RequestBody CheckCourseTimeDto dto) {
+    public HttpResponseResult<List<CourseTimeEntity>> lockCourseToCache(@RequestBody @Valid CheckCourseTimeDto dto) {
         return succeed(courseGroupService.lockCourseToCache(dto));
     }
 
@@ -95,5 +89,21 @@ public class StudentCourseGroupController extends BaseController {
         List<Subject> subjectList = courseGroupService.liveSubject();
         return succeed(subjectList);
     }
+
+    @ApiOperation("学生端我的课程组")
+    @PostMapping("/myCourseGroup")
+    public HttpResponseResult<PageInfo<CourseGroupWrapper.StudentCourseGroupDto>> myCourseGroup(@RequestBody CourseGroupWrapper.TeacherCourseGroupQuery query) {
+        query.setStudentId(sysUserService.getUserId());
+        return succeed(PageUtil.pageInfo(courseGroupService.studentCourseGroup(PageUtil.getPage(query), query)));
+    }
+
+    @ApiOperation("学生端获取单个课程组")
+    @PostMapping("/getCourseGroup")
+    public HttpResponseResult<CourseGroupWrapper.StudentCourseGroupDto> getCourseGroup(Long courseGroupId) {
+        CourseGroupWrapper.TeacherCourseGroupQuery query = new CourseGroupWrapper.TeacherCourseGroupQuery();
+        query.setCourseGroupId(courseGroupId);
+        IPage<CourseGroupWrapper.StudentCourseGroupDto> pages = courseGroupService.studentCourseGroup(PageUtil.getPage(query), query);
+        return succeed(pages.getRecords().get(0));
+    }
 }
 

+ 49 - 72
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseScheduleController.java

@@ -1,23 +1,17 @@
 package com.yonge.cooleshow.student.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.microsvc.toolkit.common.webportal.exception.BizException;
 import com.yonge.cooleshow.biz.dal.dto.search.AppAuditVersionSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.PracticeTeacherSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCalendarEntity;
 import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
 import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
-import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
-import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
-import com.yonge.cooleshow.biz.dal.service.CourseRepliedService;
-import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
-import com.yonge.cooleshow.biz.dal.vo.CourseStudent;
-import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
-import com.yonge.cooleshow.biz.dal.vo.PianoClassVo;
-import com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo;
-import com.yonge.cooleshow.biz.dal.vo.StudentHomePage;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.vo.*;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherFreeTimeWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseScheduleWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
@@ -27,15 +21,11 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-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 javax.validation.constraints.NotNull;
 import java.util.List;
 import java.util.Map;
@@ -49,14 +39,16 @@ import java.util.Set;
 @RestController
 @RequestMapping("${app-config.url.student:}/courseSchedule")
 public class StudentCourseScheduleController extends BaseController {
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     private CourseScheduleService courseScheduleService;
-    @Autowired
+    @Resource
     private CourseRepliedService repliedService;
-    @Autowired
+    @Resource
     private AppVersionInfoService appVersionInfoService;
+    @Resource
+    private TeacherFreeTimeService teacherFreeTimeService;
 
     @ApiOperation("学生端-查询房间配置")
     @GetMapping("/selectRoomConfig")
@@ -64,57 +56,36 @@ public class StudentCourseScheduleController extends BaseController {
         return succeed(courseScheduleService.selectRoomConfig());
     }
 
-    @ApiOperation("学生端-我的-我的课程-陪练课")
+    @ApiOperation("学生端-我的-我的课程-趣纠课")
     @PostMapping("/queryStudentPracticeCourse")
     public HttpResponseResult<PageInfo<MyCourseVo>> queryStudentPracticeCourse(@RequestBody MyCourseSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        search.setStudentId(user.getId());
+        search.setStudentId(sysUserService.getUserId());
         IPage<MyCourseVo> pages = courseScheduleService.queryStudentPracticeCourse(PageUtil.getPage(search), search);
         return succeed(PageUtil.pageInfo(pages));
     }
 
-    @ApiOperation(value = "学生端-我的-我的课程-课程详情-评价陪练课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @ApiOperation(value = "学生端-我的-我的课程-课程详情-评价趣纠课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/replied", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> replied(@Validated @RequestBody CourseScheduleReplied replied) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-
-        replied.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
-        repliedService.replied(replied, sysUser);
+        repliedService.replied(replied, sysUserService.getUser());
         return succeed();
     }
 
-    @ApiOperation(value = "学生端-我的-我的课程-课程详情-查询陪练课评价")
+    @ApiOperation(value = "学生端-我的-我的课程-课程详情-查询趣纠课评价")
     @PostMapping(value = "/selectReplied")
     public HttpResponseResult<CourseScheduleReplied> selectReplied(@Validated @RequestBody CourseScheduleReplied replied) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        replied.setStudentId(user.getId());
-        replied.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
+        replied.setStudentId(sysUserService.getUserId());
         return succeed(repliedService.selectReplied(replied));
     }
 
     @ApiOperation("学生端-课表-日历")
     @PostMapping("/queryCourseScheduleStudent")
     public HttpResponseResult<Set<String>> queryCourseScheduleStudent(@RequestBody MyCourseSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        search.setStudentId(user.getId());
+        search.setStudentId(sysUserService.getUserId());
         return succeed(courseScheduleService.queryCourseScheduleStudent(search));
     }
 
-    @ApiOperation(value = "学生端-首页-陪练课老师列表", notes = "search:{\"subjectId\":null,\"search\":\"\",\"sort\":\"starGrade ASC,expTime DESC,subjectPrice DESC\"}")
+    @ApiOperation(value = "学生端-首页-趣纠课老师列表", notes = "search:{\"subjectId\":null,\"search\":\"\",\"sort\":\"starGrade ASC,expTime DESC,subjectPrice DESC\"}")
     @PostMapping("/teacherList")
     public HttpResponseResult<PageInfo<PracticeTeacherVo>> teacherList(@RequestBody PracticeTeacherSearch search) {
         IPage<PracticeTeacherVo> pages = courseScheduleService.teacherList(PageUtil.getPage(search), search);
@@ -124,11 +95,8 @@ public class StudentCourseScheduleController extends BaseController {
     @ApiOperation(value = "学生端-课表-日历-用户", notes = "search:{\"classDate\":\"2022-03-27\"}")
     @PostMapping("/queryCourseTeacher")
     public HttpResponseResult<Map<String, Object>> queryCourseTeacher(@RequestBody MyCourseSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        search.setStudentId(user.getId());
+        search.setStudentId(sysUserService.getUserId());
+        search.setCourseType(null);
         return succeed(courseScheduleService.queryCourseTeacher(search));
     }
 
@@ -149,14 +117,10 @@ public class StudentCourseScheduleController extends BaseController {
     @ApiOperation("学生-首页-直播课&视频课&最近课程")
     @GetMapping("/queryLiveAndVideo")
     public HttpResponseResult<StudentHomePage> queryLiveAndVideo(AppAuditVersionSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
         // 检查app版本审核/正式
         YesOrNoEnum appAuditVersion = appVersionInfoService.getAppAuditVersion(search.getPlatform(),
                                                                                search.getVersion());
-        return succeed(courseScheduleService.queryLiveAndVideo(user.getId(),null,appAuditVersion));
+        return succeed(courseScheduleService.queryLiveAndVideo(sysUserService.getUserId(),null,appAuditVersion));
     }
 
     @ApiImplicitParams({
@@ -165,30 +129,43 @@ public class StudentCourseScheduleController extends BaseController {
             @ApiImplicitParam(name = "year", dataType = "Integer", value = "年"),
             @ApiImplicitParam(name = "month", dataType = "Integer", value = "月"),
             @ApiImplicitParam(name = "day", dataType = "Integer", value = "日"),
+            @ApiImplicitParam(name = "teacherSubjectPriceId", dataType = "Integer", value = "老师声部价格ID"),
     })
-    @ApiOperation("陪练课日历-用于学生购买指定老师陪练课")
+    @ApiOperation("趣纠课日历-用于学生购买指定老师趣纠课")
     @PostMapping("/createPracticeCourseCalendar")
     public HttpResponseResult<List<CourseCalendarEntity>> generatePracticeCourseCalender(@RequestBody Map<String, Object> param) {
         return succeed(courseScheduleService.createPracticeCourseCalender(param));
     }
 
-    @ApiOperation("查询老师陪练课配置")
+    @ApiOperation("查询老师趣纠课配置")
     @GetMapping("/getTeacherSubjectPrice")
-    public HttpResponseResult<List<TeacherSubjectPrice>> getTeacherSubjectPrice(@NotNull Long teacherId) {
-        return succeed(courseScheduleService.teacherSubjectPrice(teacherId));
+    public HttpResponseResult<List<TeacherSubjectPrice>> getTeacherSubjectPrice(@NotNull Long teacherId,String groupType) {
+        return succeed(courseScheduleService.teacherSubjectPrice(teacherId,groupType));
     }
 
     @ApiOperation("学生端-我的课程-琴房课列表")
     @PostMapping("/queryPianoClass")
     public HttpResponseResult<PageInfo<PianoClassVo>> queryPianoClass(@RequestBody MyCourseSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        search.setStudentId(user.getId());
+        search.setStudentId(sysUserService.getUserId());
         IPage<PianoClassVo> pages = courseScheduleService.queryPianoClass(PageUtil.getPage(search), search);
         return succeed(PageUtil.pageInfo(pages));
     }
+
+    @ApiOperation("学生端-约课-老师列表")
+    @PostMapping("/queryTeacherList")
+    public HttpResponseResult<PageInfo<PracticeTeacherVo>> queryTeacherList(@RequestBody TeacherFreeTimeWrapper.TeacherSearch query) {
+        if (StringUtils.isEmpty(query.getCourseType())) {
+            throw new BizException("请选择课程类型");
+        }
+        IPage<PracticeTeacherVo> pages = teacherFreeTimeService.queryTeacherList(PageUtil.getPage(query),query);
+        return succeed(PageUtil.pageInfo(pages));
+    }
+
+    @ApiOperation(value = "获取课程列表")
+    @PostMapping("/list")
+    public HttpResponseResult<List<CourseScheduleWrapper.StudentCourseList>> queryList(@RequestBody CourseScheduleWrapper.CourseQuery query){
+        query.setStudentId(sysUserService.getUserId());
+        return succeed(courseScheduleService.queryListByStudent(query));
+    }
 }
 

+ 34 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentIndexController.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.student.controller;
+
+import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.wrapper.StudentIndexWrapper;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@Api(tags = "学生首页")
+@RestController
+@RequestMapping("${app-config.url.student:}/index")
+public class StudentIndexController extends BaseController {
+
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
+    private StudentService studentService;
+
+
+    @ApiOperation(value = "首页-数据汇总")
+    @GetMapping("/summary")
+    public HttpResponseResult<StudentIndexWrapper.SummaryDto> summary() {
+        Long userId = sysUserService.getUserId();
+        return succeed(studentService.indexSummary(userId));
+    }
+
+}

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/SubjectController.java

@@ -41,7 +41,7 @@ public class SubjectController extends BaseController {
     @ApiOperation(value = "获取声部")
     @GetMapping("/subjectSelect")
     public HttpResponseResult<List<Subject>> subjectSelect(
-            @ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
+            @ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
     	
     	String userExtSubjectIds = null;
         

+ 83 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TeacherSubjectPriceController.java

@@ -0,0 +1,83 @@
+package com.yonge.cooleshow.student.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.service.TeacherSubjectPriceService;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherSubjectPriceWrapper;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+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 javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+@Api(tags = "老师课程价格配置")
+@RestController
+@RequestMapping("${app-config.url.student:}/teacherSubjectPrice")
+public class TeacherSubjectPriceController extends BaseController {
+    @Resource
+    private TeacherSubjectPriceService teacherSubjectPriceService;
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
+    private SubjectService subjectService;
+
+
+    @ApiOperation(value = "获取老师课程价格配置")
+    @PostMapping("/detail")
+    public HttpResponseResult<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto> detail(@RequestBody TeacherSubjectPriceWrapper.PriceSearch query){
+        List<TeacherSubjectPrice> list = teacherSubjectPriceService.lambdaQuery()
+                .eq(TeacherSubjectPrice::getTeacherId, sysUserService.getUserId())
+                .eq(query.getSubjectId() != null, TeacherSubjectPrice::getSubjectId, query.getSubjectId())
+                .eq(StringUtils.isNotEmpty(query.getCourseType()), TeacherSubjectPrice::getCourseType, query.getCourseType())
+                .list();
+        if(CollectionUtils.isNotEmpty(list)){
+            //获取所有的声部、声部名称
+            TeacherSubjectPriceWrapper.TeacherSubjectPriceDto dto = new TeacherSubjectPriceWrapper.TeacherSubjectPriceDto();
+            String subjectIds = list.stream().map(e->e.getSubjectId().toString()).distinct().collect(Collectors.joining(","));
+            String subjectNames = list.stream().map(TeacherSubjectPrice::getSubjectName).distinct().collect(Collectors.joining(","));
+            dto.setSubjectIds(subjectIds);
+            dto.setSubjectName(subjectNames);
+            dto.setTeacherId(list.get(0).getTeacherId());
+            dto.setCourseType(list.get(0).getCourseType());
+            dto.setFreeMinutes(list.get(0).getFreeMinutes());
+            dto.setCourseMinutes(list.get(0).getCourseMinutes());
+            dto.setSubjectPrice(list.get(0).getSubjectPrice());
+            return succeed(dto);
+        }
+        return succeed();
+    }
+
+    @ApiOperation(value = "获取老师课程价格配置")
+    @PostMapping("/list")
+    public HttpResponseResult<List<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto>> list(@RequestBody TeacherSubjectPriceWrapper.PriceSearch query){
+        List<TeacherSubjectPrice> list = teacherSubjectPriceService.lambdaQuery()
+                .eq(TeacherSubjectPrice::getTeacherId, sysUserService.getUserId())
+                .eq(query.getSubjectId() != null, TeacherSubjectPrice::getSubjectId, query.getSubjectId())
+                .eq(StringUtils.isNotEmpty(query.getCourseType()), TeacherSubjectPrice::getCourseType, query.getCourseType())
+                .list();
+        if(CollectionUtils.isNotEmpty(list)){
+            List<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto> results = JSONObject.parseArray(JSONObject.toJSONString(list), TeacherSubjectPriceWrapper.TeacherSubjectPriceDto.class);
+            List<Long> subjectIds = list.stream().map(TeacherSubjectPrice::getSubjectId).distinct().collect(Collectors.toList());
+            List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
+            Map<Long, String> subjectMap = subjectList.stream().collect(Collectors.toMap(Subject::getId, Subject::getImg));
+            results.forEach(e->e.setSubjectPic(subjectMap.get(e.getSubjectId())));
+            return succeed(results);
+        }
+        return succeed();
+    }
+}
+

+ 4 - 19
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TenantAlbumController.java

@@ -2,23 +2,17 @@ package com.yonge.cooleshow.student.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
-import com.yonge.cooleshow.biz.dal.service.TenantAlbumMusicService;
-import com.yonge.cooleshow.biz.dal.service.TenantAlbumRefService;
 import com.yonge.cooleshow.biz.dal.service.TenantAlbumService;
-import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-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.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
 
 /**
  * @Author:haonan
@@ -30,18 +24,9 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("${app-config.url.student:}/StudentTenantAlbum")
 @Api(value = "学生端机构管理", tags = "学生端机构管理")
 public class TenantAlbumController {
-    @Autowired
+    @Resource
     TenantAlbumService tenantAlbumService;
 
-    @Autowired
-    private TenantAlbumMusicService tenantAlbumMusicService;
-
-    @Autowired
-    private TenantAlbumRefService tenantAlbumRefService;
-
-    @Autowired
-    private TenantInfoService tenantInfoService;
-
     /**
      * 查询分页
      *

+ 3 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java

@@ -149,12 +149,12 @@ public class UserOrderController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(
                     name = "goodType",
-                    value = "订单类型:  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名",
+                    value = "订单类型:  PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名",
                     paramType = "query", dataType = "String", required = true
             ),
             @ApiImplicitParam(
                     name = "bizId",
-                    value = "业务id 直播课、陪练课购买为课程组id;陪练课为老师id;单曲点播传曲子id",
+                    value = "业务id 直播课、趣纠课购买为课程组id;趣纠课为老师id;单曲点播传曲子id",
                     paramType = "query", dataType = "Long"
             )
     })
@@ -162,6 +162,7 @@ public class UserOrderController extends BaseController {
         if (null == query.getGoodType()
                 || (!GoodTypeEnum.VIP.getCode().equals(query.getGoodType())
             && !GoodTypeEnum.SVIP.getCode().equals(query.getGoodType())
+            && !GoodTypeEnum.DISCOUNT.getCode().equals(query.getGoodType())
             && null == query.getBizId())) {
             return HttpResponseResult.failed("参数异常");
         }

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/UserOrderRefundController.java

@@ -113,7 +113,7 @@ public class UserOrderRefundController extends BaseController {
         try {
             DistributedLock.of(redissonClient)
                     .runIfLockCanGet(redisCacheService.getPaymentCacheKey(refundReq.getOrderNo())
-                            , () -> userPaymentCoreService.refundPayment(refundReq.getOrderNo(),refundReq.getReason()),
+                            , () -> userPaymentCoreService.refundPayment(refundReq.getOrderNo(),refundReq.getReason(),refundReq.getOredrDetilIds()),
                             10L,TimeUnit.SECONDS);
             return HttpResponseResult.succeed();
         } catch (BizException e) {

+ 4 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/coupon/CouponInfoController.java

@@ -29,8 +29,10 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 优惠券信息
@@ -67,8 +69,9 @@ public class CouponInfoController extends BaseController {
         // 用户端的券类型 都包含全品类券
         if (request.getCouponCategory() != null) {
             List<CouponCategoryEnum> couponCategoryList = new ArrayList<>();
+            List<CouponCategoryEnum> collect = Arrays.stream(request.getCouponCategory().split(",")).map(CouponCategoryEnum::valueOf).collect(Collectors.toList());
             couponCategoryList.add(CouponCategoryEnum.UNIVERSAL);
-            couponCategoryList.add(request.getCouponCategory());
+            couponCategoryList.addAll(collect);
             request.setCouponCategory(null);
             request.setCouponCategoryList(couponCategoryList);
         }

+ 58 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/open/OpenSubjectController.java

@@ -0,0 +1,58 @@
+package com.yonge.cooleshow.student.controller.open;
+
+import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.queryInfo.SubjectQueryInfo;
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@RequestMapping("${app-config.url.student:}/open/subject")
+@Api(tags = "声部服务")
+@RestController
+public class OpenSubjectController extends BaseController {
+
+    @Autowired
+    private SubjectService subjectService;
+
+    @ApiOperation(value = "根据声部编号查询声部")
+    @GetMapping("/get/{id}")
+    public Object get(@ApiParam(value = "声部编号", required = true) @PathVariable("id") Long id) {
+        return succeed(subjectService.get(id));
+    }
+
+    @ApiOperation(value = "分页查询声部树状列表")
+    @PostMapping("/queryPageTree")
+    public HttpResponseResult<PageInfo<Subject>> queryPageTree(@RequestBody SubjectQueryInfo queryInfo) {
+        return succeed(subjectService.queryPageTree(queryInfo));
+    }
+
+    @ApiOperation(value = "分页查询声部列表")
+    @GetMapping("/queryPage")
+    public HttpResponseResult<PageInfo<Subject>> queryPage(SubjectQueryInfo queryInfo) {
+        PageInfo<Subject> pageInfo = subjectService.queryPage(queryInfo);
+
+        if (pageInfo.getRows().size() == 0) {
+            return succeed(pageInfo);
+        }
+
+        Map<Long, Subject> map =
+                subjectService.findBySubjectByIdList(pageInfo.getRows().stream().map(Subject::getParentSubjectId).collect(Collectors.toList())).stream()
+                .collect(Collectors.toMap(Subject::getId, t -> t));
+
+        pageInfo.getRows().forEach(row -> {
+            if (row.getParentSubjectId() != null && row.getParentSubjectId() > 0) {
+                row.setParentSubjectName(map.get(row.getParentSubjectId()).getName());
+            }
+        });
+        return succeed(pageInfo);
+    }
+}

+ 3 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/student/io/request/CouponInfoVO.java

@@ -45,8 +45,8 @@ public class CouponInfoVO {
         private String useState;
 
 
-        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
-        private CouponCategoryEnum couponCategory;
+        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:趣纠课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
+        private String couponCategory;
 
 
         // 可用品类
@@ -106,7 +106,7 @@ public class CouponInfoVO {
         private Long endTime;
 
 
-        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
+        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:趣纠课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
         private CouponCategoryEnum couponCategory;
 
     }

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/student/task/TaskController.java

@@ -70,7 +70,7 @@ public class TaskController extends BaseController {
     }
 
     /**
-     * @Description: 当日陪练课未对老师评价(每晚9点,已评价不发)
+     * @Description: 当日趣纠课未对老师评价(每晚9点,已评价不发)
      * @Author: cy
      * @Date: 2022/5/6
      */

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/student/vo/UserPaymentOrderVo.java

@@ -132,7 +132,7 @@ public class UserPaymentOrderVo {
         private String bizId;
 
         @NotNull(message = "订单类型不能为空")
-        @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
+        @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
         private OrderTypeEnum orderType;
 
         @ApiModelProperty("现价")

+ 9 - 35
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ActivityController.java

@@ -3,11 +3,10 @@ package com.yonge.cooleshow.teacher.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.UserRewardQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.ActivityUserRewardService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.CheckVo;
 import com.yonge.cooleshow.biz.dal.vo.activity.UserRewardWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -18,17 +17,9 @@ import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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;
 
 
@@ -36,23 +27,16 @@ import java.util.List;
 @RestController
 @RequestMapping("${app-config.url.teacher:}/activity")
 public class ActivityController extends BaseController {
-    private final static Logger log = LoggerFactory.getLogger(ActivityController.class);
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    @Autowired
+    @Resource
     private ActivityUserRewardService activityUserRewardService;
 
     @ApiOperation(value = "检查是否存在未领奖")
     @GetMapping("/checkReceiveReward")
     public HttpResponseResult<CheckVo> checkReceiveReward(){
-
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        Boolean b = activityUserRewardService.checkReceiveReward(user.getId(), ClientEnum.TEACHER);
+        Boolean b = activityUserRewardService.checkReceiveReward(sysUserService.getUserId(), ClientEnum.TEACHER);
         YesOrNoEnum check = b?YesOrNoEnum.YES:YesOrNoEnum.NO;
         CheckVo checkVo = new CheckVo();
         checkVo.setCheck(check);
@@ -64,14 +48,9 @@ public class ActivityController extends BaseController {
     @ApiOperation(value = "查看领奖列表")
     @PostMapping("/receiveRewardList")
     public HttpResponseResult<PageInfo<ActivityVo.ReceiveRewardList>> receiveRewardList(@RequestBody ActivityVo.ReceiveRewardQuery query){
-
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
         query.setClient(ClientEnum.TEACHER);
         query.setReceive(YesOrNoEnum.NO);
-        query.setUserId(user.getId());
+        query.setUserId(sysUserService.getUserId());
 
         IPage<UserRewardWrapper> iPage = activityUserRewardService.receiveRewardList(PageUtil.getPage(query), UserRewardQueryInfo.from(query.jsonString()));
 
@@ -86,12 +65,7 @@ public class ActivityController extends BaseController {
     @ApiOperation(value = "领取奖品")
     @PostMapping("/receiveReward/{receiveRewardId}")
     public HttpResponseResult<CheckVo> receiveReward(@PathVariable Long receiveRewardId){
-
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return status(activityUserRewardService.receiveReward(user.getId(), receiveRewardId));
+        return status(activityUserRewardService.receiveReward(sysUserService.getUserId(), receiveRewardId));
     }
 }
 

+ 24 - 43
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/CourseHomeworkController.java

@@ -1,8 +1,6 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkReviewDto;
 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSaveDto;
 import com.yonge.cooleshow.biz.dal.dto.CourseScheduleHomeworkSearch;
@@ -12,6 +10,7 @@ import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseHomeworkService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.CountVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
@@ -25,14 +24,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.apache.commons.collections.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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 javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
@@ -48,28 +42,24 @@ import java.util.List;
 @RequestMapping("${app-config.url.teacher:}/homework")
 public class CourseHomeworkController extends BaseController {
 
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    @Autowired
+    @Resource
     private CourseScheduleService courseScheduleService;
 
-    @Autowired
+    @Resource
     private CourseHomeworkService courseHomeworkService;
 
-    @Autowired
+    @Resource
     private ImGroupService imGroupService;
 
     @ApiOperation(value = "未布置的课后作业数量")
     @GetMapping(value="/count")
     public HttpResponseResult<CountVo> countTeacherNoDecorateHomework() {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
         HomeworkSearch homeworkSearch = new HomeworkSearch();
         // 默认查当前老师,陪练课 课程状态为完成, 没有学生课程记录
-        homeworkSearch.setTeacherId(sysUser.getId());
+        homeworkSearch.setTeacherId(sysUserService.getUserId());
         homeworkSearch.setCourseStatus(CourseScheduleEnum.COMPLETE);
         List<CourseScheduleEnum> list = new ArrayList<>();
         list.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
@@ -82,14 +72,13 @@ public class CourseHomeworkController extends BaseController {
         return succeed(countVo);
     }
 
-    @ApiOperation(value = "首页-我的课程-课程详情(陪练课)-课后作业信息详情",notes = "传入课程编号ID")
+    @ApiOperation(value = "首页-我的课程-课程详情(趣纠课)-课后作业信息详情",notes = "传入课程编号ID")
     @GetMapping(value = "/detail/{courseId}/{studentId}")
     public HttpResponseResult<CourseHomeworkDetailVo> detail(@ApiParam(value = "课程编号ID", required = true)
                                                                  @PathVariable("courseId") Long courseId,
                                                              @PathVariable("studentId") Long studentId) {
 
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        HttpResponseResult info = checkCourseSchedule(courseId,sysUser);
+        HttpResponseResult info = checkCourseSchedule(courseId,sysUserService.getUserId());
         if (info != null) return info;
         CourseHomeworkDetailVo detailVo = courseHomeworkService.getCourseHomeworkDetailByCourseId(courseId, studentId);
         if (detailVo != null) {
@@ -103,55 +92,47 @@ public class CourseHomeworkController extends BaseController {
     @ApiOperation(value = "首页-我的课程-课程详情(琴房)-课后作业列表",notes = "传入课程编号ID")
     @PostMapping(value = "/detail/list")
     public HttpResponseResult<CourseScheduleHomeworkVo> detail(@RequestBody @Valid CourseScheduleHomeworkSearch query) {
-
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        HttpResponseResult info = checkCourseSchedule(query.getCourseId(),sysUser);
+        HttpResponseResult info = checkCourseSchedule(query.getCourseId(),sysUserService.getUserId());
         if (info != null) return info;
         return succeed(courseHomeworkService.getCourseHomeworkDetailByCourseId(query));
     }
 
-    private HttpResponseResult checkCourseSchedule(Long courseId,SysUser sysUser) {
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-        if (!courseScheduleService.checkTeacherCourseSchedule(sysUser.getId(), courseId)) {
+    private HttpResponseResult checkCourseSchedule(Long courseId,Long userId) {
+        if (!courseScheduleService.checkTeacherCourseSchedule(userId, courseId)) {
             return failed("老师只能看自己的课程详情");
         }
         return null;
     }
 
-    @ApiOperation(value = "陪练课-布置作业", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @ApiOperation(value = "趣纠课-布置作业", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/decorate", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Boolean> decorateCourseHomework(@Valid @RequestBody CourseHomeworkSaveDto saveDto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        HttpResponseResult info = checkCourseSchedule(saveDto.getCourseScheduleId(),sysUser);
+        Long userId = sysUserService.getUserId();
+        HttpResponseResult info = checkCourseSchedule(saveDto.getCourseScheduleId(),userId);
         if (info != null) return info;
-        saveDto.setTeacherId(sysUser.getId());
+        saveDto.setTeacherId(userId);
         return succeed(courseHomeworkService.decorateCourseHomework(saveDto));
     }
 
-    @ApiOperation(value = "陪练课-作业点评", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @ApiOperation(value = "作业点评", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/review", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Boolean> reviewCourseHomework(@Valid @RequestBody CourseHomeworkReviewDto reviewDto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        HttpResponseResult info = checkCourseSchedule(reviewDto.getCourseScheduleId(),sysUser);
+        Long userId = sysUserService.getUserId();
+        HttpResponseResult info = checkCourseSchedule(reviewDto.getCourseScheduleId(),userId);
         if (info != null) return info;
-        reviewDto.setTeacherId(sysUser.getId());
+        reviewDto.setTeacherId(userId);
         return succeed(courseHomeworkService.reviewCourseHomework(reviewDto));
     }
 
     @ApiOperation(value = "课后作业-列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/list", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<PageInfo<CourseHomeworkVo>> list(@Valid @RequestBody HomeworkSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (query.getDecorate() == null) {
-            return failed("布置状态不能为空");
-        }
-        query.setTeacherId(sysUser.getId());
+        query.setTeacherId(sysUserService.getUserId());
         query.setCourseStatus(CourseScheduleEnum.COMPLETE);
         List<CourseScheduleEnum> list = new ArrayList<>();
         list.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
         list.add(CourseScheduleEnum.PRACTICE);
+        list.add(CourseScheduleEnum.VIP);
         query.setCourseType(list);
 
         IPage<CourseHomeworkVo> page = courseHomeworkService.selectPage(PageUtil.getPage(query), query);

+ 12 - 23
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/CourseRepliedController.java

@@ -1,12 +1,10 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
-import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseRepliedService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.CourseRepliedVo;
 import com.yonge.cooleshow.biz.dal.vo.MyRepliedVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -15,54 +13,45 @@ import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 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 javax.annotation.Resource;
+
 /**
  * @Author: cy
  * @Date: 2022/4/12
  */
-@Api(tags = "陪练课")
+@Api(tags = "趣纠课")
 @RestController
 @RequestMapping("${app-config.url.teacher:}/courseReplied")
 public class CourseRepliedController extends BaseController {
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     private CourseRepliedService repliedService;
 
-    @ApiOperation(value = "首页-我的课程-课程详情-评价陪练课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @ApiOperation(value = "首页-我的课程-课程详情-评价趣纠课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/replied", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> replied(@Validated @RequestBody CourseScheduleReplied replied) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-
-        replied.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
-        repliedService.replied(replied,sysUser);
+        repliedService.replied(replied,sysUserService.getUser());
         return succeed();
     }
 
-    @ApiOperation(value = "首页-我的课程-课程详情-查询陪练课评价")
+    @ApiOperation(value = "首页-我的课程-课程详情-查询趣纠课评价")
     @PostMapping(value = "/selectReplied")
     public HttpResponseResult<CourseRepliedVo> selectReplied(@Validated @RequestBody CourseScheduleReplied replied) {
-        replied.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
         return succeed(repliedService.selectReplied(replied));
     }
 
     @ApiOperation(value = "首页-我收到的评价")
     @PostMapping(value = "/myReplied")
     public HttpResponseResult<PageInfo<MyRepliedVo>> myReplied(@RequestBody MyCourseSearch search) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-        search.setTeacherId(sysUser.getId());
+        search.setTeacherId(sysUserService.getUserId());
+        search.setCourseType(null);
         IPage<MyRepliedVo> pages = repliedService.myReplied(PageUtil.getPage(search), search);
         return succeed(PageUtil.pageInfo(pages));
     }

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetCbsController.java

@@ -117,7 +117,7 @@ public class MusicSheetCbsController extends BaseController {
                 .eq(CourseCourseware::getClientType, ClientEnum.TEACHER)
                 .eq(CourseCourseware::getUserId, sysUser.getId())
                 .eq(CourseCourseware::getDelFlag, false).last("limit 1").one();
-        if (one == null) {
+        if (one != null) {
             musicSheetDetail.setCoursewareStatus(YesOrNoEnum.YES);
             musicSheetDetail.setCoursewareId(one.getId());
         }

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/SubjectController.java

@@ -50,7 +50,7 @@ public class SubjectController extends BaseController {
 	@ApiOperation(value = "获取声部")
 	@GetMapping("/subjectSelect")
     public HttpResponseResult<List<Subject>> subjectSelect(
-			@ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type){
+			@ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type){
 		
 		String userExtSubjectIds = null;
         

+ 36 - 116
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java

@@ -1,26 +1,17 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.TeacherDto;
-import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.entity.Teacher;
-import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
-import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
-import com.yonge.cooleshow.biz.dal.entity.TenantUnbindRecord;
+import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.service.SmsCodeService;
-import com.yonge.cooleshow.biz.dal.service.SubjectService;
-import com.yonge.cooleshow.biz.dal.service.SysUserService;
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
-import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
-import com.yonge.cooleshow.biz.dal.service.TenantUnbindRecordService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.MyFens;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherFreeTimeWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -35,19 +26,11 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.Arrays;
 import java.util.List;
@@ -57,46 +40,29 @@ import java.util.stream.Collectors;
 @RequestMapping("${app-config.url.teacher:}/teacher")
 @Api(value = "教师表", tags = "教师表")
 public class TeacherController extends BaseController {
-    @Autowired
+    @Resource
     private TeacherService teacherService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-
-    @Autowired
+    @Resource
     private SysUserService sysUserService;
-
-    @Autowired
+    @Resource
     private SmsCodeService smsCodeService;
-
-    @Autowired
+    @Resource
     private TenantUnbindRecordService tenantUnbindRecordService;
-
-    @Autowired
+    @Resource
     private TenantInfoService tenantInfoService;
-
-    @Autowired
+    @Resource
     private SubjectService subjectService;
 
     @ApiOperation(value = "我的-查询教师基本信息")
     @GetMapping("/queryUserInfo")
     public HttpResponseResult<TeacherHomeVo> queryUserInfo() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return teacherService.queryUserInfo(user.getId());
+        return teacherService.queryUserInfo(sysUserService.getUserId());
     }
 
     @ApiOperation(value = "设置系统默认客服")
     @GetMapping("/updateUserCustomerService")
     public HttpResponseResult<String> updateUserCustomerService() {
-
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        return succeed(teacherService.updateUserCustomerService(user.getId()));
+        return succeed(teacherService.updateUserCustomerService(sysUserService.getUserId()));
     }
 
 
@@ -105,8 +71,7 @@ public class TeacherController extends BaseController {
      */
     @GetMapping("/detail/{id}")
     public HttpResponseResult<TeacherVo> detail(@PathVariable("id") Long userId) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        Teacher teacher = teacherService.getById(user.getId());
+        Teacher teacher = teacherService.getById(sysUserService.getUserId());
         if (Boolean.FALSE.equals(teacher.getCustomerService())) {
             throw new BizException("权限不足");
         }
@@ -123,28 +88,20 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "开通直播")
     @GetMapping("/openLive")
     public HttpResponseResult<Boolean> openLive() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return teacherService.openLive(user.getId());
+        return teacherService.openLive(sysUserService.getUserId());
     }
 
     @ApiOperation(value = "获取老师可授课声部列表")
     @PostMapping("/querySubject")
     public HttpResponseResult<List<Subject>> querySubject() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        List<Subject> subjects = teacherService.querySubject(user.getId());
+        List<Subject> subjects = teacherService.querySubject(sysUserService.getUserId());
         subjectService.convertSubject(subjects);
         return succeed(subjects);
     }
 
     @ApiOperation(value = "设置声部")
     @GetMapping("/setSubject")
-    public HttpResponseResult setSubject(@ApiParam(value = "声部主键集合", required = true) @RequestParam("subjectIds") String subjectIds) {
+    public HttpResponseResult<Object> setSubject(@ApiParam(value = "声部主键集合", required = true) @RequestParam("subjectIds") String subjectIds) {
         if (StringUtil.isEmpty(subjectIds)) {
             return failed("参数不能为空");
         }
@@ -152,23 +109,14 @@ public class TeacherController extends BaseController {
         if (subjectIds.split(",").length > 5) {
             return failed("最多选择5个乐器");
         }
-
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return status(teacherService.setSubject(user.getId(), subjectIds) > 0);
+        return status(teacherService.setSubject(sysUserService.getUserId(), subjectIds) > 0);
     }
 
     @ApiOperation(value = "获取声部搜索下拉框")
     @PostMapping("/querySubjectItem")
     public HttpResponseResult<List<Subject>> querySubjectItem(
-            @ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        List<Subject> subjects = teacherService.querySubjectItem(user.getId(), type);
+            @ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
+        List<Subject> subjects = teacherService.querySubjectItem(sysUserService.getUserId(), type);
         subjectService.convertSubject(subjects);
         return succeed(subjects);
     }
@@ -176,36 +124,23 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "我的-个人风采")
     @GetMapping("/queryTeacherStyle")
     public HttpResponseResult<TeacherVo> queryTeacherStyle() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return HttpResponseResult.succeed(teacherService.detail(user.getId()));
+        return HttpResponseResult.succeed(teacherService.detail(sysUserService.getUserId()));
     }
 
     @ApiOperation(value = "我的-个人风采保存")
     @PostMapping("/saveTeacherStyle")
     public HttpResponseResult<TeacherVo> saveTeacherStyle(@RequestBody TeacherDto teacherDto) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
         if (StringUtil.isEmpty(teacherDto.getSubjectId())) {
             return failed("请选择乐器");
         }
-        teacherDto.setUserId(user.getId());
+        teacherDto.setUserId(sysUserService.getUserId());
         return teacherService.saveTeacherStyle(teacherDto);
     }
 
     @ApiOperation(value = "我的粉丝")
     @PostMapping(value = "/queryMyFans")
     public HttpResponseResult<PageInfo<MyFens>> queryMyFans(@RequestBody QueryInfo query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        IPage<MyFens> pages = teacherService.queryMyFans(PageUtil.getPage(query), sysUser.getId());
+        IPage<MyFens> pages = teacherService.queryMyFans(PageUtil.getPage(query), sysUserService.getUserId());
         return succeed(PageUtil.pageInfo(pages));
     }
 
@@ -213,11 +148,7 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "移除粉丝")
     @PostMapping(value = "/delFans/{userId}")
     public HttpResponseResult<Void> delFans(@PathVariable("userId") Long userId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        teacherService.delFans(userId, sysUser.getId());
+        teacherService.delFans(userId, sysUserService.getUserId());
         return succeed();
     }
 
@@ -228,15 +159,11 @@ public class TeacherController extends BaseController {
     @PostMapping("/defaultSubject")
     @ApiOperation(value = "设置老师默认查询声部")
     public HttpResponseResult defaultSubject(@RequestParam(required = false) Long subjectId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
         if (subjectId == null) {
             return succeed();
         }
         Teacher teacher = new Teacher();
-        teacher.setUserId(sysUser.getId());
+        teacher.setUserId(sysUserService.getUserId());
         teacher.setDefaultSubject(subjectId);
         return succeed(teacherService.updateById(teacher));
     }
@@ -245,11 +172,7 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "实名认证", notes = "传入realNameAuthDto")
     @ResponseBody
     public HttpResponseResult<IdcardInfoExtractor> realNameAuth(@Valid @RequestBody RealnameAuthReq realNameAuthDto) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        IdcardInfoExtractor idcardInfoExtractor = sysUserService.updateUserCard(realNameAuthDto, user,
+        IdcardInfoExtractor idcardInfoExtractor = sysUserService.updateUserCard(realNameAuthDto, sysUserService.getUser(),
                 ClientEnum.TEACHER);
         return succeed(idcardInfoExtractor);
     }
@@ -257,10 +180,7 @@ public class TeacherController extends BaseController {
     @PostMapping("/unbindTenant")
     @ApiOperation(value = "解绑机构申请")
     public HttpResponseResult<Boolean> unbindTenant(@Validated @RequestBody TeacherWrapper.UnbindTenant unbindTenant) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
+        SysUser user = sysUserService.getUser();
         boolean validCode = smsCodeService.verifyValidCode(user.getPhone(), unbindTenant.getCode(), "");
         if (!validCode) {
             return failed("验证码错误");
@@ -323,10 +243,7 @@ public class TeacherController extends BaseController {
     @PostMapping("/unbindTenantCancel")
     @ApiOperation(value = "解绑机构申请撤销")
     public HttpResponseResult<Boolean> unbindTenantCancel() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
+        SysUser user = sysUserService.getUser();
         boolean update = tenantUnbindRecordService.lambdaUpdate()
                 .eq(TenantUnbindRecord::getUserId, user.getId())
                 .eq(TenantUnbindRecord::getTenantId, user.getTenantId())
@@ -343,11 +260,7 @@ public class TeacherController extends BaseController {
     @GetMapping("/unbindTenantDetail")
     @ApiOperation(value = "解绑机构申请记录")
     public HttpResponseResult<TenantUnbindRecord> unbindTenantDetail() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
+        SysUser user = sysUserService.getUser();
         TenantUnbindRecord one = tenantUnbindRecordService.lambdaQuery()
                 .eq(TenantUnbindRecord::getUserId, user.getId())
                 .eq(TenantUnbindRecord::getTenantId, user.getTenantId())
@@ -357,4 +270,11 @@ public class TeacherController extends BaseController {
         return succeed(one);
 
     }
+
+    //获取老师可排课时间段
+    @ApiOperation(value = "获取老师可排课时间段")
+    @GetMapping("/queryTeacherTime")
+    public HttpResponseResult<TeacherFreeTimeWrapper.TeacherFreeConfig> queryTeacherTime() {
+        return succeed(teacherService.queryTeacherTime());
+    }
 }

+ 50 - 25
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java

@@ -1,35 +1,35 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 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.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
+import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
-import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
+import io.swagger.annotations.*;
 import org.apache.commons.collections.MapUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-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.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
@@ -45,15 +45,13 @@ import java.util.Optional;
 @RestController
 @RequestMapping("${app-config.url.teacher:}/courseGroup")
 public class TeacherCourseGroupController extends BaseController {
-    /**
-     * 服务对象
-     */
-    @Autowired
+    @Resource
     private CourseGroupService courseGroupService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
 
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+
+    @Resource
     private AppVersionInfoService appVersionInfoService;
     @ApiOperation("直播课详情")
     @GetMapping("/queryLiveCourseInfo")
@@ -79,7 +77,7 @@ public class TeacherCourseGroupController extends BaseController {
         Boolean myself = MapUtils.getBoolean(param,"myself");
         if (myself == null || myself) {
             Long teacherId = WrapperUtil.toLong(param, "teacherId");
-            teacherId = Optional.ofNullable(teacherId).orElseGet(() -> getSysUser().getId());
+            teacherId = Optional.ofNullable(teacherId).orElseGet(() -> sysUserService.getUserId());
             param.put("teacherId", teacherId);
         } else {
             YesOrNoEnum auditVersion = YesOrNoEnum.NO;
@@ -144,12 +142,39 @@ public class TeacherCourseGroupController extends BaseController {
         return succeed(courseGroupService.getLiveLockTimeCache(teacherId).get(teacherId));
     }
 
-    private SysUser getSysUser() {
-        return Optional.ofNullable(sysUserFeignService.queryUserInfo())
-                .orElseThrow(() -> new BizException("用户不存在"));
+    @ApiOperation("老师端我的课程组")
+    @PostMapping("/myCourseGroup")
+    public HttpResponseResult<PageInfo<CourseGroupWrapper.TeacherCourseGroupDto>> myCourseGroup(@RequestBody CourseGroupWrapper.TeacherCourseGroupQuery query) {
+        query.setTeacherId(sysUserService.getUserId());
+        IPage<CourseGroupWrapper.TeacherCourseGroupDto> pages = courseGroupService.teacherCourseGroup(PageUtil.getPage(query), query);
+        return succeed(PageUtil.pageInfo(pages));
     }
 
+    @ApiOperation("老师端获取单个课程组")
+    @PostMapping("/getCourseGroup")
+    public HttpResponseResult<CourseGroupWrapper.TeacherCourseGroupDto> getCourseGroup(Long courseGroupId) {
+        CourseGroup courseGroup = courseGroupService.getById(courseGroupId);
+        if (courseGroup == null) {
+            return failed("课程组不存在");
+        }
+        CourseGroupWrapper.TeacherCourseGroupQuery query = new CourseGroupWrapper.TeacherCourseGroupQuery();
+        query.setCourseGroupId(courseGroupId);
+        query.setCourseType(courseGroup.getType());
+        IPage<CourseGroupWrapper.TeacherCourseGroupDto> pages = courseGroupService.teacherCourseGroup(PageUtil.getPage(query), query);
+        return succeed(pages.getRecords().get(0));
+    }
 
+    @ApiOperation("获取课程组关联的学员")
+    @PostMapping("/queryStudentByGroupId")
+    public HttpResponseResult<List<CourseGroupWrapper.CourseStudentVo>> queryStudentByGroupId(Long groupId) {
+        return succeed(courseGroupService.queryStudentByGroupId(groupId));
+    }
 
+    @ApiOperation("修改课程规划")
+    @PostMapping("/updateCoursePlan")
+    public HttpResponseResult<Object> updateCoursePlan(Long groupId, String coursePlan) {
+        courseGroupService.updateCoursePlan(groupId, coursePlan);
+        return succeed();
+    }
 }
 

+ 33 - 100
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseScheduleController.java

@@ -1,20 +1,12 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCalendarEntity;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.HolidaysFestivalsService;
-import com.yonge.cooleshow.biz.dal.vo.ArrangeCourseVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseAdjustVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseScheduleRecordVo;
-import com.yonge.cooleshow.biz.dal.vo.CourseStudentVo;
-import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
-import com.yonge.cooleshow.biz.dal.vo.PianoRoomTimeVo;
-import com.yonge.cooleshow.biz.dal.vo.StudentHomePage;
-import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseScheduleWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -25,16 +17,10 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-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.RequestParam;
-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;
 import java.util.Objects;
@@ -53,11 +39,11 @@ public class TeacherCourseScheduleController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private CourseScheduleService courseScheduleService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     private HolidaysFestivalsService holidaysFestivalsService;
 
     @ApiImplicitParams({
@@ -93,14 +79,14 @@ public class TeacherCourseScheduleController extends BaseController {
             @ApiImplicitParam(name = "month", dataType = "Integer", value = "月"),
             @ApiImplicitParam(name = "day", dataType = "Integer", value = "日"),
     })
-    @ApiOperation("陪练课日历-用于学生购买指定老师陪练课")
+    @ApiOperation("趣纠课日历-用于学生购买指定老师趣纠课")
     @PostMapping("/createPracticeCourseCalendar")
     public HttpResponseResult<List<CourseCalendarEntity>> generatePracticeCourseCalender(@RequestBody Map<String, Object> param) {
         return succeed(courseScheduleService.createPracticeCourseCalender(param));
     }
 
-    @ApiOperation(value = "陪练课查询",
-            notes = "老师端-首页-我的课程-陪练课\n" +
+    @ApiOperation(value = "趣纠课查询",
+            notes = "老师端-首页-我的课程-趣纠课\n" +
                     "search:{\"classMonth\":\"2022-03\",\"status\":\"COMPLETE\",\"subjectId\":1}\n" +
                     "老师端-首页-课后评价\n" +
                     "search:{\"classMonth\":\"2022-03\",\"replied\":0,\"studentName\":\"测试王\"}\n" +
@@ -109,15 +95,12 @@ public class TeacherCourseScheduleController extends BaseController {
                     "老师端-课表\n" +
                     "search:{\"classDate\":\"2022-03-27\"}\n" +
                     "     search:{\"classMonth\":\"2022-03\"}\n" +
-                    "老师端-课表-陪练课\n" +
+                    "老师端-课表-趣纠课\n" +
                     "     search:{\"classDate\":\"2022-03-27\"}")
     @PostMapping("/queryTeacherPracticeCourse")
     public HttpResponseResult<PageInfo<MyCourseVo>> queryTeacherPracticeCourse(@RequestBody MyCourseSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        search.setTeacherId(user.getId());
+        search.setTeacherId(sysUserService.getUserId());
+        search.setCourseType("VIP,PRACTICE");
         IPage<MyCourseVo> pages = courseScheduleService.queryTeacherPracticeCourse(PageUtil.getPage(search), search);
         return succeed(PageUtil.pageInfo(pages));
     }
@@ -125,44 +108,28 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("老师端-课表-日历")
     @PostMapping("/queryCourseSchedule")
     public HttpResponseResult<Set<String>> queryCourseSchedule(@RequestBody MyCourseSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        search.setTeacherId(user.getId());
+        search.setTeacherId(sysUserService.getUserId());
         return succeed(courseScheduleService.queryCourseSchedule(search));
     }
 
     @ApiOperation(value = "老师端-课表-日历-用户", notes = "search:{\"classDate\":\"2022-03-27\"}")
     @PostMapping("/queryCourseUser")
     public HttpResponseResult<Map<String, Object>> queryCourseUser(@RequestBody MyCourseSearch search) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        search.setTeacherId(user.getId());
+        search.setTeacherId(sysUserService.getUserId());
         return succeed(courseScheduleService.queryCourseUser(search));
     }
 
     @ApiOperation(value = "老师端-课表-日历-调课")
     @PostMapping("/courseAdjust")
     public HttpResponseResult<Object> courseAdjust(@Validated @RequestBody CourseAdjustVo adjustVo) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        courseScheduleService.courseAdjust(adjustVo, user.getId());
+        courseScheduleService.courseAdjust(adjustVo, sysUserService.getUserId());
         return succeed();
     }
 
     @ApiOperation("老师-首页-最近课程")
     @GetMapping("/queryLiveAndVideo")
     public HttpResponseResult<StudentHomePage> queryLiveAndVideo() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return succeed(courseScheduleService.queryLiveAndVideo(null, user.getId(), null));
+        return succeed(courseScheduleService.queryLiveAndVideo(null, sysUserService.getUserId(), null));
     }
 
     @ApiOperation("老师端-查询房间配置")
@@ -185,11 +152,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("查询琴房剩余时长、冻结时长、统计学员人数")
     @GetMapping("/selectRemainTime")
     public HttpResponseResult<PianoRoomTimeVo> selectRemainTime() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return succeed(courseScheduleService.selectRemainTime(user.getId()));
+        return succeed(courseScheduleService.selectRemainTime(sysUserService.getUserId()));
     }
 
     @ApiImplicitParams({
@@ -200,33 +163,21 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("我的学员&课内学员")
     @PostMapping("/selectStudent")
     public HttpResponseResult<PageInfo<CourseStudentVo>> selectStudent(@RequestBody Map<String, Object> param) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        param.put("teacherId", user.getId());
+        param.put("teacherId", sysUserService.getUserId());
         return succeed(courseScheduleService.selectStudent(param));
     }
 
     @ApiOperation("排课")
     @PostMapping("/arrangeCourse")
     public HttpResponseResult<Object> arrangeCourse(@RequestBody ArrangeCourseVo arrangeCourseVo) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        String message = courseScheduleService.arrangeCourse(arrangeCourseVo, user.getId());
+        String message = courseScheduleService.arrangeCourse(arrangeCourseVo, sysUserService.getUserId());
         return succeed(message);
     }
 
     @ApiOperation("根据月份查询消耗时长")
     @GetMapping("/selectConsumeTime")
     public HttpResponseResult<Object> selectConsumeTime(String month) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return succeed(courseScheduleService.selectConsumeTime(month, user.getId()));
+        return succeed(courseScheduleService.selectConsumeTime(month, sysUserService.getUserId()));
     }
 
     @ApiImplicitParams({
@@ -237,11 +188,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("琴房课程列表")
     @PostMapping("/selectCourseList")
     public HttpResponseResult<PageInfo<CourseScheduleRecordVo>> selectCourseList(@RequestBody Map<String, Object> param) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        param.put("teacherId", user.getId());
+        param.put("teacherId", sysUserService.getUserId());
         return succeed(courseScheduleService.selectCourseList(param));
     }
 
@@ -253,11 +200,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("消耗时长列表")
     @PostMapping("/selectConsumeTimeList")
     public HttpResponseResult<PageInfo<CourseScheduleRecordVo>> selectConsumeTimeList(@RequestBody Map<String, Object> param) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        param.put("teacherId", user.getId());
+        param.put("teacherId", sysUserService.getUserId());
         return succeed(courseScheduleService.selectConsumeTimeList(param));
     }
 
@@ -267,11 +210,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("删除课程")
     @PostMapping("/deleteCourse")
     public HttpResponseResult<Object> deleteCourse(@RequestBody Map<String, Object> param) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        param.put("teacherId", user.getId());
+        param.put("teacherId", sysUserService.getUserId());
         courseScheduleService.deleteCourse(param);
         return succeed();
     }
@@ -284,11 +223,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("调整上课时间")
     @PostMapping("/updateCourseTime")
     public HttpResponseResult<Object> updateCourseTime(@RequestBody Map<String, Object> param) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        param.put("teacherId", user.getId());
+        param.put("teacherId", sysUserService.getUserId());
         courseScheduleService.updateCourseTime(param);
         return succeed();
     }
@@ -300,11 +235,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("调整上课学员")
     @PostMapping("/updateCourseStudent")
     public HttpResponseResult<Object> updateCourseStudent(@RequestBody Map<String, Object> param) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        param.put("teacherId", user.getId());
+        param.put("teacherId", sysUserService.getUserId());
         courseScheduleService.updateCourseStudent(param);
         return succeed();
     }
@@ -312,10 +243,6 @@ public class TeacherCourseScheduleController extends BaseController {
     @ApiOperation("查询节假日")
     @GetMapping("/selectHoliday")
     public HttpResponseResult<Object> selectHoliday(Integer year) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
         return succeed(holidaysFestivalsService.queryByYear(year));
     }
 
@@ -330,5 +257,11 @@ public class TeacherCourseScheduleController extends BaseController {
 
         return succeed(courseScheduleService.getLiveCourseScheduleTime(roomUid));
     }
+
+    @ApiOperation(value = "获取课程列表")
+    @PostMapping("/list")
+    public HttpResponseResult<List<CourseScheduleWrapper.MyCourseVo>> queryList(@RequestBody CourseScheduleWrapper.CourseQuery query){
+        return succeed(courseScheduleService.queryList(query));
+    }
 }
 

+ 13 - 31
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherFreeTimeController.java

@@ -1,22 +1,15 @@
 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.dto.PracticeTimesSetting;
 import com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TeacherFreeTimeService;
-import com.yonge.cooleshow.biz.dal.vo.TeacherFreeTimeVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-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 javax.validation.Valid;
 
 /**
@@ -29,35 +22,24 @@ import javax.validation.Valid;
 @RestController
 @RequestMapping("${app-config.url.teacher:}/teacherFreeTime")
 public class TeacherFreeTimeController extends BaseController {
-    /**
-     * 服务对象
-     */
-    @Autowired
+    @Resource
     private TeacherFreeTimeService teacherFreeTimeService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    @ApiOperation(value = "新增、修改老师陪练课设置")
+    @ApiOperation(value = "新增、修改老师排课时间")
     @PostMapping("/upSet")
     public HttpResponseResult upSet(@Valid @RequestBody TeacherFreeTime teacherFreeTime){
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        teacherFreeTime.setTeacherId(user.getId());
+        teacherFreeTime.setTeacherId(sysUserService.getUserId());
         teacherFreeTimeService.upSet(teacherFreeTime);
         return succeed();
     }
 
-    @ApiOperation(value = "获取老师陪练课设置")
-    @PostMapping("/getDetail")
-    public HttpResponseResult<TeacherFreeTimeVo> getDetail(@RequestBody PracticeTimesSetting practiceTimesSetting){
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        practiceTimesSetting.setUserId(user.getId());
-        return succeed(teacherFreeTimeService.getDetail(practiceTimesSetting));
+    @ApiOperation(value = "获取老师排课时间")
+    @GetMapping("/get")
+    public HttpResponseResult<TeacherFreeTime> get(){
+        TeacherFreeTime freeTime = teacherFreeTimeService.lambdaQuery().eq(TeacherFreeTime::getTeacherId, sysUserService.getUserId()).one();
+        return succeed(freeTime);
     }
 }
 

+ 88 - 27
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherHomeController.java

@@ -1,22 +1,21 @@
 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.service.CourseScheduleService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
-import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.PianoRoomTimeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeStatisticalVo;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-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.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Description 老师课后作业相关接口
@@ -29,47 +28,45 @@ import java.math.BigDecimal;
 @RequestMapping("${app-config.url.teacher:}/home")
 public class TeacherHomeController extends BaseController {
 
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     private CourseScheduleService courseScheduleService;
-
-    @Autowired
+    @Resource
     private MusicSheetService musicSheetService;
-
-    @Autowired
+    @Resource
     private UserAccountRecordService userAccountRecordService;
+    @Resource
+    private SysMusicCompareRecordService sysMusicCompareRecordService;
+    @Resource
+    private HomeService homeService;
 
     @ApiOperation(value = "首页统计数据")
     @GetMapping(value="/count")
     public HttpResponseResult<TeacherHomeStatisticalVo> countTeacherHome() {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
+        Long userId = sysUserService.getUserId();
 
         // 我的课程
-        Integer courseSechedule  = courseScheduleService.getWeekNotStart(sysUser.getId());
+        Integer courseSechedule  = courseScheduleService.getWeekNotStart(userId);
 
         // 课后作业
-        Integer courseHomework = courseScheduleService.getHomeworkNotDecorate(sysUser.getId());
+        Integer courseHomework = courseScheduleService.getHomeworkNotDecorate(userId);
 
         // 课后评价
-        Integer courseScheduleReplied = courseScheduleService.getNotRepliedCourseSchedule(sysUser.getId());
+        Integer courseScheduleReplied = courseScheduleService.getNotRepliedCourseSchedule(userId);
 
         // 我的乐谱
-        Integer musicSheet = musicSheetService.getTeacherMusicSheetCount(sysUser.getId());
+        Integer musicSheet = musicSheetService.getTeacherMusicSheetCount(userId);
 
         // 我收到的评价
-        Integer studentReplied = courseScheduleService.getWeekStudentRepliedCourseSchedule(sysUser.getId());
+        Integer studentReplied = courseScheduleService.getWeekStudentRepliedCourseSchedule(userId);
 
         // 我的收入
-        BigDecimal decimal = userAccountRecordService.getMonthDecimal(sysUser.getId());
+        BigDecimal decimal = userAccountRecordService.getMonthDecimal(userId);
 
 
         // 琴房剩余时长
-        PianoRoomTimeVo pianoRoomTimeVo = courseScheduleService.selectRemainTime(sysUser.getId());
+        PianoRoomTimeVo pianoRoomTimeVo = courseScheduleService.selectRemainTime(userId);
 
         TeacherHomeStatisticalVo teacherHomeStatisticalVo = new TeacherHomeStatisticalVo();
         teacherHomeStatisticalVo.setCourseHomework(courseHomework);
@@ -82,6 +79,70 @@ public class TeacherHomeController extends BaseController {
         return succeed(teacherHomeStatisticalVo);
     }
 
+    @ApiOperation("首页练习数据统计")
+    @PostMapping(value = "/practice")
+    public HttpResponseResult<TeacherIndexWrapper.TeacherPracticeHome> practice(@RequestBody TeacherIndexWrapper.SummarySearch summarySearch) {
+        summarySearch.setTeacherId(sysUserService.getUserId());
+        return succeed(homeService.getTeacherPracticeHome(summarySearch));
+    }
+
+    @ApiOperation("首页练习数据学员列表")
+    @PostMapping(value = "/studentPractice")
+    public HttpResponseResult<List<TeacherIndexWrapper.StudentPracticeSummaryDto>> studentPractice(@RequestBody TeacherIndexWrapper.StudentSearch studentSearch) {
+        studentSearch.setTeacherId(sysUserService.getUserId());
+        return succeed(homeService.getTeacherHomeStudent(studentSearch));
+    }
+
+    @ApiOperation(value = "课程统计")
+    @PostMapping("/totalCourse")
+    public HttpResponseResult<List<TeacherHomeWrapper.TeacherTotalCourse>> totalCourse(@RequestBody TeacherHomeWrapper.TeacherTotalCourseQuery query) {
+        SysUser sysUser = sysUserService.getUser();
+        if (sysUser == null  || sysUser.getId() == null) {
+
+            return failed("用户信息获取失败");
+        }
+        query.setTeacherId(sysUser.getId());
+
+        return succeed(homeService.teacherTotalCourse(query));
+    }
+
 
+    @ApiOperation(value = "我的乐谱统计")
+    @GetMapping("/musicSheetTotal")
+    public HttpResponseResult<TeacherHomeWrapper.MusicSheetTotal> musicSheetTotal() {
+        SysUser sysUser = sysUserService.getUser();
+        if (sysUser == null  || sysUser.getId() == null) {
+
+            return failed("用户信息获取失败");
+        }
+
+        return succeed(homeService.musicSheetTotal(sysUser.getId()));
+    }
+
+    @ApiOperation(value = "我的乐谱分页")
+    @PostMapping("/musicSheetPage")
+    public HttpResponseResult<List<TeacherHomeWrapper.MusicSheetTotal>> musicSheetPage(@RequestBody TeacherHomeWrapper.MusicSheetQuery query) {
+        SysUser sysUser = sysUserService.getUser();
+        if (sysUser == null  || sysUser.getId() == null) {
+
+            return failed("用户信息获取失败");
+        }
+        query.setTeacherId(sysUser.getId());
+
+        return succeed(homeService.musicSheetPage(query));
+    }
+
+
+
+    @ApiOperation(value = "课程曝光/购买")
+    @PostMapping("/courseExposure")
+    public HttpResponseResult<Map<String, List<TeacherIndexWrapper.CourseExposureTotal>>> courseExposure(@RequestBody TeacherIndexWrapper.CourseExposureSearch query) {
+        //获取购买的统计数据
+        query.setTeacherId(sysUserService.getUserId());
+        Map<String, List<TeacherIndexWrapper.CourseExposureTotal>> stringListMap = homeService.courseBuyTotal(query);
+        //获取曝光的统计数据
+        stringListMap.putAll(homeService.courseExposureTotal(query));
+        return succeed(stringListMap);
+    }
 
 }

+ 107 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherSubjectPriceController.java

@@ -0,0 +1,107 @@
+package com.yonge.cooleshow.teacher.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.service.TeacherSubjectPriceService;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherSubjectPriceWrapper;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.exception.BizException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+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 javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+@Api(tags = "老师课程价格配置")
+@RestController
+@RequestMapping("${app-config.url.teacher:}/teacherSubjectPrice")
+public class TeacherSubjectPriceController extends BaseController {
+    @Resource
+    private TeacherSubjectPriceService teacherSubjectPriceService;
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
+    private SubjectService subjectService;
+
+    @ApiOperation(value = "新增、修改老师课程价格配置")
+    @PostMapping("/saveOrUpdate")
+    public HttpResponseResult saveOrUpdate(@RequestBody List<TeacherSubjectPrice> teacherSubjectPriceList){
+        if (CollectionUtils.isEmpty(teacherSubjectPriceList)) {
+            throw new BizException("参数不能为空");
+        }
+        Long userId = sysUserService.getUserId();
+        for (TeacherSubjectPrice e : teacherSubjectPriceList) {
+            e.setTeacherId(userId);
+            e.setId(null);
+        }
+        teacherSubjectPriceService.upSet(teacherSubjectPriceList);
+        return succeed();
+    }
+
+    @ApiOperation(value = "删除老师课程价格配置")
+    @PostMapping("/delete")
+    public HttpResponseResult delete(Long id){
+        teacherSubjectPriceService.lambdaUpdate()
+                .eq(TeacherSubjectPrice::getTeacherId, sysUserService.getUserId())
+                .eq(TeacherSubjectPrice::getId, id).remove();
+        return succeed();
+    }
+
+    @ApiOperation(value = "获取老师课程价格配置")
+    @PostMapping("/detail")
+    public HttpResponseResult<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto> detail(@RequestBody TeacherSubjectPriceWrapper.PriceSearch query){
+        List<TeacherSubjectPrice> list = teacherSubjectPriceService.lambdaQuery()
+                .eq(TeacherSubjectPrice::getTeacherId, sysUserService.getUserId())
+                .eq(query.getSubjectId() != null, TeacherSubjectPrice::getSubjectId, query.getSubjectId())
+                .eq(StringUtils.isNotEmpty(query.getCourseType()), TeacherSubjectPrice::getCourseType, query.getCourseType())
+                .list();
+        if(CollectionUtils.isNotEmpty(list)){
+            //获取所有的声部、声部名称
+            TeacherSubjectPriceWrapper.TeacherSubjectPriceDto dto = new TeacherSubjectPriceWrapper.TeacherSubjectPriceDto();
+            String subjectIds = list.stream().map(e->e.getSubjectId().toString()).distinct().collect(Collectors.joining(","));
+            String subjectNames = list.stream().map(TeacherSubjectPrice::getSubjectName).distinct().collect(Collectors.joining(","));
+            dto.setSubjectIds(subjectIds);
+            dto.setSubjectName(subjectNames);
+            dto.setTeacherId(list.get(0).getTeacherId());
+            dto.setCourseType(list.get(0).getCourseType());
+            dto.setFreeMinutes(list.get(0).getFreeMinutes());
+            dto.setCourseMinutes(list.get(0).getCourseMinutes());
+            dto.setSubjectPrice(list.get(0).getSubjectPrice());
+            return succeed(dto);
+        }
+        return succeed();
+    }
+
+    @ApiOperation(value = "获取老师课程价格配置")
+    @PostMapping("/list")
+    public HttpResponseResult<List<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto>> list(@RequestBody TeacherSubjectPriceWrapper.PriceSearch query){
+        List<TeacherSubjectPrice> list = teacherSubjectPriceService.lambdaQuery()
+                .eq(TeacherSubjectPrice::getTeacherId, sysUserService.getUserId())
+                .eq(query.getSubjectId() != null, TeacherSubjectPrice::getSubjectId, query.getSubjectId())
+                .eq(StringUtils.isNotEmpty(query.getCourseType()), TeacherSubjectPrice::getCourseType, query.getCourseType())
+                .list();
+        if(CollectionUtils.isNotEmpty(list)){
+            List<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto> results = JSONObject.parseArray(JSONObject.toJSONString(list), TeacherSubjectPriceWrapper.TeacherSubjectPriceDto.class);
+            List<Long> subjectIds = list.stream().map(TeacherSubjectPrice::getSubjectId).distinct().collect(Collectors.toList());
+            List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
+            Map<Long, String> subjectMap = subjectList.stream().collect(Collectors.toMap(Subject::getId, Subject::getImg));
+            results.forEach(e->e.setSubjectPic(subjectMap.get(e.getSubjectId())));
+            return succeed(results);
+        }
+        return succeed();
+    }
+}
+

+ 2 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/UserOrderController.java

@@ -144,12 +144,12 @@ public class UserOrderController extends BaseController {
     @ApiImplicitParams({
         @ApiImplicitParam(
             name = "goodType",
-            value = "订单类型:  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名",
+            value = "订单类型:  PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名",
             paramType = "query", dataType = "String", required = true
         ),
         @ApiImplicitParam(
             name = "bizId",
-            value = "业务id 直播课、陪练课购买为课程组id;陪练课为老师id;单曲点播传曲子id",
+            value = "业务id 直播课、趣纠课购买为课程组id;趣纠课为老师id;单曲点播传曲子id",
             paramType = "query", dataType = "Long"
         )
     })

+ 6 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/coupon/CouponInfoController.java

@@ -29,8 +29,10 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 优惠券信息
@@ -63,11 +65,14 @@ public class CouponInfoController extends BaseController {
         request.setUserId(user.getId());
         request.setClientType(ClientEnum.TEACHER.getCode());
 
+
+
         // 用户端的券类型 都包含全品类券
         if (request.getCouponCategory() != null) {
             List<CouponCategoryEnum> couponCategoryList = new ArrayList<>();
+            List<CouponCategoryEnum> collect = Arrays.stream(request.getCouponCategory().split(",")).map(CouponCategoryEnum::valueOf).collect(Collectors.toList());
             couponCategoryList.add(CouponCategoryEnum.UNIVERSAL);
-            couponCategoryList.add(request.getCouponCategory());
+            couponCategoryList.addAll(collect);
             request.setCouponCategory(null);
             request.setCouponCategoryList(couponCategoryList);
         }

+ 3 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/io/request/CouponInfoVO.java

@@ -44,8 +44,8 @@ public class CouponInfoVO {
         private String useState;
 
 
-        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
-        private CouponCategoryEnum couponCategory;
+        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:趣纠课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
+        private String couponCategory;
 
         @ApiModelProperty("订单金额")
         private BigDecimal amount;
@@ -113,7 +113,7 @@ public class CouponInfoVO {
         private Integer usable;
 
 
-        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
+        @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:趣纠课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
         private CouponCategoryEnum couponCategory;
 
     }

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/vo/UserPaymentOrderVo.java

@@ -131,7 +131,7 @@ public class UserPaymentOrderVo {
         private String bizId;
 
         @NotNull(message = "订单类型不能为空")
-        @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
+        @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
         private OrderTypeEnum orderType;
 
         @ApiModelProperty("现价")

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/vo/UserPaymentOrderVo.java

@@ -131,7 +131,7 @@ public class UserPaymentOrderVo {
         private String bizId;
 
         @NotNull(message = "订单类型不能为空")
-        @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
+        @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
         private OrderTypeEnum orderType;
 
         @ApiModelProperty("现价")

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/StudentController.java

@@ -93,7 +93,7 @@ public class StudentController extends BaseController {
     @ApiOperation(value = "获取声部搜索下拉框")
     @PostMapping("/querySubjectItem")
     public HttpResponseResult<List<Subject>> querySubjectItem(
-            @ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
+            @ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/TeacherController.java

@@ -89,7 +89,7 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "获取声部搜索下拉框")
     @PostMapping("/querySubjectItem")
     public HttpResponseResult<List<Subject>> querySubjectItem(
-            @ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
+            @ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
         List<Subject> subjects = teacherService.querySubjectItem(sysUserService.getUserId(), type);
         subjectService.convertSubject(subjects);
         return succeed(subjects);

+ 15 - 29
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/TeacherFreeTimeController.java

@@ -1,22 +1,15 @@
 package com.yonge.cooleshow.website.controller;
 
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.dto.PracticeTimesSetting;
 import com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TeacherFreeTimeService;
-import com.yonge.cooleshow.biz.dal.vo.TeacherFreeTimeVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-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 javax.validation.Valid;
 
 /**
@@ -32,32 +25,25 @@ public class TeacherFreeTimeController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private TeacherFreeTimeService teacherFreeTimeService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    @ApiOperation(value = "新增、修改老师陪练课设置")
+    @ApiOperation(value = "新增、修改老师趣纠课设置")
     @PostMapping("/upSet")
-    public HttpResponseResult upSet(@Valid @RequestBody TeacherFreeTime teacherFreeTime){
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        teacherFreeTime.setTeacherId(user.getId());
+    public HttpResponseResult upSet(@RequestBody TeacherFreeTime teacherFreeTime){
+        teacherFreeTime.setTeacherId(sysUserService.getUserId());
         teacherFreeTimeService.upSet(teacherFreeTime);
         return succeed();
     }
 
-    @ApiOperation(value = "获取老师陪练课设置")
-    @PostMapping("/getDetail")
-    public HttpResponseResult<TeacherFreeTimeVo> getDetail(@RequestBody PracticeTimesSetting practiceTimesSetting){
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        practiceTimesSetting.setUserId(user.getId());
-        return succeed(teacherFreeTimeService.getDetail(practiceTimesSetting));
+    @ApiOperation(value = "获取老师排课时间")
+    @GetMapping("/get")
+    public HttpResponseResult<TeacherFreeTime> get(){
+        TeacherFreeTime freeTime = teacherFreeTimeService.lambdaQuery()
+                .eq(TeacherFreeTime::getTeacherId, sysUserService.getUserId()).one();
+        return succeed(freeTime);
     }
 }
 

+ 10 - 69
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/VideoGroupController.java

@@ -1,10 +1,10 @@
 package com.yonge.cooleshow.website.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
 import com.yonge.cooleshow.biz.dal.valid.AddGroup;
 import com.yonge.cooleshow.biz.dal.valid.UpdateGroup;
@@ -19,16 +19,10 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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 javax.validation.constraints.NotNull;
 
 /**
@@ -41,53 +35,28 @@ import javax.validation.constraints.NotNull;
 @RequestMapping("${app-config.url.website:}/videoLessonGroup")
 @Api(tags = "视频课组")
 public class VideoGroupController extends BaseController {
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    @Autowired
+    @Resource
     private VideoLessonGroupService videoLessonGroupService;
 
-    /**
-    * @Description: 查询视频课组
-    * @Author: cy
-    * @Date: 2022/3/31
-    */
     @ApiOperation(value = "查询视频课组")
     @PostMapping(value = "/page")
     public HttpResponseResult<PageInfo<VideoLessonGroupVo>> page(@RequestBody VideoLessonGroupSearch query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        query.setTeacherId(sysUser.getId());
+        query.setTeacherId(sysUserService.getUserId());
         IPage<VideoLessonGroupVo> pages = videoLessonGroupService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }
 
-    /**
-    * @Description: 新增视频课组
-    * @Author: cy
-    * @Date: 2022/3/31
-    */
     @ApiOperation(value = "新增视频课组", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/create", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> create(@Validated @RequestBody VideoLessonGroup videoLessonGroup) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
-
-        videoLessonGroup.setTeacherId(sysUser.getId());
+        videoLessonGroup.setTeacherId(sysUserService.getUserId());
         videoLessonGroupService.save(videoLessonGroup);
         return succeed();
     }
 
-    /**
-    * @Description: 修改视频课组
-    * @Author: cy
-    * @Date: 2022/3/31
-    */
     @ApiOperation(value = "修改视频课组", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/updateGroup", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> update(@Validated @RequestBody VideoLessonGroupUpVo lessonGroupUpVo) {
@@ -95,11 +64,6 @@ public class VideoGroupController extends BaseController {
         return succeed();
     }
 
-    /**
-    * @Description: 删除视频课组
-    * @Author: cy
-    * @Date: 2022/3/31
-    */
     @ApiOperation(value = "删除视频课组", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping("/delete/{id}")
     public Object delete(@PathVariable Long id) {
@@ -107,19 +71,10 @@ public class VideoGroupController extends BaseController {
         return succeed();
     }
 
-    /**
-    * @Description: 新增视频课组&视频课
-    * @Author: cy
-    * @Date: 2022/4/1
-    */
     @ApiOperation(value = "新增视频课组&视频课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/add", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> add(@Validated(AddGroup.class) @RequestBody VideoLessonVo lessonVo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-
-        if (sysUser == null||sysUser.getId()==null) {
-            return failed("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         lessonVo.setUserBy(sysUser.getId());
         if ( CollectionUtils.isEmpty(lessonVo.getLessonList())) {
             return failed("课程不能为空");
@@ -128,30 +83,16 @@ public class VideoGroupController extends BaseController {
         return succeed();
     }
 
-    /**
-     * @Description: 根据组id查询视频课&视频课组
-     * @Author: cy
-     * @Date: 2022/4/2
-     */
     @ApiOperation(value = "根据组id查询视频课&视频课组")
     @GetMapping(value="/selectVideoLesson")
     public HttpResponseResult<VideoLessonStudentVo> selectVideoLesson(@NotNull(message = "视频组id不能为空") Long groupId) {
         return succeed(videoLessonGroupService.selectVideoLesson(groupId));
     }
 
-    /**
-     * @Description: 修改视频课组&视频课
-     * @Author: cy
-     * @Date: 2022/4/7
-     */
     @ApiOperation(value = "修改视频课组&视频课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/update", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> update(@Validated(UpdateGroup.class) @RequestBody VideoLessonVo lessonVo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-
-        if (sysUser == null||sysUser.getId()==null) {
-            return failed("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         lessonVo.setUserBy(sysUser.getId());
         if ( CollectionUtils.isEmpty(lessonVo.getLessonList())) {
             return failed("课程不能为空");

+ 4 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/WebCourseScheduleController.java

@@ -90,14 +90,14 @@ public class WebCourseScheduleController extends BaseController {
             @ApiImplicitParam(name = "month", dataType = "Integer", value = "月"),
             @ApiImplicitParam(name = "day", dataType = "Integer", value = "日"),
     })
-    @ApiOperation("陪练课日历-用于学生购买指定老师陪练课")
+    @ApiOperation("趣纠课日历-用于学生购买指定老师趣纠课")
     @PostMapping("/createPracticeCourseCalendar")
     public HttpResponseResult<List<CourseCalendarEntity>> generatePracticeCourseCalender(@RequestBody Map<String, Object> param) {
         return succeed(courseScheduleService.createPracticeCourseCalender(param));
     }
 
-    @ApiOperation(value = "陪练课查询",
-            notes = "老师端-首页-我的课程-陪练课\n" +
+    @ApiOperation(value = "趣纠课查询",
+            notes = "老师端-首页-我的课程-趣纠课\n" +
                     "search:{\"classMonth\":\"2022-03\",\"status\":\"COMPLETE\",\"subjectId\":1}\n" +
                     "老师端-首页-课后评价\n" +
                     "search:{\"classMonth\":\"2022-03\",\"replied\":0,\"studentName\":\"测试王\"}\n" +
@@ -106,7 +106,7 @@ public class WebCourseScheduleController extends BaseController {
                     "老师端-课表\n" +
                     "search:{\"classDate\":\"2022-03-27\"}\n" +
                     "     search:{\"classMonth\":\"2022-03\"}\n" +
-                    "老师端-课表-陪练课\n" +
+                    "老师端-课表-趣纠课\n" +
                     "     search:{\"classDate\":\"2022-03-27\"}")
     @PostMapping("/queryTeacherPracticeCourse")
     public HttpResponseResult<PageInfo<MyCourseVo>> queryTeacherPracticeCourse(@RequestBody MyCourseSearch search) {

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/open/OpenSubjectController.java

@@ -35,7 +35,7 @@ public class OpenSubjectController extends BaseController {
     @ApiOperation(value = "获取声部")
     @GetMapping("/subjectSelect")
     public HttpResponseResult<List<Subject>> subjectSelect(
-            @ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
+            @ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type) {
         List<Subject> subjectSelect = subjectService.subjectSelect(type, null);
         subjectService.convertSubSubject(subjectSelect);
         return succeed(subjectSelect);

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/open/SubjectController.java

@@ -49,7 +49,7 @@ public class SubjectController extends BaseController {
 	@ApiOperation(value = "获取声部")
 	@GetMapping("/subjectSelect")
     public HttpResponseResult<List<Subject>> subjectSelect(
-			@ApiParam(value = "类型 PRACTICE 陪练课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type, @ApiParam(value = "客户端 TEACHER/STUDENT") String clientId){
+			@ApiParam(value = "类型 PRACTICE 趣纠课 LIVE 直播课 VIDEO 视频课 PIANO_ROOM 琴房 MUSIC 曲目 ") String type, @ApiParam(value = "客户端 TEACHER/STUDENT") String clientId){
 
 		String userExtSubjectIds = null;
         

+ 3 - 2
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/HelpCenterContentController.java

@@ -18,6 +18,7 @@ import com.yonge.cooleshow.cms.service.HelpCenterContentService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.toolset.base.page.PageInfo;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 
 @RestController
@@ -25,10 +26,10 @@ import javax.validation.Valid;
 @Api(tags = "帮助中心/公告内容")
 public class HelpCenterContentController extends BaseController {
 
-	@Autowired
+	@Resource
 	private HelpCenterContentService helpCenterContentService;
 
-	@Autowired
+	@Resource
 	private SysUserFeignService sysUserFeignService;
 
 	@ApiOperation(value = "帮助中心/公告内容列表分页查询", httpMethod="POST", consumes="application/json", produces="application/json")

+ 27 - 7
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java

@@ -7,6 +7,8 @@ package com.yonge.cooleshow.common.constant;
  * @Data: 2022/3/24 10:18
  */
 public interface SysConfigConstant {
+    //域名
+    String BASE_API_URL = "base_api_url";
     /***
      * 开通直播需要的粉丝数
      * @author liweifan
@@ -21,13 +23,15 @@ public interface SysConfigConstant {
     String OPEN_LIVE_OVER_CLASS = "open_list_over_class";
 
     /**
-     * 陪练课服务费
+     * 趣纠课服务费
      */
     String PRACTICE_SERVICE_FEE = "practice_service_fee";
+    String VIP_COURSE_SERVICE_FEE = "vip_course_service_fee";
     /**
-     * 陪练课可选时长配置
+     * 趣纠课可选时长配置
      */
     String PRACTICE_TIMES_SETTING = "practice_times_setting";
+    String VIP_COURSE_TIMES_SETTING = "vip_course_times_setting";
     /**
      * 直播课服务费
      */
@@ -45,18 +49,26 @@ public interface SysConfigConstant {
      */
     String PRE_CREATE_LIVE_ROOM_MINUTE = "pre_create_live_room_minute";
     /**
-     * 提前XX分钟创建/进入陪练课房间时间
+     * 提前XX分钟创建/进入趣纠课房间时间
      */
     String PRE_CREATE_PRACTICE_ROOM_MINUTE = "pre_create_practice_room_minute";
     /**
+     * 提前XX分钟创建/进入VIP课房间时间
+     */
+    String PRE_CREATE_VIP_ROOM_MINUTE = "pre_create_vip_course_room_minute";
+    /**
      * 直播结束后,XX分钟关闭房间
      */
     String DESTROY_EXPIRED_LIVE_ROOM_MINUTE = "destroy_expired_live_room_minute";
     /**
-     * 陪练课结束后,XX分钟关闭房间
+     * 趣纠课结束后,XX分钟关闭房间
      */
     String DESTROY_EXPIRED_PRACTICE_ROOM_MINUTE = "destroy_expired_practice_room_minute";
     /**
+     * VIP课结束后,XX分钟关闭房间
+     */
+    String DESTROY_EXPIRED_VIP_ROOM_MINUTE = "destroy_expired_vip_course_room_minute";
+    /**
      * 课程结束后,XX天后结算课酬
      */
     String COURSE_SETTLEMENT_TIME_DAY = "course_settlement_time_day";
@@ -67,7 +79,7 @@ public interface SysConfigConstant {
     String LIVE_TIME_SETTING = "live_time_setting";
 
     /**
-     * 学生购买陪练课时间段锁定时间
+     * 学生购买趣纠课时间段锁定时间
      */
     String STUDENT_BUY_PRACTICE_TIME_LOCK_MINUTE = "student_buy_practice_time_lock_minute";
 
@@ -111,6 +123,7 @@ public interface SysConfigConstant {
      */
     String GOOD_LOGO_VIP = "good_logo_vip";
     String GOOD_LOGO_SVIP = "good_logo_svip";
+    String GOOD_LOGO_DISCOUNT = "good_logo_discount";
     /***
      * 商品视频课图片
      * @author liweifan
@@ -118,11 +131,12 @@ public interface SysConfigConstant {
      */
     String GOOD_LOGO_VIDEO = "good_logo_video";
     /***
-     * 商品陪练课图片
+     * 商品趣纠课图片
      * @author liweifan
      * @updateTime 2022/4/20 11:43
      */
     String GOOD_LOGO_PRACTICE = "good_logo_practice";
+    String GOOD_LOGO_VIP_COURSE = "good_logo_vip_course";
     /***
      * 商品直播课图片
      * @author liweifan
@@ -298,9 +312,15 @@ public interface SysConfigConstant {
      */
     String MALL_SHARE_FEE = "mall_share_fee";
     /**
-     * 陪练课账期
+     * 趣纠课账期
      */
     String PRACTICE_ACCOUNT_PERIOD = "practice_account_period";
+
+    /**
+     * vip课帐期
+     */
+    String VIP_COURSE_ACCOUNT_PERIOD = "vip_course_account_period";
+
     /**
      * 直播课账期
      */

+ 1 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityTypeEnum.java

@@ -14,6 +14,7 @@ public enum ActivityTypeEnum implements BaseEnum<String, ActivityTypeEnum> {
     EVALUATION("评测活动"),
     STANDARD_GIFT("达标赠送"),
     SHARE("活动分享"),
+    MEMBER("会员购买"),
     ;
 
     @EnumValue

+ 1 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ConditionEnum.java

@@ -13,7 +13,7 @@ public enum ConditionEnum implements BaseEnum<String, ConditionEnum> {
 
     ENTRY("达人认证"),
     LIVEING("开通直播"),
-    PRACTICE("首次完成陪练课设置"),
+    PRACTICE("首次完成趣纠课设置"),
     LIVE("首次创建直播课"),
     VIDEO("首次创建视频课"),
     BIND_STUDENT("学员绑定"),

+ 31 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/EDiscountType.java

@@ -0,0 +1,31 @@
+package com.yonge.cooleshow.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+public enum EDiscountType implements BaseEnum<String, EDiscountType> {
+
+    COUPON("优惠券"),
+    ACTIVATY("活动"),
+    DISCOUNT("畅学卡"),
+    ;
+
+    @EnumValue
+    private String code;
+
+    private String desc;
+
+    EDiscountType(String desc) {
+        this.code = this.name();
+        this.desc = desc;
+    }
+
+    @Override
+    public String getCode() {
+        return name();
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 1 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/RewardTypeEnum.java

@@ -16,6 +16,7 @@ public enum RewardTypeEnum implements BaseEnum<String, RewardTypeEnum> {
     SVIP("小酷AISVIP会员"),
     PIANO_ROOM("琴房时长"),
     COUPON("优惠券"),
+    DISCOUNT("畅学卡"),
     ;
 
     @EnumValue

+ 1 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserFirstTimeTypeEnum.java

@@ -13,7 +13,7 @@ public enum UserFirstTimeTypeEnum implements BaseEnum<String, UserFirstTimeTypeE
 
     ENTRY("达人认证"),
     LIVEING("开通直播"),
-    PRACTICE("首次完成陪练课设置"),
+    PRACTICE("首次完成趣纠课设置"),
     LIVE("首次创建直播课"),
     VIDEO("首次创建视频课"),
     BIND_STUDENT("学员绑定"),

+ 3 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/payment/EPaymentType.java

@@ -11,7 +11,7 @@ public enum EPaymentType {
 
     VIP("开通会员"),
     SVIP("开通会员 SVIP"),
-    PRACTICE("陪练课购买"),
+    PRACTICE("趣纠课购买"),
     LIVE("直播课购买"),
     VIDEO("视频课购买"),
     MUSIC("单曲点播"),
@@ -19,6 +19,8 @@ public enum EPaymentType {
     ACTI_REGIST("活动报名"),
     ALBUM("专辑购买"),
     TENANT_ALBUM("平台专辑"),
+    VIP_COURSE("VIP定制课"),
+    DISCOUNT("畅学卡")
     ;
 
     private final String msg;

+ 20 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CourseStartRemindTask.java

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class CourseStartRemindTask extends BaseTask {
+
+    @Resource
+    private AdminFeignService adminFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        adminFeignService.courseStartRemind();
+    }
+}

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

@@ -6,7 +6,7 @@ public interface CourseConstant {
 
     /**
      * 未正式写入数据库的排课时间临时数据
-     * <p>用途将未写入数据库的排课数据写入缓存,然后生成日历及陪练课买课时校验课时将缓存时间拿出来比对
+     * <p>用途将未写入数据库的排课数据写入缓存,然后生成日历及趣纠课买课时校验课时将缓存时间拿出来比对
      * <p>返回结果 List<CourseTimeEntity>
      */
     String LOCK_COURSE_TIME_INFO = String.join(":", LiveRoomConstant.COOLESHOW, "LOCK_COURSE_TIME_INFO", TEACHER_ID);

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

@@ -53,4 +53,6 @@ public interface ActivityPlanRewardDao extends BaseMapper<ActivityPlanReward>{
 	 * @param activityRewardId   活动关闻奖品id
 	 */
 	int reduceStock(@Param("activityId") Long activityId, @Param("activityRewardId") Long activityRewardId);
+
+    List<ActivityPlanRewardDto> queryMemberActivityPlanReward(@Param("activityId") Long activityId);
 }

+ 13 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseGroupDao.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.yonge.cooleshow.biz.dal.vo.*;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -94,7 +95,7 @@ public interface CourseGroupDao extends BaseMapper<CourseGroup> {
                                                                            @Param("param") LiveCourseGroupStudentCourseSearch query);
 
     /**
-     * 查询陪练
+     * 查询趣纠
      *
      * @param page
      * @param search
@@ -104,7 +105,7 @@ public interface CourseGroupDao extends BaseMapper<CourseGroup> {
                                                      @Param("param") CourseGroupSearch search);
 
     /**
-     * 查询陪练课-详情
+     * 查询趣纠课-详情
      *
      * @param page
      * @param search
@@ -263,5 +264,15 @@ public interface CourseGroupDao extends BaseMapper<CourseGroup> {
      * @return
      */
     List<Subject> selectLiveSubject();
+
+    List<CourseGroupWrapper.TeacherCourseGroupDto> teacherCourseGroup(@Param("page") IPage<CourseGroupWrapper.TeacherCourseGroupDto> page,
+                                                                 @Param("param") CourseGroupWrapper.TeacherCourseGroupQuery query);
+
+    List<CourseGroupWrapper.StudentCourseGroupDto> studentCourseGroup(@Param("page") IPage<CourseGroupWrapper.StudentCourseGroupDto> page,
+                                                                 @Param("param") CourseGroupWrapper.TeacherCourseGroupQuery query);
+
+    void updateCompleteCourseNum(@Param("groupIds") List<Long> groupIds);
+
+    void updateExposureNum(@Param("groupId") Long groupId, @Param("exposureNum") Integer exposureNum);
 }
 

+ 14 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java

@@ -10,6 +10,8 @@ import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.PracticeTeacherSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
+import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
+import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherBindingUserQueryInfo;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.userBindingTeacher.UserBindingCourseWrapper;
@@ -18,6 +20,7 @@ import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -70,7 +73,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      * @param param 传入参数
      *              <p> - teacherId 老师id
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
-     *              <p> - type  PRACTICE 陪练课 LIVE 直播课
+     *              <p> - type  PRACTICE 趣纠课 LIVE 直播课
      *              <p> - startDate 开始时间
      *              <p> - endDate 结束时间
      *              <p> - subjectId 声部id
@@ -84,7 +87,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
     /**
      * 老师未布置的课程作业数量
      * <p>
-     * 陪练课 课程状态为完成,有学生考勤记录 没有布置作业
+     * 趣纠课 课程状态为完成,有学生考勤记录 没有布置作业
      *
      * @param param 查询条件
      * @return number
@@ -103,7 +106,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
     //老师端-课表-日历-用户
     List<CourseStudent> queryCourseUser(@Param("param") MyCourseSearch search);
 
-    //学生端-首页-陪练课老师列表
+    //学生端-首页-趣纠课老师列表
     List<PracticeTeacherVo> teacherList(IPage<PracticeTeacherVo> page, @Param("param") PracticeTeacherSearch search);
 
     List<Long> teacherIdList();
@@ -122,7 +125,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      *              <p> - startDate 开始时间
      *              <p> - endDate 结束时间
      *              <p> - subjectId 声部id
-     *              <p> - type PRACTICE 陪练课 LIVE 直播课
+     *              <p> - type PRACTICE 趣纠课 LIVE 直播课
      *              <p> - orderState OrderStatusEnum支付状态
      */
     <T> IPage<T> queryStudentLiveCourse(Page<T> page, @Param("param") Map<String, Object> param);
@@ -142,7 +145,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
     //学生端-首页-最近一堂课
     StudentHomePage.RecentCourses selectRecentCourses(Long studentId);
 
-    //老师端-首页-最近一堂课(陪练课)
+    //老师端-首页-最近一堂课(趣纠课\VIP课)
     StudentHomePage.RecentCourses selectRecentCoursesPractice(Long teacherId);
 
     //老师端-首页-最近一堂课(直播课)
@@ -213,7 +216,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
     List<CourseHomeVo.CourseHomeInfoVo> queryCourseHomeOfMonth(@Param("param") Map<String, Object> param);
 
     //查询老师声部价格
-    BigDecimal selectPrice(@Param("teacherId") Long teacherId, @Param("subjectId") Long subjectId);
+    BigDecimal selectPrice(@Param("teacherId") Long teacherId, @Param("subjectId") Long subjectId, @Param("courseTypeEnum") CourseScheduleEnum courseTypeEnum);
 
     //查询课程
     List<CourseSchedule> selectSchedule(Integer courseId);
@@ -250,4 +253,9 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      */
     IPage<UserBindingCourseWrapper> selectBindingUserCoursePage(@Param(
             "page") IPage<UserBindingCourseWrapper> page, @Param("query") TeacherBindingUserQueryInfo.BindingStudentCourseQuery query);
+
+    Integer countStudentOverCourse(@Param("userId") Long userId,
+                                @Param("monday") String monday,
+                                @Param("sunday") String sunday,
+                                @Param("courseStatus") String courseStatus);
 }

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

@@ -32,7 +32,7 @@ public interface CourseScheduleRepliedDao extends BaseMapper<CourseScheduleRepli
 	List<CourseScheduleRepliedVo> selectPage(@Param("page") IPage page, @Param("param") CourseScheduleRepliedSearch courseScheduleReplied);
 
 	/**
-	 * @Description: 修改陪练课评论
+	 * @Description: 修改趣纠课评论
 	 * @Author: cy
 	 * @Date: 2022/4/12
 	 */

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

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.biz.dal.entity.CourseScheduleStudentPayment;
 import com.yonge.cooleshow.biz.dal.vo.CourseScheduleStudentPaymentVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseScheduleStudentVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -43,7 +44,7 @@ public interface CourseScheduleStudentPaymentDao extends BaseMapper<CourseSchedu
      */
     List<LiveCourseInfoVo.CourseBuyStudentVo> queryStudentInfoByGroupId(@Param("param") Map<String, Object> param);
 
-    //查询所有购买陪练课用户id
+    //查询所有购买趣纠课用户id
     List<Long> selectAll();
 
     //根据查询锁定中的课程

+ 17 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ExposureRecordDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yonge.cooleshow.biz.dal.entity.ExposureRecord;
+import com.yonge.cooleshow.biz.dal.wrapper.ExposureRecordWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ExposureRecordDao extends BaseMapper<ExposureRecord> {
+    void saveExposureRecord(@Param("beans") List<ExposureRecordWrapper.SaveExposureRecordDto> exposureRecordDto);
+
+    List<TeacherIndexWrapper.CourseExposureTotal> courseExposureTotal(@Param("param") TeacherIndexWrapper.CourseExposureSearch search,
+                                                                      @Param("groupBy") String groupBy);
+}
+

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/HomeDao.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.vo.TagTotalTeacher;
 import com.yonge.cooleshow.biz.dal.vo.res.HomeTotalStudent;
 import com.yonge.cooleshow.biz.dal.vo.res.HomeTotalTeacher;
 import com.yonge.cooleshow.biz.dal.vo.res.HomeUserToDoNum;
+import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -64,4 +65,13 @@ public interface HomeDao {
      * @return
      */
     IPage<SubjectHomeVo> selectSubjectHome(@Param("page") IPage<SubjectHomeVo> page, @Param("query") SubjectHomeSearch query);
+
+
+    /**
+     * 老师端首页统计课程
+     *
+     * @param query 参数
+     * @return TeacherHomeWrapper.TeacherTotalCourse
+     */
+    List<TeacherHomeWrapper.TeacherTotalCourse> teacherTotalCourse(@Param("param") TeacherHomeWrapper.TeacherTotalCourseQuery query);
 }

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java

@@ -13,6 +13,7 @@ import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import org.apache.ibatis.annotations.Param;
 
@@ -232,5 +233,11 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
 
     int countTeacherEnable(@Param("userId") Long userId);
 
+    TeacherHomeWrapper.MusicSheetTotal musicSheetTotal(@Param("teacherId") Long teacherId);
+
+    List<TeacherHomeWrapper.MusicSheetTotal> musicSheetPage(@Param("param") TeacherHomeWrapper.MusicSheetQuery query);
+
+    void updateExposureNum(@Param("musicSheetId") Long musicSheetId, @Param("exposureNum") Integer exposureNum);
+
     IPage<MusicSheetWrapper.MusicSheetCloud> cloudPage(@Param("page") IPage<Object> page, @Param("param") MusicSheetWrapper.MusicSheetCloudQuery query);
 }

+ 18 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysMusicCompareRecordDao.java

@@ -1,11 +1,13 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
 import com.yonge.cooleshow.biz.dal.entity.SysMusicCompareWeekData;
 import com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -68,4 +70,20 @@ public interface SysMusicCompareRecordDao extends BaseDAO<Long, SysMusicCompareR
 												   @Param("monday") String monday);
 
     List<SysMusicCompareRecord> selectByIds(@Param("musicPracticeRecordIds") List<Long> musicPracticeRecordIds);
+
+    Long countStudentPracticeTime(@Param("userId") Long userId, @Param("monday") String monday, @Param("sunday") String sunday);
+
+    TeacherIndexWrapper.PracticeSummaryDto getStudentTrainOverView(@Param("studentIds") List<Long> studentIds,
+																   @Param("param") TeacherIndexWrapper.SummarySearch summarySearch);
+
+	List<TeacherIndexWrapper.PracticeTimeDto> getStudentTrainTime(@Param("studentIds") List<Long> studentIds,
+																  @Param("param") TeacherIndexWrapper.SummarySearch summarySearch,
+																  @Param("groupBy") String groupBy);
+
+    List<TeacherIndexWrapper.PracticeTimeDto> getStudentTrainCount(@Param("studentIds") List<Long> studentIds,
+																   @Param("param") TeacherIndexWrapper.SummarySearch summarySearch,
+																   @Param("groupBy") String groupBy);
+
+	List<TeacherIndexWrapper.StudentPracticeSummaryDto> getStudentTrainOverViewList(@Param("studentIds") List<Long> studentIds,
+																					@Param("param") TeacherIndexWrapper.StudentSearch studentSearch);
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherDao.java

@@ -15,6 +15,7 @@ import com.yonge.cooleshow.biz.dal.vo.MyFens;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
 import org.apache.ibatis.annotations.Param;
@@ -132,4 +133,6 @@ public interface TeacherDao extends BaseMapper<Teacher> {
      * @return List<StatGroupWrapper>
      */
     List<StatGroupWrapper> countCustomerServiceMemberNum();
+
+    List<Long> getStudentIds(@Param("teacherId") Long teacherId, @Param("subjectId") Long subjectId);
 }

+ 6 - 40
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherFreeTimeDao.java

@@ -1,10 +1,11 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yonge.cooleshow.biz.dal.dto.PracticeTimesSetting;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime;
-import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
+import com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherFreeTimeVo;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherFreeTimeWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -19,47 +20,12 @@ public interface TeacherFreeTimeDao extends BaseMapper<TeacherFreeTime> {
 
     int insertBatch(@Param("entities") List<TeacherFreeTime> entities);
 
-    /**
-     * @param teacherId
-     * @param courseMinutes
-     * @param freeMinutes
-     * @return com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime
-     * @description: 获取老师陪练课设置
-     * @author zx
-     * @date 2022/3/25 10:25
-     */
-    TeacherFreeTime findOne(@Param("teacherId") Long teacherId,
-                            @Param("courseMinutes") Integer courseMinutes,
-                            @Param("freeMinutes") Integer freeMinutes);
-
-    /**
-     * @param defaultFlag
-     * @return void
-     * @description: 修改默认配置
-     * @author zx
-     * @date 2022/3/29 10:02
-     */
-    void updateDefaultFlag(@Param("defaultFlag") boolean defaultFlag, @Param("teacherId") Long teacherId);
-
-    //根据id删除关联表数据
-    void deleteSubjectPrice(Long id);
-
-    //新增声部价格
-    void insertPrice(List<TeacherSubjectPrice> list);
-
     //查询老师配置
-    TeacherFreeTimeVo getDetail(@Param("param") PracticeTimesSetting practiceTimesSetting);
-
-    //根据id查声部售价
-    List<TeacherSubjectPrice> getPrice(Long id);
-
-    //查询老师声部默认售价
-    TeacherSubjectPrice selectSubjectPrice(@Param("teacherId") Long teacherId, @Param("subjectId") Long subjectId);
-
-    //查询老师所有声部配置
-    List<TeacherSubjectPrice> selectPriceByTeacherId(Long teacherId);
+    TeacherFreeTimeVo getDetail(@Param("userId") Integer userId);
 
     //查询过审老师配置默认
     List<TeacherFreeTime> getTeacherFreeTime();
+
+    List<PracticeTeacherVo> queryTeacherList(@Param("page") IPage<PracticeTeacherVo> page, @Param("param") TeacherFreeTimeWrapper.TeacherSearch query);
 }
 

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherSubjectPriceDao.java

@@ -0,0 +1,9 @@
+package com.yonge.cooleshow.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
+
+public interface TeacherSubjectPriceDao extends BaseMapper<TeacherSubjectPrice> {
+
+}
+

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

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.TeacherEarningVo;
 import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
+import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
 import com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo;
@@ -17,7 +18,7 @@ import org.springframework.security.core.parameters.P;
 
 /**
  * 账户记账规则
- * 陪练课 每次课程结束 记录入账
+ * 趣纠课 每次课程结束 记录入账
  * 直播课 每次课程结束,对每个学员都记录一次入账
  * 用户购买老师乐谱后 记录入账
  */
@@ -108,4 +109,6 @@ public interface UserAccountRecordDao extends BaseMapper<UserAccountRecord> {
      * @return
      */
     List<UserAccountRecord> queryCanAccountByBizType(@Param("bizTypes")List<String> bizTypes);
+
+    TeacherHomeWrapper.MusicSheetTotal musicSheetTotal(@Param("teacherId") Long teacherId);
 }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserOrderDetailDao.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.biz.dal.entity.UserOrderDetail;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
@@ -44,4 +45,15 @@ public interface UserOrderDetailDao extends BaseMapper<UserOrderDetail>{
     List<UserOrderDetailVo> getOrderDetilListByOrderNo(@Param("orderNo")String orderNo);
 
     List<UserOrderDetailVo> getOrderDetilListByOrderNos(@Param("orderNos") List<String> orderNos);
+
+	int getActivityGoodsCount(@Param("userId") Long userId, @Param("client") String client, @Param("activityId") Long activityId);
+
+    List<TeacherIndexWrapper.CourseExposureTotal> liveBuyTotal(@Param("param") TeacherIndexWrapper.CourseExposureSearch search,
+															   @Param("groupBy") String groupBy);
+
+	List<TeacherIndexWrapper.CourseExposureTotal> videoBuyTotal(@Param("param") TeacherIndexWrapper.CourseExposureSearch search,
+																@Param("groupBy") String groupBy);
+
+	List<TeacherIndexWrapper.CourseExposureTotal> musicSheetBuyTotal(@Param("param") TeacherIndexWrapper.CourseExposureSearch search,
+																	 @Param("groupBy") String groupBy);
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java

@@ -1,7 +1,9 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import java.util.List;
+import java.util.Map;
 
+import com.yonge.cooleshow.biz.dal.dto.Mapper;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponInfoQuery;
 import com.yonge.cooleshow.biz.dal.queryInfo.CourseRelationQueryInfo;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
@@ -74,4 +76,7 @@ public interface VideoLessonGroupDao extends BaseMapper<VideoLessonGroup> {
     //查询付费人数前5的课程
     List<CountVideoGroupVo.VideoLesson> selectVideoLesson();
 
+    List<Mapper> countMusicAlbum(@Param("videoLessonGroupIds") List<Long> videoLessonGroupIds);
+
+    void updateExposureNum(@Param("groupId") Long groupId, @Param("exposureNum") Integer exposureNum);
 }

+ 5 - 33
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityPlanDto.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto;
 
-import com.google.common.collect.Lists;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlanStandard;
@@ -25,6 +25,7 @@ import java.util.Optional;
  * @Data: 2022-08-04 10:19:49
  */
 @ApiModel(value = "ActivityPlanDto对象", description = "活动计划表数据传输对象")
+@Data
 public class ActivityPlanDto extends ActivityPlan {
 	private static final long serialVersionUID = 1L;
 
@@ -36,41 +37,10 @@ public class ActivityPlanDto extends ActivityPlan {
 
 	@ApiModelProperty(value = "活动计划-达标赠送活动拓展")
 	private ActivityPlanStandard planStandard;
+
 	@ApiModelProperty(value = "分享活动-奖品信息")
 	private List<RewardItem> rewardItems;
 
-	public Long getUserId() {
-		return userId;
-	}
-
-	public void setUserId(Long userId) {
-		this.userId = userId;
-	}
-
-	public ActivityPlanEvaluation getPlanEvaluation() {
-		return planEvaluation;
-	}
-
-	public void setPlanEvaluation(ActivityPlanEvaluation planEvaluation) {
-		this.planEvaluation = planEvaluation;
-	}
-
-	public ActivityPlanStandard getPlanStandard() {
-		return planStandard;
-	}
-
-	public void setPlanStandard(ActivityPlanStandard planStandard) {
-		this.planStandard = planStandard;
-	}
-
-	public List<RewardItem> getRewardItems() {
-		return Optional.ofNullable(rewardItems).orElse(Lists.newArrayList());
-	}
-
-	public void setRewardItems(List<RewardItem> rewardItems) {
-		this.rewardItems = rewardItems;
-	}
-
 	/**
 	 * 分享活动-奖品信息
 	 */
@@ -90,6 +60,8 @@ public class ActivityPlanDto extends ActivityPlan {
 		private UnitEnum unit; // 更新奖品会员类型
 		private Integer status;
 		private Double discountPrice; // 更新优惠价格
+		private Long vipCardId; // 会员卡ID
+		private Boolean hideFlag = false;
 
 		public Long getActivityId() {
 			return activityId;

+ 14 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/CheckCourseTimeDto.java

@@ -25,17 +25,30 @@ public class CheckCourseTimeDto implements Serializable {
     private Integer loop;
 
     @NotBlank(message = "课程类型不能为空")
-    @ApiModelProperty(value = "PRACTICE:陪练课,LIVE:直播课")
+    @ApiModelProperty(value = "PRACTICE:趣纠课,LIVE:直播课")
     private String  courseType;
 
     @NotNull(message = "课程数不能为空")
     @ApiModelProperty(value = "课程数")
     private Integer courseNum;
 
+
+    @NotNull(message = "课程休息时长不能为空")
+    @ApiModelProperty(value = "课程休息时长")
+    private Integer courseFreeMinutes;
+
     @NotNull(message = "课程时间不能为空")
     @ApiModelProperty(value = "课程时间接收类")
     private List<CourseTimeEntity> timeList;
 
+    public Integer getCourseFreeMinutes() {
+        return courseFreeMinutes;
+    }
+
+    public void setCourseFreeMinutes(Integer courseFreeMinutes) {
+        this.courseFreeMinutes = courseFreeMinutes;
+    }
+
     public Long getTeacherId() {
         return teacherId;
     }

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

@@ -13,7 +13,7 @@ import java.util.List;
 @Data
 public class ImNetworkRoomResult extends ImNetworkRoom {
 
-    @ApiModelProperty(value = "陪练课结束后,XX分钟关闭房间")
+    @ApiModelProperty(value = "趣纠课结束后,XX分钟关闭房间")
     private String autoCloseNetworkRoomTime = "15";
 
     @ApiModelProperty(value = "课程结束后是否关闭教室")

+ 23 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/LiveCourseGroupDto.java

@@ -78,6 +78,10 @@ public class LiveCourseGroupDto implements Serializable {
 
 
 
+    @NotNull(message = "课程休息时长不能为空")
+    @ApiModelProperty(value = "课程休息时长")
+    private Integer courseFreeMinutes;
+
     @ApiModelProperty(value = "版本号")
     private String version;
 
@@ -103,6 +107,17 @@ public class LiveCourseGroupDto implements Serializable {
         private Long planId;
 
 
+        @ApiModelProperty(value = "休息时长结束时间")
+        private Date freeEndTime;
+
+        public Date getFreeEndTime() {
+            return freeEndTime;
+        }
+
+        public void setFreeEndTime(Date freeEndTime) {
+            this.freeEndTime = freeEndTime;
+        }
+
         public Long getPlanId() {
             return planId;
         }
@@ -128,6 +143,14 @@ public class LiveCourseGroupDto implements Serializable {
         }
     }
 
+    public Integer getCourseFreeMinutes() {
+        return courseFreeMinutes;
+    }
+
+    public void setCourseFreeMinutes(Integer courseFreeMinutes) {
+        this.courseFreeMinutes = courseFreeMinutes;
+    }
+
     public Long getId() {
         return id;
     }

+ 5 - 120
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/PracticeScheduleDto.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.entity.CourseScheduleDate;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
@@ -15,6 +16,7 @@ import java.util.List;
  * @Author: cy
  * @Date: 2022/4/20
  */
+@Data
 @ApiModel(value = "PracticeScheduleDto")
 public class PracticeScheduleDto implements Serializable {
     @ApiModelProperty(value = "课程组id")
@@ -23,7 +25,7 @@ public class PracticeScheduleDto implements Serializable {
     private Long studentId;
     @ApiModelProperty(value = "老师id")
     private Long teacherId;
-    @ApiModelProperty(value = "类型 practice陪练课 live直播课")
+    @ApiModelProperty(value = "类型 practice趣纠课 live直播课")
     private String type;
     @ApiModelProperty(value = "课程组名称")
     private String courseGroupName;
@@ -31,6 +33,8 @@ public class PracticeScheduleDto implements Serializable {
     private Long subjectId;
     @ApiModelProperty(value = "单课时长")
     private Integer singleCourseMinutes;
+    @ApiModelProperty(value = "老师声部价格ID")
+    private Long teacherSubjectPriceId;
     @ApiModelProperty(value = "课程数")
     private Integer courseNum;
     @ApiModelProperty(value = "课程介绍")
@@ -50,123 +54,4 @@ public class PracticeScheduleDto implements Serializable {
     @ApiModelProperty(value = "上课时间")
     private List<CourseScheduleDate> classTime;
 
-    public BigDecimal getUnitPrice() {
-        return unitPrice;
-    }
-
-    public void setUnitPrice(BigDecimal unitPrice) {
-        this.unitPrice = unitPrice;
-    }
-
-    public Long getGroupId() {
-        return groupId;
-    }
-
-    public void setGroupId(Long groupId) {
-        this.groupId = groupId;
-    }
-
-    public Long getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(Long studentId) {
-        this.studentId = studentId;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public String getCourseGroupName() {
-        return courseGroupName;
-    }
-
-    public void setCourseGroupName(String courseGroupName) {
-        this.courseGroupName = courseGroupName;
-    }
-
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public Integer getSingleCourseMinutes() {
-        return singleCourseMinutes;
-    }
-
-    public void setSingleCourseMinutes(Integer singleCourseMinutes) {
-        this.singleCourseMinutes = singleCourseMinutes;
-    }
-
-    public Integer getCourseNum() {
-        return courseNum;
-    }
-
-    public void setCourseNum(Integer courseNum) {
-        this.courseNum = courseNum;
-    }
-
-    public String getCourseIntroduce() {
-        return courseIntroduce;
-    }
-
-    public void setCourseIntroduce(String courseIntroduce) {
-        this.courseIntroduce = courseIntroduce;
-    }
-
-    public BigDecimal getCoursePrice() {
-        return coursePrice;
-    }
-
-    public void setCoursePrice(BigDecimal coursePrice) {
-        this.coursePrice = coursePrice;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public Integer getMixStudentNum() {
-        return mixStudentNum;
-    }
-
-    public void setMixStudentNum(Integer mixStudentNum) {
-        this.mixStudentNum = mixStudentNum;
-    }
-
-    public Date getCourseStartTime() {
-        return courseStartTime;
-    }
-
-    public void setCourseStartTime(Date courseStartTime) {
-        this.courseStartTime = courseStartTime;
-    }
-
-    public List<CourseScheduleDate> getClassTime() {
-        return classTime;
-    }
-
-    public void setClassTime(List<CourseScheduleDate> classTime) {
-        this.classTime = classTime;
-    }
 }

+ 5 - 35
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/PracticeTimesSetting.java

@@ -1,10 +1,12 @@
 package com.yonge.cooleshow.biz.dal.dto;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import javax.validation.constraints.NotNull;
 
-//陪练课可选单课时时长配置
+//趣纠课可选单课时时长配置
+@Data
 public class PracticeTimesSetting {
 
     @NotNull(message = "课间休息分钟数不可为空")
@@ -18,38 +20,6 @@ public class PracticeTimesSetting {
     @ApiModelProperty(value = "用户id")
     private Long userId;
 
-    @ApiModelProperty(value = "默认配置(1:是 0:否)")
-    private Integer defaultFlag;
-
-    public Integer getDefaultFlag() {
-        return defaultFlag;
-    }
-
-    public void setDefaultFlag(Integer defaultFlag) {
-        this.defaultFlag = defaultFlag;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public Integer getFreeMinutes() {
-        return freeMinutes;
-    }
-
-    public void setFreeMinutes(Integer freeMinutes) {
-        this.freeMinutes = freeMinutes;
-    }
-
-    public Integer getCourseMinutes() {
-        return courseMinutes;
-    }
-
-    public void setCourseMinutes(Integer courseMinutes) {
-        this.courseMinutes = courseMinutes;
-    }
+    @ApiModelProperty(value = "课程类型")
+    private String courseType = "PRACTICE";
 }

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

@@ -13,7 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
 @ApiModel("内容数据-声部查询")
 public class SubjectHomeSearch extends QueryInfo {
 
-    @ApiModelProperty("排序类型 MUSIC:乐谱 PLATFORM_MUSIC:平台乐谱 TEACHER_MUSIC:老师乐谱 PRACTICE :陪练课 PIANO:琴房课  LIVE:直播课  VIDEO:视频课 ")
+    @ApiModelProperty("排序类型 MUSIC:乐谱 PLATFORM_MUSIC:平台乐谱 TEACHER_MUSIC:老师乐谱 PRACTICE :趣纠课 PIANO:琴房课  LIVE:直播课  VIDEO:视频课 ")
     private String sortType;
 
     @ApiModelProperty("desc:倒序 asc:正序")

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java

@@ -32,7 +32,7 @@ public class OrderReq {
     @ApiModelProperty(value = "订单名称 ", required = true)
     private String orderName;
     @NotNull(message = "订单类型不能为空")
-    @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  SVIP:SVIP PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
+    @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  SVIP:SVIP PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名 ) 老师端(VIP、开通会员 PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
     private OrderTypeEnum orderType;
     @ApiModelProperty(value = "订单描述信息 ")
     private String orderDesc;
@@ -67,7 +67,7 @@ public class OrderReq {
         @ApiModelProperty(value = "订单详情号", hidden = true)
         private String subOrderNo;
         @NotNull(message = "商品类型不能为空")
-        @ApiModelProperty(value = "商品类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名) 老师端( PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
+        @ApiModelProperty(value = "商品类型: 学生端( VIP、开通会员  PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名) 老师端( PIANO_ROOM、琴房时长 ACTI_REGIST 活动报名)", required = true)
         private GoodTypeEnum goodType;
         @ApiModelProperty("商品名称 ")
         private String goodName;

+ 4 - 129
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/CourseGroupSearch.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
@@ -15,6 +16,7 @@ import java.util.Date;
  * @Date: 2022/5/19
  */
 @ApiModel
+@Data
 public class CourseGroupSearch extends QueryInfo {
     @ApiModelProperty(value = "课程组、老师、学员编号/名称")
     private String search;
@@ -68,133 +70,6 @@ public class CourseGroupSearch extends QueryInfo {
     @ApiModelProperty(value = "是否草稿 (0:否  1:是)",hidden = true)
     private Integer draftFlag;
 
-    public CourseRelationTypeEnum getRelationType() {
-        return relationType;
-    }
-
-    public void setRelationType(CourseRelationTypeEnum relationType) {
-        this.relationType = relationType;
-    }
-
-    public YesOrNoEnum getTopFlag() {
-        return topFlag;
-    }
-
-    public void setTopFlag(YesOrNoEnum topFlag) {
-        this.topFlag = topFlag;
-    }
-
-    public Integer getDraftFlag() {
-        return draftFlag;
-    }
-
-    public void setDraftFlag(Integer draftFlag) {
-        this.draftFlag = draftFlag;
-    }
-
-    public Long getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(Long studentId) {
-        this.studentId = studentId;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public Long getCourseId() {
-        return courseId;
-    }
-
-    public void setCourseId(Long courseId) {
-        this.courseId = courseId;
-    }
-
-    public String getSalaryStatus() {
-        return salaryStatus;
-    }
-
-    public void setSalaryStatus(String salaryStatus) {
-        this.salaryStatus = salaryStatus;
-    }
-
-    public Long getGroupId() {
-        return groupId;
-    }
-
-    public void setGroupId(Long groupId) {
-        this.groupId = groupId;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public Date getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(Date startTime) {
-        this.startTime = startTime;
-    }
-
-    public Date getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
-    }
-
-    @Override
-    public String getSearch() {
-        return search;
-    }
-
-    @Override
-    public void setSearch(String search) {
-        this.search = search;
-    }
-
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public Integer getShelvesFlag() {
-        return shelvesFlag;
-    }
-
-    public void setShelvesFlag(Integer shelvesFlag) {
-        this.shelvesFlag = shelvesFlag;
-    }
-
-    public String getPayType() {
-        return payType;
-    }
-
-    public void setPayType(String payType) {
-        this.payType = payType;
-    }
+    @ApiModelProperty(value = "课程组类型 VIP 、PRACTICE")
+    private String groupType = "PRACTICE";
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/HomeworkAdminSearch.java

@@ -34,7 +34,7 @@ public class HomeworkAdminSearch extends QueryInfo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
-    @ApiModelProperty(value = "课程类型: PRACTICE 陪练课; LIVE 直播课",hidden = true)
+    @ApiModelProperty(value = "课程类型: PRACTICE 趣纠课; LIVE 直播课",hidden = true)
     private List<CourseScheduleEnum> courseType;
 
     @ApiModelProperty(value = "课程状态: NOT_START:未开始; ING:进行中; COMPLETE:已完成; CANCEL:已取消",hidden = true)

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/HomeworkSearch.java

@@ -24,7 +24,7 @@ public class HomeworkSearch extends QueryInfo {
     @ApiModelProperty(value = "老师id",hidden = true)
     private Long teacherId;
 
-    @ApiModelProperty(value = "课程类型: PRACTICE 陪练课; LIVE 直播课 PIANO_ROOM_CLASS 琴房",hidden = true)
+    @ApiModelProperty(value = "课程类型: PRACTICE 趣纠课; LIVE 直播课 PIANO_ROOM_CLASS 琴房",hidden = true)
     private List<CourseScheduleEnum> courseType;
 
     @ApiModelProperty(value = "课程状态: NOT_START:未开始; ING:进行中; COMPLETE:已完成; CANCEL:已取消",hidden = true)

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MemberPriceSettingsSearch.java

@@ -27,4 +27,7 @@ public class MemberPriceSettingsSearch extends QueryInfo{
 	@ApiModelProperty("VIP,SVIP")
 	private EVipType vipType;
 
+	@ApiModelProperty("会员类型")
+	private String searchType = "VIP,SVIP";
+
 }

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

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.util.List;
 
@@ -11,6 +12,7 @@ import java.util.List;
  * @Date: 2022/4/11
  */
 @ApiModel(value = "MyCourseSearch")
+@Data
 public class MyCourseSearch extends QueryInfo {
     @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
     private String status;
@@ -45,91 +47,9 @@ public class MyCourseSearch extends QueryInfo {
     @ApiModelProperty(value = "结束时间")
     private String endDate;
 
-    public String getStartDate() {
-        return startDate;
-    }
+    @ApiModelProperty(value = "课程类型")
+    private String courseType = "PRACTICE";
 
-    public void setStartDate(String startDate) {
-        this.startDate = startDate;
-    }
-
-    public String getEndDate() {
-        return endDate;
-    }
-
-    public void setEndDate(String endDate) {
-        this.endDate = endDate;
-    }
-
-    public Long getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(Long studentId) {
-        this.studentId = studentId;
-    }
-
-    public String getClassMonth() {
-        return classMonth;
-    }
-
-    public void setClassMonth(String classMonth) {
-        this.classMonth = classMonth;
-    }
-
-    public String getStudentName() {
-        return studentName;
-    }
-
-    public void setStudentName(String studentName) {
-        this.studentName = studentName;
-    }
-
-    public Integer getReplied() {
-        return replied;
-    }
-
-    public void setReplied(Integer replied) {
-        this.replied = replied;
-    }
-
-    public List<Long> getRepliedIds() {
-        return repliedIds;
-    }
-
-    public void setRepliedIds(List<Long> repliedIds) {
-        this.repliedIds = repliedIds;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getClassDate() {
-        return classDate;
-    }
-
-    public void setClassDate(String classDate) {
-        this.classDate = classDate;
-    }
-
-    public Integer getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Integer subjectId) {
-        this.subjectId = subjectId;
-    }
+    @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
+    private Boolean attendanceStatus;
 }

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

@@ -22,7 +22,7 @@ public class OrderSearch extends QueryInfo{
 	@ApiModelProperty("下单应用:STUDENT 学生端 TEACHER 老师端")
 	private String orderClient;
 
-	@ApiModelProperty("交易类型:  VIP、开通会员  SVIP、开通会员 PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名(多选用,分割)")
+	@ApiModelProperty("交易类型:  VIP、开通会员  SVIP、开通会员 PRACTICE、趣纠课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ACTI_REGIST、活动报名(多选用,分割)、VIP_COURSE VIP定制课、DISCOUNT 畅学卡")
 	private String orderType;
 
 	@ApiModelProperty("订单状态 WAIT_PAY 待支付 PAYING 支付中  PAID 已付款 CLOSE 已关闭 FAIL 支付失败 (多选用,分割)")

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/PlatformCashAccountRecordSearch.java

@@ -22,7 +22,7 @@ public class PlatformCashAccountRecordSearch extends QueryInfo {
 	@ApiModelProperty("收支类型(IN-收入  OUT-支出)")
 	private String inOrOut;
 
-	@ApiModelProperty("业务类型:PRACTICE、陪练课 LIVE、直播课 VIDEO、视频课 MUSIC、乐谱 ACTI_REGIST、活动报名 WITHDRAWAL、提现 " +
+	@ApiModelProperty("业务类型:PRACTICE、趣纠课 LIVE、直播课 VIDEO、视频课 MUSIC、乐谱 ACTI_REGIST、活动报名 WITHDRAWAL、提现 " +
 			"LIVE_SHARE、直播课分润 VIDEO_SHARE、视频课分润 MUSIC_SHARE、乐谱分润 VIP_SHARE、会员分润 MALL_SHARE、商品分润 ACTI_REGIST_SHARE、活动报名分润 ")
 	private AccountBizTypeEnum bizType;
 

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

@@ -32,7 +32,7 @@ public class UserAccountRecordSearch extends QueryInfo{
 	@ApiModelProperty(value = "入账状态 WAIT 待入账 FROZEN 冻结入账 RECORDED 已入账 CANCEL 退费 ")
 	private PostStatusEnum postStatus;
 
-	@ApiModelProperty("业务类型:PRACTICE、陪练课 LIVE、直播课 VIDEO、视频课 MUSIC、乐谱 ACTI_REGIST、活动报名 WITHDRAWAL、提现 " +
+	@ApiModelProperty("业务类型:PRACTICE、趣纠课 LIVE、直播课 VIDEO、视频课 MUSIC、乐谱 ACTI_REGIST、活动报名 WITHDRAWAL、提现 " +
 			"LIVE_SHARE、直播课分润 VIDEO_SHARE、视频课分润 MUSIC_SHARE、乐谱分润 VIP_SHARE、会员分润 MALL_SHARE、商品分润 ACTI_REGIST_SHARE、活动报名分润 ")
 	private AccountBizTypeEnum bizType;
 

+ 32 - 213
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotBlank;
@@ -25,88 +26,110 @@ import java.util.Date;
  */
 @TableName("activity_plan")
 @ApiModel(value = "ActivityPlan对象", description = "活动计划表")
+@Data
 public class ActivityPlan implements Serializable {
     private static final long serialVersionUID = 1L;
     @ApiModelProperty("主键 ")
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
+
     @ApiModelProperty(value = "活动类型 EVALUATION 评测活动 STANDARD_GIFT 达标赠送 SHARE分享活动", required = true)
     @TableField(value = "activity_type_")
     @NotNull(message = "活动类型不能为空")
     private ActivityTypeEnum activityType;
+
     @ApiModelProperty(value = "活动应用:STUDENT 学生端 TEACHER 老师端", required = true)
     @TableField(value = "activity_client_")
     @NotNull(message = "活动应用不能为空")
     private ClientEnum activityClient;
+
     @ApiModelProperty("活动名称 ")
     @TableField(value = "activity_name_")
     @NotBlank(message = "活动名称不能为空")
     private String activityName;
+
     @ApiModelProperty("活动描述 ")
     @TableField(value = "describe_")
     @NotBlank(message = "活动描述不能为空")
     private String describe;
+
     @ApiModelProperty("规则描述 ")
     @TableField(value = "rule_describe_")
     private String ruleDescribe;
+
     @ApiModelProperty("主题图片 ")
     @TableField(value = "subject_url_")
     private String subjectUrl;
+
     @ApiModelProperty("平铺背景 ")
     @TableField(value = "background_url_")
     private String backgroundUrl;
+
     @ApiModelProperty("分享图片 ")
     @TableField(value = "share_url_")
     private String shareUrl;
+
     @ApiModelProperty("活动链接 ")
     @TableField(value = "activity_url_")
     private String activityUrl;
+
     @ApiModelProperty("活动时间-开始 ")
     @TableField(value = "activity_start_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @NotNull(message = "活动开始时间不能为空")
     private Date activityStart;
+
     @ApiModelProperty("活动时间-结束 ")
     @TableField(value = "activity_end_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @NotNull(message = "活动结束时间不能为空")
     private Date activityEnd;
+
     @ApiModelProperty("报名方式 FREE 免费 CHARGE 收费 ")
     @TableField(value = "registration_method_")
     private RegistrationMethodEnum registrationMethod;
     @ApiModelProperty("报名价格 ")
     @TableField(value = "registration_price_")
     private BigDecimal registrationPrice;
+
     @ApiModelProperty("分润比例 ")
     @TableField(value = "share_rate_")
     private BigDecimal shareRate;
+
     @ApiModelProperty("创建状态 0 正式 1 草稿 ")
     @TableField(value = "draft_flag_")
     private Integer draftFlag;
+
     @ApiModelProperty("活动状态 0 停用 1 启用 ")
     @TableField(value = "activity_state_")
     private Integer activityState;
+
     @ApiModelProperty("发奖状态(完成状态) 0 未发奖 1 已发奖 ")
     @TableField(value = "reward_flag_")
     private Integer rewardFlag;
+
     @ApiModelProperty(value = "活动分类类型, MUSIC_SHEET(曲谱) MUSIC(音乐) VIP(会员) VIDEO(视频) LIVE(直播) GOODS(商品)")
     @TableField(value = "share_type_")
     private String shareType;
+
     @ApiModelProperty("创建时间 ")
     @TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
+
     @ApiModelProperty("创建人 ")
     @TableField(value = "create_by_")
     private Long createBy;
+
     @ApiModelProperty("更新时间 ")
     @TableField(value = "update_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
+
     @ApiModelProperty("更新人 ")
     @TableField(value = "update_by_")
     private Long updateBy;
@@ -127,219 +150,15 @@ public class ActivityPlan implements Serializable {
     @TableField(value = "ranking_score_")
     private Double rankingScore;
 
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public ActivityTypeEnum getActivityType() {
-        return activityType;
-    }
-
-    public void setActivityType(ActivityTypeEnum activityType) {
-        this.activityType = activityType;
-    }
-
-    public String getActivityName() {
-        return activityName;
-    }
-
-    public void setActivityName(String activityName) {
-        this.activityName = activityName;
-    }
-
-    public String getDescribe() {
-        return describe;
-    }
-
-    public void setDescribe(String describe) {
-        this.describe = describe;
-    }
-
-    public String getRuleDescribe() {
-        return ruleDescribe;
-    }
-
-    public void setRuleDescribe(String ruleDescribe) {
-        this.ruleDescribe = ruleDescribe;
-    }
-
-    public String getSubjectUrl() {
-        return subjectUrl;
-    }
-
-    public void setSubjectUrl(String subjectUrl) {
-        this.subjectUrl = subjectUrl;
-    }
-
-    public String getBackgroundUrl() {
-        return backgroundUrl;
-    }
-
-    public void setBackgroundUrl(String backgroundUrl) {
-        this.backgroundUrl = backgroundUrl;
-    }
-
-    public Date getActivityStart() {
-        return activityStart;
-    }
-
-    public void setActivityStart(Date activityStart) {
-        this.activityStart = activityStart;
-    }
-
-    public Date getActivityEnd() {
-        return activityEnd;
-    }
-
-    public void setActivityEnd(Date activityEnd) {
-        this.activityEnd = activityEnd;
-    }
-
-    public RegistrationMethodEnum getRegistrationMethod() {
-        return registrationMethod;
-    }
-
-    public void setRegistrationMethod(RegistrationMethodEnum registrationMethod) {
-        this.registrationMethod = registrationMethod;
-    }
-
-    public BigDecimal getRegistrationPrice() {
-        return registrationPrice;
-    }
-
-    public void setRegistrationPrice(BigDecimal registrationPrice) {
-        this.registrationPrice = registrationPrice;
-    }
-
-    public Integer getDraftFlag() {
-        return draftFlag;
-    }
-
-    public void setDraftFlag(Integer draftFlag) {
-        this.draftFlag = draftFlag;
-    }
-
-    public Integer getActivityState() {
-        return activityState;
-    }
-
-    public void setActivityState(Integer activityState) {
-        this.activityState = activityState;
-    }
-
-    public String getShareType() {
-        return this.shareType;
-    }
-
-    public void setShareType(String shareType) {
-        this.shareType = shareType;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Long getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(Long createBy) {
-        this.createBy = createBy;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public Long getUpdateBy() {
-        return updateBy;
-    }
-
-    public void setUpdateBy(Long updateBy) {
-        this.updateBy = updateBy;
-    }
-
-    public String getActivityUrl() {
-        return activityUrl;
-    }
-
-    public void setActivityUrl(String activityUrl) {
-        this.activityUrl = activityUrl;
-    }
-
-    public String getShareUrl() {
-        return shareUrl;
-    }
-
-    public void setShareUrl(String shareUrl) {
-        this.shareUrl = shareUrl;
-    }
-
-    public BigDecimal getShareRate() {
-        return shareRate;
-    }
-
-    public void setShareRate(BigDecimal shareRate) {
-        this.shareRate = shareRate;
-    }
-
-    public Integer getRewardFlag() {
-        return rewardFlag;
-    }
-
-    public void setRewardFlag(Integer rewardFlag) {
-        this.rewardFlag = rewardFlag;
-    }
-
-    public ClientEnum getActivityClient() {
-        return activityClient;
-    }
-
-    public void setActivityClient(ClientEnum activityClient) {
-        this.activityClient = activityClient;
-    }
-
-    public Integer getRanking() {
-        return ranking;
-    }
-
-    public void setRanking(Integer ranking) {
-        this.ranking = ranking;
-    }
-
-    public ActivityRankingRuleEnum getRankingRule() {
-        return rankingRule;
-    }
-
-    public void setRankingRule(ActivityRankingRuleEnum rankingRule) {
-        this.rankingRule = rankingRule;
-    }
-
-    public ActivityRankingMethodEnum getRankingMethod() {
-        return rankingMethod;
-    }
-
-    public void setRankingMethod(ActivityRankingMethodEnum rankingMethod) {
-        this.rankingMethod = rankingMethod;
-    }
+    @ApiModelProperty("会员类型ID")
+    @TableField(value = "vip_card_id_")
+    private Long vipCardId;
 
-    public Double getRankingScore() {
-        return rankingScore;
-    }
+    @ApiModelProperty("拓展配置")
+    @TableField(value = "ext_config_")
+    private String extConfig;
 
-    public void setRankingScore(Double rankingScore) {
-        this.rankingScore = rankingScore;
-    }
+    @ApiModelProperty("可购买次数")
+    @TableField(value = "buy_count_")
+    private Integer buyCount;
 }

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

@@ -22,7 +22,7 @@ public class ActivityPlanStandard implements Serializable {
     @ApiModelProperty("主键 ")
     @TableId(value = "id_")
     private Long id;
-    @ApiModelProperty("达标条件:ENTRY 达人认证 LIVEING 开通直播 PRACTICE 首次完成陪练课设置 LIVE 首次创建直播课 VIDEO 首次创建视频课 BIND_STUDENT 学员绑定 REGISTER_STUDENT 学员注册 REGISTER_TEACHER 老师注册")
+    @ApiModelProperty("达标条件:ENTRY 达人认证 LIVEING 开通直播 PRACTICE 首次完成趣纠课设置 LIVE 首次创建直播课 VIDEO 首次创建视频课 BIND_STUDENT 学员绑定 REGISTER_STUDENT 学员注册 REGISTER_TEACHER 老师注册")
 	@TableField(value = "condition_")
     private String condition;
     @ApiModelProperty("计算方式:AND 全部满足 OR 满足其一 ")

+ 8 - 142
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityReward.java

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.common.enums.RewardTypeEnum;
 import com.yonge.cooleshow.common.enums.UnitEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotBlank;
@@ -24,6 +25,7 @@ import java.util.Date;
  */
 @TableName("activity_reward")
 @ApiModel(value = "ActivityReward对象", description = "活动奖品表")
+@Data
 public class ActivityReward implements Serializable {
     private static final long serialVersionUID = 1L;
 
@@ -96,147 +98,11 @@ public class ActivityReward implements Serializable {
     @TableField(exist = false)
     private String group;
 
-    public BigDecimal getDiscountPrice() {
-        return discountPrice;
-    }
+    @ApiModelProperty("会员卡ID")
+    @TableField(value = "vip_card_id_")
+    private Long vipCardId;
 
-    public void setDiscountPrice(BigDecimal discountPrice) {
-        this.discountPrice = discountPrice;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getActivityId() {
-        return activityId;
-    }
-
-    public void setActivityId(Long activityId) {
-        this.activityId = activityId;
-    }
-
-    public String getRewardClient() {
-        return rewardClient;
-    }
-
-    public void setRewardClient(String rewardClient) {
-        this.rewardClient = rewardClient;
-    }
-
-    public String getRewardName() {
-        return rewardName;
-    }
-
-    public void setRewardName(String rewardName) {
-        this.rewardName = rewardName;
-    }
-
-    public RewardTypeEnum getRewardType() {
-        return rewardType;
-    }
-
-    public void setRewardType(RewardTypeEnum rewardType) {
-        this.rewardType = rewardType;
-    }
-
-    public String getRewardDescribe() {
-        return rewardDescribe;
-    }
-
-    public void setRewardDescribe(String rewardDescribe) {
-        this.rewardDescribe = rewardDescribe;
-    }
-
-    public String getImgUrl() {
-        return imgUrl;
-    }
-
-    public void setImgUrl(String imgUrl) {
-        this.imgUrl = imgUrl;
-    }
-
-    public Integer getStock() {
-        return stock;
-    }
-
-    public void setStock(Integer stock) {
-        this.stock = stock;
-    }
-
-    public Integer getNum() {
-        return num;
-    }
-
-    public void setNum(Integer num) {
-        this.num = num;
-    }
-
-    public UnitEnum getUnit() {
-        return unit;
-    }
-
-    public void setUnit(UnitEnum unit) {
-        this.unit = unit;
-    }
-
-    public Integer getStatus() {
-        return status;
-    }
-
-    public void setStatus(Integer status) {
-        this.status = status;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Long getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(Long createBy) {
-        this.createBy = createBy;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public Long getUpdateBy() {
-        return updateBy;
-    }
-
-    public void setUpdateBy(Long updateBy) {
-        this.updateBy = updateBy;
-    }
-
-    public String getGroup() {
-        return group;
-    }
-
-    public void setGroup(String group) {
-        this.group = group;
-    }
-
-    public Long getCouponId() {
-        return couponId;
-    }
-
-    public void setCouponId(Long couponId) {
-        this.couponId = couponId;
-    }
+    @ApiModelProperty("隐藏标记")
+    @TableField(value = "hide_flag_")
+    private Boolean hideFlag = false;
 }

+ 5 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java

@@ -28,7 +28,7 @@ public class CourseGroup implements Serializable {
     private Long id;
 
     @TableField("type_")
-    @ApiModelProperty(value = "类型 practice陪练课 live直播课")
+    @ApiModelProperty(value = "类型 practice趣纠课 live直播课")
     private String type;
 
     @TableField("teacher_id_")
@@ -103,6 +103,10 @@ public class CourseGroup implements Serializable {
     @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
     private YesOrNoEnum auditVersion = YesOrNoEnum.NO;
 
+    @TableField("course_plan_")
+    @ApiModelProperty(value = "课程规划")
+    private String coursePlan;
+
     @TableField("created_by_")
     @ApiModelProperty(value = "创建人")
     private Long createdBy;

+ 9 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseSchedule.java

@@ -32,7 +32,7 @@ public class CourseSchedule implements Serializable {
     private String roomUid;
 
     @TableField("type_")
-    @ApiModelProperty(value = "类型 practice陪练课 live直播课  CourseScheduleEnum")
+    @ApiModelProperty(value = "类型 practice趣纠课 live直播课  CourseScheduleEnum")
     private String type;
 
     @TableField("status_")
@@ -59,8 +59,12 @@ public class CourseSchedule implements Serializable {
     @ApiModelProperty(value = "下课时间")
     private Date endTime;
 
+    @TableField("free_end_time_")
+    @ApiModelProperty(value = "休息时长结束时间")
+    private Date freeEndTime;
+
     @TableField("lock_")
-    @ApiModelProperty(value = "购买陪练课及创建直播课时需要锁定课时 0未锁 1锁定")
+    @ApiModelProperty(value = "购买趣纠课及创建直播课时需要锁定课时 0未锁 1锁定")
     private Integer lock;
 
     @TableField("lock_time_")
@@ -107,5 +111,8 @@ public class CourseSchedule implements Serializable {
     @TableField("cancel_mute_flag_")
     private Boolean cancelMuteFlag = true;
 
+    @ApiModelProperty("是否推送过开课消息")
+    @TableField("push_start_msg_")
+    private Boolean pushStartMsg;
 }
 

+ 4 - 21
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleDate.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.entity;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
@@ -12,6 +13,7 @@ import java.util.Date;
  * @Author: cy
  * @Date: 2022/4/20
  */
+@Data
 @ApiModel(value = "CourseScheduleDate")
 public class CourseScheduleDate implements Serializable {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -29,28 +31,9 @@ public class CourseScheduleDate implements Serializable {
     @ApiModelProperty(value = "下课时间")
     private Date endTime;
 
-    public Date getClassDate() {
-        return classDate;
-    }
 
-    public void setClassDate(Date classDate) {
-        this.classDate = classDate;
-    }
+    @ApiModelProperty(value = "休息时长结束时间")
+    private Date freeEndTime;
 
-    public Date getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(Date startTime) {
-        this.startTime = startTime;
-    }
-
-    public Date getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
-    }
 }
 

Some files were not shown because too many files changed in this diff