Commit 348786ca by HlQ

[feat] 添加集团默认指标配置以及新mall自动配置集团默认指标

1 parent eace3521
package vion.controller.monitor;
import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import vion.model.monitor.RAccountEvent;
import vion.service.monitor.IMAccountService;
import java.util.List;
/**
* @author vion
* @date 2024/12/27
*/
@RestController
@RequestMapping("/api/maccount")
@RequiredArgsConstructor
public class MAccountController {
private final IMAccountService accountService;
@GetMapping("/event/{uid}")
@SaCheckPermission(value = "account:event:query", orRole = "admin")
public List<RAccountEvent> getEventById(@PathVariable String uid) {
return accountService.getEventById(uid);
}
@PostMapping("/event/{agentUid}/{uid}")
@SaCheckPermission(value = "account:event:editAndSave", orRole = "admin")
public String saveEvent(@PathVariable String agentUid, @PathVariable String uid, @RequestBody RAccountEvent event) {
return accountService.saveEvent(agentUid, uid, event);
}
}
package vion.mapper.monitor;
import com.github.yulichang.base.MPJBaseMapper;
import vion.model.monitor.RAccountEvent;
/**
* @author vion
* @date 2024/10/31
*/
public interface RAccountEventMapper extends MPJBaseMapper<RAccountEvent> {
}
\ No newline at end of file \ No newline at end of file
...@@ -92,7 +92,7 @@ public class TaskTemp { ...@@ -92,7 +92,7 @@ public class TaskTemp {
* 微信用户id * 微信用户id
*/ */
private String openid; private String openid;
/** /**
* 客流平台直接提交的用户的uuid * 客流平台直接提交的用户的uuid
*/ */
......
package vion.model.monitor;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 集团默认指标表
*/
@Getter
@Setter
@TableName(value = "mr_account_event")
public class RAccountEvent {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* agent uid
*/
@TableField(value = "agent_uid")
private String agentUid;
/**
* 所属集团uid
*/
@TableField(value = "account_uid")
private String accountUid;
/**
* 事件唯一ID
*/
@TableField(value = "event_uid")
private String eventUid;
/**
* 事件类型
*/
@TableField(value = "event_type")
private String eventType;
/**
* 监测时间
*/
@TableField(value = "cron")
private String cron;
/**
* 默认阈值,可为空
*/
@TableField(value = "threshold")
private String threshold;
/**
* 开关 0:关 1:开
*/
@TableField(value = "control_switch")
private Short controlSwitch;
/**
* 过期时间,为空则永不过期
*/
@TableField(value = "expire")
private LocalDate expire;
/**
* 事件建立者
*/
@TableField(value = "create_by", fill = FieldFill.INSERT)
private String createBy;
/**
* 事件更新者
*/
@TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
private String updateBy;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}
\ No newline at end of file \ No newline at end of file
...@@ -30,6 +30,7 @@ import vion.mapper.monitor.AgentMapper; ...@@ -30,6 +30,7 @@ import vion.mapper.monitor.AgentMapper;
import vion.model.monitor.*; import vion.model.monitor.*;
import vion.service.monitor.*; import vion.service.monitor.*;
import vion.utils.JsonUtil; import vion.utils.JsonUtil;
import vion.utils.TimeZoneUtil;
import vion.utils.TopicUtil; import vion.utils.TopicUtil;
import vion.utils.ip.IPUtil; import vion.utils.ip.IPUtil;
import vion.vo.monitor.AgentVO; import vion.vo.monitor.AgentVO;
...@@ -56,11 +57,13 @@ public class AgentServiceImpl extends MPJBaseServiceImpl<AgentMapper, Agent> imp ...@@ -56,11 +57,13 @@ public class AgentServiceImpl extends MPJBaseServiceImpl<AgentMapper, Agent> imp
private final IServiceInfoService serviceInfoService; private final IServiceInfoService serviceInfoService;
private final IServiceRecordService serviceRecordService; private final IServiceRecordService serviceRecordService;
private final IRAgentServiceService rAgentServiceService; private final IRAgentServiceService rAgentServiceService;
private final IRAgentEventService agentEventService;
private final IUpgradeService upgradeService; private final IUpgradeService upgradeService;
private final Converter converter;
private final MqttClientTemplate client;
private final IMAccountService accountService; private final IMAccountService accountService;
private final IRAccountEventService accountEventService;
private final IMallService mallService; private final IMallService mallService;
private final MqttClientTemplate client;
private final Converter converter;
@Value("${mqtt.client.ext.ip}") @Value("${mqtt.client.ext.ip}")
private String extIp; private String extIp;
@Value("${mqtt.client.server-topic:/MS/receive}") @Value("${mqtt.client.server-topic:/MS/receive}")
...@@ -413,6 +416,7 @@ public class AgentServiceImpl extends MPJBaseServiceImpl<AgentMapper, Agent> imp ...@@ -413,6 +416,7 @@ public class AgentServiceImpl extends MPJBaseServiceImpl<AgentMapper, Agent> imp
} }
if (CollUtil.isNotEmpty(insMallList)) { if (CollUtil.isNotEmpty(insMallList)) {
mallService.saveBatch(insMallList); mallService.saveBatch(insMallList);
updNewMallEvent(insMallList);
} }
if (CollUtil.isNotEmpty(updAccList)) { if (CollUtil.isNotEmpty(updAccList)) {
accountService.updateBatchById(updAccList); accountService.updateBatchById(updAccList);
...@@ -504,4 +508,42 @@ public class AgentServiceImpl extends MPJBaseServiceImpl<AgentMapper, Agent> imp ...@@ -504,4 +508,42 @@ public class AgentServiceImpl extends MPJBaseServiceImpl<AgentMapper, Agent> imp
}); });
eventRecordService.saveBatch(recList);*/ eventRecordService.saveBatch(recList);*/
} }
/**
* 新增 mall,获取其集团默认指标配置并添加
*
* @param insMallList 要插入的mall
*/
private void updNewMallEvent(List<Mall> insMallList) {
var accUidList = insMallList.stream().map(Mall::getAccountUid).distinct().toList();
var accEventList = accountEventService.lambdaQuery()
.in(RAccountEvent::getAccountUid, accUidList)
.eq(RAccountEvent::getControlSwitch, 1)
.list();
var accUid2EventMap = accEventList.stream().collect(Collectors.groupingBy(RAccountEvent::getAccountUid));
insMallList.forEach(m -> {
var eventList = accUid2EventMap.get(m.getAccountUid());
var timeZone = m.getTimeZone();
var offsetMinute = TimeZoneUtil.getOffsetMinute(timeZone);
var agentEventList = eventList.stream().map(e -> {
var cron = e.getCron();
var offsetCron = TimeZoneUtil.convertCronExpression(cron, offsetMinute);
var rAgentEvent = new RAgentEvent();
rAgentEvent.setAccountUid(m.getAccountUid());
rAgentEvent.setMallUid(m.getUid());
rAgentEvent.setEventUid(e.getEventUid());
rAgentEvent.setEventType(e.getEventType());
rAgentEvent.setCron(cron);
rAgentEvent.setTimeZone(timeZone);
rAgentEvent.setOffsetCron(offsetCron);
rAgentEvent.setThreshold(e.getThreshold());
rAgentEvent.setControlSwitch(e.getControlSwitch());
rAgentEvent.setExpire(e.getExpire());
return rAgentEvent;
}).toList();
agentEventService.saveBatch(agentEventList);
});
}
} }
package vion.service.impl.monitor; package vion.service.impl.monitor;
import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import vion.mapper.monitor.MAccountMapper; import vion.mapper.monitor.MAccountMapper;
import vion.model.monitor.MAccount; import vion.model.monitor.MAccount;
import vion.model.monitor.RAccountEvent;
import vion.service.monitor.IMAccountService; import vion.service.monitor.IMAccountService;
import vion.service.monitor.IRAccountEventService;
import java.util.List;
/** /**
* @author vion * @author vion
* @date 2024/10/31 * @date 2024/10/31
*/ */
@Service @Service
@RequiredArgsConstructor
public class MAccountServiceImpl extends MPJBaseServiceImpl<MAccountMapper, MAccount> implements IMAccountService { public class MAccountServiceImpl extends MPJBaseServiceImpl<MAccountMapper, MAccount> implements IMAccountService {
private final IRAccountEventService accountEventService;
@Override
public List<RAccountEvent> getEventById(String uid) {
return accountEventService.lambdaQuery().eq(RAccountEvent::getAccountUid, uid).list();
}
@Override
public String saveEvent(String agentUid, String uid, RAccountEvent event) {
event.setAgentUid(agentUid);
event.setAccountUid(uid);
accountEventService.save(event);
return "";
}
} }
package vion.service.impl.monitor;
import com.github.yulichang.base.MPJBaseServiceImpl;
import org.springframework.stereotype.Service;
import vion.mapper.monitor.RAccountEventMapper;
import vion.model.monitor.RAccountEvent;
import vion.service.monitor.IRAccountEventService;
/**
* @author vion
* @date 2024/10/31
*/
@Service
public class RAccountEventServiceImpl extends MPJBaseServiceImpl<RAccountEventMapper, RAccountEvent> implements IRAccountEventService {
}
...@@ -2,6 +2,9 @@ package vion.service.monitor; ...@@ -2,6 +2,9 @@ package vion.service.monitor;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.monitor.MAccount; import vion.model.monitor.MAccount;
import vion.model.monitor.RAccountEvent;
import java.util.List;
/** /**
* @author vion * @author vion
...@@ -9,5 +12,8 @@ import vion.model.monitor.MAccount; ...@@ -9,5 +12,8 @@ import vion.model.monitor.MAccount;
*/ */
public interface IMAccountService extends MPJBaseService<MAccount> { public interface IMAccountService extends MPJBaseService<MAccount> {
List<RAccountEvent> getEventById(String uid);
String saveEvent(String agentUid, String uid, RAccountEvent event);
} }
package vion.service.monitor;
import com.github.yulichang.base.MPJBaseService;
import vion.model.monitor.RAccountEvent;
/**
* @author vion
* @date 2024/10/31
*/
public interface IRAccountEventService extends MPJBaseService<RAccountEvent> {
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!