Browse Source

订单增加免费来源详情,查询是否免费增加可用天数和来源id字段

wanxl 1 year ago
parent
commit
7655ee9f96

+ 5 - 2
src/main/java/com/template/api/HouseOrderAPI.java

@@ -34,7 +34,10 @@ public interface HouseOrderAPI {
 
     @GetMapping("/pageList")
     @ApiOperation(value = "订单管理-订单页面展示", notes = "订单管理-订单页面展示", httpMethod = "GET")
-    CommonResult pageList(int adminId, int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId);
+    CommonResult pageList(int adminId, int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime,
+                          String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime,
+                          String reserveLiveStartTime, String reserveLiveEndTime, String reserveLeaveStartTime, String reserveLeaveEndTime,String houseId,Integer keyType,
+                          Integer giveBack,Integer buildingId,Integer orgId);
 
     @PostMapping("/cancel")
     @ApiOperation(value = "订单管理-订单取消", notes = "订单管理-订单取消", httpMethod = "POST")
@@ -58,7 +61,7 @@ public interface HouseOrderAPI {
 
     @GetMapping("/queryExport")
     @ApiOperation(value = "订单管理-订单导出", notes = "订单管理-订单导出", httpMethod = "GET")
-    void queryExport(HttpServletResponse response, int adminId, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId);
+    void queryExport(HttpServletResponse response, int adminId, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String reserveLiveStartTime, String reserveLiveEndTime, String reserveLeaveStartTime, String reserveLeaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId);
 
     @GetMapping("/reportStatistics")
     @ApiOperation(value = "统计报表", notes = "统计报表", httpMethod = "GET")

+ 56 - 20
src/main/java/com/template/controller/HouseOrderController.java

@@ -376,6 +376,8 @@ public class HouseOrderController implements HouseOrderAPI {
         houseOrder.setTimeOut(timeOut);
 
         houseOrder.setSource(source);
+        houseOrder.setSourceId(establishOrderDto.getSourceId());
+
 
 //    单价   全日房  价格单价=总价/房间数/天数
 //       钟点房  价格单价=总价/房间数
@@ -662,7 +664,10 @@ public class HouseOrderController implements HouseOrderAPI {
     }
 
     @Override
-    public CommonResult pageList(int adminId, int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime, String houseId, Integer keyType, Integer giveBack, Integer buildingId, Integer orgId) {
+    public CommonResult pageList(int adminId, int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime,
+                                 String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime,
+                                 String reserveLiveStartTime, String reserveLiveEndTime, String reserveLeaveStartTime, String reserveLeaveEndTime,
+                                 String houseId, Integer keyType, Integer giveBack, Integer buildingId, Integer orgId) {
 //        PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
 //        if (ObjectUtils.isEmpty(permissionSetting)) {
 //            return CommonResult.fail("非法进入");
@@ -681,7 +686,9 @@ public class HouseOrderController implements HouseOrderAPI {
             size = 10;
         }
 
-        PageUtils<HouseOrderPageListVo> pageList = houseOrderService.pageList(page, size, keyWord, houseType, orderStatus, payPriceStartTime, payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime, liveStartTime, liveEndTime, leaveStartTime, leaveEndTime, houseId, keyType, giveBack, buildingId, orgId);
+        PageUtils<HouseOrderPageListVo> pageList = houseOrderService.pageList(page, size, keyWord, houseType, orderStatus, payPriceStartTime,
+                payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime,
+                reserveLiveStartTime, reserveLiveEndTime, reserveLeaveStartTime, reserveLeaveEndTime, houseId, keyType, giveBack, buildingId, orgId);
         List<HouseOrderPageListVo> list = pageList.getList();
         for (int i = 0; i < list.size(); i++) {
             HouseOrderPageListVo houseOrderPageListVo = list.get(i);
@@ -707,6 +714,19 @@ public class HouseOrderController implements HouseOrderAPI {
                 choiceBox = "6";
             }
             houseOrderPageListVo.setChoiceBox(choiceBox);
+            String[] arr=(houseOrderPageListVo.getSourceId()==null?"":houseOrderPageListVo.getSourceId()).split(",");
+            ArrayList<String> idList = new ArrayList<String>(Arrays.asList(arr)) ;
+            if(!StringUtils.hasText(houseOrderPageListVo.getSource())){
+                houseOrderPageListVo.setSource("自费");
+            }else if ("1".equals(houseOrderPageListVo.getSource())){
+                houseOrderPageListVo.setSource("课表");
+                List<ClassSchedule> schedules=new ArrayList<>(classScheduleService.listByIds(idList));
+                houseOrderPageListVo.setSchedules(schedules);
+            } else if ("2".equals(houseOrderPageListVo.getSource())){
+                houseOrderPageListVo.setSource("流程");
+                List<ApplicationProcedureTemporary> applicationProcedureTemporaries= new ArrayList<>(applicationProcedureTemporaryService.listByIds(idList));
+                houseOrderPageListVo.setApplicationProcedureTemporaries(applicationProcedureTemporaries);
+            }
         }
         pageList.setList(list);
 
@@ -1571,7 +1591,7 @@ public class HouseOrderController implements HouseOrderAPI {
     }
 
     @Override
-    public void queryExport(HttpServletResponse response, int adminId, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime, String houseId, Integer keyType, Integer giveBack, Integer buildingId, Integer orgId) {
+    public void queryExport(HttpServletResponse response, int adminId, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String reserveLiveStartTime, String reserveLiveEndTime, String reserveLeaveStartTime, String reserveLeaveEndTime, String houseId, Integer keyType, Integer giveBack, Integer buildingId, Integer orgId) {
 //        PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
 //        if (ObjectUtils.isEmpty(permissionSetting)) {
 //            return CommonResult.fail("非法进入");
@@ -1582,7 +1602,7 @@ public class HouseOrderController implements HouseOrderAPI {
 //            return CommonResult.fail("此账号暂无该权限");
 //        }
 
-        List<QueryExportVo> vos = houseOrderService.queryExport(keyWord, houseType, orderStatus, payPriceStartTime, payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime, liveStartTime, liveEndTime, leaveStartTime, leaveEndTime, houseId, keyType, giveBack, buildingId, orgId);
+        List<QueryExportVo> vos = houseOrderService.queryExport(keyWord, houseType, orderStatus, payPriceStartTime, payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime, reserveLiveStartTime, reserveLiveEndTime, reserveLeaveStartTime, reserveLeaveEndTime, houseId, keyType, giveBack, buildingId, orgId);
 
         //        导出
         Workbook workbook = new XSSFWorkbook();
@@ -3548,6 +3568,7 @@ public class HouseOrderController implements HouseOrderAPI {
         long until = state.until(end, ChronoUnit.DAYS);
 
         Integer count = 1;
+        List<Integer> idList =new ArrayList<>();
         if (dayDiff + until > 2) {
             count = 0;
         } else {
@@ -3559,7 +3580,6 @@ public class HouseOrderController implements HouseOrderAPI {
                 wrapperCS.eq(ClassSchedule::getJsgh, users.getCardNumber())
                         .between(ClassSchedule::getDateTime, startS, endS);
                 List<ClassSchedule> scheduleList = classScheduleService.list(wrapperCS);
-
 //            只要有一天是空的就不是免费
                 if (ObjectUtils.isEmpty(scheduleList)) {
                     count = 0;
@@ -3571,11 +3591,14 @@ public class HouseOrderController implements HouseOrderAPI {
                         count = 0;
                         break;
                     }
+                    idList.add(scheduleList.get(0).getId());
                 }
 
             }
         }
         vo.setCount(count);
+        vo.setSourceId(idList.toString());
+        vo.setDays((int) (until-dayDiff));
         if (count > 0) {
             vos.add(vo);
         }
@@ -3586,22 +3609,35 @@ public class HouseOrderController implements HouseOrderAPI {
         if (ObjectUtils.isEmpty(aptList)) {
             vo1.setCount(0);
         } else {
-            ApplicationProcedureTemporary applicationProcedureTemporary = aptList.get(0);
-            String houseCount = applicationProcedureTemporary.getHouseCount();
-            String startTime = applicationProcedureTemporary.getStartTime();
-            String endTime1 = applicationProcedureTemporary.getEndTime();
+            //可申请天数
+            long dayApt=0;
+            List<Integer> aptIdList =new ArrayList<>();
+            for (int i = 0; i <aptList.size() ; i++) {
+                ApplicationProcedureTemporary applicationProcedureTemporary = aptList.get(0);
+                String houseCount = applicationProcedureTemporary.getHouseCount();
+                String startTime = applicationProcedureTemporary.getStartTime();
+                String endTime1 = applicationProcedureTemporary.getEndTime();
 //            计算开始到结束时间有多少订单
-            LambdaQueryWrapper<HouseOrder> wrapper = new LambdaQueryWrapper<>();
-            wrapper.eq(HouseOrder::getReserveUserId, userId)
-                    .eq(HouseOrder::getSource, 2)
-                    .between(HouseOrder::getReserveLiveTime, startTime, endTime1)
-                    .eq(HouseOrder::getPayPrice, 0)
-                    .in(HouseOrder::getOrderStatus, 1, 2, 3, 4, 8);
-            List<HouseOrder> list = houseOrderService.list(wrapper);
-            Integer count2 = Integer.valueOf(houseCount);
-            count2 = count2 - list.size();
-            vo1.setCount(count2);
-
+                LambdaQueryWrapper<HouseOrder> wrapper = new LambdaQueryWrapper<>();
+                wrapper.eq(HouseOrder::getReserveUserId, userId)
+                        .eq(HouseOrder::getSource, 2)
+                        .between(HouseOrder::getReserveLiveTime, startTime, endTime1)
+                        .eq(HouseOrder::getPayPrice, 0)
+                        .in(HouseOrder::getOrderStatus, 1, 2, 3, 4, 8);
+                List<HouseOrder> list = houseOrderService.list(wrapper);
+                Integer count2 = Integer.valueOf(houseCount);
+                count2 = count2 - list.size();
+                if(count2==0){
+                    break;
+                }
+                aptIdList.add(applicationProcedureTemporary.getId());
+                LocalDateTime stateTimeApt = LocalDateTime.parse(startTime, dateTimeFormatter1);
+                LocalDateTime endTimeApt = LocalDateTime.parse(endTime1, dateTimeFormatter1);
+                dayApt =dayApt+stateTimeApt.toLocalDate().until(endTimeApt.toLocalDate(), ChronoUnit.DAYS);
+                vo1.setCount(count2);
+            }
+            vo1.setDays((int) dayApt);
+            vo1.setSourceId(aptIdList.toString());
         }
         if (vo1.getCount() > 0) {
             vos.add(vo1);

+ 2 - 1
src/main/java/com/template/model/dto/EstablishOrderDto.java

@@ -26,6 +26,7 @@ public class EstablishOrderDto {
     private String reserveName;
     //   免费订单来源
     private Integer source;
-
+    //来源id拼接字符串 id,id,id,xxx
+    private String sourceId;
 
 }

+ 3 - 0
src/main/java/com/template/model/pojo/HouseOrder.java

@@ -133,6 +133,9 @@ public class HouseOrder implements Serializable {
     @ApiModelProperty(value = "免费订单来源,1.课表,2.流程管理")
     private Integer source;
 
+    @ApiModelProperty(value = "免费订单来源id,1.课表,2.流程管理")
+    private String sourceId;
+
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
     private String createTime;

+ 15 - 0
src/main/java/com/template/model/vo/HouseOrderPageListVo.java

@@ -1,10 +1,13 @@
 package com.template.model.vo;
 
+import com.template.model.pojo.ApplicationProcedureTemporary;
+import com.template.model.pojo.ClassSchedule;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class HouseOrderPageListVo {
@@ -76,4 +79,16 @@ public class HouseOrderPageListVo {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @ApiModelProperty(value = "来源")
+    private String source;
+
+    @ApiModelProperty(value = "来源id")
+    private String sourceId;
+
+    @ApiModelProperty(value = "课表列表")
+    private List<ClassSchedule> schedules;
+
+    @ApiModelProperty(value = "流程列表")
+    private List<ApplicationProcedureTemporary> applicationProcedureTemporaries;
+
 }

+ 7 - 0
src/main/java/com/template/model/vo/RemainFreeVo.java

@@ -4,7 +4,14 @@ import lombok.Data;
 
 @Data
 public class RemainFreeVo {
+//    免费描述
     private String name;
+//    可定房间数量
     private Integer count;
+//    来源 1 课表 2 流程
     private Integer source;
+    //来源id拼接字符串 id,id,id,xxx
+    private String sourceId;
+    //可订天数
+    private Integer days;
 }

+ 2 - 2
src/main/java/com/template/services/HouseOrderService.java

@@ -39,9 +39,9 @@ public interface HouseOrderService extends IService<HouseOrder> {
      */
     PriceVo reservePrice(String houseId, String cardNumber, String liveTime, String leaveTime);
 
-    PageUtils<HouseOrderPageListVo> pageList(int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId);
+    PageUtils<HouseOrderPageListVo> pageList(int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String reserveLiveStartTime, String reserveLiveEndTime, String reserveLeaveStartTime, String reserveLeaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId);
 
-    List<QueryExportVo> queryExport(String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId);
+    List<QueryExportVo> queryExport(String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String reserveLiveStartTime, String reserveLiveEndTime, String reserveLeaveStartTime, String reserveLeaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId);
 
 
     HouseOrderCheckInShowVo getOrderNumbre(String orderNumber);

+ 7 - 5
src/main/resources/mapper/template/HouseOrderMapper.xml

@@ -34,7 +34,9 @@
         ho.key_type as lockStatus,
         ho.key_pass_word as keyPassWord,
         ho.give_back as giveBack,
-        ho.remark
+        ho.remark,
+        ho.source as source,
+        ho.source_id as sourceId
         FROM
         `house_order` ho
         LEFT JOIN house_number hn ON hn.id = ho.house_number_id
@@ -78,13 +80,13 @@
             </if>
 
             <if test="liveStartTime != null and liveStartTime != '' and liveEndTime != null and liveEndTime != ''  ">
-                AND #{liveEndTime} >= ho.live_time
-                AND ho.live_time >= #{liveStartTime}
+                AND #{liveEndTime} >= ho.reserve_live_time
+                AND ho.reserve_live_time >= #{liveStartTime}
             </if>
 
             <if test="leaveStartTime != null and leaveStartTime != '' and leaveEndTime != null and leaveEndTime != ''  ">
-                AND #{leaveEndTime} >= ho.leave_time
-                AND ho.leave_time >= #{leaveStartTime}
+                AND #{leaveEndTime} >= ho.reserve_leave_time
+                AND ho.reserve_leave_time >= #{leaveStartTime}
             </if>
 
             <if test="houseId != null and houseId != ''">