package com.gunshi.project.xyt.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; import com.gunshi.project.xyt.model.BzServiceResource; import com.gunshi.project.xyt.model.BzServiceResourceAutoDao; import com.gunshi.project.xyt.model.BzServiceResourceType; import com.gunshi.project.xyt.model.BzServiceResourceTypeAutoDao; import com.gunshi.project.xyt.service.BzServiceResourceMonitorRService; import com.gunshi.project.xyt.so.BzServiceResourceSo; import com.gunshi.project.xyt.so.BzServiceResourceTypeSo; import com.gunshi.project.xyt.validate.markers.Insert; import com.gunshi.project.xyt.validate.markers.QueryPage; import com.gunshi.project.xyt.validate.markers.QueryTimeRange; import com.gunshi.project.xyt.validate.markers.Update; import com.gunshi.project.xyt.vo.BzServiceResourceMonitorVo; import io.swagger.v3.oas.annotations.tags.Tag; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Date; /** * 服务资源及监控控制器接口类 * * @author lyf * @version 1.0.0 * @since 2024-01-24 */ @RestController @RequestMapping("/serviceResource") @Tag(name = "服务资源及监控") public class BzServiceResourceController { @Autowired private BzServiceResourceAutoDao serviceResourceDao; @Autowired private BzServiceResourceMonitorRService serviceMonitorService; @Autowired private BzServiceResourceTypeAutoDao serviceTypeDao; @PostMapping("/save") public R save(@Validated(Insert.class) @RequestBody BzServiceResource entity) { entity.setId(IdWorker.getIdStr()); entity.setRegisterDate(new Date()); entity.setEnable(1); return R.ok(serviceResourceDao.save(entity)); } @PostMapping("/update") public R update(@Validated(Update.class) @RequestBody BzServiceResource entity) { BzServiceResource byId = serviceResourceDao.getById(entity.getId()); if (byId == null) { return R.error(400, "数据不存在", false); } entity.setRegisterDate(byId.getRegisterDate()); return R.ok(serviceResourceDao.updateById(entity)); } @GetMapping("/delete/{id}") public R delete(@PathVariable("id") String id) { return R.ok(serviceMonitorService.removeById(id)); } @PostMapping("/page") public R> page( @Validated({QueryPage.class, QueryTimeRange.class}) @RequestBody BzServiceResourceSo so ) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); if (StringUtils.isNotEmpty(so.getName())) { query.like(BzServiceResource::getName, so.getName()); } query.le(BzServiceResource::getRegisterDate, so.getTimeSo().getEnd()); query.ge(BzServiceResource::getRegisterDate, so.getTimeSo().getStart()); query.orderByDesc(BzServiceResource::getRegisterDate); Page page = serviceResourceDao.page(so.getPageSo().toPage(), query); return R.ok(page); } @PostMapping("/monitor/page") public R> pageMonitorR( @Validated({QueryPage.class, QueryTimeRange.class}) @RequestBody BzServiceResourceSo so ) { Page page = serviceMonitorService.page(so.getPageSo().toPage(), so); return R.ok(page); } @PostMapping("/type/save") public R saveType(@Validated(Insert.class) @RequestBody BzServiceResourceType entity) { entity.setId(IdWorker.getIdStr()); return R.ok(serviceTypeDao.save(entity)); } @PostMapping("/type/update") public R updateType(@Validated(Update.class) @RequestBody BzServiceResourceType entity) { return R.ok(serviceTypeDao.updateById(entity)); } @GetMapping("/type/delete/{id}") public R deleteType(@PathVariable("id") String id) { return R.ok(serviceTypeDao.removeById(id)); } @PostMapping("/type/page") public R> pageType( @Validated({QueryPage.class}) @RequestBody BzServiceResourceTypeSo so ) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); if (StringUtils.isNotEmpty(so.getName())) { query.like(BzServiceResourceType::getName, so.getName()); } if (StringUtils.isNotEmpty(so.getType())) { query.like(BzServiceResourceType::getType, so.getType()); } Page page = serviceTypeDao.page(so.getPageSo().toPage(), query); return R.ok(page); } }