Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

weifanli 2 лет назад
Родитель
Сommit
63f81800c5

+ 33 - 0
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/NewsController.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.cms.controller;
 
 import com.yonge.cooleshow.cms.dal.entity.NewsStatusEnum;
+import com.yonge.cooleshow.cms.dto.AppHomeDto;
 import com.yonge.cooleshow.cms.dto.SysNewsInformationDto;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -10,6 +11,7 @@ import io.swagger.annotations.ApiOperation;
 
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -126,4 +128,35 @@ public class NewsController extends BaseController {
 		}
 		return succeed(sysNewsInformationService.updateStatus(id));
 	}
+
+	@ApiOperation("app首页banner、按钮、资讯")
+	@PostMapping(value = "/app/home")
+	public HttpResponseResult<AppHomeDto> appHome() {
+		AppHomeDto appHomeDto = new AppHomeDto();
+		NewsInformationQueryInfo queryInfo = new NewsInformationQueryInfo();
+		queryInfo.setStatus(NewsStatusEnum.SHOW);
+		queryInfo.setPlatformType("STUDENT");
+		// 1热门资讯
+		queryInfo.setType(1);
+		queryInfo.setPage(1);
+		queryInfo.setRows(3);
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+		List<SysNewsInformationDto> rows = sysNewsInformationService.selectPage(queryInfo).getRows();
+		appHomeDto.setInformation(rows);
+
+		// 轮播图
+		queryInfo.setType(4);
+		queryInfo.setRows(999);
+		params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+		appHomeDto.setBanner(sysNewsInformationService.selectPage(queryInfo).getRows());
+		// 闪页
+		queryInfo.setType(3);
+		queryInfo.setRows(999);
+		params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+		appHomeDto.setFlashPage(sysNewsInformationService.selectPage(queryInfo).getRows());
+		return succeed(appHomeDto);
+	}
 }

+ 50 - 0
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dto/AppHomeDto.java

@@ -0,0 +1,50 @@
+package com.yonge.cooleshow.cms.dto;
+
+import com.yonge.cooleshow.cms.controller.queryinfo.NewsInformationQueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-04-24
+ */
+@ApiModel("app首页信息")
+public class AppHomeDto {
+
+    @ApiModelProperty("资讯")
+    private List<SysNewsInformationDto> information;
+
+    @ApiModelProperty("banner")
+    private List<SysNewsInformationDto> banner;
+
+    @ApiModelProperty("闪页")
+    private List<SysNewsInformationDto> flashPage;
+
+    public List<SysNewsInformationDto> getInformation() {
+        return information;
+    }
+
+    public void setInformation(List<SysNewsInformationDto> information) {
+        this.information = information;
+    }
+
+    public List<SysNewsInformationDto> getBanner() {
+        return banner;
+    }
+
+    public void setBanner(List<SysNewsInformationDto> banner) {
+        this.banner = banner;
+    }
+
+    public List<SysNewsInformationDto> getFlashPage() {
+        return flashPage;
+    }
+
+    public void setFlashPage(List<SysNewsInformationDto> flashPage) {
+        this.flashPage = flashPage;
+    }
+}

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

