|
|
@@ -885,16 +885,16 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ClaudeCodeRewardDetailsResp getUserRewardDetails(Long userId) {
|
|
|
+ public ClaudeCodeRewardDetailsResp getUserRewardDetails(Long userId, Boolean general) {
|
|
|
List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
|
|
|
|
|
|
ClaudeCodeRewardDetailsResp response = new ClaudeCodeRewardDetailsResp();
|
|
|
|
|
|
// 获取用户Claude Code信息
|
|
|
ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(
|
|
|
- Wrappers.lambdaQuery(ClaudeCodeUser.class)
|
|
|
- .in(ClaudeCodeUser::getUserId, userIdList)
|
|
|
- .last("limit 1")
|
|
|
+ Wrappers.lambdaQuery(ClaudeCodeUser.class)
|
|
|
+ .in(ClaudeCodeUser::getUserId, userIdList)
|
|
|
+ .last("limit 1")
|
|
|
);
|
|
|
|
|
|
// 设置可重置次数
|
|
|
@@ -907,55 +907,57 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
|
|
|
// 获取可用积分卡数量
|
|
|
Integer availableCreditCards = claudeCodeCreditCardMapper.selectCount(
|
|
|
- Wrappers.lambdaQuery(ClaudeCodeCreditCard.class)
|
|
|
- .eq(ClaudeCodeCreditCard::getStatus, 0)
|
|
|
- .in(ClaudeCodeCreditCard::getUserId,userIdList)
|
|
|
- .isNull(ClaudeCodeCreditCard::getUsedUserId)
|
|
|
+ Wrappers.lambdaQuery(ClaudeCodeCreditCard.class)
|
|
|
+ .eq(ClaudeCodeCreditCard::getStatus, 0)
|
|
|
+ .in(ClaudeCodeCreditCard::getUserId, userIdList)
|
|
|
+ .isNull(ClaudeCodeCreditCard::getUsedUserId)
|
|
|
);
|
|
|
response.setAvailableCreditCards(availableCreditCards != null ? availableCreditCards : 0);
|
|
|
- //提现门槛
|
|
|
- DistributePointsExchangeMoney distributePointsExchangeMoney = distributePointsExchangeMoneyMapper.selectOne(Wrappers.lambdaQuery(DistributePointsExchangeMoney.class).last("limit 1"));
|
|
|
- response.setThresholdMoney(BigDecimal.valueOf(distributePointsExchangeMoney.getMinPoints()).divide(BigDecimal.valueOf(distributePointsExchangeMoney.getPoints())).multiply(distributePointsExchangeMoney.getMoney()));
|
|
|
+ //是否是普通推广
|
|
|
+ if (general != null && general) {
|
|
|
+ //提现门槛
|
|
|
+ DistributePointsExchangeMoney distributePointsExchangeMoney = distributePointsExchangeMoneyMapper.selectOne(Wrappers.lambdaQuery(DistributePointsExchangeMoney.class).last("limit 1"));
|
|
|
+ response.setThresholdMoney(BigDecimal.valueOf(distributePointsExchangeMoney.getMinPoints()).divide(BigDecimal.valueOf(distributePointsExchangeMoney.getPoints())).multiply(distributePointsExchangeMoney.getMoney()));
|
|
|
|
|
|
- // 获取分销相关数据
|
|
|
- try {
|
|
|
- User user = userMapper.selectById(userId);
|
|
|
- List<DistributeWaitingSendPoints> distributeWaitingSendPoints = distributeWaitingSendPointsMapper.selectList(Wrappers.lambdaQuery(DistributeWaitingSendPoints.class).eq(DistributeWaitingSendPoints::getSendStatus, DistributeWaitingSendPoints.Status.waiting).eq(DistributeWaitingSendPoints::getSharedId, userId).select(DistributeWaitingSendPoints::getPoints));
|
|
|
- BigDecimal waitingPoints = BigDecimal.ZERO;
|
|
|
- if (!distributeWaitingSendPoints.isEmpty()) {
|
|
|
- Optional<BigDecimal> points = distributeWaitingSendPoints.stream().map(DistributeWaitingSendPoints::getPoints).reduce(BigDecimal::add);
|
|
|
- if (points.isPresent()) {
|
|
|
- waitingPoints = points.get();
|
|
|
+ // 获取分销相关数据
|
|
|
+ try {
|
|
|
+ User user = userMapper.selectById(userId);
|
|
|
+ List<DistributeWaitingSendPoints> distributeWaitingSendPoints = distributeWaitingSendPointsMapper.selectList(Wrappers.lambdaQuery(DistributeWaitingSendPoints.class).eq(DistributeWaitingSendPoints::getSendStatus, DistributeWaitingSendPoints.Status.waiting).eq(DistributeWaitingSendPoints::getSharedId, userId).select(DistributeWaitingSendPoints::getPoints));
|
|
|
+ BigDecimal waitingPoints = BigDecimal.ZERO;
|
|
|
+ if (!distributeWaitingSendPoints.isEmpty()) {
|
|
|
+ Optional<BigDecimal> points = distributeWaitingSendPoints.stream().map(DistributeWaitingSendPoints::getPoints).reduce(BigDecimal::add);
|
|
|
+ if (points.isPresent()) {
|
|
|
+ waitingPoints = points.get();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ GoodsDon goodsDon = goodsDonMapper.selectById(Constant.CLAUDE_CODE_GOODS_ID);
|
|
|
+ //cc 分销平台比例
|
|
|
+ if (goodsDon != null) {
|
|
|
+ response.setRate(goodsDon.getRate());
|
|
|
}
|
|
|
- }
|
|
|
- GoodsDon goodsDon = goodsDonMapper.selectById(Constant.CLAUDE_CODE_GOODS_ID);
|
|
|
- //cc 分销平台比例
|
|
|
- if (goodsDon != null) {
|
|
|
- response.setRate(goodsDon.getRate());
|
|
|
- }
|
|
|
|
|
|
- if (user.getPoints().compareTo(BigDecimal.ZERO) <= 0 && waitingPoints.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ if (user.getPoints().compareTo(BigDecimal.ZERO) <= 0 && waitingPoints.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ response.setGotMoney(BigDecimal.ZERO);
|
|
|
+ response.setWaitingMoney(BigDecimal.ZERO);
|
|
|
+ } else {
|
|
|
+ BigDecimal points = BigDecimal.valueOf(distributePointsExchangeMoney.getPoints());
|
|
|
+ BigDecimal money = distributePointsExchangeMoney.getMoney();
|
|
|
+ BigDecimal oneHundred = BigDecimal.valueOf(100);
|
|
|
+ if (user.getPoints().compareTo(BigDecimal.ZERO) >= 0) {
|
|
|
+ response.setGotMoney(user.getPoints().divide(points).multiply(money).divide(oneHundred, 2, RoundingMode.HALF_DOWN));
|
|
|
+ }
|
|
|
+ if (user.getPoints().compareTo(BigDecimal.ZERO) >= 0) {
|
|
|
+ response.setWaitingMoney(waitingPoints.divide(points).multiply(money).divide(oneHundred, 2, RoundingMode.DOWN));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("获取用户{}分销数据异常", userId, e);
|
|
|
+ // 设置默认值
|
|
|
response.setGotMoney(BigDecimal.ZERO);
|
|
|
response.setWaitingMoney(BigDecimal.ZERO);
|
|
|
- } else {
|
|
|
- BigDecimal points = BigDecimal.valueOf(distributePointsExchangeMoney.getPoints());
|
|
|
- BigDecimal money = distributePointsExchangeMoney.getMoney();
|
|
|
- BigDecimal oneHundred = BigDecimal.valueOf(100);
|
|
|
- if (user.getPoints().compareTo(BigDecimal.ZERO) >= 0) {
|
|
|
- response.setGotMoney(user.getPoints().divide(points).multiply(money).divide(oneHundred, 2, RoundingMode.HALF_DOWN));
|
|
|
- }
|
|
|
- if (user.getPoints().compareTo(BigDecimal.ZERO) >= 0) {
|
|
|
- response.setWaitingMoney(waitingPoints.divide(points).multiply(money).divide(oneHundred, 2, RoundingMode.DOWN));
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
- } catch (Exception e) {
|
|
|
- log.warn("获取用户{}分销数据异常", userId, e);
|
|
|
- // 设置默认值
|
|
|
- response.setGotMoney(BigDecimal.ZERO);
|
|
|
- response.setWaitingMoney(BigDecimal.ZERO);
|
|
|
}
|
|
|
-
|
|
|
return response;
|
|
|
}
|
|
|
|