diff --git a/chaos_api_common/src/main/java/cn/nopj/chaos_api/common/constants/ErrorCode.java b/chaos_api_common/src/main/java/cn/nopj/chaos_api/common/constants/ErrorCode.java index 7055fd1..8596607 100644 --- a/chaos_api_common/src/main/java/cn/nopj/chaos_api/common/constants/ErrorCode.java +++ b/chaos_api_common/src/main/java/cn/nopj/chaos_api/common/constants/ErrorCode.java @@ -54,7 +54,11 @@ public enum ErrorCode { // 设备 DEVICE_NOT_FOUND(404, "DEVICE-301", "设备不存在"), - DEVICE_TYPE_NOT_FOUND(404, "DEVICE-302", "设备类型不存在") + DEVICE_TYPE_NOT_FOUND(404, "DEVICE-302", "设备类型不存在"), + DEVICE_DELETE_FAILED(500, "DEVICE-303", "设备删除失败"), + DEVICE_TYPE_DELETE_FAILED(500, "DEVICE-304", "设备类型删除失败"), + DEVICE_TYPE_NOT_EMPTY(400, "DEVICE-305", "设备类型不为空"), + DEVICE_DISABLED(403, "DEVICE-306", "设备已禁用"), ; diff --git a/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/DeviceMapper.java b/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/DeviceMapper.java index 920232f..12015d3 100644 --- a/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/DeviceMapper.java +++ b/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/DeviceMapper.java @@ -11,7 +11,7 @@ public interface DeviceMapper extends BaseMapper { * @param id 设备id * @return 设备信息 */ - @Select("SELECT * FROM t_device WHERE id = #{id}") + @Select("SELECT * FROM t_device WHERE id = #{id} AND deleted = 0 ") @Results(id = "DeviceResultMap", value ={ @Result(id = true, property = "id", column = "id"), @Result(property = "name", column = "name"), @@ -27,4 +27,14 @@ public interface DeviceMapper extends BaseMapper { one = @One(select = "cn.nopj.chaos_api.mapper.DriveTypeMapper.selectById")) }) Device selectOneWithTypeById(Long id); + + /** + * 逻辑删除设备 + * @param id 设备id + * @return 逻辑删除影响行数 + */ + @Update("UPDATE t_device SET deleted = 1 WHERE id = #{id}") + int deleteDevice(Long id); + + } diff --git a/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/DeviceService.java b/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/DeviceService.java index 5179024..45cfce1 100644 --- a/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/DeviceService.java +++ b/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/DeviceService.java @@ -17,4 +17,16 @@ public interface DeviceService { * @return 设备信息 */ DeviceResponse getDeviceById(Long id); + + /** + * 删除设备信息 伪删除 + * @param id 设备id + */ + void deleteDevice(Long id); + + /** + * 删除设备信息 真删除 + * @param id 设备id + */ + void deleteDeviceReal(Long id); } diff --git a/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/DeviceServiceImpl.java b/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/DeviceServiceImpl.java index f6834b6..b5632c3 100644 --- a/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/DeviceServiceImpl.java +++ b/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/DeviceServiceImpl.java @@ -48,4 +48,26 @@ public class DeviceServiceImpl extends ServiceImpl impleme } return new DeviceResponse(device); } + + + @Override + @Transactional + public void deleteDevice(Long id) { + int i = this.baseMapper.deleteDevice(id); + if (i <= 0){ + throw new BizException(ErrorCode.DEVICE_DELETE_FAILED); + } + + } + + @Override + @Transactional + public void deleteDeviceReal(Long id) { + log.info("删除设备id:{}",id); + int i = this.baseMapper.deleteById(id); + if (i <= 0){ + throw new BizException(ErrorCode.DEVICE_DELETE_FAILED); + } + log.info("删除设备成功"); + } } diff --git a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/DeviceController.java b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/DeviceController.java index 6164bed..6fdc94d 100644 --- a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/DeviceController.java +++ b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/DeviceController.java @@ -5,9 +5,8 @@ import cn.nopj.chaos_api.dto.request.CreateDriveRequest; import cn.nopj.chaos_api.dto.response.DeviceResponse; import cn.nopj.chaos_api.model.ApiResult; import cn.nopj.chaos_api.service.DeviceService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; /** @@ -28,7 +27,7 @@ public class DeviceController { * @param createDriveRequest 设备信息 * @return 新建设备信息结果 */ - @RequestMapping("/create") + @PostMapping("/create") public ApiResult createDevice(@RequestBody CreateDriveRequest createDriveRequest){ return ApiResult.success(deviceService.createDevice(createDriveRequest)); } @@ -37,9 +36,30 @@ public class DeviceController { * 查询指定设备信息 * @return 指定设备信息 */ - @RequestMapping("/get") - public ApiResult getDeviceById(Long id){ + @GetMapping("/{id}") + public ApiResult getDeviceById(@PathVariable("id") Long id){ return ApiResult.success(deviceService.getDeviceById(id)); } + /** + * 逻辑删除指定设备信息 + * @return 逻辑删除指定设备信息结果 + */ + @DeleteMapping("/{id}") + public ApiResult deleteDevice(@PathVariable("id") Long id){ + deviceService.deleteDevice(id); + return ApiResult.success("删除成功"); + } + + /** + * 真实删除指定设备信息 + * @return 真实删除指定设备信息结果 + */ + @PreAuthorize("hasAuthority('admin')") + @DeleteMapping("/deleteReal") + public ApiResult deleteDeviceReal(@RequestParam(value = "id") Long id){ + deviceService.deleteDeviceReal(id); + return ApiResult.success("删除成功"); + } + } diff --git a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java index e83010b..a9bad93 100644 --- a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java +++ b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java @@ -41,7 +41,7 @@ public class UserController { * @return 设置用户密码结果 */ @PreAuthorize("hasAuthority('admin')") - @RequestMapping("/setUserPassword") + @PutMapping("/setUserPassword") ApiResult setUserPassword(@RequestBody SetUserPasswordRequest request){ userInfoService.setUserPassword(request.getUserId(), request.getPassword()); return ApiResult.success("用户密码修改成功"); @@ -52,7 +52,7 @@ public class UserController { * @return 更新后用户名 * @deprecated 废弃 修改用户名之后token会失效 */ - @PostMapping("/updateUsername") + @PutMapping("/updateUsername") ApiResult updateUsername(@RequestAttribute("currentUsername") String username,@RequestBody UpdateUsernameRequest request){ userInfoService.updateUsername(username, request.getUsername()); return ApiResult.success("用户名更新成功");