@@ -123,16 +123,6 @@ public interface CourseGroupService extends IService<CourseGroup> {
     HttpResponseResult<OrderCreateRes> buyLiveCourse(OrderReq.OrderReqInfo orderReqInfo);
 
     /**
-     * 待订单创建完毕后继续后续操作
-     *
-     * @param afterParam 传入参数
-     *                   <p> - courseList    课程列表
-     *                   <p> - studentId    学员id
-     *                   <p> - courseGroup   直播课程组信息
-     */
-    void buyLiveCourseAfter(UserOrderDetailVo afterParam);
-
-    /**
      * 学生购买直播课程-成功-回调
      */
     void buyLiveCourseSuccess(UserOrderDetailVo orderParam);

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

@@ -525,7 +525,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Transactional(rollbackFor = Exception.class)
     @Override
     public HttpResponseResult<OrderCreateRes> buyLiveCourse(OrderReq.OrderReqInfo orderReqInfo) {
-        log.info("学生购买直播课程组,请求参数:{}", JSON.toJSONString(orderReqInfo));
+        log.info("buyLiveCourse  param:{}", JSON.toJSONString(orderReqInfo));
         Map<String, Object> param = WrapperUtil.toMap(orderReqInfo.getBizContent());
         Long groupId = WrapperUtil.toLong(param, "groupId", "课程组id不能为空!");
         Long studentId = orderReqInfo.getUserId();
@@ -547,44 +547,34 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         }
         //校验购买的课程组每节课时间是否和自己的课时冲突
         batchCheckStudentCourseTime(studentId, courseList, CourseSchedule::getStartTime, CourseSchedule::getEndTime);
-        //将该数据传递到后面的after方法使用
-        Map<String, Object> bizParam = new HashMap<>();
-        bizParam.put("courseGroup", courseGroup);
-        bizParam.put("courseList", courseList);
-        bizParam.put("studentId", studentId);
+        //写入学生购买课程记录
+        buyLiveCourseAfter(orderReqInfo.getOrderNo(), studentId, courseList, courseGroup);
+
         OrderCreateRes orderCreateRes = new OrderCreateRes();
         orderCreateRes.setRes(true);
         orderCreateRes.setMerchId(courseGroup.getTeacherId());
         orderCreateRes.setBizId(courseGroup.getId());
         orderCreateRes.setOriginalPrice(courseGroup.getCoursePrice());
         orderCreateRes.setExpectPrice(courseGroup.getCoursePrice());
-        orderCreateRes.setBizParam(bizParam);
         orderCreateRes.setGoodNum(courseGroup.getCourseNum());
         orderCreateRes.setGoodType(GoodTypeEnum.LIVE);
 
         HttpResponseResult<OrderCreateRes> httpResponseResult = new HttpResponseResult<>();
         httpResponseResult.setData(orderCreateRes);
+        log.info("buyLiveCourse  return {}", httpResponseResult);
         return httpResponseResult;
     }
 
     /**
      * 待订单创建完毕后继续后续操作
      *
-     * @param afterParam 传入参数
-     *                   <p> - courseList    课程列表
-     *                   <p> - studentId    学员id
-     *                   <p> - courseGroup   直播课程组信息
+     * @param orderNo     订单号
+     * @param courseList  课程列表
+     * @param studentId   学员id
+     * @param courseGroup 直播课程组信息
      */
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void buyLiveCourseAfter(UserOrderDetailVo afterParam) {
-        log.info("学生购买直播课程组 after ,请求参数:{}", JSON.toJSONString(afterParam));
-        Map<String, Object> param = WrapperUtil.toMap(afterParam.getBizParam());
-        String orderNo = afterParam.getOrderNo();
-        Long studentId = (Long) param.get("studentId");
-        List<CourseSchedule> courseList = JSONArray.parseArray(JSON.toJSONString(param.get("courseList")), CourseSchedule.class);
-        CourseGroup courseGroup = (CourseGroup) param.get("courseGroup");
-
+    private void buyLiveCourseAfter(String orderNo, Long studentId, List<CourseSchedule> courseList, CourseGroup courseGroup) {
+        log.info("buyLiveCourse buyLiveCourseAfter -> order {} studentId {} courseList {} courseGroup {}", orderNo, studentId, JSON.toJSONString(courseList), JSON.toJSONString(courseGroup));
         //获取每节课购买的价格
         Map<Integer, BigDecimal> courseAveragePrice = WrapperUtil.getAveragePrice(courseGroup.getCourseNum(), courseGroup.getCoursePrice());
         //写course_schedule_student_payment表 作为记录锁定时间用,防止重复购买,如果支付失败则删除该数据
@@ -615,7 +605,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void buyLiveCourseSuccess(UserOrderDetailVo orderParam) {
-        log.info("学生购买直播课程-成功-回调,请求参数:{}", JSON.toJSONString(orderParam));
+        log.info("buyLiveCourseSuccess param :{}", JSON.toJSONString(orderParam));
         String orderNo = orderParam.getOrderNo();
         //更新课程组的购买人数+1
         CourseScheduleStudentPayment studentPayment = courseScheduleStudentPaymentService.getOne(Wrappers.<CourseScheduleStudentPayment>lambdaQuery()
@@ -659,17 +649,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             teacherSalaryList.add(teacherSalary);
         });
         courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
-    }
-
-    /**
-     * 学生购买直播课-失败-回调
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void buyLiveCourseFailed(String orderNo) {
-        //删除 course_schedule_student_payment表 数据
-
-
-        //修改订单为失败
+        log.info("buyLiveCourseSuccess ok");
     }
 
     private SysUser getSysUser(Long userId) {

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

@@ -22,14 +22,7 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
     @Transactional(rollbackFor = Exception.class)
     public boolean audit(TeacherMusicSheetAuditReq param, Long userId) {
 
-        List<MusicSheetAuthRecord> list = this.lambdaQuery()
-                                              .eq(MusicSheetAuthRecord::getMusicSheetId, param.getMusicSheetId())
-                                              .eq(MusicSheetAuthRecord::getVerifyUserId, userId)
-                                              .list();
         MusicSheetAuthRecord musicSheetAuthRecord = new MusicSheetAuthRecord();
-        if (!CollectionUtils.isEmpty(list)) {
-            musicSheetAuthRecord = list.get(0);
-        }
         musicSheetAuthRecord.setMusicSheetId(param.getMusicSheetId());
         musicSheetAuthRecord.setCreateTime(new Date());
         musicSheetAuthRecord.setAuditState(param.getAuthStatus());

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

@@ -232,7 +232,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
         if (musicSheet == null) {
             throw  new BizException("未找到曲目信息");
         }
-        if (AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
+        if (!AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
             throw  new BizException("曲目已经过审批");
         }
 

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

@@ -57,6 +57,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     private CourseGroupService courseGroupService;
     @Autowired
     private CourseScheduleService scheduleService;
+    @Autowired
+    private VideoLessonPurchaseRecordService recordService;
 
     //验证订单是否可以下单
     private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
@@ -76,10 +78,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         orderCreate.put(GoodTypeEnum.LIVE, courseGroupService::buyLiveCourse);
         //陪练课购买
         orderCreate.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourse);
+        //视频课购买
+        orderCreate.put(GoodTypeEnum.VIDEO, recordService::buyVideoCourse);
 
         /**********订单生成后******************/
-        //直播课程购买after
-        orderAfter.put(GoodTypeEnum.LIVE, courseGroupService::buyLiveCourseAfter);
 
         /**********订单完成后******************/
         //vip开通缴费
@@ -88,9 +90,14 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         orderSuccess.put(GoodTypeEnum.LIVE, courseGroupService::buyLiveCourseSuccess);
         //陪练课购买
         orderSuccess.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourseSuccess);
