linwe
2024-08-09 8b7258c9427882bb1798f1502eaa35184c6e374e
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);
      }
   }
}