From 85c4410b0948799a93f19f345b4ed18c253c89f3 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 03 九月 2024 10:26:33 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 171 insertions(+), 8 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java index aebdacf..5d772b8 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java @@ -1,30 +1,55 @@ package com.ruoyi.order.service.impl; +import cn.hutool.db.DaoTemplate; +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.AppUserCarClient; import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.feignClient.AppUserIntegralChangeClient; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.TAppUserCar; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserIntegralChange; +import com.ruoyi.chargingPile.api.feignClient.SiteClient; +import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TOrderEvaluate; +import com.ruoyi.order.api.model.TOrderEvaluateTag; import com.ruoyi.order.api.query.TOrderEvaluateQuery; import com.ruoyi.order.api.vo.SiteDetailEvaluateVO; import com.ruoyi.order.api.vo.TOrderEvaluateVO; +import com.ruoyi.order.dto.GetOrderEvaluatePageList; +import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO; +import com.ruoyi.order.dto.OrderEvaluateVo; import com.ruoyi.order.mapper.TChargingOrderMapper; import com.ruoyi.order.mapper.TOrderEvaluateMapper; import com.ruoyi.order.mapper.TOrderEvaluateTagMapper; +import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TOrderEvaluateService; +import com.ruoyi.other.api.domain.TEvaluationTag; +import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.feignClient.IntegralRuleClient; import com.ruoyi.other.api.feignClient.TEvaluationTagClient; import com.ruoyi.other.api.vo.TEvaluationTagVO; +import io.seata.spring.annotation.GlobalTransactional; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -42,22 +67,50 @@ @Service public class TOrderEvaluateServiceImpl extends ServiceImpl<TOrderEvaluateMapper, TOrderEvaluate> implements TOrderEvaluateService { - @Autowired + @Resource private TEvaluationTagClient evaluationTagClient; - @Autowired + @Resource private AppUserClient appUserClient; - @Autowired + @Resource private AppUserCarClient appUserCarClient; - @Autowired + @Resource private TOrderEvaluateTagMapper orderEvaluateTagMapper; - @Autowired + @Resource private TChargingOrderMapper chargingOrderMapper; - @Autowired + + @Resource + private SiteClient siteClient; + + @Resource + private TokenService tokenService; + + @Resource + private TChargingOrderService chargingOrderService; + + @Resource + private IntegralRuleClient integralRuleClient; + + @Resource + private AppUserIntegralChangeClient appUserIntegralChangeClient; + + + + + + + + + + + + + + @Resource private TOrderEvaluateMapper orderEvaluateMapper; @Override public List<TEvaluationTagVO> getTagCount() { // 查询标签列表 - R<List<TEvaluationTagVO>> r = evaluationTagClient.getTagList(); + R<List<TEvaluationTagVO>> r = evaluationTagClient.getTagList(null); List<TEvaluationTagVO> tagList = r.getData(); List<Integer> tagIds = tagList.stream().map(TEvaluationTagVO::getId).collect(Collectors.toList()); // 统计标签使用数量 @@ -145,5 +198,115 @@ tagList.add(evaluationTagVO); } } - + + + /** + * 获取充电评价列表 + * @param pageList + * @return + */ + @Override + public PageInfo<GetOrderEvaluatePageListDTO> getPageList(GetOrderEvaluatePageList pageList) { + PageInfo<GetOrderEvaluatePageListDTO> pageInfo = new PageInfo<>(pageList.getPageCurr(), pageList.getPageSize()); + List<Integer> evaluationTagIds = null; + if(null != pageList.getEvaluateType()){ + List<TEvaluationTagVO> data = evaluationTagClient.getTagList(pageList.getEvaluateType()).getData(); + evaluationTagIds = data.stream().map(TEvaluationTagVO::getId).collect(Collectors.toList()); + } + List<GetOrderEvaluatePageListDTO> list = this.baseMapper.getPageList(pageList, evaluationTagIds, pageInfo); + for (GetOrderEvaluatePageListDTO dto : list) { + TAppUser appUser = appUserClient.getUserById(dto.getAppUserId()).getData(); + dto.setAvatar(appUser.getAvatar()); + String phone = appUser.getPhone(); + dto.setPhone(phone.substring(0, 3) + "****" + phone.substring(6)); + Site site = siteClient.getSiteByIds(Arrays.asList(dto.getSiteId())).getData().get(0); + dto.setSiteName(site.getName()); + List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, dto.getId())); + List<Integer> tagIds = tOrderEvaluateTags.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList()); + List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagIds).getData(); + List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList()); + dto.setTags(collect); + } + return pageInfo.setRecords(list); + } + + + /** + * 评价订单 + * @param query + * @return + */ + @Override + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 + public AjaxResult addOrderEvaluate(OrderEvaluateVo query) { + TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, query.getOrderId()) + .eq(TOrderEvaluate::getOrderType, query.getOrderType()).eq(TOrderEvaluate::getDelFlag, 0)); + if(null != orderEvaluate){ + return AjaxResult.error("不能重复评价"); + } + orderEvaluate = new TOrderEvaluate(); + BeanUtils.copyProperties(query, orderEvaluate); + Long userid = tokenService.getLoginUserApplet().getUserId(); + orderEvaluate.setAppUserId(userid); + if(query.getOrderType() == 1){ + TChargingOrder chargingOrder = chargingOrderService.getById(query.getOrderId()); + orderEvaluate.setAppUserCarId(chargingOrder.getAppUserCarId()); + } + this.save(orderEvaluate); + + List<Integer> tagIds = query.getTagIds(); + for (Integer tagId : tagIds) { + TOrderEvaluateTag orderEvaluateTag = new TOrderEvaluateTag(); + orderEvaluateTag.setOrderEvaluateId(orderEvaluate.getId()); + orderEvaluateTag.setEvaluationTagId(tagId); + orderEvaluateTagMapper.insert(orderEvaluateTag); + } + + //判断发放积分 文字+图片+5星好评 + if(StringUtils.isNotEmpty(query.getContent()) && StringUtils.isNotEmpty(query.getImgUrl()) && 5 == query.getMark()){ + TIntegralRule data = integralRuleClient.getSet().getData(); + String credit = data.getCredit(); + //积分 + Integer num1 = JSON.parseObject(credit).getInteger("num1"); + if(null != num1 && 0 < num1){ + TAppUser appUser = appUserClient.getUserById(userid).getData(); + Integer points = appUser.getPoints(); + appUser.setPoints(appUser.getPoints() + num1); + appUserClient.updateAppUser(appUser); + + //积分变动明细 + TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); + appUserIntegralChange.setAppUserId(appUser.getId()); + appUserIntegralChange.setChangeType(3); + appUserIntegralChange.setHistoricalIntegral(points); + appUserIntegralChange.setCurrentIntegral(points + num1); + appUserIntegralChange.setCreateTime(LocalDateTime.now()); + appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); + } + } + return AjaxResult.success(); + } + + + /** + * 获取订单评价 + * @param orderId 订单id + * @param orderType 订单类型 + * @return + */ + @Override + public OrderEvaluateVo getOrderEvaluate(Integer orderId, Integer orderType) { + TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, orderId).eq(TOrderEvaluate::getOrderType, orderType)); + if(null != orderEvaluate){ + OrderEvaluateVo orderEvaluateVo = new OrderEvaluateVo(); + BeanUtils.copyProperties(orderEvaluate, orderEvaluateVo); + List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, orderEvaluate.getId())); + List<Integer> tagId = tOrderEvaluateTags.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList()); + List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagId).getData(); + List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList()); + orderEvaluateVo.setTagName(collect); + return orderEvaluateVo; + } + return null; + } } -- Gitblit v1.7.1