瀏覽代碼

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

luofeiyun 1 周之前
父節點
當前提交
ae5652f3bf

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

@@ -358,6 +358,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 item.setAuditUserName(user != null ? user.getUsername() : "未知");
             });
             tradeOrderDO.setTradeOrderAuditList(tradeOrderAuditList);
+            if(tradeOrderDO.getDamaged()==null){
+                tradeOrderDO.setDamaged(BigDecimal.ZERO);
+            }
             return CommonResult.success(tradeOrderDO);
         }
         return CommonResult.error(ORDER_NOT_EXIST);
@@ -393,14 +396,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             tradeOrderAuditMapper.insert(tradeOrderAuditDO);
 
             if (tradeOrderDO.getAuditStatus() + 1 > tradeOrderDO.getAuditType()) {
-                tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
-                        .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNPAID.getStatus())
-                        .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
-                        .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
-                        .set(TradeOrderDO::getDeposiStatus, 1)
-                        .eq(TradeOrderDO::getId, orderId)
-                );
-
                 try {
                     Map map = new HashMap();
                     map.put("orderNo", tradeOrderDO.getOrderNo());
@@ -424,16 +419,28 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 } catch (Exception e) {
                     log.error("发送短信异常", e);
                 }
+                AtomicReference<BigDecimal> amount = new AtomicReference<>(BigDecimal.ZERO);
                 try {
                     List<OrderPolicyDO> orderPolicyList = orderPolicyMapper.selectList(OrderPolicyDO::getOrderId, orderId);
+
                     if (!orderPolicyList.isEmpty()) {
                         orderPolicyList.forEach(item -> {
+                            amount.set(amount.get().add(item.getAmount()));
                             policyApi.updatePolicySurplusNum(item.getId(), tradeOrderDO.getVoyageId(), item.getPreUseNum());
                         });
                     }
+
                 }catch (Exception e){
                     log.error("政策执行异常", e);
                 }
+                tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
+                        .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNPAID.getStatus())
+                        .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
+                        .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
+                        .set(TradeOrderDO::getDeposiStatus, 1)
+                        .set(TradeOrderDO::getPayAmount, tradeOrderDO.getPayAmount().subtract(amount.get()))
+                        .eq(TradeOrderDO::getId, orderId)
+                );
                 Map<String, Object> extMap = new HashMap<>();
                 extMap.put("result", "审核通过");
                 TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus(), extMap);
@@ -516,7 +523,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
                 Map<String, Object> extMap = new HashMap<>();
                 extMap.put("result", "审核不通过");
-                TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
+                TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), lastTradeOrder.getOrderStatus(), extMap);
 
             }else{
                 //针对第一次提交就进入审核的情况下,如果审核拒绝 订单状态直接修改为留位状态
@@ -527,6 +534,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                         .set(TradeOrderDO::getDeposiStatus, 0)
                         .eq(TradeOrderDO::getId, orderId)
                 );
+                Map<String, Object> extMap = new HashMap<>();
+                extMap.put("result", "审核不通过");
+                TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.YD.getStatus(), extMap);
             }
         }
         return CommonResult.success("审核成功");
@@ -648,7 +658,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
             Map<String, Object> extMap = new HashMap<>();
             extMap.put("result", "审核不通过");
-            TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
+            TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(),TradeOrderStatusEnum.UNPAID.getStatus(), extMap);
 
         }
         return CommonResult.success("审核成功");
@@ -2200,7 +2210,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     Map map = new HashMap();
                     Long userId = getLoginUserId();
                     map.put("orderNo", tradeOrderDO.getOrderNo());
-                    map.put("oldOrderStatus", TradeOrderStatusEnum.valueOf(tradeOrderDO.getOrderStatus()));
+                    map.put("oldOrderStatus", TradeOrderStatusEnum.valueOf(tradeOrderDO.getOrderStatus()).getName());
                     map.put("newOrderStatus", TradeOrderStatusEnum.TRANSFER.getName());
                     AdminUserRespDTO user = adminUserApi.getUser(userId);
                     map.put("modifyUser", user.getNickname());
