ソースを参照

评分计算保留一位小数

LuTong 2 週間 前
コミット
0cd356c649

+ 2 - 2
alien-entity/src/main/java/shop/alien/entity/store/LawyerUser.java

@@ -211,9 +211,9 @@ public class LawyerUser extends Model<LawyerUser> {
     @TableField("id_card_back_image")
     private String idCardBackImage;
 
-    @ApiModelProperty(value = "服务评分, 0-5分")
+    @ApiModelProperty(value = "服务评分, 0-5分(保留一位小数)")
     @TableField("service_score")
-    private Integer serviceScore;
+    private Double serviceScore;
 
     @ApiModelProperty(value = "服务次数")
     @TableField("service_count")

+ 2 - 2
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerUserVo.java

@@ -173,9 +173,9 @@ public class LawyerUserVo implements Serializable {
     @TableField("id_card_back_image")
     private String idCardBackImage;
 
-    @ApiModelProperty(value = "服务评分, 0-5分")
+    @ApiModelProperty(value = "服务评分, 0-5分(保留一位小数)")
     @TableField("service_score")
-    private Integer serviceScore;
+    private Double serviceScore;
 
     @ApiModelProperty(value = "服务次数")
     @TableField("service_count")

+ 2 - 2
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/LawyerUserServiceImpl.java

@@ -137,8 +137,8 @@ public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerU
         result.put("education", lawyer.getEducationBackground() != null ? lawyer.getEducationBackground() : "");
         result.put("credentials", new ArrayList<>());  // TODO: 需要查询资质证书
         result.put("caseCount", lawyer.getServiceCount() != null ? lawyer.getServiceCount() : 0);
-        // 评分:服务评分已经是0-5分,直接转换为Double类型
-        result.put("rating", lawyer.getServiceScore() != null ? lawyer.getServiceScore().doubleValue() : 0.0);
+        // 评分:服务评分已经是0-5分(保留一位小数),直接使用
+        result.put("rating", lawyer.getServiceScore() != null ? lawyer.getServiceScore() : 0.0);
         result.put("reviewCount", lawyer.getGoodReviewCount() != null ?
                 (lawyer.getGoodReviewCount() + (lawyer.getMediumReviewCount() != null ? lawyer.getMediumReviewCount() : 0) +
                         (lawyer.getBadReviewCount() != null ? lawyer.getBadReviewCount() : 0)) : 0);

+ 8 - 8
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/OrderReviewServiceImpl.java

@@ -151,17 +151,17 @@ public class OrderReviewServiceImpl extends ServiceImpl<OrderReviewMapper, Order
         try {
             // 计算平均评分(1-5星)
             Double averageRating = orderReviewMapper.getAverageRatingByLawyerUserId(lawyerUserId);
-
-            Integer serviceScore;
+            
+            Double serviceScore;
             if (averageRating != null) {
-                // 转换为0-5分:service_score = averageRating(四舍五入)
-                serviceScore = (int) Math.round(averageRating);
+                // 转换为0-5分,保留一位小数
+                serviceScore = Math.round(averageRating * 10.0) / 10.0;
                 // 确保在0-5范围内
-                serviceScore = Math.max(0, Math.min(5, serviceScore));
+                serviceScore = Math.max(0.0, Math.min(5.0, serviceScore));
             } else {
-                // 如果没有评价,设置为0
-                serviceScore = 0;
-                log.info("律师暂无评价,将评分设置为0,律师ID={}", lawyerUserId);
+                // 如果没有评价,设置为0.0
+                serviceScore = 0.0;
+                log.info("律师暂无评价,将评分设置为0.0,律师ID={}", lawyerUserId);
             }
 
             // 统计好评、中评、差评数量

+ 2 - 2
alien-store/src/main/java/shop/alien/store/service/impl/LawyerUserServiceImpl.java

@@ -126,8 +126,8 @@ public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerU
         result.put("education", lawyer.getEducationBackground() != null ? lawyer.getEducationBackground() : "");
         result.put("credentials", new ArrayList<>());  // TODO: 需要查询资质证书
         result.put("caseCount", lawyer.getServiceCount() != null ? lawyer.getServiceCount() : 0);
-        // 评分:服务评分已经是0-5分,直接转换为Double类型
-        result.put("rating", lawyer.getServiceScore() != null ? lawyer.getServiceScore().doubleValue() : 0.0);
+        // 评分:服务评分已经是0-5分(保留一位小数),直接使用
+        result.put("rating", lawyer.getServiceScore() != null ? lawyer.getServiceScore() : 0.0);
         result.put("reviewCount", lawyer.getGoodReviewCount() != null ?
                 (lawyer.getGoodReviewCount() + (lawyer.getMediumReviewCount() != null ? lawyer.getMediumReviewCount() : 0) +
                  (lawyer.getBadReviewCount() != null ? lawyer.getBadReviewCount() : 0)) : 0);