+        //视频课购买
+        orderSuccess.put(GoodTypeEnum.VIDEO, recordService::buyVideoCourseSuccess);
 
         /**********订单取消后******************/
+        //陪练课购买
         orderCancel.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourseFailed);
+        //视频课购买
+        orderCancel.put(GoodTypeEnum.VIDEO, recordService::buyVideoCourseFailed);
     }
 
     @Override

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

@@ -45,7 +45,7 @@
     </select>
 
     <select id="queryStudentInfoByGroupId" resultType="com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo$CourseBuyStudentVo">
-        select a.user_id_      as studentId,
+        select distinct a.user_id_      as studentId,
                b.real_name_    as studentName,
                b.avatar_ as avatar,
                a.created_time_ as createTime

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

@@ -111,7 +111,7 @@
     </sql>
 
     <select id="selectAlbumDetailPage" resultType="com.yonge.cooleshow.biz.dal.vo.MusicSheetVo">
-        select <include refid="Base_Column_List"/>
+        select distinct <include refid="Base_Column_List"/>
         ,(select group_concat(mt.name_) from music_tag mt
         where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0) as musicTagNames
         ,(select group_concat(s.name_) from subject s
@@ -147,8 +147,8 @@
                     order by amr.create_time_
                 </if>
                 <if test="param.type == 1">
-                    and not exists(select amr2.music_sheet_id_  from album_music_relate amr2
-                        where amr2.album_id_ = #{param.id} and t.id_ = amr2.music_sheet_id_)
+                    and t.id_ not in(select amr2.music_sheet_id_  from album_music_relate amr2
+                        where amr2.album_id_ = #{param.id})
                 </if>
             </if>
         </where>

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

@@ -51,7 +51,7 @@ public class TeacherFreeTimeController extends BaseController {
 
     @ApiOperation(value = "获取老师陪练课设置")
     @PostMapping("/getDetail")
-    public HttpResponseResult<TeacherFreeTimeVo> getDetail(@Valid @RequestBody PracticeTimesSetting practiceTimesSetting){
+    public HttpResponseResult<TeacherFreeTimeVo> getDetail(@RequestBody PracticeTimesSetting practiceTimesSetting){
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");