ソースを参照

订单,退款,重复方法拆分

LiRong 1 週間 前
コミット
7aa7d29091

+ 29 - 20
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -232,21 +232,18 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         secondOrder.setRemark(orders.getRemark());
         List<SecondOrder> secondOrderList = new ArrayList<>();
 
-        //添加平台
-        //创建平台流水模板
-        PlatformFinance platformFinance =  PlatformFinance.builder().changeMoney(orders.getServiceOnePrice()).changeType(1).moneyType(1)
-                .sourceType(1).volunteerId(orders.getVolunteerId()).build();
-        platformFinance.setCreateTime(DateTimeUtil.getNowTime());
-        List<PlatformFinance> platformFinanceList = new ArrayList<>();
+
         //workDate 去计算 更新有预约 为1
         //修改志愿者预约时间表以及新增志愿者预约时间
         long number = 1;
         //
         List<VolunteerWorkDate> volunteerWorkDates = new ArrayList<>();
-        //
+        //小订单id集合
+        List<Long> seconderIdList = new ArrayList<>();
         for (VolunteerWorkDate workDate : workDateList) {
             //向secondOrder中添加数据
             long secondOrderIdL = snowflake.nextId();
+            seconderIdList.add(secondOrderIdL);
             SecondOrder secondOrder1 = new SecondOrder();
             BeanUtils.copyProperties(secondOrder,secondOrder1);
             secondOrder1.setWorkDate(workDate.getWorkDate());
@@ -256,11 +253,7 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
             secondOrder1.setSecondOrderId(secondOrderIdL);
             secondOrder1.setOutTradeNo(orderNo);
             secondOrderList.add(secondOrder1);
-            //向平台流水中添加数据
-            PlatformFinance platformFinance1 = new PlatformFinance();
-            BeanUtils.copyProperties(platformFinance,platformFinance1);
-            platformFinance1.setSecondOrderId(secondOrderIdL);
-            platformFinanceList.add(platformFinance1);
+
             //向志愿者预约时间表中添加数据
             int parts = businessDurationMin/30;
             if (businessDurationMin % 30!=0){
@@ -283,8 +276,14 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
             workDate.setUpdateTime(DateTimeUtil.getNowTime());
             volunteerWorkDates.add(workDate);
         }
-        //新增公司资金流水表N个
-        platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);
+
+        //调用方法,向平台流水中添加数据
+        if(!orders.getOrderStatus().equals("0")){
+            // 0 是待支付,
+            changePlatformFinance(seconderIdList,orders);
+        }
+
+
         //新增志愿者订单小表N个  得修改这种
         secondOrdersMapper.insertList(secondOrderList);
         //新增志愿者预约时间表
@@ -321,12 +320,22 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         return webMainOrderInfoVO;
     }
 
-
-
-
-
-
-
+    public void changePlatformFinance ( List<Long> seconderIdList,MainOrders orders){
+        //创建平台流水模板
+        PlatformFinance platformFinance =  PlatformFinance.builder().changeMoney(orders.getServiceOnePrice()).changeType(1).moneyType(1)
+                .sourceType(1).volunteerId(orders.getVolunteerId()).build();
+        platformFinance.setCreateTime(DateTimeUtil.getNowTime());
+        List<PlatformFinance> platformFinanceList = new ArrayList<>();
+        for (Long seconderId : seconderIdList) {
+            //向平台流水中添加数据
+            PlatformFinance platformFinance1 = new PlatformFinance();
+            BeanUtils.copyProperties(platformFinance,platformFinance1);
+            platformFinance1.setSecondOrderId(seconderId);
+            platformFinanceList.add(platformFinance1);
+        }
+        //新增公司资金流水表N个
+        platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);
+    }
 
 
 }

+ 37 - 22
leromro-core/src/main/java/com/leromro/core/service/impl/OrderRefundServiceImpl.java

@@ -113,9 +113,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             } else {
                 throw new RuntimeException("该支付方式还未开通退款功能");
             }
-            //修改状态已取消,用主订单Id
-            UpdateWrapper<MainOrders> mainOrderUpdateWrapper = new UpdateWrapper<MainOrders>().eq("main_order_id", mainOrderId).set("order_status", "6");
-            mainOrdersMapper.update(null, mainOrderUpdateWrapper);
+            updatePlatformFinanceChange(secondOrderList,0,1,2);
 
             //平台资金流水表,扣减调总价。
             List<PlatformFinance> platformFinanceList = secondOrderList.stream().map(secondOrder -> {
@@ -125,10 +123,10 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
                         .build();
             }).collect(Collectors.toList());
             platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);
-            //修改,小订单表
-            UpdateWrapper<SecondOrder> secondOrderUpdateWrapper = new UpdateWrapper<SecondOrder>().eq("main_order_id", mainOrderId).set("order_status", "6");
-            secondOrdersMapper.update(null, secondOrderUpdateWrapper);
 
+            //修改主、小订单状态 全额退款,设置主订单的状态为6 已取消
+            mainOrders.setOrderStatus("6");
+            updateMainOrderAndSeconderStatus(mainOrders,"7");
             //修改志愿者的工作时间以及日期
             updateVolunteerWorkDateAndTime(secondOrderList, mainOrders);
 
@@ -245,29 +243,22 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             //更改状态 更改更新时间,更改审批状态、退款钱数、原因、图片。
             orderRefund.setUpdateTime(DateTimeUtil.getNowTime());
             lOrderRefundMapper.updateLOrderRefund(orderRefund);
