奖励发放校验用户创建时间

This commit is contained in:
tianfeng 2025-12-04 19:57:15 +08:00
parent bfb6350d3a
commit 977ccff1b8
7 changed files with 54 additions and 0 deletions

View File

@ -33,6 +33,7 @@ import com.red.circle.other.inner.model.cmd.material.PrizeDescribe;
import com.red.circle.other.inner.model.cmd.material.PrizeDescribeRewardCmd;
import com.red.circle.other.inner.model.dto.activity.props.ActivityPropsRule;
import com.red.circle.other.inner.model.dto.user.UserOneTimeTaskDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.date.TimestampUtils;
import com.red.circle.tool.core.json.JacksonUtils;
@ -45,6 +46,8 @@ import com.red.circle.wallet.inner.model.cmd.GoldReceiptCmd;
import com.red.circle.wallet.inner.model.enums.FreightBalanceOrigin;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import java.math.BigDecimal;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@ -185,6 +188,12 @@ public class InAppPurchaseCommon {
}
private void completedFirstCharge(Long userId, String sysOrigin) {
UserProfileDTO userProfileDTO = userProfileClient.getByUserId(userId).getBody();
Duration duration = Duration.between(userProfileDTO.getCreateTime().toLocalDateTime(), LocalDateTime.now());
if (duration.toDays() >= 7) {
return;
}
ResultResponse<UserOneTimeTaskDTO> response = userOneTimeTaskClient.queryCompletedFirstCharge(userId, sysOrigin);
if (response.checkSuccess()) {
if (response.getBody() == null) {

View File

@ -23,6 +23,7 @@ import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.model.cmd.activity.SendActivityRewardCmd;
import com.red.circle.other.inner.model.dto.activity.props.ActivityPropsRule;
import com.red.circle.other.inner.model.dto.user.UserOneTimeTaskDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.json.JacksonUtils;
import com.red.circle.tool.core.num.ArithmeticUtils;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
@ -36,6 +37,8 @@ import com.red.circle.wallet.inner.endpoint.wallet.WalletDiamondClient;
import com.red.circle.wallet.inner.model.cmd.DiamondReceiptCmd;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
@ -104,6 +107,12 @@ public class BuySuccessListener implements MessageListener {
}
private void completedFirstCharge(Long userId, String sysOrigin) {
UserProfileDTO userProfileDTO = userProfileClient.getByUserId(userId).getBody();
Duration duration = Duration.between(userProfileDTO.getCreateTime().toLocalDateTime(), LocalDateTime.now());
if (duration.toDays() >= 7) {
return;
}
ResultResponse<UserOneTimeTaskDTO> response = userOneTimeTaskClient.queryCompletedFirstCharge(userId, sysOrigin);
if (response.checkSuccess()) {
if (response.getBody() == null) {

View File

@ -49,6 +49,7 @@ import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.date.DateUtils;
import com.red.circle.tool.core.date.TimestampUtils;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
import com.red.circle.tool.core.date.ZonedId;
import com.red.circle.tool.core.json.JacksonUtils;
import java.sql.Timestamp;

View File

@ -22,6 +22,7 @@ import com.red.circle.other.inner.model.cmd.activity.SendActivityRewardCmd;
import com.red.circle.other.inner.model.dto.activity.props.ActivityPropsRule;
import com.red.circle.other.inner.model.dto.agency.agency.BillDiamondBalanceDTO;
import com.red.circle.other.inner.model.dto.user.UserOneTimeTaskDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.date.TimestampUtils;
import com.red.circle.tool.core.num.ArithmeticUtils;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
@ -53,6 +54,8 @@ import com.red.circle.wallet.inner.model.enums.GoldWithdrawAcceptAccount;
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@ -175,6 +178,12 @@ public class UserBankExchangeGoldCmdExe {
}
private void completedFirstCharge(Long userId, String sysOrigin) {
UserProfileDTO userProfileDTO = userProfileClient.getByUserId(userId).getBody();
Duration duration = Duration.between(userProfileDTO.getCreateTime().toLocalDateTime(), LocalDateTime.now());
if (duration.toDays() >= 7) {
return;
}
ResultResponse<UserOneTimeTaskDTO> response = userOneTimeTaskClient.queryCompletedFirstCharge(userId, sysOrigin);
if (response.checkSuccess()) {
if (response.getBody() == null) {

View File

@ -20,6 +20,7 @@ import com.red.circle.other.inner.enums.activity.PropsActivityTypeEnum;
import com.red.circle.other.inner.model.cmd.activity.SendActivityRewardCmd;
import com.red.circle.other.inner.model.dto.activity.props.ActivityPropsRule;
import com.red.circle.other.inner.model.dto.user.UserOneTimeTaskDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.json.JacksonUtils;
import com.red.circle.tool.core.num.ArithmeticUtils;
import com.red.circle.tool.core.tuple.PennyAmount;
@ -45,6 +46,8 @@ import com.red.circle.wallet.inner.model.enums.FreightBalanceOrigin;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
@ -209,6 +212,12 @@ public class DealerToUserShipCmdExe {
}
private void completedFirstCharge(Long userId, String sysOrigin) {
UserProfileDTO userProfileDTO = userProfileClient.getByUserId(userId).getBody();
Duration duration = Duration.between(userProfileDTO.getCreateTime().toLocalDateTime(), LocalDateTime.now());
if (duration.toDays() >= 7) {
return;
}
ResultResponse<UserOneTimeTaskDTO> response = userOneTimeTaskClient.queryCompletedFirstCharge(userId, sysOrigin);
if (response.checkSuccess() && response.getBody() == null) {
userOneTimeTaskClient.completedFirstCharge(userId, sysOrigin);

View File

@ -45,6 +45,8 @@ import com.red.circle.wallet.inner.model.enums.FreightBalanceOrigin;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
@ -164,6 +166,12 @@ public class SendFreightShipCmdExe {
}
private void completedFirstCharge(Long userId, String sysOrigin) {
UserProfileDTO userProfileDTO = userProfileClient.getByUserId(userId).getBody();
Duration duration = Duration.between(userProfileDTO.getCreateTime().toLocalDateTime(), LocalDateTime.now());
if (duration.toDays() >= 7) {
return;
}
ResultResponse<UserOneTimeTaskDTO> response = userOneTimeTaskClient.queryCompletedFirstCharge(userId, sysOrigin);
if (response.checkSuccess()) {
if (response.getBody() == null) {

View File

@ -25,6 +25,7 @@ import com.red.circle.other.inner.model.dto.activity.props.ActivityPropsRule;
import com.red.circle.other.inner.model.dto.agency.agency.BillDiamondBalanceDTO;
import com.red.circle.other.inner.model.dto.user.SysExchangeGoldTipDTO;
import com.red.circle.other.inner.model.dto.user.UserOneTimeTaskDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.date.TimestampUtils;
import com.red.circle.tool.core.num.ArithmeticUtils;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
@ -67,6 +68,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@ -165,6 +168,12 @@ public class SalaryExchangeGoldCmdExe {
}
private void completedFirstCharge(Long userId, String sysOrigin) {
UserProfileDTO userProfileDTO = userProfileClient.getByUserId(userId).getBody();
Duration duration = Duration.between(userProfileDTO.getCreateTime().toLocalDateTime(), LocalDateTime.now());
if (duration.toDays() >= 7) {
return;
}
ResultResponse<UserOneTimeTaskDTO> response = userOneTimeTaskClient.queryCompletedFirstCharge(userId, sysOrigin);
if (response.checkSuccess()) {
if (response.getBody() == null) {