Explorar el Código

Merge remote-tracking branch 'origin/dev_1_2_20220802' into dev_1_2_20220802

liweifan hace 3 años
padre
commit
e7806b2900
Se han modificado 19 ficheros con 265 adiciones y 32 borrados
  1. 8 3
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/PaymentController.java
  2. 17 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/AdminCourseGroupController.java
  3. 25 2
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java
  4. 53 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/LiveSaleOutDto.java
  5. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetSearch.java
  6. 0 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentMusicSheetSearch.java
  7. 4 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CourseGroupEnum.java
  8. 7 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java
  9. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java
  10. 10 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  11. 57 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  12. 37 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  13. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java
  14. 1 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml
  15. 6 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml
  16. 6 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  17. 1 1
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  18. 3 1
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java
  19. 1 1
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java

+ 8 - 3
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/PaymentController.java

@@ -176,10 +176,15 @@ public class PaymentController extends BaseController {
                     }
                 }
             }
-            if (MethodNameEnum.refundPayment.equals(data.getMethodName())) {
-                //退款
-                portalOrderReturnApplyService.refundPaymentCallBack(data);
+            try {
+                if (MethodNameEnum.refundPayment.equals(data.getMethodName())) {
+                    //退款
+                    portalOrderReturnApplyService.refundPaymentCallBack(data);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
+
         }
         return res.getData().getResMsg();
     }

+ 17 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/AdminCourseGroupController.java

@@ -3,6 +3,7 @@ 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;
 import com.yonge.cooleshow.biz.dal.dto.search.LiveCourseGroupStudentSearch;
@@ -92,6 +93,22 @@ 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不能为空");
+        }
+
+        return succeed(courseGroupService.liveSaleOut(dto));
+    }
+
+
+
     @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) {

+ 25 - 2
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -180,11 +180,19 @@ public class MusicSheetController extends BaseController {
     @PostMapping("/state/{id}")
     @ApiOperation(value = "启用/停用", notes = "传入id")
     @PreAuthorize("@pcs.hasPermissions('music/sheet/state')")
-    public HttpResponseResult<Boolean> state(@ApiParam(value = "曲目编号", required = true)  @PathVariable Long id) {
+    public HttpResponseResult<Boolean> state(@ApiParam(value = "曲目编号", required = true)  @PathVariable Long id, String reason) {
         if (StringUtil.isEmpty(id)) {
             return failed("参数不能为空");
         }
-        return status(musicSheetService.state(id));
+        MusicSheet musicSheet = musicSheetService.getById(id);
+        if (musicSheet == null) {
+            return failed("未找到曲目");
+        }
+        if (YesOrNoEnum.YES.equals(musicSheet.getState()) &&
+                musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER) && StringUtil.isEmpty(reason)) {
+            return failed("请填写下架原因");
+        }
+        return status(musicSheetService.state(id,reason));
     }
 
     /**
@@ -267,4 +275,19 @@ public class MusicSheetController extends BaseController {
         }
     }
 
+
+    /**
+     * 置顶
+     */
+    @PostMapping("/top/{id}")
+    @ApiOperation(value = "置顶曲目", notes = "传入id")
+    @PreAuthorize("@pcs.hasPermissions('music/sheet/top')")
+    public HttpResponseResult<Boolean> top(@ApiParam(value = "曲目编号", required = true)  @PathVariable Long id) {
+        if (StringUtil.isEmpty(id)) {
+            return failed("参数不能为空");
+        }
+        return status(musicSheetService.top(id));
+    }
+
+
 }

+ 53 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/LiveSaleOutDto.java

@@ -0,0 +1,53 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * Description 直播课下架
+ *
+ * @author liujunchi
+ * @date 2022-08-03
+ */
+@ApiModel("直播课下架参数")
+public class LiveSaleOutDto {
+
+    @NotNull(message = "课程组id不能为空")
+    @ApiModelProperty(value = "直播课课程组id",required = true)
+    private Long courseGroupId;
+
+    @NotNull(message = "上下架状态不能为空")
+    @ApiModelProperty(value = "上下架  0:下架 1:上架",required = true)
+    private Long status;
+
+
+    @ApiModelProperty("下架原因")
+    private String reason;
+
+
+    public Long getCourseGroupId() {
+        return courseGroupId;
+    }
+
+    public void setCourseGroupId(Long courseGroupId) {
+        this.courseGroupId = courseGroupId;
+    }
+
+    public Long getStatus() {
+        return status;
+    }
+
+    public void setStatus(Long status) {
+        this.status = status;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+}

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

@@ -54,6 +54,16 @@ public class MusicSheetSearch  extends QueryInfo{
     @ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
     private ChargeTypeEnum chargeType;  //收费类型(0:免费;1:会员;2:单曲收费)
 
+    @ApiModelProperty(value = "查看我自己的曲目",required = true)
+    private Boolean myself;
+
+    public Boolean getMyself() {
+        return myself;
+    }
+
+    public void setMyself(Boolean myself) {
+        this.myself = myself;
+    }
 
     public ChargeTypeEnum getChargeType() {
         return chargeType;

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

@@ -36,8 +36,6 @@ public class StudentMusicSheetSearch  extends MusicSheetSearch{
     private String platform;
 
 
-    @ApiModelProperty(value = "查看我自己的曲目",required = true)
-    private Boolean myself = true;
 
     public ClientEnum getUserType() {
         return userType;
@@ -47,13 +45,7 @@ public class StudentMusicSheetSearch  extends MusicSheetSearch{
         this.userType = userType;
     }
 
-    public Boolean getMyself() {
-        return myself;
-    }
 
-    public void setMyself(Boolean myself) {
-        this.myself = myself;
-    }
 
     public YesOrNoEnum getAuditVersion() {
         return auditVersion;

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

@@ -9,8 +9,11 @@ public enum CourseGroupEnum implements BaseEnum<String,CourseGroupEnum> {
     DISSOLVE( "未成课"),//解散课程
     CANCEL("已取消"),//课程已取消
     APPLY("报名中"),//开售中可以报名
-    NOT_SALE( "未开售");//还未到开售日期
+    NOT_SALE( "未开售"),//还未到开售日期
+    OUT_SALE( "下架"),//下架
 
+
+    ;
     @EnumValue
     private String code;
 

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

@@ -90,7 +90,13 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     SMS_BUY_LIVE("直播课购买成功"),
     SMS_LIVE_COMPLETION_SUCCESS("直播课成课"),
     SMS_LIVE_COMPLETION_FAIL("直播课成课失败"),
-    SMS_TOMORROW_COURSE_REMINDER("明日课程提醒(每晚9点)(短信)");
+    SMS_TOMORROW_COURSE_REMINDER("明日课程提醒(每晚9点)(短信)"),
+
+    MUSIC_SHEET_OUT_SALE_REASON("老师曲目下架通知"),
+    LIVE_COURSE_OUT_SALE_REASON("老师直播课下架通知"),
+
+
+    ;
 
     MessageTypeEnum(String msg) {
         this.code = this.name();

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

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
+import com.yonge.cooleshow.biz.dal.dto.LiveSaleOutDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.*;
@@ -330,5 +331,12 @@ public interface CourseGroupService extends IService<CourseGroup> {
      * @return
      */
     ShareProfitVo shareLiveCourseProfit(SysUser sysUser, Long liveGroupId);
+
+    /**
+     * 课程上架/下架
+     *
+     * @return
+     */
+    Boolean liveSaleOut(LiveSaleOutDto dto);
 }
 

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

@@ -39,9 +39,10 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * 曲目状态修改 启用、停用
      *
      * @param id 曲目id
+     * @param reason
      * @return boolean
      */
-    boolean state(Long id);
+    boolean state(Long id, String reason);
 
     /**
      * 获取专辑详情曲目信息
@@ -274,4 +275,12 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @param musicSheetId 曲目id
      */
     ShareProfitVo shareMusicSheetProfit(SysUser sysUser, Long musicSheetId);
+
+    /**
+     * 置顶曲目
+     *
+     * @param musicSheetId 曲目id
+     * @return
+     */
+    Boolean top(Long musicSheetId);
 }

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

@@ -1,7 +1,6 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.alipay.api.domain.AccountRecord;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,8 +12,8 @@ import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto.CoursePlanDto;
+import com.yonge.cooleshow.biz.dal.dto.LiveSaleOutDto;
 import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
-import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.*;
 import com.yonge.cooleshow.biz.dal.entity.*;
@@ -23,7 +22,6 @@ import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
-import com.yonge.cooleshow.biz.dal.vo.res.RefundCreateRes;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
@@ -41,13 +39,13 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -1071,13 +1069,13 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         List<CourseGroup> courseGroupList = this.list(Wrappers.<CourseGroup>lambdaQuery()
                 .eq(CourseGroup::getType, CourseScheduleEnum.LIVE.getCode())
                 .eq(CourseGroup::getSalesEndDate, LocalDate.now().plusDays(-1))
-                .eq(CourseGroup::getStatus, CourseGroupEnum.APPLY.getCode()));
+                .in(CourseGroup::getStatus, CourseGroupEnum.APPLY.getCode(),CourseGroupEnum.OUT_SALE.getCode()));
         if (CollectionUtils.isEmpty(courseGroupList)) {
             return;
         }
         courseGroupList.forEach(courseGroup -> {
             try {
-                if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum()) {
+                if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum() &&courseGroup.getStatus().equals(CourseGroupEnum.APPLY.getCode())) {
                     //人数达标则修改课程组为进行中状态
                     courseGroup.setStatus(CourseGroupEnum.ING.getCode());
                     //创建群聊 并添加人员到群中
@@ -1135,6 +1133,10 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      * @param courseGroup 课程组
      */
     private void sendMessage(CourseGroup courseGroup) {
+        // 直播课下架后,不推送直播课成课失败消息
+        if (courseGroup.getStatus().equals(CourseGroupEnum.OUT_SALE.getCode())) {
+            return;
+        }
         // 发短信
         try {
             SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
@@ -1266,5 +1268,54 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         result.setAvatar(sysUser.getAvatar());
         return result;
     }
+
+    @Override
+    @Transactional
+    public Boolean liveSaleOut(LiveSaleOutDto dto) {
+
+
+        CourseGroup liveCourseGroupVo = this.getById(dto.getCourseGroupId());
+        if (liveCourseGroupVo == null || !CourseScheduleEnum.LIVE.getCode().equals(liveCourseGroupVo.getType())) {
+            throw new BizException("没找到课程组信息");
+        }
+
+        // 条件检查
+        if(dto.getStatus() == 0 && StringUtils.isEmpty(dto.getReason())) {
+            throw  new BizException("请填写下架原因");
+        } else if (dto.getStatus() == 0  && !CourseGroupEnum.APPLY.getCode().equals(liveCourseGroupVo.getStatus())) {
+            throw new BizException("只能下架销售中的课程组");
+        } else if (dto.getStatus() == 1  && !CourseGroupEnum.OUT_SALE.getCode().equals(liveCourseGroupVo.getStatus())) {
+            throw new BizException("只能上架被下架的课程组");
+        } else if ( LocalDate.now().compareTo(liveCourseGroupVo.getSalesEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()) > 0) {
+            throw new BizException("课程组售卖时间已结束,不能操作");
+        }
+
+        if (dto.getStatus() == 0) {
+            liveCourseGroupVo.setStatus(CourseGroupEnum.OUT_SALE.getCode());
+
+            // 发送下架消息
+            sendOutSaleMessage(dto, liveCourseGroupVo);
+
+        } else {
+            liveCourseGroupVo.setStatus(CourseGroupEnum.APPLY.getCode());
+        }
+
+
+        return this.updateById(liveCourseGroupVo);
+    }
+
+    private void sendOutSaleMessage(LiveSaleOutDto dto, CourseGroup liveCourseGroupVo) {
+        // 发送课程下架通知
+        try {
+            SysUser user = sysUserFeignService.queryUserById(liveCourseGroupVo.getTeacherId());
+            Map<Long, String> receivers = new HashMap<>();
+            receivers.put(user.getId(), user.getPhone());
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COURSE_OUT_SALE_REASON,
+                                               receivers, null, 0, null, ClientEnum.TEACHER.getCode(),
+                                               liveCourseGroupVo.getName(), dto.getReason());
+        } catch (Exception e) {
+            log.warn("直播课下架推送发送失败,{}", e.getMessage());
+        }
+    }
 }
 

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

@@ -137,7 +137,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean state(Long id) {
+    public boolean state(Long id, String reason) {
         MusicSheet musicSheet = this.getById(id);
         if (musicSheet == null) {
             throw new BizException("未找到曲目信息");
@@ -146,11 +146,28 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             musicSheet.setState(YesOrNoEnum.YES);
         } else {
             musicSheet.setState(YesOrNoEnum.NO);
+            musicSheet.setTopFlag(YesOrNoEnum.NO);
+
+            // 下架发送推送
+            sendOutSaleMessage(reason, musicSheet);
+
         }
         return this.updateById(musicSheet);
 
     }
 
+    private void sendOutSaleMessage(String reason, MusicSheet musicSheet) {
+        if(musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER)) {
+            SysUser sysUser = getSysUser(musicSheet.getUserId());
+            // 推送老师
+            Map<Long, String> teacherReceivers = new HashMap<>();
+            teacherReceivers.put(sysUser.getId(), sysUser.getPhone());
+
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.MUSIC_SHEET_OUT_SALE_REASON, teacherReceivers, null,
+                               0, null, ClientEnum.TEACHER.getCode(), musicSheet.getMusicSheetName(),reason);
+        }
+    }
+
     @Override
     public IPage<MusicSheetVo> selectAlbumDetailPage(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query) {
         return page.setRecords(baseMapper.selectAlbumDetailPage(page, query));
@@ -879,6 +896,25 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return result;
     }
 
+    @Override
+    public Boolean top(Long musicSheetId) {
+        MusicSheet musicSheet = getById(musicSheetId);
+
+        if (YesOrNoEnum.YES.equals(musicSheet.getTopFlag())) {
+            musicSheet.setTopFlag(YesOrNoEnum.NO);
+            return this.saveOrUpdate(musicSheet);
+        }
+        Integer count = this.lambdaQuery()
+                            .eq(MusicSheet::getDelFlag, YesOrNoEnum.NO)
+                            .eq(MusicSheet::getTopFlag, YesOrNoEnum.YES)
+                            .count();
+        if (count >=10) {
+            throw new BizException("首页推荐数量达到上限,请先取消其他曲谱推荐");
+        }
+        musicSheet.setTopFlag(YesOrNoEnum.YES);
+        return this.saveOrUpdate(musicSheet);
+    }
+
     private SysUser getSysUser(Long userId) {
         return Optional.ofNullable(userId)
                 .map(sysUserFeignService::queryUserById)

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java

@@ -60,6 +60,17 @@ public class LiveCourseGroupVo {
     @ApiModelProperty("订单号")
     private String orderNo;
 
+    @ApiModelProperty(value = "类型 practice陪练课 live直播课")
+    private String type;
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
     public Long getCourseNum() {
         return courseNum;
     }

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

@@ -289,6 +289,7 @@
             cg.course_num_ as courseNum,
             cg.created_time_ as createTime,
             cg.course_introduce_ as courseIntroduce,
+        cg.type_ as type,
             s.name_ as subjectName
         from course_group cg
          left join course_schedule_student_payment cssp on cg.id_ = cssp.course_group_id_

+ 6 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml

@@ -82,15 +82,16 @@
                 and t.audit_version_ = #{query.auditVersion}
             </if>
         </where>
+        order by t.sort_number_ desc,
         <if test="query.sortBy != null">
             <choose>
                 <when test="query.sortBy == 1">
-                    order by t2.num desc
+                    t2.num desc
                 </when>
             </choose>
         </if>
         <if test="query.sortBy == null">
-            order by t.id_ desc
+            t.id_ desc
         </if>
     </select>
 
@@ -232,15 +233,16 @@
                 and t.audit_version_ = #{query.auditVersion}
             </if>
         </where>
+        order by t.sort_number_ desc,
         <if test="query.sortBy != null">
             <choose>
                 <when test="query.sortBy == 1">
-                    order by t2.num desc
+                     t2.num desc
                 </when>
             </choose>
         </if>
         <if test="query.sortBy == null">
-            order by t.id_ desc
+             t.id_ desc
         </if>
     </select>
 </mapper>

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

@@ -79,7 +79,11 @@
             su.del_flag_ = 0
             <include refid="QueryInfo"/>
         </where>
-        order by  t.id_ desc
+        order by
+        <if test="param.myself == null or param.myself == false ">
+            t.top_flag_ desc,t.sort_number_ desc,
+        </if>
+         t.id_ desc
     </select>
 
     <sql id="QueryInfo">
@@ -155,7 +159,7 @@
             <if test="param.id != null">
                 <if test="param.type == 2">
                     and amr.album_id_ = #{param.id}
-                    order by amr.create_time_ desc
+                    order by amr.sort_number_ desc, t.id_ desc
                 </if>
                 <if test="param.type == 1">
                     and t.id_ not in(select amr2.music_sheet_id_  from album_music_relate amr2

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

@@ -165,7 +165,7 @@ public class MusicSheetController extends BaseController {
         }
         StudentMusicSheetSearch search = new StudentMusicSheetSearch();
         search.setStudentId(sysUser.getId());
-        search.setState(YesOrNoEnum.YES);
+        // search.setState(YesOrNoEnum.YES);
         search.setAuditStatus(AuthStatusEnum.PASS);
         search.setUserType(ClientEnum.STUDENT);
         IPage<MusicSheetVo> sheetVoIPage = musicSheetService.myMusic(PageUtil.getPage(query),search);

+ 3 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -131,6 +131,7 @@ public class MusicSheetController extends BaseController {
                 query.setState(YesOrNoEnum.YES);
             }
             query.setSourceType(SourceTypeEnum.TEACHER);
+            query.setMyself(true);
         } else {
             // 检查app版本
             query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(),query.getVersion()));
@@ -139,6 +140,7 @@ public class MusicSheetController extends BaseController {
             query.setState(YesOrNoEnum.YES);
             query.setAuditStatus(AuthStatusEnum.PASS);
             query.setStudentId(sysUser.getId());
+            query.setMyself(false);
         }
 
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectPage(PageUtil.getPage(query), query);
@@ -157,7 +159,7 @@ public class MusicSheetController extends BaseController {
             return failed("用户信息获取失败");
         }
         search.setStudentId(sysUser.getId());
-        search.setState(YesOrNoEnum.YES);
+        // search.setState(YesOrNoEnum.YES);
         search.setAuditStatus(AuthStatusEnum.PASS);
         IPage<MusicSheetVo> sheetVoIPage = musicSheetService.myMusic(PageUtil.getPage(search),search);
         return succeed(PageUtil.pageInfo(sheetVoIPage));

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

@@ -57,7 +57,7 @@ public class TeacherCourseGroupController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "teacherId", dataType = "Long", value = "老师id"),
             @ApiImplicitParam(name = "search", dataType = "String", value = "关键字"),
-            @ApiImplicitParam(name = "groupStatus", dataType = "String", value = "课程组状态  ING(进行中)  NOT_SALE(未开售,未上架) APPLY(报名中,销售中) COMPLETE(已完成)"),
+            @ApiImplicitParam(name = "groupStatus", dataType = "String", value = "课程组状态  ING(进行中)  NOT_SALE(未开售,未上架) APPLY(报名中,销售中) COMPLETE(已完成) OUT_SALE(已下架)"),
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
             @ApiImplicitParam(name = "myself", dataType = "Boolean", value = "查看我自己的直播课"),