Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

lyx 3 týždňov pred
rodič
commit
1f28612fae

+ 5 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerConsultationOrder.java

@@ -156,6 +156,11 @@ public class LawyerConsultationOrder extends Model<LawyerConsultationOrder> {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date applyRefundTime;
 
+    @ApiModelProperty(value = "申请退款处理时间")
+    @TableField(value = "apply_refund_process_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyRefundProcessTime;
+
     @ApiModelProperty(value = "申请退款原因")
     @TableField("apply_refund_reason")
     private String applyRefundReason;

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreCommentAppeal.java

@@ -74,4 +74,7 @@ public class StoreCommentAppeal extends Model<StoreCommentAppeal> {
     @TableField("updated_user_id")
     private Integer updatedUserId;
 
+    @ApiModelProperty(value = "AI接口返回的ID")
+    @TableField("record_id")
+    private Integer recordId;
 }

+ 12 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerConsultationOrderVO.java

@@ -217,5 +217,17 @@ public class LawyerConsultationOrderVO implements Serializable {
 
     @ApiModelProperty(value = "是否已经评价(1-已评价,2-未评价)")
     private  String isHasCommon;
+
+    @ApiModelProperty(value = "申请退款处理时间")
+    private  Date applyRefundProcessTime;
+
+    @ApiModelProperty(value = "举报处理状态(0:待处理,1:已通过,2:已驳回)")
+    private  String processingStatus;
+
+    @ApiModelProperty(value = "举报处理时间")
+    private  Date processingTime;
+
+    @ApiModelProperty(value = "举报处理结果")
+    private  String reportResult;
 }
 

+ 6 - 1
alien-entity/src/main/java/shop/alien/mapper/LawyerConsultationOrderMapper.java

@@ -312,6 +312,7 @@ public interface LawyerConsultationOrderMapper extends BaseMapper<LawyerConsulta
             "        lco.apply_refund_status,\n" +
             "        lco.reject_refund_reason,\n" +
             "        lco.apply_refund_reason,\n" +
+            "        lco.apply_refund_process_time,\n" +
             "        CASE\n" +
             "        WHEN EXISTS (SELECT 1 FROM lawyer_order_review lor WHERE lor.order_id = lco.id) THEN '1'\n" +
             "        ELSE '2'\n" +
@@ -341,12 +342,16 @@ public interface LawyerConsultationOrderMapper extends BaseMapper<LawyerConsulta
             "        lea.expertise_area_info,\n" +
             "        lur.user_name client_user_name,\n" +
             "        lur.user_phone client_user_phone,\n" +
-            "        lco.order_amount - lco.consultation_fee as lawyerEarnings\n" +
+            "        lco.order_amount - lco.consultation_fee as lawyerEarnings,\n" +
+            "        luv.processing_status,\n" +
+            "        luv.processing_time,\n" +
+            "        luv.report_result\n" +
             "        FROM lawyer_consultation_order lco\n" +
             "        LEFT JOIN lawyer_user lu ON lco.lawyer_user_id = lu.id AND lu.delete_flag = 0\n" +
             "        LEFT JOIN law_firm lf on lf.id = lu.firm_id\n" +
             "        left join lawyer_expertise_area lea on lea.id = lu.lawyer_expertise_area_id and lea.delete_flag = 0 " +
             "        left join life_user lur on lur.id = lco.client_user_id " +
+            "        left join lawyer_user_violation luv on luv.order_number = lco.order_number and luv.delete_flag = 0 " +
             " ${ew.customSqlSegment}")
     IPage<LawyerConsultationOrderVO> getLawyerConsultationOrderInfo(
             IPage<LawyerConsultationOrderVO> page, @Param(Constants.WRAPPER) QueryWrapper<LawyerConsultationOrderVO> queryWrapper

+ 11 - 21
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/LawyerClientConsultationOrderServiceImpl.java

@@ -38,6 +38,7 @@ import shop.alien.mapper.LawyerUserMapper;
 import shop.alien.mapper.LifeNoticeMapper;
 import shop.alien.mapper.LifeUserMapper;
 import shop.alien.util.common.constant.LawyerStatusEnum;
+import shop.alien.util.common.constant.OrderActionType;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 
@@ -49,21 +50,6 @@ import java.util.stream.Collectors;
 import java.util.Objects;
 
 /**
- * 操作类型常量
- */
-class OrderActionType {
-    /**
-     * 接单
-     */
-    static final String ACCEPT = "1";
-    
-    /**
-     * 取消
-     */
-    static final String CANCEL = "2";
-}
-
-/**
  * 咨询订单 服务实现类
  *
  * @author system
@@ -501,7 +487,7 @@ public class LawyerClientConsultationOrderServiceImpl extends ServiceImpl<Lawyer
         } else {
             // 默认查询非待支付和已取消的订单
             Integer waitPayStatus = LawyerStatusEnum.WAIT_PAY.getStatus();
-            //Integer cancelStatus = LawyerStatusEnum.CANCEL.getStatus();
+            Integer cancelStatus = LawyerStatusEnum.CANCEL.getStatus();
             queryWrapper.notIn("lco.order_status",
                     Arrays.asList( String.valueOf(waitPayStatus)));
         }
@@ -670,8 +656,8 @@ public class LawyerClientConsultationOrderServiceImpl extends ServiceImpl<Lawyer
 
         // 操作类型格式校验
         String trimmedActionType = actionType.trim();
-        if (!OrderActionType.ACCEPT.equals(trimmedActionType) 
-                && !OrderActionType.CANCEL.equals(trimmedActionType)) {
+        OrderActionType actionTypeEnum = OrderActionType.getByCode(trimmedActionType);
+        if (actionTypeEnum == null) {
             log.warn("律师确认订单失败:操作类型无效,actionType={}", actionType);
             return R.fail("操作类型无效,1-接单,2-取消");
         }
@@ -705,7 +691,7 @@ public class LawyerClientConsultationOrderServiceImpl extends ServiceImpl<Lawyer
         }
 
         // 根据操作类型处理
-        if (OrderActionType.ACCEPT.equals(trimmedActionType)) {
+        if (actionTypeEnum == OrderActionType.ACCEPT) {
             // 接单:更新订单状态为进行中
             Integer inProgressStatus = LawyerStatusEnum.INPROGRESS.getStatus();
             Date acceptTime = new Date();
@@ -982,11 +968,13 @@ public class LawyerClientConsultationOrderServiceImpl extends ServiceImpl<Lawyer
 
         try {
             // 1. 更新订单状态和退款状态
+            Date processTime = new Date();
             LambdaUpdateWrapper<LawyerConsultationOrder> updateWrapper = new LambdaUpdateWrapper<>();
             updateWrapper.eq(LawyerConsultationOrder::getId, order.getId())
                     .set(LawyerConsultationOrder::getOrderStatus, LawyerStatusEnum.REFUNDED.getStatus())
                     .set(LawyerConsultationOrder::getApplyRefundStatus, REFUND_STATUS_AGREED)
-                    .set(LawyerConsultationOrder::getUpdatedTime, new Date());
+                    .set(LawyerConsultationOrder::getApplyRefundProcessTime, processTime)
+                    .set(LawyerConsultationOrder::getUpdatedTime, processTime);
 
             int updateCount = consultationOrderMapper.update(null, updateWrapper);
             if (updateCount <= 0) {
@@ -1025,11 +1013,13 @@ public class LawyerClientConsultationOrderServiceImpl extends ServiceImpl<Lawyer
 
         try {
             // 1. 更新订单退款状态和拒绝原因
+            Date processTime = new Date();
             LambdaUpdateWrapper<LawyerConsultationOrder> updateWrapper = new LambdaUpdateWrapper<>();
             updateWrapper.eq(LawyerConsultationOrder::getId, order.getId())
                     .set(LawyerConsultationOrder::getApplyRefundStatus, REFUND_STATUS_REJECTED)
                     .set(LawyerConsultationOrder::getRejectRefundReason, rejectRefundReason)
-                    .set(LawyerConsultationOrder::getUpdatedTime, new Date());
+                    .set(LawyerConsultationOrder::getApplyRefundProcessTime, processTime)
+                    .set(LawyerConsultationOrder::getUpdatedTime, processTime);
 
             int updateCount = consultationOrderMapper.update(null, updateWrapper);
             if (updateCount <= 0) {

+ 51 - 0
alien-util/src/main/java/shop/alien/util/common/constant/OrderActionType.java

@@ -0,0 +1,51 @@
+package shop.alien.util.common.constant;
+
+/**
+ * 订单操作类型枚举
+ */
+public enum OrderActionType {
+    /**
+     * 接单
+     */
+    ACCEPT("1", "接单"),
+    
+    /**
+     * 取消
+     */
+    CANCEL("2", "取消");
+
+    private final String code;
+    private final String description;
+
+    OrderActionType(String code, String description) {
+        this.code = code;
+        this.description = description;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * 根据code获取枚举
+     *
+     * @param code 操作类型代码
+     * @return 枚举值,如果不存在则返回null
+     */
+    public static OrderActionType getByCode(String code) {
+        if (code == null) {
+            return null;
+        }
+        for (OrderActionType type : OrderActionType.values()) {
+            if (type.code.equals(code)) {
+                return type;
+            }
+        }
+        return null;
+    }
+}
+