From ca6fade1a01de3b64a12d998a791cec1b2b8fe1a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 18 十月 2024 10:34:46 +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 |   67 +++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 25 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..78d1c96 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("评价包含违规内容,请重新评价!");
+                    }
                 }
             }
         }

--
Gitblit v1.7.1