Browse Source

增加活动时间段的报名人数

feature/screenDataPush
zhangyongzhangyong 4 years ago
parent
commit
e66a62e29b
  1. 5
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActPeriodDTO.java
  2. 20
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActPeriodDao.java
  3. 5
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/entity/ActPeriodEntity.java
  4. 20
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActPeriodService.java
  5. 15
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActPeriodServiceImpl.java
  6. 16
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java
  7. 14
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml
  8. 19
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActPeriodDao.xml

5
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActPeriodDTO.java

@ -97,4 +97,9 @@ public class ActPeriodDTO implements Serializable {
* 名额类型(0-不限名额1-固定名额)
*/
private Integer actPeriodQuotaCategory;
/**
* 已报名人数
*/
private Integer actPeriodSignupNum;
}

20
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActPeriodDao.java

@ -75,4 +75,24 @@ public interface ActPeriodDao extends BaseDao<ActPeriodEntity> {
* @Date 17:29 2021-09-24
**/
Integer getPeriodNumberByActId(@Param("actId") String actId);
/**
* 活动时间段 报名人数+1
*
* @param periodIds
* @return void
* @Author zhangyong
* @Date 14:29 2021-10-08
**/
void addPeriodSignUpNum(@Param("periodIds") List<String> periodIds);
/**
* 活动时间段 报名人数 -1
*
* @param periodIds
* @return void
* @Author zhangyong
* @Date 14:29 2021-10-08
**/
void minusPeriodSignUpNum(@Param("periodIds") List<String> periodIds);
}

5
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/entity/ActPeriodEntity.java

@ -62,4 +62,9 @@ public class ActPeriodEntity extends BaseEpdcEntity {
* 名额类型(0-不限名额1-固定名额)
*/
private Integer actPeriodQuotaCategory;
/**
* 已报名人数
*/
private Integer actPeriodSignupNum;
}

20
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActPeriodService.java

@ -123,4 +123,24 @@ public interface ActPeriodService extends BaseService<ActPeriodEntity> {
* @Date 17:29 2021-09-24
**/
Integer getPeriodNumberByActId(String actId);
/**
* 活动时间段 报名人数 +1
*
* @param periodIds
* @return void
* @Author zhangyong
* @Date 14:29 2021-10-08
**/
void addPeriodSignUpNum(List<String> periodIds);
/**
* 活动时间段 报名人数 -1
*
* @param periodIds
* @return void
* @Author zhangyong
* @Date 14:29 2021-10-08
**/
void minusPeriodSignUpNum(List<String> periodIds);
}

15
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActPeriodServiceImpl.java

@ -125,4 +125,19 @@ public class ActPeriodServiceImpl extends BaseServiceImpl<ActPeriodDao, ActPerio
public Integer getPeriodNumberByActId(String actId) {
return baseDao.getPeriodNumberByActId(actId);
}
@Override
public void addPeriodSignUpNum(List<String> periodIds) {
if (NumConstant.ZERO < periodIds.size()) {
baseDao.addPeriodSignUpNum(periodIds);
}
}
@Override
public void minusPeriodSignUpNum(List<String> periodIds) {
if (NumConstant.ZERO < periodIds.size()) {
baseDao.minusPeriodSignUpNum(periodIds);
}
}
}

16
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java

