将 test 独立出模块,方便代码管理

This commit is contained in:
thinkgem
2024-07-06 22:21:58 +08:00
parent 5e933119f3
commit 0caf88a0bc
123 changed files with 166 additions and 15294 deletions

View File

@@ -1,19 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.dao;
import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.test.entity.TestDataChild;
/**
* 测试数据DAO接口
* @author ThinkGem
* @version 2018-04-22
*/
@MyBatisDao//(dataSourceName="ds2")
public interface TestDataChildDao extends CrudDao<TestDataChild> {
}

View File

@@ -1,27 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.dao;
import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.test.entity.TestData;
import java.util.List;
import java.util.Map;
/**
* 测试数据DAO接口
* @author ThinkGem
* @version 2018-04-22
*/
@MyBatisDao
public interface TestDataDao extends CrudDao<TestData> {
/**
* 演示Map参数和返回值支持分页
*/
List<Map<String, Object>> findListForMap(Map<String, Object> params);
}

View File

@@ -1,19 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.dao;
import com.jeesite.common.dao.TreeDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.test.entity.TestTree;
/**
* 测试树表DAO接口
* @author ThinkGem
* @version 2018-04-22
*/
@MyBatisDao
public interface TestTreeDao extends TreeDao<TestTree> {
}

View File

@@ -1,189 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.db;
import com.jeesite.common.datasource.DataSourceHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import com.jeesite.common.config.Global;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.tests.BaseInitDataTests;
import com.jeesite.modules.gen.entity.GenTable;
import com.jeesite.modules.gen.entity.GenTableColumn;
import com.jeesite.modules.gen.service.GenTableService;
import com.jeesite.modules.gen.utils.GenUtils;
/**
* 初始化核心表数据
* @author ThinkGem
* @version 2020-5-26
*/
@Component
@ConditionalOnProperty(name="jeesite.initdata", havingValue="true", matchIfMissing=false)
public class InitTestData extends BaseInitDataTests {
@Override
public boolean initData() throws Exception {
if (GenUtils.isTableExists("test_data")) {
return true; // 如果表已存在,则无需初始化
}
runCreateScript("test.sql");
initGenDemoData();
return true;
}
@Autowired
private GenTableService genTableService;
/**
* 代码生成测试数据
*/
public void initGenDemoData() throws Exception{
if (!checkTable(GenTable.class)) {
return;
}
if (!checkTable(GenTableColumn.class)) {
return;
}
initGenTestData();
initGenTreeData();
}
/**
* 代码生成测试数据
*/
private void initGenTestData() throws Exception{
GenTable genTable = new GenTable();
genTable.setIsNewRecord(true);
genTable.setTableName("test_data");
genTable.setDataSourceName(dataSourceName);
genTable = genTableService.getFromDb(genTable);
genTable.setIsNewRecord(true);
genTable.setClassName("TestData");
genTable.setFunctionAuthor("ThinkGem");
genTable.setTplCategory("crud");
genTable.setPackageName("com.jeesite.modules");
genTable.setModuleName("test");
genTable.setSubModuleName("");
genTable.setFunctionName("测试数据");
genTable.setFunctionNameSimple("数据");
genTable.getOptionMap().put("isHaveDisableEnable", Global.YES);
genTable.getOptionMap().put("isHaveDelete", Global.YES);
genTable.getOptionMap().put("isFileUpload", Global.YES);
genTable.getOptionMap().put("isImageUpload", Global.YES);
initGenTableColumn(genTable);
DataSourceHolder.setDataSourceName(dataSourceName);
genTableService.save(genTable);
// 子表
GenTable genTableChild = new GenTable();
genTableChild.setIsNewRecord(true);
genTableChild.setTableName("test_data_child");
genTableChild.setDataSourceName(dataSourceName);
genTableChild = genTableService.getFromDb(genTableChild);
genTableChild.setIsNewRecord(true);
genTableChild.setClassName("TestDataChild");
genTableChild.setFunctionAuthor("ThinkGem");
genTableChild.setTplCategory("crud");
genTableChild.setPackageName("com.jeesite.modules");
genTableChild.setModuleName("test");
genTableChild.setSubModuleName("");
genTableChild.setFunctionName("测试子表");
genTableChild.setFunctionNameSimple("数据");
genTableChild.setParentTableName("test_data");
genTableChild.setParentTableFkName("test_data_id");
initGenTableColumn(genTableChild);
DataSourceHolder.setDataSourceName(dataSourceName);
genTableService.save(genTableChild);
}
/**
* 代码生成测试数据(列初始化)
*/
private void initGenTableColumn(GenTable genTable){
for(GenTableColumn column : genTable.getColumnList()){
if ("test_input".equals(column.getColumnName())
|| "test_textarea".equals(column.getColumnName())
|| "test_select".equals(column.getColumnName())
|| "test_select_multiple".equals(column.getColumnName())
|| "test_checkbox".equals(column.getColumnName())
|| "test_radio".equals(column.getColumnName())
|| "test_date".equals(column.getColumnName())
|| "test_datetime".equals(column.getColumnName())
){
column.setShowType(StringUtils.substringAfter(
column.getColumnName(), "test_"));
if ("test_input".equals(column.getColumnName())
){
column.setQueryType("LIKE");
}
else if ("test_textarea".equals(column.getColumnName())
){
column.setQueryType("LIKE");
column.getOptionMap().put("isNewLine", Global.YES);
// column.getOptionMap().put("gridRowCol", "12/2/10");
}
else if ("test_select".equals(column.getColumnName())
|| "test_select_multiple".equals(column.getColumnName())
|| "test_radio".equals(column.getColumnName())
|| "test_checkbox".equals(column.getColumnName())
){
column.getOptionMap().put("dictType", "sys_menu_type");
column.getOptionMap().put("dictName", "sys_menu_type");
}
else if ("test_date".equals(column.getColumnName())
|| "test_datetime".equals(column.getColumnName())
){
column.setQueryType("BETWEEN");
}
}else if ("test_user_code".equals(column.getColumnName())){
column.setAttrType("com.jeesite.modules.sys.entity.User");
column.setFullAttrName("testUser");
column.setShowType("userselect");
}else if ("test_office_code".equals(column.getColumnName())){
column.setAttrType("com.jeesite.modules.sys.entity.Office");
column.setFullAttrName("testOffice");
column.setShowType("officeselect");
}else if ("test_area_code".equals(column.getColumnName())){
column.setFullAttrName("testAreaCode|testAreaName");
column.setShowType("areaselect");
}else if ("test_area_name".equals(column.getColumnName())){
column.setIsEdit(Global.NO);
column.setIsQuery(Global.NO);
}else if ("test_data_id".equals(column.getColumnName())){
column.setFullAttrName("testData");
}
}
}
/**
* 代码生成树表测试数据
*/
private void initGenTreeData() throws Exception{
GenTable genTable = new GenTable();
genTable.setIsNewRecord(true);
genTable.setTableName("test_tree");
genTable.setDataSourceName(dataSourceName);
genTable = genTableService.getFromDb(genTable);
genTable.setIsNewRecord(true);
genTable.setClassName("TestTree");
genTable.setFunctionAuthor("ThinkGem");
genTable.setTplCategory("treeGrid");
genTable.setPackageName("com.jeesite.modules");
genTable.setModuleName("test");
genTable.setSubModuleName("");
genTable.setFunctionName("测试树表");
genTable.setFunctionNameSimple("数据");
genTable.getOptionMap().put("isHaveDisableEnable", Global.YES);
genTable.getOptionMap().put("isHaveDelete", Global.YES);
genTable.getOptionMap().put("isFileUpload", Global.YES);
genTable.getOptionMap().put("isImageUpload", Global.YES);
genTable.getOptionMap().put("treeViewCode", "tree_code");
genTable.getOptionMap().put("treeViewName", "tree_name");
initGenTableColumn(genTable);
DataSourceHolder.setDataSourceName(dataSourceName);
genTableService.save(genTable);
}
}

