Bläddra i källkod

feat(store): 更新差评申诉逻辑和活动报名信息展示

- 修改差评申诉置信度判断逻辑,从差值比较改为分数对比,商家分数高则同意申诉,用户分数高或平局则驳回
- 更新日志输出信息以反映新的申诉判断逻辑
- 在运营活动报名相关VO中添加用户头像、手机号和用户名字段
- 修改数据库查询映射,增加用户头像、手机号和用户名的数据获取
- 设置店铺默认评分从0.0改为5.0
fcw 2 månader sedan
förälder
incheckning
a9ffcddce1

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/vo/StoreOperationalActivityAchievementCaseDetailVo.java

@@ -46,6 +46,9 @@ public class StoreOperationalActivityAchievementCaseDetailVo {
     @ApiModelProperty(value = "联系方式(手机号)")
     private String phone;
 
+    @ApiModelProperty(value = "用户手机号")
+    private String userPhone;
+
     @ApiModelProperty(value = "用户头像")
     private String userImage;
 

+ 9 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/vo/StoreOperationalActivityAchievementCaseVo.java

@@ -63,4 +63,13 @@ public class StoreOperationalActivityAchievementCaseVo {
     @ApiModelProperty(value = "更新时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updatedTime;
+
+    @ApiModelProperty(value = "用户手机号")
+    private String userPhone;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @ApiModelProperty(value = "用户头像")
+    private String userImage;
 }

+ 6 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/vo/StoreOperationalActivitySignupVO.java

@@ -37,6 +37,12 @@ public class StoreOperationalActivitySignupVO {
     @ApiModelProperty(value = "用户昵称")
     private String nickName;
 
+    @ApiModelProperty(value = "用户头像")
+    private String userImage;
+
+    @ApiModelProperty(value = "用户手机号")
+    private String userPhone;
+
     @ApiModelProperty(value = "手机号")
     private String phone;
 

+ 5 - 1
alien-entity/src/main/resources/mapper/storePlatform/StoreOperationalActivityAchievementMapper.xml

@@ -66,7 +66,8 @@
             signup.user_name AS userName,
             signup.phone AS phone,
             signup.created_time AS createdTime,
-            u.user_image AS userImage
+            u.user_image AS userImage,
+            u.user_phone AS userPhone
         FROM store_operational_activity act
         LEFT JOIN life_user u ON u.id = #{userId}
         LEFT JOIN store_operational_activity_signup signup ON signup.activity_id = #{activityId}
@@ -106,6 +107,9 @@
             END AS activityStatus,
             u.user_name AS nickName,
             signup.phone AS phone,
+            u.user_name AS userName,
+            u.user_image AS userImage,
+            u.user_phone AS userPhone,
             CASE
                 WHEN (act.result_media_url IS NOT NULL AND act.result_media_url != '')
                     OR (act.result_text IS NOT NULL AND act.result_text != '') THEN 1

+ 12 - 9
alien-job/src/main/java/shop/alien/job/store/BadReviewAppealJob.java

@@ -189,20 +189,21 @@ public class BadReviewAppealJob {
                         continue;
                     }
 
-                    // 计算差值:差值>=10则同意,差值<10则驳回
-                    double confidenceDiff = Math.abs(userConfidence - merchantConfidence);
-                    log.info("差评申述置信度分析结果,申诉ID: {},user_confidence: {},merchant_confidence: {},差值: {}", 
-                        appeal.getId(), userConfidence, merchantConfidence, confidenceDiff);
+                    // 谁分数多算谁赢,平分的话算用户赢
+                    log.info("差评申述置信度分析结果,申诉ID: {},user_confidence: {},merchant_confidence: {}", 
+                        appeal.getId(), userConfidence, merchantConfidence);
 
                     StoreCommentAppeal sCommentAppeal = new StoreCommentAppeal();
                     sCommentAppeal.setRecordId(appeal.getRecordId());
                     sCommentAppeal.setAppealAiApproval(dataJsonObj.toJSONString());
 
-                    // 差值>=10则同意,差值<10则驳回
-                    if (confidenceDiff >= 10) {
+                    // 谁分数多算谁赢,平分的话算用户赢
+                    if (merchantConfidence > userConfidence) {
+                        //  商家分数 > 用户分数,商家赢(同意)
                         sCommentAppeal.setAppealStatus(2);
                         sCommentAppeal.setFinalResult("已同意");
-                        log.info("差评申述置信度差值>=10,申诉通过,申诉ID: {},差值: {}", appeal.getId(), confidenceDiff);
+                        log.info("差评申述置信度判断:商家赢(user_confidence: {} >= merchant_confidence: {}),申诉通过,申诉ID: {}",
+                            userConfidence, merchantConfidence, appeal.getId());
                         
                         // 删除评价和评论(与 StoreCommentAppealServiceImpl 逻辑一致)
                         Integer ratingId = appeal.getCommentId(); // commentId 存储的是评价ID(common_rating.id)
@@ -210,9 +211,11 @@ public class BadReviewAppealJob {
                             deleteRatingAndComments(ratingId);
                         }
                     } else {
+                        //  用户分数 >= 商家分数,用户赢(驳回)
                         sCommentAppeal.setAppealStatus(1);
                         sCommentAppeal.setFinalResult("已驳回");
-                        log.info("差评申述置信度差值<10,申诉驳回,申诉ID: {},差值: {}", appeal.getId(), confidenceDiff);
+                        log.info("差评申述置信度判断:用户赢(user_confidence: {} < merchant_confidence: {}),申诉驳回,申诉ID: {}",
+                            userConfidence, merchantConfidence, appeal.getId());
                     }
 
                     storeCommentAppealMapper.updateByRecordId(appeal.getRecordId(),
@@ -584,7 +587,7 @@ public class BadReviewAppealJob {
                 // 没有评价,设置默认评分为0
                 StoreInfo storeInfo = new StoreInfo();
                 storeInfo.setId(businessId);
-                storeInfo.setScoreAvg(0.0);
+                storeInfo.setScoreAvg(5.0);
                 storeInfo.setScoreOne(0.0);
                 storeInfo.setScoreTwo(0.0);
                 storeInfo.setScoreThree(0.0);

+ 3 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/OperationalActivitySignupServiceImpl.java

@@ -100,6 +100,9 @@ public class OperationalActivitySignupServiceImpl implements OperationalActivity
                 LifeUser lifeUser = lifeUserMapper.selectById(signup.getUserId());
                 if (lifeUser != null && lifeUser.getUserName() != null) {
                     vo.setNickName(lifeUser.getUserName());
+                    vo.setUserImage(lifeUser.getUserImage());
+                    vo.setUserPhone(lifeUser.getUserPhone());
+                    vo.setUserName(lifeUser.getUserName());
                 }
             }