package cn.gistack.alerts.alarmRule.controller; import cn.gistack.alerts.alarmRule.entity.AlarmRule; import cn.gistack.alerts.alarmRule.entity.AlarmRuleDetail; import cn.gistack.alerts.alarmRule.service.AlarmRuleDetailService; import cn.gistack.alerts.alarmRule.service.AlarmRuleService; import cn.gistack.alerts.alarmRule.vo.AlarmRuleVO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; /** * 告警规则控制层 * @author zhongrj * @date 2023-05-22 */ @RestController @AllArgsConstructor @RequestMapping("/alarmRule/alarmRule") public class AlarmRuleController extends BladeController { private final AlarmRuleService alarmRuleService; private final AlarmRuleDetailService alarmRuleDetailService; /** * 分页列表查询 * * @param alarmRule * @return */ @ApiOperation(value="告警规则-分页列表查询", notes="告警规则-分页列表查询") @GetMapping(value = "/list") public R queryPageList(AlarmRule alarmRule, Query query) { IPage pageList = alarmRuleService.page(Condition.getPage(query), Condition.getQueryWrapper(alarmRule)); return R.data(pageList); } /** * 自定义分页列表查询 * @param query * @param alarmRule * @return */ @ApiOperation(value="告警规则-自定义分页列表查询", notes="告警规则-自定义分页列表查询") @GetMapping(value = "/page") public R page(AlarmRuleVO alarmRule, Query query) { return R.data( alarmRuleService.selectAlarmRulePage(Condition.getPage(query),alarmRule)); } /** * 添加 * * @param alarmRule * @return */ @ApiOperation(value="告警规则-添加", notes="告警规则-添加") @PostMapping(value = "/add") public R add(@RequestBody AlarmRuleVO alarmRule) { boolean flag = false; boolean save = alarmRuleService.save(alarmRule); // 新增成功 if (save){ if (alarmRule.getAlarmRuleDetailList().size() > 0){ for (AlarmRuleDetail alarmRuleDetail : alarmRule.getAlarmRuleDetailList()) { alarmRuleDetail.setAlarmRuleId(alarmRule.getId()); // 新增明细 flag = alarmRuleDetailService.save(alarmRuleDetail); } } } // 返回结果 return R.status(flag); } /** * 编辑 * * @param alarmRule * @return */ @ApiOperation(value="告警规则-编辑", notes="告警规则-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public R edit(@RequestBody AlarmRuleVO alarmRule) { boolean flag = false; // 更新 boolean update = alarmRuleService.updateById(alarmRule); if (update){ if (alarmRule.getAlarmRuleDetailList().size() > 0){ for (AlarmRuleDetail alarmRuleDetail : alarmRule.getAlarmRuleDetailList()) { alarmRuleDetail.setAlarmRuleId(alarmRule.getId()); if (null == alarmRuleDetail.getId()){ // 新增明细 flag = alarmRuleDetailService.save(alarmRuleDetail); }else { // 修改 flag = alarmRuleDetailService.updateById(alarmRuleDetail); } } } } return R.status(flag); } /** * 通过id删除 * * @param id * @return */ @ApiOperation(value="告警规则-通过id删除", notes="告警规则-通过id删除") @PostMapping(value = "/delete") public R delete(@RequestParam(name="id",required=true) String id) { return R.status(alarmRuleService.removeById(id)); } /** * 批量删除 * * @param ids * @return */ @ApiOperation(value="告警规则-批量删除", notes="告警规则-批量删除") @PostMapping(value = "/deleteBatch") public R deleteBatch(@RequestParam(name="ids",required=true) String ids) { boolean flag = false; // boolean remove = alarmRuleService.removeByIds(Arrays.asList(ids.split(","))); if (remove){ // 查询明细 List idList = Arrays.asList(ids.split(",")); for (String id : idList) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("alarm_rule_id",id); // 删除明细 flag = alarmRuleDetailService.remove(wrapper); } } return R.status(flag); } /** * 通过id查询 * * @param id * @return */ @ApiOperation(value="告警规则-通过id查询", notes="告警规则-通过id查询") @GetMapping(value = "/queryById") public R queryById(@RequestParam(name="id",required=true) String id) { AlarmRule alarmRule = alarmRuleService.getById(id); return R.data(alarmRule); } /** * 通过id查询 * * @param id * @return */ @ApiOperation(value="告警规则-通过id查询", notes="告警规则-通过id查询") @GetMapping(value = "/detail") public R getDetail(@RequestParam(name="id",required=true) String id) { return R.data(alarmRuleService.getDetail(id)); } /** * 通过告警规则类型查询生成告警规则类型 * @param alarmRuleType * @return */ @ApiOperation(value="通过告警规则类型查询生成告警规则类型", notes="通过告警规则类型查询生成告警规则类型") @GetMapping(value = "/getCreateRuleType") public R getCreateRuleType(String alarmRuleType) { return R.data(alarmRuleService.getCreateRuleType(alarmRuleType)); } /** * 通过成告警规则类型查询告警规则名称 * @param createAlarmType * @return */ @ApiOperation(value="通过成告警规则类型查询告警规则名称", notes="通过成告警规则类型查询告警规则名称") @GetMapping(value = "/getAlarmRuleName") public R getAlarmRuleName(String createAlarmType) { return R.data(alarmRuleService.getAlarmRuleName(createAlarmType)); } }