diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/service/impl/ActivityInfoServiceImpl.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/service/impl/ActivityInfoServiceImpl.java index 6d112a4..d777884 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/service/impl/ActivityInfoServiceImpl.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/service/impl/ActivityInfoServiceImpl.java @@ -30,7 +30,6 @@ 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.ActivityInfoRedis; import com.elink.esua.epdc.modules.smile.activity.service.ActivityInfoService; import com.elink.esua.epdc.modules.smile.section.dao.SectionCategoryDao; import com.elink.esua.epdc.modules.smile.section.entity.SectionCategoryEntity; @@ -39,8 +38,8 @@ 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.result.ActivityDetailResultDTO; import com.elink.esua.epdc.smile.dto.activity.result.ActivityInfoResultDTO; +import com.elink.esua.epdc.smile.enums.ActUserStateEnum; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -59,9 +58,6 @@ import java.util.Map; @Service public class ActivityInfoServiceImpl extends BaseServiceImpl implements ActivityInfoService { - @Autowired - private ActivityInfoRedis activityInfoRedis; - @Resource private SectionCategoryDao sectionCategoryDao; @@ -129,7 +125,63 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl listActivity(ActivityInfoFormDTO formDto) { // sql limit条件转换 formDto.setPageIndex((formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize()); - return baseDao.listActivity(formDto); + List activityList = baseDao.listActivity(formDto); + activityList.forEach(activity -> { + ActUserStateEnum state = getActUserState(activity.getActStartTime(), activity.getActEndTime(), activity.getSignUpEndTime(), activity.getSignUpNum() + , activity.getActQuota(), activity.getActQuotaFlag(), activity.getSignUpFlag()); + activity.setSignUpFlag(state.getValue()); + activity.setSignUpFlagStr(state.getState()); + }); + return activityList; + } + + /** + * 判断用户对于活动的状态 + * + * @param actStartTime 活动开始时间 + * @param actEndTime 活动结束时间 + * @param signUpEndTime 报名截止时间 + * @param signUpNum 已报人数 + * @param actQuota 名额数 + * @param actQuotaFlag 是否限制名额 + * @param signUpFlag 用户是否已报名 + * @return com.elink.esua.epdc.smile.enums.ActUserStateEnum + * @author work@yujt.net.cn + * @date 2020/7/9 15:19 + */ + private ActUserStateEnum getActUserState(Date actStartTime, Date actEndTime, Date signUpEndTime, int signUpNum, int actQuota, String actQuotaFlag, String signUpFlag) { + Date now = new Date(); + // 活动结束 + if (now.after(actEndTime)) { + return ActUserStateEnum.END; + } + // 是否已报名 0否 ;1是 + if (YesOrNoEnum.YES.value().equals(signUpFlag)) { + // 进行中 + if (now.after(actStartTime) && now.before(actEndTime)) { + return ActUserStateEnum.GOING; + } + // 已报名 + return ActUserStateEnum.ENTERED; + } else { + // 活动进行中,用户未报名 + if (now.after(actStartTime) && now.before(actEndTime)) { + return ActUserStateEnum.ONLOOKER; + } + // 已截止报名 + if (now.after(signUpEndTime)) { + return ActUserStateEnum.CLOSED; + } + // 限制名额 且 已报满 + if (YesOrNoEnum.YES.value().equals(actQuotaFlag) && signUpNum >= actQuota) { + return ActUserStateEnum.FULL; + } + // 不限名额 或 未报满 + if (YesOrNoEnum.NO.value().equals(actQuotaFlag) || signUpNum < actQuota) { + return ActUserStateEnum.SING_UP; + } + } + return null; } @Override @@ -138,7 +190,11 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl