Commit c7b1cc9a436084ee78d416276f2fc351673a69c1

Authored by 安浩浩
1 parent 037ab39a

修改:更新产品状态

yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/ErrorCodeConstants.java
... ... @@ -12,4 +12,5 @@ public interface ErrorCodeConstants {
12 12 // ========== 产品相关 1-050-001-000 ============
13 13 ErrorCode PRODUCT_NOT_EXISTS = new ErrorCode(1_050_001_000, "产品不存在");
14 14 ErrorCode PRODUCT_IDENTIFICATION_EXISTS = new ErrorCode(1_050_001_001, "产品标识已经存在");
  15 + ErrorCode PRODUCT_STATUS_NOT_DELETE = new ErrorCode(1_050_001_002, "产品状是发布状态,不允许删除");
15 16 }
... ...
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotProductStatusEnum.java
... ... @@ -6,13 +6,13 @@ import lombok.Getter;
6 6  
7 7 /**
8 8 * IOT 产品状态枚举类
9   - * 产品状态, 0: 未发布, 1: 已发布
  9 + * 产品状态, 0: 开发中, 1: 已发布
10 10 */
11 11 @AllArgsConstructor
12 12 @Getter
13 13 public enum IotProductStatusEnum implements IntArrayValuable {
14 14  
15   - UNPUBLISHED(0, "未发布"),
  15 + UNPUBLISHED(0, "开发中"),
16 16 PUBLISHED(1, "已发布");
17 17  
18 18 /**
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/ProductController.java
... ... @@ -51,6 +51,17 @@ public class ProductController {
51 51 return success(true);
52 52 }
53 53  
  54 + @PutMapping("/update-status")
  55 + @Operation(summary = "更新产品状态")
  56 + @Parameter(name = "id", description = "编号", required = true)
  57 + @Parameter(name = "status", description = "状态", required = true)
  58 + @PreAuthorize("@ss.hasPermission('iot:product:update')")
  59 + public CommonResult<Boolean> updateProductStatus(@RequestParam("id") Long id,
  60 + @RequestParam("status") Integer status) {
  61 + productService.updateProductStatus(id, status);
  62 + return success(true);
  63 + }
  64 +
54 65 @DeleteMapping("/delete")
55 66 @Operation(summary = "删除产品")
56 67 @Parameter(name = "id", description = "编号", required = true)
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/product/ProductService.java
... ... @@ -51,4 +51,11 @@ public interface ProductService {
51 51 */
52 52 PageResult<ProductDO> getProductPage(ProductPageReqVO pageReqVO);
53 53  
  54 + /**
  55 + * 更新产品状态
  56 + *
  57 + * @param id 编号
  58 + * @param status 状态
  59 + */
  60 + void updateProductStatus(Long id, Integer status);
54 61 }
55 62 \ No newline at end of file
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/product/ProductServiceImpl.java
... ... @@ -6,14 +6,17 @@ import cn.iocoder.yudao.module.iot.controller.admin.product.vo.ProductPageReqVO;
6 6 import cn.iocoder.yudao.module.iot.controller.admin.product.vo.ProductSaveReqVO;
7 7 import cn.iocoder.yudao.module.iot.dal.dataobject.product.ProductDO;
8 8 import cn.iocoder.yudao.module.iot.dal.mysql.product.ProductMapper;
  9 +import cn.iocoder.yudao.module.iot.enums.product.IotProductStatusEnum;
9 10 import jakarta.annotation.Resource;
10 11 import org.springframework.stereotype.Service;
11 12 import org.springframework.validation.annotation.Validated;
12 13  
  14 +import java.util.Objects;
13 15 import java.util.UUID;
14 16  
15 17 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
16 18 import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.PRODUCT_NOT_EXISTS;
  19 +import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.PRODUCT_STATUS_NOT_DELETE;
17 20  
18 21 /**
19 22 * IOT 产品 Service 实现类
... ... @@ -62,6 +65,8 @@ public class ProductServiceImpl implements ProductService {
62 65 public void deleteProduct(Long id) {
63 66 // 校验存在
64 67 validateProductExists(id);
  68 + // 发布状态不可删除
  69 + validateProductStatus(id);
65 70 // 删除
66 71 productMapper.deleteById(id);
67 72 }
... ... @@ -72,6 +77,13 @@ public class ProductServiceImpl implements ProductService {
72 77 }
73 78 }
74 79  
  80 + private void validateProductStatus(Long id) {
  81 + ProductDO product = productMapper.selectById(id);
  82 + if (Objects.equals(product.getStatus(), IotProductStatusEnum.PUBLISHED.getType())) {
  83 + throw exception(PRODUCT_STATUS_NOT_DELETE);
  84 + }
  85 + }
  86 +
75 87 @Override
76 88 public ProductDO getProduct(Long id) {
77 89 return productMapper.selectById(id);
... ... @@ -82,4 +94,13 @@ public class ProductServiceImpl implements ProductService {
82 94 return productMapper.selectPage(pageReqVO);
83 95 }
84 96  
  97 + @Override
  98 + public void updateProductStatus(Long id, Integer status) {
  99 + // 校验存在
  100 + validateProductExists(id);
  101 + // 更新
  102 + ProductDO updateObj = ProductDO.builder().id(id).status(status).build();
  103 + productMapper.updateById(updateObj);
  104 + }
  105 +
85 106 }
86 107 \ No newline at end of file
... ...