BrainDeviceController.java 3.78 KB
package org.thingsboard.server.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.yunteng.common.DeleteGroup;
import org.thingsboard.server.common.data.yunteng.dto.BrainDeviceDTO;
import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult;
import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
import org.thingsboard.server.dao.yunteng.service.BrainDeviceService;
import org.thingsboard.server.queue.util.TbCoreComponent;

import java.util.HashMap;
import java.util.Map;

import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE;
import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE;

@RestController
@TbCoreComponent
@RequiredArgsConstructor
@RequestMapping("api/yt/brain/device")
@Api(tags = {"设备台账"})
@Slf4j
public class BrainDeviceController extends BaseController {
    private final BrainDeviceService brainDeviceService;

    @PostMapping("/pageData")
    @ApiOperation("分页查询")
    @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
    public TkPageData<BrainDeviceDTO> page(
            @RequestParam(PAGE_SIZE) int pageSize,
            @RequestParam(PAGE) int page,
            @RequestBody  BrainDeviceDTO dto
    ) throws ThingsboardException {
        Map<String, Object> queryMap = new HashMap<>();
        queryMap.put(PAGE_SIZE, pageSize);
        queryMap.put(PAGE, page);
        if (StringUtils.isNotBlank(dto.getName())) {
            queryMap.put("name", dto.getName());
        }
        return brainDeviceService.page(queryMap);
    }

    @PostMapping("/save")
    @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
    public ResponseEntity<BrainDeviceDTO> save(@RequestBody BrainDeviceDTO brainDeviceDTO) throws ThingsboardException {
        BrainDeviceDTO dto = brainDeviceService.save(brainDeviceDTO);
        return ResponseEntity.ok(dto);
    }

    @GetMapping("/detail")
    @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
    public ResponseEntity<BrainDeviceDTO> detail(@RequestParam("id") String id) throws ThingsboardException {
        return ResponseEntity.ok(brainDeviceService.detail(id));
    }

    @GetMapping("/delete")
    @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
    public ResponseEntity<Boolean> delete(@RequestParam("id") String id) throws ThingsboardException {
        return ResponseEntity.ok(brainDeviceService.delete(id));
    }

    /**
     * 批量删除
     *
     * @param brainDeviceDTO
     * @return
     */
    @DeleteMapping
    @PreAuthorize("hasAnyAuthority('SYS_ADMIN','PLATFORM_ADMIN','TENANT_ADMIN')")
    public ResponseResult<Boolean> deleteBath(
            @Validated({DeleteGroup.class}) @RequestBody BrainDeviceDTO brainDeviceDTO) throws ThingsboardException {
        brainDeviceDTO.setTenantId(getCurrentUser().getCurrentTenantId());
        return ResponseResult.success(brainDeviceService.deleteBath(brainDeviceDTO));
    }

    @PostMapping("/updateStatus")
    @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
    @ApiOperation("批量启用停用作废")
    public ResponseResult<Boolean> updateStatus(@RequestBody BrainDeviceDTO brainDeviceDTO) throws ThingsboardException {
        brainDeviceService.updateStatus(brainDeviceDTO);
        return ResponseResult.success(true);
    }

}