@@ -2225,10 +2235,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 log.error("发送站内信异常", e);
             }
 
-
-
-
-
             //支付倒计时--不超时,有预订单
             Map<String, Object> append = TradeOrderLogUtils.append("result", "订单修改成功");
             append.put("content", content);

+ 3 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/refund/impl/TradeRefundServiceImpl.java

@@ -599,9 +599,9 @@ public class TradeRefundServiceImpl implements TradeRefundService {
         BigDecimal damaged;
         if(between>21){
             damaged = new BigDecimal(500).multiply(new BigDecimal( num));
-            if(tradeOrderDO.getSellMethod()==3){
-                damaged =  BigDecimal.ZERO;
-            }
+//            if(tradeOrderDO.getSellMethod()==3){
+//                damaged =  BigDecimal.ZERO;
+//            }
         }else if(between>15){
             damaged =  tradeOrderDO.getPayAmount().multiply(new BigDecimal("0.2"));
         }else{

+ 37 - 9
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -210,6 +210,11 @@
                 INNER JOIN trade_order_user tou ON td.id = tou.order_id AND tou.deleted = 0
                 LEFT JOIN trade_detail tdl ON td.id = tdl.order_id AND tdl.deleted = 0
                 LEFT JOIN trade_visitor tv ON tdl.id = tv.detail_id AND tv.deleted = 0
+                LEFT JOIN trade_order_room_model torm ON tv.room_index_id = torm.room_index_id AND torm.deleted = 0 AND td.id = torm.order_id
+                LEFT JOIN resource_room_model rrm ON torm.room_model_id = rrm.id
+                LEFT JOIN product_spu ps ON ps.id = tdl.product_id
+                LEFT JOIN ota_distributor od ON od.id = td.source_id
+                LEFT JOIN (select m2.order_id,sum(m2.refund_amount) refund_amount,sum(m2.origin_amount) origin_amount from trade_refund m2  where m2.refund_status = 6 and m2.refund_method !=2 GROUP BY m2.order_id) tr on td.id = tr.order_id
                 LEFT JOIN area ar ON tv.nationality = ar.id
                 WHERE td.deleted = 0
                     AND tou.deleted = 0
@@ -222,23 +227,42 @@
                 SELECT GROUP_CONCAT(CONCAT(roomName, '(', roomNum, ')') SEPARATOR ',')
                 FROM (
                 SELECT
-                CONCAT(rrm.name, tm.floor, 'F') AS roomName,
-                tm.floor AS floor,
-                COUNT(DISTINCT tm.room_index_id) AS roomNum
+                CONCAT(rrm.name, torm.floor, 'F') AS roomName,
+                torm.floor AS floor,
+                COUNT(DISTINCT torm.room_index_id) AS roomNum
                 FROM trade_order td
                 INNER JOIN trade_order_user tou ON td.id = tou.order_id AND tou.deleted = 0
                 LEFT JOIN trade_detail tdl ON td.id = tdl.order_id AND tdl.deleted = 0
                 LEFT JOIN trade_visitor tv ON tdl.id = tv.detail_id AND tv.deleted = 0
-                LEFT JOIN trade_order_room_model tm ON tv.room_index_id = tm.room_index_id AND tm.deleted = 0 AND td.id = tm.order_id
-                LEFT JOIN resource_room_model rrm ON tm.room_model_id = rrm.id
+                LEFT JOIN trade_order_room_model torm ON tv.room_index_id = torm.room_index_id AND torm.deleted = 0 AND td.id = torm.order_id
+                LEFT JOIN resource_room_model rrm ON torm.room_model_id = rrm.id
+                LEFT JOIN product_spu ps ON ps.id = tdl.product_id
+                LEFT JOIN ota_distributor od ON od.id = td.source_id
+                LEFT JOIN (select m2.order_id,sum(m2.refund_amount) refund_amount,sum(m2.origin_amount) origin_amount from trade_refund m2  where m2.refund_status = 6 and m2.refund_method !=2 GROUP BY m2.order_id) tr on td.id = tr.order_id
                 WHERE td.deleted = 0
                     AND tou.deleted = 0
                     AND tv.type IS NOT NULL
                 <include refid="commonWhereConditions"/>
-                GROUP BY rrm.name, tm.floor
-                ORDER BY tm.floor
+                GROUP BY rrm.name, torm.floor
+                ORDER BY torm.floor
             ) room_stats
-            ), '') AS roomStats
+            ), '') AS roomStats,
+        (
+        SELECT COUNT(DISTINCT torm.room_index_id)
+            FROM trade_order td
+            INNER JOIN trade_order_user tou ON td.id = tou.order_id AND tou.deleted = 0
+            LEFT JOIN trade_detail tdl ON td.id = tdl.order_id AND tdl.deleted = 0
+            LEFT JOIN trade_visitor tv ON tdl.id = tv.detail_id AND tv.deleted = 0
+            LEFT JOIN trade_order_room_model torm ON tv.room_index_id = torm.room_index_id AND torm.deleted = 0 AND td.id = torm.order_id
+            LEFT JOIN resource_room_model rrm ON torm.room_model_id = rrm.id
+            LEFT JOIN product_spu ps ON ps.id = tdl.product_id
+            LEFT JOIN ota_distributor od ON od.id = td.source_id
+            LEFT JOIN (select m2.order_id,sum(m2.refund_amount) refund_amount,sum(m2.origin_amount) origin_amount from trade_refund m2  where m2.refund_status = 6 and m2.refund_method !=2 GROUP BY m2.order_id) tr on td.id = tr.order_id
+        WHERE td.deleted = 0
+            AND tou.deleted = 0
+            AND tv.type IS NOT NULL
+            <include refid="commonWhereConditions"/>
+        ) AS totalRooms
         FROM (
             SELECT
             COUNT(1) AS num,
@@ -252,6 +276,10 @@
             INNER JOIN trade_order_user tou ON td.id = tou.order_id AND tou.deleted = 0
             LEFT JOIN trade_detail tdl ON td.id = tdl.order_id AND tdl.deleted = 0
             LEFT JOIN trade_visitor tv ON tdl.id = tv.detail_id AND tv.deleted = 0
+            LEFT JOIN product_spu ps ON ps.id = tdl.product_id
+            LEFT JOIN ota_distributor od ON od.id = td.source_id
+            LEFT JOIN (select m2.order_id,sum(m2.refund_amount) refund_amount,sum(m2.origin_amount) origin_amount from trade_refund m2  where m2.refund_status = 6 and m2.refund_method !=2 GROUP BY m2.order_id) tr on td.id = tr.order_id
+            left join trade_order_room_model torm on tv.room_index_id = torm.room_index_id and torm.deleted =0 AND td.id = torm.order_id
             LEFT JOIN (
             SELECT order_id, SUM(pay_amount) AS actual_amount
             FROM trade_order_pay
@@ -2167,7 +2195,7 @@
         left join trade_visitor tv on tdl.id = tv.detail_id
         left JOIN product_spu ps on ps.id = tdl.product_id
         LEFT JOIN ota_distributor od on od.id = td.source_id
-        left join trade_order_room_model tm on tv.room_index_id = tm.room_index_id and tm.deleted =0
+        left join trade_order_room_model tm on tv.room_index_id = tm.room_index_id and tm.deleted =0 AND td.id = tm.order_id
         left join resource_room_model rrm on tm.room_model_id = rrm.id
         LEFT JOIN (select m2.order_id,sum(m2.refund_amount) refund_amount,sum(m2.origin_amount) origin_amount from trade_refund m2  where m2.refund_status = 6 and m2.refund_method !=2 GROUP BY m2.order_id) tr on td.id = tr.order_id
         where td.deleted = 0 and tou.deleted = 0 and td.order_status >0 and tv.type is not null