feat:优化领取判断
This commit is contained in:
1 parent
684762fb6c
commit
7f72fa0244
2 files changed
+23
-6
No files matched your search
+4
@@ -20,6 +20,10 @@ public enum ActUserReceiveEnum {
|
||||
USER_CANNOT_PARTICIPATE("5", "用户不能参加此活动"),
|
||||
OTHER_ERROR("6", "其他错误"),
|
||||
USER_CAN_JOIN_ACT("99", "用户可以参加活动"),
|
||||
|
||||
// 特殊
|
||||
PLEASE_RECEIVE_IN_BIRTH_MONTH("-100", "请在生日当月领取"),
|
||||
PLEASE_FILL_BIRTH_DATE("-101", "请填写出生日期"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
+19
-6
@@ -2,6 +2,8 @@ package com.bsd.pjcloud.wallet.service.impl.act;
|
||||
|
||||
import cn.hutool.core.collection.IterUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSON;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -22,6 +24,7 @@ import com.bsd.pjcloud.wallet.api.constant.act.ActUserReceiveEnum;
|
||||
import com.bsd.pjcloud.wallet.api.dto.WalletTransactionDto;
|
||||
import com.bsd.pjcloud.wallet.api.dto.act.ActCouponReceiveDto;
|
||||
import com.bsd.pjcloud.wallet.api.dto.act.ActCouponRecordDto;
|
||||
import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity;
|
||||
import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity;
|
||||
import com.bsd.pjcloud.wallet.api.entity.act.ActCouponEntity;
|
||||
import com.bsd.pjcloud.wallet.api.entity.act.ActCouponRecordEntity;
|
||||
@@ -61,7 +64,7 @@ public class ActCouponRecordServiceImpl extends ServiceImpl<ActCouponRecordMappe
|
||||
|
||||
private final ActCouponComUtilService actCouponComUtilService;
|
||||
private final ActCouponService actCouponService;
|
||||
private final WalletTypeService walletTypeService;
|
||||
private final WalletManageService walletManageService;
|
||||
private final WalletCodeUseService walletCodeUseService;
|
||||
|
||||
private final RemoteUserService remoteUserService;
|
||||
@@ -163,28 +166,38 @@ public class ActCouponRecordServiceImpl extends ServiceImpl<ActCouponRecordMappe
|
||||
if (ObjectUtil.equals(uniqueCode, "1qRgFo")) {
|
||||
// 判断是否为食堂用户
|
||||
MchManageVo userMch = mchManageService.getFirstMchByDeptId(sysUser.getDeptId(), List.of(MerchantTypeEnum.CANTEEN));
|
||||
if (ObjectUtil.isEmpty(userMch)) {
|
||||
log.info("|{}|{}用户参加{}活动失败:不是食堂用户", TAG, sysUser.getName(), uniqueCode);
|
||||
if (ObjectUtil.isEmpty(userMch) && false) {
|
||||
log.info("|{}|{}用户参加{}活动失败:不是食堂用户,用户属于食堂{}", TAG, sysUser.getName(), uniqueCode, JSONUtil.toJsonStr(userMch));
|
||||
return ActUserReceiveEnum.USER_CANNOT_PARTICIPATE;
|
||||
}
|
||||
// 判断用户最近一年充值是否为500,1500,800,2400
|
||||
WalletTypeEntity walletType = walletTypeService.getByUniqueCode(WalletTypeEnum.EAT);
|
||||
WalletManageEntity userWallet = walletManageService.getWallet(sysUser.getUserId(), WalletTypeEnum.EAT);
|
||||
|
||||
WalletTransactionDto dto = new WalletTransactionDto();
|
||||
dto.setWalletTypeId(walletType.getId());
|
||||
dto.setWalletId(userWallet.getId());
|
||||
dto.setBizTypes(WalletBizEnum.getTopUpCodes());
|
||||
dto.setType(WalletTransactionDto.TYPE_INCOME);
|
||||
dto.setUserId(sysUser.getUserId());
|
||||
dto.setPriceList(List.of(500 * 100, 1500 * 100, 800 * 100, 2400 * 100));
|
||||
dto.setCreateTimeList(new LocalDate[]{
|
||||
LocalDate.now().minusMonths(4),
|
||||
LocalDate.now()
|
||||
LocalDate.now().plusDays(1)
|
||||
});
|
||||
List<WalletTransactionVo> walletList = walletTransactionMapper.scopeList(dto, null);
|
||||
if (ObjectUtil.isEmpty(walletList)) {
|
||||
log.info("|{}|{}用户参加{}活动失败:用户最近一年充值金额不足500,1500,800,2400", TAG, sysUser.getName(), uniqueCode);
|
||||
return ActUserReceiveEnum.USER_CANNOT_PARTICIPATE;
|
||||
}
|
||||
// 要在生日当月领取
|
||||
LocalDate birthday = sysUser.getBirthday();
|
||||
if (ObjectUtil.isEmpty(birthday)) {
|
||||
log.info("|{}|{}用户参加{}活动失败:请填写生日", TAG, sysUser.getName(), uniqueCode);
|
||||
return ActUserReceiveEnum.PLEASE_FILL_BIRTH_DATE;
|
||||
}
|
||||
if (ObjectUtil.notEqual(LocalDate.now().getMonth().getValue(), birthday.getMonth().getValue())) {
|
||||
log.info("|{}|{}用户参加{}活动成功:在生日当月领取", TAG, sysUser.getName(), uniqueCode);
|
||||
return ActUserReceiveEnum.PLEASE_RECEIVE_IN_BIRTH_MONTH;
|
||||
}
|
||||
return ActUserReceiveEnum.USER_CAN_JOIN_ACT;
|
||||
}
|
||||
return null;
|
||||
|
||||
Reference in new issue
Block a user