package cn.cslg.pas.service.business;
import cn.cslg.pas.common.dto.customAnalyse.CustomSettingColorConfigDTO;
import cn.cslg.pas.common.dto.customAnalyse.CustomSettingConfigDTO;
import cn.cslg.pas.common.dto.customAnalyse.CustomSettingLineConfigDTO;
import cn.cslg.pas.common.dto.customAnalyse.CustomSettingTableConfigDTO;
import cn.cslg.pas.common.model.cronModel.PersonnelVO;
import cn.cslg.pas.common.utils.CacheUtils;
import cn.cslg.pas.common.utils.JsonUtils;
import cn.cslg.pas.common.utils.LoginUtils;
import cn.cslg.pas.domain.business.CustomAnalysisItemSetting;
import cn.cslg.pas.exception.UnLoginException;
import cn.cslg.pas.mapper.CustomAnalysisItemSettingMapper;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
*
* 自定义分析项目图表设置 服务实现类
*
*/
@Service
public class CustomAnalysisItemSettingService extends ServiceImpl {
@Autowired
private CacheUtils cacheUtils;
@Autowired
private LoginUtils loginUtils;
@Autowired
private CustomAnalysisItemSettingMapper customAnalysisItemSettingMapper;
public CustomAnalysisItemSetting getItemSettingByUid(String uid) {
CustomAnalysisItemSetting temp = this.getOne(Wrappers.lambdaQuery().eq(CustomAnalysisItemSetting::getUid, uid));
if (temp == null) {
temp = this.add(new CustomAnalysisItemSetting(), uid);
}
CustomSettingConfigDTO configDTO = new CustomSettingConfigDTO();
configDTO.setColor(JsonUtils.jsonToList(temp.getColorConfig(), CustomSettingColorConfigDTO.class));
configDTO.setLine(JsonUtils.jsonToPojo(temp.getLineConfig(), CustomSettingLineConfigDTO.class));
configDTO.setTable(JsonUtils.jsonToList(temp.getTableConfig(), CustomSettingTableConfigDTO.class));
temp.setConfig(configDTO);
temp.setColorConfig(null);
temp.setLineConfig(null);
temp.setTableConfig(null);
temp.setId(null);
temp.setUid(null);
temp.setCreateTime(null);
temp.setUpdateTime(null);
temp.setStatus(null);
return temp;
}
public CustomAnalysisItemSetting add(CustomAnalysisItemSetting setting, String uid) {
//获取登陆人信息 用于设置创建人
PersonnelVO personnelVO = new PersonnelVO();
try {
personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
} catch (Exception e) {
throw new UnLoginException("未登录");
}
CustomAnalysisItemSetting customAnalysisItemSetting = new CustomAnalysisItemSetting();
BeanUtils.copyProperties(setting, customAnalysisItemSetting);
customAnalysisItemSetting.setUid(uid);
customAnalysisItemSetting.setCreateId(personnelVO.getId());
customAnalysisItemSetting.setCreateName(personnelVO.getName());
customAnalysisItemSetting.setColorConfig(JsonUtils.objectToJson(setting.getConfig().getColor()));
customAnalysisItemSetting.setTableConfig(JsonUtils.objectToJson(setting.getConfig().getTable()));
customAnalysisItemSetting.setLineConfig(JsonUtils.objectToJson(setting.getConfig().getLine()));
customAnalysisItemSetting.insert();
return customAnalysisItemSetting;
}
public void edit(CustomAnalysisItemSetting customAnalysisItemSetting, String uid) {
CustomAnalysisItemSetting temp = this.getOne(Wrappers.lambdaQuery().eq(CustomAnalysisItemSetting::getUid, uid));
if (temp == null) {
temp = this.add(customAnalysisItemSetting, uid);
}
customAnalysisItemSetting.setId(temp.getId());
customAnalysisItemSetting.setColorConfig(JsonUtils.objectToJson(customAnalysisItemSetting.getConfig().getColor()));
customAnalysisItemSetting.setTableConfig(JsonUtils.objectToJson(customAnalysisItemSetting.getConfig().getTable()));
customAnalysisItemSetting.setLineConfig(JsonUtils.objectToJson(customAnalysisItemSetting.getConfig().getLine()));
customAnalysisItemSetting.updateById();
}
public void deleteByUid(String uid) {
this.remove(Wrappers.lambdaQuery().eq(CustomAnalysisItemSetting::getUid, uid));
}
}