View File

@@ -1,226 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.entity;
import jakarta.validation.constraints.Size;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.entity.Office;
import java.util.List;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
/**
* 测试数据Entity
* @author ThinkGem
* @version 2018-04-22
*/
@Table(name="test_data", alias="a", columns={
@Column(name="id", attrName="id", label="编号", isPK=true),
@Column(name="test_input", attrName="testInput", label="单行文本", queryType=QueryType.LIKE),
@Column(name="test_textarea", attrName="testTextarea", label="多行文本", queryType=QueryType.LIKE),
@Column(name="test_select", attrName="testSelect", label="下拉框"),
@Column(name="test_select_multiple", attrName="testSelectMultiple", label="下拉多选"),
@Column(name="test_radio", attrName="testRadio", label="单选框"),
@Column(name="test_checkbox", attrName="testCheckbox", label="复选框"),
@Column(name="test_date", attrName="testDate", label="日期选择", isUpdateForce=true/*是否强制更新当调用update并且该属性为空的时候允许更新为空*/),
@Column(name="test_datetime", attrName="testDatetime", label="日期时间", isUpdateForce=true),
@Column(name="test_user_code", attrName="testUser.userCode", label="用户选择"),
@Column(name="test_office_code", attrName="testOffice.officeCode", label="机构选择"),
@Column(name="test_area_code", attrName="testAreaCode", label="区域选择"),
@Column(name="test_area_name", attrName="testAreaName", label="区域名称"),
@Column(includeEntity=DataEntity.class),
}, joinTable={
@JoinTable(type=Type.LEFT_JOIN, entity=User.class, attrName="testUser", alias="u10",
on="u10.user_code = a.test_user_code", columns={
@Column(name="user_code", label="用户编码", isPK=true),
@Column(name="user_name", label="用户名称", isQuery=false),
}),
@JoinTable(type=Type.LEFT_JOIN, entity=Office.class, attrName="testOffice", alias="u11",
on="u11.office_code = a.test_office_code", columns={
@Column(name="office_code", label="机构编码", isPK=true),
@Column(name="office_name", label="机构名称", isQuery=false),
}),
}, orderBy="a.update_date DESC"
)
public class TestData extends DataEntity<TestData> {
private static final long serialVersionUID = 1L;
private String testInput; // 单行文本
private String testTextarea; // 多行文本
private String testSelect; // 下拉框
private String testSelectMultiple; // 下拉多选
private String testRadio; // 单选框
private String testCheckbox; // 复选框
private Date testDate; // 日期选择
private Date testDatetime; // 日期时间
private User testUser; // 用户选择
private Office testOffice; // 机构选择
private String testAreaCode; // 区域选择
private String testAreaName; // 区域名称
private List<TestDataChild> testDataChildList = ListUtils.newArrayList(); // 子表列表
public TestData() {
this(null);
}
public TestData(String id){
super(id);
}
@Size(min=0, max=200, message="单行文本长度不能超过 200 个字符")
public String getTestInput() {
return testInput;
}
public void setTestInput(String testInput) {
this.testInput = testInput;
}
@Size(min=0, max=200, message="多行文本长度不能超过 200 个字符")
public String getTestTextarea() {
return testTextarea;
}
public void setTestTextarea(String testTextarea) {
this.testTextarea = testTextarea;
}
@Size(min=0, max=10, message="下拉框长度不能超过 10 个字符")
public String getTestSelect() {
return testSelect;
}
public void setTestSelect(String testSelect) {
this.testSelect = testSelect;
}
@Size(min=0, max=200, message="下拉多选长度不能超过 200 个字符")
public String getTestSelectMultiple() {
return testSelectMultiple;
}
public void setTestSelectMultiple(String testSelectMultiple) {
this.testSelectMultiple = testSelectMultiple;
}
@Size(min=0, max=10, message="单选框长度不能超过 10 个字符")
public String getTestRadio() {
return testRadio;
}
public void setTestRadio(String testRadio) {
this.testRadio = testRadio;
}
@Size(min=0, max=200, message="复选框长度不能超过 200 个字符")
public String getTestCheckbox() {
return testCheckbox;
}
public void setTestCheckbox(String testCheckbox) {
this.testCheckbox = testCheckbox;
}
@JsonFormat(pattern = "yyyy-MM-dd")
public Date getTestDate() {
return testDate;
}
public void setTestDate(Date testDate) {
this.testDate = testDate;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
public Date getTestDatetime() {
return testDatetime;
}
public void setTestDatetime(Date testDatetime) {
this.testDatetime = testDatetime;
}
public User getTestUser() {
return testUser;
}
public void setTestUser(User testUser) {
this.testUser = testUser;
}
public Office getTestOffice() {
return testOffice;
}
public void setTestOffice(Office testOffice) {
this.testOffice = testOffice;
}
@Size(min=0, max=64, message="区域选择长度不能超过 64 个字符")
public String getTestAreaCode() {
return testAreaCode;
}
public void setTestAreaCode(String testAreaCode) {
this.testAreaCode = testAreaCode;
}
@Size(min=0, max=100, message="区域名称长度不能超过 100 个字符")
public String getTestAreaName() {
return testAreaName;
}
public void setTestAreaName(String testAreaName) {
this.testAreaName = testAreaName;
}
public Date getTestDate_gte() {
return sqlMap.getWhere().getValue("test_date", QueryType.GTE);
}
public void setTestDate_gte(Date testDate) {
sqlMap.getWhere().and("test_date", QueryType.GTE, testDate);
}
public Date getTestDate_lte() {
return sqlMap.getWhere().getValue("test_date", QueryType.LTE);
}
public void setTestDate_lte(Date testDate) {
sqlMap.getWhere().and("test_date", QueryType.LTE, testDate);
}
public Date getTestDatetime_gte() {
return sqlMap.getWhere().getValue("test_datetime", QueryType.GTE);
}
public void setTestDatetime_gte(Date testDatetime) {
sqlMap.getWhere().and("test_datetime", QueryType.GTE, testDatetime);
}
public Date getTestDatetime_lte() {
return sqlMap.getWhere().getValue("test_datetime", QueryType.LTE);
}
public void setTestDatetime_lte(Date testDatetime) {
sqlMap.getWhere().and("test_datetime", QueryType.LTE, testDatetime);
}
public List<TestDataChild> getTestDataChildList() {
return testDataChildList;
}
public void setTestDataChildList(List<TestDataChild> testDataChildList) {
this.testDataChildList = testDataChildList;
}
}

View File

@@ -1,236 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.entity;
import jakarta.validation.constraints.Size;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.entity.Office;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
/**
* 测试数据Entity
* @author ThinkGem
* @version 2018-04-22
*/
@Table(name="test_data_child", alias="a", columns={
@Column(name="id", attrName="id", label="编号", isPK=true),
@Column(name="test_sort", attrName="testSort", label="排序号"),
@Column(name="test_data_id", attrName="testData.id", label="父表主键"),
@Column(name="test_input", attrName="testInput", label="单行文本", queryType=QueryType.LIKE),
@Column(name="test_textarea", attrName="testTextarea", label="多行文本", queryType=QueryType.LIKE),
@Column(name="test_select", attrName="testSelect", label="下拉框"),
@Column(name="test_select_multiple", attrName="testSelectMultiple", label="下拉多选"),
@Column(name="test_radio", attrName="testRadio", label="单选框"),
@Column(name="test_checkbox", attrName="testCheckbox", label="复选框"),
@Column(name="test_date", attrName="testDate", label="日期选择", isUpdateForce=true),
@Column(name="test_datetime", attrName="testDatetime", label="日期时间", isUpdateForce=true),
@Column(name="test_user_code", attrName="testUser.userCode", label="用户选择"),
@Column(name="test_office_code", attrName="testOffice.officeCode", label="机构选择"),
@Column(name="test_area_code", attrName="testAreaCode", label="区域选择"),
@Column(name="test_area_name", attrName="testAreaName", label="区域名称", isQuery=false),
}, joinTable={
@JoinTable(type=Type.LEFT_JOIN, entity=User.class, attrName="testUser", alias="u12",
on="u12.user_code = a.test_user_code", columns={
@Column(name="user_code", label="用户编码", isPK=true),
@Column(name="user_name", label="用户名称", isQuery=false),
}),
@JoinTable(type=Type.LEFT_JOIN, entity=Office.class, attrName="testOffice", alias="u13",
on="u13.office_code = a.test_office_code", columns={
@Column(name="office_code", label="机构编码", isPK=true),
@Column(name="office_name", label="机构名称", isQuery=false),
}),
}, orderBy="a.id ASC"
)
public class TestDataChild extends DataEntity<TestDataChild> {
private static final long serialVersionUID = 1L;
private Long testSort; // 排序号
private TestData testData; // 父表主键 父类
private String testInput; // 单行文本
private String testTextarea; // 多行文本
private String testSelect; // 下拉框
private String testSelectMultiple; // 下拉多选
private String testRadio; // 单选框
private String testCheckbox; // 复选框
private Date testDate; // 日期选择
private Date testDatetime; // 日期时间
private User testUser; // 用户选择
private Office testOffice; // 机构选择
private String testAreaCode; // 区域选择
private String testAreaName; // 区域名称
public TestDataChild() {
this(null);
}
public TestDataChild(TestData testData){
this.testData = testData;
}
public Long getTestSort() {
return testSort;
}
public void setTestSort(Long testSort) {
this.testSort = testSort;
}
@Size(min=0, max=64, message="父表主键长度不能超过 64 个字符")
public TestData getTestData() {
return testData;
}
public void setTestData(TestData testData) {
this.testData = testData;
}
@Size(min=0, max=200, message="单行文本长度不能超过 200 个字符")
public String getTestInput() {
return testInput;
}
public void setTestInput(String testInput) {
this.testInput = testInput;
}
@Size(min=0, max=200, message="多行文本长度不能超过 200 个字符")
public String getTestTextarea() {
return testTextarea;
}
public void setTestTextarea(String testTextarea) {
this.testTextarea = testTextarea;
}
@Size(min=0, max=10, message="下拉框长度不能超过 10 个字符")
public String getTestSelect() {
return testSelect;
}
public void setTestSelect(String testSelect) {
this.testSelect = testSelect;
}
@Size(min=0, max=200, message="下拉多选长度不能超过 200 个字符")
public String getTestSelectMultiple() {
return testSelectMultiple;
}
public void setTestSelectMultiple(String testSelectMultiple) {
this.testSelectMultiple = testSelectMultiple;
}
@Size(min=0, max=10, message="单选框长度不能超过 10 个字符")
public String getTestRadio() {
return testRadio;
}
public void setTestRadio(String testRadio) {
this.testRadio = testRadio;
}
@Size(min=0, max=200, message="复选框长度不能超过 200 个字符")
public String getTestCheckbox() {
return testCheckbox;
}
public void setTestCheckbox(String testCheckbox) {
this.testCheckbox = testCheckbox;
}
@JsonFormat(pattern = "yyyy-MM-dd")
public Date getTestDate() {
return testDate;
}
public void setTestDate(Date testDate) {
this.testDate = testDate;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
public Date getTestDatetime() {
return testDatetime;
}
public void setTestDatetime(Date testDatetime) {
this.testDatetime = testDatetime;
}
public User getTestUser() {
return testUser;
}
public void setTestUser(User testUser) {
this.testUser = testUser;
}
public Office getTestOffice() {
return testOffice;
}
public void setTestOffice(Office testOffice) {
this.testOffice = testOffice;
}
@Size(min=0, max=64, message="区域选择长度不能超过 64 个字符")
public String getTestAreaCode() {
return testAreaCode;
}
public void setTestAreaCode(String testAreaCode) {
this.testAreaCode = testAreaCode;
}
@Size(min=0, max=100, message="区域名称长度不能超过 100 个字符")
public String getTestAreaName() {
return testAreaName;
}
public void setTestAreaName(String testAreaName) {
this.testAreaName = testAreaName;
}
public Date getTestDate_gte() {
return sqlMap.getWhere().getValue("test_date", QueryType.GTE);
}
public void setTestDate_gte(Date testDate) {
sqlMap.getWhere().and("test_date", QueryType.GTE, testDate);
}
public Date getTestDate_lte() {
return sqlMap.getWhere().getValue("test_date", QueryType.LTE);
}
public void setTestDate_lte(Date testDate) {
sqlMap.getWhere().and("test_date", QueryType.LTE, testDate);
}
public Date getTestDatetime_gte() {
return sqlMap.getWhere().getValue("test_datetime", QueryType.GTE);
}
public void setTestDatetime_gte(Date testDatetime) {
sqlMap.getWhere().and("test_datetime", QueryType.GTE, testDatetime);
}
public Date getTestDatetime_lte() {
return sqlMap.getWhere().getValue("test_datetime", QueryType.LTE);
}
public void setTestDatetime_lte(Date testDatetime) {
sqlMap.getWhere().and("test_datetime", QueryType.LTE, testDatetime);
}
}

View File

@@ -1,70 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.entity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.entity.TreeEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
/**
* 测试树表Entity
* @author ThinkGem
* @version 2018-04-22
*/
@Table(name="test_tree", alias="a", columns={
@Column(name="tree_code", attrName="treeCode", label="节点编码", isPK=true),
@Column(includeEntity=TreeEntity.class),
@Column(name="tree_name", attrName="treeName", label="节点名称", queryType=QueryType.LIKE, isTreeName=true),
@Column(includeEntity=DataEntity.class),
}, orderBy="a.tree_sorts, a.tree_code"
)
public class TestTree extends TreeEntity<TestTree> {
private static final long serialVersionUID = 1L;
private String treeCode; // 节点编码
private String treeName; // 节点名称
public TestTree() {
this(null);
}
public TestTree(String id){
super(id);
}
@Override
public TestTree getParent() {
return parent;
}
@Override
public void setParent(TestTree parent) {
this.parent = parent;
}
public String getTreeCode() {
return treeCode;
}
public void setTreeCode(String treeCode) {
this.treeCode = treeCode;
}
@NotBlank(message="节点名称不能为空")
@Size(min=0, max=200, message="节点名称长度不能超过 200 个字符")
public String getTreeName() {
return treeName;
}
public void setTreeName(String treeName) {
this.treeName = treeName;
}
}

View File

@@ -1,172 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.service;
import com.jeesite.common.entity.Page;
import com.jeesite.common.idgen.IdGen;
import com.jeesite.common.lang.DateUtils;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.file.utils.FileUploadUtils;
import com.jeesite.modules.sys.service.UserService;
import com.jeesite.modules.test.dao.TestDataChildDao;
import com.jeesite.modules.test.dao.TestDataDao;
import com.jeesite.modules.test.entity.TestData;
import com.jeesite.modules.test.entity.TestDataChild;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 测试数据Service
* @author ThinkGem
* @version 2018-04-22
*/
@Service
public class TestDataService extends CrudService<TestDataDao, TestData> {
@Autowired
private TestDataChildDao testDataChildDao;
/**
* 获取单条数据
* @param testData
* @return
*/
@Override
public TestData get(TestData testData) {
TestData entity = super.get(testData);
if (entity != null){
TestDataChild testDataChild = new TestDataChild(entity);
testDataChild.setStatus(TestDataChild.STATUS_NORMAL);
entity.setTestDataChildList(testDataChildDao.findList(testDataChild));
}
return entity;
}
/**
* 查询分页数据
* @param testData page 分页对象
* @param testData 查询条件
* @return
*/
@Override
public Page<TestData> findPage(TestData testData) {
// // 演示Map参数和返回值支持分页
// Page<Map<String, Object>> pageMap = new Page<>();
// Map<String, Object> params = MapUtils.newHashMap();
// params.put("testInput", "123");
// params.put("page", pageMap);
// pageMap.setList(dao.findListForMap(params));
// System.out.println(pageMap.getList());
// System.out.println(pageMap.getCount());
return super.findPage(testData);
}
/**
* 查询子表分页数据
* @param testData 查询条件
* @param testData page 分页对象
* @return
*/
public List<TestDataChild> findSubList(TestDataChild testData) {
return testDataChildDao.findList(testData);
}
/**
* 保存数据(插入或更新)
* @param testData
*/
@Override
@Transactional
public void save(TestData testData) {
super.save(testData);
// 保存上传图片
FileUploadUtils.saveFileUpload(testData, testData.getId(), "testData_image");
// 保存上传附件
FileUploadUtils.saveFileUpload(testData, testData.getId(), "testData_file");
// 保存 TestData子表
int index = 0;
for (TestDataChild testDataChild : testData.getTestDataChildList()){
if (!TestDataChild.STATUS_DELETE.equals(testDataChild.getStatus())){
testDataChild.setTestData(testData);
if (testDataChild.getIsNewRecord()){
testDataChild.preInsert();
testDataChildDao.insert(testDataChild);
}else{
testDataChild.preUpdate();
testDataChildDao.update(testDataChild);
}
}else{
testDataChildDao.delete(testDataChild);
}
// 保存上传附件
FileUploadUtils.saveFileUpload(testDataChild, testDataChild.getId(),
"testDataChildList["+index+"].testDataChild_file");
index++;
}
}
/**
* 更新状态
* @param testData
*/
@Override
@Transactional
public void updateStatus(TestData testData) {
super.updateStatus(testData);
}
/**
* 删除数据
* @param testData
*/
@Override
@Transactional
public void delete(TestData testData) {
super.delete(testData);
TestDataChild testDataChild = new TestDataChild();
testDataChild.setTestData(testData);
testDataChildDao.deleteByEntity(testDataChild);
}
/**
* 任务调度测试testDataService.executeTestTask(userService, 1, 2L, 3F, 4D, 'abc')
*/
public void executeTestTask(UserService userService, Integer i, Long l, Float f, Double d, String s){
System.out.println(DateUtils.getTime() + " 任务执行了~~~ bean: " + userService + ", i: " + i
+ ", l: " + l + ", f: " + f + ", d: " + d + ", s: " + s);
}
/**
* 事务测试,若 Child 报错,则回滚
*/
@Transactional//(propagation = Propagation.NOT_SUPPORTED)
public void transTest(TestData testData) {
testData.setTestInput("transTest");
testData.setTestTextarea(IdGen.randomBase62(5));
dao.insert(testData);
TestDataChild testDataChild = new TestDataChild();
testDataChild.setTestData(testData);
// 设置一个超出数据库范围的值,抛出数据库异常
StringBuilder sb = new StringBuilder();
for (int i=0; i<500; i++){
sb.append("transTest" + i);
}
testDataChild.setTestInput(sb.toString());
testDataChildDao.insert(testDataChild);
}
/**
* 事务验证,返回空,则事务回滚成功
*/
public boolean transValid(TestData testData) {
return dao.get(testData) == null;
}
}

View File

@@ -1,79 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.service;
import com.jeesite.common.service.TreeService;
import com.jeesite.modules.file.utils.FileUploadUtils;
import com.jeesite.modules.test.dao.TestTreeDao;
import com.jeesite.modules.test.entity.TestTree;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 测试树表Service
* @author ThinkGem
* @version 2018-04-22
*/
@Service
public class TestTreeService extends TreeService<TestTreeDao, TestTree> {
/**
* 获取单条数据
* @param testTree
* @return
*/
@Override
public TestTree get(TestTree testTree) {
return super.get(testTree);
}
/**
* 查询列表数据
* @param testTree
* @return
*/
@Override
public List<TestTree> findList(TestTree testTree) {
return super.findList(testTree);
}
/**
* 保存数据(插入或更新)
* @param testTree
*/
@Override
@Transactional
public void save(TestTree testTree) {
super.save(testTree);
// 保存上传图片
FileUploadUtils.saveFileUpload(testTree, testTree.getId(), "testTree_image");
// 保存上传附件
FileUploadUtils.saveFileUpload(testTree, testTree.getId(), "testTree_file");
}
/**
* 更新状态
* @param testTree
*/
@Override
@Transactional
public void updateStatus(TestTree testTree) {
super.updateStatus(testTree);
}
/**
* 删除数据
* @param testTree
*/
@Override
@Transactional
public void delete(TestTree testTree) {
testTree.sqlMap().markIdDelete(); // 逻辑删除时标记ID值
super.delete(testTree);
}
}

View File

@@ -1,58 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.web;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.test.entity.TestData;
import com.jeesite.modules.test.service.TestDataService;
/**
* 演示实例Controller
* @author ThinkGem
* @version 2018-03-24
*/
@Controller
@RequestMapping(value = "${adminPath}/demo")
public class DemoController extends BaseController {
@Autowired
private TestDataService testDataService;
/**
* 获取数据
*/
@ModelAttribute
public TestData get(String id, boolean isNewRecord) {
return testDataService.get(id, isNewRecord);
}
/**
* DataGrid
*/
@RequiresPermissions("test:testData:view")
@RequestMapping(value = "dataGrid/{viewName}")
public String dataGrid(@PathVariable String viewName, TestData testData, Model model) {
return "modules/demo/demoDataGrid" + StringUtils.cap(viewName);
}
/**
* Form
*/
@RequiresPermissions("test:testData:view")
@RequestMapping(value = "form/{viewName}")
public String form(@PathVariable String viewName, TestData testData, Model model) {
return "modules/demo/demoForm" + StringUtils.cap(viewName);
}
}

View File

@@ -1,153 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.web;
import java.util.List;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeesite.common.config.Global;
import com.jeesite.common.entity.Page;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.test.entity.TestData;
import com.jeesite.modules.test.entity.TestDataChild;
import com.jeesite.modules.test.service.TestDataService;
/**
* 测试数据Controller
* @author ThinkGem
* @version 2018-04-22
*/
@Controller
@RequestMapping(value = "${adminPath}/test/testData")
public class TestDataController extends BaseController {
@Autowired
private TestDataService testDataService;
/**
* 获取数据
*/
@ModelAttribute
public TestData get(String id, boolean isNewRecord) {
return testDataService.get(id, isNewRecord);
}
/**
* 查询列表
*/
@RequiresPermissions("test:testData:view")
@RequestMapping(value = {"list", ""})
public String list(TestData testData, Model model) {
model.addAttribute("testData", testData);
return "modules/test/testDataList";
}
/**
* 查询列表数据
*/
@RequiresPermissions("test:testData:view")
@RequestMapping(value = "listData")
@ResponseBody
public Page<TestData> listData(TestData testData, HttpServletRequest request, HttpServletResponse response) {
testData.setPage(new Page<>(request, response));
Page<TestData> page = testDataService.findPage(testData);
return page;
}
/**
* 查询子表列表数据
*/
@RequiresPermissions("test:testData:view")
@RequestMapping(value = "subListData")
@ResponseBody
public List<TestDataChild> subListData(TestDataChild testDataChild) {
return testDataService.findSubList(testDataChild);
}
/**
* 查看编辑表单
*/
@RequiresPermissions("test:testData:view")
@RequestMapping(value = "form")
public String form(TestData testData, Model model) {
model.addAttribute("testData", testData);
return "modules/test/testDataForm";
}
/**
* 保存数据
*/
@RequiresPermissions("test:testData:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated TestData testData) {
testDataService.save(testData);
return renderResult(Global.TRUE, text("保存数据成功!"));
}
/**
* 停用数据
*/
@RequiresPermissions("test:testData:edit")
@RequestMapping(value = "disable")
@ResponseBody
public String disable(TestData testData) {
testData.setStatus(TestData.STATUS_DISABLE);
testDataService.updateStatus(testData);
return renderResult(Global.TRUE, text("停用数据成功"));
}
/**
* 启用数据
*/
@RequiresPermissions("test:testData:edit")
@RequestMapping(value = "enable")
@ResponseBody
public String enable(TestData testData) {
testData.setStatus(TestData.STATUS_NORMAL);
testDataService.updateStatus(testData);
return renderResult(Global.TRUE, text("启用数据成功"));
}
/**
* 删除数据
*/
@RequiresPermissions("test:testData:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(TestData testData) {
testDataService.delete(testData);
return renderResult(Global.TRUE, text("删除数据成功!"));
}
/**
* 事务测试
*/
@RequiresPermissions("test:testData:edit")
@RequestMapping(value = "transTest")
@ResponseBody
public String transTest(TestData testData) {
try{
testDataService.transTest(testData);
}catch (Exception e) {
logger.debug("事务测试信息,报错回滚:" + e.getMessage());
}
boolean bl = testDataService.transValid(testData);
return renderResult(Global.TRUE, "事务测试"+(bl?"成功,数据已":"失败,数据未")+"回滚!");
}
}

View File

@@ -1,224 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.test.web;
import java.util.List;
import java.util.Map;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeesite.common.config.Global;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.collect.MapUtils;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.idgen.IdGen;
import com.jeesite.modules.sys.utils.UserUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.test.entity.TestTree;
import com.jeesite.modules.test.service.TestTreeService;
/**
* 测试树表Controller
* @author ThinkGem
* @version 2018-04-22
*/
@Controller
@RequestMapping(value = "${adminPath}/test/testTree")
public class TestTreeController extends BaseController {
@Autowired
private TestTreeService testTreeService;
/**
* 获取数据
*/
@ModelAttribute
public TestTree get(String treeCode, boolean isNewRecord) {
return testTreeService.get(treeCode, isNewRecord);
}
/**
* 查询列表
*/
@RequiresPermissions("test:testTree:view")
@RequestMapping(value = {"list", ""})
public String list(TestTree testTree, Model model) {
model.addAttribute("testTree", testTree);
return "modules/test/testTreeList";
}
/**
* 查询列表数据
*/
@RequiresPermissions("test:testTree:view")
@RequestMapping(value = "listData")
@ResponseBody
public List<TestTree> listData(TestTree testTree) {
if (StringUtils.isBlank(testTree.getParentCode())) {
testTree.setParentCode(TestTree.ROOT_CODE);
}
if (StringUtils.isNotBlank(testTree.getTreeName())){
testTree.setParentCode(null);
}
if (StringUtils.isNotBlank(testTree.getRemarks())){
testTree.setParentCode(null);
}
List<TestTree> list = testTreeService.findList(testTree);
return list;
}
/**
* 查看编辑表单
*/
@RequiresPermissions("test:testTree:view")
@RequestMapping(value = "form")
public String form(TestTree testTree, Model model) {
// 创建并初始化下一个节点信息
testTree = createNextNode(testTree);
model.addAttribute("testTree", testTree);
return "modules/test/testTreeForm";
}
/**
* 创建并初始化下一个节点信息,如:排序号、默认值
*/
@RequiresPermissions("test:testTree:edit")
@RequestMapping(value = "createNextNode")
@ResponseBody
public TestTree createNextNode(TestTree testTree) {
if (StringUtils.isNotBlank(testTree.getParentCode())){
testTree.setParent(testTreeService.get(testTree.getParentCode()));
}
if (testTree.getIsNewRecord()) {
TestTree where = new TestTree();
where.setParentCode(testTree.getParentCode());
TestTree last = testTreeService.getLastByParentCode(where);
// 获取到下级最后一个节点
if (last != null){
testTree.setTreeSort(last.getTreeSort() + 30);
testTree.setTreeCode(IdGen.nextCode(last.getTreeCode()));
}else if (testTree.getParent() != null){
testTree.setTreeCode(testTree.getParent().getTreeCode() + "001");
}
}
// 以下设置表单默认数据
if (testTree.getTreeSort() == null){
testTree.setTreeSort(TestTree.DEFAULT_TREE_SORT);
}
return testTree;
}
/**
* 保存数据
*/
@RequiresPermissions("test:testTree:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated TestTree testTree) {
testTreeService.save(testTree);
return renderResult(Global.TRUE, text("保存数据成功!"));
}
/**
* 停用数据
*/
@RequiresPermissions("test:testTree:edit")
@RequestMapping(value = "disable")
@ResponseBody
public String disable(TestTree testTree) {
TestTree where = new TestTree();
where.setStatus(TestTree.STATUS_NORMAL);
where.setParentCodes("," + testTree.getId() + ",");
long count = testTreeService.findCount(where);
if (count > 0) {
return renderResult(Global.FALSE, text("该数据包含未停用的子数据!"));
}
testTree.setStatus(TestTree.STATUS_DISABLE);
testTreeService.updateStatus(testTree);
return renderResult(Global.TRUE, text("停用数据成功"));
}
/**
* 启用数据
*/
@RequiresPermissions("test:testTree:edit")
@RequestMapping(value = "enable")
@ResponseBody
public String enable(TestTree testTree) {
testTree.setStatus(TestTree.STATUS_NORMAL);
testTreeService.updateStatus(testTree);
return renderResult(Global.TRUE, text("启用数据成功"));
}
/**
* 删除数据
*/
@RequiresPermissions("test:testTree:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(TestTree testTree) {
testTreeService.delete(testTree);
return renderResult(Global.TRUE, text("删除数据成功!"));
}
/**
* 获取树结构数据
* @param excludeCode 排除的Code
* @param isShowCode 是否显示编码true or 1显示在左侧2显示在右侧false or null不显示
* @return
*/
@RequiresPermissions("test:testTree:view")
@RequestMapping(value = "treeData")
@ResponseBody
public List<Map<String, Object>> treeData(String excludeCode, String isShowCode) {
List<Map<String, Object>> mapList = ListUtils.newArrayList();
List<TestTree> list = testTreeService.findList(new TestTree());
for (int i=0; i<list.size(); i++){
TestTree e = list.get(i);
// 过滤非正常的数据
if (!TestTree.STATUS_NORMAL.equals(e.getStatus())){
continue;
}
// 过滤被排除的编码(包括所有子级)
if (StringUtils.isNotBlank(excludeCode)){
if (e.getId().equals(excludeCode)){
continue;
}
if (e.getParentCodes().contains("," + excludeCode + ",")){
continue;
}
}
Map<String, Object> map = MapUtils.newHashMap();
map.put("id", e.getId());
map.put("pId", e.getParentCode());
map.put("name", StringUtils.getTreeNodeName(isShowCode, e.getTreeCode(), e.getTreeName()));
mapList.add(map);
}
return mapList;
}
/**
* 修复表结构相关数据
*/
@RequiresPermissions("test:testTree:edit")
@RequestMapping(value = "fixTreeData")
@ResponseBody
public String fixTreeData(TestTree testTree){
if (!UserUtils.getUser().isAdmin()){
return renderResult(Global.FALSE, "操作失败,只有管理员才能进行修复!");
}
testTreeService.fixTreeData();
return renderResult(Global.TRUE, "数据修复成功");
}
}

View File

@@ -1,132 +0,0 @@
/* Create Tables */
-- 测试数据
CREATE TABLE test_data
(
id varchar(64) NOT NULL,
test_input varchar(200),
test_textarea varchar(200),
test_select varchar(10),
test_select_multiple varchar(200),
test_radio varchar(10),
test_checkbox varchar(200),
test_date datetime,
test_datetime datetime,
test_user_code varchar(64),
test_office_code varchar(64),
test_area_code varchar(64),
test_area_name varchar(100),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date datetime NOT NULL,
update_by varchar(64) NOT NULL,
update_date datetime NOT NULL,
remarks varchar(500),
PRIMARY KEY (id)
);
-- 测试数据子表
CREATE TABLE test_data_child
(
id varchar(64) NOT NULL,
test_sort int,
test_data_id varchar(64),
test_input varchar(200),
test_textarea varchar(200),
test_select varchar(10),
test_select_multiple varchar(200),
test_radio varchar(10),
test_checkbox varchar(200),
test_date datetime,
test_datetime datetime,
test_user_code varchar(64),
test_office_code varchar(64),
test_area_code varchar(64),
test_area_name varchar(100),
PRIMARY KEY (id)
);
-- 测试树表
CREATE TABLE test_tree
(
tree_code varchar(64) NOT NULL,
parent_code varchar(64) NOT NULL,
parent_codes varchar(767) NOT NULL,
tree_sort decimal(10) NOT NULL,
tree_sorts varchar(767) NOT NULL,
tree_leaf char(1) NOT NULL,
tree_level decimal(4) NOT NULL,
tree_names varchar(767) NOT NULL,
tree_name varchar(200) NOT NULL,
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date datetime NOT NULL,
update_by varchar(64) NOT NULL,
update_date datetime NOT NULL,
remarks varchar(500),
PRIMARY KEY (tree_code)
);
/* Comments */
COMMENT ON TABLE test_data IS '测试数据';
COMMENT ON COLUMN test_data.id IS '编号';
COMMENT ON COLUMN test_data.test_input IS '单行文本';
COMMENT ON COLUMN test_data.test_textarea IS '多行文本';
COMMENT ON COLUMN test_data.test_select IS '下拉框';
COMMENT ON COLUMN test_data.test_select_multiple IS '下拉多选';
COMMENT ON COLUMN test_data.test_radio IS '单选框';
COMMENT ON COLUMN test_data.test_checkbox IS '复选框';
COMMENT ON COLUMN test_data.test_date IS '日期选择';
COMMENT ON COLUMN test_data.test_datetime IS '日期时间';
COMMENT ON COLUMN test_data.test_user_code IS '用户选择';
COMMENT ON COLUMN test_data.test_office_code IS '机构选择';
COMMENT ON COLUMN test_data.test_area_code IS '区域选择';
COMMENT ON COLUMN test_data.test_area_name IS '区域名称';
COMMENT ON COLUMN test_data.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN test_data.create_by IS '创建者';
COMMENT ON COLUMN test_data.create_date IS '创建时间';
COMMENT ON COLUMN test_data.update_by IS '更新者';
COMMENT ON COLUMN test_data.update_date IS '更新时间';
COMMENT ON COLUMN test_data.remarks IS '备注信息';
COMMENT ON TABLE test_data_child IS '测试数据子表';
COMMENT ON COLUMN test_data_child.id IS '编号';
COMMENT ON COLUMN test_data_child.test_sort IS '排序号';
COMMENT ON COLUMN test_data_child.test_data_id IS '父表主键';
COMMENT ON COLUMN test_data_child.test_input IS '单行文本';
COMMENT ON COLUMN test_data_child.test_textarea IS '多行文本';
COMMENT ON COLUMN test_data_child.test_select IS '下拉框';
COMMENT ON COLUMN test_data_child.test_select_multiple IS '下拉多选';
COMMENT ON COLUMN test_data_child.test_radio IS '单选框';
COMMENT ON COLUMN test_data_child.test_checkbox IS '复选框';
COMMENT ON COLUMN test_data_child.test_date IS '日期选择';
COMMENT ON COLUMN test_data_child.test_datetime IS '日期时间';
COMMENT ON COLUMN test_data_child.test_user_code IS '用户选择';
COMMENT ON COLUMN test_data_child.test_office_code IS '机构选择';
COMMENT ON COLUMN test_data_child.test_area_code IS '区域选择';
COMMENT ON COLUMN test_data_child.test_area_name IS '区域名称';
COMMENT ON TABLE test_tree IS '测试树表';
COMMENT ON COLUMN test_tree.tree_code IS '节点编码';
COMMENT ON COLUMN test_tree.parent_code IS '父级编号';
COMMENT ON COLUMN test_tree.parent_codes IS '所有父级编号';
COMMENT ON COLUMN test_tree.tree_sort IS '排序号(升序)';
COMMENT ON COLUMN test_tree.tree_sorts IS '所有排序号';
COMMENT ON COLUMN test_tree.tree_leaf IS '是否最末级';
COMMENT ON COLUMN test_tree.tree_level IS '层次级别';
COMMENT ON COLUMN test_tree.tree_names IS '全节点名';
COMMENT ON COLUMN test_tree.tree_name IS '节点名称';
COMMENT ON COLUMN test_tree.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN test_tree.create_by IS '创建者';
COMMENT ON COLUMN test_tree.create_date IS '创建时间';
COMMENT ON COLUMN test_tree.update_by IS '更新者';
COMMENT ON COLUMN test_tree.update_date IS '更新时间';
COMMENT ON COLUMN test_tree.remarks IS '备注信息';

View File

@@ -1,75 +0,0 @@
/* Create Tables */
-- 测试数据
CREATE TABLE [test_data]
(
[id] varchar(64) NOT NULL,
[test_input] varchar(200),
[test_textarea] nvarchar(200),
[test_select] varchar(10),
[test_select_multiple] varchar(200),
[test_radio] varchar(10),
[test_checkbox] varchar(200),
[test_date] datetime,
[test_datetime] datetime,
[test_user_code] varchar(64),
[test_office_code] varchar(64),
[test_area_code] varchar(64),
[test_area_name] nvarchar(100),
[status] char(1) DEFAULT '0' NOT NULL,
[create_by] varchar(64) NOT NULL,
[create_date] datetime NOT NULL,
[update_by] varchar(64) NOT NULL,
[update_date] datetime NOT NULL,
[remarks] nvarchar(500),
PRIMARY KEY ([id])
);
-- 测试数据子表
CREATE TABLE [test_data_child]
(
[id] varchar(64) NOT NULL,
[test_sort] int,
[test_data_id] varchar(64),
[test_input] varchar(200),
[test_textarea] nvarchar(200),
[test_select] varchar(10),
[test_select_multiple] varchar(200),
[test_radio] varchar(10),
[test_checkbox] varchar(200),
[test_date] datetime,
[test_datetime] datetime,
[test_user_code] varchar(64),
[test_office_code] varchar(64),
[test_area_code] varchar(64),
[test_area_name] nvarchar(100),
PRIMARY KEY ([id])
);
-- 测试树表
CREATE TABLE [test_tree]
(
[tree_code] varchar(64) NOT NULL,
[parent_code] varchar(64) NOT NULL,
[parent_codes] varchar(767) NOT NULL,
[tree_sort] decimal(10) NOT NULL,
[tree_sorts] varchar(767) NOT NULL,
[tree_leaf] char(1) NOT NULL,
[tree_level] decimal(4) NOT NULL,
[tree_names] varchar(767) NOT NULL,
[tree_name] nvarchar(200) NOT NULL,
[status] char(1) DEFAULT '0' NOT NULL,
[create_by] varchar(64) NOT NULL,
[create_date] datetime NOT NULL,
[update_by] varchar(64) NOT NULL,
[update_date] datetime NOT NULL,
[remarks] nvarchar(500),
PRIMARY KEY ([tree_code])
);

View File

@@ -1,76 +0,0 @@
SET SESSION FOREIGN_KEY_CHECKS=0;
/* Create Tables */
-- 测试数据
CREATE TABLE test_data
(
id varchar(64) NOT NULL COMMENT '编号',
test_input varchar(200) COMMENT '单行文本',
test_textarea varchar(200) COMMENT '多行文本',
test_select varchar(10) COMMENT '下拉框',
test_select_multiple varchar(200) COMMENT '下拉多选',
test_radio varchar(10) COMMENT '单选框',
test_checkbox varchar(200) COMMENT '复选框',
test_date datetime COMMENT '日期选择',
test_datetime datetime COMMENT '日期时间',
test_user_code varchar(64) COMMENT '用户选择',
test_office_code varchar(64) COMMENT '机构选择',
test_area_code varchar(64) COMMENT '区域选择',
test_area_name varchar(100) COMMENT '区域名称',
status char(1) DEFAULT '0' NOT NULL COMMENT '状态0正常 1删除 2停用',
create_by varchar(64) NOT NULL COMMENT '创建者',
create_date datetime NOT NULL COMMENT '创建时间',
update_by varchar(64) NOT NULL COMMENT '更新者',
update_date datetime NOT NULL COMMENT '更新时间',
remarks varchar(500) COMMENT '备注信息',
PRIMARY KEY (id)
) COMMENT = '测试数据';
-- 测试数据子表
CREATE TABLE test_data_child
(
id varchar(64) NOT NULL COMMENT '编号',
test_sort int COMMENT '排序号',
test_data_id varchar(64) COMMENT '父表主键',
test_input varchar(200) COMMENT '单行文本',
test_textarea varchar(200) COMMENT '多行文本',
test_select varchar(10) COMMENT '下拉框',
test_select_multiple varchar(200) COMMENT '下拉多选',
test_radio varchar(10) COMMENT '单选框',
test_checkbox varchar(200) COMMENT '复选框',
test_date datetime COMMENT '日期选择',
test_datetime datetime COMMENT '日期时间',
test_user_code varchar(64) COMMENT '用户选择',
test_office_code varchar(64) COMMENT '机构选择',
test_area_code varchar(64) COMMENT '区域选择',
test_area_name varchar(100) COMMENT '区域名称',
PRIMARY KEY (id)
) COMMENT = '测试数据子表';
-- 测试树表
CREATE TABLE test_tree
(
tree_code varchar(64) NOT NULL COMMENT '节点编码',
parent_code varchar(64) NOT NULL COMMENT '父级编号',
parent_codes varchar(767) NOT NULL COMMENT '所有父级编号',
tree_sort decimal(10) NOT NULL COMMENT '排序号(升序)',
tree_sorts varchar(767) NOT NULL COMMENT '所有排序号',
tree_leaf char(1) NOT NULL COMMENT '是否最末级',
tree_level decimal(4) NOT NULL COMMENT '层次级别',
tree_names varchar(767) NOT NULL COMMENT '全节点名',
tree_name varchar(200) NOT NULL COMMENT '节点名称',
status char(1) DEFAULT '0' NOT NULL COMMENT '状态0正常 1删除 2停用',
create_by varchar(64) NOT NULL COMMENT '创建者',
create_date datetime NOT NULL COMMENT '创建时间',
update_by varchar(64) NOT NULL COMMENT '更新者',
update_date datetime NOT NULL COMMENT '更新时间',
remarks varchar(500) COMMENT '备注信息',
PRIMARY KEY (tree_code)
) COMMENT = '测试树表';

View File

@@ -1,132 +0,0 @@
/* Create Tables */
-- 测试数据
CREATE TABLE test_data
(
id varchar2(64) NOT NULL,
test_input varchar2(200),
test_textarea nvarchar2(200),
test_select varchar2(10),
test_select_multiple varchar2(200),
test_radio varchar2(10),
test_checkbox varchar2(200),
test_date timestamp,
test_datetime timestamp,
test_user_code varchar2(64),
test_office_code varchar2(64),
test_area_code varchar2(64),
test_area_name nvarchar2(100),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar2(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar2(64) NOT NULL,
update_date timestamp NOT NULL,
remarks nvarchar2(500),
PRIMARY KEY (id)
);
-- 测试数据子表
CREATE TABLE test_data_child
(
id varchar2(64) NOT NULL,
test_sort number(10,0),
test_data_id varchar2(64),
test_input varchar2(200),
test_textarea nvarchar2(200),
test_select varchar2(10),
test_select_multiple varchar2(200),
test_radio varchar2(10),
test_checkbox varchar2(200),
test_date timestamp,
test_datetime timestamp,
test_user_code varchar2(64),
test_office_code varchar2(64),
test_area_code varchar2(64),
test_area_name nvarchar2(100),
PRIMARY KEY (id)
);
-- 测试树表
CREATE TABLE test_tree
(
tree_code varchar2(64) NOT NULL,
parent_code varchar2(64) NOT NULL,
parent_codes varchar2(767) NOT NULL,
tree_sort number(10) NOT NULL,
tree_sorts varchar2(767) NOT NULL,
tree_leaf char(1) NOT NULL,
tree_level number(4) NOT NULL,
tree_names varchar2(767) NOT NULL,
tree_name nvarchar2(200) NOT NULL,
status char(1) DEFAULT '0' NOT NULL,
create_by varchar2(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar2(64) NOT NULL,
update_date timestamp NOT NULL,
remarks nvarchar2(500),
PRIMARY KEY (tree_code)
);
/* Comments */
COMMENT ON TABLE test_data IS '测试数据';
COMMENT ON COLUMN test_data.id IS '编号';
COMMENT ON COLUMN test_data.test_input IS '单行文本';
COMMENT ON COLUMN test_data.test_textarea IS '多行文本';
COMMENT ON COLUMN test_data.test_select IS '下拉框';
COMMENT ON COLUMN test_data.test_select_multiple IS '下拉多选';
COMMENT ON COLUMN test_data.test_radio IS '单选框';
COMMENT ON COLUMN test_data.test_checkbox IS '复选框';
COMMENT ON COLUMN test_data.test_date IS '日期选择';
COMMENT ON COLUMN test_data.test_datetime IS '日期时间';
COMMENT ON COLUMN test_data.test_user_code IS '用户选择';
COMMENT ON COLUMN test_data.test_office_code IS '机构选择';
COMMENT ON COLUMN test_data.test_area_code IS '区域选择';
COMMENT ON COLUMN test_data.test_area_name IS '区域名称';
COMMENT ON COLUMN test_data.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN test_data.create_by IS '创建者';
COMMENT ON COLUMN test_data.create_date IS '创建时间';
COMMENT ON COLUMN test_data.update_by IS '更新者';
COMMENT ON COLUMN test_data.update_date IS '更新时间';
COMMENT ON COLUMN test_data.remarks IS '备注信息';
COMMENT ON TABLE test_data_child IS '测试数据子表';
COMMENT ON COLUMN test_data_child.id IS '编号';
COMMENT ON COLUMN test_data_child.test_sort IS '排序号';
COMMENT ON COLUMN test_data_child.test_data_id IS '父表主键';
COMMENT ON COLUMN test_data_child.test_input IS '单行文本';
COMMENT ON COLUMN test_data_child.test_textarea IS '多行文本';
COMMENT ON COLUMN test_data_child.test_select IS '下拉框';
COMMENT ON COLUMN test_data_child.test_select_multiple IS '下拉多选';
COMMENT ON COLUMN test_data_child.test_radio IS '单选框';
COMMENT ON COLUMN test_data_child.test_checkbox IS '复选框';
COMMENT ON COLUMN test_data_child.test_date IS '日期选择';
COMMENT ON COLUMN test_data_child.test_datetime IS '日期时间';
COMMENT ON COLUMN test_data_child.test_user_code IS '用户选择';
COMMENT ON COLUMN test_data_child.test_office_code IS '机构选择';
COMMENT ON COLUMN test_data_child.test_area_code IS '区域选择';
COMMENT ON COLUMN test_data_child.test_area_name IS '区域名称';
COMMENT ON TABLE test_tree IS '测试树表';
COMMENT ON COLUMN test_tree.tree_code IS '节点编码';
COMMENT ON COLUMN test_tree.parent_code IS '父级编号';
COMMENT ON COLUMN test_tree.parent_codes IS '所有父级编号';
COMMENT ON COLUMN test_tree.tree_sort IS '排序号(升序)';
COMMENT ON COLUMN test_tree.tree_sorts IS '所有排序号';
COMMENT ON COLUMN test_tree.tree_leaf IS '是否最末级';
COMMENT ON COLUMN test_tree.tree_level IS '层次级别';
COMMENT ON COLUMN test_tree.tree_names IS '全节点名';
COMMENT ON COLUMN test_tree.tree_name IS '节点名称';
COMMENT ON COLUMN test_tree.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN test_tree.create_by IS '创建者';
COMMENT ON COLUMN test_tree.create_date IS '创建时间';
COMMENT ON COLUMN test_tree.update_by IS '更新者';
COMMENT ON COLUMN test_tree.update_date IS '更新时间';
COMMENT ON COLUMN test_tree.remarks IS '备注信息';

View File

@@ -1,132 +0,0 @@
/* Create Tables */
-- 测试数据
CREATE TABLE test_data
(
id varchar(64) NOT NULL,
test_input varchar(200),
test_textarea varchar(200),
test_select varchar(10),
test_select_multiple varchar(200),
test_radio varchar(10),
test_checkbox varchar(200),
test_date timestamp,
test_datetime timestamp,
test_user_code varchar(64),
test_office_code varchar(64),
test_area_code varchar(64),
test_area_name varchar(100),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar(64) NOT NULL,
update_date timestamp NOT NULL,
remarks varchar(500),
PRIMARY KEY (id)
) WITHOUT OIDS;
-- 测试数据子表
CREATE TABLE test_data_child
(
id varchar(64) NOT NULL,
test_sort int,
test_data_id varchar(64),
test_input varchar(200),
test_textarea varchar(200),
test_select varchar(10),
test_select_multiple varchar(200),
test_radio varchar(10),
test_checkbox varchar(200),
test_date timestamp,
test_datetime timestamp,
test_user_code varchar(64),
test_office_code varchar(64),
test_area_code varchar(64),
test_area_name varchar(100),
PRIMARY KEY (id)
) WITHOUT OIDS;
-- 测试树表
CREATE TABLE test_tree
(
tree_code varchar(64) NOT NULL,
parent_code varchar(64) NOT NULL,
parent_codes varchar(767) NOT NULL,
tree_sort decimal(10) NOT NULL,
tree_sorts varchar(767) NOT NULL,
tree_leaf char(1) NOT NULL,
tree_level decimal(4) NOT NULL,
tree_names varchar(767) NOT NULL,
tree_name varchar(200) NOT NULL,
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar(64) NOT NULL,
update_date timestamp NOT NULL,
remarks varchar(500),
PRIMARY KEY (tree_code)
) WITHOUT OIDS;
/* Comments */
COMMENT ON TABLE test_data IS '测试数据';
COMMENT ON COLUMN test_data.id IS '编号';
COMMENT ON COLUMN test_data.test_input IS '单行文本';
COMMENT ON COLUMN test_data.test_textarea IS '多行文本';
COMMENT ON COLUMN test_data.test_select IS '下拉框';
COMMENT ON COLUMN test_data.test_select_multiple IS '下拉多选';
COMMENT ON COLUMN test_data.test_radio IS '单选框';
COMMENT ON COLUMN test_data.test_checkbox IS '复选框';
COMMENT ON COLUMN test_data.test_date IS '日期选择';
COMMENT ON COLUMN test_data.test_datetime IS '日期时间';
COMMENT ON COLUMN test_data.test_user_code IS '用户选择';
COMMENT ON COLUMN test_data.test_office_code IS '机构选择';
COMMENT ON COLUMN test_data.test_area_code IS '区域选择';
COMMENT ON COLUMN test_data.test_area_name IS '区域名称';
COMMENT ON COLUMN test_data.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN test_data.create_by IS '创建者';
COMMENT ON COLUMN test_data.create_date IS '创建时间';
COMMENT ON COLUMN test_data.update_by IS '更新者';
COMMENT ON COLUMN test_data.update_date IS '更新时间';
COMMENT ON COLUMN test_data.remarks IS '备注信息';
COMMENT ON TABLE test_data_child IS '测试数据子表';
COMMENT ON COLUMN test_data_child.id IS '编号';
COMMENT ON COLUMN test_data_child.test_sort IS '排序号';
COMMENT ON COLUMN test_data_child.test_data_id IS '父表主键';
COMMENT ON COLUMN test_data_child.test_input IS '单行文本';
COMMENT ON COLUMN test_data_child.test_textarea IS '多行文本';
COMMENT ON COLUMN test_data_child.test_select IS '下拉框';
COMMENT ON COLUMN test_data_child.test_select_multiple IS '下拉多选';
COMMENT ON COLUMN test_data_child.test_radio IS '单选框';
COMMENT ON COLUMN test_data_child.test_checkbox IS '复选框';
COMMENT ON COLUMN test_data_child.test_date IS '日期选择';
COMMENT ON COLUMN test_data_child.test_datetime IS '日期时间';
COMMENT ON COLUMN test_data_child.test_user_code IS '用户选择';
COMMENT ON COLUMN test_data_child.test_office_code IS '机构选择';
COMMENT ON COLUMN test_data_child.test_area_code IS '区域选择';
COMMENT ON COLUMN test_data_child.test_area_name IS '区域名称';
COMMENT ON TABLE test_tree IS '测试树表';
COMMENT ON COLUMN test_tree.tree_code IS '节点编码';
COMMENT ON COLUMN test_tree.parent_code IS '父级编号';
COMMENT ON COLUMN test_tree.parent_codes IS '所有父级编号';
COMMENT ON COLUMN test_tree.tree_sort IS '排序号(升序)';
COMMENT ON COLUMN test_tree.tree_sorts IS '所有排序号';
COMMENT ON COLUMN test_tree.tree_leaf IS '是否最末级';
COMMENT ON COLUMN test_tree.tree_level IS '层次级别';
COMMENT ON COLUMN test_tree.tree_names IS '全节点名';
COMMENT ON COLUMN test_tree.tree_name IS '节点名称';
COMMENT ON COLUMN test_tree.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN test_tree.create_by IS '创建者';
COMMENT ON COLUMN test_tree.create_date IS '创建时间';
COMMENT ON COLUMN test_tree.update_by IS '更新者';
COMMENT ON COLUMN test_tree.update_date IS '更新时间';
COMMENT ON COLUMN test_tree.remarks IS '备注信息';

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeesite.modules.test.dao.TestDataChildDao">
<!-- 查询数据
<select id="findList" resultType="TestDataChild">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
</mapper>

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeesite.modules.test.dao.TestDataDao">
<!-- 查询数据
<select id="findList" resultType="TestData">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
<!-- 演示Map参数和返回值支持分页 -->
<select id="findListForMap" resultType="map">
SELECT * FROM test_data a
<where>
<if test="testInput != null and testInput != ''">
AND a.test_input = #{testInput}
</if>
</where>
<if test="page != null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</if>
</select>
</mapper>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeesite.modules.test.dao.TestTreeDao">
<!-- 查询数据
<select id="findList" resultType="TestTree">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
</mapper>