From 7cf1eb27ecbd23ddc1d0e8080c9637aa6f2a2bf9 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 25 六月 2025 08:45:38 +0800
Subject: [PATCH] Merge branch 'dev' 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 | 86 ++++++++++++++++++-------------------------
1 files changed, 36 insertions(+), 50 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 c9c9f8a..c31e936 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,9 +1,6 @@
package com.ruoyi.order.service.impl;
-import cn.hutool.db.DaoTemplate;
import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONArray;
-import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,15 +9,12 @@
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.domain.SiteMenu;
import com.ruoyi.chargingPile.api.feignClient.PartnerClient;
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.HttpUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
@@ -51,7 +45,6 @@
import com.ruoyi.system.api.model.SysUserRoleVo;
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;
@@ -131,10 +124,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);
@@ -251,8 +254,9 @@
tagList.add(evaluationTagVO);
}
}
-
-
+
+ @Resource
+ private PartnerClient partnerClient;
/**
* 获取充电评价列表
* @param pageList
@@ -269,17 +273,17 @@
//校验合作商权限
List<Integer> siteIds = new ArrayList<>();
+ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
+ Integer roleType = sysUser.getRoleType();
+ Integer objectId = sysUser.getObjectId();
if(null == pageList.getSiteId() || 0 == pageList.getSiteId()){
- SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
- Integer roleType = sysUser.getRoleType();
- Integer objectId = sysUser.getObjectId();
//合作商
if(roleType == 2){
- Set<Integer> data = partnerService.authSite(objectId, "/data/site").getData();
+ Set<Integer> data = partnerService.authSite(objectId, SiteMenu.CHARGE_EVALUATION.getValue()).getData();
siteIds = new ArrayList<>(data);
}else{
//非管理员需要根据角色和用户配置查询允许的站点数据
- if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ if(!SecurityUtils.isAdmin(tokenService.getLoginUser().getUserid())){
List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
@@ -287,10 +291,7 @@
siteIds = data;
}
}
- }else{
- siteIds.add(pageList.getSiteId());
}
-
List<GetOrderEvaluatePageListDTO> list = this.baseMapper.getPageList(pageList, evaluationTagIds, siteIds, pageInfo);
for (GetOrderEvaluatePageListDTO dto : list) {
TAppUser appUser = appUserClient.getUserById(dto.getAppUserId()).getData();
@@ -311,6 +312,8 @@
List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList());
dto.setTags(collect);
}
+ dto.setAuthReply(roleType == 1 ? true : partnerService.authMenu(objectId, dto.getSiteId(), SiteMenu.CHARGE_EVALUATION_ANSWER.getValue()));
+ dto.setAuthDelete(roleType == 1 ? true : partnerService.authMenu(objectId, dto.getSiteId(), SiteMenu.CHARGE_EVALUATION_DEL.getValue()));
}
return pageInfo.setRecords(list);
}
@@ -322,7 +325,6 @@
* @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));
@@ -342,42 +344,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星好评
@@ -426,6 +408,10 @@
public OrderEvaluateVo getOrderEvaluate(String orderId, Integer orderType) {
TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, orderId).eq(TOrderEvaluate::getOrderType, orderType));
if(null != orderEvaluate){
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ if(!orderEvaluate.getAppUserId().equals(userId)){
+ throw new RuntimeException("权限不足");
+ }
OrderEvaluateVo orderEvaluateVo = new OrderEvaluateVo();
BeanUtils.copyProperties(orderEvaluate, orderEvaluateVo);
List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, orderEvaluate.getId()));
--
Gitblit v1.7.1