-            //小订单修改状态,并且
+
+            //查询要修改的小订单的列表
             QueryWrapper<SecondOrder> secondOrderQueryWrapper = new QueryWrapper<SecondOrder>().eq("main_order_id", mainOrderId).eq("order_status", "1");
             List<SecondOrder> secondOrderList = secondOrdersMapper.selectList(secondOrderQueryWrapper);
-            List<Long> secondOrderIdList = secondOrderList.stream().map(SecondOrder::getSecondOrderId).collect(Collectors.toList());
-            UpdateWrapper<SecondOrder> secondOrderUpdateWrapper = new UpdateWrapper<SecondOrder>().in("second_order_id", secondOrderIdList).set("order_status", "6");
-            secondOrdersMapper.update(null, secondOrderUpdateWrapper);
 
             //修改志愿者的工作时间以及日期
             updateVolunteerWorkDateAndTime(secondOrderList,mainOrders);
 
-            //向平台流水表更改,减少其中的流水;
-            List<PlatformFinance> platformFinanceList = secondOrderList.stream().map(secondOrder -> {
-                new PlatformFinance();
-                return PlatformFinance.builder()
-                        .changeMoney(secondOrder.getServiceOnePrice()).changeType(0).moneyType(1).sourceType(2).secondOrderId(secondOrder.getSecondOrderId()).volunteerId(secondOrder.getVolunteerId())
-                        .build();
-            }).collect(Collectors.toList());
-            platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);
+            //部分退款,设置主订单的状态为 7
+            mainOrders.setOrderStatus("7");
+            //调用方法来修改主、小订单的状态
+            updateMainOrderAndSeconderStatus(mainOrders,"6");
 
-            //主订单修改状态
-            UpdateWrapper<MainOrders> mainOrdersMapperUpdateWrapper = new UpdateWrapper<MainOrders>().eq("main_order_id", mainOrderId).set("order_status", 7);
-            mainOrdersMapper.update(null, mainOrdersMapperUpdateWrapper);
 
+            //向平台流水表更改,减少其中的流水;
+            updatePlatformFinanceChange(secondOrderList,0,1,2);
 
         } else if (orderRefund.getStatus().equals("3")) {
             //不通过
@@ -275,7 +266,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             orderRefund.setRefundAmount(BigDecimal.valueOf(0));
             orderRefund.setUpdateTime(DateTimeUtil.getNowTime());
             //主订单修改状态 返回之前的状态
-            if (mainOrders.getTotalTimes() == mainOrders.getFinishTimes()) {
+            if (mainOrders.getTotalTimes().equals(mainOrders.getFinishTimes())) {
                 UpdateWrapper<MainOrders> mainOrdersMapperUpdateWrapper = new UpdateWrapper<MainOrders>().eq("main_order_id", mainOrderId).set("order_status", 4);
                 mainOrdersMapper.update(null, mainOrdersMapperUpdateWrapper);
             } else {
@@ -316,4 +307,28 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             workDateMapper.update(null, volunteerWorkDateUpdateWrapper12);
         }
     }
+
+    //修改主、小订单的状态 小订单退款都是固定为6
+    public  void updateMainOrderAndSeconderStatus(MainOrders mainOrders,String secondOrderStatus){
+        Long mainOrderId = mainOrders.getMainOrderId();
+        String mainOrdersOrderStatus = mainOrders.getOrderStatus();
+        //修改状态已取消,用主订单Id
+        UpdateWrapper<MainOrders> mainOrderUpdateWrapper = new UpdateWrapper<MainOrders>().eq("main_order_id", mainOrderId).set("order_status",mainOrdersOrderStatus);
+        mainOrdersMapper.update(null, mainOrderUpdateWrapper);
+        //修改,小订单表
+        UpdateWrapper<SecondOrder> secondOrderUpdateWrapper = new UpdateWrapper<SecondOrder>().eq("main_order_id", mainOrderId).eq("order_status","1").set("order_status", secondOrderStatus);
+        secondOrdersMapper.update(null, secondOrderUpdateWrapper);
+    }
+
+    //订单退款,向平台流水中添加数据
+    public void  updatePlatformFinanceChange(List<SecondOrder> secondOrderList,Integer changeType,Integer moneyType, Integer sourceType){
+        //平台资金流水表,扣减调总价。
+        List<PlatformFinance> platformFinanceList = secondOrderList.stream().map(secondOrder -> {
+            new PlatformFinance();
+            return PlatformFinance.builder()
+                    .changeMoney(secondOrder.getServiceOnePrice()).changeType(changeType).moneyType(moneyType).sourceType(sourceType).secondOrderId(secondOrder.getSecondOrderId()).volunteerId(secondOrder.getVolunteerId())
+                    .build();
+        }).collect(Collectors.toList());
+        platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);
+    }
 }

+ 7 - 3
leromro-framework/src/main/java/com/leromro/framework/config/RedisConfig.java

@@ -44,8 +44,9 @@ public class RedisConfig extends CachingConfigurerSupport
         RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
         configuration.setHostName(redisHost);
         configuration.setPort(Integer.parseInt(port));
-        configuration.setPassword(redisPassword);
-
+        if (!redisPassword.isEmpty()){
+            configuration.setPassword(redisPassword);
+        }
         return new LettuceConnectionFactory(configuration);
     }
 
@@ -79,7 +80,10 @@ public class RedisConfig extends CachingConfigurerSupport
     @Bean
     public RedissonClient redissonClient() {
         Config config = new Config();
-        config.useSingleServer().setAddress("redis://" + redisHost + ":" + port).setPassword(redisPassword);
+        config.useSingleServer().setAddress("redis://" + redisHost + ":" + port);
+        if (!redisPassword.isEmpty()){
+            config.useSingleServer().setPassword(redisPassword);
+        }
         return Redisson.create(config);
     }