package cn.cslg.pas.service.business; import cn.cslg.pas.common.dto.customAnalyse.SchemaDataDTO; import cn.cslg.pas.common.dto.customAnalyse.SchemaDimensionDTO; import cn.cslg.pas.common.model.cronModel.PersonnelVO; import cn.cslg.pas.common.utils.CacheUtils; import cn.cslg.pas.common.utils.LoginUtils; import cn.cslg.pas.domain.business.CustomAnalysisItemSchema; import cn.cslg.pas.exception.UnLoginException; import cn.cslg.pas.mapper.CustomAnalysisItemSchemaMapper; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 自定义分析项目维度数据 服务实现类 *

*/ @Service public class CustomAnalysisItemSchemaService extends ServiceImpl { @Autowired private CacheUtils cacheUtils; @Autowired private LoginUtils loginUtils; @Autowired private CustomAnalysisItemSchemaMapper customAnalysisItemSchemaMapper; public List getListByUid(String uid) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(CustomAnalysisItemSchema::getUid, uid); return this.list(queryWrapper); } public SchemaDimensionDTO getItemSchemaByUid(String uid) { List schemaList = this.getListByUid(uid); CustomAnalysisItemSchema d1 = schemaList.stream().filter(item -> item.getDimension().equals("x")).findFirst().orElse(new CustomAnalysisItemSchema()); CustomAnalysisItemSchema d2 = schemaList.stream().filter(item -> item.getDimension().equals("y")).findFirst().orElse(new CustomAnalysisItemSchema()); SchemaDimensionDTO dto = new SchemaDimensionDTO(); SchemaDataDTO x = new SchemaDataDTO(); SchemaDataDTO y = new SchemaDataDTO(); x.setField(d1.getField()); x.setExpand(d1.getExpand()); x.setPtype(d1.getPtype()); x.setNum(d1.getNum()); x.setType(d1.getType()); x.setGroupBy(d1.getGroupBy()); x.setFieldKind(d1.getFieldKind()); x.setName(d1.getName()); y.setField(d2.getField()); y.setExpand(d2.getExpand()); y.setPtype(d2.getPtype()); y.setNum(d2.getNum()); y.setType(d2.getType()); y.setName(d2.getName()); y.setGroupBy(d2.getGroupBy()); y.setFieldKind(d2.getFieldKind()); dto.setX(x); dto.setY(y); return dto; } public void add(SchemaDimensionDTO dto, String uid) { //获取登陆人信息 用于设置创建人 PersonnelVO personnelVO = new PersonnelVO(); try { personnelVO = cacheUtils.getLoginUser(loginUtils.getId()); } catch (Exception e) { throw new UnLoginException("未登录"); } List customAnalysisItemSchema = new ArrayList<>(); CustomAnalysisItemSchema d1 = new CustomAnalysisItemSchema(); CustomAnalysisItemSchema d2 = new CustomAnalysisItemSchema(); d1.setUid(uid); d1.setDimension("x"); d1.setField(dto.getX().getField()); d1.setExpand(dto.getX().getExpand()); d1.setPtype(dto.getX().getPtype()); d1.setType(dto.getX().getType()); d1.setNum(dto.getX().getNum()); d1.setName(dto.getX().getName()); d1.setGroupBy(dto.getX().getGroupBy()); d1.setFieldKind(dto.getX().getFieldKind()); d1.setCreateId(personnelVO.getId()); d1.setCreateName(personnelVO.getName()); d1.setCreateTime(new Date()); d1.setUpdateTime(new Date()); d2.setUid(uid); d2.setDimension("y"); d2.setField(dto.getY().getField()); d2.setExpand(dto.getY().getExpand()); d2.setPtype(dto.getY().getPtype()); d2.setType(dto.getY().getType()); d2.setNum(dto.getY().getNum()); d2.setName(dto.getY().getName()); d2.setGroupBy(dto.getY().getGroupBy()); d2.setFieldKind(dto.getY().getFieldKind()); d2.setCreateId(personnelVO.getId()); d2.setCreateName(personnelVO.getName()); d2.setCreateTime(new Date()); d2.setUpdateTime(new Date()); customAnalysisItemSchema.add(d1); customAnalysisItemSchema.add(d2); this.saveBatch(customAnalysisItemSchema); } public void edit(SchemaDimensionDTO dto, String uid) { List schemaList = this.getListByUid(uid); if (schemaList.size() == 0) { this.add(dto, uid); } else { schemaList.forEach(item -> { switch (item.getDimension()) { case "x": item.setField(dto.getX().getField()); item.setExpand(dto.getX().getExpand()); item.setPtype(dto.getX().getPtype()); item.setNum(dto.getX().getNum()); item.setType(dto.getX().getType()); item.setName(dto.getX().getName()); item.setGroupBy(dto.getX().getGroupBy()); item.setFieldKind(dto.getX().getFieldKind()); break; case "y": item.setField(dto.getY().getField()); item.setExpand(dto.getY().getExpand()); item.setPtype(dto.getY().getPtype()); item.setNum(dto.getY().getNum()); item.setType(dto.getY().getType()); item.setName(dto.getY().getName()); item.setGroupBy(dto.getY().getGroupBy()); item.setFieldKind(dto.getY().getFieldKind()); break; } }); this.saveOrUpdateBatch(schemaList); } } public void deleteByUid(String uid) { this.remove(Wrappers.lambdaQuery().eq(CustomAnalysisItemSchema::getUid, uid)); } }