提交 26415330 authored 作者: ww1xhqc's avatar ww1xhqc

[数据模型] 版本类相关

上级 9abe7c74
......@@ -48,7 +48,7 @@ public class WebMvcConfig {
.apiInfo(apiInfo())
.select()
// 自行修改为自己的包路径
.apis(RequestHandlerSelectors.basePackage("com.tykj.model_layer"))
.apis(RequestHandlerSelectors.basePackage("com.tykj"))
.paths(PathSelectors.any())
.build();
}
......
......@@ -6,8 +6,6 @@ import com.tykj.model_layer.dao.QuoteDao;
import com.tykj.model_layer.entity.*;
import com.tykj.model_layer.entity.vo.*;
import com.tykj.model_layer.service.ModelService;
import com.tykj.model_layer.service.QuoteService;
import com.tykj.model_layer.service.VersionBackupService;
import com.tykj.model_layer.service.VersionService;
import com.tykj.model_layer.service.impl.ModelHelper;
import io.swagger.annotations.Api;
......@@ -48,8 +46,7 @@ public class ModelController {
@Autowired
private VersionService versionService;
@Autowired
private VersionBackupService versionBackupService;
/**
......@@ -106,8 +103,7 @@ public class ModelController {
modelService.newTable(tableVO);
long end = System.currentTimeMillis();
log.warn("创建总用时为:{}秒", (end - start) / 1000.0);
// versionService.addVersion(new Version("1.0","这是初始版本",""));
// versionBackupService.addVersion(new VersionBackup("1.0","这是初始备份版本",""));
return ResultUtil.success("", "新建成功!");
}
......@@ -208,7 +204,6 @@ public class ModelController {
@ApiOperation("删除操作")
@DeleteMapping("/delete")
public ResponseEntity delTable(DelTableVO delTableVO) {
int i = modelService.delTable(delTableVO);
if (i == 1) {
return ResultUtil.success("", "删除成功!");
......
......@@ -8,8 +8,7 @@ import com.tykj.model_layer.service.VersionService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* @Description TODO
......@@ -23,14 +22,21 @@ public class VersionController {
@Autowired
private VersionService versionService;
@RequestMapping("/delVersion")
public ResponseEntity delVersion(){
versionService.delVersion();
@DeleteMapping("/delVersion")
public ResponseEntity delVersion(Integer id){
versionService.delVersion(id);
return ResultUtil.success("删除成功!");
}
@RequestMapping("/addVersion")
public ResponseEntity addVersion(VersionVO versionVO){
@PostMapping("/addVersion")
public ResponseEntity addVersion(@RequestBody VersionVO versionVO){
return ResultUtil.success(versionService.addVersion(versionVO),"保存成功!");
}
@RequestMapping("/goBack")
public ResponseEntity goBack(Integer integer){
return ResultUtil.success("");
}
}
package com.tykj.model_layer.dao;
import com.tykj.model_layer.entity.MyIndex;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 14:34
*/
public interface IndexDao extends JpaRepository<MyIndex,Integer>, JpaSpecificationExecutor<MyIndex> {
}
package com.tykj.model_layer.dao;
import com.tykj.model_layer.entity.VersionBackup;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 13:51
*/
public interface VersionBackupDao extends JpaRepository<VersionBackup,Integer>, JpaSpecificationExecutor<VersionBackup> {
}
package com.tykj.model_layer.entity;
import com.tykj.base.entity.BaseEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 14:28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table
public class MyIndex extends BaseEntity {
@ApiModelProperty("版本")
private String versionId;
@ApiModelProperty("索引")
private String ids;
}
......@@ -63,6 +63,11 @@ public class TableInfo extends BaseEntity {
@ApiModelProperty("表对应hbm.xml")
private String xml;
@ApiModelProperty("备份表")
private String backName;
@Lob
@ApiModelProperty("备份表XML")
private String backXml;
}
......@@ -23,12 +23,19 @@ import javax.persistence.Table;
@NoArgsConstructor
@ApiModel("版本控制表")
public class Version extends BaseEntity {
@ApiModelProperty("版本号")
private String versionId;
@ApiModelProperty("版本号")
@ApiModelProperty("描述")
private String versionDesc;
@Lob
@ApiModelProperty("描述")
private String ids;
@Lob
@ApiModelProperty("版本对应数据")
private String content;
@ApiModelProperty("对应数据表")
private Integer dbId;
}
package com.tykj.model_layer.entity;
import com.tykj.base.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.Table;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 13:18
*/
@Entity
@Table
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("版本备份控制表")
public class VersionBackup extends BaseEntity {
@ApiModelProperty("版本号")
private String versionId;
@ApiModelProperty("版本号")
private String versionDesc;
@Lob
@ApiModelProperty("版本对应数据")
private String content;
}
package com.tykj.model_layer.service;
import com.tykj.model_layer.entity.VersionBackup;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 13:59
*/
public interface VersionBackupService {
/**
*
*/
void addVersion(VersionBackup versionBackup);
}
......@@ -20,7 +20,7 @@ public interface VersionService {
/**
* 删除
*/
void delVersion();
void delVersion(Integer id);
void Synchronize();
void goback(Integer id);
}
package com.tykj.model_layer.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.tykj.model_layer.dao.ColumnInfoDao;
import com.tykj.model_layer.dao.IndexDao;
import com.tykj.model_layer.entity.ColumnInfo;
import com.tykj.model_layer.entity.MyIndex;
import com.tykj.model_layer.entity.vo.IndexVO;
import com.tykj.model_layer.service.IndexService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 14:37
*/
@Service
public class IndexServiceImpl implements IndexService {
@Autowired
private IndexDao indexDao;
@Autowired
private ColumnInfoDao columnInfoDao;
@Override
public void addIndex(IndexVO indexVO) {
MyIndex index =new MyIndex();
index.setVersionId(indexVO.getVersionId());
List<Integer> collect = columnInfoDao
.findAllByDbId(indexVO.getDbId()).stream()
.map(ColumnInfo::getId)
.collect(Collectors.toList());
index.setIds(JSONArray.toJSONString(collect));
indexDao.save(index);
}
}
......@@ -49,6 +49,7 @@ import java.util.stream.Collectors;
import static com.tykj.model_layer.utils.CreateTableUtil.createTable;
import static com.tykj.model_layer.utils.CreateTableUtil.createTableBack;
import static com.tykj.model_layer.utils.HqlUtil.createQuery;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
......@@ -140,10 +141,9 @@ public class ModelImpl implements ModelService {
@Override
public TableInfo newTable(TableVO tableVO) {
String xmlMapping = createTable(tableVO);
String xmlBack = createTableBack(tableVO);
sessionUtil.addXml(xmlMapping);
sessionUtil.addXml(xmlBack);
Session session = sessionUtil.getSession();
List<ColumnVO> dataList = tableVO.getDataList();
List<String> collect = tableInfoDao.findAll()
......@@ -157,6 +157,8 @@ public class ModelImpl implements ModelService {
tableInfo.setModelName(tableVO.getModelName());
tableInfo.setModelTitle(tableVO.getModelTitle());
tableInfo.setXml(xmlMapping);
tableInfo.setBackName(tableVO.getModelName()+"_back");
tableInfo.setBackXml(xmlBack);
tableInfo.setModelType(tableVO.getModelType());
tableInfo.setDescription(tableVO.getDescription());
tableInfoDao.save(tableInfo);
......@@ -215,11 +217,13 @@ public class ModelImpl implements ModelService {
Integer modelType = tableInfo.getModelType();
SessionImpl session = (SessionImpl)sessionUtil.getSession();
session.getTransaction().begin();
if (modelType.equals(ModelType.VIRTUAL)) {
Object values = map.get(tableName);
if (values instanceof Map) {
//插入数据
insertValue(tableInfo.getModelName(), (Map) values,session);
} else {
//循环插入数据
List valuesList = (List) values;
......@@ -227,8 +231,6 @@ public class ModelImpl implements ModelService {
insertValue(tableInfo.getModelName(), (Map) valuesList.get(i),session);
}
}
session.saveOrUpdate(tableName, map);
session.getTransaction().begin();
session.getTransaction().commit();
session.close();
......@@ -240,7 +242,7 @@ public class ModelImpl implements ModelService {
}
/**
* @param map
* @param
* @return int
* @Author WWW
* @Description 根据表名新增数据
......@@ -329,7 +331,10 @@ public class ModelImpl implements ModelService {
map.put(propertyNames[i], value);
}
}
HashMap hashMap = new HashMap();
hashMap.putAll(map);
session.saveOrUpdate(tableName, map);
session.saveOrUpdate(tableName+"_back", hashMap);
}
......@@ -411,8 +416,6 @@ public class ModelImpl implements ModelService {
TableVO tableVO = updateTableInfoVO.getTableVO();
Integer dbId = updateTableInfoVO.getDbId();
TableInfo tableInfo = tableInfoDao.findById(dbId).orElseThrow(() -> new RuntimeException("未找到该id的表信息"));
Integer modelType = tableInfo.getModelType();
if (modelType.equals(ModelType.VIRTUAL)) {
tableInfo.setUpdatedTime(new Date());
tableInfo.setDescription(tableVO.getDescription());
tableInfo.setModelTitle(tableVO.getModelTitle());
......@@ -456,11 +459,6 @@ public class ModelImpl implements ModelService {
for (ColumnInfo originColumnInfo : columnsFordDelete) {
columnInfoDao.delete(originColumnInfo);
}
return 1;
}
if (modelType.equals(ModelType.VIRTUAL)) {
columnInfoDao.deleteAllByDbId(updateTableInfoVO.getDbId());
List<ColumnInfo> dataList = updateTableInfoVO.getTableVO().getDataList().stream()
......@@ -468,17 +466,17 @@ public class ModelImpl implements ModelService {
.collect(Collectors.toList());
for (ColumnInfo columnInfo : dataList) {
columnInfo.setId(null);
columnInfo.setPrimaryKey(1);
columnInfoDao.save(columnInfo);
}
tableInfo.setUpdatedTime(new Date());
String xml = createTable(tableVO);
String xml2 = createTable(tableVO);
// 重新存xml
tableInfo.setXml(xml);
tableInfo.setXml(xml2);
tableInfoDao.save(tableInfo);
return 1;
}
return 0;
}
/**
......@@ -581,7 +579,7 @@ public class ModelImpl implements ModelService {
tableInfoDao.deleteById(delTableVO.getId());
List<ColumnInfo> allByDbId = columnInfoDao.findAllByDbId(delTableVO.getId());
columnInfoDao.deleteInBatch(allByDbId);
// jdbcTemplate.execute("drop table " + tableInfo.getModelName());
jdbcTemplate.execute("drop table " + tableInfo.getModelName());
return 1;
}
......
package com.tykj.model_layer.service.impl;
import com.tykj.model_layer.dao.VersionBackupDao;
import com.tykj.model_layer.entity.VersionBackup;
import com.tykj.model_layer.service.VersionBackupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 14:00
*/
@Service
public class VersionBackupServiceImpl implements VersionBackupService {
@Autowired
private VersionBackupDao versionBackupDao;
@Override
public void addVersion(VersionBackup versionBackup) {
VersionBackup save = versionBackupDao.save(versionBackup);
}
}
package com.tykj.model_layer.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.tykj.model_layer.dao.ColumnInfoDao;
import com.tykj.model_layer.dao.VersionDao;
import com.tykj.model_layer.entity.ColumnInfo;
import com.tykj.model_layer.entity.Version;
import com.tykj.model_layer.entity.vo.VersionVO;
import com.tykj.model_layer.service.VersionService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 13:57
*/
@Service
public class VersionServiceImpl implements VersionService {
@Autowired
VersionDao versionDao;
@Autowired
ColumnInfoDao columnInfoDao;
@Override
public Version addVersion(VersionVO versionVO) {
Version version = new Version();
version.setVersionId(versionVO.getVersionId());
version.setVersionDesc(versionVO.getVersionDesc());
List<Integer> collect = columnInfoDao
.findAllByDbId(versionVO.getDbId()).stream()
.map(ColumnInfo::getId)
.collect(Collectors.toList());
version.setContent(JSONArray.toJSONString(collect));
return versionDao.save(version);
}
@Override
public void delVersion() {
versionDao.deleteAll();
}
@Override
public void Synchronize() {
}
}
......@@ -75,6 +75,33 @@ public class CreateTableUtil {
return xmlMapping;
}
public static String createTableBack(TableVO tableVO) {
// 1sql-type="text" string 转为text文本,2长度超过会自动转换
List<ColumnVO> dataList = tableVO.getDataList();
String xmlMapping = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<!DOCTYPE hibernate-mapping PUBLIC\n" +
" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n" +
" \"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd\">\n" +
"<hibernate-mapping>\n" +
" <class entity-name=\"" + tableVO.getModelName()+"_back" + "\" table=\"" + tableVO.getModelName()+"_back" + "\">\n";
xmlMapping += " <id name=\"id\" type=\"java.lang.Integer\" length=\"11\" unsaved-value=\"null\" >\n" +
" <generator class=\"identity\" />"+
" </id>";
for (ColumnVO columnVO : dataList) {
xmlMapping +=
"\n <property type=\"" + columnVO.getFieldType() + "\" name=\"" + columnVO.getFieldName() + "\" length=\"" + columnVO.getFieldLength() +
"\" column=\"" + columnVO.getFieldName() + "\"/>\n";
}
xmlMapping += " </class>\n" +
"</hibernate-mapping>";
return xmlMapping;
}
public static String createTable(String entityName,ColumnVO primaryColumn,List<ColumnVO> dataList) {
// 1sql-type="text" string 转为text文本,2长度超过会自动转换
......
......@@ -52,9 +52,13 @@ public class SessionUtil {
List<TableInfo> all = tableInfoDao.findAll();
for (TableInfo tableInfo : all) {
String xml = tableInfo.getXml();
String xmlBack = tableInfo.getBackXml();
if (!Strings.isNullOrEmpty(xml)){
addXml(xml);
}
if (!Strings.isNullOrEmpty(xmlBack)){
addXml(xmlBack);
}
}
}
......
......@@ -37,7 +37,7 @@ public class GroupSettingController {
return ResultUtil.success(groupSettingService.findAll(),"查找成功");
}
@GetMapping("/{id}")
@GetMapping("/byId/{id}")
@ApiOperation("按id查找单个分类设置")
public ResponseEntity findById(@PathVariable Integer id){
return ResultUtil.success(groupSettingService.findById(id),"查找成功");
......
......@@ -10,7 +10,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@Api(tags = "筛选设置相关接口")
@RequestMapping("/setting/group")
@RequestMapping("/setting/screen")
@RestController
public class ScreenSettingController {
......@@ -38,7 +38,7 @@ public class ScreenSettingController {
return ResultUtil.success(screenSettingService.findAll(),"查找成功");
}
@GetMapping("/{id}")
@GetMapping("/byId/{id}")
@ApiOperation("按id查找单个筛选设置")
public ResponseEntity findById(@PathVariable Integer id){
return ResultUtil.success(screenSettingService.findById(id),"查找成功");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论