Pu Zhibing
2024-11-07 6851a3e83b5bcf27688688660073cb21bcc61eb6
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
@@ -131,10 +131,20 @@
    @Resource
    private TOrderEvaluateMapper orderEvaluateMapper;
    @Override
    public List<TEvaluationTagVO> getTagCount() {
    public List<TEvaluationTagVO> getTagCount(Integer siteId) {
        // 查询标签列表
        R<List<TEvaluationTagVO>> r = evaluationTagClient.getList();
        List<TEvaluationTagVO> tagList = r.getData();
        // 查询站点下的所有订单
        List<TChargingOrder> tChargingOrders = chargingOrderMapper.selectList(Wrappers.lambdaQuery(TChargingOrder.class)
                .eq(TChargingOrder::getSiteId, siteId));
        if(CollectionUtils.isEmpty(tChargingOrders)){
            tagList.forEach(e->e.setTagCount(0));
            packageTagCount(0L,"有图",2,tagList);
            packageTagCount(0L,"好评",3,tagList);
            packageTagCount(0L,"中差评",4,tagList);
            return tagList;
        }
        List<Integer> tagIds = tagList.stream().map(TEvaluationTagVO::getId).collect(Collectors.toList());
        // 统计标签使用数量
        List<TEvaluationTagVO> counts = orderEvaluateTagMapper.getCountByTagIds(tagIds);
@@ -342,42 +352,22 @@
        //检测敏感词
        String content = orderEvaluate.getContent();
        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("评价包含违规内容,请重新评价!");
                    }
                }
            Boolean data = appUserClient.sensitiveWordDetection(content, appUser.getWxOpenid()).getData();
            if(data){
                return AjaxResult.error("评价包含违规内容,请重新评价!");
            }
        }
        orderEvaluate.setContent(content);
        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);
        if(null != tagIds){
            for (Integer tagId : tagIds) {
                TOrderEvaluateTag orderEvaluateTag = new TOrderEvaluateTag();
                orderEvaluateTag.setOrderEvaluateId(orderEvaluate.getId());
                orderEvaluateTag.setEvaluationTagId(tagId);
                orderEvaluateTagMapper.insert(orderEvaluateTag);
            }
        }
    
        //判断发放积分  文字+图片+5星好评