Browse Source

居民端社区讲坛接口修改

hotfix/yujt_opt
yujt 5 years ago
parent
commit
710f6b3ab5
  1. 70
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/activity/service/impl/ActivityInfoServiceImpl.java
  2. 1
      epdc-cloud-property/src/main/resources/mapper/smile/activity/ActivityInfoDao.xml

70
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.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.ActivityInfoRedis;
import com.elink.esua.epdc.modules.smile.activity.service.ActivityInfoService; 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.dao.SectionCategoryDao;
import com.elink.esua.epdc.modules.smile.section.entity.SectionCategoryEntity; 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.form.ActivityInfoFormDTO;
import com.elink.esua.epdc.smile.dto.activity.result.ActivityDetailResultDTO; 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.dto.activity.result.ActivityInfoResultDTO;
import com.elink.esua.epdc.smile.enums.ActUserStateEnum;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -59,9 +58,6 @@ import java.util.Map;
@Service @Service
public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, ActivityInfoEntity> implements ActivityInfoService { public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, ActivityInfoEntity> implements ActivityInfoService {
@Autowired
private ActivityInfoRedis activityInfoRedis;
@Resource @Resource
private SectionCategoryDao sectionCategoryDao; private SectionCategoryDao sectionCategoryDao;
@ -129,7 +125,63 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
public List<ActivityInfoResultDTO> listActivity(ActivityInfoFormDTO formDto) { public List<ActivityInfoResultDTO> listActivity(ActivityInfoFormDTO formDto) {
// sql limit条件转换 // sql limit条件转换
formDto.setPageIndex((formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize()); formDto.setPageIndex((formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize());
return baseDao.listActivity(formDto); List<ActivityInfoResultDTO> 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 @Override
@ -138,7 +190,11 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
ActivityDetailResultDTO dto = ConvertUtils.sourceToTarget(entity, ActivityDetailResultDTO.class); ActivityDetailResultDTO dto = ConvertUtils.sourceToTarget(entity, ActivityDetailResultDTO.class);
// 查询当前用户是否参与活动 // 查询当前用户是否参与活动
String signUpFlag = isParticipate(formDto.getActivityId(), formDto.getUserId()); String signUpFlag = isParticipate(formDto.getActivityId(), formDto.getUserId());
dto.setSignUpFlag(signUpFlag);
ActUserStateEnum state = getActUserState(entity.getActStartTime(), entity.getActEndTime(), entity.getSignUpEndTime(), entity.getSignUpNum()
, entity.getActQuota(), entity.getActQuotaFlag(), signUpFlag);
dto.setSignUpFlag(state.getValue());
dto.setSignUpFlagStr(state.getState());
return dto; return dto;
} }

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

@ -44,6 +44,7 @@
a.ACT_QUOTA_FLAG, a.ACT_QUOTA_FLAG,
a.ACT_QUOTA, a.ACT_QUOTA,
a.SIGN_UP_NUM, a.SIGN_UP_NUM,
a.SIGN_UP_END_TIME,
( CASE WHEN p.id IS NULL THEN '0' ELSE '1' END ) AS SIGN_UP_FLAG ( CASE WHEN p.id IS NULL THEN '0' ELSE '1' END ) AS SIGN_UP_FLAG
FROM FROM
epdc_activity_info a epdc_activity_info a

Loading…
Cancel
Save