提交 619afa4e authored 作者: 黄夏豪's avatar 黄夏豪

[数据模型] 改了一些bug

上级 6a207de8
......@@ -3,7 +3,11 @@ package com.tykj.model_layer.dao;
import com.tykj.model_layer.entity.Version;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import javax.transaction.Transactional;
import java.util.List;
/**
......@@ -14,4 +18,15 @@ import java.util.List;
public interface VersionDao extends JpaRepository<Version,Integer>, JpaSpecificationExecutor<Version> {
List<Version> findAllByDbId(Integer dbId);
/**
* 将所有该DBID的列都设为非当前版本
* @param dbId
* @return
*/
@Modifying
@Transactional
@Query(value = "update Version v set v.currentVersionFlag=0 where v.dbId=:dbId ")
int updateVersionToNotCurrent(@Param("dbId") Integer dbId);
}
......@@ -36,4 +36,7 @@ public class Version extends BaseEntity {
@ApiModelProperty("对应数据表")
private Integer dbId;
@ApiModelProperty("是否当前版本 0为否 1为是")
private Integer currentVersionFlag;
}
......@@ -26,4 +26,5 @@ public class VersionVO {
@ApiModelProperty("版本对应数据")
private String content;
}
......@@ -58,6 +58,10 @@ public class VersionServiceImpl implements VersionService {
collect.add((Integer) map.get("id"));
}
version.setIds(JSONArray.toJSONString(collect));
versionDao.updateVersionToNotCurrent(version.getDbId());
if (version.getCurrentVersionFlag()==null){
version.setCurrentVersionFlag(1);
}
return versionDao.save(version);
}
......@@ -81,23 +85,27 @@ public class VersionServiceImpl implements VersionService {
versionVo.setVersionId("回退前版本");
versionVo.setVersionDesc("回退前版本");
versionVo.setDbId(version.getDbId());
addVersion(versionVo);
Version version1 = addVersion(versionVo);
versionDao.save(version1);
//回退
TableInfo tableInfo = tableInfoDao.getOne(version.getDbId());
Session session = sessionUtil.getSession();
session.getTransaction().begin();
StringBuilder delete_Sql = new StringBuilder("delete ");
delete_Sql.append(" from ").append(tableInfo.getModelName());
delete_Sql.append(" where id in ("+version.getIds().substring(1,version.getIds().length()-1)+")");
Query deleteQuery = session.createQuery(delete_Sql.toString());
deleteQuery.executeUpdate();
String substring = version.getIds().substring(1, version.getIds().length() - 1);
String[] split = substring.split(",");
if (split.length>0){
StringBuilder delete_Sql = new StringBuilder("delete ");
delete_Sql.append(" from ").append(tableInfo.getModelName());
delete_Sql.append(" where id in ("+substring+")");
Query deleteQuery = session.createQuery(delete_Sql.toString());
deleteQuery.executeUpdate();
}
StringBuilder selectSql = new StringBuilder("select ");
selectSql.append("entity ");
selectSql.append(" from ").append(tableInfo.getModelName()+"_back").append(" entity ");
delete_Sql.append(" where id in ("+version.getIds().substring(1,version.getIds().length()-1)+")");
selectSql.append(" where id in ("+version.getIds().substring(1,version.getIds().length()-1)+")");
Query query = session.createQuery(selectSql.toString());
List<Map<String, Object>> list = query.list();
......@@ -108,6 +116,11 @@ public class VersionServiceImpl implements VersionService {
hashMap.putAll(map);
model.insertValue(tableInfo.getModelName(),hashMap,(SessionImpl) session,false,true,false);
}
versionDao.updateVersionToNotCurrent(version.getDbId());
//将要回退的版本设为 当前版本
version.setCurrentVersionFlag(1);
versionDao.save(version);
//回退前的版本设为 非当前版本
System.out.println("1");
session.getTransaction().commit();
session.close();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论