|
|
@ -21,19 +21,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.NumConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.exception.RenException; |
|
|
|
import com.elink.esua.epdc.commons.tools.page.PageData; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils; |
|
|
|
import com.elink.esua.epdc.dto.UserDTO; |
|
|
|
import com.elink.esua.epdc.modules.smile.activity.dao.ActivityInfoDao; |
|
|
|
import com.elink.esua.epdc.modules.smile.activity.dao.ActivityParticipantDao; |
|
|
|
import com.elink.esua.epdc.modules.smile.activity.entity.ActivityInfoEntity; |
|
|
|
import com.elink.esua.epdc.modules.smile.activity.entity.ActivityParticipantEntity; |
|
|
|
import com.elink.esua.epdc.modules.smile.activity.redis.ActivityParticipantRedis; |
|
|
|
import com.elink.esua.epdc.modules.smile.activity.service.ActivityParticipantService; |
|
|
|
import com.elink.esua.epdc.modules.smile.feign.UserFeignClient; |
|
|
|
import com.elink.esua.epdc.smile.dto.activity.ActivityParticipantDTO; |
|
|
|
import com.elink.esua.epdc.smile.dto.activity.form.ActivityParticipantFormDTO; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
@ -54,12 +50,6 @@ import java.util.Map; |
|
|
|
@Service |
|
|
|
public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityParticipantDao, ActivityParticipantEntity> implements ActivityParticipantService { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private ActivityParticipantRedis activityParticipantRedis; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private UserFeignClient userFeignClient; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
ActivityInfoDao activityInfoDao; |
|
|
|
|
|
|
@ -103,32 +93,26 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void signUp(ActivityParticipantFormDTO dto) { |
|
|
|
ActivityInfoEntity activityInfoEntity = activityInfoDao.activityDetailState(dto); |
|
|
|
// 先判断活动是否还是在正常时间内
|
|
|
|
if (activityInfoEntity == null) { |
|
|
|
String actId = dto.getActId(); |
|
|
|
ActivityParticipantEntity user = baseDao.selectParticipant(actId, dto.getUserId()); |
|
|
|
// 判断用户是否已报名,已报名则直接正常返回。
|
|
|
|
if (user != null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
ActivityInfoEntity activityInfoEntity = activityInfoDao.selectById(actId); |
|
|
|
if (dto.getSignUpTime().after(activityInfoEntity.getSignUpEndTime())) { |
|
|
|
throw new RenException("活动报名已经截止"); |
|
|
|
} else if (NumConstant.ONE_STR.equals(activityInfoEntity.getActQuotaFlag()) && activityInfoEntity.getSignUpNum() >= activityInfoEntity.getActQuota()) { |
|
|
|
} else if (YesOrNoEnum.YES.value().equals(activityInfoEntity.getActQuotaFlag()) && activityInfoEntity.getSignUpNum() >= activityInfoEntity.getActQuota()) { |
|
|
|
// 活动为限制报名人数,并且已报名人数大于等于活动名额
|
|
|
|
throw new RenException("活动名额已满"); |
|
|
|
} |
|
|
|
|
|
|
|
ActivityParticipantEntity user = baseDao.selectParticipant(dto.getActId(), dto.getUserId()); |
|
|
|
// 判断用户是否已报名,已报名则直接正常返回。
|
|
|
|
if (user != null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
ActivityParticipantEntity entity = ConvertUtils.sourceToTarget(dto, ActivityParticipantEntity.class); |
|
|
|
UserDTO userDto = userFeignClient.getUserInfoById(dto.getUserId()).getData(); |
|
|
|
if (userDto == null) { |
|
|
|
throw new RenException("无法获取用户信息"); |
|
|
|
} |
|
|
|
entity.setPartyFlag(userDto.getPartyFlag()); |
|
|
|
entity.setIdentityNo(userDto.getIdentityNo()); |
|
|
|
entity.setAge(getAge(userDto.getIdentityNo())); |
|
|
|
// 写入报名表
|
|
|
|
insert(entity); |
|
|
|
// 活动表已报名人数字段 同步修改
|
|
|
|
activityInfoDao.signUp(dto.getActId()); |
|
|
|
activityInfoDao.signUp(actId); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -145,7 +129,4 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart |
|
|
|
baseDao.deleteBatchIds(Arrays.asList(ids)); |
|
|
|
} |
|
|
|
|
|
|
|
private Integer getAge(String identityNo) { |
|
|
|
return IdentityNoUtils.getAge(identityNo); |
|
|
|
} |
|
|
|
} |