Browse Source

添加每天获取黑名单订单定时任务,修改移除黑名单订单接口

liu 1 year ago
parent
commit
e259906742

+ 14 - 1
src/main/java/com/template/api/BlacklistControllerAPI.java

@@ -1,7 +1,20 @@
 package com.template.api;
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.template.model.dto.BlacklistDeleteDto;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
 
 @RequestMapping("/auto/blacklist")
 public interface BlacklistControllerAPI {
+
+    @GetMapping("/list")
+    @ApiOperation(value = "黑名单订单查询", notes = "黑名单订单查询", httpMethod = "GET")
+    CommonResult list(@RequestParam Integer page, @RequestParam Integer size, String reserveName, String phone, String cardNumber,String startTime,String endTime);
+
+
+    @PostMapping("/delete")
+    @ApiOperation(value = "黑名单订单移除", notes = "黑名单订单移除", httpMethod = "POST")
+    CommonResult delete(@RequestBody BlacklistDeleteDto dto);
+
 }

+ 1 - 1
src/main/java/com/template/api/BlacklistOrderControllerAPI.java

@@ -10,7 +10,7 @@ public interface BlacklistOrderControllerAPI {
 
     @GetMapping("/list")
     @ApiOperation(value = "黑名单订单查询", notes = "黑名单订单查询", httpMethod = "GET")
-    CommonResult list(@RequestParam Integer page,@RequestParam Integer size, String reserveName, String phone, String cardNumber, String liveName, String idCard);
+    CommonResult list(@RequestParam Integer page,@RequestParam Integer size, String reserveName, String phone, String cardNumber);
 
 
     @PostMapping("/delete")

+ 21 - 0
src/main/java/com/template/controller/BlacklistController.java

@@ -2,6 +2,11 @@ package com.template.controller;
 
 
 import com.template.api.BlacklistControllerAPI;
+import com.template.model.dto.BlacklistDeleteDto;
+import com.template.model.result.CommonResult;
+import com.template.services.BlacklistOrderService;
+import com.template.services.BlacklistService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -15,5 +20,21 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 public class BlacklistController implements BlacklistControllerAPI {
 
+    @Autowired
+    BlacklistService blacklistService;
+
+    @Autowired
+    BlacklistOrderService blacklistOrderService;
+
+
+    @Override
+    public CommonResult list(Integer page, Integer size, String reserveName, String phone, String cardNumber, String startTime, String endTime) {
+        return null;
+    }
+
+    @Override
+    public CommonResult delete(BlacklistDeleteDto dto) {
+        return null;
+    }
 }
 

+ 52 - 10
src/main/java/com/template/controller/BlacklistOrderController.java

@@ -7,17 +7,22 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.api.BlacklistOrderControllerAPI;
 import com.template.model.dto.BlacklistOrderDeleteDto;
+import com.template.model.pojo.Blacklist;
 import com.template.model.pojo.BlacklistOrder;
+import com.template.model.pojo.BlacklistSetting;
 import com.template.model.result.CommonResult;
 import com.template.services.BlacklistOrderService;
+import com.template.services.BlacklistService;
+import com.template.services.BlacklistSettingService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author ceshi
@@ -29,16 +34,23 @@ public class BlacklistOrderController implements BlacklistOrderControllerAPI {
     @Autowired
     BlacklistOrderService blacklistOrderService;
 
+    @Autowired
+    BlacklistService blacklistService;
+
+    @Autowired
+    BlacklistSettingService blacklistSettingService;
+
+
     @Override
-    public CommonResult list(Integer page, Integer size, String reserveName, String phone, String cardNumber, String liveName, String idCard) {
+    public CommonResult list(Integer page, Integer size, String reserveName, String phone, String cardNumber) {
 
 
-        LambdaQueryWrapper<BlacklistOrder> wrapper=new LambdaQueryWrapper<>();
-        wrapper.eq(ObjectUtils.isNotEmpty(reserveName),BlacklistOrder::getReserveName,reserveName)
-                        .eq(ObjectUtils.isNotEmpty(phone),BlacklistOrder::getReservePhone,phone)
-                .eq(ObjectUtils.isNotEmpty(cardNumber),BlacklistOrder::getCardNumber,cardNumber)
-                .eq(ObjectUtils.isNotEmpty(liveName),BlacklistOrder::getLiveName,liveName)
-                .eq(ObjectUtils.isNotEmpty(idCard),BlacklistOrder::getLiveIdCard,idCard)
+        LambdaQueryWrapper<BlacklistOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ObjectUtils.isNotEmpty(reserveName), BlacklistOrder::getReserveName, reserveName)
+                .eq(ObjectUtils.isNotEmpty(phone), BlacklistOrder::getReservePhone, phone)
+                .eq(ObjectUtils.isNotEmpty(cardNumber), BlacklistOrder::getCardNumber, cardNumber)
+//                .eq(ObjectUtils.isNotEmpty(liveName),BlacklistOrder::getLiveName,liveName)
+//                .eq(ObjectUtils.isNotEmpty(idCard),BlacklistOrder::getLiveIdCard,idCard)
                 .orderByDesc(BlacklistOrder::getCreateTime);
         IPage<BlacklistOrder> page1 = blacklistOrderService.page(new Page<>(page, size), wrapper);
 
@@ -47,15 +59,45 @@ public class BlacklistOrderController implements BlacklistOrderControllerAPI {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public CommonResult delete(BlacklistOrderDeleteDto dto) {
 
         List<Integer> ids = dto.getIds();
         if (ObjectUtils.isEmpty(ids)) {
             return CommonResult.fail();
         }
-        blacklistOrderService.removeByIds(ids);
 
-        return CommonResult.ok();
+        BlacklistSetting blacklistSetting = blacklistSettingService.list(new LambdaQueryWrapper<>()).get(0);
+        Integer count = blacklistSetting.getCount();
+
+        LambdaQueryWrapper<BlacklistOrder> wrapperBO = new LambdaQueryWrapper<>();
+        wrapperBO.in(BlacklistOrder::getId, ids);
+        List<BlacklistOrder> blacklistOrders = blacklistOrderService.list(wrapperBO);
+
+        try {
+
+            for (BlacklistOrder blacklistOrder : blacklistOrders) {
+                LambdaQueryWrapper<Blacklist> wrapperB = new LambdaQueryWrapper<>();
+                wrapperB.eq(Blacklist::getReserveUserId, blacklistOrder.getReserveUserId());
+                Blacklist blacklist = blacklistService.getOne(wrapperB);
+                if (ObjectUtils.isNotEmpty(blacklist)) {
+                    Integer count1 = blacklist.getCount();
+                    if (count1 - 1 >= count1) {
+                        blacklist.setCount(count1 - 1);
+                        blacklistService.updateById(blacklist);
+                    } else {
+                        blacklistService.removeById(blacklist.getId());
+                    }
+                }
+
+            }
+            blacklistOrderService.removeByIds(ids);
+            return CommonResult.ok();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return CommonResult.fail();
     }
 }
 

+ 17 - 7
src/main/java/com/template/controller/BlacklistSettingController.java

@@ -92,14 +92,24 @@ public class BlacklistSettingController implements BlacklistSettingControllerAPI
                     for (BlacklistVo vo : vos) {
                         Integer id1 = vo.getId();
                         Users users = usersService.getById(id1);
-                        if (ObjectUtils.isNotEmpty(users)) {
-                            Blacklist blacklist = new Blacklist();
-                            blacklist.setReserveUserId(id1);
-                            blacklist.setPhone(users.getPhone());
-                            blacklist.setCardNumber(users.getCardNumber());
-                            blacklist.setCount(vo.getCount());
-                            blacklists.add(blacklist);
+//                        通过预定id找到对应的黑名单预定人id
+                        LambdaQueryWrapper<Blacklist> wrapperB=new LambdaQueryWrapper<>();
+                        wrapperB.eq(Blacklist::getReserveUserId,id1);
+                        Blacklist one = blacklistService.getOne(wrapperB);
+                        if (ObjectUtils.isNotEmpty(one)) {
+                            one.setCount(vo.getCount());
+                            blacklists.add(one);
+                        }else {
+                            if (ObjectUtils.isNotEmpty(users)) {
+                                Blacklist blacklist = new Blacklist();
+                                blacklist.setReserveUserId(id1);
+                                blacklist.setPhone(users.getPhone());
+                                blacklist.setCardNumber(users.getCardNumber());
+                                blacklist.setCount(vo.getCount());
+                                blacklists.add(blacklist);
+                            }
                         }
+
                     }
                     if (blacklists.size() > 0) {
                         blacklistService.saveOrUpdateBatch(blacklists);

+ 94 - 0
src/main/java/com/template/controller/HouseOrderController.java

@@ -146,6 +146,15 @@ public class HouseOrderController implements HouseOrderAPI {
     @Autowired
     ApartmentSettingService apartmentSettingService;
 
+    @Autowired
+    BlacklistOrderService blacklistOrderService;
+
+    @Autowired
+    BlacklistService blacklistService;
+
+    @Autowired
+    BlacklistSettingService blacklistSettingService;
+
     @Override
     public CommonResult getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime) {
         if (ObjectUtils.isEmpty(userId) && ObjectUtils.isEmpty(houseId) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(houseOrderNumber) && houseOrderNumber <= 0) {
@@ -3271,6 +3280,7 @@ public class HouseOrderController implements HouseOrderAPI {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public CommonResult payNotCheckIn(CancelDto cancelDto) {
         int adminId = cancelDto.getAdminId();
         PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
@@ -3592,6 +3602,90 @@ public class HouseOrderController implements HouseOrderAPI {
 
     }
 
+    /**
+     * 每天13点
+     * 计算当天当前时间超过待入住.已支付订单的预离时间
+     */
+    @Scheduled(cron = "0 0 13 * * ? ")
+//    @Scheduled(cron = "0 0/1 * * * ?")
+    @Transactional(rollbackFor = Exception.class)
+    public void getBlacklist(){
+//        获取预离时间是当天的待入住,已支付订单
+        LocalDateTime startTime = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
+        LocalDateTime endTime = startTime.withHour(23).withMinute(59).withSecond(59);
+
+        LambdaQueryWrapper<HouseOrder> wrapper=new LambdaQueryWrapper<>();
+        wrapper.in(HouseOrder::getOrderStatus,2,3)
+                .between(HouseOrder::getReserveLeaveTime,startTime,endTime)
+                .eq(HouseOrder::getPayPrice,0);
+        List<HouseOrder> list = houseOrderService.list(wrapper);
+
+        if (list.size()>.0) {
+            ArrayList<BlacklistOrder> blacklistOrders = new ArrayList<>();
+
+            for (HouseOrder houseOrder : list) {
+                BlacklistOrder blacklistOrder = new BlacklistOrder();
+
+                blacklistOrder.setHouseOrderId(houseOrder.getId());
+                blacklistOrder.setOrderNumber(houseOrder.getOrderNumber());
+                blacklistOrder.setOrderStatus(houseOrder.getOrderStatus());
+                blacklistOrder.setReserveUserId(houseOrder.getReserveUserId());
+                blacklistOrder.setReserveName(houseOrder.getReserveName());
+                blacklistOrder.setReservePhone(houseOrder.getReservePhone());
+
+                Users users = usersService.getById(houseOrder.getId());
+                if (ObjectUtils.isNotEmpty(users)) {
+                    blacklistOrder.setCardNumber(users.getCardNumber());
+                }
+
+                blacklistOrder.setReserveLiveTime(houseOrder.getReserveLiveTime());
+                blacklistOrder.setReserveLeaveTime(houseOrder.getReserveLeaveTime());
+                blacklistOrders.add(blacklistOrder);
+            }
+
+            try {
+
+                blacklistOrderService.saveBatch(blacklistOrders);
+
+                BlacklistSetting blacklistSetting = blacklistSettingService.list(new LambdaQueryWrapper<>()).get(0);
+                Integer count = blacklistSetting.getCount();
+
+                List<BlacklistVo> vos = blacklistOrderService.getBlacklist(count);
+                if (vos.size() > 0) {
+                    ArrayList<Blacklist> blacklists = new ArrayList<>();
+                    for (BlacklistVo vo : vos) {
+                        Integer id1 = vo.getId();
+                        Users users = usersService.getById(id1);
+//                        通过预定id找到对应的黑名单预定人id
+                        LambdaQueryWrapper<Blacklist> wrapperB = new LambdaQueryWrapper<>();
+                        wrapperB.eq(Blacklist::getReserveUserId, id1);
+                        Blacklist one = blacklistService.getOne(wrapperB);
+                        if (ObjectUtils.isNotEmpty(one)) {
+                            one.setCount(vo.getCount());
+                            blacklists.add(one);
+                        } else {
+                            if (ObjectUtils.isNotEmpty(users)) {
+                                Blacklist blacklist = new Blacklist();
+                                blacklist.setReserveUserId(id1);
+                                blacklist.setPhone(users.getPhone());
+                                blacklist.setCardNumber(users.getCardNumber());
+                                blacklist.setCount(vo.getCount());
+                                blacklists.add(blacklist);
+                            }
+                        }
+                    }
+                    if (blacklists.size() > 0) {
+                        blacklistService.saveOrUpdateBatch(blacklists);
+                    }
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+
+        }
+
+
+    }
 
 }
 

+ 10 - 0
src/main/java/com/template/model/dto/BlacklistDeleteDto.java

@@ -0,0 +1,10 @@
+package com.template.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BlacklistDeleteDto {
+    private List<Integer> ids;
+}

+ 8 - 22
src/main/java/com/template/model/pojo/BlacklistOrder.java

@@ -1,19 +1,14 @@
 package com.template.model.pojo;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.Version;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * <p>
  * 
@@ -53,30 +48,21 @@ public class BlacklistOrder implements Serializable {
     private String reservePhone;
 
     @ApiModelProperty(value = "微校卡号")
-    private Integer cardNumber;
-
-    @ApiModelProperty(value = "入住人id")
-    private Integer liveUsersId;
-
-    @ApiModelProperty(value = "入住人姓名")
-    private String liveName;
-
-    @ApiModelProperty(value = "入住人身份证")
-    private String liveIdCard;
+    private String cardNumber;
 
     @ApiModelProperty(value = "预定入住时间")
-    private Date reserveLiveTime;
+    private String reserveLiveTime;
 
     @ApiModelProperty(value = "预定离开时间")
-    private Date reserveLeaveTime;
+    private String reserveLeaveTime;
 
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
-    private Date createTime;
+    private String createTime;
 
     @ApiModelProperty(value = "更新时间")
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateTime;
+    private String updateTime;
 
     @ApiModelProperty(value = "创建人员")
     @TableField(fill = FieldFill.INSERT)

+ 2 - 2
src/main/resources/mapper/template/BlacklistOrderMapper.xml

@@ -7,10 +7,10 @@
         FROM (SELECT reserve_user_id as id,
                      COUNT(reserve_user_id) AS count
               FROM
-                  `blacklist`
+                  `blacklist_order`
               WHERE deleted=0
               GROUP BY
                   reserve_user_id) a
-        WHERE a.count > #{count}
+        WHERE a.count >= #{count}
     </select>
 </mapper>