From 7ffdb5babc4d23c6f2ba8ac55cabd2f22a6c65a3 Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.com> Date: Fri, 24 Sep 2021 18:02:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=8A=A5=E5=90=8D=E3=80=81?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=8A=A5=E5=90=8D=E9=80=BB=E8=BE=91=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/AppActUserCancelsignupDTO.java | 2 +- .../modules/activity/dao/ActPeriodDao.java | 11 +++ .../activity/service/ActPeriodService.java | 11 +++ .../service/impl/ActPeriodServiceImpl.java | 4 + .../impl/ActUserRelationServiceImpl.java | 81 ++++++++++--------- .../mapper/activity/ActPeriodDao.xml | 10 +++ 6 files changed, 81 insertions(+), 38 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/AppActUserCancelsignupDTO.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/AppActUserCancelsignupDTO.java index 8512162e..10a1bb6f 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/AppActUserCancelsignupDTO.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/AppActUserCancelsignupDTO.java @@ -53,6 +53,6 @@ public class AppActUserCancelsignupDTO implements Serializable { /** * 活动详细时间段表ID */ - @NotNull(message = "活动时间段ID不能为空") + @NotNull(message = "活动时间段ID不能为NULL") private List actPeriodId; } diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActPeriodDao.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActPeriodDao.java index 0d05e7ce..656b59f9 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActPeriodDao.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActPeriodDao.java @@ -21,6 +21,7 @@ import com.elink.esua.epdc.activity.ActPeriodDTO; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.modules.activity.entity.ActPeriodEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -64,4 +65,14 @@ public interface ActPeriodDao extends BaseDao { List selectListOfActPeriodsByActId(String actId); List selectActTimeByActId(String actId); + /** + * 根据活动id,查询该活动存在几条活动时间段 + * 如果是老数据,则为 0 + * + * @param actId + * @return java.lang.Integer + * @Author zhangyong + * @Date 17:29 2021-09-24 + **/ + Integer getPeriodNumberByActId(@Param("actId") String actId); } diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActPeriodService.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActPeriodService.java index abf4986f..e2a41d37 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActPeriodService.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActPeriodService.java @@ -112,4 +112,15 @@ public interface ActPeriodService extends BaseService { * @since 2021/9/2 16:13 */ List listOfActPeriodsByActId(String actId); + + /** + * 根据活动id,查询该活动存在几条活动时间段 + * 如果是老数据,则为 0 + * + * @param actId + * @return java.lang.Integer + * @Author zhangyong + * @Date 17:29 2021-09-24 + **/ + Integer getPeriodNumberByActId(String actId); } diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActPeriodServiceImpl.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActPeriodServiceImpl.java index 04cc2a3c..3c8274df 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActPeriodServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActPeriodServiceImpl.java @@ -121,4 +121,8 @@ public class ActPeriodServiceImpl extends BaseServiceImpl periods = actUserRelationDTO.getPeriods(); - if (CollectionUtil.isEmpty(periods)) { - // 兼容之前,不存在 活动时间段 的老数据 - ActInfoDTO actInfoDTO = actInfoDao.queryActSignupNum(actUserRelationDTO.getActId()); - if (NumConstant.ZERO != actInfoDTO.getActQuotaCategory() && actInfoDTO.getActQuota().equals(actInfoDTO.getSignupNum())) { - return new Result().error("活动已报满"); - } - } else { - // 校验当前报名的 活动时间段,是否已报满 - List periodsByActId = actPeriodService.listOfActPeriodsByActId(actUserRelationDTO.getActId()); + // 校验当前报名的 活动时间段,是否已报满 + List periodsByActId = actPeriodService.listOfActPeriodsByActId(actUserRelationDTO.getActId()); + for (ActPeriodDTO period : periods) { for (ActPeriodDTO dto : periodsByActId) { - if (NumConstant.ZERO != dto.getActPeriodQuotaCategory() && dto.getActPeriodQuota().equals(dto.getActPeriodSignUpNum())) { - return new Result().error("该" + dto.getActPeriodStartTime() + "-" + dto.getActPeriodEndTime() + "时间段的活动已报满! 请选择其他时间段"); + if (period.getId().equals(dto.getId())) { + if (NumConstant.ZERO != dto.getActPeriodQuotaCategory() && + dto.getActPeriodQuota().equals(dto.getActPeriodSignUpNum())) { + return new Result().error("该时间段活动已报满! 请选择其他时间段"); + } } } } @@ -313,40 +310,50 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl periodUserDtoList = new ArrayList<>(); + for (String actPeriodId : appActUserCancelsignupDTO.getActPeriodId()) { + ActPeriodUserDTO periodUserDTO = new ActPeriodUserDTO(); + periodUserDTO.setActPeriodId(actPeriodId); + periodUserDTO.setActUserRelationId(actUserRelationEntity.getId()); + periodUserDTO.setFailureReason(appActUserCancelsignupDTO.getFailureReason()); + periodUserDTO.setPeriodStatus(ActUserRelationStatusConstant.CANCEL_SIGN_UP); + periodUserDtoList.add(periodUserDTO); + } + // 批量修改 + actPeriodUserService.updateBatch(periodUserDtoList); - List periodUserDtoList = new ArrayList<>(); - for (String actPeriodId : appActUserCancelsignupDTO.getActPeriodId()) { - ActPeriodUserDTO periodUserDTO = new ActPeriodUserDTO(); - periodUserDTO.setActPeriodId(actPeriodId); - periodUserDTO.setActUserRelationId(actUserRelationEntity.getId()); - periodUserDTO.setFailureReason(appActUserCancelsignupDTO.getFailureReason()); - periodUserDTO.setPeriodStatus(ActUserRelationStatusConstant.CANCEL_SIGN_UP); - periodUserDtoList.add(periodUserDTO); - } - // 批量修改 - actPeriodUserService.updateBatch(periodUserDtoList); + // 查询状态为:已报名的所有时间段 + List periodTime = actPeriodUserService.listOfNormalSignInActPeriodsByActUserRelationId1(actUserRelationEntity.getId()); + if (null == periodTime) { + periodTime = new ArrayList<>(); + } + // 是否已经取消了,报名的所有活动时间段 + if (NumConstant.ZERO < periodTime.size()) { + // 否,退出。不再进行下一步操作 + return new Result().ok("取消报名成功"); + } + // 是,用户取消报名(已报名的所有时间段),处理完报名的所有时间段之后,再走原先的 取消报名逻辑 - // 查询状态为:已报名的所有时间段 - List periodTime = actPeriodUserService.listOfNormalSignInActPeriodsByActUserRelationId1(actUserRelationEntity.getId()); - if (null == periodTime) { - periodTime = new ArrayList<>(); - } - // 是否已经取消了,报名的所有活动时间段 - if (NumConstant.ZERO < periodTime.size()) { - // 否,不再进行下一步操作 - return new Result().ok("取消报名成功"); + } else { + // 该活动存在 时间段,但用户取消报名时,未勾选。此时,返回提示:请选择要取消的时间段 + return new Result().error("请选择要取消的时间段"); } } - // 用户取消报名(已报名的所有时间段),处理完报名的所有时间段之后,再走原先的 取消报名逻辑 - //查询是否已报名 List statusList = new ArrayList<>(); statusList.add(ActUserRelationStatusConstant.SIGN_UP); diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActPeriodDao.xml b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActPeriodDao.xml index 6c93e215..a751828a 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActPeriodDao.xml +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActPeriodDao.xml @@ -52,4 +52,14 @@ ID = #{actId} + +