Quellcode durchsuchen

手动新增退款记录

ZHOUTD vor 4 Tagen
Ursprung
Commit
d11a3785b9

+ 1 - 0
ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/enums/PayTypeEnum.java

@@ -30,6 +30,7 @@ public enum PayTypeEnum implements IntArrayValuable {
     CORPORATE_TRANSFER_PAY(9, "对公转账",""),
     //账单还款-用于标记,无实际操作
     TONG_LIAN_SCAN_PAY(10, "通联扫码",""),
+    OFFLINE_REFUND(11, "线下退款",""),
     OTHER(99, "其他","");
 
 

+ 24 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java

@@ -790,4 +790,28 @@ public class OtcTradeOrderController {
     public CommonResult<PublicOrderVoyageRespVO> getOrderVoyage(@RequestParam("orderId") Long orderId) {
         return otcTradeOrderService.getOrderVoyage(orderId);
     }
+
+    /**
+     * 获取订单简要信息
+     * 用于页面选择
+     *
+     * @param voyageId 航次ID
+     * @return 订单简要信息
+     */
+    @GetMapping("/orderSimpleList")
+    @Operation(summary = "获取订单简要信息", description = "获取订单简要信息,用于页面选择")
+    public CommonResult<List<TradeOrderDO>> orderSimpleList(@RequestParam("voyageId") Long voyageId) {
+        return success(otcTradeOrderService.getOrderSimpleList(voyageId));
+    }
+
+    /**
+     * 手动创建退款记录
+     * 用于线下退款记录
+     */
+    @PostMapping("/createHandRefundRecord")
+    @Operation(summary = "手动创建退款记录", description = "手动创建退款记录,用于线下退款记录")
+    @PreAuthorize("@ss.hasPermission('trade:refund:createHandRecord')")
+    public CommonResult<String> createHandRefundRecord(@Valid @RequestBody TradeRefundHandCreateReqVO createReqVO) {
+        return success(otcTradeOrderService.createHandRefundRecord(createReqVO));
+    }
 }

+ 33 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/refund/TradeRefundHandCreateReqVO.java

@@ -0,0 +1,33 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.refund;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "手动退款 Request VO")
+@Data
+public class TradeRefundHandCreateReqVO {
+
+    @Schema(description = "订单", example = "")
+    @NotNull(message = "订单不能为空")
+    private Long orderId;
+
+    @Schema(description = "退款金额", example = "")
+    @NotNull(message = "退款金额不能为空")
+    private BigDecimal refundAmount;
+
+    @Schema(description = "退款时间", example = "")
+    @NotNull(message = "退款时间不能为空")
+    private LocalDateTime refundTime;
+
+    private String merchantNo;
+    private String paymentNo;
+    private String refundNo;
+    private Integer paymentType;
+    private Integer refundStatus;
+    
+}

+ 1 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -2,6 +2,7 @@ package com.yc.ship.module.trade.dal.mysql.order;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;

+ 6 - 5
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java

@@ -8,16 +8,13 @@ import com.yc.ship.module.product.api.dto.CategoryRespDTO;
 import com.yc.ship.module.product.api.dto.ProductSpuRespDTO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
 import com.yc.ship.module.trade.controller.admin.order.vo.otc.PrintRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundDetailRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundPageReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordPageReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRespVO;
+import com.yc.ship.module.trade.controller.admin.order.vo.refund.*;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderDetailRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.PublicOrderVoyageRespVO;
 import com.yc.ship.module.trade.dal.dataobject.contract.ContractDO;
 import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailBaseDO;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 
 import javax.validation.Valid;
 import java.io.File;
@@ -176,4 +173,8 @@ public interface OtcTradeOrderService {
      * @return 订单航次信息
      */
     CommonResult<PublicOrderVoyageRespVO> getOrderVoyage(Long orderId);
+
+    List<TradeOrderDO> getOrderSimpleList(Long voyageId);
+
+    String createHandRefundRecord(@Valid TradeRefundHandCreateReqVO createReqVO);
 }

+ 38 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -110,6 +110,8 @@ import com.yc.ship.module.trade.dal.dataobject.invoice.InvoiceDO;
 import com.yc.ship.module.trade.dal.dataobject.order.*;
 import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
 import com.yc.ship.module.trade.dal.dataobject.orderpolicy.OrderPolicyDO;
