Commit c1a24e62 by tutingyin

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

parent fe7499ab
package com.skr.mdm.bean.vo.strategy;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @author tty
* @date 2024/9/13 11:56
*/
@Data
@Builder
public class ConfigVO {
@ApiModelProperty(value = "类型 0:无 1:黑 2:白")
private Integer type;
@ApiModelProperty(value = "配置集合")
private List<Object> configList;
}
\ No newline at end of file
package com.skr.mdm.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author tty
* @date 2024/9/13 11:03
*/
@Getter
@AllArgsConstructor
public enum StrategyConfigEnum {
/**
* 策略类型
*/
USB(1, "usb"),
BLUETOOTH(2, "蓝牙"),
HOT_SPOT(3, "热点"),
WIFI(4, "wifi");
private Integer strategyType;
private String strategyName;
public static StrategyConfigEnum getValue(Integer value) {
for (StrategyConfigEnum strategyConfigEnum : values()) {
if (strategyConfigEnum.strategyType.equals(value)) {
return strategyConfigEnum;
}
}
return null;
}
}
\ No newline at end of file
package com.skr.mdm.manager;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.skr.mdm.bean.so.strategy.*;
import com.skr.mdm.bean.vo.strategy.*;
import com.skr.mdm.dao.*;
import com.skr.mdm.entity.*;
import com.skr.mdm.enums.StrategyConfigEnum;
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.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 配置策略通用处理
* @author nfq
* @date 2022-10-21 15:45
*/
@Component
public class ConfigStrategyManager {
@Autowired
private StrategyConfigDao configStrategyDao;
@Autowired
private StrategyConfigInfoDao strategyConfigInfoDao;
@Autowired
private StrategyConfigInfoListDao strategyConfigInfoListDao;
/**
* 获取配置策略下发数据
*
* @param strategyIdList
* @param currentTime
* @return
*/
public List<ConfigStrategySO> getConfigStrategySO(List<Integer> strategyIdList, Long currentTime) {
List<StrategyConfigDO> strategyConfigDOList = configStrategyDao.selectBatchIds(strategyIdList);
List<ConfigStrategySO> configStrategySOList = new ArrayList<>(strategyConfigDOList.size());
if (CollectionUtils.isEmpty(strategyConfigDOList)) {
return configStrategySOList;
}
strategyConfigDOList.forEach(strategyConfigDO -> {
ConfigStrategySO configStrategySO = new ConfigStrategySO();
BeanUtils.copyProperties(strategyConfigDO, configStrategySO);
configStrategySO.setOperateTime(strategyConfigDO.getOperateTime().getTime());
configStrategySO.setSendTime(currentTime);
List<StrategyConfigInfoDO> strategyConfigInfoDOList = new LambdaQueryChainWrapper<>(strategyConfigInfoDao)
.eq(StrategyConfigInfoDO::getStrategyId, strategyConfigDO.getId())
.list();
List<ConfigStrategyInfoSO> configStrategyInfoSOList = new ArrayList<>(strategyConfigInfoDOList.size());
if (CollectionUtils.isNotEmpty(strategyConfigInfoDOList)) {
strategyConfigInfoDOList.forEach(strategyConfigInfoDO -> {
ConfigStrategyInfoSO configStrategyInfoSO = new ConfigStrategyInfoSO();
ConfigStrategyInfoVO configStrategyInfoVO = new ConfigStrategyInfoVO();
BeanUtils.copyProperties(strategyConfigInfoDO, configStrategyInfoSO);
getConfigStrategyInfoVO(strategyConfigInfoDO.getStrategyId(), configStrategyInfoVO);
getConfigStrategyInfoSO(configStrategyInfoSO, configStrategyInfoVO);
configStrategyInfoSOList.add(configStrategyInfoSO);
});
}
configStrategySO.setConfigStrategyInfoSOList(configStrategyInfoSOList);
configStrategySOList.add(configStrategySO);
});
return configStrategySOList;
}
/**
* 获取配置策略下发信息
*
* @param configStrategyInfoSO
* @param configStrategyInfoVO
*/
public void getConfigStrategyInfoSO(ConfigStrategyInfoSO configStrategyInfoSO, ConfigStrategyInfoVO configStrategyInfoVO) {
if (Objects.nonNull(configStrategyInfoVO.getBluetoothVO())) {
ConfigSO configSO = new ConfigSO();
BeanUtils.copyProperties(configStrategyInfoVO.getBluetoothVO(), configSO);
configStrategyInfoSO.setBluetoothSO(configSO);
}
if (Objects.nonNull(configStrategyInfoVO.getUsbVO())) {
ConfigSO configSO = new ConfigSO();
BeanUtils.copyProperties(configStrategyInfoVO.getUsbVO(), configSO);
configStrategyInfoSO.setUsbSO(configSO);
}
if (Objects.nonNull(configStrategyInfoVO.getWifiVO())) {
ConfigSO configSO = new ConfigSO();
BeanUtils.copyProperties(configStrategyInfoVO.getWifiVO(), configSO);
configStrategyInfoSO.setWifiSO(configSO);
}
if (Objects.nonNull(configStrategyInfoVO.getHotSpotVO())) {
ConfigSO configSO = new ConfigSO();
BeanUtils.copyProperties(configStrategyInfoVO.getHotSpotVO(), configSO);
configStrategyInfoSO.setHotSpotSO(configSO);
}
}
/**
* 获取配置策略信息
*
* @param strategyId
* @param configStrategyInfoVO
*/
public void getConfigStrategyInfoVO(Integer strategyId, ConfigStrategyInfoVO configStrategyInfoVO) {
// 蓝牙白名单
List<StrategyConfigInfoListDO> list = new LambdaQueryChainWrapper<>(strategyConfigInfoListDao)
.eq(StrategyConfigInfoListDO::getStrategyId, strategyId)
.list();
for (StrategyConfigInfoListDO strategyConfigInfoListDO : list) {
Integer strategyType = strategyConfigInfoListDO.getStrategyType();
ConfigVO configVO = ConfigVO.builder()
.type(strategyConfigInfoListDO.getType())
.configList(JSONUtil.toList(strategyConfigInfoListDO.getMsg().toString(), Object.class))
.build();
StrategyConfigEnum.getValue(strategyType);
switch (strategyType) {
case 1:
configStrategyInfoVO.setUsbVO(configVO);
break;
case 2:
configStrategyInfoVO.setBluetoothVO(configVO);
break;
case 3:
configStrategyInfoVO.setHotSpotVO(configVO);
break;
case 4:
configStrategyInfoVO.setWifiVO(configVO);
break;
}
}
}
}
\ 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