Pārlūkot izejas kodu

fixed 售后订单接口处理逻辑优化

fushengqian 8 mēneši atpakaļ
vecāks
revīzija
7a2bf53e30

+ 6 - 0
fuint-application/src/main/java/com/fuint/common/dto/RefundDto.java

@@ -42,6 +42,12 @@ public class RefundDto implements Serializable {
     @ApiModelProperty("用户备注")
     private String remark;
 
+    @ApiModelProperty("物流公司名称")
+    private String expressName;
+
+    @ApiModelProperty("物流单号")
+    private String expressNo;
+
     @ApiModelProperty("拒绝原因")
     private String rejectReason;
 

+ 2 - 1
fuint-application/src/main/java/com/fuint/common/enums/RefundStatusEnum.java

@@ -11,7 +11,8 @@ public enum RefundStatusEnum {
     CREATED("A", "待审核"),
     APPROVED("B", "已同意"),
     REJECT("C", "已拒绝"),
-    CANCEL("D", "已取消");
+    CANCEL("D", "已取消"),
+    COMPLETE("E", "已完成");
 
     private String key;
 

+ 19 - 5
fuint-application/src/main/java/com/fuint/common/service/impl/RefundServiceImpl.java

@@ -218,7 +218,9 @@ public class RefundServiceImpl extends ServiceImpl<MtRefundMapper, MtRefund> imp
                  if (mtRefund.getStatus().equals(RefundStatusEnum.CANCEL.getKey())) {
                      refundDto.setStatusText(RefundStatusEnum.CANCEL.getValue());
                  }
-
+                 if (mtRefund.getStatus().equals(RefundStatusEnum.COMPLETE.getKey())) {
+                     refundDto.setStatusText(RefundStatusEnum.COMPLETE.getValue());
+                 }
                  dataList.add(refundDto);
             }
         }
@@ -304,7 +306,13 @@ public class RefundServiceImpl extends ServiceImpl<MtRefundMapper, MtRefund> imp
                 refundDto.setImageList(images);
             }
             refundDto.setOrderInfo(orderDto);
+            // 退货地址
             AddressDto address = new AddressDto();
+            if (orderDto.getStoreInfo() != null) {
+                address.setMobile(orderDto.getStoreInfo().getPhone());
+                address.setName(orderDto.getStoreInfo().getContact());
+                address.setDetail(orderDto.getStoreInfo().getAddress());
+            }
             refundDto.setAddress(address);
             return refundDto;
         }
@@ -346,8 +354,8 @@ public class RefundServiceImpl extends ServiceImpl<MtRefundMapper, MtRefund> imp
         }
 
         // 已同意的不能再设置为已拒绝
-        if (mtRefund.getStatus().equals(RefundStatusEnum.APPROVED.getKey()) && refundDto.getStatus().equals(RefundStatusEnum.REJECT.getKey())) {
-            throw new BusinessCheckException("该售后订单已同意,不能再改成已拒绝");
+        if ((refundDto.getStatus() != null) && (!refundDto.getStatus().equals(RefundStatusEnum.COMPLETE.getKey())) && (mtRefund.getStatus().equals(RefundStatusEnum.COMPLETE.getKey()))) {
+            throw new BusinessCheckException("该售后订单已完成,不能再改成其他状态");
         }
 
         mtRefund.setId(refundDto.getId());
@@ -362,6 +370,12 @@ public class RefundServiceImpl extends ServiceImpl<MtRefundMapper, MtRefund> imp
         if (null != refundDto.getRemark()) {
             mtRefund.setRemark(refundDto.getRemark());
         }
+        if (null != refundDto.getExpressName()) {
+            mtRefund.setExpressName(refundDto.getExpressName());
+        }
+        if (null != refundDto.getExpressNo()) {
+            mtRefund.setExpressNo(refundDto.getExpressNo());
+        }
         if (null != refundDto.getRejectReason()) {
             mtRefund.setRejectReason(refundDto.getRejectReason());
         }
@@ -387,7 +401,7 @@ public class RefundServiceImpl extends ServiceImpl<MtRefundMapper, MtRefund> imp
         }
 
         // 已经同意过了