@ -259,9 +259,13 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
// 活动报名的按钮,报名后。在取消 报名活动的所有时间段之前,不支持再次报名!
List<ActPeriodDTO> periods = actUserRelationDTO.getPeriods();
// 存储活动时间段ID,用作 活动时间段报名人数修改
List<String> periodIds = new ArrayList<>();
// 校验当前报名的 活动时间段,是否已报满
List<ActPeriodDTO> periodsByActId = actPeriodService.listOfActPeriodsByActId(actUserRelationDTO.getActId());
for (ActPeriodDTO period : periods) {
periodIds.add(period.getId());
for (ActPeriodDTO dto : periodsByActId) {
if (period.getId().equals(dto.getId())) {
if (NumConstant.ZERO != dto.getActPeriodQuotaCategory() &&
@ -298,6 +302,9 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
// 活动报名人数+1
actInfoService.addSignUpNum(actUserRelationDTO.getActId());
// 报名的所有活动时间段,报名人数 +1
actPeriodService.addPeriodSignUpNum(periodIds);
//存储活动日志表
ActUserLogEntity actUserLog = new ActUserLogEntity();
actUserLog.setActUserRelationId(entity.getId());
@ -314,6 +321,9 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
@Override
@Transactional(rollbackFor = Exception.class)
public Result activityCancelSignUp(AppActUserCancelsignupDTO appActUserCancelsignupDTO) {
// 存储活动时间段ID,用作 活动时间段报名人数修改
List<String> periodIds = new ArrayList<>();
// 根据活动id,查询该活动是否属于老数据(即,epdc_act_period 表中,不存在的活动)
Integer number = actPeriodService.getPeriodNumberByActId(appActUserCancelsignupDTO.getActId());
@ -326,6 +336,8 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
List<ActPeriodUserDTO> periodUserDtoList = new ArrayList<>();
for (String actPeriodId : appActUserCancelsignupDTO.getActPeriodId()) {
periodIds.add(actPeriodId);
ActPeriodUserDTO periodUserDTO = new ActPeriodUserDTO();
periodUserDTO.setActPeriodId(actPeriodId);
periodUserDTO.setActUserRelationId(actUserRelationEntity.getId());
@ -369,6 +381,10 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
updateById(entity);
// 活动报名人数-1
actInfoService.minusSignUpNum(actUserRelationDTO.getActId());
// 取消报名的所有活动时间段,活动报名人数 -1
actPeriodService.minusPeriodSignUpNum(periodIds);
//2、存储活动日志表
Date currentTime = new Date();
ActUserLogEntity actUserLog = new ActUserLogEntity();

14
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml

@ -179,7 +179,15 @@
IF(relation.USER_ID = #{userId},'1','0') as signupFlag,actInfo.CREATED_TIME,
actInfo.TOP_FLAG
FROM
epdc_act_info actInfo
(
SELECT i.ID, i.TITLE, i.HEAD_PIC, i.ACT_START_TIME, i.ACT_END_TIME, i.PUBLISH_TIME, i.ACT_ADDRESS,
i.ACT_QUOTA, i.CLOCK_NUM, i.SIGNUP_END_TIME, i.CREATED_TIME, i.ACT_QUOTA_CATEGORY,
i.TOP_FLAG, i.DEL_FLAG, i.ACT_STATUS, i.SPONSOR, IFNULL(SUM(p.ACT_PERIOD_SIGNUP_NUM), 0) SIGNUP_NUM
FROM
epdc_act_info i
LEFT JOIN epdc_act_period p ON i.ID = p.ACT_ID AND p.DEL_FLAG = '0'
GROUP BY i.ID
) actInfo
left join epdc_act_user_relation relation on relation.DEL_FLAG = '0'
and relation.USER_ID = #{userId}
and relation.STATUS not in ('3','4')
@ -501,7 +509,7 @@
eai.ACT_ADDRESS as actAddress,
eai.ACT_QUOTA_CATEGORY as actQuotaCategory,
eai.ACT_QUOTA as actQuota,
eai.SIGNUP_NUM as signupNum,
IFNULL(SUM(p.ACT_PERIOD_SIGNUP_NUM), 0) signupNum,
eai.REWARD,
eai.PUNISHMENT_POINTS as punishmentPoints,
eai.REQUIREMENT as requirement,
@ -509,8 +517,10 @@
eai.SPONSOR as sponsor,
ACT_NEWS_CONTENT as actNewsContent
from epdc_act_info eai
LEFT JOIN epdc_act_period p ON eai.ID = p.ACT_ID AND p.DEL_FLAG = '0'
where eai.DEL_FLAG='0'
and eai.id= #{id}
GROUP BY eai.ID
</select>

19
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActPeriodDao.xml

@ -62,4 +62,23 @@
AND P.ACT_ID = #{actId}
</select>
<update id="addPeriodSignUpNum">
update epdc_act_period
set ACT_PERIOD_SIGNUP_NUM = ACT_PERIOD_SIGNUP_NUM + 1
where DEL_FLAG = '0'
and ID in
<foreach collection="periodIds" index="index" item="periodId" open="(" separator="," close=")">
#{periodId}
</foreach>
</update>
<update id="minusPeriodSignUpNum">
update epdc_act_period
set ACT_PERIOD_SIGNUP_NUM = ACT_PERIOD_SIGNUP_NUM - 1
where DEL_FLAG = '0'
and ID in
<foreach collection="periodIds" index="index" item="periodId" open="(" separator="," close=")">
#{periodId}
</foreach>
</update>
</mapper>

Loading…
Cancel
Save