| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | } |