From 1618b864a7db55e541fa5b73022f305aae4cf1e1 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期二, 25 三月 2025 17:39:30 +0800
Subject: [PATCH] 脱敏

---
 project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java |   77 ++++++++++++++++++++++++++++++--------
 1 files changed, 60 insertions(+), 17 deletions(-)

diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java
index 6a24155..56feac4 100644
--- a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java
+++ b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java
@@ -1,19 +1,23 @@
 package com.project.enforce.service.impl;
 
+import cn.hutool.core.convert.Convert;
 import com.project.common.exception.base.BaseException;
+import com.project.common.utils.JsonUtils;
+import com.project.common.utils.NumberUtils;
 import com.project.common.utils.StringUtils;
 import com.project.enforce.domain.EnforceEvaluateAnswer;
+import com.project.enforce.domain.EnforceEvaluateLog;
 import com.project.enforce.domain.EnforceEvaluateQuestion;
+import com.project.enforce.domain.EnforceOrder;
 import com.project.enforce.domain.bo.editBo.EnforceEvaluateBo;
 import com.project.enforce.domain.vo.EnforceEvaluateVo;
-import com.project.enforce.service.IEnforceEvaluateAnswerService;
-import com.project.enforce.service.IEnforceEvaluateQuestionService;
-import com.project.enforce.service.IEnforceEvaluateService;
+import com.project.enforce.service.*;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -30,17 +34,20 @@
 
     private final IEnforceEvaluateQuestionService questionService;
     private final IEnforceEvaluateAnswerService answerService;
+    private final IEnforceOrderService orderService;
+    private final IEnforceEvaluateLogService evaluateLogService;
 
 
     @Override//淇濆瓨
     @Transactional
     public Boolean save(EnforceEvaluateBo bo)
     {
+        questionService.clearQuestionAndAnswer();
         List<EnforceEvaluateQuestion> questionList = bo.getQuestionList();
         if (StringUtils.isEmpty(questionList)){
-            throw new BaseException("棰樼洰涓嶅彲涓虹┖锛�");
+            throw new BaseException("璇勪环椤逛笉鍙负绌猴紒");
         }
-        for (EnforceEvaluateQuestion question : bo.getQuestionList()) {
+        for (EnforceEvaluateQuestion question : questionList) {
             if (question.getQuestionType()==1 && StringUtils.isEmpty(question.getAnswerList())){
                 throw new BaseException("閫夋嫨绫诲瀷绛旀涓嶅彲涓虹┖锛�");
             }
@@ -48,16 +55,8 @@
                 int count = questionService.count(questionService.lq()
                         .eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionId()));
                 if (count>0) {
-                    throw new BaseException(StringUtils.format("{}锛岄鐩噸澶嶏紝璇烽噸璇曪紒", question.getQuestionName()));
+                    throw new BaseException(StringUtils.format("{}锛岄噸澶嶏紝璇烽噸璇曪紒", question.getQuestionName()));
                 }
-                if (StringUtils.isNotEmpty(question.getAnswerList())){
-                    EnforceEvaluateQuestion one = questionService.getOne(questionService.lq().eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionName()));
-                    question.getAnswerList().forEach(enforceEvaluateAnswer -> {
-                        enforceEvaluateAnswer.setQuestionId(one.getQuestionId());
-                        enforceEvaluateAnswer.setQuestionName(one.getQuestionName());
-                    });
-                }
-
             } else {
                 int count = questionService.count(questionService.lq().
                         eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionId())
@@ -68,14 +67,18 @@
             }
             questionService.saveOrUpdate(question);
             if (StringUtils.isNotEmpty(question.getAnswerList())){
+                EnforceEvaluateQuestion one = questionService.getOne(questionService.lq().eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionName()));
+                question.getAnswerList().forEach(enforceEvaluateAnswer -> {
+                    enforceEvaluateAnswer.setQuestionId(one.getQuestionId());
+                    enforceEvaluateAnswer.setQuestionName(one.getQuestionName());
+                });
                 answerService.saveOrUpdateBatch(question.getAnswerList());
             }
         }
-
-        return null;
+        return true;
     }
 
-    @Override
+    @Override//璇勪环璁剧疆璇︽儏
     public EnforceEvaluateVo getInfo()
     {
         EnforceEvaluateVo vo = new EnforceEvaluateVo();
@@ -89,4 +92,44 @@
         vo.setQuestionList(questionList);
         return vo;
     }
+
+    @Override
+    @Transactional
+    public Boolean saveOrder(EnforceEvaluateBo bo)
+    {
+        if (bo.getOrderId()==null){
+            throw new BaseException("璇烽�夋嫨璇勪环鎵ф硶鍗曪紒");
+        }
+        EnforceOrder order = orderService.getById(bo.getOrderId());
+        if (order.getOrderStatus()==2){
+            throw new BaseException("璇ユ墽娉曞崟杩樻湭鎵ф硶锛屼笉鍙瘎浠凤紒");
+        }
+        List<EnforceEvaluateQuestion> questionList = bo.getQuestionList();
+        if (StringUtils.isEmpty(questionList)){
+            throw new BaseException("璇勪环椤逛笉鍙负绌猴紒");
+        }
+        int count = evaluateLogService.count(EnforceEvaluateLog::getOrderId, bo.getOrderId());
+        if (count>0) {
+            throw new BaseException("璇ユ墽娉曞崟宸茶瘎浠凤紒");
+        }
+        BigDecimal totalScore = BigDecimal.ZERO;
+        for (EnforceEvaluateQuestion question : questionList) {
+            totalScore = NumberUtils.add(totalScore, question.getGetScore());
+        }
+
+
+        EnforceEvaluateLog evaluateLog = Convert.convert(EnforceEvaluateLog.class, order);
+        evaluateLog.setQuestionRemark(bo.getQuestionRemark());
+        evaluateLog.setTotalScore(NumberUtils.divToBigDecSca2(totalScore,1));
+        evaluateLog.setQuestionStatic(JsonUtils.objectToJson(bo.getQuestionList()));
+
+        evaluateLogService.saveOrUpdate(evaluateLog);
+        return orderService.update(orderService.lu()
+                .set(EnforceOrder::getIsEva,1)
+                .set(EnforceOrder::getTotalScore, totalScore)
+                .eq(EnforceOrder::getOrderId, bo.getOrderId())
+        );
+    }
+
+
 }

--
Gitblit v1.9.1