单表代码生成,完美了,支持强制新行,栅格定义。
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
* 测试数据DAO接口
|
||||
* @author ThinkGem
|
||||
* @version 2018-01-28
|
||||
*/
|
||||
@MyBatisDao
|
||||
public interface TestDataDao extends CrudDao<TestData> {
|
||||
|
||||
}
|
||||
225
web/src/main/java/com/jeesite/modules/test/entity/TestData.java
Normal file
225
web/src/main/java/com/jeesite/modules/test/entity/TestData.java
Normal file
@@ -0,0 +1,225 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
package com.jeesite.modules.test.entity;
|
||||
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
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.Extend;
|
||||
|
||||
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-01-28
|
||||
*/
|
||||
@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="日期选择"),
|
||||
@Column(name="test_datetime", attrName="testDatetime", label="日期时间"),
|
||||
@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),
|
||||
@Column(includeEntity=DataEntity.class),
|
||||
@Column(includeEntity=Extend.class, attrName="extend"),
|
||||
}, 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 Extend extend; // 扩展字段
|
||||
|
||||
public TestData() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public TestData(String id){
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Length(min=0, max=200, message="单行文本长度不能超过 200 个字符")
|
||||
public String getTestInput() {
|
||||
return testInput;
|
||||
}
|
||||
|
||||
public void setTestInput(String testInput) {
|
||||
this.testInput = testInput;
|
||||
}
|
||||
|
||||
@Length(min=0, max=200, message="多行文本长度不能超过 200 个字符")
|
||||
public String getTestTextarea() {
|
||||
return testTextarea;
|
||||
}
|
||||
|
||||
public void setTestTextarea(String testTextarea) {
|
||||
this.testTextarea = testTextarea;
|
||||
}
|
||||
|
||||
@Length(min=0, max=10, message="下拉框长度不能超过 10 个字符")
|
||||
public String getTestSelect() {
|
||||
return testSelect;
|
||||
}
|
||||
|
||||
public void setTestSelect(String testSelect) {
|
||||
this.testSelect = testSelect;
|
||||
}
|
||||
|
||||
@Length(min=0, max=200, message="下拉多选长度不能超过 200 个字符")
|
||||
public String getTestSelectMultiple() {
|
||||
return testSelectMultiple;
|
||||
}
|
||||
|
||||
public void setTestSelectMultiple(String testSelectMultiple) {
|
||||
this.testSelectMultiple = testSelectMultiple;
|
||||
}
|
||||
|
||||
@Length(min=0, max=10, message="单选框长度不能超过 10 个字符")
|
||||
public String getTestRadio() {
|
||||
return testRadio;
|
||||
}
|
||||
|
||||
public void setTestRadio(String testRadio) {
|
||||
this.testRadio = testRadio;
|
||||
}
|
||||
|
||||
@Length(min=0, max=200, message="复选框长度不能超过 200 个字符")
|
||||
public String getTestCheckbox() {
|
||||
return testCheckbox;
|
||||
}
|
||||
|
||||
public void setTestCheckbox(String testCheckbox) {
|
||||
this.testCheckbox = testCheckbox;
|
||||
}
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
public Date getTestDate() {
|
||||
return testDate;
|
||||
}
|
||||
|
||||
public void setTestDate(Date testDate) {
|
||||
this.testDate = testDate;
|
||||
}
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
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;
|
||||
}
|
||||
|
||||
@Length(min=0, max=64, message="区域选择长度不能超过 64 个字符")
|
||||
public String getTestAreaCode() {
|
||||
return testAreaCode;
|
||||
}
|
||||
|
||||
public void setTestAreaCode(String testAreaCode) {
|
||||
this.testAreaCode = testAreaCode;
|
||||
}
|
||||
|
||||
@Length(min=0, max=100, message="区域名称长度不能超过 100 个字符")
|
||||
public String getTestAreaName() {
|
||||
return testAreaName;
|
||||
}
|
||||
|
||||
public void setTestAreaName(String testAreaName) {
|
||||
this.testAreaName = testAreaName;
|
||||
}
|
||||
|
||||
public Extend getExtend() {
|
||||
return extend;
|
||||
}
|
||||
|
||||
public void setExtend(Extend extend) {
|
||||
this.extend = extend;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
package com.jeesite.modules.test.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jeesite.common.entity.Page;
|
||||
import com.jeesite.common.service.CrudService;
|
||||
import com.jeesite.modules.test.entity.TestData;
|
||||
import com.jeesite.modules.test.dao.TestDataDao;
|
||||
import com.jeesite.modules.file.utils.FileUploadUtils;
|
||||
|
||||
/**
|
||||
* 测试数据Service
|
||||
* @author ThinkGem
|
||||
* @version 2018-01-28
|
||||
*/
|
||||
@Service
|
||||
@Transactional(readOnly=true)
|
||||
public class TestDataService extends CrudService<TestDataDao, TestData> {
|
||||
|
||||
/**
|
||||
* 获取单条数据
|
||||
* @param testData
|
||||
* @return
|
||||
*/
|
||||
public TestData get(TestData testData) {
|
||||
return super.get(testData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询分页数据
|
||||
* @param page 分页对象
|
||||
* @param testData
|
||||
* @return
|
||||
*/
|
||||
public Page<TestData> findPage(Page<TestData> page, TestData testData) {
|
||||
return super.findPage(page, testData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据(插入或更新)
|
||||
* @param testData
|
||||
*/
|
||||
@Transactional(readOnly=false)
|
||||
public void save(TestData testData) {
|
||||
super.save(testData);
|
||||
// 保存上传图片
|
||||
FileUploadUtils.saveFileUpload(testData.getId(), "testData_image");
|
||||
// 保存上传附件
|
||||
FileUploadUtils.saveFileUpload(testData.getId(), "testData_file");
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新状态
|
||||
* @param testData
|
||||
*/
|
||||
@Transactional(readOnly=false)
|
||||
public void updateStatus(TestData testData) {
|
||||
super.updateStatus(testData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
* @param testData
|
||||
*/
|
||||
@Transactional(readOnly=false)
|
||||
public void delete(TestData testData) {
|
||||
super.delete(testData);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
package com.jeesite.modules.test.web;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.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.sys.utils.UserUtils;
|
||||
import com.jeesite.modules.test.entity.TestData;
|
||||
import com.jeesite.modules.test.service.TestDataService;
|
||||
|
||||
/**
|
||||
* 测试数据Controller
|
||||
* @author ThinkGem
|
||||
* @version 2018-01-28
|
||||
*/
|
||||
@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) {
|
||||
Page<TestData> page = testDataService.findPage(new Page<TestData>(request, response), testData);
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看编辑表单
|
||||
*/
|
||||
@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, "保存数据成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 停用数据
|
||||
*/
|
||||
@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, "停用数据成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用数据
|
||||
*/
|
||||
@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, "启用数据成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*/
|
||||
@RequiresPermissions("test:testData:edit")
|
||||
@RequestMapping(value = "delete")
|
||||
@ResponseBody
|
||||
public String delete(TestData testData) {
|
||||
testDataService.delete(testData);
|
||||
return renderResult(Global.TRUE, "删除数据成功!");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user