Browse Source

对报名状态进行追加判断

hotfix/yujt_opt
zhangyuan 5 years ago
parent
commit
ab1c1882e7
  1. 13
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/dao/ActivityInfoDao.java
  2. 17
      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

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

@ -18,10 +18,11 @@
package com.elink.esua.epdc.modules.smile.activity.dao; package com.elink.esua.epdc.modules.smile.activity.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.modules.smile.activity.entity.ActivityInfoEntity;
import com.elink.esua.epdc.smile.dto.activity.form.ActivityDetailFormDTO; import com.elink.esua.epdc.smile.dto.activity.form.ActivityDetailFormDTO;
import com.elink.esua.epdc.smile.dto.activity.form.ActivityInfoFormDTO; import com.elink.esua.epdc.smile.dto.activity.form.ActivityInfoFormDTO;
import com.elink.esua.epdc.smile.dto.activity.form.ActivityParticipantFormDTO;
import com.elink.esua.epdc.smile.dto.activity.result.ActivityInfoResultDTO; import com.elink.esua.epdc.smile.dto.activity.result.ActivityInfoResultDTO;
import com.elink.esua.epdc.modules.smile.activity.entity.ActivityInfoEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -66,6 +67,16 @@ 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);
/** /**
* 功能描述: 活动人数更新 * 功能描述: 活动人数更新
* *

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

@ -21,19 +21,21 @@ 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.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.commons.tools.utils.IdentityNoUtils;
import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.smile.dto.activity.ActivityParticipantDTO;
import com.elink.esua.epdc.smile.dto.activity.form.ActivityParticipantFormDTO;
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.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.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.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; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -101,8 +103,17 @@ 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);
// 先判断活动是否还是在正常时间内
if (activityInfoEntity == null) {
throw new RenException("活动报名已经截止");
} else if (NumConstant.ONE_STR.equals(activityInfoEntity.getActQuotaFlag()) && activityInfoEntity.getSignUpNum() >= activityInfoEntity.getActQuota()) {
// 活动为限制报名人数,并且已报名人数大于等于活动名额
throw new RenException("活动名额已满");
}
ActivityParticipantEntity user = baseDao.selectParticipant(dto.getActId(), dto.getUserId()); ActivityParticipantEntity user = baseDao.selectParticipant(dto.getActId(), dto.getUserId());
// 先判断用户是否已报名,已报名则直接正常返回。 // 判断用户是否已报名,已报名则直接正常返回。
if (user != null) { if (user != null) {
return; return;
} }

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

@ -74,6 +74,20 @@
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