Quellcode durchsuchen

房间第三方配置接口编写

wangzhengliang vor 3 Jahren
Ursprung
Commit
915b7d1a63

+ 6 - 2
src/main/java/com/chuanghai/ihotel/controller/HotelOrderController.java

@@ -215,8 +215,12 @@ public class HotelOrderController {
     @DeleteMapping("admin/order/{orderId}")
     public CommonResult<String> adminDeleteOrder(@RequestHeader("admin_token") String adminToken,
                                                 @PathVariable("orderId") Long orderId) {
-        hotelOrderService.adminDeleteOrder(orderId);
-        return CommonResult.ok();
+        boolean b = hotelOrderService.adminDeleteOrder(orderId);
+        if (b) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
     }
 
     /**

+ 101 - 0
src/main/java/com/chuanghai/ihotel/controller/RoomThirdSettingController.java

@@ -0,0 +1,101 @@
+package com.chuanghai.ihotel.controller;
+
+import com.chuanghai.ihotel.anno.AdminLoginCheck;
+import com.chuanghai.ihotel.anno.ParamCheck;
+import com.chuanghai.ihotel.common.exception.BizCodeEnume;
+import com.chuanghai.ihotel.common.exception.RRException;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.entity.RoomThirdSettingEntity;
+import com.chuanghai.ihotel.service.RoomThirdSettingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 房间第三方平台设置
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("roomThirdSetting")
+public class RoomThirdSettingController {
+
+    @Autowired
+    private RoomThirdSettingService thirdSettingService;
+
+    /**
+     * 新增房间第三方平台设置
+     * @param adminToken 管理员token
+     * @param entity 请求参数
+     * @return
+     */
+    @AdminLoginCheck
+    @ParamCheck(index = 2)
+    @PostMapping("add")
+    public CommonResult<String> add(@RequestHeader("admin_token") String adminToken, @RequestBody RoomThirdSettingEntity entity) {
+        thirdSettingService.mySave(entity);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改房间第三方平台设置
+     * @param adminToken 管理员token
+     * @param entity 请求参数
+     * @return
+     */
+    @AdminLoginCheck
+    @ParamCheck(index = 2)
+    @PostMapping("update")
+    public CommonResult<String> update(@RequestHeader("admin_token") String adminToken, @RequestBody RoomThirdSettingEntity entity) {
+        if (entity.getId() == null) {
+            throw new RRException(BizCodeEnume.PARAMETER_ERROR, "id不能为空");
+        }
+        thirdSettingService.myUpdate(entity);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 根据房间id查询
+     * @param adminToken 管理员token
+     * @param roomId 房间id
+     * @return
+     */
+    @AdminLoginCheck
+    @GetMapping("setting/{roomId}")
+    public CommonResult<RoomThirdSettingEntity> getByRoomId(@RequestHeader("admin_token") String adminToken, @PathVariable("roomId") Long roomId) {
+        RoomThirdSettingEntity entity = thirdSettingService.findByRoomId(roomId);
+        if (entity == null) {
+            throw new RRException(BizCodeEnume.DATA_NOT_EXIST, "当前房间没有设置相关数据");
+        }
+
+        return CommonResult.ok().setResult(entity);
+    }
+
+    /**
+     *
+     * @param adminToken 管理员token
+     * @param roomId 房间id
+     * @param operType 操作类型 1开、2关
+     * @return
+     */
+    @AdminLoginCheck
+    @GetMapping("changeElectric/{operType}")
+    public CommonResult<String> changeElectric(@RequestHeader("admin_token") String adminToken,
+                                               @PathVariable("roomId") Long roomId,
+                                               @PathVariable("operType") String operType) {
+        if (!("1".equals(operType) || "2".equals(operType))) {
+            throw new RRException(BizCodeEnume.PARAMETER_ERROR, "operType只能为1或2");
+        }
+
+        thirdSettingService.changeElectric(roomId, operType);
+        return CommonResult.ok();
+    }
+
+}

+ 8 - 1
src/main/java/com/chuanghai/ihotel/entity/RoomThirdSettingEntity.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 /**
@@ -20,24 +22,29 @@ public class RoomThirdSettingEntity implements Serializable {
     private static final long serialVersionUID = 6141143627097396447L;
 
     /**
-     * id
+     * id,新增时不需要传
      */
     @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long id;
     /**
      * 房间id
      */
+    @NotNull(message = "房间id不能为空")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long roomId;
     /**
      * 水表码
      */
+    @NotEmpty(message = "水表码不能为空")
     private String waterId;
     /**
      * 电表码
      */
+    @NotEmpty(message = "电表码不能为空")
     private String electricId;
     /**
      * 锁id
      */
+    @NotEmpty(message = "锁id不能为空")
     private String lockId;
 }

+ 2 - 1
src/main/java/com/chuanghai/ihotel/service/HotelOrderService.java

@@ -119,8 +119,9 @@ public interface HotelOrderService extends IService<HotelOrderEntity> {
     /**
      * 管理员删除订单
      * @param orderId
+     * @return
      */
-    void adminDeleteOrder(Long orderId);
+    boolean adminDeleteOrder(Long orderId);
 
     /**
      * 用户取消订单

+ 11 - 0
src/main/java/com/chuanghai/ihotel/service/RoomThirdSettingService.java

@@ -13,5 +13,16 @@ import com.chuanghai.ihotel.entity.RoomThirdSettingEntity;
 public interface RoomThirdSettingService extends IService<RoomThirdSettingEntity> {
 
     RoomThirdSettingEntity findByRoomId(Long roomId);
+
+    /**
+     * 改变电状态
+     * @param roomId
+     * @param operType
+     */
+    void changeElectric(Long roomId, String operType);
+
+    void myUpdate(RoomThirdSettingEntity entity);
+
+    void mySave(RoomThirdSettingEntity entity);
 }
 

+ 5 - 6
src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderServiceImpl.java

@@ -32,7 +32,6 @@ import com.chuanghai.ihotel.entity.SystemSettingEntity;
 import com.chuanghai.ihotel.enums.EventMessageTypeEnum;
 import com.chuanghai.ihotel.enums.OrderBillStatuEnum;
 import com.chuanghai.ihotel.enums.OrderStatuEnum;
-import com.chuanghai.ihotel.enums.RoomStatuEnum;
 import com.chuanghai.ihotel.enums.SystemNoticeTypeEnum;
 import com.chuanghai.ihotel.enums.UserIdentityTypeEnum;
 import com.chuanghai.ihotel.service.HotelOrderBillService;
@@ -518,19 +517,19 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
     }
 
     @Override
