|
|
@@ -0,0 +1,171 @@
|
|
|
+# 1. pojo
|
|
|
+
|
|
|
+# 2. LoginService
|
|
|
+
|
|
|
+```java
|
|
|
+ public LoginPojo verifyUser(String username, String password) throws Exception {
|
|
|
+ log.info("User login: {username: " + username + ", password: " + password + "}");
|
|
|
+ User user = userDao.findByUsername(username);
|
|
|
+ boolean equals = user.getPassword().equals(password);
|
|
|
+
|
|
|
+ String jwtToken=""; //保存jwt token秘钥
|
|
|
+ jwtToken = Jwts.builder().setSubject(username).claim("roles", "user").setIssuedAt(new Date())
|
|
|
+ .signWith(SignatureAlgorithm.HS256, "secretkey").compact();
|
|
|
+ return new LoginPojo(equals, equals ? user.getId() : null,jwtToken);
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+通过username找到user实体,并且判断password是否一致。然后获取一个jwtToken,返回。
|
|
|
+
|
|
|
+```java
|
|
|
+ public boolean addUser(User user){
|
|
|
+ User test = userDao.findByUsername(user.getUsername());
|
|
|
+ if(test==null) {
|
|
|
+ userDao.save(user);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else { //已经存在该用户名的用户则添加失败
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+判断是否存在已有用户名,若不存在,则新增。
|
|
|
+
|
|
|
+# 3. ConfigService
|
|
|
+
|
|
|
+```java
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+把configVO转化为config,然后保存config,返回configId。
|
|
|
+
|
|
|
+```java
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+通过userId找到所有的config,并将其他属性填充完成后返回。
|
|
|
+
|
|
|
+```java
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+通过userId找到所有的config,并将其他属性填充完成后返回。
|
|
|
+
|
|
|
+```java
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+首先通过configId获得所有使用该config的模型,并将这些模型封装为modelInfos。然后再获取其他属性,和刚刚得到的modelInfos一同封装进configPojo中。
|
|
|
+
|
|
|
+```java
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+改变了某个configId对应的配置信息。
|
|
|
+
|
|
|
+```java
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+先删除了所有使用该config的model,再删除该config。
|
|
|
+
|
|
|
+```java
|
|
|
+ public List<HeaderInfo> getSelectedFeature(int fileId, String fieldName) {
|
|
|
+ log.info("FeatureSelector: ", fileId + ", " + fieldName);
|
|
|
+ List<HeaderInfo> res = featureProject.featureSelector(fileId, fieldName);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+高级方法,使用了scala编写的FeatureProject类,暂时先忽略。不过,这个方法放在configService里面真的好吗?
|
|
|
+
|