Pu Zhibing
2025-03-26 cbf2486983b77a27af9968bbb362cb8d43789115
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;
@@ -172,12 +173,11 @@
        if(point > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(12);
            userPoint.setHistoricalPoint(lavePoint1);
            userPoint.setVariablePoint(point);
            userPoint.setBalance(appUserForPhoe.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUserForPhoe.getId());
            userPoint.setObjectId(userid);
            userPoint.setChangeDirection(1);
            userPointService.save(userPoint);
        }
@@ -190,12 +190,11 @@
        if(point > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(13);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(point);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUser.getId());
            userPoint.setObjectId(appUserForPhoe.getId());
            userPoint.setChangeDirection(-1);
            userPointService.save(userPoint);
        }
        return R.ok();
@@ -205,6 +204,11 @@
    @Override
    public UserPointStatistics getStatistics(UserPoint userPoint) {
        List<UserPoint> userPointList = this.baseMapper.selectUserPoint(userPoint);
        userPointList.forEach(item -> {
            item.setVariablePoint(item.getVariablePoint() * item.getChangeDirection());
        });
        Map<Integer, Integer> userBalanceMap = userPointList.stream()
                .collect(Collectors.groupingBy(
                        UserPoint::getType,
@@ -216,7 +220,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 +243,10 @@
    @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 -> {
            item.setVariablePoint(item.getVariablePoint() * item.getChangeDirection());
        });
        return userPointIPage;
    }
}