Pu Zhibing
2025-03-18 eb428cb6839049970e67264f4eafc612e5bcaa38
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -13,6 +13,7 @@
import com.ruoyi.account.vo.UserPointDetailVO;
import com.ruoyi.account.vo.UserPointStatistics;
import com.ruoyi.account.vo.UserPointVO;
import com.ruoyi.account.vo.UserStatisticsDetail;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.PhoneNumberValidator;
import com.ruoyi.common.core.web.page.PageInfo;
@@ -23,6 +24,7 @@
import com.ruoyi.order.model.OrderGood;
import com.ruoyi.other.api.domain.VipSetting;
import com.ruoyi.other.api.enums.PointChangeType;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -33,9 +35,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@@ -71,7 +71,8 @@
    public UserPointVO getUserPoint(Long userId) {
        AppUser appUser = appUserService.getById(userId);
        VipSetting vipSetting = vipSettingService.getVipSettingByUserId(userId);
        List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>().eq(AppUserGiveawayTemporary::getAppUserId, userId));
        List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>()
                .eq(AppUserGiveawayTemporary::getAppUserId, userId));
        int totalPoint = 0;
        int sharePoint = 0;
        int shopAchievementPoint = 0;
@@ -205,6 +206,16 @@
    @Override
    public UserPointStatistics getStatistics(UserPoint userPoint) {
        List<UserPoint> userPointList = this.baseMapper.selectUserPoint(userPoint);
        userPointList.forEach(item -> {
            int i = item.getHistoricalPoint() - item.getBalance();
            if (i>0){
                item.setVariablePoint(item.getVariablePoint() * -1);
            }else {
                item.setVariablePoint(item.getVariablePoint());
            }
        });
        Map<Integer, Integer> userBalanceMap = userPointList.stream()
                .collect(Collectors.groupingBy(
                        UserPoint::getType,
@@ -216,7 +227,7 @@
        int pullNewPoint = userBalanceMap.getOrDefault(PointChangeType.PULL_NEW.getCode(), 0);
        int registerPoint = userBalanceMap.getOrDefault(PointChangeType.REGISTER.getCode(), 0);
        // 做工积分:签到积分 + 每日分享积分 + 每日签到积分 + 每日使用时长积分
        // 做工积分:每日分享积分 + 每日签到积分 + 每日使用时长积分
        int share = userBalanceMap.getOrDefault(PointChangeType.SHARE.getCode(), 0);
        int signIn = userBalanceMap.getOrDefault(PointChangeType.SIGN_IN.getCode(), 0);
        int useTime = userBalanceMap.getOrDefault(PointChangeType.USE_TIME.getCode(), 0);
@@ -239,6 +250,15 @@
    @Override
    public IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint) {
        return this.baseMapper.queryUserPointPage(page, userPoint);
        IPage<UserPoint> userPointIPage = this.baseMapper.queryUserPointPage(page, userPoint);
        userPointIPage.getRecords().forEach(item -> {
            int i = item.getHistoricalPoint() - item.getBalance();
            if (i>0){
                item.setVariablePoint(item.getVariablePoint() * -1);
            }else {
                item.setVariablePoint(item.getVariablePoint());
            }
        });
        return userPointIPage;
    }
}