|
@@ -1,23 +1,83 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDetailDao;
|
|
|
+import com.ym.mec.biz.dal.entity.TempDirectorTrainingCamp;
|
|
|
import com.ym.mec.biz.dal.entity.TempDirectorTrainingCampDetail;
|
|
|
+import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampDetailWrapper;
|
|
|
+import com.ym.mec.biz.service.SmsCodeService;
|
|
|
import com.ym.mec.biz.service.TempDirectorTrainingCampDetailService;
|
|
|
+import com.ym.mec.biz.service.TempDirectorTrainingCampService;
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
|
+import com.ym.mec.util.date.DateUtil;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
@Service("tempDirectorTrainingCampDetailService")
|
|
|
public class TempDirectorTrainingCampDetailServiceImpl extends ServiceImpl<TempDirectorTrainingCampDetailDao, TempDirectorTrainingCampDetail> implements TempDirectorTrainingCampDetailService {
|
|
|
|
|
|
private final static Logger log = LoggerFactory.getLogger(TempDirectorTrainingCampDetailServiceImpl.class);
|
|
|
|
|
|
+ @Resource
|
|
|
+ private SmsCodeService smsCodeService;
|
|
|
+ @Resource
|
|
|
+ private TempDirectorTrainingCampService tempDirectorTrainingCampService;
|
|
|
+
|
|
|
@Override
|
|
|
public TempDirectorTrainingCampDetailDao getDao() {
|
|
|
return this.baseMapper;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void applyCamp(TempDirectorTrainingCampDetailWrapper.ApplyCamp applyCamp) {
|
|
|
+ Date now = new Date();
|
|
|
+ TempDirectorTrainingCamp trainingCamp = tempDirectorTrainingCampService.getById(applyCamp.getTempDirectorTrainingCampId());
|
|
|
+ if(Objects.isNull(trainingCamp)){
|
|
|
+ throw new BizException("训练营信息不存在");
|
|
|
+ }
|
|
|
+ //校验训练营时间
|
|
|
+ if(now.after(trainingCamp.getApplyEndDate())){
|
|
|
+ throw new BizException("报名已截止");
|
|
|
+ }
|
|
|
+ if(now.before(trainingCamp.getApplyStartDate())){
|
|
|
+ String dateToString = DateUtil.dateToString(trainingCamp.getApplyStartDate(), DateUtil.DATE_FORMAT_MIN);
|
|
|
+ throw new BizException(dateToString + "开启报名,感谢您的关注");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!smsCodeService.verifyValidCode(applyCamp.getMobile(), applyCamp.getAuthCode())){
|
|
|
+ throw new BizException("验证码校验失败");
|
|
|
+ }
|
|
|
+ //根据身份证号获取信息
|
|
|
+ TempDirectorTrainingCampDetail byCardNo = this.lambdaQuery().eq(TempDirectorTrainingCampDetail::getCardNo, applyCamp.getCardNo())
|
|
|
+ .eq(TempDirectorTrainingCampDetail::getTempDirectorTrainingCampId, applyCamp.getTempDirectorTrainingCampId())
|
|
|
+ .last("LIMIT 1").one();
|
|
|
+ if(Objects.nonNull(byCardNo) && !StringUtils.equals(byCardNo.getMobile(),applyCamp.getMobile())){
|
|
|
+ throw new BizException("该身份证已报名");
|
|
|
+ }
|
|
|
+ //根据手机号获取信息
|
|
|
+ TempDirectorTrainingCampDetail byMobile = this.lambdaQuery().eq(TempDirectorTrainingCampDetail::getMobile, applyCamp.getMobile())
|
|
|
+ .eq(TempDirectorTrainingCampDetail::getTempDirectorTrainingCampId, applyCamp.getTempDirectorTrainingCampId())
|
|
|
+ .last("LIMIT 1").one();
|
|
|
+ if(Objects.nonNull(byMobile) && !StringUtils.equals(byMobile.getCardNo(),applyCamp.getCardNo())){
|
|
|
+ throw new BizException("该手机号已报名");
|
|
|
+ }
|
|
|
+ TempDirectorTrainingCampDetail entity = JSONObject.parseObject(JSONObject.toJSONString(applyCamp),TempDirectorTrainingCampDetail.class);
|
|
|
+ if(Objects.nonNull(byCardNo)){
|
|
|
+ entity.setId(byCardNo.getId());
|
|
|
+ }else if (Objects.nonNull(byMobile)){
|
|
|
+ entity.setId(byMobile.getId());
|
|
|
+ }
|
|
|
+ this.saveOrUpdate(entity);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|