From 7ea47db47d3e039e25531cd511d8d7b1342ccfc0 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 23 十月 2024 20:04:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java |   71 ++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 26 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 6823260..b0b28a0 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
@@ -190,10 +190,25 @@
             siteDetailEvaluateVO.setOrderEvaluateVOS(tChargingOrders);
             // 统计好评率
             long goodCount = tChargingOrders.stream().filter(orderEvaluateVO -> orderEvaluateVO.getMark()>=4).count();
-            BigDecimal reviewRate = new BigDecimal(goodCount).divide(new BigDecimal(tChargingOrders.size())).setScale(2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal reviewRate = new BigDecimal(goodCount).divide(new BigDecimal(tChargingOrders.size()),2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
             siteDetailEvaluateVO.setReviewRate(reviewRate);
             siteDetailEvaluateVO.setEvaluateCount(tChargingOrders.size());
-            siteDetailEvaluateVO.setOrderEvaluateVOS(tChargingOrders.stream().limit(3).collect(Collectors.toList()));
+            List<TOrderEvaluateVO> collect = tChargingOrders.stream().limit(3).collect(Collectors.toList());
+            // 查询评价下的标签
+            List<Long> orderIds = collect.stream().map(TOrderEvaluateVO::getId).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(orderIds)){
+                List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(Wrappers.lambdaQuery(TOrderEvaluateTag.class)
+                        .in(TOrderEvaluateTag::getOrderEvaluateId, orderIds));
+                for (TOrderEvaluateVO tOrderEvaluateVO : collect) {
+                    List<TOrderEvaluateTag> tOrderEvaluateTagList = tOrderEvaluateTags.stream().filter(e -> e.getOrderEvaluateId().equals(tOrderEvaluateVO.getId())).collect(Collectors.toList());
+                    if(!CollectionUtils.isEmpty(tOrderEvaluateTagList)){
+                        List<Integer> tagIds = tOrderEvaluateTagList.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList());
+                        List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagIds).getData();
+                        tOrderEvaluateVO.setOrderEvaluateTags(data);
+                    }
+                }
+            }
+            siteDetailEvaluateVO.setOrderEvaluateVOS(collect);
         }
         return siteDetailEvaluateVO;
     }
@@ -274,29 +289,31 @@
     
         //检测敏感词
         String content = orderEvaluate.getContent();
-        String token = appUserClient.getWXToken().getData();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("content", content);
-        jsonObject.put("version", 2);
-        jsonObject.put("scene", 2);
-        jsonObject.put("openid", appUser.getWxOpenid());
-        String post = HttpUtils.post("https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" + token, jsonObject.toString());
-        JSONObject object = JSONObject.parseObject(post);
-        Integer errcode = object.getInteger("errcode");
-        if(0 != errcode){
-            throw new RuntimeException(object.getString("errmsg"));
-        }
-        JSONArray detail = object.getJSONArray("detail");
-        for (int i = 0; i < detail.size(); i++) {
-            JSONObject jsonObject1 = detail.getJSONObject(i);
-            Integer errcode1 = jsonObject1.getInteger("errcode");
-            if(0 == errcode1){
-                String suggest = jsonObject1.getString("suggest");
-                Integer label = jsonObject1.getInteger("label");
-                String keyword = jsonObject1.getString("keyword");
-                Integer prob = jsonObject1.getInteger("prob");
-                if(("risky".equals(suggest) || "review".equals(suggest)) && 100 != label && StringUtils.isNotEmpty(keyword) && 80 <= prob){
-                    content = content.replaceAll(keyword, "***");
+        if(StringUtils.isNotEmpty(content)){
+            String token = appUserClient.getWXToken().getData();
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("content", content);
+            jsonObject.put("version", 2);
+            jsonObject.put("scene", 2);
+            jsonObject.put("openid", appUser.getWxOpenid());
+            String post = HttpUtils.post("https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" + token, jsonObject.toString());
+            JSONObject object = JSONObject.parseObject(post);
+            Integer errcode = object.getInteger("errcode");
+            if(0 != errcode){
+                throw new RuntimeException(object.getString("errmsg"));
+            }
+            JSONArray detail = object.getJSONArray("detail");
+            for (int i = 0; i < detail.size(); i++) {
+                JSONObject jsonObject1 = detail.getJSONObject(i);
+                Integer errcode1 = jsonObject1.getInteger("errcode");
+                if(0 == errcode1){
+                    String suggest = jsonObject1.getString("suggest");
+                    Integer label = jsonObject1.getInteger("label");
+                    String keyword = jsonObject1.getString("keyword");
+                    Integer prob = jsonObject1.getInteger("prob");
+                    if(("risky".equals(suggest) || "review".equals(suggest)) && 100 != label && StringUtils.isNotEmpty(keyword) && 80 <= prob){
+                        return AjaxResult.error("评价包含违规内容,请重新评价!");
+                    }
                 }
             }
         }
@@ -330,6 +347,7 @@
                 appUser.setPoints(appUser.getPoints() + num1);
                 appUserClient.updateAppUser(appUser);
     
+                TChargingOrder chargingOrder = chargingOrderService.getById(orderEvaluate.getOrderId());
                 //积分变动明细
                 TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
                 appUserIntegralChange.setAppUserId(appUser.getId());
@@ -337,7 +355,8 @@
                 appUserIntegralChange.setHistoricalIntegral(points);
                 appUserIntegralChange.setCurrentIntegral(points + num1);
                 appUserIntegralChange.setCreateTime(LocalDateTime.now());
-                appUserIntegralChange.setOrderCode(orderEvaluate.getId().toString());
+                appUserIntegralChange.setOrderCode(chargingOrder.getCode());
+                appUserIntegralChange.setExtension(orderEvaluate.getOrderId().toString());
                 appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
             }
         }

--
Gitblit v1.7.1