liujie
2023-08-08 fece6af66e0cfaf95896227a791810c79bafd2e8
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -1,14 +1,19 @@
package com.dsh.account.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.account.entity.TAppUser;
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.vo.userBenefitDetail.IntegralDetailsResponse;
import com.dsh.account.model.SaveUserIntegralChangesVo;
import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
import com.dsh.account.model.vo.userBenefitDetail.IntegralsData;
import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo;
import com.dsh.account.service.UserIntegralChangesService;
import com.dsh.account.util.DateTimeHelper;
import com.dsh.account.util.ToolUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -33,11 +38,13 @@
    @Resource
    private TAppUserMapper tauMapper;
    @Resource
    private MerChandiseClient mcClient;
    @Override
    public IntegralDetailsResponse queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) {
        IntegralDetailsResponse vo = new IntegralDetailsResponse();
        List<IntegralDetailsResponse.IntegralsData> details = new ArrayList<>();
    public List<IntegralsData> queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) {
        List<IntegralsData> details = new ArrayList<>();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
        Date monthStart = null;
@@ -49,13 +56,13 @@
            monthStart = DateTimeHelper.getCurrentMouthStart();
            monthEnd = DateTimeHelper.getCurrentMouthEnd();
        }
        List<UserIntegralChanges> userIntegralChanges = this.baseMapper.selectList(new EntityWrapper<UserIntegralChanges>()
        List<UserIntegralChanges> userIntegralChanges = this.baseMapper.selectList(new QueryWrapper<UserIntegralChanges>()
                .eq("appUserId",userIdFormRedis )
                .between("insertTime",monthStart,monthEnd)
                .orderBy("insertTime",false));
                .orderByDesc("insertTime"));
        if (userIntegralChanges.size() > 0 ){
            for (UserIntegralChanges userIntegralChange : userIntegralChanges) {
                IntegralDetailsResponse.IntegralsData detail= new IntegralDetailsResponse.IntegralsData();
                IntegralsData detail= new IntegralsData();
                switch (userIntegralChange.getType()){
                    case 1:
                        detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
@@ -86,14 +93,51 @@
            }
            if (null != recordId){
                details = details.stream()
                        .filter(obj -> obj instanceof IntegralDetailsResponse.IntegralsData)
                        .filter(obj -> obj instanceof IntegralsData)
                        .filter(obj -> Objects.equals(obj.getDetailsType(), recordId))
                        .collect(Collectors.toList());
            }
            TAppUser tAppUser = tauMapper.selectById(userIdFormRedis);
            vo.setWpGold(tAppUser.getIntegral());
            vo.setDetailList(details);
        }
        return vo;
        return details;
    }
    /**
     * 保存用户积分变动
     * @param vo
     * @throws Exception
     */
    @Override
    public void saveUserIntegralChanges(SaveUserIntegralChangesVo vo) throws Exception {
        TAppUser appUser = tauMapper.selectById(vo.getAppUserId());
        UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
        userIntegralChanges.setAppUserId(vo.getAppUserId());
        userIntegralChanges.setOldIntegral(appUser.getIntegral());
        userIntegralChanges.setType(vo.getType());
        appUser.setIntegral(appUser.getIntegral() + vo.getIntegral());
        userIntegralChanges.setNewIntegral(appUser.getIntegral());
        userIntegralChanges.setInsertTime(new Date());
        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());
        }
        if (ToolUtil.isNotEmpty(goodType)){
            integralExchangeDetails = integralExchangeDetails.stream()
                    .filter(response -> Objects.equals(response.getGoodType(), goodType))
                    .collect(Collectors.toList());
        }
        return integralExchangeDetails;
    }
    @Override
    public PointDetailsVo queryRedemptionDetails(Integer detailsId) {
        return mcClient.getSpecificsOfGoods(detailsId);
    }
}