题库分类

main
tamguo 7 years ago
parent c33b55f107
commit 9ded1ff1ca

@ -1,14 +1,13 @@
package com.tamguo.modules.tiku.model; package com.tamguo.modules.tiku.model;
import java.util.Date; import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill; import com.baomidou.mybatisplus.enums.FieldFill;
import com.tamguo.modules.tiku.model.enums.SysSubjectStatusEnum; import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum;
@TableName(value="tiku_subject") @TableName(value="tiku_subject")
public class SubjectEntity { public class SubjectEntity {
@ -30,7 +29,7 @@ public class SubjectEntity {
private String remarks; private String remarks;
@JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString) @JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString)
private SysSubjectStatusEnum status; private SubjectStatusEnum status;
public String getUid() { public String getUid() {
return uid; return uid;
@ -74,10 +73,10 @@ public class SubjectEntity {
public void setUpdateDate(Date updateDate) { public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate; this.updateDate = updateDate;
} }
public SysSubjectStatusEnum getStatus() { public SubjectStatusEnum getStatus() {
return status; return status;
} }
public void setStatus(SysSubjectStatusEnum status) { public void setStatus(SubjectStatusEnum status) {
this.status = status; this.status = status;
} }
public String getRemarks() { public String getRemarks() {

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.enums.IEnum;
/** /**
* *
*/ */
public enum SysSubjectStatusEnum implements IEnum { public enum SubjectStatusEnum implements IEnum {
NORMAL("normal", "正常"), NORMAL("normal", "正常"),
DELETE("delete", "删除"), DELETE("delete", "删除"),
DISABLED("disabled" , "停用"); DISABLED("disabled" , "停用");
@ -14,7 +14,7 @@ public enum SysSubjectStatusEnum implements IEnum {
private String value; private String value;
private String desc; private String desc;
SysSubjectStatusEnum(final String value, final String desc) { SubjectStatusEnum(final String value, final String desc) {
this.value = value; this.value = value;
this.desc = desc; this.desc = desc;
} }

@ -12,4 +12,16 @@ public interface ISubjectService extends IService<SubjectEntity>{
/** 保存分类*/ /** 保存分类*/
void save(SubjectEntity subject); void save(SubjectEntity subject);
/** 修改分类*/
void update(SubjectEntity subject);
/** 激活分类*/
void enable(String uid);
/** 停用分类*/
void disabled(String uid);
/** 删除分类*/
void delete(String uid);
} }

@ -11,11 +11,12 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.tamguo.modules.tiku.dao.SubjectMapper; import com.tamguo.modules.tiku.dao.SubjectMapper;
import com.tamguo.modules.tiku.model.SubjectEntity; import com.tamguo.modules.tiku.model.SubjectEntity;
import com.tamguo.modules.tiku.model.condition.SubjectCondition; import com.tamguo.modules.tiku.model.condition.SubjectCondition;
import com.tamguo.modules.tiku.model.enums.SysSubjectStatusEnum; import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum;
import com.tamguo.modules.tiku.service.ISubjectService; import com.tamguo.modules.tiku.service.ISubjectService;
@Service @Service
public class SubjectService extends ServiceImpl<SubjectMapper, SubjectEntity> implements ISubjectService{ public class SubjectService extends ServiceImpl<SubjectMapper, SubjectEntity> implements ISubjectService{
@Autowired @Autowired
private SubjectMapper subjectMapper; private SubjectMapper subjectMapper;
@ -32,14 +33,49 @@ public class SubjectService extends ServiceImpl<SubjectMapper, SubjectEntity> im
}else if(!StringUtils.isEmpty(condition.getStatus())) { }else if(!StringUtils.isEmpty(condition.getStatus())) {
query.eq("status", condition.getStatus()); query.eq("status", condition.getStatus());
} }
query.ne("status", SubjectStatusEnum.DELETE.getValue());
return page.setRecords(subjectMapper.selectPage(page, query)); return page.setRecords(subjectMapper.selectPage(page, query));
} }
@Transactional(readOnly=false) @Transactional(readOnly=false)
@Override @Override
public void save(SubjectEntity subject) { public void save(SubjectEntity subject) {
subject.setStatus(SysSubjectStatusEnum.NORMAL); subject.setStatus(SubjectStatusEnum.NORMAL);
subjectMapper.insert(subject); subjectMapper.insert(subject);
} }
@Transactional(readOnly=false)
@Override
public void update(SubjectEntity subject) {
SubjectEntity entity = subjectMapper.selectById(subject.getUid());
entity.setName(subject.getName());
entity.setRemarks(subject.getRemarks());
entity.setSort(subject.getSort());
subjectMapper.updateById(entity);
}
@Transactional(readOnly=false)
@Override
public void enable(String uid) {
SubjectEntity entity = subjectMapper.selectById(uid);
entity.setStatus(SubjectStatusEnum.NORMAL);
subjectMapper.updateById(entity);
}
@Transactional(readOnly=false)
@Override
public void disabled(String uid) {
SubjectEntity entity = subjectMapper.selectById(uid);
entity.setStatus(SubjectStatusEnum.DISABLED);
subjectMapper.updateById(entity);
}
@Transactional(readOnly=false)
@Override
public void delete(String uid) {
SubjectEntity entity = subjectMapper.selectById(uid);
entity.setStatus(SubjectStatusEnum.DELETE);
subjectMapper.updateById(entity);
}
} }

@ -0,0 +1,5 @@
<?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.tamguo.modules.tiku.dao.SubjectMapper">
</mapper>

@ -22,6 +22,7 @@ public class SubjectController {
/** 题库分类*/ /** 题库分类*/
private final String SUBJECT_INDEX_PAGE = "modules/tiku/subject/index"; private final String SUBJECT_INDEX_PAGE = "modules/tiku/subject/index";
private final String SUBJECT_UPDATE_PAGE = "modules/tiku/subject/update";
@Autowired @Autowired
private ISubjectService iSubjectService; private ISubjectService iSubjectService;
@ -32,6 +33,13 @@ public class SubjectController {
return model; return model;
} }
@RequestMapping(path="update")
public ModelAndView update(String uid , ModelAndView model) {
model.setViewName(SUBJECT_UPDATE_PAGE);
model.addObject("subject", iSubjectService.selectById(uid));
return model;
}
@RequestMapping(path="listData",method=RequestMethod.POST) @RequestMapping(path="listData",method=RequestMethod.POST)
@ResponseBody @ResponseBody
public Map<String, Object> listData(SubjectCondition condition) { public Map<String, Object> listData(SubjectCondition condition) {
@ -61,4 +69,49 @@ public class SubjectController {
return ExceptionSupport.resolverResult("保存分类", this.getClass(), e); return ExceptionSupport.resolverResult("保存分类", this.getClass(), e);
} }
} }
@RequestMapping(path="update",method=RequestMethod.POST)
@ResponseBody
public Result update(SubjectEntity subject) {
try {
iSubjectService.update(subject);
return Result.result(0, null, "修改分类【"+subject.getName()+"】成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("修改分类", this.getClass(), e);
}
}
@RequestMapping(path="enable",method=RequestMethod.POST)
@ResponseBody
public Result enable(String uid) {
try {
iSubjectService.enable(uid);
return Result.result(0, null, "激活分类成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("激活分类", this.getClass(), e);
}
}
@RequestMapping(path="disabled",method=RequestMethod.POST)
@ResponseBody
public Result disabled(String uid) {
try {
iSubjectService.disabled(uid);
return Result.result(0, null, "停用分类成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("停用分类", this.getClass(), e);
}
}
@RequestMapping(path="delete",method=RequestMethod.POST)
@ResponseBody
public Result delete(String uid) {
try {
iSubjectService.delete(uid);
return Result.result(0, null, "删除分类成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("删除分类", this.getClass(), e);
}
}
} }

@ -55,7 +55,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title=""> <label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 排序号:<i class="fa icon-question hide"></i></label> <span class="required hide">*</span> 排序号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" id="postSort" name="postSort" value="40" maxlength="10" class="form-control digits"/> <input type="text" id="postSort" name="postSort" value="" maxlength="10" class="form-control digits"/>
</div> </div>
</div> </div>
</div> </div>

@ -29,7 +29,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
</div> </div>
</div> </div>
<div class="box-body"> <div class="box-body">
<form id="searchForm" th:action="${setting.domain + 'tiku/subject/listData'}" method="post" class="form-inline hide" data-page-no="1" data-page-size="20" data-order-by=""> <form id="searchForm" th:action="${setting.domain + 'tiku/subject/listData'}" method="post" class="form-inline hide" data-page-no="1" data-page-size="10" data-order-by="">
<div class="form-group"> <div class="form-group">
<label class="control-label">类型编码:</label> <label class="control-label">类型编码:</label>
<div class="control-inline"> <div class="control-inline">
@ -82,7 +82,7 @@ $('#dataGrid').dataGrid({
searchForm: $("#searchForm"), searchForm: $("#searchForm"),
columnModel: [ columnModel: [
{header:'类型名称', name:'name', index:'a.post_name', width:200, align:"center", frozen:true, formatter: function(val, obj, row, act){ {header:'类型名称', name:'name', index:'a.post_name', width:200, align:"center", frozen:true, formatter: function(val, obj, row, act){
return '<a href="'+ctx+'tk/post/detail?id='+row.id+'" class="btnList" data-title="编辑岗位">'+(val||row.id)+'</a>'; return '<a href="'+ctx+'tiku/subject/update?uid='+row.uid+'" class="btnList" data-title="编辑岗位">'+(val||row.uid)+'</a>';
}}, }},
{header:'类型编码', name:'uid', index:'a.post_code', width:200, align:"center"}, {header:'类型编码', name:'uid', index:'a.post_code', width:200, align:"center"},
{header:'排序号', name:'sort', index:'a.post_sort', width:80, align:"center"}, {header:'排序号', name:'sort', index:'a.post_sort', width:80, align:"center"},
@ -91,22 +91,22 @@ $('#dataGrid').dataGrid({
{header:'状态', name:'status', index:'a.status', width:80, align:"center", formatter: function(val, obj, row, act){ {header:'状态', name:'status', index:'a.status', width:80, align:"center", formatter: function(val, obj, row, act){
if(val == "normal"){ if(val == "normal"){
return '正常'; return '正常';
}else if(val == "disable"){ }else if(val == "disabled"){
return '停用'; return '<span style="color:red;">停用</span>';
}else{ }else{
return '未知'; return '<span style="color:red;">未知</span>';
} }
}}, }},
{header:'操作', name:'actions', width:130, sortable:false, title:false, formatter: function(val, obj, row, act){ {header:'操作', name:'actions', width:130, sortable:false, title:false, formatter: function(val, obj, row, act){
var actions = []; var actions = [];
actions.push('<a href="'+ctx+'sys/post/update?id='+row.postCode+'" class="btnList" title="编辑岗位"><i class="fa fa-pencil"></i></a>&nbsp;'); actions.push('<a href="'+ctx+'tiku/subject/update?uid='+row.uid+'" class="btnList" title="编辑分类"><i class="fa fa-pencil"></i></a>&nbsp;');
if (row.status == "normal"){ if (row.status == "normal"){
actions.push('<a href="'+ctx+'sys/post/detail?id='+row.id+'" class="btnList" title="停用岗位" data-confirm="确认要停用该岗位吗?"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;'); actions.push('<a href="'+ctx+'tiku/subject/disabled?uid='+row.uid+'" class="btnList" title="停用分类" data-confirm="确认要停用该分类吗?"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
} }
if (row.status == "disabled"){ if (row.status == "disabled"){
actions.push('<a href="/js/a/sys/post/enable?postCode='+row.id+'" class="btnList" title="启用岗位" data-confirm="确认要启用该岗位吗?"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;'); actions.push('<a href="'+ctx+'tiku/subject/enable?uid='+row.uid+'" class="btnList" title="启用分类" data-confirm="确认要启用该分类吗?"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
} }
actions.push('<a href="/js/a/sys/post/delete?postCode='+row.id+'" class="btnList" title="删除岗位" data-confirm="确认要删除该岗位吗?"><i class="fa fa-trash-o"></i></a>&nbsp;'); actions.push('<a href="'+ctx+'tiku/subject/delete?uid='+row.uid+'" class="btnList" title="删除分类" data-confirm="确认要删除该分类吗?"><i class="fa fa-trash-o"></i></a>&nbsp;');
return actions.join(''); return actions.join('');
}} }}
], ],

@ -0,0 +1,113 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta content="webkit" name="renderer"/><meta http-equiv="X-UA-Compatible"
content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta http-equiv="Cache-Control"
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>岗位管理 - JeeSite Demo</title>
<script th:src="${setting.domain + 'global.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-1.12.4.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-migrate-1.4.1.min.js'}"></script>
<!--[if lt IE 9]><script src="/js/static/common/h5fix.min.js"></script><![endif]-->
<link rel="stylesheet" th:href="${setting.domain + 'fonts/font-icons.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'bootstrap/css/bootstrap.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'select2/4.0/select2.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'icheck/1.0/minimal/grey.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'adminlte/css/AdminLTE.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/jeesite.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/common.css'}">
</head><body class="hold-transition ">
<div class="wrapper"><div class="main-content">
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-trophy"></i> 编辑岗位
</div>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<form id="inputForm" th:action="${setting.domain + 'tiku/subject/update'}" method="post" class="form-horizontal">
<div class="box-body">
<div class="form-unit">基本信息</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 分类名称:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="name" name="name" th:value="${subject.name}" maxlength="100" class="form-control required "/>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 分类编码:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="uid" name="uid" th:value="${subject.uid}" maxlength="64" readonly="true" class="form-control required abc"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 排序号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="sort" name="sort" th:value="${subject.sort}" maxlength="10" class="form-control digits"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> 备注信息:<i class="fa icon-question hide"></i></label>
<div class="col-sm-10">
<textarea id="remarks" name="remarks" rows="4" maxlength="500" class="form-control " th:utext="${subject.remarks}"></textarea>
</div>
</div>
</div>
</div>
</div>
<div class="box-footer">
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> 保 存</button>&nbsp;
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> 关 闭</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<a id="scroll-up" href="#" class="btn btn-sm"><i class="fa fa-angle-double-up"></i></a>
<script th:src="${setting.domain + 'bootstrap/js/bootstrap.min.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/select2.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/i18n/zh_CN.js'}"></script>
<script th:src="${setting.domain + 'layer/3.1/layer.js'}"></script>
<script th:src="${setting.domain + 'my97/WdatePicker.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/jquery.validate.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/localization/messages_zh_CN.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/jquery.validate.extend.js'}"></script>
<script th:src="${setting.domain + 'common/jeesite.js'}"></script>
<script th:src="${setting.domain + 'common/i18n/jeesite_zh_CN.js'}"></script>
<script th:src="${setting.domain + 'common/common.js'}"></script>
<script>
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);
if(data.code == 0){
js.closeCurrentTabPage(function(contentWindow){
contentWindow.page();
});
}
}, "json");
}
});
</script>
Loading…
Cancel
Save