zouxuan před 7 měsíci
rodič
revize
3af117c5d2
24 změnil soubory, kde provedl 207 přidání a 472 odebrání
  1. 8 41
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java
  2. 2 2
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/CourseGroupController.java
  3. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/HomeController.java
  4. 0 10
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MemberPriceSettingsController.java
  5. 4 4
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponInfoVO.java
  6. 16 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MemberPriceSettingsController.java
  7. 35 61
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseScheduleController.java
  8. 4 19
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TenantAlbumController.java
  9. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ConditionEnum.java
  10. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserFirstTimeTypeEnum.java
  11. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/payment/EPaymentType.java
  12. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherFreeTimeDao.java
  13. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MemberPriceSettingsSearch.java
  14. 6 136
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherFreeTime.java
  15. 6 80
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherSubjectPrice.java
  16. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/OrderTypeEnum.java
  17. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/coupon/CouponCategoryEnum.java
  18. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java
  19. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherFreeTimeService.java
  20. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java
  21. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherFreeTimeServiceImpl.java
  22. 2 104
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/PracticeTeacherVo.java
  23. 31 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TeacherFreeTimeWrapper.java
  24. 47 7
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherFreeTimeMapper.xml

+ 8 - 41
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java

@@ -1,30 +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.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 
 @RestController
@@ -32,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')")
@@ -48,9 +41,6 @@ public class ActivityPlanController extends BaseController {
         return succeed(activityPlanService.detail(id));
     }
 
-    /**
-     * 查询分页
-     */
     @PostMapping("/page")
     @ApiOperation(value = "查询分页", notes = "传入activityPlanSearch")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/page')")
@@ -63,11 +53,7 @@ public class ActivityPlanController extends BaseController {
     @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());
+        activityPlan.setUserId(sysUserService.getUserId());
 
         try {
             return HttpResponseResult.succeed(activityPlanService.submit(activityPlan));
@@ -88,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) {

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

@@ -48,7 +48,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 +58,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")

+ 0 - 10
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MemberPriceSettingsController.java

@@ -30,30 +30,20 @@ public class MemberPriceSettingsController extends BaseController {
 	@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')")
 	public HttpResponseResult<PageInfo<MemberPriceSettingsVo>> page(MemberPriceSettingsSearch query) {
-		query.setSearchType("VIP,SVIP");
 		IPage<MemberPriceSettingsVo> pages = memberPriceSettingsService.selectPage(PageUtil.getPage(query), query);
 		return succeed(PageUtil.pageInfo(pages));
 	}
 
-	/**
-	 * 修改
-	 */
 	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@ApiOperation(value = "修改", notes = "传入memberPriceSettings")
 	@PreAuthorize("@pcs.hasPermissions('memberPriceSettings/update')")

+ 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("使用门槛")

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

@@ -2,8 +2,10 @@ package com.yonge.cooleshow.student.controller;
 
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 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;
@@ -27,6 +29,8 @@ public class MemberPriceSettingsController extends BaseController {
 	private MemberPriceSettingsService memberPriceSettingsService;
 	@Resource
 	private SysConfigService sysConfigService;
+	@Resource
+	private ActivityPlanService activityPlanService;
 
 	@GetMapping("/detail/{id}")
 	@ApiOperation(value = "详情", notes = "传入id")
@@ -38,7 +42,6 @@ public class MemberPriceSettingsController extends BaseController {
 	@ApiOperation(value = "查询列表")
 	public HttpResponseResult<MemberPriceVo> list(@RequestBody MemberPriceSettingsSearch query) {
 		query.setStatus(true);
-		query.setSearchType("VIP,SVIP");
 		MemberPriceVo memberPriceVo = memberPriceSettingsService.getVipShare(query);
 		return succeed(memberPriceVo);
 	}
@@ -77,4 +80,16 @@ 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));
+	}
 }

+ 35 - 61
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseScheduleController.java

@@ -1,8 +1,7 @@
 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;
