| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package com.example.services;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.example.analysis.FeatureProject;
- import com.example.controller.vo.ConfigVO;
- import com.example.dao.*;
- import com.example.entity.Config;
- import com.example.entity.HeaderInfo;
- import com.example.entity.Model;
- import com.example.entity.ModelType;
- import com.example.services.pojo.ConfigDetilePojo;
- import com.example.services.pojo.ConfigModelPojo;
- import com.example.services.pojo.ConfigPojo;
- import com.example.services.pojo._ConfigPojo;
- import lombok.extern.slf4j.Slf4j;
- import lombok.val;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * Config-related service Created by twenbo on 2016/11/16. Changed by lucas on 2016/11/18.
- */
- @Slf4j
- @Service
- public class ConfigService {
- @Autowired
- private ConfigDao configDao;
- @Autowired
- private FileInfoDao fileInfoDao;
- @Autowired
- private ModelTypeDao modelTypeDao;
- @Autowired
- private HeaderInfoDao headerInfoDao;
- @Autowired
- private ModelDao modelDao;
- @Autowired
- private FeatureProject featureProject;
- /**
- * @param configVO
- * @return
- */
- public String addConfig(ConfigVO configVO) {
- Config configInfo = new Config();
- configInfo.setFileInfoId(Integer.parseInt(configVO.getFileInfoId()));
- configInfo.setUserId(Integer.parseInt(configVO.getUserId()));
- configInfo.setModelTypeId(Integer.parseInt(configVO.getModelTypeId()));
- configInfo.setConfName(configVO.getConfName());
- configInfo.setFieldIds(JSON.toJSON(configVO.getFieldIds()).toString());
- int configId = configDao.save(configInfo).getId();
- return String.valueOf(configId);
- }
- /**
- * @param userId
- * @return
- */
- public List<ConfigPojo> getAllConfigs(int userId) {
- List<ConfigPojo> rsl = configDao.findByUserId(userId).stream().map((config) -> {
- String fileName = fileInfoDao.findById(config.getFileInfoId()).getFilename();
- String modelTypeName = modelTypeDao.findById(config.getModelTypeId()) == null ? "" :
- modelTypeDao.findById(config.getModelTypeId()).getModelTypeName();
- return new ConfigPojo(String.valueOf(config.getFileInfoId()),
- fileName,
- String.valueOf(config.getId()),
- String.valueOf(config.getModelTypeId()),
- modelTypeName,
- config.getConfName(),
- JSONObject.parseArray(config.getFieldIds(), String.class).stream().map(fieldId ->
- headerInfoDao.findById(Integer.parseInt(fieldId))
- ).collect(Collectors.toList()));
- }).collect(Collectors.toList());
- return rsl;
- }
- /**
- * @param userId
- * @return
- */
- public List<_ConfigPojo> _getAllConfigsByUserId(int userId) {
- List<_ConfigPojo> rsl = configDao.findByUserId(userId).stream().map((config) -> {
- String fileName = fileInfoDao.findById(config.getFileInfoId()).getFilename();
- _ConfigPojo configPojo = new _ConfigPojo(String.valueOf(config.getFileInfoId()),
- fileName,
- String.valueOf(config.getId()),
- config.getConfName());
- return configPojo;
- }).collect(Collectors.toList());
- return rsl;
- }
- /**
- * @param configId
- * @return
- */
- public ConfigDetilePojo getConfigInfoByConfigId(int configId) {
- List<ConfigModelPojo> modelInfos = new ArrayList<>();
- List<Model> models = modelDao.findByConfigId(configId);
- for (Model model : models) {
- ModelType modelType = modelTypeDao.findById(model.getModelTypeId());
- int flag = -1;
- if (model.isTrained() && model.getResOfModel() != null) {
- flag = 1;
- } else if (model.isTrained() && model.getResOfModel() == null) {
- flag = 0;
- }
- modelInfos.add(new ConfigModelPojo(
- model.getModelName(), modelType == null ? "自动训练" : modelType.getModelDetailName(), flag
- ));
- }
- Config config = configDao.findById(configId);
- int modelTypeId=config.getModelTypeId();
- String modelTypeName = modelTypeDao.findById(config.getModelTypeId()) == null ? "" : modelTypeDao.findById(config.getModelTypeId()).getModelTypeName();
- String modelTypeDes = modelTypeDao.findById(config.getModelTypeId()) == null ? "" : modelTypeDao.findById(config.getModelTypeId()).getModelDes();
- String modelDetailDes = modelTypeDao.findById(config.getModelTypeId()) == null ? "" : modelTypeDao.findById(config.getModelTypeId()).getModelDetailDes();
- ConfigDetilePojo configPojo = new ConfigDetilePojo(
- String.valueOf(config.getId()),
- String.valueOf(modelTypeId),
- modelTypeName,
- modelTypeDes,
- modelDetailDes,
- JSONObject.parseArray(config.getFieldIds(), String.class).stream().map(fieldId ->
- headerInfoDao.findById(Integer.parseInt(fieldId))
- ).collect(Collectors.toList()),
- modelInfos);
- return configPojo;
- }
- /**
- * @param configId
- * @param confName
- * @param trainFeatureList
- * @return
- */
- public boolean changeConfig(int configId, String confName, List<String> trainFeatureList) {
- Config configInfo = configDao.findById(configId);
- if(configInfo==null){
- return false;
- }
- configInfo.setConfName(confName);
- configInfo.setFieldIds(JSON.toJSON(trainFeatureList).toString());
- configDao.save(configInfo);
- return true;
- }
- public boolean deleteConfigById(int configId) {
- Config configInfo = configDao.findById(configId);
- if(configInfo==null){
- return false;
- }
- List<Model> modelList = modelDao.findByConfigId(configId);
- if (modelList != null) {
- for (Model model : modelList) {
- modelDao.delete(model);
- }
- }
- configDao.delete(configDao.findById(configId));
- return true;
- }
- public List<HeaderInfo> getSelectedFeature(int fileId, String fieldName) {
- log.info("FeatureSelector: ", fileId + ", " + fieldName);
- List<HeaderInfo> res = featureProject.featureSelector(fileId, fieldName);
- return res;
- }
- }
|