Prechádzať zdrojové kódy

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 rokov pred
rodič
commit
b3874b949f

+ 11 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherController.java

@@ -1,6 +1,8 @@
 package com.yonge.cooleshow.admin.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
@@ -9,6 +11,7 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -18,6 +21,9 @@ import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 @RestController
 @RequestMapping("/teacher")
 @Api(value = "教师表", tags = "教师表")
@@ -37,6 +43,11 @@ public class TeacherController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('teacher/detail')")
     public HttpResponseResult<TeacherVo> detail(@PathVariable("id") Long userId) {
         TeacherVo detail = teacherService.detail(userId);
+        if (null != detail && !CollectionUtils.isEmpty(detail.getStyleVideo())) {
+            List<TeacherStyleVideo> styleVideo = detail.getStyleVideo();
+            List<TeacherStyleVideo> collect = styleVideo.stream().filter(o -> AuthStatusEnum.PASS.equals(o.getAuthStatus())).collect(Collectors.toList());
+            detail.setStyleVideo(collect);
+        }
         return succeed(detail);
     }
 

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

@@ -34,4 +34,12 @@ public interface MemberPriceSettingsDao extends BaseMapper<MemberPriceSettings>{
      * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo>
      */
     List<MemberPriceSettingsVo> selectList(@Param("param") MemberPriceSettingsSearch param);
+
+    /**
+     * 根据订单详情id查询会员卡
+     *
+     * @param orderDetilId
+     * @return
+     */
+    MemberPriceSettings getMemberPriceByOrderDetilId(@Param("orderDetilId") Long orderDetilId);
 }

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

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.biz.dal.entity.VipCardRecord;
 import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
@@ -46,4 +47,5 @@ public interface VipCardRecordDao extends BaseMapper<VipCardRecord> {
      */
     List<VipCardRecordVo> selectExpireRecord();
 
+
 }

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

