diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 1cd6ba736c..78c341fcb4 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -85,6 +85,7 @@ public enum EpmetErrorCode { NOT_IN_THE_SIGN_IN_RANGE(8510, "您还未进入指定的签到范围~"), NON_CERTIFIED_VOLUNTEER(8511, "活动报名失败,请先认证志愿者"), ACT_TIME_CONFLICT(8512, "报名失败。您本次报名活动时间与已报名活动时间间隔较短,为了不影响您已报名的活动,请选择其他时间的活动,谢谢。"), + ACT_REGISTRATION_SUCCESS(8513, "报名成功。"), // 该错误不会提示给前端,只是后端传输错误信息用。 ACCESS_SQL_FILTER_MISSION_ARGS(8701, "缺少生成权限过滤SQL所需参数"), diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActRegistrationResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActRegistrationResultDTO.java new file mode 100644 index 0000000000..96ca7a6e61 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActRegistrationResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result.resi; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 活动报名 - 返回值 + * + * @Auther: zhangyong + * @Date: 2020-07-28 16:22 + */ +@Data +public class ResiActRegistrationResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 异常编码 + */ + private Integer flag; + + /** + * 提示信息 + */ + private String tip; +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java index 1dfb2ed28a..e08ecfb96d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java @@ -293,17 +293,18 @@ public class ResiActListController { return actSignInRecService.actSignIn(tokenDto, formDTO); } - /** + /* * 活动报名 * * @param tokenDto * @param formDTO - * @return com.epmet.commons.tools.utils.Result + * + * @return com.epmet.commons.tools.utils.Result * @Author zhangyong - * @Date 16:46 2020-07-23 + * @Date 16:26 2020-07-28 **/ @PostMapping("registration") - public Result registration(@LoginUser TokenDto tokenDto, @RequestBody ResiActRegistrationFormDTO formDTO) { + public Result registration(@LoginUser TokenDto tokenDto, @RequestBody ResiActRegistrationFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, ResiActRegistrationFormDTO.AddUserInternalGroup.class); return actUserRelationService.registration(tokenDto, formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActUserRelationService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActUserRelationService.java index f3a135ee6a..a290d59c5f 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActUserRelationService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActUserRelationService.java @@ -24,6 +24,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ActUserRelationDTO; import com.epmet.dto.form.resi.ResiActRegistrationFormDTO; import com.epmet.dto.form.resi.ResiActUserCancelSignUpFormDTO; +import com.epmet.dto.result.resi.ResiActRegistrationResultDTO; import com.epmet.entity.ActUserRelationEntity; import org.apache.ibatis.annotations.Param; @@ -145,9 +146,9 @@ public interface ActUserRelationService extends BaseService> * @Author zhangyong - * @Date 16:46 2020-07-23 + * @Date 15:54 2020-07-28 **/ - Result registration(TokenDto tokenDto, ResiActRegistrationFormDTO formDTO); + Result registration(TokenDto tokenDto, ResiActRegistrationFormDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java index 5d6ed5249b..22bc9b42dc 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java @@ -39,6 +39,7 @@ import com.epmet.dto.ActUserRelationDTO; import com.epmet.dto.form.resi.ResiActRegistrationFormDTO; import com.epmet.dto.form.resi.ResiActUserCancelSignUpFormDTO; import com.epmet.dto.result.UserRoleResultDTO; +import com.epmet.dto.result.resi.ResiActRegistrationResultDTO; import com.epmet.entity.ActUserLogEntity; import com.epmet.entity.ActUserRelationEntity; import com.epmet.entity.HeartUserInfoEntity; @@ -54,10 +55,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 用户活动关系表 @@ -197,9 +195,10 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl registration(TokenDto tokenDto, ResiActRegistrationFormDTO formDTO) { formDTO.setUserId(tokenDto.getUserId()); boolean satisfy = false; + ResiActRegistrationResultDTO resultDTO = new ResiActRegistrationResultDTO(); // 查询活动信息 ActInfoDTO actInfoDTO = actInfoService.get(formDTO.getActId()); // >0 当前用户是志愿者 @@ -207,15 +206,35 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl().ok(resultDTO); + } } else { // 活动不限制志愿者身份,但要求是 居民身份, 当前用户是否满足条件 satisfy = this.resiParticipationAct(formDTO.getUserId()); + if (!satisfy){ + logger.info("活动报名失败,请完善居民信息"); + resultDTO.setFlag(EpmetErrorCode.CANNOT_AUDIT_WARM.getCode()); + resultDTO.setTip(EpmetErrorCode.CANNOT_AUDIT_WARM.getMsg()); + return new Result().ok(resultDTO); + } } if (satisfy){ // 开始报名 - this.actStartSignUp(actInfoDTO, formDTO, volunteerFlag); + boolean actTimeConflict = this.actStartSignUp(actInfoDTO, formDTO, volunteerFlag); + if (!actTimeConflict){ + logger.info("报名失败。您本次报名活动时间与已报名活动时间间隔较短,为了不影响您已报名的活动,请选择其他时间的活动,谢谢。"); + resultDTO.setFlag(EpmetErrorCode.ACT_TIME_CONFLICT.getCode()); + resultDTO.setTip(EpmetErrorCode.ACT_TIME_CONFLICT.getMsg()); + return new Result().ok(resultDTO); + } } - return new Result(); + resultDTO.setFlag(EpmetErrorCode.ACT_REGISTRATION_SUCCESS.getCode()); + resultDTO.setTip(EpmetErrorCode.ACT_REGISTRATION_SUCCESS.getMsg()); + return new Result().ok(resultDTO); } /** @@ -228,7 +247,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl NumConstant.ZERO){ @@ -237,8 +256,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl NumConstant.ZERO){ signUp = false; - logger.info("报名失败。您本次报名活动时间与已报名活动时间间隔较短,为了不影响您已报名的活动,请选择其他时间的活动,谢谢。"); - throw new RenException(EpmetErrorCode.ACT_TIME_CONFLICT.getCode()); + return signUp; } } else { // 3.第一次报名 @@ -249,7 +267,8 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl NumConstant.ZERO){ satisfy = true; return satisfy; - } else { - logger.info("活动报名失败,请先认证志愿者"); - throw new RenException(EpmetErrorCode.NON_CERTIFIED_VOLUNTEER.getCode()); } + return satisfy; } /** @@ -289,12 +306,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl