|
@@ -246,12 +246,10 @@ public class FsUserCourseOrderServiceImpl implements IFsUserCourseOrderService
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional
|
|
@Transactional
|
|
|
public R createOrder(FsUserCourseOrderCreateParam param) {
|
|
public R createOrder(FsUserCourseOrderCreateParam param) {
|
|
|
- FsUserCourseOrder order = fsUserCourseOrderMapper.selectFsUserCourseOrderByCourse(param.getUserId(),param.getCourseId());
|
|
|
|
|
- if (order!=null&&order.getStatus()==1){
|
|
|
|
|
- return R.ok("订单已存在").put("order",order);
|
|
|
|
|
- }
|
|
|
|
|
- if (order!=null&&order.getStatus()==2){
|
|
|
|
|
- return R.error("该课程已购买");
|
|
|
|
|
|
|
+ // 按小节校验是否已购买,避免买过某一小节后无法再买其他小节
|
|
|
|
|
+ FsUserCourseOrder order = fsUserCourseOrderMapper.selectFsUserCourseOrderByCourseVideo(param.getUserId(), param.getVideoId());
|
|
|
|
|
+ if (order != null) {
|
|
|
|
|
+ return R.error("该小节已购买");
|
|
|
}
|
|
}
|
|
|
FsUser user=fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
FsUser user=fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
|
FsUserCourse course = fsUserCourseMapper.selectFsUserCourseByCourseId(param.getCourseId());
|
|
FsUserCourse course = fsUserCourseMapper.selectFsUserCourseByCourseId(param.getCourseId());
|
|
@@ -270,6 +268,7 @@ public class FsUserCourseOrderServiceImpl implements IFsUserCourseOrderService
|
|
|
order.setPayMoney(course.getSellPrice());
|
|
order.setPayMoney(course.getSellPrice());
|
|
|
order.setPayType(param.getPayType());
|
|
order.setPayType(param.getPayType());
|
|
|
order.setStatus(1);
|
|
order.setStatus(1);
|
|
|
|
|
+ order.setCourseVideoId(param.getVideoId());
|
|
|
|
|
|
|
|
String orderCode = OrderCodeUtils.getOrderSn();
|
|
String orderCode = OrderCodeUtils.getOrderSn();
|
|
|
if(StringUtils.isEmpty(orderCode)){
|
|
if(StringUtils.isEmpty(orderCode)){
|
|
@@ -931,7 +930,14 @@ public class FsUserCourseOrderServiceImpl implements IFsUserCourseOrderService
|
|
|
study.setCreateTime(new Date());
|
|
study.setCreateTime(new Date());
|
|
|
fsUserCourseStudyMapper.insertFsUserCourseStudy(study);
|
|
fsUserCourseStudyMapper.insertFsUserCourseStudy(study);
|
|
|
}
|
|
}
|
|
|
- List<FsUserCourseVideo> videoList = fsUserCourseVideoMapper.selectFsUserCourseListByCourseId(order.getCourseId());
|
|
|
|
|
|
|
+ // 按小节购买仅解锁当前小节
|
|
|
|
|
+ List<FsUserCourseVideo> videoList;
|
|
|
|
|
+ if (order.getCourseVideoId() != null) {
|
|
|
|
|
+ FsUserCourseVideo video = fsUserCourseVideoMapper.selectFsUserCourseVideoByVideoId(order.getCourseVideoId());
|
|
|
|
|
+ videoList = video == null ? Collections.emptyList() : Collections.singletonList(video);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ videoList = fsUserCourseVideoMapper.selectFsUserCourseListByCourseId(order.getCourseId());
|
|
|
|
|
+ }
|
|
|
for (FsUserCourseVideo video:videoList){
|
|
for (FsUserCourseVideo video:videoList){
|
|
|
FsUserCourseStudyLog log = fsUserCourseStudyLogMapper.selectFsUserCourseStudyLogByVideo(order.getUserId(),video.getVideoId());
|
|
FsUserCourseStudyLog log = fsUserCourseStudyLogMapper.selectFsUserCourseStudyLogByVideo(order.getUserId(),video.getVideoId());
|
|
|
if (log==null){
|
|
if (log==null){
|
|
@@ -989,7 +995,13 @@ public class FsUserCourseOrderServiceImpl implements IFsUserCourseOrderService
|
|
|
study.setCreateTime(new Date());
|
|
study.setCreateTime(new Date());
|
|
|
fsUserCourseStudyMapper.insertFsUserCourseStudy(study);
|
|
fsUserCourseStudyMapper.insertFsUserCourseStudy(study);
|
|
|
}
|
|
}
|
|
|
- List<FsUserCourseVideo> videoList = fsUserCourseVideoMapper.selectFsUserCourseListByCourseId(order.getCourseId());
|
|
|
|
|
|
|
+ List<FsUserCourseVideo> videoList;
|
|
|
|
|
+ if (order.getCourseVideoId() != null) {
|
|
|
|
|
+ FsUserCourseVideo video = fsUserCourseVideoMapper.selectFsUserCourseVideoByVideoId(order.getCourseVideoId());
|
|
|
|
|
+ videoList = video == null ? Collections.emptyList() : Collections.singletonList(video);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ videoList = fsUserCourseVideoMapper.selectFsUserCourseListByCourseId(order.getCourseId());
|
|
|
|
|
+ }
|
|
|
for (FsUserCourseVideo video:videoList){
|
|
for (FsUserCourseVideo video:videoList){
|
|
|
FsUserCourseStudyLog log = fsUserCourseStudyLogMapper.selectFsUserCourseStudyLogByVideo(order.getUserId(),video.getVideoId());
|
|
FsUserCourseStudyLog log = fsUserCourseStudyLogMapper.selectFsUserCourseStudyLogByVideo(order.getUserId(),video.getVideoId());
|
|
|
if (log==null){
|
|
if (log==null){
|