liujie
2023-10-17 a1e4cfc3de4f3f3f3956b769bc7af40d097c8a4c
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -1,14 +1,18 @@
package com.dsh.account.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.account.entity.TAppUser;
import com.dsh.account.entity.UserIntegral;
import com.dsh.account.entity.UserIntegralChanges;
import com.dsh.account.feignclient.activity.MerChandiseClient;
import com.dsh.account.mapper.TAppUserMapper;
import com.dsh.account.mapper.UserIntegralChangesMapper;
import com.dsh.account.model.IntegralListQuery;
import com.dsh.account.model.SaveUserIntegralChangesVo;
import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.IntegralsData;
import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo;
import com.dsh.account.service.UserIntegralChangesService;
@@ -117,27 +121,83 @@
        appUser.setIntegral(appUser.getIntegral() + vo.getIntegral());
        userIntegralChanges.setNewIntegral(appUser.getIntegral());
        userIntegralChanges.setInsertTime(new Date());
        userIntegralChanges.setCategory(1);
        this.save(userIntegralChanges);
    }
    @Override
    public List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType) {
        List<ExchangeDetailsResponse> integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
        if (ToolUtil.isNotEmpty(useType)){
            integralExchangeDetails = integralExchangeDetails.stream()
                    .filter(response -> Objects.equals(response.getUseStatus(), useType))
                    .collect(Collectors.toList());
        List<ExchangeDetailsResponse> detailsResponses = new ArrayList<>();
        ExchangeDetailsVo integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
        if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())){
            detailsResponses = integralExchangeDetails.getDetailsResponses();
            if (ToolUtil.isNotEmpty(useType)){
                detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
                        .filter(response -> Objects.equals(response.getUseStatus(), useType))
                        .collect(Collectors.toList());
            }
            if (ToolUtil.isNotEmpty(goodType)){
                detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
                        .filter(response -> Objects.equals(response.getGoodType(), goodType))
                        .collect(Collectors.toList());
            }
        }
        if (ToolUtil.isNotEmpty(goodType)){
            integralExchangeDetails = integralExchangeDetails.stream()
                    .filter(response -> Objects.equals(response.getGoodType(), goodType))
                    .collect(Collectors.toList());
        }
        return integralExchangeDetails;
        return detailsResponses;
    }
    @Override
    public PointDetailsVo queryRedemptionDetails(Integer detailsId) {
        return mcClient.getSpecificsOfGoods(detailsId);
    public PointDetailsVo queryRedemptionDetails(Long detailsId) {
        PointDetailsVo specificsOfGoods = mcClient.getSpecificsOfGoods(detailsId);
        return specificsOfGoods;
    }
    @Override
    public Page<UserIntegral> listAll(Page<UserIntegral> userIntegralPage, IntegralListQuery integralListQuery) {
        String sTime =null;
        String eTime =null;
        if(ToolUtil.isNotEmpty(integralListQuery.getTime())){
            sTime = integralListQuery.getTime().split(" - ")[0]+" 00:00:00";
            eTime = integralListQuery.getTime().split(" - ")[1]+" 23:59:59";
        }
        Page<UserIntegral> userIntegrals = this.baseMapper.listAll(userIntegralPage, integralListQuery, sTime, eTime);
        for (UserIntegral userIntegral : userIntegrals.getRecords()) {
            if(userIntegral.getCategory()==1){
                userIntegral.setIntegral(userIntegral.getNewIntegral()-userIntegral.getOldIntegral());
            }else {
                userIntegral.setIntegral(userIntegral.getOldIntegral()-userIntegral.getNewIntegral());
            }
        }
        return userIntegrals;
    }
    @Override
    public List<ExchangeDetailsResponse> queryExchangeGoodsdetails1(Integer userIdFormRedis, Integer useType, Integer goodType, Integer page, Integer size) {
        List<ExchangeDetailsResponse> detailsResponses = new ArrayList<>();
        ExchangeDetailsVo integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
        if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())){
            detailsResponses = integralExchangeDetails.getDetailsResponses();
            if (ToolUtil.isNotEmpty(useType)){
                detailsResponses = detailsResponses.stream()
                        .filter(response -> Objects.equals(response.getUseStatus(), useType))
                        .collect(Collectors.toList());
            }
            if (ToolUtil.isNotEmpty(goodType)){
                detailsResponses = detailsResponses.stream()
                        .filter(response -> Objects.equals(response.getGoodType(), goodType))
                        .collect(Collectors.toList());
            }
        }
        int totalItems = detailsResponses.size();
        int startIndex = (page - 1) * size;
        int endIndex = Math.min(startIndex + size, totalItems);
        if (startIndex <= endIndex) {
            detailsResponses = detailsResponses.subList(startIndex, endIndex);
        } else {
            detailsResponses.clear();
        }
        return detailsResponses;
    }
}