@@ -3,6 +3,7 @@ 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.dto.req.OrderReq;
+import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
@@ -34,6 +35,13 @@ public interface VipCardRecordService extends IService<VipCardRecord> {
     VipCardRecordVo detail(Long orderDetilId, Long userId);
 
     /**
+     * 构建VipCardRecord对象
+     * @param orderDetailVo
+     * @return
+     */
+    VipCardRecord buildVipCardRecordByOrderDetail(UserOrderDetailVo orderDetailVo);
+
+    /**
      * 分页查询
      *
      * @author liweifan

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

@@ -2129,6 +2129,12 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             throw new BizException("课程结束时间计算错误");
         }
 
+        //课程改为过去式避免校验时报错
+        baseMapper.update(null, Wrappers.<CourseSchedule>lambdaUpdate()
+                .eq(CourseSchedule::getId, courseId)
+                .set(CourseSchedule::getStartTime, DateUtil.getYesterday())
+                .set(CourseSchedule::getEndTime, DateUtil.getYesterday()));
+
         //批量检查老师课时在数据库是否重复
         this.batchCheckTeacherCourseTime(teacherId, timeList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime);
 

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

@@ -114,10 +114,6 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             //获取节拍器信息
             joinRoomResult.setMidiJson(courseScheduleStudentPaymentService.getMemberMidi(courseScheduleId,sysUser.getUserId()));
         }
-//        //获取用户已下载的伴奏列表
-//        List<CourseScheduleStudentMusicSheetResult> musicSheetResults = courseScheduleStudentMusicSheetService.getDao().
-//                queryBySheetIdAndCourseId(null,courseScheduleId,sysUser.getUserId(),null,null);
-//        joinRoomResult.setMusicSheetResults(musicSheetResults);
         //课程结束后关闭教室的时间
         joinRoomResult.setAutoCloseNetworkRoomTime(sysConfigDao.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_PRACTICE_ROOM_MINUTE));
         //创建、加入群聊
@@ -604,7 +600,6 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             room.setUpdateTime(now);
             room.setDisplay(display);
             baseMapper.insert(room);
-            this.sendDisplay(userId,room);
             IMApiResultInfo resultInfo = imHelper.createGroup(new String[]{userId.toString()}, roomId, roomId);
             if(resultInfo.getCode() != 200){
                 log.error("创建群聊失败 resultInfo:{}",resultInfo);

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

@@ -25,6 +25,7 @@ import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 import com.yonge.cooleshow.biz.dal.dao.MemberPriceSettingsDao;
 import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
@@ -75,55 +76,31 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 
     @Override
     public void orderSuccess(UserOrderDetailVo orderDetailVo) {
-        MemberPriceSettingsVo detail = detail(orderDetailVo.getBizId());
-        if (null == detail) {
+        StudentVo studentVo = studentService.detail(orderDetailVo.getUserId());
+        if (null == studentVo) {
             return;
         }
-        StudentVo studentVo = studentService.detail(orderDetailVo.getUserId());
-        //修改用户会员时长
-        Date membershipEndTime = studentVo.getMembershipEndTime();
-        Calendar now = Calendar.getInstance();
-
-        VipCardRecord vipCardRecord = new VipCardRecord();
-        vipCardRecord.setUserId(orderDetailVo.getUserId());
-        vipCardRecord.setOrderNo(orderDetailVo.getOrderNo());
-        vipCardRecord.setSubOrderNo(orderDetailVo.getSubOrderNo());
-        vipCardRecord.setVipCardId(detail.getId());
-        vipCardRecord.setMsgStatus(0);
-
-        if (null == membershipEndTime || membershipEndTime.before(new Date())) {
-            //没有会员、会员已过期
-            studentVo.setMembershipStartTime(now.getTime());
+        VipCardRecord vipCardRecord = vipCardRecordService.buildVipCardRecordByOrderDetail(orderDetailVo);
+
+        if (null == studentVo.getMembershipEndTime() || studentVo.getMembershipEndTime().before(new Date())) {
+            //没有会员、会员已过期 会员卡生效时间为当前时间
+            studentVo.setMembershipStartTime(vipCardRecord.getStartTime());
+            studentVo.setMembershipEndTime(vipCardRecord.getEndTime());
         } else {
-            now.setTime(studentVo.getMembershipEndTime());
-        }
-        vipCardRecord.setStartTime(now.getTime());
-
-        if (PeriodEnum.DAY.equals(detail.getPeriod())) {
-            now.add(Calendar.DAY_OF_MONTH, 1);
-        } else if (PeriodEnum.MONTH.equals(detail.getPeriod())) {
-            now.add(Calendar.MONTH, 1);
-        } else if (PeriodEnum.QUARTERLY.equals(detail.getPeriod())) {
-            now.add(Calendar.MONTH, 3);
-        } else if (PeriodEnum.YEAR_HALF.equals(detail.getPeriod())) {
-            now.add(Calendar.MONTH, 6);
-        } else if (PeriodEnum.YEAR.equals(detail.getPeriod())) {
-            now.add(Calendar.YEAR, 1);
+            studentVo.setMembershipEndTime(vipCardRecord.getEndTime());
         }
-
-        vipCardRecord.setEndTime(now.getTime());
-        studentVo.setMembershipEndTime(now.getTime());
         studentVo.setMemberRankSettingId(1l);
         studentVo.setUpdateTime(new Date());
         studentService.updateById(studentVo);
         //会员购买记录入库
         vipCardRecordService.save(vipCardRecord);
-
         //会员购买消息推送
         authSend(studentVo.getUserId(), studentVo.getPhone(), DateUtil.format(vipCardRecord.getEndTime(), DateUtil.DEFAULT_PATTERN));
     }
 
 
+
+
     // 发送会员购买消息推送
     private void authSend(Long userId, String phone, String param1) {
         Map<Long, String> receivers = new HashMap<>();

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

@@ -2,10 +2,15 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.dao.MemberPriceSettingsDao;
+import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
-import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
-import com.yonge.cooleshow.biz.dal.service.SysMessageService;
+import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentVo;
+import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -16,12 +21,8 @@ import com.yonge.cooleshow.biz.dal.entity.VipCardRecord;
 import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
 import com.yonge.cooleshow.biz.dal.dto.search.VipCardRecordSearch;
 import com.yonge.cooleshow.biz.dal.dao.VipCardRecordDao;
-import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 @Service
@@ -30,6 +31,14 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
 
     @Autowired
     private SysMessageService sysMessageService;
+    @Autowired
+    private MemberPriceSettingsDao memberPriceSettingsDao;
+    @Autowired
+    private StudentService studentService;
+    @Autowired
+    private MemberPriceSettingsService memberPriceSettingsService;
+    @Autowired
+    private UserOrderDetailService orderDetailService;
 
     @Override
     public VipCardRecordVo detail(Long orderDetilId) {
@@ -38,7 +47,69 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
 
     @Override
     public VipCardRecordVo detail(Long orderDetilId, Long userId) {
-        return baseMapper.detail(orderDetilId, userId);
+        VipCardRecordVo detail = baseMapper.detail(orderDetilId, userId);
+        if (null == detail && null != userId) {
+            detail = new VipCardRecordVo();
+
+            UserOrderDetailVo orderDetailVo = orderDetailService.detail(orderDetilId);
+            VipCardRecord vipCardRecord = buildVipCardRecordByOrderDetail(orderDetailVo);
+            if (null == vipCardRecord) {
+                return detail;
+            }
+            BeanUtils.copyProperties(vipCardRecord, detail);
+            MemberPriceSettings memberPrice = memberPriceSettingsDao.getMemberPriceByOrderDetilId(orderDetilId);
+            detail.setOriginalPrice(memberPrice.getOriginalPrice());
+            detail.setSalePrice(memberPrice.getSalePrice());
+            detail.setPeriod(memberPrice.getPeriod());
+        }
+        return detail;
+    }
+
+    @Override
+    public VipCardRecord buildVipCardRecordByOrderDetail(UserOrderDetailVo orderDetailVo) {
+        if (null == orderDetailVo) {
+            return null;
+        }
+        MemberPriceSettingsVo detail = memberPriceSettingsService.detail(orderDetailVo.getBizId());
+        if (null == detail) {
+            return null;
+        }
+        StudentVo studentVo = studentService.detail(orderDetailVo.getUserId());
+        if (null == studentVo) {
+            return null;
+        }
+        //修改用户会员时长
+        Date membershipEndTime = studentVo.getMembershipEndTime();
+
+        VipCardRecord vipCardRecord = new VipCardRecord();
+        vipCardRecord.setUserId(orderDetailVo.getUserId());
+        vipCardRecord.setOrderNo(orderDetailVo.getOrderNo());
+        vipCardRecord.setSubOrderNo(orderDetailVo.getSubOrderNo());
+        vipCardRecord.setVipCardId(detail.getId());
+        vipCardRecord.setMsgStatus(0);
+
+        if (null == membershipEndTime || membershipEndTime.before(new Date())) {
+            //没有会员、会员已过期 会员卡生效时间为当前时间
+            vipCardRecord.setStartTime(new Date());
+        } else {
+            vipCardRecord.setStartTime(membershipEndTime);
+        }
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(vipCardRecord.getStartTime());
+
+        if (PeriodEnum.DAY.equals(detail.getPeriod())) {
+            cal.add(Calendar.DAY_OF_MONTH, 1);
+        } else if (PeriodEnum.MONTH.equals(detail.getPeriod())) {
+            cal.add(Calendar.MONTH, 1);
+        } else if (PeriodEnum.QUARTERLY.equals(detail.getPeriod())) {
+            cal.add(Calendar.MONTH, 3);
+        } else if (PeriodEnum.YEAR_HALF.equals(detail.getPeriod())) {
+            cal.add(Calendar.MONTH, 6);
+        } else if (PeriodEnum.YEAR.equals(detail.getPeriod())) {
+            cal.add(Calendar.YEAR, 1);
+        }
+        vipCardRecord.setEndTime(cal.getTime());
+        return vipCardRecord;
     }
 
     @Override
@@ -88,7 +159,6 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
 
     }
 
-
     // 发送会员到期3天消息推送
     private void temporary3DaysSend(Long userId, String phone) {
         Map<Long, String> receivers = new HashMap<>();

+ 9 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MemberPriceSettingsMapper.xml

@@ -48,4 +48,13 @@
 	<select id="selectList" resultType="com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo">
 		<include refid="selectSql"/>
 	</select>
+
+    <select id="getMemberPriceByOrderDetilId"
+            resultType="com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings">
+		SELECT
+			<include refid="baseColumns"/>
+		FROM user_order_detail d
+		left join member_price_settings t on d.biz_id_ = t.id_
+		where d.good_type_ = 'VIP' and  d.id_ = #{orderDetilId}
+	</select>
 </mapper>

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

@@ -48,14 +48,18 @@
 
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
         SELECT
-            <include refid="baseColumns"/>
+            <include refid="baseColumns"/>,
+               o.user_id_ as userId
         FROM user_order_detail t
+        left join user_order o on t.order_no_ = o.order_no_
         where t.id_ = #{id}
     </select>
     <select id="detailByOrderNo" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
         SELECT
-            <include refid="baseColumns"/>
+            <include refid="baseColumns"/>,
+            o.user_id_ as userId
         FROM user_order_detail t
+        left join user_order o on t.order_no_ = o.order_no_
         where t.order_no_ = #{orderNo}
     </select>
 

+ 4 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/VipCardRecordMapper.xml

@@ -80,4 +80,8 @@
         and msg_status_ in (0,1)
         order by end_time_ desc
     </select>
+    <select id="getMemberPriceByOrderDetilId"
+            resultType="com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings">
+
+    </select>
 </mapper>