21. Enums

An enum type is a distinct type that declares a set of named constants.
[Example: The example
enum Color
{
Red,
Green,
Blue
}
declares an enum type named Color with members Red, Green, and Blue. end
example]
package jp.co.sej.ssc.sh.ssha0070.validator; import java.util.Set; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.nec.jp.rpf.zwb.framework.logic.FWAbstractValidator; import com.nec.jp.rpf.zwb.framework.type.IFWInputLogicData; import com.nec.jp.rpf.zwb.framework.type.IFWOutputLogicData; import com.nec.jp.rpf.zwb.framework.util.FWLogger; import jakarta.validation.ConstraintViolation; import org.springframework.beans.factory.annotation.Autowired; import jakarta.validation.Validator; import jp.co.sej.ssc.cl.enums.ErrorCodeEnum; import jp.co.sej.ssc.cl.enums.ErrorMessageEnum; import jp.co.sej.ssc.sh.constants.ParametersConstants; import jp.co.sej.ssc.sh.constants.ShelfConstants; import jp.co.sej.ssc.sh.ssha0070.data.impl.Ssha0070InputParamData; /** * 責任者名称取込。 * * @author NEC Corporation * @date 2024/02/21 */ @Component @Scope("prototype") public class Ssha0070PreCheck<I extends IFWInputLogicData, O extends IFWOutputLogicData> extends FWAbstractValidator<I, O> { @Autowired private Validator beanValidator; /** logger。 */ private static FWLogger logger = FWLogger.getLogger(Ssha0070PreCheck.class); /** * 責任者名称取込チェックロジックシナリオの入力チェック。 * * @param inData 入力用業務ロジックデータ * @param outData 出力用業務ロジックデータ */ @Override public void preCheck(IFWInputLogicData inData, IFWOutputLogicData outData) { // 取得データのチェックの開始ログ出力 logger.writeLog(ShelfConstants.METHOD_NAME_PRECHECK, ShelfConstants.MESSAGEID_SCLL9000, ShelfConstants.PROCESS_NAME_GET_DATA_CHECK); // オリジナル店舗コードはString型とし、6桁以上10桁以下であること // オリジナル店舗コードを取得する final String originalStoreCode = inData .getPathParameter(ParametersConstants.PATH_PARAM_ORIGINAL_STORE_CODE); // チェック用 Ssha0070InputParamData checkInfo = new Ssha0070InputParamData(); // オリジナル店舗コードを設定する checkInfo.setOriginalStoreCode(originalStoreCode); // チェック実行 Set<ConstraintViolation<Ssha0070InputParamData>> result = beanValidator.validate(checkInfo); // チェック結果用 if (!result.isEmpty()) { // チェック制約違反の場合 for (ConstraintViolation<Ssha0070InputParamData> violation : result) { logger.writeLog(Thread.currentThread().getStackTrace()[1].getMethodName(), ErrorMessageEnum.VALIDATION_ERROR.getMessageId(), violation.getPropertyPath(), violation.getInvalidValue()); } setError(ErrorMessageEnum.VALIDATION_ERROR.getMessageId(), ErrorCodeEnum.ZWBE40.name()); } // 取得データのチェックの終了ログ出力 logger.writeLog(ShelfConstants.METHOD_NAME_PRECHECK, ShelfConstants.MESSAGEID_SCLL9001, ShelfConstants.PROCESS_NAME_GET_DATA_CHECK); } }
11-12
package com.shein.plato.core.easywin.service.push.impl; import com.shein.kangaroostrategysystem.vo.request.push.PushBizMsgInfo; import com.shein.kangaroostrategysystem.vo.response.push.PushBizMsgInfoResp; import com.shein.plato.common.constant.SysConstant; import com.shein.plato.common.easywin.EasyWinConstant; import com.shein.plato.common.easywin.common.EasyWinParticipateRecordDTO; import com.shein.plato.common.easywin.enums.EasyWinMsgBizCodeEnum; import com.shein.plato.common.util.DateUtil; import com.shein.plato.core.easywin.convert.EasyWinCoreConvert; import com.shein.plato.core.easywin.service.push.DelayPushCallbackHandler; import com.shein.plato.dao.cache.RedisWrapper; import com.shein.plato.manager.easywin.mapper.EasyWinParticipateRecordManager; import com.shein.plato.manager.easywin.push.DelayPushExtDTO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Objects; /** * @Author: Felicity Wang * @Date: 2025/10/21 00:32 */ @Slf4j @Component @RequiredArgsConstructor public class EwRewardExpireCountdown240mHandler implements DelayPushCallbackHandler { @Resource private EasyWinParticipateRecordManager easyWinParticipateRecordManager; @Resource private EasyWinCoreConvert easyWinCoreConvert; @Resource private RedisWrapper redisWrapper; @Override public EasyWinMsgBizCodeEnum support() { // 返回支持的业务码枚举值 return EasyWinMsgBizCodeEnum.EW_SH_REWARD_EXPIRE_COUNTDOWN_240M; } @Override public PushBizMsgInfoResp handle(PushBizMsgInfo info) { // 处理团长轮次剩余240min,有助力记录但未成团提醒逻辑 PushBizMsgInfoResp res = easyWinCoreConvert.pushBizMsgInfo2Resp(info); res.setIfSend(false); String pushDayLimitCacheKey = String.format(EasyWinConstant.EASY_WIN_PUSH_DAY_LIMIT, info.getSite(), DateUtil.getDateString(SysConstant.GMT8), info.getReceiver()); Integer pushTimes = redisWrapper.get(pushDayLimitCacheKey, Integer.class); if (Objects.nonNull(pushTimes) && pushTimes >= 3) { return res; } DelayPushExtDTO extDTO = DelayPushExtDTO.fromMap(info.getExtend()); EasyWinParticipateRecordDTO participateRecordDTO = easyWinParticipateRecordManager.queryById(extDTO.getRoundId()); if (Objects.nonNull(participateRecordDTO) && participateRecordDTO.getHelpNewNum() > 0 && participateRecordDTO.getHelpNewNum() < participateRecordDTO.getCuttingInfo().getHelpTarget()) { log.info("[团长轮次剩余240min,有助力记录但未成团] info:{}", info); // 有新助力但未成团则发送 res.setIfSend(true); redisWrapper.incr(pushDayLimitCacheKey); } return res; } 这个代码逻辑是不是有问题,延迟240min的部分是我们这边去传给消息那边,消息那边去做的,但是我好像没看到单独处理时间的部分,因为其他的case都是开始多久,我理解是可以直接穿的,他是剩余多久,没发传
10-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值