Commit fe7499ab by tutingyin

refactor: 配置策略适配 功能策略适配

parent b7e1729d
package com.skr.mdm.bean.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -43,7 +41,6 @@ public class OaLeaveDTO implements Serializable {
@ApiModelProperty("请假结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@ApiModelProperty("事由")
......@@ -51,4 +48,4 @@ public class OaLeaveDTO implements Serializable {
@ApiModelProperty("策略消息体")
private List<OaLeaveStrategyDTO> strategyList;
}
}
\ No newline at end of file
......@@ -33,7 +33,7 @@ public class ExportLogExcelMiddleQO implements Serializable {
private String deviceName;
/**
* 设备类型 1:手机 2:手环 3:记录仪
* 设备类型 1:手机 2:手环 3:记录仪 4: PC
*/
private String deviceType;
......@@ -44,4 +44,4 @@ public class ExportLogExcelMiddleQO implements Serializable {
private String oaid;
private String info;
}
}
\ No newline at end of file
package com.skr.mdm.bean.qo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -24,4 +23,4 @@ public class LicenseCreateQO {
@ApiModelProperty(value = "证书失效时间")
private Date expiryTime;
}
}
\ No newline at end of file
......@@ -24,22 +24,24 @@ public class AppStrategyQO extends BaseStrategyQO {
@NotBlank(message = "策略名称不能为空")
private String strategyName;
@ApiModelProperty(value = "应用商店安装黑白名单")
private AppStrategyInfoQO appStoreInstallSourceQO;
@ApiModelProperty(value = "应用安装黑白名单")
private AppStrategyInfoQO appStrategyInstallQO;
@ApiModelProperty(value = "应用运行黑白名单")
private AppStrategyInfoQO appStrategyRunQO;
@ApiModelProperty(value = "安装来源")
private AppStrategyInfoQO appStrategyInstallSourceQO;
@ApiModelProperty(value = "应用防卸载")
private List<Integer> notUninstallAppIdList;
@ApiModelProperty(value = "应用运行黑白名单")
private AppStrategyInfoQO appStrategyRunQO;
@ApiModelProperty(value = "快捷应用")
private List<Integer> shortcutsAppIdList;
@ApiModelProperty(value = "应用使用权限")
private AppStrategyUsePermissionQO appStrategyUsePermissionQO;
}
}
\ No newline at end of file
package com.skr.mdm.bean.qo.strategy;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author tty
* @date 2024/9/13 9:56
*/
@Data
public class ConfigQO {
@ApiModelProperty(value = "类型 0:无 1:黑 2:白")
private Integer type;
@ApiModelProperty(value = "配置集合")
private List<Object> configList;
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ package com.skr.mdm.bean.qo.strategy;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author nfq
* @date 2020/8/26 9:56
......@@ -25,26 +27,17 @@ public class ConfigStrategyInfoQO {
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "热点白名单")
private String hotSpotWhitelist;
@ApiModelProperty(value = "蓝牙白名单")
private String bluetoothWhitelist;
@ApiModelProperty(value = "通话白名单")
private String callWhitelist;
@ApiModelProperty(value = "密码配置")
private PasswordConfigQO passwordConfigQO;
@ApiModelProperty(value = "usb黑白名单配置")
private ConfigQO usbQO;
@ApiModelProperty(value = "apn配置")
private ApnConfigQO apnConfigQO;
@ApiModelProperty(value = "wifi黑白名单配置")
private ConfigQO wifiQO;
@ApiModelProperty(value = "vpn配置")
private VpnConfigQO vpnConfigQO;
@ApiModelProperty(value = "蓝牙黑白名单配置")
private ConfigQO bluetoothQO;
@ApiModelProperty(value = "wifi白名单")
private WifiWhitelistQO wifiWhitelistQO;
@ApiModelProperty(value = "热点黑白名单配置")
private ConfigQO hotSpotQO;
@ApiModelProperty(value = "锁屏壁纸")
private String wingPaper;
......@@ -53,4 +46,4 @@ public class ConfigStrategyInfoQO {
private String desktopWallPaper;
}
}
\ No newline at end of file
......@@ -20,28 +20,10 @@ public class StrategyNetworkIsolationQO extends BaseStrategyQO {
@NotBlank(message = "策略名称不能为空")
@ApiModelProperty(value = "策略名称")
private String strategyName;
@ApiModelProperty(value = "作用域 (1:个人域 2:工作域 3:个人域和工作域)")
private Integer actionScope;
@ApiModelProperty(value = "1: 有围栏策略 0:无围栏策略")
private Integer rail;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "半径")
private String radius;
@ApiModelProperty(value = "自定义范围")
private String locs;
@ApiModelProperty(value = "url")
@ApiModelProperty(value = "url 主要字段 可有多条数据 ',' 分割 json数组格式传参 列: '[1,2,3,4,5]'")
private String url;
@ApiModelProperty(value = "ip")
@ApiModelProperty(value = "ip 主要字段 可有多条数据 ',' 分割 json数组格式传参 列: '[1,2,3,4,5]'")
private String ip;
@ApiModelProperty(value = "dns")
@ApiModelProperty(value = "dns 主要字段 可有多条数据 ',' 分割 json数组格式传参 列: '[1,2,3,4,5]'")
private String dns;
}
\ No newline at end of file
package com.skr.mdm.bean.qo.strategy;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author tty
* @date 2024/9/13 9:56
*/
@Data
public class UsbConfigQO {
@ApiModelProperty(value = "pid")
private Integer pid;
@ApiModelProperty(value = "pid")
private Integer vid;
}
\ No newline at end of file
package com.skr.mdm.bean.qo.violation;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -30,7 +29,6 @@ public class ViolationStatisticsQO implements Serializable {
@ApiModelProperty("违规时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String violationTime;
}
}
\ No newline at end of file
......@@ -31,6 +31,8 @@ public class ReloadSO {
private List<RailStrategySO> railStrategyList;
@ApiModelProperty(value = "配置策略")
private List<ConfigStrategySO> configStrategyList;
@ApiModelProperty(value = "內外网隔离策略")
private List<NetworkIsoStrategySO> networkIsolationStrategyList;
@ApiModelProperty(value = "合规策略")
private List<SystemComplianceSO> complianceStrategyList;
@ApiModelProperty(value = "应用策略")
......
......@@ -36,7 +36,7 @@ public class DeviceExcelInfoSO implements Serializable {
private String userName;
/**
* 设备类型 1:手机 2:手环 3:记录仪
* 设备类型 1:手机 2:手环 3:记录仪 4: PC
*/
@ExcelProperty("类型")
private String deviceType;
......@@ -60,4 +60,4 @@ public class DeviceExcelInfoSO implements Serializable {
@ColumnWidth(35)
private String info;
}
}
\ No newline at end of file
package com.skr.mdm.bean.so.oaleave;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.skr.mdm.bean.so.AppStrategySO;
import com.skr.mdm.bean.so.strategy.*;
import lombok.Builder;
......@@ -26,11 +25,9 @@ public class OaLeaveStrategySO {
private Integer id;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
private List<RailStrategySO> railStrategySOList;
......
package com.skr.mdm.bean.so.strategy;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author tty
* @date 2024/9/13 11:56
*/
@Data
public class ConfigSO {
@ApiModelProperty(value = "类型 0:无 1:黑 2:白")
private Integer type;
@ApiModelProperty(value = "配置信息")
private String msg;
}
\ No newline at end of file
......@@ -38,16 +38,19 @@ public class ConfigStrategyInfoSO {
@ApiModelProperty(value = "结束时间")
@JsonSerialize(using = DateConvertUtil.class)
private Date endTime;
@ApiModelProperty(value = "蓝牙白名单")
private String bluetoothWhitelist;
@ApiModelProperty(value = "密码配置")
private PasswordConfigSO passwordConfigSO;
@ApiModelProperty(value = "apn配置")
private ApnConfigSO apnConfigSO;
@ApiModelProperty(value = "vpn配置")
private VpnConfigSO vpnConfigSO;
@ApiModelProperty(value = "wifi白名单")
private WifiWhitelistSO wifiWhitelistSO;
@ApiModelProperty(value = "usb黑白名单配置")
private ConfigSO usbSO;
@ApiModelProperty(value = "wifi黑白名单配置")
private ConfigSO wifiSO;
@ApiModelProperty(value = "蓝牙黑白名单配置")
private ConfigSO bluetoothSO;
@ApiModelProperty(value = "热点黑白名单配置")
private ConfigSO hotSpotSO;
@ApiModelProperty(value = "策略全局类型(1:公司全局 2:部门全局 3:个人)")
private Integer globalType;
......
......@@ -38,13 +38,13 @@ public class NetworkIsoStrategySO {
private String locs;
@ApiModelProperty(value = "url")
private String url;
private Object url;
@ApiModelProperty(value = "ip")
private String ip;
private Object ip;
@ApiModelProperty(value = "dns")
private String dns;
private Object dns;
@ApiModelProperty(value = "下发时间")
private Long sendTime;
......
package com.skr.mdm.bean.vo.access;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -176,7 +175,6 @@ public class WechatQqStrategyInfoVO implements Serializable {
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(hidden = true)
private Date createTime;
......@@ -184,7 +182,6 @@ public class WechatQqStrategyInfoVO implements Serializable {
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(hidden = true)
private Date updateTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.alarm;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -20,6 +19,5 @@ public class AlarmReceiverVO {
private String phoneNumber;
@ApiModelProperty(value = "状态(1 未确认 2:已确认)")
private Integer state;
private Date confirmTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.alarm;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -27,8 +26,7 @@ public class AlarmRecordVO implements Serializable {
private String address;
@ApiModelProperty(value = "状态(1 未确认 2:已确认)")
private Integer state;
private Date alarmTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.app;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.skr.mdm.bean.vo.app;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -38,4 +38,4 @@ public class AppUninstallVO {
@ApiModelProperty(value = "部门全局ID数组")
private String departmentIds;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.appstore;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
......@@ -4,7 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.skr.mdm.bean.vo.appstore;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -142,7 +142,6 @@ public class AppStoreVO implements Serializable {
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
......
package com.skr.mdm.bean.vo.appstore;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.skr.mdm.bean.vo.cmd;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -28,4 +28,4 @@ public class InformCmdVO {
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.communication;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -30,4 +30,4 @@ public class CallDisplayUserVO {
private Date issuedTime;
}
}
\ No newline at end of file
......@@ -5,7 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.skr.mdm.bean.vo.communication;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
......
package com.skr.mdm.bean.vo.communication;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -32,4 +32,4 @@ public class CallWhitelistUserVO {
private Date issuedTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.communication;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -33,4 +33,4 @@ public class CommunicationStrategyVO {
private String departmentIds;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.communication;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -30,4 +30,4 @@ public class SmsListVO {
@ExcelProperty(value = "短信时间")
private Date smsTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.company;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -37,4 +37,4 @@ public class CompanyVO {
@ApiModelProperty(value = "公司超管")
private String adminName;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.compliance;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -27,4 +27,4 @@ public class AppComplianceUserVO {
@ApiModelProperty(value = "下发时间")
private Date issuedTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.content;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -33,7 +33,6 @@ public class ContentVO implements Serializable {
@ApiModelProperty("修改时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@ApiModelProperty("操作者")
......@@ -47,4 +46,4 @@ public class ContentVO implements Serializable {
@ApiModelProperty(value = "部门全局ID数组")
private String departmentIds;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -21,7 +21,6 @@ public class AppInstallVO {
private String appName;
private String packageName;
private String versionCode;
private Date installTime;
private String isInstall;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -37,12 +37,10 @@ public class ClientOaLeaveVO implements Serializable {
@ApiModelProperty("请假开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@ApiModelProperty("请假结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@ApiModelProperty("事由")
......@@ -53,7 +51,6 @@ public class ClientOaLeaveVO implements Serializable {
@ApiModelProperty("提交时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -37,7 +37,6 @@ public class DeviceComplianceStrategyVO implements Serializable {
@ApiModelProperty(value = "下发时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date issuedTime;
@ApiModelProperty(value = "状态 (1:下发中 2:下发成功 3:执行中 4:执行成功 )")
......@@ -51,6 +50,5 @@ public class DeviceComplianceStrategyVO implements Serializable {
@ApiModelProperty(value = "违规时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date violationTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -111,7 +111,6 @@ public class DeviceEquipmentInfoVO {
private String longitude;
@ApiModelProperty("位置更新时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String posCorrentionTime;
@ApiModelProperty("root 状态 0:未 ROOT 1:已 ROOT")
private String rootStatus;
......@@ -143,4 +142,4 @@ public class DeviceEquipmentInfoVO {
@ApiModelProperty("最后更新时间")
private Date updateTime;
}
}
\ No newline at end of file
......@@ -45,9 +45,9 @@ public class DeviceEquipmentVO {
private String departmentName;
/**
* 设备类型 1:手机 2:手环 3:记录仪
* 设备类型 1:手机 2:手环 3:记录仪 9: PC
*/
@ApiModelProperty("设备类型 1:手机 2:手环 3:记录仪")
@ApiModelProperty("设备类型 1:手机 2:手环 3:记录仪 9: PC")
private Integer equipmentType;
/**
......@@ -80,6 +80,7 @@ public class DeviceEquipmentVO {
@ApiModelProperty("设备型号")
private String equipmentModel;
@ApiModelProperty("序列号")
private String serialNumber;
/**
......@@ -109,8 +110,6 @@ public class DeviceEquipmentVO {
@ApiModelProperty("最后在线时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date offlineTime;
@ApiModelProperty(value = "机卡绑定(0:未绑定 1:绑定)")
private Integer isCardBinding;
@ApiModelProperty(value = "解绑密码")
private String cardUnbindPassword;
@ApiModelProperty(value = "离线解锁码")
......
package com.skr.mdm.bean.vo.equipment;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -17,4 +17,4 @@ public class DeviceSimRecordVO {
private String state;
private Date changeTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -45,17 +45,14 @@ public class OaLeaveVO implements Serializable {
@ApiModelProperty("请假开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@ApiModelProperty("请假结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@ApiModelProperty("销假时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date reportTime;
@ApiModelProperty("事由")
......@@ -69,7 +66,6 @@ public class OaLeaveVO implements Serializable {
@ApiModelProperty("提交时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
}
\ No newline at end of file
......@@ -33,15 +33,10 @@ public class SendCmdMessageInfoVO {
private String state;
@ApiModelProperty("点名状态 1:未点 2:已点")
private Integer rollCallStatus;
@ApiModelProperty("imei")
private String imei;
@ApiModelProperty("uuid ")
private String uuid;
@ApiModelProperty("oaid")
private String oaid;
@ApiModelProperty("serialNumber")
private String serialNumber;
@ApiModelProperty("下发时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String sendTime;
@ApiModelProperty("流量状态(1:未超 2:已超)")
private Integer flowStatus;
......@@ -52,7 +47,6 @@ public class SendCmdMessageInfoVO {
@ApiModelProperty("通知查看状态 1:未查看 2:已查看")
private Integer readStatus;
@ApiModelProperty("点名应答时间")
private Date responseTime;
}
\ No newline at end of file
package com.skr.mdm.bean.vo.function;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -21,4 +21,4 @@ public class FunctionScopeVO {
private Date createTime;
private Date updateTime;
}
}
\ No newline at end of file
......@@ -13,5 +13,6 @@ public class IndexEquipmentTypeVO {
private long braceletCount;
private long recorderCount;
private long watchesCount;
private long pcCount;
private long otherCount;
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -26,4 +26,4 @@ public class LogAppViolationVO {
@ExcelProperty(value = "违规时间")
private Date violationTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -24,4 +24,4 @@ public class LogDealVO {
@ExcelProperty(value = "交易时间")
private Date dealTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -20,4 +20,4 @@ public class LogSafeWechatChatVO {
private Date chatTime;
@ApiModelProperty(value = "是否是文件(0:否 1:是)")
private Integer isFile;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -26,4 +26,4 @@ public class LogSafeWechatUserVO {
@ApiModelProperty(value = "获取时间")
private Date pullTime;
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@ package com.skr.mdm.bean.vo.log;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
......@@ -29,4 +29,4 @@ public class LogSensitiveWordVO {
private String violationType;
@ExcelProperty(value = "上下语境")
private String violationText;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -26,4 +26,4 @@ public class LogUrlBlacklistVO {
@ExcelProperty(value = "访问时间")
private Date visitTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -26,4 +26,4 @@ public class LogUrlViolationVO {
@ExcelProperty(value = "访问时间")
private Date visitTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -26,4 +26,4 @@ public class LogUrlVisitBadVO {
@ExcelProperty(value = "访问时间")
private Date visitTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -24,4 +24,4 @@ public class LogUrlVisitVO {
@ExcelProperty(value = "访问时间")
private Date visitTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.log;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -18,4 +18,4 @@ public class LogWechatQqInfoVO {
@ApiModelProperty(value = "发送时间")
private Date sendTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.report;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -24,4 +24,4 @@ public class DealReportVO {
@ExcelProperty(value = "交易时间")
private Date dealTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.report;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -24,4 +24,4 @@ public class SensitiveWordViolationReportVO {
@ExcelProperty(value = "违规时间")
private Date violationTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.report;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -26,4 +26,4 @@ public class UrlBlacklistReportVO {
@ExcelProperty(value = "访问时间")
private Date visitTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.role;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -29,4 +29,4 @@ public class RoleVO {
@ApiModelProperty(value = "操作者")
private String operator;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.sensitive;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -34,4 +34,4 @@ public class SensitiveWordUserVO {
private Date issuedTime;
@ApiModelProperty(value = "敏感词违规")
private List<SensitiveWordViolationVO> sensitiveWordViolationVOList;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.sensitive;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -47,4 +47,4 @@ public class SensitiveWordVO {
private String appDisablePackage;
@ApiModelProperty(value = "违规告警(0:否 1:是)")
private Integer isWarning;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.sensitive;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -20,4 +20,4 @@ public class SensitiveWordViolationVO {
@ApiModelProperty(value = "违规时间")
private Date violationTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.strategy;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.skr.mdm.bean.so.strategy.ConfigSO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -49,19 +50,16 @@ public class ConfigStrategyInfoVO {
@ApiModelProperty(value = "结束时间")
private Date endTime;
@ApiModelProperty(value = "蓝牙白名单")
private String bluetoothWhitelist;
@ApiModelProperty(value = "密码配置")
private PasswordConfigVO passwordConfigVO;
@ApiModelProperty(value = "蓝牙黑白名单配置")
private ConfigVO bluetoothVO;
@ApiModelProperty(value = "apn配置")
private ApnConfigVO apnConfigVO;
@ApiModelProperty(value = "usb配置")
private ConfigVO usbVO;
@ApiModelProperty(value = "vpn配置")
private VpnConfigVO vpnConfigVO;
@ApiModelProperty(value = "热点")
private ConfigVO hotSpotVO;
@ApiModelProperty(value = "wifi白名单")
private WifiWhitelistVO wifiWhitelistVO;
private ConfigVO wifiVO;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.strategy;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -38,4 +38,4 @@ public class OaLeaveStrategyVO {
@ApiModelProperty(value = "操作时间")
private Date updateTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.strategy;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -301,4 +301,4 @@ public class RailStrategyInfoVO {
@ApiModelProperty(value = "墙纸")
private String wallpaper;
}
}
\ No newline at end of file
......@@ -39,13 +39,13 @@ public class StrategyNetworkIsolationVO {
private String locs;
@ApiModelProperty(value = "url")
private String url;
private Object url;
@ApiModelProperty(value = "ip")
private String ip;
private Object ip;
@ApiModelProperty(value = "dns")
private String dns;
private Object dns;
@ApiModelProperty(value = "策略全局类型(1:公司全局 2:部门全局 3:个人)")
private Integer globalType;
......
package com.skr.mdm.bean.vo.strategy;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -37,7 +37,6 @@ public class StrategyUserVO {
private Integer state;
@ApiModelProperty(value = "下发时间")
private Date issuedTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.strategy;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -27,7 +27,6 @@ public class StrategyVO {
private Integer strategyType;
@ApiModelProperty(value = "操作时间")
private Date operateTime;
@ApiModelProperty(value = "操作者")
......
package com.skr.mdm.bean.vo.strategy;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -41,4 +41,4 @@ public class ViolationRecordsVO {
@ExcelProperty(value = "违规内容")
private String violationContent;
}
}
\ No newline at end of file
......@@ -28,7 +28,6 @@ public class LogAdminVO {
@ApiModelProperty(name = "createTime", value = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(name = "operator", value = "操作人")
......@@ -41,4 +40,4 @@ public class LogAdminVO {
private String operateUser;
private Boolean exportFlag;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.system;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -40,11 +40,9 @@ public class SysChangeCertificateVO {
private String issuerDn;
@ApiModelProperty("起始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date beginTime;
@ApiModelProperty("到期时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@ApiModelProperty("证书名称")
private String certificateName;
......
......@@ -19,7 +19,7 @@ public class UserEquipmentVO implements Serializable {
private Integer id;
private Integer userId;
@ApiModelProperty("设备类型(1:手机 2:手环 3:记录仪)")
@ApiModelProperty("设备类型(1:手机 2:手环 3:记录仪 4: PC)")
private String equipmentType;
@ApiModelProperty("设备名称")
......@@ -31,4 +31,4 @@ public class UserEquipmentVO implements Serializable {
private String imei;
private String oaid;
private String uuid;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.user;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -76,4 +76,4 @@ public class UserVO {
@ApiModelProperty("公司id")
private Integer companyId;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.warn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -30,4 +30,4 @@ public class AppUseUrlUserVO {
private Date issuedTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.warn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -26,4 +26,4 @@ public class AppUseUrlVO {
@ApiModelProperty(value = "操作者")
private String operator;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.warn;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -34,4 +34,4 @@ public class AppUseUrlViolationVO {
@ExcelProperty(value = "违规时间")
@ApiModelProperty(value = "违规时间")
private Date violationTime;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.warn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -33,4 +33,4 @@ public class WarnDealVO {
@ApiModelProperty(value = "操作时间")
private Date operateTime;
}
}
\ No newline at end of file
package com.skr.mdm.controller;
import com.skr.mdm.constant.CmdTypeConstants;
import com.skr.mdm.dto.LoginUserDTO;
import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService;
import com.skr.mdm.service.StrategyFactory;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
/**
* @author nfq
* @date 2020/8/11 16:52
*/
@RestController
@RequestMapping("configStrategy")
@Api(tags = "配置策略")
public class ConfigStrategyController {
@PostMapping("callback")
@ApiOperation("配置策略下发回调")
public ResponseResult configStrategyCallback(@RequestParam @ApiParam(value = "回调内容", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.CONFIG_STRATEGY_CALLBACK);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
}
\ No newline at end of file
package com.skr.mdm.controller;
import com.skr.mdm.constant.CmdTypeConstants;
import com.skr.mdm.dto.LoginUserDTO;
import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService;
import com.skr.mdm.service.StrategyFactory;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
/**
* @author nfq
* @date 2020/8/11 16:52
*/
@RestController
@RequestMapping("networkStrategy")
@Api(tags = "内外网隔离策略")
public class NetworkIosStrategyController {
@PostMapping("callback")
@ApiOperation("内外网隔离策略下发回调")
public ResponseResult configStrategyCallback(@RequestParam @ApiParam(value = "回调内容", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.NETWORK_ISOLATION);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
}
\ No newline at end of file
package com.skr.mdm.controller;
import com.skr.mdm.constant.CmdTypeConstants;
import com.skr.mdm.dto.LoginUserDTO;
import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.bean.so.strategy.RailStrategySO;
import com.skr.mdm.service.CmdHandlerService;
import com.skr.mdm.service.StrategyFactory;
import io.swagger.annotations.*;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
/**
* @author nfq
* @date 2020/8/11 17:20
*/
@RestController
@RequestMapping("railStrategy")
@Api(tags = "功能策略")
public class RailStrategyController {
@PostMapping("callback")
@ApiOperation("功能策略下发回调")
@ApiResponses({
@ApiResponse(code = 200, message = "成功", response = RailStrategySO.class)
})
public ResponseResult callback(@RequestParam @ApiParam(value = "回调内容", required = true) String data, @ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.RAIL_ISSUED_CALLBACK);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
}
\ No newline at end of file
package com.skr.mdm.service.impl.reload.handler;
import com.skr.mdm.annotation.MdmReloadHandler;
import com.skr.mdm.bean.bo.StrategyIssuedBO;
import com.skr.mdm.bean.so.ReloadSO;
import com.skr.mdm.bean.so.strategy.ConfigStrategySO;
import com.skr.mdm.dao.StrategyConfigDao;
import com.skr.mdm.enums.StrategyEquipmentStateEnum;
import com.skr.mdm.enums.StrategyStateEnum;
import com.skr.mdm.manager.ConfigStrategyManager;
import com.skr.mdm.service.impl.reload.ReloadHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author nfq
* @date 2022/06/10 11:51
*/
@MdmReloadHandler
@Slf4j
public class ConfigStrategyReloadHandler implements ReloadHandler {
@Autowired
private StrategyConfigDao strategyConfigDao;
@Autowired
private ConfigStrategyManager configStrategyManager;
@Override
public void doHandler(ReloadSO reloadSO, Integer equipmentId) {
try {
List<StrategyIssuedBO> strategyIssuedBOList = strategyConfigDao.listStrategyIdByEquipmentId(equipmentId,
StrategyStateEnum.DISABLE.getState(), StrategyEquipmentStateEnum.ISSUING.getState());
List<ConfigStrategySO> configStrategySOList = new ArrayList<>(strategyIssuedBOList.size());
if (CollectionUtils.isNotEmpty(strategyIssuedBOList)) {
List<Integer> strategyIdList = strategyIssuedBOList.stream().map(StrategyIssuedBO::getStrategyId)
.collect(Collectors.toList());
configStrategySOList = configStrategyManager.getConfigStrategySO(strategyIdList, System.currentTimeMillis());
Map<Integer, StrategyIssuedBO> strategyIssuedBOMap = strategyIssuedBOList.stream()
.collect(Collectors.toMap(StrategyIssuedBO::getStrategyId, strategyIssuedBO -> strategyIssuedBO));
configStrategySOList.forEach(configStrategySO -> {
if (strategyIssuedBOMap.containsKey(configStrategySO.getId())) {
StrategyIssuedBO strategyIssuedBO = strategyIssuedBOMap.get(configStrategySO.getId());
configStrategySO.setSendTime(strategyIssuedBO.getSendTime().getTime());
}
});
}
reloadSO.setConfigStrategyList(configStrategySOList);
} catch (Exception e) {
log.error("卸载重装配置策略异常:" + equipmentId, e);
}
}
}
\ No newline at end of file
package com.skr.mdm.service.impl.reload.handler;
import com.skr.mdm.annotation.MdmReloadHandler;
import com.skr.mdm.bean.bo.StrategyIssuedBO;
import com.skr.mdm.bean.so.ReloadSO;
import com.skr.mdm.bean.so.strategy.RailStrategySO;
import com.skr.mdm.dao.RailStrategyDao;
import com.skr.mdm.enums.StrategyEquipmentStateEnum;
import com.skr.mdm.enums.StrategyStateEnum;
import com.skr.mdm.manager.FunctionStrategyManager;
import com.skr.mdm.service.impl.reload.ReloadHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author nfq
* @date 2022/06/10 11:46
*/
@MdmReloadHandler
@Slf4j
public class FunctionStrategyReloadHandler implements ReloadHandler {
@Autowired
private RailStrategyDao strategyDao;
@Autowired
private FunctionStrategyManager functionStrategyManager;
@Override
public void doHandler(ReloadSO reloadSO, Integer equipmentId) {
try {
List<StrategyIssuedBO> strategyIssuedBOList = strategyDao.listStrategyIdByEquipmentId(equipmentId, StrategyStateEnum.DISABLE.getState(), StrategyEquipmentStateEnum.ISSUING.getState());
List<RailStrategySO> railStrategySOList = new ArrayList<>(strategyIssuedBOList.size());
if (CollectionUtils.isNotEmpty(strategyIssuedBOList)) {
List<Integer> strategyIdList = strategyIssuedBOList.stream().map(StrategyIssuedBO::getStrategyId)
.collect(Collectors.toList());
railStrategySOList = functionStrategyManager.getRailStrategySOList(strategyIdList, System.currentTimeMillis());
Map<Integer, StrategyIssuedBO> strategyIssuedBOMap = strategyIssuedBOList.stream()
.collect(Collectors.toMap(StrategyIssuedBO::getStrategyId, strategyIssuedBO -> strategyIssuedBO));
railStrategySOList.forEach(railStrategySO -> {
if (strategyIssuedBOMap.containsKey(railStrategySO.getId())) {
StrategyIssuedBO strategyIssuedBO = strategyIssuedBOMap.get(railStrategySO.getId());
railStrategySO.setSendTime(strategyIssuedBO.getSendTime().getTime());
}
});
}
reloadSO.setRailStrategyList(railStrategySOList);
} catch (Exception e) {
log.error("卸载重装功能策略异常:" + equipmentId, e);
}
}
}
\ No newline at end of file
package com.skr.mdm.service.impl.reload.handler;
import com.skr.mdm.annotation.MdmReloadHandler;
import com.skr.mdm.bean.bo.StrategyIssuedBO;
import com.skr.mdm.bean.so.ReloadSO;
import com.skr.mdm.bean.so.strategy.NetworkIsoStrategySO;
import com.skr.mdm.dao.StrategyNetworkIsolationDao;
import com.skr.mdm.enums.StrategyEquipmentStateEnum;
import com.skr.mdm.enums.StrategyStateEnum;
import com.skr.mdm.manager.NetworkIsoStrategyManager;
import com.skr.mdm.service.impl.reload.ReloadHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author nfq
* @date 2022/06/10 11:51
*/
@MdmReloadHandler
@Slf4j
public class NetworkIsoStrategyReloadHandler implements ReloadHandler {
@Autowired
private StrategyNetworkIsolationDao networkIsolationDao;
@Autowired
private NetworkIsoStrategyManager networkIsoStrategyManager;
@Override
public void doHandler(ReloadSO reloadSO, Integer equipmentId) {
try {
List<StrategyIssuedBO> strategyIssuedBOList = networkIsolationDao.listStrategyIdByEquipmentId(equipmentId,
StrategyStateEnum.DISABLE.getState(), StrategyEquipmentStateEnum.ISSUING.getState());
List<NetworkIsoStrategySO> networkIsoStrategySOList = new ArrayList<>(strategyIssuedBOList.size());
if (CollectionUtils.isNotEmpty(strategyIssuedBOList)) {
List<Integer> strategyIdList = strategyIssuedBOList.stream().map(StrategyIssuedBO::getStrategyId)
.collect(Collectors.toList());
networkIsoStrategySOList = networkIsoStrategyManager.getStrategySO(strategyIdList, System.currentTimeMillis());
Map<Integer, StrategyIssuedBO> strategyIssuedBOMap = strategyIssuedBOList.stream()
.collect(Collectors.toMap(StrategyIssuedBO::getStrategyId, strategyIssuedBO -> strategyIssuedBO));
networkIsoStrategySOList.forEach(configStrategySO -> {
if (strategyIssuedBOMap.containsKey(configStrategySO.getId())) {
StrategyIssuedBO strategyIssuedBO = strategyIssuedBOMap.get(configStrategySO.getId());
configStrategySO.setSendTime(strategyIssuedBO.getSendTime().getTime());
}
});
}
reloadSO.setNetworkIsolationStrategyList(networkIsoStrategySOList);
} catch (Exception e) {
log.error("卸载重装配置策略异常:" + equipmentId, e);
}
}
}
\ No newline at end of file
package com.skr.mdm.service.impl.strategy;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.skr.mdm.annotation.CmdHandler;
import com.skr.mdm.constant.CmdTypeConstants;
import com.skr.mdm.dao.StrategyConfigUserDao;
import com.skr.mdm.dto.StrategyCallbackInfoDTO;
import com.skr.mdm.entity.StrategyConfigUserDO;
import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
* @author nfq
* @date 2020/8/3 11:53
*/
@Slf4j
@CmdHandler(cmdType = CmdTypeConstants.CONFIG_STRATEGY_CALLBACK)
public class ConfigStrategyServiceImpl implements CmdHandlerService {
@Autowired
private StrategyConfigUserDao strategyConfigUserDao;
@Override
public ResponseResult cmdHandler(Integer equipmentId, String data) {
// 配置策略下发回调
try {
JSONArray jsonArray = JSONUtil.parseArray(data);
List<StrategyCallbackInfoDTO> strategyCallbackInfoDTOList = JSONUtil.toList(jsonArray, StrategyCallbackInfoDTO.class);
List<Integer> cidList = new ArrayList<>(strategyCallbackInfoDTOList.size());
strategyCallbackInfoDTOList.forEach(strategyCallbackInfoDTO -> {
LambdaUpdateChainWrapper<StrategyConfigUserDO> updateChainWrapper = new LambdaUpdateChainWrapper<>(strategyConfigUserDao);
updateChainWrapper
.set(strategyCallbackInfoDTO.getState() != null, StrategyConfigUserDO::getState, strategyCallbackInfoDTO.getState())
.set(strategyCallbackInfoDTO.getMdmStatus() != null, StrategyConfigUserDO::getMdmStatus, strategyCallbackInfoDTO.getMdmStatus())
.eq(StrategyConfigUserDO::getStrategyId, strategyCallbackInfoDTO.getStrategyId())
.eq(StrategyConfigUserDO::getEquipmentId, equipmentId)
.update();
cidList.add(strategyCallbackInfoDTO.getCid());
});
return ResponseResult.success(JSONUtil.toJsonStr(cidList));
} catch (Exception e) {
log.error("配置策略回调异常:" + equipmentId + data, e);
return ResponseResult.failure();
}
}
}
\ No newline at end of file
package com.skr.mdm.service.impl.strategy;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.skr.mdm.annotation.CmdHandler;
import com.skr.mdm.constant.CmdTypeConstants;
import com.skr.mdm.dao.StrategyNetworkIsolationUserDao;
import com.skr.mdm.dto.StrategyCallbackInfoDTO;
import com.skr.mdm.entity.StrategyNetworkIsolationUserDO;
import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
* @author tty
* @date 2024/9/12 16:33
*/
@Slf4j
@CmdHandler(cmdType = CmdTypeConstants.NETWORK_ISOLATION)
public class NetworkIsoStrategyServiceImpl implements CmdHandlerService {
@Autowired
private StrategyNetworkIsolationUserDao networkIsolationUserDao;
@Override
public ResponseResult cmdHandler(Integer equipmentId, String data) {
try {
JSONArray jsonArray = JSONUtil.parseArray(data);
List<StrategyCallbackInfoDTO> strategyCallbackInfoDTOList = JSONUtil.toList(jsonArray, StrategyCallbackInfoDTO.class);
List<Integer> cidList = new ArrayList<>(strategyCallbackInfoDTOList.size());
strategyCallbackInfoDTOList.forEach(strategyCallbackInfoDTO -> {
LambdaUpdateChainWrapper<StrategyNetworkIsolationUserDO> updateChainWrapper = new LambdaUpdateChainWrapper<>(networkIsolationUserDao);
updateChainWrapper
.set(strategyCallbackInfoDTO.getState() != null, StrategyNetworkIsolationUserDO::getState, strategyCallbackInfoDTO.getState())
.set(strategyCallbackInfoDTO.getMdmStatus() != null, StrategyNetworkIsolationUserDO::getMdmStatus, strategyCallbackInfoDTO.getMdmStatus())
.eq(StrategyNetworkIsolationUserDO::getStrategyId, strategyCallbackInfoDTO.getStrategyId())
.eq(StrategyNetworkIsolationUserDO::getEquipmentId, equipmentId)
.update();
cidList.add(strategyCallbackInfoDTO.getCid());
});
return ResponseResult.success(JSONUtil.toJsonStr(cidList));
} catch (Exception e) {
log.error("内外网隔离策略回调异常:" + equipmentId + data, e);
return ResponseResult.failure();
}
}
}
\ No newline at end of file
package com.skr.mdm.service.impl.strategy;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.skr.mdm.annotation.CmdHandler;
import com.skr.mdm.constant.CmdTypeConstants;
import com.skr.mdm.dao.RailStrategyUserDao;
import com.skr.mdm.dto.StrategyCallbackInfoDTO;
import com.skr.mdm.entity.RailStrategyUserDO;
import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
* @author nfq
* @date 2020/8/3 11:51
*/
@Slf4j
@CmdHandler(cmdType = CmdTypeConstants.RAIL_ISSUED_CALLBACK)
public class RailStrategyServiceImpl implements CmdHandlerService {
@Autowired
private RailStrategyUserDao railStrategyUserDao;
@Override
public ResponseResult cmdHandler(Integer equipmentId, String data) {
// 围栏策略下发回调
try {
JSONArray jsonArray = JSONUtil.parseArray(data);
List<StrategyCallbackInfoDTO> strategyCallbackInfoDTOList = JSONUtil.toList(jsonArray, StrategyCallbackInfoDTO.class);
List<Integer> cidList = new ArrayList<>(strategyCallbackInfoDTOList.size());
strategyCallbackInfoDTOList.forEach(strategyCallbackInfoDTO -> {
LambdaUpdateChainWrapper<RailStrategyUserDO> updateChainWrapper = new LambdaUpdateChainWrapper<RailStrategyUserDO>(railStrategyUserDao);
updateChainWrapper
.set(strategyCallbackInfoDTO.getState() != null, RailStrategyUserDO::getState, strategyCallbackInfoDTO.getState())
.set(strategyCallbackInfoDTO.getMdmStatus() != null, RailStrategyUserDO::getMdmStatus, strategyCallbackInfoDTO.getMdmStatus())
.eq(RailStrategyUserDO::getStrategyId, strategyCallbackInfoDTO.getStrategyId())
.eq(RailStrategyUserDO::getEquipmentId, equipmentId)
.update();
cidList.add(strategyCallbackInfoDTO.getCid());
});
return ResponseResult.success(JSONUtil.toJsonStr(cidList));
} catch (Exception e) {
log.error("功能策略回调异常:" + equipmentId + data, e);
return ResponseResult.failure();
}
}
}
\ No newline at end of file
......@@ -355,5 +355,10 @@ public class CmdTypeConstants {
*/
public static final short URL_CALL_BACK = 0x3F0;
/**
* 内外网网络隔离策略回调
*/
public static final short NETWORK_ISOLATION = 0x3F1;
}
\ No newline at end of file
......@@ -18,8 +18,9 @@ public enum EquipmentTypeEnum {
WRISTBAND(2, "手环"),
RECORDER(3, "记录仪"),
WATCHES(4, "手表"),
PC(9, "PC端"),
OTHER(5, "其他");
private Integer type;
private String name;
}
}
\ No newline at end of file
......@@ -17,13 +17,17 @@ public enum StrategyCmdEnum {
ISSUED_RAIL_STRATEGY("围栏策略下发","issuedRailStrategy"),
ISSUED_CONFIG_STRATEGY("配置策略下发", "issuedConfigStrategy"),
ISSUED_COMPLIANCE_STRATEGY("合规策略下发", "issuedComplianceStrategy"),
ISSUED_NETWORK_STRATEGY("内外网隔离策略下发", "issuedNetworkStrategy"),
DELETE_RAIL_STRATEGY("围栏策略删除下发", "deleteRailStrategy"),
DELETE_CONFIG_STRATEGY("配置策略删除下发", "deleteConfigStrategy"),
DELETE_NETWORK_STRATEGY("内外网隔离策略删除下发", "deleteNetworkStrategy"),
DELETE_COMPLIANCE_STRATEGY("合规策略删除下发", "deleteComplianceStrategy"),
ENABLE_RAIL_STRATEGY("启用围栏策略", "enableRailStrategy"),
DISABLE_RAIL_STRATEGY("禁用围栏策略", "disableRailStrategy"),
ENABLE_CONFIG_STRATEGY("启用配置策略", "enableConfigStrategy"),
DISABLE_CONFIG_STRATEGY("禁用配置策略", "disableConfigStrategy"),
ENABLE_NETWORK_STRATEGY("启用内外网隔离策略", "enableNetworkStrategy"),
DISABLE_NETWORK_STRATEGY("禁用内外网隔离策略", "disableNetworkStrategy"),
ENABLE_COMPLIANCE_STRATEGY("启用合规策略", "enableComplianceStrategy"),
DISABLE_COMPLIANCE_STRATEGY("禁用合规策略", "disableComplianceStrategy");
......@@ -32,4 +36,4 @@ public enum StrategyCmdEnum {
private final String cmdType;
private final String cmd;
}
}
\ No newline at end of file
......@@ -17,6 +17,7 @@ public enum StrategyTypeEnum {
FUNCTION_STRATEGY(1, "功能策略"),
CONFIG_STRATEGY(2, "配置策略"),
URL_STRATEGY(3, "网址策略"),
NETWORK_ISO(4, "内外网隔离"),
SYSTEM_COMPLIANCE_STRATEGY(1, "系统合规策略"),
APP_COMPLIANCE_STRATEGY(2, "应用合规策略"),
NETWORK_COMPLIANCE_STRATEGY(3, "网络合规策略"),
......@@ -25,4 +26,4 @@ public enum StrategyTypeEnum {
private Integer strategyType;
private String strategyName;
}
}
\ No newline at end of file
package com.skr.mdm.license;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
......@@ -65,4 +65,4 @@ public class LicenseCreateParam implements Serializable {
* 额外的服务器硬件校验信息
*/
private LicenseCheckModel licenseCheckModel;
}
}
\ No newline at end of file
package com.skr.mdm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.skr.mdm.bean.bo.StrategyIssuedBO;
import com.skr.mdm.bean.qo.StrategyQueryQO;
import com.skr.mdm.bean.vo.strategy.StrategyVO;
import com.skr.mdm.entity.StrategyConfigDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 策略信息主表(StrategyConfig)表数据库访问层
*
* @author nfq
* @since 2020-08-26 10:26:49
*/
@Repository
public interface StrategyConfigDao extends BaseMapper<StrategyConfigDO> {
/**
* 根据公司ID删除
* @param companyId 公司ID
*/
void deleteByCompanyId(@Param("companyId") Integer companyId);
/**
* 获取未禁用配置策略
* @param equipmentId
* @param state
* @return
*/
List<StrategyIssuedBO> listStrategyIdByEquipmentId(@Param("equipmentId") Integer equipmentId, @Param("state") Integer state, @Param("issuedState") Integer issuedState);
/**
* 策略列表
* @param strategyQueryQO
* @return
*/
List<StrategyVO> listStrategy(StrategyQueryQO strategyQueryQO);
}
\ No newline at end of file
package com.skr.mdm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.skr.mdm.entity.StrategyConfigInfoDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
* 策略配置时间段表(StrategyConfigInfo)表数据库访问层
*
* @author nfq
* @since 2020-08-26 10:26:49
*/
@Repository
public interface StrategyConfigInfoDao extends BaseMapper<StrategyConfigInfoDO> {
/**
* 根据公司ID删除
* @param companyId 公司ID
*/
void deleteByCompanyId(@Param("companyId") Integer companyId);
}
\ No newline at end of file
package com.skr.mdm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.skr.mdm.entity.StrategyConfigInfoListDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface StrategyConfigInfoListDao extends BaseMapper<StrategyConfigInfoListDO> {
void deleteByCompanyId(@Param("companyId") Integer companyId);
int deleteByPrimaryKey(Integer id);
int insert(StrategyConfigInfoListDO record);
int insertSelective(StrategyConfigInfoListDO record);
StrategyConfigInfoListDO selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(StrategyConfigInfoListDO record);
int updateByPrimaryKey(StrategyConfigInfoListDO record);
}
\ No newline at end of file
package com.skr.mdm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.skr.mdm.bean.qo.controller.LargeScreenQO;
import com.skr.mdm.bean.vo.strategy.StrategyUserVO;
import com.skr.mdm.entity.StrategyConfigUserDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
/**
* 策略作用人(StrategyConfigUser)表数据库访问层
*
* @author nfq
* @since 2020-08-03 16:58:13
*/
@Repository
public interface StrategyConfigUserDao extends BaseMapper<StrategyConfigUserDO> {
/**
* 根据设备ID删除
* @param equipmentIdList 设备ID集合
*/
void deleteByEquipmentIdList(@Param("equipmentIdList") List<Integer> equipmentIdList);
/**
* 批量添加
* @param list
*/
void insertBatch(@Param("list") List<StrategyConfigUserDO> list);
/**
* 配置策略作用人列表
* @param strategyId
* @return
*/
List<StrategyUserVO> listStrategyUser(@Param("strategyId") Integer strategyId,
@Param("searchType") Integer searchType,
@Param("searchValue") String searchValue);
/**
* 批量更新
* @param list
*/
void updateBatch(@Param("list") List<StrategyConfigUserDO> list);
/**
* 批量更新设备状态
* @param strategyId
* @param equipmentIdList
* @param issuedTime
* @param state
* @return
*/
int updateStateByStrategyId(@Param("strategyId") Integer strategyId, @Param("equipmentIdList") List<Integer> equipmentIdList, @Param("issuedTime") Date issuedTime, @Param("state") Integer state);
/**
* 获取策略设备id
* @param list
* @return
*/
List<Integer> listEquipmentIdByStrategyIds(@Param("list") List<Integer> list);
List<Integer> queryConfigStrategyStatistics(LargeScreenQO largeScreenQO);
void insertStrategyConfigUser(@Param("deviceIdList") List<Integer> deviceIdList, @Param("id") Integer id);
List<Integer> listStrategyIdListByEquipmentId(@Param("deviceIdList") List<Integer> deviceIdList);
}
\ No newline at end of file
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......@@ -55,14 +55,12 @@ public class AppStrategyDO implements Serializable {
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
private static final long serialVersionUID = 1L;
......
......@@ -39,7 +39,6 @@ public class AppTypeDO implements Serializable {
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
private static final long serialVersionUID = 1L;
......
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......@@ -31,8 +31,7 @@ public class AuCompanyStatisticsDO implements Serializable {
private String createTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
private static final long serialVersionUID = 1L;
......
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......@@ -78,7 +78,6 @@ public class ContentDocumentDO implements Serializable {
* 文档有效期 全局时有效
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date validTime;
private Date createTime;
......
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
......
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
/**
* 策略配置时间段表(StrategyConfigInfo)实体类
*
* @author nfq
* @since 2020-08-26 10:26:49
*/
@Data
@Builder
@TableName(value = "strategy_config_info")
public class StrategyConfigInfoDO {
private static final long serialVersionUID = 923413920595924851L;
private Integer id;
private Integer strategyId;
private Integer isTimeLimit;
/**
* 法定节假日 1-7:(周一到周日,中间用逗号隔开)
*/
private String workDate;
/**
* 同一时间段开始时间
*/
private Date beginDate;
/**
* 同一时间段结束时间
*/
private Date endDate;
private Date beginTime;
private Date endTime;
private Integer companyId;
private Date createTime;
private Date updateTime;
}
\ No newline at end of file
package com.skr.mdm.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* 策略配置时间段表
* strategy_config_info_list
*/
@Data
@TableName("strategy_config_info_list")
public class StrategyConfigInfoListDO implements Serializable {
private Integer id;
private Integer strategyId;
/**
* 1:usb 2:蓝牙 3:热点 4:wifi
*/
private Integer strategyType;
/**
* 0:无 1:黑 2:白
*/
private Integer type;
/**
* 配置名黑白名单表
*/
private Object msg;
private Integer companyId;
private Date createTime;
private Date updateTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 策略作用人(StrategyConfigUser)实体类
*
* @author nfq
* @since 2020-08-03 16:58:12
*/
@Builder
@Data
@TableName("strategy_config_user")
public class StrategyConfigUserDO implements Serializable {
private static final long serialVersionUID = 456010988835389133L;
private Integer id;
private Integer strategyId;
/**
* 设备id
*/
private Integer equipmentId;
/**
* 状态 1:下发中 2:下发成功 3:执行中 4:执行成功
*/
private Integer state;
/**
* 1:管控中 2:未管控
*/
private Integer mdmStatus;
/**
* 下发时间
*/
private Date issuedTime;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
\ No newline at end of file
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......@@ -51,14 +50,11 @@ public class SysChangeCertificateDO implements Serializable {
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date beginTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
......@@ -82,11 +78,9 @@ public class SysChangeCertificateDO implements Serializable {
private Integer companyId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
private static final long serialVersionUID = 1L;
......
package com.skr.mdm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......
......@@ -269,7 +269,7 @@
FROM device_equipment de
JOIN au_user au on de.user_id = au.id
JOIN au_admin_department aad on au.department_id = aad.department_id
left join device_equipment_info dei on de.id = dei.equipment_id
left join device_equipment_info_copy dei on de.id = dei.equipment_id
WHERE de.is_delete = 0 AND de.company_id = #{companyId} AND aad.admin_id = #{adminId}
<if test="boundState != null">
AND de.bound_state = #{boundState}
......
......@@ -23,12 +23,12 @@
where id = #{id,jdbcType=INTEGER}
</select>
<select id="selectSendInfoList" resultType="com.skr.mdm.bean.vo.equipment.SendCmdMessageInfoVO">
SELECT dika.id, dika.create_time as sendTime, dika.cmd_type as isForce, dika.state AS state
,de.user_name ,de.equipment_name ,de.imei ,de.uuid ,de.oaid,
SELECT dika.id, dika.create_time as sendTime, dika.state AS state
,de.user_name ,de.equipment_name ,de.serial_number ,de.uuid ,de.oaid,
de.department_name
FROM device_instruct_keep_alive dika
INNER JOIN device_equipment de ON de.id = dika.equipment_id
WHERE de.is_delete = 0 and de.company_id = #{companyId}
WHERE de.is_delete = 0 and de.company_id = #{companyId} and dika.cmd_type = #{cmdType}
<if test="searchType == 1 ">
AND de.user_name like concat('%',#{searchValue},'%')
</if>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.skr.mdm.dao.StrategyConfigDao">
<resultMap id="BaseResultMap" type="com.skr.mdm.entity.StrategyConfigDO">
<!--@Table strategy_config-->
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="strategyName" column="strategy_name" jdbcType="VARCHAR"/>
<result property="state" column="state" jdbcType="INTEGER"/>
<result property="actionScope" column="action_scope" jdbcType="INTEGER"/>
<result property="rail" column="is_rail" jdbcType="INTEGER"/>
<result property="longitude" column="longitude" jdbcType="VARCHAR"/>
<result property="latitude" column="latitude" jdbcType="VARCHAR"/>
<result property="locs" column="locs" jdbcType="VARCHAR"/>
<result property="radius" column="radius" jdbcType="VARCHAR"/>
<result property="operator" column="operator" jdbcType="VARCHAR"/>
<result property="companyId" column="company_id" jdbcType="INTEGER"/>
<result property="globalType" column="global_type" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<delete id="deleteByCompanyId">
delete
from strategy_config
where company_id = #{companyId}
</delete>
<select id="listStrategyIdByEquipmentId" resultType="com.skr.mdm.bean.bo.StrategyIssuedBO">
select t2.strategy_id, t2.issued_time as sendTime, t1.operate_time from strategy_config t1 join strategy_config_user t2 on t1.id = t2.strategy_id
where t2.equipment_id = #{equipmentId} and t1.state != #{state} and t2.state != #{issuedState}
</select>
<select id="listStrategy" resultType="com.skr.mdm.bean.vo.strategy.StrategyVO">
select t1.id, t1.global_type, t1.strategy_name, t1.state, t1.operate_time, t1.operator, 2 as strategyType,
t1.department_ids from strategy_config t1
left join strategy_config_user t2 on t1.id = t2.strategy_id
left join device_equipment t3 on t2.equipment_id = t3.id
where t1.company_id = #{companyId}
<if test="searchType == 1">
and t1.strategy_name like concat(concat('%', #{searchValue}), '%')
</if>
<if test="searchType == 2">
and date_format(t1.create_time, '%Y-%m-%d') = #{searchValue}
</if>
<if test="searchType == 3">
and t3.user_name like concat(concat('%', #{searchValue}), '%')
</if>
group by t1.id
order by t1.operate_time desc
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.skr.mdm.dao.StrategyConfigInfoDao">
<resultMap id="BaseResultMap" type="com.skr.mdm.entity.StrategyConfigInfoDO">
<!--@Table strategy_config_info-->
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="strategyId" column="strategy_id" jdbcType="INTEGER"/>
<result property="isTimeLimit" column="is_time_limit" jdbcType="INTEGER"/>
<result property="workDate" column="work_Date" jdbcType="VARCHAR"/>
<result property="beginTime" column="begin_time" jdbcType="TIMESTAMP"/>
<result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
<result property="companyId" column="company_id" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<delete id="deleteByCompanyId">
delete
from strategy_config_info
where company_id = #{companyId}
</delete>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.skr.mdm.dao.StrategyConfigInfoListDao">
<resultMap id="BaseResultMap" type="com.skr.mdm.entity.StrategyConfigInfoListDO">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="strategy_id" jdbcType="INTEGER" property="strategyId" />
<result column="strategy_type" jdbcType="TINYINT" property="strategyType" />
<result column="type" jdbcType="TINYINT" property="type" />
<result column="msg" jdbcType="OTHER" property="msg" />
<result column="company_id" jdbcType="INTEGER" property="companyId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
id, strategy_id, strategy_type, `type`, msg, company_id, create_time, update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from strategy_config_info_list
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from strategy_config_info_list
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByCompanyId">
delete
from strategy_config_info_list
where company_id = #{companyId}
</delete>
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.skr.mdm.entity.StrategyConfigInfoListDO" useGeneratedKeys="true">
insert into strategy_config_info_list (strategy_id, strategy_type, `type`,
msg, company_id, create_time,
update_time)
values (#{strategyId,jdbcType=INTEGER}, #{strategyType,jdbcType=TINYINT}, #{type,jdbcType=TINYINT},
#{msg,jdbcType=OTHER}, #{companyId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.skr.mdm.entity.StrategyConfigInfoListDO" useGeneratedKeys="true">
insert into strategy_config_info_list
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="strategyId != null">
strategy_id,
</if>
<if test="strategyType != null">
strategy_type,
</if>
<if test="type != null">
`type`,
</if>
<if test="msg != null">
msg,
</if>
<if test="companyId != null">
company_id,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="strategyId != null">
#{strategyId,jdbcType=INTEGER},
</if>
<if test="strategyType != null">
#{strategyType,jdbcType=TINYINT},
</if>
<if test="type != null">
#{type,jdbcType=TINYINT},
</if>
<if test="msg != null">
#{msg,jdbcType=OTHER},
</if>
<if test="companyId != null">
#{companyId,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.skr.mdm.entity.StrategyConfigInfoListDO">
update strategy_config_info_list
<set>
<if test="strategyId != null">
strategy_id = #{strategyId,jdbcType=INTEGER},
</if>
<if test="strategyType != null">
strategy_type = #{strategyType,jdbcType=TINYINT},
</if>
<if test="type != null">
`type` = #{type,jdbcType=TINYINT},
</if>
<if test="msg != null">
msg = #{msg,jdbcType=OTHER},
</if>
<if test="companyId != null">
company_id = #{companyId,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.skr.mdm.entity.StrategyConfigInfoListDO">
update strategy_config_info_list
set strategy_id = #{strategyId,jdbcType=INTEGER},
strategy_type = #{strategyType,jdbcType=TINYINT},
`type` = #{type,jdbcType=TINYINT},
msg = #{msg,jdbcType=OTHER},
company_id = #{companyId,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.skr.mdm.dao.StrategyConfigUserDao">
<resultMap id="BaseResultMap" type="com.skr.mdm.entity.StrategyConfigUserDO">
<!--@Table strategy_config_user-->
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="strategyId" column="strategy_id" jdbcType="INTEGER"/>
<result property="equipmentId" column="equipment_id" jdbcType="INTEGER"/>
<result property="state" column="state" jdbcType="INTEGER"/>
<result property="mdmStatus" column="mdm_status" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<delete id="deleteByEquipmentIdList">
delete from strategy_config_user where equipment_id in
<foreach collection="equipmentIdList" open="(" close=")" separator="," item="equipmentId">
#{equipmentId}
</foreach>
</delete>
<insert id="insertBatch">
insert into strategy_config_user(strategy_id, equipment_id, state, issued_time) VALUES
<foreach collection="list" separator="," item="item">
(#{item.strategyId}, #{item.equipmentId}, #{item.state}, #{item.issuedTime})
</foreach>
</insert>
<insert id="insertStrategyConfigUser">
insert into strategy_config_user(strategy_id, equipment_id, state, issued_time) VALUES
<foreach collection="deviceIdList" separator="," item="equipmentId">
(#{id}, #{equipmentId}, 1, now())
</foreach>
</insert>
<select id="listStrategyUser" resultType="com.skr.mdm.bean.vo.strategy.StrategyUserVO">
select t1.id, t2.user_name, t1.equipment_id, t2.equipment_name, t2.equipment_model, t2.department_name, t1.state, t1.issued_time
from strategy_config_user t1
join device_equipment t2 on t1.equipment_id = t2.id
where t1.strategy_id = #{strategyId}
<if test="searchType == 1">
and t2.user_name like concat(concat('%', #{searchValue}), '%')
</if>
<if test="searchType == 2">
and t2.equipment_name like concat(concat('%', #{searchValue}), '%')
</if>
<if test="searchType == 3">
and t2.department_name like concat(concat('%', #{searchValue}), '%')
</if>
<if test="searchType == 4">
and t2.imei like concat(concat('%', #{searchValue}), '%')
</if>
<if test="searchType == 5">
and t1.state = #{searchValue}
</if>
order by t1.issued_time desc, t1.id
</select>
<update id="updateBatch">
<foreach collection="list" separator=";" item="item">
update strategy_config_user set
state = #{item.state},
issued_time = #{item.issuedTime}
where strategy_id = #{item.strategyId} and equipment_id = #{item.equipmentId}
</foreach>
</update>
<update id="updateStateByStrategyId">
update strategy_config_user
set state = #{state},
issued_time = #{issuedTime}
where strategy_id = #{strategyId}
and equipment_id in
<foreach collection="equipmentIdList" open="(" close=")" item="equipmentId" separator=",">
#{equipmentId}
</foreach>
</update>
<select id="listEquipmentIdByStrategyIds" resultType="java.lang.Integer">
select equipment_id from strategy_config_user where strategy_id in
<foreach collection="list" open="(" close=")" separator="," item="strategyId">
#{strategyId}
</foreach>
</select>
<select id="queryConfigStrategyStatistics" resultType="integer">
SELECT scu.state
FROM strategy_config sc
JOIN strategy_config_user scu ON sc.id = scu.strategy_id
WHERE sc.company_id = #{companyId}
<if test="startTime != null and startTime != '' ">
AND scu.update_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != '' ">
AND scu.update_time &lt;= #{endTime}
</if>
</select>
<select id="listStrategyIdListByEquipmentId" resultType="java.lang.Integer">
SELECT strategy_id FROM strategy_config_user
WHERE equipment_id IN
<foreach collection="deviceIdList" item="deviceId" open="(" close=")" separator=",">
#{deviceId}
</foreach>
</select>
</mapper>
\ No newline at end of file
......@@ -27,7 +27,7 @@
where id = #{id,jdbcType=INTEGER}
</select>
<select id="listStrategy" resultType="com.skr.mdm.bean.vo.strategy.StrategyVO">
select t1.id, t1.global_type, t1.strategy_name, t1.state, t1.operate_time, t1.operator, 2 as strategyType,
select t1.id, t1.global_type, t1.strategy_name, t1.state, t1.operate_time, t1.operator, 4 as strategyType,
t1.department_ids from strategy_network_isolation t1
left join strategy_network_isolation_user t2 on t1.id = t2.strategy_id
left join device_equipment t3 on t2.equipment_id = t3.id
......
......@@ -18,4 +18,4 @@ public class StrategyManager {
.collect(Collectors.toList());
}
}
}
\ No newline at end of file
......@@ -89,4 +89,4 @@ public class AdminController {
LoginAdminDTO loginAdminDTO = (LoginAdminDTO) authentication.getPrincipal();
return adminService.lockOrUnlock(id, usable, loginAdminDTO);
}
}
}
\ No newline at end of file
......@@ -33,7 +33,7 @@ public class AppStrategyInstallSourceServiceImpl implements AppStrategyInfoServi
@Override
public void saveAppStrategy(AppStrategyQO appStrategyQO, Integer strategyId) {
saveAppStrategyInstallSource(appStrategyQO.getAppStrategyInstallSourceQO(), strategyId);
saveAppStrategyInstallSource(appStrategyQO.getAppStoreInstallSourceQO(), strategyId);
}
@Override
......@@ -82,4 +82,4 @@ public class AppStrategyInstallSourceServiceImpl implements AppStrategyInfoServi
}
}
}
}
}
\ No newline at end of file
......@@ -16,7 +16,6 @@ import java.util.concurrent.ConcurrentHashMap;
*/
@Slf4j
@Component
@Deprecated
public class CmdAdminHandlerFactory implements BeanPostProcessor {
private static final Map<String, CmdAdminProcessHandler> CMD_ADMIN_MAP = new ConcurrentHashMap<>(16);
......
......@@ -24,9 +24,12 @@ import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
......
......@@ -37,13 +37,6 @@ public class CmdKeepAliveHandler implements CmdAdminProcessHandler {
@Override
public ResponseResult cmdUserInfo(CmdQO cmdQO) {
List<SendCmdMessageInfoVO> sendCmdMessageInfoVOList = deviceInstructKeepAliveDao.selectSendInfoList(cmdQO);
// 锁屏类型时 更改离线解锁码
if (CmdAdminEnum.LOCK_SCREEN.getCmdValue().equals(cmdQO.getCmdType())) {
for (SendCmdMessageInfoVO sendCmdMessageInfoVO : sendCmdMessageInfoVOList) {
// 随机码转换为离线解锁码
sendCmdMessageInfoVO.setOfflineUnlockCode(HmacShaUtils.getCode(sendCmdMessageInfoVO.getOfflineUnlockCode()));
}
}
return ResponseResult.success(PageUtil.getPageResult(sendCmdMessageInfoVOList));
}
}
\ No newline at end of file
......@@ -7,7 +7,6 @@ import com.skr.mdm.result.ResponseResult;
import java.util.List;
@Deprecated
public interface CmdManageService {
ResponseResult cmdHandle(CmdPushQO cmdPushQO, LoginAdminDTO loginAdminDTO);
......
......@@ -73,6 +73,7 @@ public class FunctionScopeServiceImpl implements FunctionScopeService {
public List<Map<String, Object>> menuTree(Integer parentId, Integer functionScopeId) {
List<AuPermissionDO> permissionDOList = new LambdaQueryChainWrapper<>(permissionDao)
.eq(AuPermissionDO::getUsable, 1)
.orderByAsc(AuPermissionDO::getOrderNum)
.list();
if (CollectionUtils.isNotEmpty(permissionDOList)) {
List<Integer> permissionIdList = new LambdaQueryChainWrapper<>(functionScopePermissionDao)
......@@ -188,4 +189,4 @@ public class FunctionScopeServiceImpl implements FunctionScopeService {
.update();
return ResponseResult.success();
}
}
}
\ No newline at end of file
......@@ -19,6 +19,7 @@ import com.skr.mdm.dao.DeviceEquipmentDao;
import com.skr.mdm.entity.AuUserDO;
import com.skr.mdm.entity.DeviceEquipmentDO;
import com.skr.mdm.enums.DeleteStateEnum;
import com.skr.mdm.enums.EquipmentTypeEnum;
import com.skr.mdm.manager.oss.MinIoManager;
import com.skr.mdm.util.RegisterEquipmentUtil;
import com.skr.mdm.util.ServerSystemUtil;
......@@ -271,7 +272,7 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
equipmentDO.setEquipmentName(equipmentName);
equipmentDO.setUserId(userDO.getId());
equipmentDO.setUserName(userDO.getUserName());
equipmentDO.setEquipmentType(1);
equipmentDO.setEquipmentType(EquipmentTypeEnum.PC.getType());
equipmentDO.setSerialNumber(data.getSerialNum());
equipmentDO.setDepartmentId(userDO.getDepartmentId());
equipmentDO.setDepartmentName(userDO.getDepartmentName());
......
......@@ -99,6 +99,8 @@ public class DeviceAssetServiceImpl implements DeviceAssetService {
indexEquipmentTypeVO.setRecorderCount(indexEquipmentTypeVO.getRecorderCount() + 1);
} else if (EquipmentTypeEnum.WATCHES.getType().equals(equipmentType)) {
indexEquipmentTypeVO.setWatchesCount(indexEquipmentTypeVO.getWatchesCount() + 1);
} else if (EquipmentTypeEnum.PC.getType().equals(equipmentType)) {
indexEquipmentTypeVO.setPcCount(indexEquipmentTypeVO.getOtherCount() + 1);
} else if (EquipmentTypeEnum.OTHER.getType().equals(equipmentType)) {
indexEquipmentTypeVO.setOtherCount(indexEquipmentTypeVO.getOtherCount() + 1);
}
......@@ -115,4 +117,4 @@ public class DeviceAssetServiceImpl implements DeviceAssetService {
.build();
return ResponseResult.success(deviceAssetInfoVO);
}
}
}
\ No newline at end of file
package com.skr.mdm.api.strategy.controller;
import com.skr.mdm.api.strategy.service.ConfigStrategyService;
import com.skr.mdm.api.strategy.service.NetworkIsolationStrategyService;
import com.skr.mdm.bean.qo.StrategyUserQO;
import com.skr.mdm.bean.qo.strategy.ConfigStrategyQO;
import com.skr.mdm.bean.qo.strategy.StrategyNetworkIsolationQO;
import com.skr.mdm.dto.LoginAdminDTO;
import com.skr.mdm.result.ResponseResult;
import io.swagger.annotations.Api;
......@@ -36,32 +35,32 @@ public class NetworkIsolationStrategyController {
@PostMapping("add")
@ApiOperation(value = "创建")
@PreAuthorize("hasAnyAuthority('sys:strategy:config:add')")
public ResponseResult addStrategy(@RequestBody @Valid ConfigStrategyQO configStrategyQO,
@PreAuthorize("hasAnyAuthority('sys:strategy:network:add')")
public ResponseResult addStrategy(@RequestBody @Valid StrategyNetworkIsolationQO networkIsolationQO,
@ApiIgnore Authentication authentication) {
LoginAdminDTO loginAdminDTO = (LoginAdminDTO) authentication.getPrincipal();
return networkIsolationStrategyService.addStrategy(configStrategyQO, loginAdminDTO);
return networkIsolationStrategyService.addStrategy(networkIsolationQO, loginAdminDTO);
}
@PostMapping("update")
@ApiOperation(value = "编辑")
@PreAuthorize("hasAnyAuthority('sys:strategy:update')")
public ResponseResult updateStrategy(@RequestBody @Valid ConfigStrategyQO configStrategyQO,
@PreAuthorize("hasAnyAuthority('sys:strategy:network:update')")
public ResponseResult updateStrategy(@RequestBody @Valid StrategyNetworkIsolationQO networkIsolationQO,
@ApiIgnore Authentication authentication) {
LoginAdminDTO loginAdminDTO = (LoginAdminDTO) authentication.getPrincipal();
return networkIsolationStrategyService.updateStrategy(configStrategyQO, loginAdminDTO);
return networkIsolationStrategyService.updateStrategy(networkIsolationQO, loginAdminDTO);
}
@PostMapping("user/list")
@ApiOperation(value = "作用人列表")
@PreAuthorize("hasAnyAuthority('sys:strategy:user:list')")
@PreAuthorize("hasAnyAuthority('sys:strategy:network:list')")
public ResponseResult listStrategyUser(@RequestBody @Valid StrategyUserQO strategyUserQO) {
return networkIsolationStrategyService.listStrategyUser(strategyUserQO);
}
@PostMapping("user/delete")
@ApiOperation(value = "作用人删除")
@PreAuthorize("hasAnyAuthority('sys:strategy:user:delete')")
@PreAuthorize("hasAnyAuthority('sys:strategy:network:user:delete')")
public ResponseResult deleteStrategyUser(@RequestParam @NotNull(message = "策略ID不能为空") Integer strategyId,
@RequestParam @NotEmpty(message = "设备ID不能为空") List<Integer> equipmentIdList,
@ApiIgnore Authentication authentication) {
......@@ -71,7 +70,7 @@ public class NetworkIsolationStrategyController {
@PostMapping("state/change")
@ApiOperation(value = "启用禁用")
@PreAuthorize("hasAnyAuthority('sys:strategy:able')")
@PreAuthorize("hasAnyAuthority('sys:strategy:network:able')")
public ResponseResult updateStrategyState(@RequestParam @NotNull(message = "策略ID不能为空") Integer strategyId,
@RequestParam @NotNull(message = "策略状态不能为空") Integer state,
@ApiIgnore Authentication authentication) {
......
......@@ -6,7 +6,7 @@ import com.skr.mdm.bean.vo.strategy.StrategyVO;
import java.util.List;
public interface ConfigStrategyService {
public interface ConfigStrategyService extends DefaultStrategyService{
List<StrategyVO> listStrategy(StrategyQueryQO strategyQueryQO);
}
\ No newline at end of file
package com.skr.mdm.api.strategy.service.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.skr.mdm.api.strategy.service.ConfigStrategyService;
import com.skr.mdm.api.template.AbstractDefaultStrategyService;
import com.skr.mdm.bean.qo.BaseStrategyQO;
import com.skr.mdm.bean.qo.StrategyQueryQO;
import com.skr.mdm.bean.qo.strategy.*;
import com.skr.mdm.bean.so.strategy.ConfigStrategySO;
import com.skr.mdm.bean.vo.strategy.ConfigStrategyInfoVO;
import com.skr.mdm.bean.vo.strategy.ConfigStrategyVO;
import com.skr.mdm.bean.vo.strategy.StrategyUserVO;
import com.skr.mdm.bean.vo.strategy.StrategyVO;
import com.skr.mdm.dao.*;
import com.skr.mdm.dto.LoginAdminDTO;
import com.skr.mdm.entity.*;
import com.skr.mdm.enums.*;
import com.skr.mdm.handle.IssuedUserHandler;
import com.skr.mdm.handle.LogAdminHandler;
import com.skr.mdm.manager.ConfigStrategyManager;
import com.skr.mdm.util.MdmListUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author nfq
......@@ -12,6 +44,425 @@ import org.springframework.stereotype.Service;
*/
@Service
@Slf4j
public class ConfigStrategyServiceImpl implements ConfigStrategyService {
public class ConfigStrategyServiceImpl extends AbstractDefaultStrategyService implements ConfigStrategyService {
private final String MODULE = "配置策略";
private ConfigStrategyQO configStrategyQO;
private StrategyConfigDO strategyConfigDO;
@Autowired
private StrategyConfigDao configStrategyDao;
@Autowired
private StrategyConfigInfoDao strategyConfigInfoDao;
@Autowired
private StrategyConfigUserDao configStrategyUserDao;
@Autowired
private LogAdminHandler logAdminHandler;
@Autowired
private IssuedUserHandler issuedUserHandler;
@Autowired
private DeviceEquipmentDao equipmentDao;
@Autowired
private StrategyConfigInfoListDao strategyConfigInfoListDao;
@Autowired
private ConfigStrategyManager configStrategyManager;
@Override
protected Object getStrategyInfo(Integer strategyId) {
StrategyConfigDO strategyConfigDO = configStrategyDao.selectById(strategyId);
ConfigStrategyVO configStrategyVO = new ConfigStrategyVO();
BeanUtils.copyProperties(strategyConfigDO, configStrategyVO);
List<StrategyConfigInfoDO> strategyConfigInfoDOList = new LambdaQueryChainWrapper<>(strategyConfigInfoDao)
.eq(StrategyConfigInfoDO::getStrategyId, strategyId)
.list();
List<ConfigStrategyInfoVO> configStrategyInfoVOList = new ArrayList<>(strategyConfigInfoDOList.size());
if (CollectionUtils.isNotEmpty(strategyConfigInfoDOList)) {
strategyConfigInfoDOList.forEach(strategyConfigInfoDO -> {
ConfigStrategyInfoVO configStrategyInfoVO = new ConfigStrategyInfoVO();
BeanUtils.copyProperties(strategyConfigInfoDO, configStrategyInfoVO);
configStrategyManager.getConfigStrategyInfoVO(strategyId, configStrategyInfoVO);
configStrategyInfoVOList.add(configStrategyInfoVO);
});
}
configStrategyVO.setConfigStrategyInfoVOList(configStrategyInfoVOList);
return configStrategyVO;
}
@Override
protected long strategyStateCheck(List<Integer> strategyIdList) {
return new LambdaQueryChainWrapper<>(configStrategyDao)
.eq(StrategyConfigDO::getState, StrategyStateEnum.DISABLE.getState())
.in(StrategyConfigDO::getId, strategyIdList)
.count();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateStrategyIssuedState(List<Integer> strategyIdList, BaseStrategyQO baseStrategyQO) {
new LambdaUpdateChainWrapper<>(configStrategyDao)
.set(StrategyConfigDO::getState, baseStrategyQO.getState())
.in(StrategyConfigDO::getId, strategyIdList)
.update();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateStrategyDeptGlobal(List<Integer> strategyIdList, List<Integer> departmentIdList) {
new LambdaUpdateChainWrapper<>(configStrategyDao)
.set(StrategyConfigDO::getDepartmentIds, JSONUtil.toJsonStr(departmentIdList))
.in(StrategyConfigDO::getId, strategyIdList)
.update();
}
@Override
protected List<Integer> getEquipmentIdListByStrategyIdList(List<Integer> strategyIdList) {
return configStrategyUserDao.listEquipmentIdByStrategyIds(strategyIdList);
}
@Override
protected List<Integer> getEquipmentIdListByStrategyIdListForDeptGlobal(List<Integer> strategyIdList) {
List<StrategyConfigDO> strategyConfigDOList = configStrategyDao.selectBatchIds(strategyIdList);
if (CollectionUtils.isNotEmpty(strategyConfigDOList) && StringUtils.isNotBlank(strategyConfigDOList.get(0).getDepartmentIds())) {
List<Integer> departmentIdList = JSONUtil.toList(JSONUtil.parseArray(
strategyConfigDOList.get(0).getDepartmentIds()), Integer.class);
if (CollectionUtils.isNotEmpty(departmentIdList)) {
return equipmentDao.listEquipmentIdByDepartmentIdList(departmentIdList);
}
}
return Collections.emptyList();
}
@Override
protected void adminLogIssuedStrategy(List<Integer> strategyIdList, BaseStrategyQO baseStrategyQO, LoginAdminDTO loginAdminDTO) {
String content = "";
List<StrategyConfigDO> strategyConfigDOList = configStrategyDao.selectBatchIds(strategyIdList);
if (CollectionUtils.isNotEmpty(strategyConfigDOList)) {
List<String> strategyNameList = strategyConfigDOList.stream().map(StrategyConfigDO::getStrategyName)
.collect(Collectors.toList());
content = "下发配置策略 策略名:" + StringUtils.join(strategyNameList, ",");
}
logAdminHandler.log(baseStrategyQO, loginAdminDTO, LogAdminTypeEnum.STRATEGY_TYPE.getLogType(), content, MODULE);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveStrategyUser(List<Integer> strategyIdList, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO) {
Date date = new Date();
strategyIdList.forEach(strategyId -> {
List<Integer> listEquipmentIdByStrategyIds = configStrategyUserDao.listEquipmentIdByStrategyIds(ListUtil.toList(strategyId));
List<Integer> addEquipmentIdList = MdmListUtil.difference(equipmentIdList, listEquipmentIdByStrategyIds);
List<Integer> updateEquipmentIdList = MdmListUtil.intersection(equipmentIdList, listEquipmentIdByStrategyIds);
// 新增
if (CollectionUtils.isNotEmpty(addEquipmentIdList)) {
List<StrategyConfigUserDO> strategyConfigUserDOList = new ArrayList<>(addEquipmentIdList.size());
addEquipmentIdList.forEach(equipmentId -> {
StrategyConfigUserDO railStrategyUserDO = StrategyConfigUserDO.builder()
.equipmentId(equipmentId)
.strategyId(strategyId)
.state(StrategyEquipmentStateEnum.ISSUING.getState())
.issuedTime(date)
.build();
strategyConfigUserDOList.add(railStrategyUserDO);
});
configStrategyUserDao.insertBatch(strategyConfigUserDOList);
}
// 更新
if (CollectionUtils.isNotEmpty(updateEquipmentIdList)) {
new LambdaUpdateChainWrapper<>(configStrategyUserDao)
.set(StrategyConfigUserDO::getState, StrategyEquipmentStateEnum.ISSUING.getState())
.set(StrategyConfigUserDO::getIssuedTime, date)
.eq(StrategyConfigUserDO::getStrategyId, strategyId)
.in(StrategyConfigUserDO::getEquipmentId, updateEquipmentIdList)
.update();
}
});
}
@Override
@Transactional(rollbackFor = Exception.class)
public void doIssuedStrategy(List<Integer> strategyIdList, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO) {
long currentTimeMillis = System.currentTimeMillis();
List<ConfigStrategySO> configStrategySOList = configStrategyManager.getConfigStrategySO(strategyIdList, currentTimeMillis);
if (CollectionUtils.isNotEmpty(configStrategySOList)) {
issuedUserHandler.issuedUser(equipmentIdList, loginAdminDTO.getCompanyId(), StrategyCmdEnum.ISSUED_CONFIG_STRATEGY.getCmd(),
JSONUtil.toJsonStr(configStrategySOList));
}
}
@Override
protected long checkDuplicateStrategy(Object operationObject, LoginAdminDTO loginAdminDTO) {
this.configStrategyQO = (ConfigStrategyQO) operationObject;
return new LambdaQueryChainWrapper<>(configStrategyDao)
.eq(StrategyConfigDO::getStrategyName, configStrategyQO.getStrategyName())
.eq(StrategyConfigDO::getCompanyId, loginAdminDTO.getCompanyId())
.ne(configStrategyQO.getId() != null, StrategyConfigDO::getId, configStrategyQO.getId())
.count();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer saveStrategy(Object operationObject, LoginAdminDTO loginAdminDTO) {
StrategyConfigDO strategyConfigDO = StrategyConfigDO.builder()
.companyId(loginAdminDTO.getCompanyId())
.operator(loginAdminDTO.getAdminName())
.operateTime(new Date())
.departmentIds("")
.build();
BeanUtils.copyProperties(configStrategyQO, strategyConfigDO);
if (IssuedTypeEnum.DEPT_GLOBAL.getIssuedType().equals(configStrategyQO.getGlobalType()) &&
CollectionUtils.isNotEmpty(configStrategyQO.getCandidateIdList())) {
strategyConfigDO.setDepartmentIds(JSONUtil.toJsonStr(configStrategyQO.getCandidateIdList()));
}
configStrategyDao.insert(strategyConfigDO);
// 添加配置策略信息
if (CollectionUtils.isNotEmpty(configStrategyQO.getConfigStrategyInfoQOList())) {
configStrategyQO.getConfigStrategyInfoQOList().forEach(configStrategyInfoQO -> {
addConfigStrategyInfo(configStrategyInfoQO, loginAdminDTO.getCompanyId(), strategyConfigDO.getId());
});
}
return strategyConfigDO.getId();
}
@Override
protected void adminLogAddStrategy(LoginAdminDTO loginAdminDTO) {
String logContent = "配置策略 策略名:" + configStrategyQO.getStrategyName();
if (configStrategyQO.getId() == null) {
logContent = "创建" + logContent;
} else {
logContent = "编辑" + logContent;
}
logAdminHandler.log(loginAdminDTO, LogAdminTypeEnum.STRATEGY_TYPE.getLogType(), logContent, MODULE, Collections.emptyList());
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updateStrategyById(Object operationObject, LoginAdminDTO loginAdminDTO) {
StrategyConfigDO strategyConfigDO = StrategyConfigDO.builder()
.operator(loginAdminDTO.getAdminName())
.operateTime(new Date())
.build();
BeanUtils.copyProperties(configStrategyQO, strategyConfigDO);
if (IssuedTypeEnum.DEPT_GLOBAL.getIssuedType().equals(configStrategyQO.getGlobalType()) &&
CollectionUtils.isNotEmpty(configStrategyQO.getCandidateIdList())) {
strategyConfigDO.setDepartmentIds(JSONUtil.toJsonStr(configStrategyQO.getCandidateIdList()));
}
configStrategyDao.updateById(strategyConfigDO);
if (CollectionUtils.isNotEmpty(configStrategyQO.getConfigStrategyInfoQOList())) {
// 删除重新添加
deleteConfigStrategyInfo(ListUtil.toList(configStrategyQO.getId()));
configStrategyQO.getConfigStrategyInfoQOList().forEach(configStrategyInfoQO -> {
addConfigStrategyInfo(configStrategyInfoQO, loginAdminDTO.getCompanyId(), strategyConfigDO.getId());
});
}
return strategyConfigDO.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void issuedStrategyDelete(List<Integer> strategyIdList, LoginAdminDTO loginAdminDTO) {
List<Integer> listEquipmentIdByStrategyIds = configStrategyUserDao.listEquipmentIdByStrategyIds(strategyIdList);
issuedUserHandler.issuedUser(listEquipmentIdByStrategyIds, loginAdminDTO.getCompanyId(),
StrategyCmdEnum.DELETE_CONFIG_STRATEGY.getCmd(), JSONUtil.toJsonStr(strategyIdList));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void doDeleteStrategy(List<Integer> strategyIdList) {
deleteConfigStrategyInfo(strategyIdList);
configStrategyDao.deleteBatchIds(strategyIdList);
configStrategyUserDao.delete(Wrappers.lambdaQuery(StrategyConfigUserDO.class)
.in(StrategyConfigUserDO::getStrategyId, strategyIdList));
}
@Override
protected void adminLogDeleteStrategy(List<Integer> strategyIdList, LoginAdminDTO loginAdminDTO) {
strategyIdList.forEach(strategyId -> {
StrategyConfigDO configDO = configStrategyDao.selectById(strategyId);
List<Integer> listEquipmentIdByStrategyIds = configStrategyUserDao.listEquipmentIdByStrategyIds(Collections.singletonList(strategyId));
String content = "删除配置策略 策略名:" + configDO.getStrategyName();
logAdminHandler.log(loginAdminDTO, LogAdminTypeEnum.STRATEGY_TYPE.getLogType(), content, MODULE, listEquipmentIdByStrategyIds);
});
}
@Override
@Transactional(rollbackFor = Exception.class)
public void doUpdateStrategyState(Integer strategyId, Integer state, LoginAdminDTO loginAdminDTO) {
new LambdaUpdateChainWrapper<>(configStrategyDao)
.set(state != null, StrategyConfigDO::getState, state)
.set(StrategyConfigDO::getOperator, loginAdminDTO.getAdminName())
.set(StrategyConfigDO::getOperateTime, new Date())
.eq(StrategyConfigDO::getId, strategyId)
.update();
}
@Override
protected BaseStrategyQO createBaseStrategyQO(Integer strategyId) {
StrategyConfigDO configStrategyDO = configStrategyDao.selectById(strategyId);
if (configStrategyDO == null) {
return null;
}
this.strategyConfigDO = configStrategyDO;
BaseStrategyQO baseStrategyQO = new BaseStrategyQO();
baseStrategyQO.setState(configStrategyDO.getState());
baseStrategyQO.setGlobalType(configStrategyDO.getGlobalType());
return baseStrategyQO;
}
@Override
protected void adminLogUpdateStrategyState(Integer strategyId, Integer state, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO) {
String logContent = "配置策略 策略名:" + strategyConfigDO.getStrategyName();
if (StrategyStateEnum.ISSUED.getState().equals(state)) {
logContent = "启用" + logContent;
}
if (StrategyStateEnum.DISABLE.getState().equals(state)) {
logContent = "禁用" + logContent;
}
logAdminHandler.log(loginAdminDTO, LogAdminTypeEnum.STRATEGY_TYPE.getLogType(), logContent, MODULE, equipmentIdList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void issuedStrategyState(Integer strategyId, Integer state, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO) {
if (CollectionUtils.isNotEmpty(equipmentIdList)) {
String cmdType = "";
if (StrategyStateEnum.ISSUED.getState().equals(state)) {
cmdType = StrategyCmdEnum.ENABLE_CONFIG_STRATEGY.getCmd();
}
if (StrategyStateEnum.DISABLE.getState().equals(state)) {
cmdType = StrategyCmdEnum.DISABLE_CONFIG_STRATEGY.getCmd();
}
List<ConfigStrategySO> configStrategySOList = configStrategyManager.getConfigStrategySO(ListUtil.toList(strategyId), System.currentTimeMillis());
if (CollectionUtils.isNotEmpty(configStrategySOList)) {
issuedUserHandler.issuedUser(equipmentIdList, loginAdminDTO.getCompanyId(), cmdType, JSONUtil.toJsonStr(configStrategySOList));
}
}
}
@Override
protected List<StrategyUserVO> getStrategyUserList(Integer strategyId, Integer searchType, String searchValue) {
return configStrategyUserDao.listStrategyUser(strategyId, searchType, searchValue);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void issuedStrategyUserDelete(Integer strategyId, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO) {
issuedUserHandler.issuedUser(equipmentIdList, loginAdminDTO.getCompanyId(), StrategyCmdEnum.DELETE_CONFIG_STRATEGY.getCmd(), JSONUtil.toJsonStr(ListUtil.toList(strategyId)));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void doDeleteStrategyUser(Integer strategyId, List<Integer> equipmentIdList) {
configStrategyUserDao.delete(
Wrappers.lambdaQuery(StrategyConfigUserDO.class)
.eq(StrategyConfigUserDO::getStrategyId, strategyId)
.in(StrategyConfigUserDO::getEquipmentId, equipmentIdList));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void adminLogDeleteStrategyUser(Integer strategyId, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO) {
StrategyConfigDO configStrategyDO = configStrategyDao.selectById(strategyId);
if (configStrategyDO == null) {
log.warn("configStrategyDO 不应该为null");
return;
}
String content = "配置策略作用人删除 策略名:" + configStrategyDO.getStrategyName();
logAdminHandler.log(loginAdminDTO, LogAdminTypeEnum.STRATEGY_TYPE.getLogType(), content, MODULE, equipmentIdList);
}
/**
* 添加配置策略信息
*
* @param configStrategyInfoQO
* @param companyId
* @param strategyId
*/
@Transactional(rollbackFor = Exception.class)
public void addConfigStrategyInfo(ConfigStrategyInfoQO configStrategyInfoQO, Integer companyId, Integer strategyId) {
saveBlackOrWhitelist(companyId, strategyId, configStrategyInfoQO.getBluetoothQO(),StrategyConfigEnum.BLUETOOTH);
saveBlackOrWhitelist(companyId, strategyId, configStrategyInfoQO.getUsbQO(),StrategyConfigEnum.USB);
saveBlackOrWhitelist(companyId, strategyId, configStrategyInfoQO.getHotSpotQO(),StrategyConfigEnum.HOT_SPOT);
saveBlackOrWhitelist(companyId, strategyId, configStrategyInfoQO.getWifiQO(),StrategyConfigEnum.WIFI);
configStrategyInfoQO.setStrategyId(strategyId);
if (Objects.nonNull(configStrategyInfoQO.getIsTimeLimit()) && configStrategyInfoQO.getIsTimeLimit() == 1) {
// 有时间限制
timeLimit(configStrategyInfoQO, companyId);
} else {
// 无时间限制
noTimeLimit(configStrategyInfoQO, companyId);
}
}
@Transactional(rollbackFor = Exception.class)
public void timeLimit(ConfigStrategyInfoQO configStrategyInfoQO, Integer companyId) {
String beginTime = configStrategyInfoQO.getBeginTime();
String endTime = configStrategyInfoQO.getEndTime();
if (StringUtils.isNotBlank(beginTime) && StringUtils.isNotBlank(endTime)) {
List<String> beginTimeList = StrUtil.split(beginTime, ";", 0, true, true);
List<String> endTimeList = StrUtil.split(endTime, ";", 0, true, true);
String beginDate = beginTimeList.get(0);
String endDate = endTimeList.get(endTimeList.size() - 1);
for (int i = 0; i < beginTimeList.size(); i++) {
String begin = beginTimeList.get(i);
String end = endTimeList.get(i);
StrategyConfigInfoDO configInfoDO = StrategyConfigInfoDO.builder()
.isTimeLimit(configStrategyInfoQO.getIsTimeLimit())
.beginDate(DateUtil.parse(beginDate))
.endDate(DateUtil.parse(endDate))
.beginTime(DateUtil.parse(begin))
.endTime(DateUtil.parse(end))
.workDate(configStrategyInfoQO.getWorkDate())
.strategyId(configStrategyInfoQO.getStrategyId())
.companyId(companyId)
.build();
strategyConfigInfoDao.insert(configInfoDO);
}
}
}
@Transactional(rollbackFor = Exception.class)
public void noTimeLimit(ConfigStrategyInfoQO configStrategyInfoQO, Integer companyId) {
StrategyConfigInfoDO configInfoDO = StrategyConfigInfoDO.builder()
.isTimeLimit(configStrategyInfoQO.getIsTimeLimit())
.workDate(configStrategyInfoQO.getWorkDate())
.strategyId(configStrategyInfoQO.getStrategyId())
.companyId(companyId)
.build();
strategyConfigInfoDao.insert(configInfoDO);
}
/**
* 配置策略信息删除
*
* @param strategyIdList
*/
@Transactional(rollbackFor = Exception.class)
public void deleteConfigStrategyInfo(List<Integer> strategyIdList) {
if (CollectionUtils.isNotEmpty(strategyIdList)) {
strategyConfigInfoDao.delete(Wrappers.lambdaQuery(StrategyConfigInfoDO.class)
.in(StrategyConfigInfoDO::getStrategyId, strategyIdList));
}
}
@Transactional(rollbackFor = Exception.class)
public void saveBlackOrWhitelist(Integer companyId, Integer strategyId, ConfigQO configQO, StrategyConfigEnum strategyConfigEnum) {
StrategyConfigInfoListDO strategyConfigInfoListDO = new StrategyConfigInfoListDO();
strategyConfigInfoListDO.setCompanyId(companyId);
strategyConfigInfoListDO.setStrategyId(strategyId);
strategyConfigInfoListDO.setStrategyType(strategyConfigEnum.getStrategyType());
strategyConfigInfoListDO.setType(configQO.getType());
strategyConfigInfoListDO.setMsg(JSONUtil.toJsonStr(configQO.getConfigList()));
strategyConfigInfoListDao.insertSelective(strategyConfigInfoListDO);
}
@Override
public List<StrategyVO> listStrategy(StrategyQueryQO strategyQueryQO) {
return configStrategyDao.listStrategy(strategyQueryQO);
}
}
\ No newline at end of file
......@@ -168,7 +168,7 @@ public class NetworkIsolationStrategyServiceImpl extends AbstractDefaultStrategy
long currentTimeMillis = System.currentTimeMillis();
List<NetworkIsoStrategySO> isoStrategySOList = isoStrategyManager.getStrategySO(strategyIdList, currentTimeMillis);
if (CollectionUtils.isNotEmpty(isoStrategySOList)) {
issuedUserHandler.issuedUser(equipmentIdList, loginAdminDTO.getCompanyId(), StrategyCmdEnum.ISSUED_CONFIG_STRATEGY.getCmd(),
issuedUserHandler.issuedUser(equipmentIdList, loginAdminDTO.getCompanyId(), StrategyCmdEnum.ISSUED_NETWORK_STRATEGY.getCmd(),
JSONUtil.toJsonStr(isoStrategySOList));
}
}
......@@ -197,7 +197,7 @@ public class NetworkIsolationStrategyServiceImpl extends AbstractDefaultStrategy
CollectionUtils.isNotEmpty(networkIsolationQO.getCandidateIdList())) {
strategyConfigDO.setDepartmentIds(JSONUtil.toJsonStr(networkIsolationQO.getCandidateIdList()));
}
networkIsolationDao.insert(strategyConfigDO);
networkIsolationDao.insertSelective(strategyConfigDO);
return strategyConfigDO.getId();
}
......@@ -233,7 +233,7 @@ public class NetworkIsolationStrategyServiceImpl extends AbstractDefaultStrategy
public void issuedStrategyDelete(List<Integer> strategyIdList, LoginAdminDTO loginAdminDTO) {
List<Integer> listEquipmentIdByStrategyIds = networkIsolationUserDao.listEquipmentIdByStrategyIds(strategyIdList);
issuedUserHandler.issuedUser(listEquipmentIdByStrategyIds, loginAdminDTO.getCompanyId(),
StrategyCmdEnum.DELETE_CONFIG_STRATEGY.getCmd(), JSONUtil.toJsonStr(strategyIdList));
StrategyCmdEnum.DELETE_NETWORK_STRATEGY.getCmd(), JSONUtil.toJsonStr(strategyIdList));
}
@Override
......@@ -296,10 +296,10 @@ public class NetworkIsolationStrategyServiceImpl extends AbstractDefaultStrategy
if (CollectionUtils.isNotEmpty(equipmentIdList)) {
String cmdType = "";
if (StrategyStateEnum.ISSUED.getState().equals(state)) {
cmdType = StrategyCmdEnum.ENABLE_CONFIG_STRATEGY.getCmd();
cmdType = StrategyCmdEnum.ENABLE_NETWORK_STRATEGY.getCmd();
}
if (StrategyStateEnum.DISABLE.getState().equals(state)) {
cmdType = StrategyCmdEnum.DISABLE_CONFIG_STRATEGY.getCmd();
cmdType = StrategyCmdEnum.DISABLE_NETWORK_STRATEGY.getCmd();
}
List<NetworkIsoStrategySO> networkIsoStrategySOList = isoStrategyManager.getStrategySO(ListUtil.toList(strategyId), System.currentTimeMillis());
if (CollectionUtils.isNotEmpty(networkIsoStrategySOList)) {
......@@ -316,7 +316,7 @@ public class NetworkIsolationStrategyServiceImpl extends AbstractDefaultStrategy
@Override
@Transactional(rollbackFor = Exception.class)
public void issuedStrategyUserDelete(Integer strategyId, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO) {
issuedUserHandler.issuedUser(equipmentIdList, loginAdminDTO.getCompanyId(), StrategyCmdEnum.DELETE_CONFIG_STRATEGY.getCmd(), JSONUtil.toJsonStr(ListUtil.toList(strategyId)));
issuedUserHandler.issuedUser(equipmentIdList, loginAdminDTO.getCompanyId(), StrategyCmdEnum.DELETE_NETWORK_STRATEGY.getCmd(), JSONUtil.toJsonStr(ListUtil.toList(strategyId)));
}
@Override
......
package com.skr.mdm.api.strategy.service.impl;
import com.github.pagehelper.PageHelper;
import com.skr.mdm.api.strategy.service.ConfigStrategyService;
import com.skr.mdm.api.strategy.service.FunctionStrategyService;
import com.skr.mdm.api.strategy.service.StrategyService;
import com.skr.mdm.api.strategy.service.UrlStrategyService;
import com.skr.mdm.api.strategy.service.*;
import com.skr.mdm.bean.qo.StrategyQueryQO;
import com.skr.mdm.bean.qo.StrategyTypeIssuedQO;
import com.skr.mdm.bean.qo.StrategyTypeQO;
......@@ -36,6 +33,8 @@ public class StrategyServiceImpl implements StrategyService {
private ConfigStrategyService configStrategyService;
@Autowired
private UrlStrategyService urlStrategyService;
@Autowired
private NetworkIsolationStrategyService networkIsolationStrategyService;
@Override
......@@ -45,12 +44,15 @@ public class StrategyServiceImpl implements StrategyService {
if (StrategyTypeEnum.FUNCTION_STRATEGY.getStrategyType().equals(strategyQueryQO.getStrategyType())) {
return ResponseResult.success(PageUtil.getPageResult(strategyDao.listStrategy(strategyQueryQO)));
}
// if (StrategyTypeEnum.CONFIG_STRATEGY.getStrategyType().equals(strategyQueryQO.getStrategyType())) {
// return ResponseResult.success(PageUtil.getPageResult(configStrategyService.listStrategy(strategyQueryQO)));
// }
if (StrategyTypeEnum.CONFIG_STRATEGY.getStrategyType().equals(strategyQueryQO.getStrategyType())) {
return ResponseResult.success(PageUtil.getPageResult(configStrategyService.listStrategy(strategyQueryQO)));
}
if (StrategyTypeEnum.URL_STRATEGY.getStrategyType().equals(strategyQueryQO.getStrategyType())) {
return ResponseResult.success(PageUtil.getPageResult(urlStrategyService.listStrategy(strategyQueryQO)));
}
if (StrategyTypeEnum.NETWORK_ISO.getStrategyType().equals(strategyQueryQO.getStrategyType())) {
return ResponseResult.success(PageUtil.getPageResult(networkIsolationStrategyService.listStrategy(strategyQueryQO)));
}
return ResponseResult.success();
}
......@@ -62,13 +64,17 @@ public class StrategyServiceImpl implements StrategyService {
StrategyManager.getStrategyIdList(strategyTypeQOList, StrategyTypeEnum.FUNCTION_STRATEGY.getStrategyType()),
strategyTypeIssuedQO, loginAdminDTO));
// ResponseResultManager.add(configStrategyService.issuedStrategy(
// StrategyManager.getStrategyIdList(strategyTypeQOList, StrategyTypeEnum.CONFIG_STRATEGY.getStrategyType()),
// strategyTypeIssuedQO, loginAdminDTO));
ResponseResultManager.add(configStrategyService.issuedStrategy(
StrategyManager.getStrategyIdList(strategyTypeQOList, StrategyTypeEnum.CONFIG_STRATEGY.getStrategyType()),
strategyTypeIssuedQO, loginAdminDTO));
ResponseResultManager.add(urlStrategyService.issuedStrategy(
StrategyManager.getStrategyIdList(strategyTypeQOList, StrategyTypeEnum.URL_STRATEGY.getStrategyType()),
strategyTypeIssuedQO, loginAdminDTO));
ResponseResultManager.add(networkIsolationStrategyService.issuedStrategy(
StrategyManager.getStrategyIdList(strategyTypeQOList, StrategyTypeEnum.NETWORK_ISO.getStrategyType()),
strategyTypeIssuedQO, loginAdminDTO));
}
return ResponseResultManager.get();
}
......@@ -79,11 +85,14 @@ public class StrategyServiceImpl implements StrategyService {
ResponseResultManager.add(functionStrategyService.deleteStrategy(StrategyManager.getStrategyIdList(strategyTypeQOList,
StrategyTypeEnum.FUNCTION_STRATEGY.getStrategyType()), loginAdminDTO));
// ResponseResultManager.add(configStrategyService.deleteStrategy(StrategyManager.getStrategyIdList(strategyTypeQOList,
// StrategyTypeEnum.CONFIG_STRATEGY.getStrategyType()), loginAdminDTO));
ResponseResultManager.add(configStrategyService.deleteStrategy(StrategyManager.getStrategyIdList(strategyTypeQOList,
StrategyTypeEnum.CONFIG_STRATEGY.getStrategyType()), loginAdminDTO));
ResponseResultManager.add(urlStrategyService.deleteStrategy(StrategyManager.getStrategyIdList(strategyTypeQOList,
StrategyTypeEnum.URL_STRATEGY.getStrategyType()), loginAdminDTO));
ResponseResultManager.add(networkIsolationStrategyService.deleteStrategy(StrategyManager.getStrategyIdList(strategyTypeQOList,
StrategyTypeEnum.NETWORK_ISO.getStrategyType()), loginAdminDTO));
}
return ResponseResultManager.get();
}
......
......@@ -59,7 +59,7 @@ public interface DefaultStrategyService {
*/
ResponseResult deleteStrategy(List<Integer> strategyIdList, LoginAdminDTO loginAdminDTO);
/**
/**a
* 策略启用禁用
*
* @param strategyId 策略ID集合
......@@ -87,4 +87,4 @@ public interface DefaultStrategyService {
* @return ResponseResult
*/
ResponseResult deleteStrategyUser(Integer strategyId, List<Integer> equipmentIdList, LoginAdminDTO loginAdminDTO);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment