|
@@ -1,15 +1,23 @@
|
|
|
package com.fs.course.service.impl;
|
|
|
|
|
|
-import java.time.LocalDate;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.util.List;
|
|
|
-import com.fs.common.utils.DateUtils;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.fs.common.exception.ServiceException;
|
|
|
+import com.fs.course.domain.FsUserCoursePeriod;
|
|
|
+import com.fs.course.domain.FsUserCoursePeriodDays;
|
|
|
+import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
|
|
|
+import com.fs.course.mapper.FsUserCoursePeriodMapper;
|
|
|
+import com.fs.course.service.IFsUserCoursePeriodService;
|
|
|
import com.fs.course.vo.FsUserCoursePeriodVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import com.fs.course.mapper.FsUserCoursePeriodMapper;
|
|
|
-import com.fs.course.domain.FsUserCoursePeriod;
|
|
|
-import com.fs.course.service.IFsUserCoursePeriodService;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* 会员营期Service业务层处理
|
|
@@ -22,6 +30,8 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
|
|
|
{
|
|
|
@Autowired
|
|
|
private FsUserCoursePeriodMapper fsUserCoursePeriodMapper;
|
|
|
+ @Resource
|
|
|
+ private FsUserCoursePeriodDaysMapper fsUserCoursePeriodDaysMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询会员营期
|
|
@@ -109,4 +119,50 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
|
|
|
public List<FsUserCoursePeriodVO> selectFsUserCoursePeriodPage(FsUserCoursePeriod fsUserCoursePeriod) {
|
|
|
return fsUserCoursePeriodMapper.selectFsUserCoursePeriodPage(fsUserCoursePeriod);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 结束营期
|
|
|
+ * @param id 营期ID
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public void closePeriod(Long id) {
|
|
|
+ // 修改营期结束时间
|
|
|
+ FsUserCoursePeriod fsUserCoursePeriod = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(id);
|
|
|
+ if (Objects.isNull(fsUserCoursePeriod)) {
|
|
|
+ throw new ServiceException("结束营期失败:营期不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (fsUserCoursePeriod.getPeriodStatus() == 1) {
|
|
|
+ throw new ServiceException("结束营期失败:营期未开始不能进行结束操作!");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (fsUserCoursePeriod.getPeriodStatus() == 3) {
|
|
|
+ throw new ServiceException("结束营期失败:营期已结束不能进行结束操作!");
|
|
|
+ }
|
|
|
+
|
|
|
+ fsUserCoursePeriod.setPeriodEndTime(LocalDate.now());
|
|
|
+ fsUserCoursePeriodMapper.updateFsUserCoursePeriod(fsUserCoursePeriod);
|
|
|
+
|
|
|
+ // 修改大于当前时间的课程状态
|
|
|
+ Wrapper<FsUserCoursePeriodDays> updateWrapper = Wrappers.<FsUserCoursePeriodDays>lambdaUpdate()
|
|
|
+ .set(FsUserCoursePeriodDays::getStatus, 2)
|
|
|
+ .eq(FsUserCoursePeriodDays::getPeriodId, fsUserCoursePeriod.getPeriodId())
|
|
|
+ .eq(FsUserCoursePeriodDays::getStatus, 0)
|
|
|
+ .gt(FsUserCoursePeriodDays::getDayDate, LocalDate.now());
|
|
|
+ fsUserCoursePeriodDaysMapper.update(null, updateWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新营期状态
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public void changePeriodStatus() {
|
|
|
+ // 开营
|
|
|
+ fsUserCoursePeriodMapper.startPeriod(LocalDate.now());
|
|
|
+
|
|
|
+ // 关营
|
|
|
+ fsUserCoursePeriodMapper.endPeriod(LocalDate.now());
|
|
|
+ }
|
|
|
}
|