-        if (refund.getStatus().equals(RefundStatusEnum.APPROVED.getKey())) {
+        if (refund.getStatus().equals(RefundStatusEnum.COMPLETE.getKey())) {
             if (StringUtil.isNotEmpty(refundDto.getRemark())) {
                 refund.setRemark(refundDto.getRemark());
             }
@@ -593,7 +607,7 @@ public class RefundServiceImpl extends ServiceImpl<MtRefundMapper, MtRefund> imp
             RefundDto agreeDto = new RefundDto();
             agreeDto.setId(mtRefund.getId());
             agreeDto.setOperator(accountInfo.getAccountName());
-            agreeDto.setStatus(RefundStatusEnum.APPROVED.getKey());
+            agreeDto.setStatus(RefundStatusEnum.COMPLETE.getKey());
             MtRefund refundInfo = agreeRefund(agreeDto);
             if (refundInfo == null) {
                 logger.error("退款审核失败,orderId = " + orderId + ", refundId = " + mtRefund.getId());

+ 6 - 2
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendRefundController.java

@@ -220,9 +220,13 @@ public class BackendRefundController extends BaseController {
             RefundDto dto = new RefundDto();
             dto.setId(refundId);
             dto.setOperator(operator);
-            dto.setStatus(RefundStatusEnum.APPROVED.getKey());
+            dto.setStatus(status);
             dto.setRemark(remark);
-            refundService.agreeRefund(dto);
+            if (status.equals(RefundStatusEnum.COMPLETE.getKey())) {
+                refundService.agreeRefund(dto);
+            } else {
+                refundService.updateRefund(dto);
+            }
         }
         return getSuccessResult(true);
     }

+ 36 - 0
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientRefundController.java

@@ -146,4 +146,40 @@ public class ClientRefundController extends BaseController {
 
         return getSuccessResult(refundInfo);
     }
+
+    /**
+     * 售后用户发货
+     */
+    @ApiOperation(value = "售后用户发货")
+    @RequestMapping(value = "/delivery", method = RequestMethod.POST)
+    @CrossOrigin
+    public ResponseObject delivery(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
+        String token = request.getHeader("Access-Token");
+        UserInfo mtUser = TokenUtil.getUserInfoByToken(token);
+        if (null == mtUser) {
+            return getFailureResult(1001);
+        }
+        param.put("userId", mtUser.getId());
+
+        String refundId = param.get("refundId") == null ? "" : param.get("refundId").toString();
+        String expressName = param.get("expressName") == null ? "" : param.get("expressName").toString();
+        String expressNo = param.get("expressNo") == null ? "" : param.get("expressNo").toString();
+
+        RefundDto refundInfo = refundService.getRefundById(Integer.parseInt(refundId));
+        if (refundInfo == null || (!refundInfo.getUserId().equals(mtUser.getId()))) {
+            return getFailureResult(2001);
+        }
+
+        if (StringUtil.isEmpty(expressName) || StringUtil.isEmpty(expressNo)) {
+            return getFailureResult(201, "物流信息不能为空");
+        }
+
+        RefundDto refundDto = new RefundDto();
+        refundDto.setId(Integer.parseInt(refundId));
+        refundDto.setExpressName(expressName);
+        refundDto.setExpressNo(expressNo);
+        refundService.updateRefund(refundDto);
+
+        return getSuccessResult(true);
+    }
 }

+ 6 - 0
fuint-repository/src/main/java/com/fuint/repository/model/MtRefund.java

@@ -50,6 +50,12 @@ public class MtRefund implements Serializable {
     @ApiModelProperty("退款备注")
     private String remark;
 
+    @ApiModelProperty("物流公司名称")
+    private String expressName;
+
+    @ApiModelProperty("物流单号")
+    private String expressNo;
+
     @ApiModelProperty("拒绝原因")
     private String rejectReason;