|
@@ -8,11 +8,14 @@ import com.ym.mec.biz.dal.entity.StudentMemberUpdateLog;
|
|
|
import com.ym.mec.biz.dal.enums.PeriodEnum;
|
|
|
import com.ym.mec.biz.service.StudentMemberTimeService;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
+import org.joda.time.DateTime;
|
|
|
+import org.joda.time.DateTimeUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -40,22 +43,32 @@ public class StudentMemberTimeServiceImpl extends ServiceImpl<StudentMemberTimeD
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void saveToStudentMemberUpdateLog(StudentMemberUpdateLog studentMemberUpdateLog) {
|
|
|
- StudentMemberTime one = this.lambdaQuery().eq(StudentMemberTime::getMemberRankId, studentMemberUpdateLog.getLevel()).last("limit 1").one();
|
|
|
+ StudentMemberTime one = this.lambdaQuery()
|
|
|
+ .eq(StudentMemberTime::getMemberRankId, studentMemberUpdateLog.getLevel())
|
|
|
+ .eq(StudentMemberTime::getStudentId, studentMemberUpdateLog.getStudentId())
|
|
|
+ .last("limit 1").one();
|
|
|
//扣减
|
|
|
- Date now = new Date();
|
|
|
+ LocalDate nowDate = LocalDate.now().plusDays(1);
|
|
|
+ // 转 Date
|
|
|
+ Date now = DateUtil.localDateToDate(nowDate);
|
|
|
if(studentMemberUpdateLog.getBuyType() == 3){
|
|
|
if (one == null) {
|
|
|
- throw new RuntimeException("会员信息不存在");
|
|
|
+ throw new RuntimeException("学练宝信息不存在");
|
|
|
}
|
|
|
studentMemberUpdateLog.setOldEndTime(one.getEndTime());
|
|
|
- if (one.getEndTime().after(now)) {
|
|
|
+ if (one.getEndTime().after(new Date())) {
|
|
|
+ int i = DateUtil.daysBetweenUp(new Date(), one.getEndTime());
|
|
|
+ if (i<studentMemberUpdateLog.getTime()) {
|
|
|
+ throw new RuntimeException("学练宝剩余天数不足");
|
|
|
+ }
|
|
|
studentMemberUpdateLog.setOldEndTime(one.getEndTime());
|
|
|
one.setEndTime(addDays(one.getEndTime(), -studentMemberUpdateLog.getTime(), studentMemberUpdateLog.getType()));
|
|
|
this.updateById(one);
|
|
|
}else {
|
|
|
- throw new RuntimeException("会员已过期");
|
|
|
+ throw new RuntimeException("学练宝已过期");
|
|
|
}
|
|
|
}else {
|
|
|
+
|
|
|
if (one == null) {
|
|
|
one = new StudentMemberTime();
|
|
|
one.setMemberRankId(studentMemberUpdateLog.getLevel());
|