From c10d6358b9f014375a13821465bc978d0c0da22e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 29 May 2024 17:17:08 +0800
Subject: [PATCH] 通过E呼即办数据统计

---
 src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyCommentServiceImpl.java |   62 +++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyCommentServiceImpl.java b/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyCommentServiceImpl.java
index 43e140b..ca94ee8 100644
--- a/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyCommentServiceImpl.java
+++ b/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyCommentServiceImpl.java
@@ -17,20 +17,29 @@
 package org.springblade.modules.property.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.utils.SpringUtils;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.property.entity.PropertyCompanyCommentEntity;
+import org.springblade.modules.property.entity.PropertyCompanyEntity;
 import org.springblade.modules.property.entity.PropertyCompanyScoreEntity;
 import org.springblade.modules.property.service.IPropertyCompanyScoreService;
+import org.springblade.modules.property.service.IPropertyCompanyService;
 import org.springblade.modules.property.vo.PropertyCompanyCommentVO;
 import org.springblade.modules.property.mapper.PropertyCompanyCommentMapper;
 import org.springblade.modules.property.service.IPropertyCompanyCommentService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.words.WorksService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.Map;
 
 /**
  * 物业公司评论表 服务实现类
@@ -43,6 +52,9 @@
 
 	@Autowired
 	private IPropertyCompanyScoreService propertyCompanyScoreService;
+
+	@Autowired
+	private WorksService worksService;
 
 	@Override
 	public IPage<PropertyCompanyCommentVO> selectPropertyCompanyCommentPage(IPage<PropertyCompanyCommentVO> page, PropertyCompanyCommentVO propertyCompanyComment) {
@@ -58,12 +70,32 @@
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean saveOrUpdatePropertyCompanyComment(PropertyCompanyCommentVO propertyCompanyComment) {
-		boolean save = save(propertyCompanyComment);
-		// 更新评分
-		updatePropertyCompanyScore(propertyCompanyComment);
-		// 返回
-		return save;
+	public String saveOrUpdatePropertyCompanyComment(PropertyCompanyCommentVO propertyCompanyComment) {
+		boolean flag = false;
+		// 先进行敏感词过滤
+		Map<String, Object> map = worksService.interceptWords(propertyCompanyComment.getContent());
+		// 获取敏感词校验结果
+		String iswords = map.get("iswords").toString();
+		if (iswords.equals("false")){
+			// 审核通过
+			propertyCompanyComment.setCheckStatus(2);
+			flag = save(propertyCompanyComment);
+			// 更新评分
+			if(flag) {
+				updatePropertyCompanyScore(propertyCompanyComment);
+			}
+			// 返回
+			return "操作成功";
+		}else {
+			// 审核不通过
+			propertyCompanyComment.setCheckStatus(3);
+			// 设置审核不通过的说明
+			propertyCompanyComment.setCheckRemark(map.get("words").toString());
+			// 保存
+			save(propertyCompanyComment);
+			// 返回
+			return "当前评论内容中带有敏感词,当前评论无法生效!";
+		}
 	}
 
 	/**
@@ -87,8 +119,24 @@
 				propertyCompanyScoreEntity.setPropertyCompanyId(propertyCompanyComment.getPropertyCompanyId());
 				propertyCompanyScoreEntity.setCreateUser(AuthUtil.getUserId());
 				// 新增
-				propertyCompanyScoreService.save(propertyCompanyScoreEntity);
+ 				propertyCompanyScoreService.save(propertyCompanyScoreEntity);
 			}
+			// t 计算物业公司评价平均分
+
+			QueryWrapper<PropertyCompanyScoreEntity> queryWrapperTwo = new QueryWrapper<>();
+			queryWrapperTwo.eq("is_deleted",0).eq("property_company_id",propertyCompanyComment.getPropertyCompanyId());
+			// t统计物业公司总评价数
+			long count = propertyCompanyScoreService.count(queryWrapperTwo);
+			// 统计物业公司总评价分
+			Integer score = propertyCompanyScoreService.getScore(propertyCompanyComment.getPropertyCompanyId());
+			// 计算评价分
+			BigDecimal divide = BigDecimal.valueOf(score).divide(BigDecimal.valueOf(count));
+			// 更新物业评价平均分
+			PropertyCompanyEntity propertyCompanyEntity = new PropertyCompanyEntity();
+			propertyCompanyEntity.setId(propertyCompanyComment.getPropertyCompanyId());
+			propertyCompanyEntity.setEvaluateScore(divide);
+			IPropertyCompanyService bean = SpringUtils.getBean(IPropertyCompanyService.class);
+			bean.updateById(propertyCompanyEntity);
 		}
 	}
 }

--
Gitblit v1.9.3