mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-03 04:39:00 +08:00
Fix mybatis-plus empty value update problem
When deleting the alert-plugin instance, determine whether there is an alert group association
This commit is contained in:
parent
891df6d5e2
commit
be09a1bd18
@ -290,6 +290,7 @@ public enum Status {
|
|||||||
QUERY_ALL_ALERT_PLUGIN_INSTANCE_ERROR(110009, "query all alert plugin instance error", "查询所有告警实例失败"),
|
QUERY_ALL_ALERT_PLUGIN_INSTANCE_ERROR(110009, "query all alert plugin instance error", "查询所有告警实例失败"),
|
||||||
PLUGIN_INSTANCE_ALREADY_EXIT(110010,"plugin instance already exit","该告警插件实例已存在"),
|
PLUGIN_INSTANCE_ALREADY_EXIT(110010,"plugin instance already exit","该告警插件实例已存在"),
|
||||||
LIST_PAGING_ALERT_PLUGIN_INSTANCE_ERROR(110011,"query plugin instance page error","分页查询告警实例失败"),
|
LIST_PAGING_ALERT_PLUGIN_INSTANCE_ERROR(110011,"query plugin instance page error","分页查询告警实例失败"),
|
||||||
|
DELETE_ALERT_PLUGIN_INSTANCE_ERROR_HAS_ALERT_GROUP_ASSOCIATED(110012,"failed to delete the alert instance, there is an alarm group associated with this alert instance","删除告警实例失败,存在与此告警实例关联的警报组")
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -27,13 +27,16 @@ import org.apache.dolphinscheduler.common.utils.CollectionUtils;
|
|||||||
import org.apache.dolphinscheduler.dao.entity.AlertPluginInstance;
|
import org.apache.dolphinscheduler.dao.entity.AlertPluginInstance;
|
||||||
import org.apache.dolphinscheduler.dao.entity.PluginDefine;
|
import org.apache.dolphinscheduler.dao.entity.PluginDefine;
|
||||||
import org.apache.dolphinscheduler.dao.entity.User;
|
import org.apache.dolphinscheduler.dao.entity.User;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
|
||||||
import org.apache.dolphinscheduler.dao.mapper.AlertPluginInstanceMapper;
|
import org.apache.dolphinscheduler.dao.mapper.AlertPluginInstanceMapper;
|
||||||
import org.apache.dolphinscheduler.dao.mapper.PluginDefineMapper;
|
import org.apache.dolphinscheduler.dao.mapper.PluginDefineMapper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -56,6 +59,9 @@ public class AlertPluginInstanceServiceImpl extends BaseService implements Alert
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PluginDefineMapper pluginDefineMapper;
|
private PluginDefineMapper pluginDefineMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AlertGroupMapper alertGroupMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* creat alert plugin instance
|
* creat alert plugin instance
|
||||||
*
|
*
|
||||||
@ -121,6 +127,12 @@ public class AlertPluginInstanceServiceImpl extends BaseService implements Alert
|
|||||||
@Override
|
@Override
|
||||||
public Map<String, Object> delete(User loginUser, int id) {
|
public Map<String, Object> delete(User loginUser, int id) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
|
//check if there is an associated alert group
|
||||||
|
boolean hasAssociatedAlertGroup = checkHasAssociatedAlertGroup(String.valueOf(id));
|
||||||
|
if (hasAssociatedAlertGroup) {
|
||||||
|
putMsg(result, Status.DELETE_ALERT_PLUGIN_INSTANCE_ERROR_HAS_ALERT_GROUP_ASSOCIATED);
|
||||||
|
}
|
||||||
|
|
||||||
int i = alertPluginInstanceMapper.deleteById(id);
|
int i = alertPluginInstanceMapper.deleteById(id);
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
putMsg(result, Status.SUCCESS);
|
putMsg(result, Status.SUCCESS);
|
||||||
@ -205,4 +217,14 @@ public class AlertPluginInstanceServiceImpl extends BaseService implements Alert
|
|||||||
return alertPluginInstanceVOS;
|
return alertPluginInstanceVOS;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean checkHasAssociatedAlertGroup(String id) {
|
||||||
|
List<String> idsList = alertGroupMapper.queryInstanceIdsList();
|
||||||
|
if (CollectionUtils.isEmpty(idsList)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Optional<String> first = idsList.stream().filter(k -> Arrays.asList(k.split(",")).contains(id)).findFirst();
|
||||||
|
return first.isPresent();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.dao.entity;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
@ -39,7 +40,7 @@ public class AlertPluginInstance {
|
|||||||
/**
|
/**
|
||||||
* plugin_define_id
|
* plugin_define_id
|
||||||
*/
|
*/
|
||||||
@TableField("plugin_define_id")
|
@TableField(value = "plugin_define_id", updateStrategy = FieldStrategy.NEVER)
|
||||||
private int pluginDefineId;
|
private int pluginDefineId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,6 +61,12 @@ public interface AlertGroupMapper extends BaseMapper<AlertGroup> {
|
|||||||
*/
|
*/
|
||||||
List<AlertGroup> queryAllGroupList();
|
List<AlertGroup> queryAllGroupList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* query instance ids All
|
||||||
|
* @return list
|
||||||
|
*/
|
||||||
|
List<String> queryInstanceIdsList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* queryAlertGroupInstanceIdsById
|
* queryAlertGroupInstanceIdsById
|
||||||
* @param alertGroupId
|
* @param alertGroupId
|
||||||
|
@ -52,6 +52,13 @@
|
|||||||
order by update_time desc
|
order by update_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryInstanceIdsList" resultType="String">
|
||||||
|
select
|
||||||
|
alert_instance_ids
|
||||||
|
from t_ds_alertgroup
|
||||||
|
order by update_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="queryAlertGroupInstanceIdsById" resultType="String">
|
<select id="queryAlertGroupInstanceIdsById" resultType="String">
|
||||||
select alert_instance_ids from t_ds_alertgroup
|
select alert_instance_ids from t_ds_alertgroup
|
||||||
where id = #{alertGroupId}
|
where id = #{alertGroupId}
|
||||||
|
Loading…
Reference in New Issue
Block a user