Browse Source

活动报名接口调整

hotfix/yujt_opt
yujt 5 years ago
parent
commit
01acaa6860
  1. 10
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/dao/ActivityInfoDao.java
  2. 43
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/service/impl/ActivityParticipantServiceImpl.java
  3. 14
      epdc-cloud-property/src/main/resources/mapper/smile/activity/ActivityInfoDao.xml

10
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/dao/ActivityInfoDao.java

@ -67,16 +67,6 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
*/ */
ActivityInfoEntity activityDetail(ActivityDetailFormDTO formDto); ActivityInfoEntity activityDetail(ActivityDetailFormDTO formDto);
/**
* 功能描述: 活动状态查询
*
* @param: formDto
* @return: ActivityInfoEntity
* @author: zhy
* @date: 2020/6/22 10:01
*/
ActivityInfoEntity activityDetailState(ActivityParticipantFormDTO formDto);
/** /**
* 功能描述: 活动人数更新 * 功能描述: 活动人数更新
* *

43
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/service/impl/ActivityParticipantServiceImpl.java

@ -21,19 +21,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; 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.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.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData; 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.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.ActivityInfoDao;
import com.elink.esua.epdc.modules.smile.activity.dao.ActivityParticipantDao; 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.ActivityInfoEntity;
import com.elink.esua.epdc.modules.smile.activity.entity.ActivityParticipantEntity; 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.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.ActivityParticipantDTO;
import com.elink.esua.epdc.smile.dto.activity.form.ActivityParticipantFormDTO; import com.elink.esua.epdc.smile.dto.activity.form.ActivityParticipantFormDTO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -54,12 +50,6 @@ import java.util.Map;
@Service @Service
public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityParticipantDao, ActivityParticipantEntity> implements ActivityParticipantService { public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityParticipantDao, ActivityParticipantEntity> implements ActivityParticipantService {
@Autowired
private ActivityParticipantRedis activityParticipantRedis;
@Autowired
private UserFeignClient userFeignClient;
@Autowired @Autowired
ActivityInfoDao activityInfoDao; ActivityInfoDao activityInfoDao;
@ -103,32 +93,26 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void signUp(ActivityParticipantFormDTO dto) { public void signUp(ActivityParticipantFormDTO dto) {
ActivityInfoEntity activityInfoEntity = activityInfoDao.activityDetailState(dto); String actId = dto.getActId();
// 先判断活动是否还是在正常时间内 ActivityParticipantEntity user = baseDao.selectParticipant(actId, dto.getUserId());
if (activityInfoEntity == null) { // 判断用户是否已报名,已报名则直接正常返回。
if (user != null) {
return;
}
ActivityInfoEntity activityInfoEntity = activityInfoDao.selectById(actId);
if (dto.getSignUpTime().after(activityInfoEntity.getSignUpEndTime())) {
throw new RenException("活动报名已经截止"); 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("活动名额已满"); throw new RenException("活动名额已满");
} }
ActivityParticipantEntity user = baseDao.selectParticipant(dto.getActId(), dto.getUserId());
// 判断用户是否已报名,已报名则直接正常返回。
if (user != null) {
return;
}
ActivityParticipantEntity entity = ConvertUtils.sourceToTarget(dto, ActivityParticipantEntity.class); 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); insert(entity);
// 活动表已报名人数字段 同步修改 // 活动表已报名人数字段 同步修改
activityInfoDao.signUp(dto.getActId()); activityInfoDao.signUp(actId);
} }
@Override @Override
@ -145,7 +129,4 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
} }
private Integer getAge(String identityNo) {
return IdentityNoUtils.getAge(identityNo);
}
} }

14
epdc-cloud-property/src/main/resources/mapper/smile/activity/ActivityInfoDao.xml

@ -74,20 +74,6 @@
DEL_FLAG = '0' DEL_FLAG = '0'
AND ID = #{activityId} AND ID = #{activityId}
</select> </select>
<select id="activityDetailState" resultType="com.elink.esua.epdc.modules.smile.activity.entity.ActivityInfoEntity">
SELECT
<include refid="Base_Column_List"/>
FROM
epdc_activity_info a
WHERE
DEL_FLAG = '0'
<if test="actId != null and actId != ''">
AND ID = #{actId}
</if>
<if test="signUpTime != null">
AND SIGN_UP_END_TIME &gt; #{signUpTime}
</if>
</select>
<update id="signUp"> <update id="signUp">
UPDATE epdc_activity_info UPDATE epdc_activity_info
SET SIGN_UP_NUM = SIGN_UP_NUM + 1 SET SIGN_UP_NUM = SIGN_UP_NUM + 1

Loading…
Cancel
Save