+import com.yc.ship.module.trade.dal.dataobject.refund.RefundDO;
+import com.yc.ship.module.trade.dal.dataobject.refund.RefundRecordDO;
 import com.yc.ship.module.trade.dal.dataobject.tradeOrderaudit.TradeOrderAuditDO;
 import com.yc.ship.module.trade.dal.mysql.audituser.AuditUserMapper;
 import com.yc.ship.module.trade.dal.mysql.contract.ContractMapper;
@@ -117,6 +119,8 @@ import com.yc.ship.module.trade.dal.mysql.insurance.InsuranceMapper;
 import com.yc.ship.module.trade.dal.mysql.order.*;
 import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
 import com.yc.ship.module.trade.dal.mysql.orderpolicy.OrderPolicyMapper;
+import com.yc.ship.module.trade.dal.mysql.refund.RefundMapper;
+import com.yc.ship.module.trade.dal.mysql.refund.RefundRecordMapper;
 import com.yc.ship.module.trade.dal.mysql.tradeOrderaudit.TradeOrderAuditMapper;
 import com.yc.ship.module.trade.enums.*;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
@@ -314,6 +318,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private TradeRefundService tradeRefundService;
 
+    @Resource
+    private RefundMapper refundMapper;
+
+    @Resource
+    private RefundRecordMapper refundRecordMapper;
+    
     @Resource
     private TradeOrderBindMapper tradeOrderBindMapper;
 
@@ -4487,4 +4497,32 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         return CommonResult.success(respVO);
     }
+
+    @Override
+    public List<TradeOrderDO> getOrderSimpleList(Long voyageId) {
+        return tradeOrderMapper.getValidSimpleOrderInfoByVoyageId(voyageId);
+    }
+
+    @Override
+    public String createHandRefundRecord(TradeRefundHandCreateReqVO createReqVO) {
+        long id = IdWorker.getId();
+        RefundDO refundDO = RefundDO.builder().id(id).orderId(createReqVO.getOrderId())
+                .refundAmount(createReqVO.getRefundAmount()).refundReason("手动新增线下退款记录").build();
+        refundMapper.insert(refundDO);
+        RefundRecordDO refundRecordDO = RefundRecordDO.builder()
+                .id(IdWorker.getId())
+                .refundId(id)
+                .refundAmount(createReqVO.getRefundAmount())
+                .refundStatus(createReqVO.getRefundStatus())
+                .refundBackType(1)
+                .paymentType(createReqVO.getPaymentType())
+                .result("手动新增线下退款记录")
+                .refundType(0)
+                .merchantNo(createReqVO.getMerchantNo())
+                .paymentNo(createReqVO.getPaymentNo())
+                .refundNo(createReqVO.getRefundNo())
+                .refundTime(createReqVO.getRefundTime()).build();
+        refundRecordMapper.insert(refundRecordDO);
+        return "";
+    }
 }

+ 3 - 2
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -1593,11 +1593,12 @@
 
     <select id="getPageRefundRecord"
             resultType="com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordRespVO">
-        SELECT trr.*,td.order_no, td.id orderId, td.travel_date
+        SELECT trr.*,coalesce(td.order_no,td1.order_no) as orderNo, coalesce(td.id,td1.id) as  orderId, coalesce(td.travel_date,td1.travel_date) as travel_date
         FROM trade_refund_record trr
         left join trade_order_pay top on trr.order_pay_id = top.id
         left join trade_refund tr on trr.refund_id = tr.id
         left join trade_order td on td.id = top.order_id
+        left join trade_order td1 on td1.id = tr.order_id
         left join product_voyage pv on td.voyage_id = pv.id
         LEFT JOIN ota_distributor od on od.id = td.source_id
         where 1= 1
@@ -2995,7 +2996,7 @@
             resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO">
         select id,order_no
         from trade_order
-        where deleted=0 and voyage_id=#{voyageId} and order_status in (1,6,9,13,14,15)
+        where deleted=0 and voyage_id=#{voyageId}
         order by substring_index(order_no, '-', -1)*1
     </select>
 </mapper>