-    public void adminDeleteOrder(Long orderId) {
+    public boolean adminDeleteOrder(Long orderId) {
         HotelOrderEntity orderEntity = this.getById(orderId);
 
-        deleteOrder(orderEntity);
+        return deleteOrder(orderEntity);
     }
 
-    private void deleteOrder(HotelOrderEntity orderEntity) {
+    private boolean deleteOrder(HotelOrderEntity orderEntity) {
         String orderStatu = orderEntity.getOrderStatu();
 
         // 已取消、待支付、已完成订单才可以被删除
         if (!(OrderStatuEnum.CANCEL.getCode().equalsIgnoreCase(orderStatu)
                 || OrderStatuEnum.WAIT_PAY.getCode().equalsIgnoreCase(orderStatu)
-                || OrderStatuEnum.FINISH_PAY.getCode().equalsIgnoreCase(orderStatu))) {
+                || OrderStatuEnum.FINISH.getCode().equalsIgnoreCase(orderStatu))) {
             throw new RRException(BizCodeEnume.PERMISSION_DENIED, "当前订单不可删除");
         }
 
@@ -539,7 +538,7 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
         updateWrapper.set("delete_flag", "0"); // 0表示删除
         updateWrapper.last("limit 1");
 
-        this.update(null, updateWrapper);
+        return this.update(null, updateWrapper);
     }
 
     @Override

+ 5 - 0
src/main/java/com/chuanghai/ihotel/service/impl/HotelUserServiceImpl.java

@@ -98,6 +98,11 @@ public class HotelUserServiceImpl extends ServiceImpl<HotelUserDao, HotelUserEnt
             hotelUser.setStatu("1");
 
             this.save(hotelUser);
+        } else {
+            hotelUser.setName(name);
+            hotelUser.setIdentityType(identityType);
+
+            this.updateById(hotelUser);
         }
 
         // 生成token

+ 31 - 0
src/main/java/com/chuanghai/ihotel/service/impl/RoomThirdSettingServiceImpl.java

@@ -2,9 +2,14 @@ package com.chuanghai.ihotel.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.exception.BizCodeEnume;
+import com.chuanghai.ihotel.common.exception.RRException;
+import com.chuanghai.ihotel.component.WaterElectricComponent;
 import com.chuanghai.ihotel.dao.RoomThirdSettingDao;
 import com.chuanghai.ihotel.entity.RoomThirdSettingEntity;
 import com.chuanghai.ihotel.service.RoomThirdSettingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
@@ -12,6 +17,8 @@ import org.springframework.stereotype.Service;
 @Service("roomWaterElectricService")
 public class RoomThirdSettingServiceImpl extends ServiceImpl<RoomThirdSettingDao, RoomThirdSettingEntity> implements RoomThirdSettingService {
 
+    @Autowired
+    private WaterElectricComponent waterElectricComponent;
 
     @Cacheable(value = {"roomThirdSetting"}, key = "#root.method.name + '-' + #roomId")
     @Override
@@ -21,4 +28,28 @@ public class RoomThirdSettingServiceImpl extends ServiceImpl<RoomThirdSettingDao
         wrapper.last("limit 1");
         return this.getOne(wrapper);
     }
+
+    @Override
+    public void changeElectric(Long roomId, String operType) {
+        RoomThirdSettingEntity entity = this.findByRoomId(roomId);
+        if (entity == null) {
+            throw new RRException(BizCodeEnume.DATA_NOT_EXIST, "当前房间没有设置相关参数");
+        }
+
+        String electricId = entity.getElectricId();
+
+        waterElectricComponent.remoteDisconnect(electricId, operType);
+    }
+
+    @CacheEvict(value = "roomThirdSetting", key = "findByRoomId + '-' + #entity.roomId")
+    @Override
+    public void myUpdate(RoomThirdSettingEntity entity) {
+        this.updateById(entity);
+    }
+
+    @CacheEvict(value = "roomThirdSetting", key = "findByRoomId + '-' + #entity.roomId")
+    @Override
+    public void mySave(RoomThirdSettingEntity entity) {
+        this.save(entity);
+    }
 }

+ 11 - 0
src/main/java/com/chuanghai/ihotel/util/DoorLockAESUtil.java

@@ -141,4 +141,15 @@ public class DoorLockAESUtil {
         }
         return true;
     }
+
+    public static void main(String[] args) {
+        System.out.println(encrypt("{\n" +
+                "  \"categoryId\": \"d0c248256f8346d2a19afa296562b319\",\n" +
+                "     \"luid\": \"80A036AE4C15\",\n" +
+                "     \"type\":\"4\",\n" +
+                "     \"userName\":\"15079248859\",\n" +
+                "     \"startTime\":\"1660899900000\",\n" +
+                "     \"endTime\":\"1660900800000\"\n" +
+                "}", "4f444dfc501b44e1a8641a1c1c1ec618"));
+    }
 }