@@ -10,14 +9,9 @@ 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.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")
@@ -67,12 +59,7 @@ public class StudentCourseScheduleController extends BaseController {
     @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));
     }
@@ -80,25 +67,15 @@ public class StudentCourseScheduleController extends BaseController {
     @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 = "学生端-我的-我的课程-课程详情-查询陪练课评价")
     @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.setStudentId(sysUserService.getUserId());
         replied.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
         return succeed(repliedService.selectReplied(replied));
     }
@@ -106,11 +83,7 @@ public class StudentCourseScheduleController extends BaseController {
     @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));
     }
 
@@ -124,11 +97,7 @@ 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());
         return succeed(courseScheduleService.queryCourseTeacher(search));
     }
 
@@ -149,14 +118,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({
@@ -181,14 +146,23 @@ public class StudentCourseScheduleController extends BaseController {
     @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 (query.getSubjectId() == null) {
+            throw new BizException("请选择声部");
+        }
+        if (StringUtils.isEmpty(query.getCourseType())) {
+            throw new BizException("请选择课程类型");
+        }
+        IPage<PracticeTeacherVo> pages = teacherFreeTimeService.queryTeacherList(PageUtil.getPage(query),query);
+        return succeed(PageUtil.pageInfo(pages));
+    }
 }
 

+ 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;
-
     /**
      * 查询分页
      *

+ 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("学员绑定"),

+ 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("学员绑定"),

+ 1 - 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("单曲点播"),

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

@@ -1,10 +1,13 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.PracticeTimesSetting;
 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;
@@ -61,5 +64,7 @@ public interface TeacherFreeTimeDao extends BaseMapper<TeacherFreeTime> {
 
     //查询过审老师配置默认
     List<TeacherFreeTime> getTeacherFreeTime();
+
+    List<PracticeTeacherVo> queryTeacherList(@Param("page") IPage<PracticeTeacherVo> page, @Param("param") TeacherFreeTimeWrapper.TeacherSearch query);
 }
 

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

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

+ 6 - 136
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherFreeTime.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
@@ -18,6 +19,7 @@ import java.util.Date;
  * @author zx
  * @since 2022-03-25 10:04:27
  */
+@Data
 @ApiModel(value = "teacher_free_time-老师可排课时间表")
 public class TeacherFreeTime implements Serializable {
     @TableId(value = "id_", type = IdType.AUTO)
@@ -79,6 +81,10 @@ public class TeacherFreeTime implements Serializable {
     @ApiModelProperty(value = "是否默认配置")
     private Boolean defaultFlag = true;
 
+    @TableField("recent_free_time_")
+    @ApiModelProperty(value = "最近30天空闲标记")
+    private Boolean recentFreeTime;
+
     @TableField("create_time_")
     @ApiModelProperty(value = "创建时间;")
     private Date createTime;
@@ -91,141 +97,5 @@ public class TeacherFreeTime implements Serializable {
     @ApiModelProperty(value = "是否开启陪练课(1是 0否)")
     private Boolean enableFlag = true;
 
-    public Boolean getEnableFlag() {
-        return enableFlag;
-    }
-
-    public void setEnableFlag(Boolean enableFlag) {
-        this.enableFlag = enableFlag;
-    }
-
-    public Boolean getDefaultFlag() {
-        return defaultFlag;
-    }
-
-    public void setDefaultFlag(Boolean defaultFlag) {
-        this.defaultFlag = defaultFlag;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    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;
-    }
-
-    public Boolean getSkipHolidayFlag() {
-        return skipHolidayFlag;
-    }
-
-    public void setSkipHolidayFlag(Boolean skipHolidayFlag) {
-        this.skipHolidayFlag = skipHolidayFlag;
-    }
-
-    public String getSubjectPrice() {
-        return subjectPrice;
-    }
-
-    public void setSubjectPrice(String subjectPrice) {
-        this.subjectPrice = subjectPrice;
-    }
-
-    public String getMonday() {
-        return monday;
-    }
-
-    public void setMonday(String monday) {
-        this.monday = monday;
-    }
-
-    public String getTuesday() {
-        return tuesday;
-    }
-
-    public void setTuesday(String tuesday) {
-        this.tuesday = tuesday;
-    }
-
-    public String getWednesday() {
-        return wednesday;
-    }
-
-    public void setWednesday(String wednesday) {
-        this.wednesday = wednesday;
-    }
-
-    public String getThursday() {
-        return thursday;
-    }
-
-    public void setThursday(String thursday) {
-        this.thursday = thursday;
-    }
-
-    public String getFriday() {
-        return friday;
-    }
-
-    public void setFriday(String friday) {
-        this.friday = friday;
-    }
-
-    public String getSaturday() {
-        return saturday;
-    }
-
-    public void setSaturday(String saturday) {
-        this.saturday = saturday;
-    }
-
-    public String getSunday() {
-        return sunday;
-    }
-
-    public void setSunday(String sunday) {
-        this.sunday = sunday;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
 }
 

+ 6 - 80
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherSubjectPrice.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -14,6 +15,7 @@ import java.util.Date;
  * @Author: cy
  * @Date: 2022/4/15
  */
+@Data
 @ApiModel(value = "teacher_subject_price-老师声部价格")
 public class TeacherSubjectPrice implements Serializable {
     @TableId(value = "id_", type = IdType.AUTO)
@@ -28,6 +30,10 @@ public class TeacherSubjectPrice implements Serializable {
     @ApiModelProperty(value = "老师id")
     private Long teacherId;
 
+    @TableField("course_type_")
+    @ApiModelProperty(value = "课程类型")
+    private String courseType;
+
     @TableField("free_minutes_")
     @ApiModelProperty(value = "课间休息时长(分钟)")
     private Integer freeMinutes;
@@ -55,85 +61,5 @@ public class TeacherSubjectPrice implements Serializable {
     @TableField("update_time_")
     @ApiModelProperty(value = "更新时间")
     private Date updateTime;
-
-    public Long getTeacherFreeTimeId() {
-        return teacherFreeTimeId;
-    }
-
-    public void setTeacherFreeTimeId(Long teacherFreeTimeId) {
-        this.teacherFreeTimeId = teacherFreeTimeId;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    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;
-    }
-
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public BigDecimal getSubjectPrice() {
-        return subjectPrice;
-    }
-
-    public void setSubjectPrice(BigDecimal subjectPrice) {
-        this.subjectPrice = subjectPrice;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
 }
 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/OrderTypeEnum.java

@@ -12,7 +12,7 @@ import com.yonge.toolset.base.enums.BaseEnum;
 public enum OrderTypeEnum implements BaseEnum<String, OrderTypeEnum> {
     VIP("开通会员"),
     SVIP("开通会员 SVIP"),
-    PRACTICE("陪练课购买"),
+    PRACTICE("趣纠课购买"),
     LIVE("直播课购买"),
     VIDEO("视频课购买"),
     MUSIC("单曲点播"),

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/coupon/CouponCategoryEnum.java

@@ -21,7 +21,7 @@ public enum CouponCategoryEnum implements BaseEnum<String, CouponCategoryEnum> {
     MALL("商场购物券", "MALL"),
     MUSIC("单曲点播券", "MUSIC"),
     ALBUM("专辑优惠券", "ALBUM"),
-    SPARRING("陪练课购买券", "PRACTICE"),
+    SPARRING("趣纠课购买券", "PRACTICE"),
     LIVE("直播课购买券", "LIVE"),
     VIDEO("视频课购买券", "VIDEO"),
     VIP_COURSE("VIP定制课购买券", "VIP_COURSE"),

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

@@ -131,4 +131,6 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
     void orderCreate(UserPaymentOrderWrapper.OrderGoodsInfo orderGoodsInfo);
 
     void orderSuccess(UserOrderDetailVo userPaymentOrder, boolean messageFlag);
+
+    ActivityPlanVo getMemberBuyGift();
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherFreeTimeService.java

@@ -1,10 +1,14 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.TeacherFreeTimeDao;
 import com.yonge.cooleshow.biz.dal.dto.PracticeTimesSetting;
 import com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime;
+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 com.yonge.toolset.base.page.PageInfo;
 
 /**
  * 老师可排课时间表(TeacherFreeTime)表服务接口
@@ -26,5 +30,7 @@ public interface TeacherFreeTimeService extends IService<TeacherFreeTime> {
     void upSet(TeacherFreeTime teacherFreeTime);
 
     TeacherFreeTimeVo getDetail(PracticeTimesSetting practiceTimesSetting);
+
+    IPage<PracticeTeacherVo> queryTeacherList(IPage<PracticeTeacherVo> page,TeacherFreeTimeWrapper.TeacherSearch query);
 }
 

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

@@ -736,6 +736,23 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
     }
 
     @Override
+    public ActivityPlanVo getMemberBuyGift() {
+        Date now = new Date();
+        //获取进行中的会员买赠活动
+        ActivityPlan one = this.lambdaQuery()
+                .eq(ActivityPlan::getActivityType, ActivityTypeEnum.MEMBER)
+                .eq(ActivityPlan::getActivityState, 1)
+                .eq(ActivityPlan::getDraftFlag, 0)
+                .le(ActivityPlan::getActivityStart, now)
+                .ge(ActivityPlan::getActivityEnd, now)
+                .last("limit 1").one();
+        if (one != null) {
+            return detail(one.getId());
+        }
+        return null;
+    }
+
+    @Override
     public Boolean joinEvaluation(Long evaluationId, SysUser user) {
         ActivityEvaluation activityEvaluation = activityEvaluationService.getById(evaluationId);
         if (activityEvaluation == null) {

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

@@ -4,6 +4,7 @@ import com.alibaba.excel.util.CollectionUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.TeacherFreeTimeDao;
@@ -11,9 +12,12 @@ import com.yonge.cooleshow.biz.dal.dto.PracticeTimesSetting;
 import com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime;
 import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
 import com.yonge.cooleshow.biz.dal.service.TeacherFreeTimeService;
+import com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherFreeTimeVo;
 import com.yonge.cooleshow.biz.dal.vo.WeekVo;
+import com.yonge.cooleshow.biz.dal.wrapper.TeacherFreeTimeWrapper;
 import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.payment.core.entity.SysConfigPayment;
 import com.yonge.toolset.utils.date.DateUtil;
 import jodd.util.StringUtil;
@@ -84,6 +88,11 @@ public class TeacherFreeTimeServiceImpl extends ServiceImpl<TeacherFreeTimeDao,
         return getDetail;
     }
 
+    @Override
+    public IPage<PracticeTeacherVo> queryTeacherList(IPage<PracticeTeacherVo> page,TeacherFreeTimeWrapper.TeacherSearch query) {
+        return page.setRecords(baseMapper.queryTeacherList(page, query));
+    }
+
     public static String timeOffSet(String week,Integer freeMinutes){
         List<WeekVo> list = JSONObject.parseArray(week, WeekVo.class);
         SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");

+ 2 - 104
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/PracticeTeacherVo.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 
@@ -10,6 +11,7 @@ import java.io.Serializable;
  * @Date: 2022/4/19
  */
 @ApiModel(value = "PracticeTeacherVo")
+@Data
 public class PracticeTeacherVo implements Serializable {
     @ApiModelProperty(value = "老师id")
     private Integer teacherId;
@@ -48,109 +50,5 @@ public class PracticeTeacherVo implements Serializable {
 
     @ApiModelProperty(value = "课程时长(分钟)")
     private String courseMinutes;
-
-    public String getRealName() {
-        return realName;
-    }
-
-    public void setRealName(String realName) {
-        this.realName = realName;
-    }
-
-    public Integer getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Integer teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getAvatar() {
-        return avatar;
-    }
-
-    public void setAvatar(String avatar) {
-        this.avatar = avatar;
-    }
-
-    public String getStarGrade() {
-        return starGrade;
-    }
-
-    public void setStarGrade(String starGrade) {
-        this.starGrade = starGrade;
-    }
-
-    public String getExpTime() {
-        return expTime;
-    }
-
-    public void setExpTime(String expTime) {
-        this.expTime = expTime;
-    }
-
-    public String getSchool() {
-        return school;
-    }
-
-    public void setSchool(String school) {
-        this.school = school;
-    }
-
-    public String getSchoolSubject() {
-        return schoolSubject;
-    }
-
-    public void setSchoolSubject(String schoolSubject) {
-        this.schoolSubject = schoolSubject;
-    }
-
-    public String getConfigSubject() {
-        return configSubject;
-    }
-
-    public void setConfigSubject(String configSubject) {
-        this.configSubject = configSubject;
-    }
-
-    public Integer getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Integer subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public String getSubjectPrice() {
-        return subjectPrice;
-    }
-
-    public void setSubjectPrice(String subjectPrice) {
-        this.subjectPrice = subjectPrice;
-    }
-
-    public String getCourseMinutes() {
-        return courseMinutes;
-    }
-
-    public void setCourseMinutes(String courseMinutes) {
-        this.courseMinutes = courseMinutes;
-    }
 }
 

+ 31 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TeacherFreeTimeWrapper.java

@@ -0,0 +1,31 @@
+package com.yonge.cooleshow.biz.dal.wrapper;
+
+import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+public class TeacherFreeTimeWrapper {
+
+    @Data
+    public static class TeacherSearch extends QueryInfo {
+
+        @ApiModelProperty(value = "声部编号")
+        private Integer subjectId;
+
+        @ApiModelProperty(value = "最近30天空闲标记")
+        private BigDecimal recentFreeTime;
+
+        @ApiModelProperty(value = "课程类型")
+        private String courseType;
+
+        @ApiModelProperty(value = "排序字段")
+        private String sortField;
+
+        @ApiModelProperty(value = "排序规则 ASC DESC")
+        private String sortRule;
+    }
+
+}

+ 47 - 7
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherFreeTimeMapper.xml

@@ -16,6 +16,7 @@
         <result column="saturday_" jdbcType="VARCHAR" property="saturday"/>
         <result column="sunday_" jdbcType="VARCHAR" property="sunday"/>
         <result column="default_flag_" property="defaultFlag"/>
+        <result column="recent_free_time_" property="recentFreeTime"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
     </resultMap>
@@ -23,25 +24,25 @@
     <sql id="Base_Column_List">
         id_
         , teacher_id_, free_minutes_, course_minutes_, skip_holiday_flag_, subject_price_,
-    monday_, tuesday_, wednesday_, thursday_, friday_, saturday_, sunday_,default_flag_,create_time_, update_time_
+    monday_, tuesday_, wednesday_, thursday_, friday_, saturday_, sunday_,default_flag_,recent_free_time_,create_time_, update_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime">
         insert into teacher_free_time(teacher_id_, free_minutes_, course_minutes_, skip_holiday_flag_, subject_price_,
-        monday_, tuesday_, wednesday_, thursday_, friday_, saturday_, sunday_,default_flag_, create_time_, update_time_)
+        monday_, tuesday_, wednesday_, thursday_, friday_, saturday_, sunday_,default_flag_,recent_free_time_, create_time_, update_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.teacherId}, #{entity.freeMinutes}, #{entity.courseMinutes}, #{entity.skipHolidayFlag},
             #{entity.subjectPrice}, #{entity.monday}, #{entity.tuesday}, #{entity.wednesday}, #{entity.thursday},
-            #{entity.friday}, #{entity.saturday}, #{entity.sunday}, #{entity.defaultFlag},NOW(),NOW())
+            #{entity.friday}, #{entity.saturday}, #{entity.sunday}, #{entity.defaultFlag},#{entity.recentFreeTime},NOW(),NOW())
         </foreach>
     </insert>
     <insert id="insertPrice" parameterType="java.util.List">
         INSERT INTO teacher_subject_price
-            (teacher_free_time_id,teacher_id_,free_minutes_,course_minutes_,subject_id_,subject_name_,subject_price_)VALUES
+            (teacher_free_time_id,teacher_id_,free_minutes_,course_minutes_,subject_id_,subject_name_,subject_price_,course_type_)VALUES
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.teacherFreeTimeId},#{item.teacherId},#{item.freeMinutes},#{item.courseMinutes},#{item.subjectId},#{item.subjectName},#{item.subjectPrice})
+            (#{item.teacherFreeTimeId},#{item.teacherId},#{item.freeMinutes},#{item.courseMinutes},#{item.subjectId},#{item.subjectName},#{item.subjectPrice},#{item.courseType})
         </foreach>
     </insert>
     <update id="updateDefaultFlag">
@@ -90,7 +91,8 @@
             p.course_minutes_ AS courseMinutes,
             p.subject_id_ AS subjectId,
             p.subject_name_ AS subjectName,
-            p.subject_price_ AS subjectPrice
+            p.subject_price_ AS subjectPrice,
+            p.course_type_ AS courseType
         FROM teacher_free_time f
         LEFT JOIN teacher_subject_price p ON f.id_=p.teacher_free_time_id
         WHERE f.teacher_id_=#{teacherId} AND f.default_flag_=1 AND p.subject_id_=#{subjectId}
@@ -105,7 +107,8 @@
             p.course_minutes_ AS courseMinutes,
             p.subject_id_ AS subjectId,
             p.subject_name_ AS subjectName,
-            p.subject_price_ AS subjectPrice
+            p.subject_price_ AS subjectPrice,
+            p.course_type_ AS courseType
         FROM teacher_free_time f
         LEFT JOIN teacher_subject_price p ON f.id_=p.teacher_free_time_id
         WHERE f.teacher_id_=#{teacherId}
@@ -116,4 +119,41 @@
         SELECT * FROM teacher_free_time WHERE default_flag_=1
         AND teacher_id_ IN(SELECT user_id_ FROM teacher_auth_entry_record WHERE teacher_auth_status_='PASS' GROUP BY user_id_)
     </select>
+    <select id="queryTeacherList" resultType="com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo">
+        select
+            tsp.teacher_id_ AS teacherId,
+            u.username_ AS userName,
+            u.real_name_ AS realName,
+            u.avatar_ AS avatar,
+            tt.star_grade_ AS starGrade,
+            tt.exp_time_ AS expTime,
+            t.graduate_school_ AS school,
+            t.subject_ AS schoolSubject,
+            tsp.subject_name_ AS subjectName,
+            tsp.subject_id_ AS subjectId,
+            tsp.subject_price_ AS subjectPrice,
+            tsp.course_minutes_ AS courseMinutes
+        from teacher_free_time tft
+        left join teacher_subject_price tsp ON tsp.teacher_id_ = tft.teacher_id_
+        left join teacher t ON t.user_id_ = tsp.teacher_id_
+        LEFT JOIN sys_user u ON t.user_id_ = u.id_
+        LEFT JOIN teacher_total tt ON t.user_id_=tt.user_id_
+        <where>
+            <if test="param.subjectId != null">
+                AND tsp.subject_id_ = #{param.subjectId}
+            </if>
+            <if test="param.recentFreeTime != null">
+                AND tft.recent_free_time_ = #{param.recentFreeTime}
+            </if>
+            <if test="param.courseType != null and param.courseType != ''">
+                AND tsp.course_type_ = #{param.courseType}
+            </if>
+        </where>
+        <if test="param.sortField != null and param.sortField != ''">
+            order by ${param.sortField} ${param.sortRule}
+        </if>
+        <if test="param.sortField == null or param.sortField == ''">
+            order by tt.exp_time_ desc
+        </if>
+    </select>
 </mapper>