浏览代码

学校关联练习册

shenhao 4 年之前
父节点
当前提交
cec7864f92

+ 18 - 0
src/main/java/com/ssj/school/book/dao/ISchoolBookDao.java

@@ -0,0 +1,18 @@
+package com.ssj.school.book.dao;
+
+import com.ssj.school.book.entity.SchoolBookDetail;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author sh
+ * @className ISchoolBookDao
+ * @description dao
+ * @date 2021/2/9
+ */
+@Repository
+public interface ISchoolBookDao extends JpaRepository<SchoolBookDetail,String> {
+    @Query(nativeQuery = true,value = "select * from sys_school_book_detail where school_id=?1 and book_id = ?2 limit 1")
+    SchoolBookDetail findDataBySchoolIdAndBookId(String schoolId, String bookId);
+}

+ 18 - 0
src/main/java/com/ssj/school/book/dao/ISchoolBookQueryDao.java

@@ -0,0 +1,18 @@
+package com.ssj.school.book.dao;
+
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.Map;
+
+/**
+ * @author sh
+ * @className ISchoolBookQueryDao
+ * @description queryDao
+ * @date 2021/2/9
+ */
+public interface ISchoolBookQueryDao {
+    Page<Map<String, Object>> findBookDetailPage(Map<String, Object> params, Pageable initPage);
+
+    Page<Map<String, Object>> bookList(Map<String, Object> params, Pageable initPage);
+}

+ 69 - 0
src/main/java/com/ssj/school/book/dao/impl/SchoolBookQueryDaoImpl.java

@@ -0,0 +1,69 @@
+package com.ssj.school.book.dao.impl;
+
+import com.ssj.framework.core.persistence.PagingHibernateJdbcDao;
+import com.ssj.school.book.dao.ISchoolBookQueryDao;
+import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Repository;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * @author sh
+ * @className SchoolBookQueryDaoImpl
+ * @description queryDaoImpl
+ * @date 2021/2/9
+ */
+@Repository
+public class SchoolBookQueryDaoImpl implements ISchoolBookQueryDao {
+
+    @Autowired
+    private PagingHibernateJdbcDao dao;
+
+    @Override
+    public Page<Map<String, Object>> findBookDetailPage(Map<String, Object> params, Pageable initPage) {
+        List<Object> queryParams = new ArrayList<>();
+        StringBuffer sql = new StringBuffer();
+        sql.append("select t.id,t.school_name,t11.book_name,t11.book_subject,t11.version_name,t11.book_grade,IF(t11.semester=1,'上学期','下学期') as semester,t11.book_year  ");
+        sql.append(" from sys_school_book_detail t ");
+        sql.append(" left join q_workbook t11 on t.book_id = t11.id ");
+        sql.append(" where t11.status = 1 ");
+        if(Objects.nonNull(params.get("name")) && StringUtils.isNotBlank(MapUtils.getString(params,"name"))){
+            sql.append(" and t.school_name like concat('%',?,'%')");
+            queryParams.add(params.get("name"));
+        }
+        return dao.findPage(sql.toString(),queryParams.toArray(),initPage);
+    }
+
+    @Override
+    public Page<Map<String, Object>> bookList(Map<String, Object> params, Pageable initPage) {
+        List<Object> queryParams = new ArrayList<>();
+        StringBuffer sql = new StringBuffer();
+        sql.append("select t11.id,t11.book_name,t11.book_subject,t11.version_name,t11.book_grade,IF(t11.semester=1,'上学期','下学期') as semester,t11.book_year  ");
+        sql.append(" from q_workbook t11 ");
+        sql.append(" where t11.status = 1 ");
+        if(Objects.nonNull(params.get("name")) && StringUtils.isNotBlank(MapUtils.getString(params,"name"))){
+            sql.append(" and t11.book_name like concat('%',?,'%')");
+            queryParams.add(params.get("name"));
+        }
+        if(Objects.nonNull(params.get("grade")) && StringUtils.isNotBlank(MapUtils.getString(params,"grade"))){
+            sql.append(" and t11.book_grade =?");
+            queryParams.add(params.get("grade"));
+        }
+        if(Objects.nonNull(params.get("subject")) && StringUtils.isNotBlank(MapUtils.getString(params,"subject"))){
+            sql.append(" and t11.book_subject =? ");
+            queryParams.add(params.get("subject"));
+        }
+        if(Objects.nonNull(params.get("version")) && StringUtils.isNotBlank(MapUtils.getString(params,"version"))){
+            sql.append(" and t11.version_code =? ");
+            queryParams.add(params.get("version"));
+        }
+        return dao.findPage(sql.toString(),queryParams.toArray(),initPage);
+    }
+}

+ 65 - 0
src/main/java/com/ssj/school/book/entity/SchoolBookDetail.java

@@ -0,0 +1,65 @@
+package com.ssj.school.book.entity;
+
+import com.ssj.bean.common.framework.core.domain.BaseEntity;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 学校练习册信息
+ */
+@Entity
+@Table(name = "sys_school_book_detail")
+public class SchoolBookDetail extends BaseEntity {
+
+    /**
+     * q_workbook.id
+     * 练习册id
+     */
+    private String bookId;
+
+    private String schoolName;
+    /**
+     * sys_cn_area.id
+     * 学校id
+     */
+    private String schoolId;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
+    public String getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(String schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getBookId() {
+        return bookId;
+    }
+
+    public void setBookId(String bookId) {
+        this.bookId = bookId;
+    }
+}

+ 22 - 0
src/main/java/com/ssj/school/book/service/ISchoolBookService.java

@@ -0,0 +1,22 @@
+package com.ssj.school.book.service;
+
+import com.ssj.framework.core.common.service.BaseService;
+import com.ssj.school.book.entity.SchoolBookDetail;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.Map;
+
+/**
+ * @author sh
+ * @className ISchoolBookService
+ * @description interface
+ * @date 2021/2/9
+ */
+public interface ISchoolBookService extends BaseService<SchoolBookDetail,String> {
+    Page<Map<String, Object>> findBookDetailPage(Map<String, Object> params, Pageable initPage);
+
+    SchoolBookDetail findDataBySchoolIdAndBookId(String schoolId, String bookId);
+
+    Page<Map<String, Object>> bookList(Map<String, Object> params, Pageable initPage);
+}

+ 50 - 0
src/main/java/com/ssj/school/book/service/impl/SchoolBookServiceImpl.java

@@ -0,0 +1,50 @@
+package com.ssj.school.book.service.impl;
+
+import com.ssj.framework.core.common.service.BaseServiceImpl;
+import com.ssj.school.book.dao.ISchoolBookDao;
+import com.ssj.school.book.dao.ISchoolBookQueryDao;
+import com.ssj.school.book.entity.SchoolBookDetail;
+import com.ssj.school.book.service.ISchoolBookService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * @author sh
+ * @className SchoolBookServiceImpl
+ * @description service
+ * @date 2021/2/9
+ */
+@Service
+public class SchoolBookServiceImpl  extends BaseServiceImpl<SchoolBookDetail,String> implements ISchoolBookService{
+
+    @Autowired
+    private ISchoolBookDao dao;
+
+    @Autowired
+    private ISchoolBookQueryDao queryDao;
+
+    @Override
+    public PagingAndSortingRepository<SchoolBookDetail, String> getDao() {
+        return dao;
+    }
+
+    @Override
+    public Page<Map<String, Object>> findBookDetailPage(Map<String, Object> params, Pageable initPage) {
+        return queryDao.findBookDetailPage(params,initPage);
+    }
+
+    @Override
+    public SchoolBookDetail findDataBySchoolIdAndBookId(String schoolId, String bookId) {
+        return dao.findDataBySchoolIdAndBookId(schoolId,bookId);
+    }
+
+    @Override
+    public Page<Map<String, Object>> bookList(Map<String, Object> params, Pageable initPage) {
+        return queryDao.bookList(params,initPage);
+    }
+}

+ 122 - 0
src/main/java/com/ssj/sys/controller/SysProblemController.java

@@ -23,6 +23,8 @@ import com.ssj.framework.core.common.controller.BaseController;
 import com.ssj.framework.core.util.HttpRemote;
 import com.ssj.framework.core.util.ResponseEntity;
 import com.ssj.framework.core.util.SystemResourceLocator;
+import com.ssj.school.book.entity.SchoolBookDetail;
+import com.ssj.school.book.service.ISchoolBookService;
 import com.ssj.service.sys.fx.service.MerchantAreaService;
 import com.ssj.service.sys.fx.service.MerchantService;
 import com.ssj.service.sys.problem.service.IBanbenDetailService;
@@ -96,6 +98,9 @@ public class SysProblemController extends BaseController{
 	private MerchantService merchantService;
 	@Autowired
 	private MerchantAreaService areaService;
+
+	@Autowired
+	private ISchoolBookService schoolBookService;
 	
 	/**
 	 * 
@@ -876,6 +881,7 @@ public String updateviplist(Model model,
 		response.success("添加成功");
 		return response;
 	}
+
 	/**
 	 * 删除
 	 * @param id
@@ -1062,4 +1068,120 @@ public String updateviplist(Model model,
 		response.success("添加成功");
 		return response;
 	}
+
+	/**
+	 * -----------学校关联练习册---------
+	 */
+
+	/**
+	 *
+	 * @param model
+	 * @param pageSize
+	 * @param pageNo
+	 * @return
+	 * @throws Exception
+	 */
+	@RequestMapping("/schoolBookList")
+	public String schoolBookList(Model model,
+								 @RequestParam(required = false, defaultValue = "10") int pageSize,
+								 @RequestParam(required = false, defaultValue = "1") int pageNo) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		//学校名称
+		params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
+		SplitPage sp = new SplitPage();
+		sp.setAction(request.getRequestURI());
+		sp.setPageNo(pageNo);
+		sp.setPageSize(pageSize);
+		sp.setParams(params);
+		Page<Map<String, Object>>  page= schoolBookService.findBookDetailPage(params, initPage(pageNo,pageSize));
+		sp.setRowCnt((int) page.getTotalElements());
+		model.addAttribute("list", page.getContent());
+		model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
+		model.addAttribute("page", sp);
+		model.addAttribute("search", params);
+		//model.addAttribute("version",SystemResourceLocator.getVersionList());
+		return "sys/school/schoolBookList";
+	}
+
+	@RequestMapping("/schoolBookAdd")
+	public String schoolBookAdd(Model model) {
+
+		return "sys/school/bookAdd";
+	}
+
+	@RequestMapping(value = "/bookSave", method = RequestMethod.POST)
+	@ResponseBody
+	public Response bookSave(String bookId,String schoolId) {
+		Response response = new Response();
+		if(bookId.endsWith(",")){bookId.substring(0,bookId.length()-1);}
+		String[]  bookIds = bookId.split(",");
+		for (int i = 0; i < bookIds.length; i++) {
+			SchoolBookDetail detail = schoolBookService.findDataBySchoolIdAndBookId(schoolId,bookIds[i]);
+			if(Objects.nonNull(detail)){
+				continue;
+			}
+			detail = new SchoolBookDetail();
+			detail.setBookId(bookIds[i]);
+			detail.setCreateTime(new Date());
+			detail.setSchoolId(schoolId);
+			detail.setSchoolName(cnAreaService.getById(schoolId).getName());
+			schoolBookService.save(detail);
+		}
+
+		response.success("添加成功");
+		return response;
+	}
+
+	/**
+	 * 删除
+	 * @param id
+	 * @return
+	 * 创建人:sh
+	 * 2017年9月26日 下午3:13:43
+	 * @Response
+	 */
+	@RequestMapping(value = "/bookDelete", method = RequestMethod.POST)
+	@ResponseBody
+	public Response bookDelete(@RequestParam(value = "id")String id) {
+		Response response = new Response();
+		schoolBookService.delete(id);
+		response.success("删除成功");
+		return response;
+	}
+
+
+	/**
+	 *
+	 * @param model
+	 * @param pageSize
+	 * @param pageNo
+	 * @return
+	 * @throws Exception
+	 */
+	@RequestMapping("/bookList")
+	public String bookList(Model model,
+								 @RequestParam(required = false, defaultValue = "10") int pageSize,
+								 @RequestParam(required = false, defaultValue = "1") int pageNo) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		//学校名称
+		params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
+		params.put("grade", request.getParameter("grade")==null?"":request.getParameter("grade"));
+		params.put("subject", request.getParameter("subject")==null?"":request.getParameter("subject"));
+		params.put("version", request.getParameter("version")==null?"":request.getParameter("version"));
+		SplitPage sp = new SplitPage();
+		sp.setAction(request.getRequestURI());
+		sp.setPageNo(pageNo);
+		sp.setPageSize(pageSize);
+		sp.setParams(params);
+		Page<Map<String, Object>>  page= schoolBookService.bookList(params, initPage(pageNo,pageSize));
+		sp.setRowCnt((int) page.getTotalElements());
+		model.addAttribute("list", page.getContent());
+		model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
+		model.addAttribute("page", sp);
+		model.addAttribute("search", params);
+		model.addAttribute("grade", sortService.getParamValByCode("grade"));
+		model.addAttribute("zyb_course", sortService.getParamValByCode("zyb_course"));
+		model.addAttribute("version",SystemResourceLocator.getVersionList());
+		return "sys/school/bookList";
+	}
 }

+ 79 - 0
src/main/resources/templates/sys/agent/libList.html

@@ -0,0 +1,79 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script> 
+</head>
+<body>
+	<div class="rightinfo">
+		<form id="seachform" th:action="@{/sys/agent/agentLibList.html}" method="post">
+		       <input type="hidden" name="EQ_upId" th:value="${search.get('EQ_upId')}" />
+				<ul class="seachform">
+					<li>
+						<label>名称</label>
+						<input name="name" type="text" class="scinput" th:value="${search.get('name')}"/>
+					</li>
+					<li>
+						<label>&nbsp;</label>
+						<input type="button" class="scbtn" value="查询" />
+					</li>
+
+				</ul>
+		</form>
+	
+		
+		<table class="imgtable">
+	        <thead>
+	            <tr>
+	                <th style="width: 50px;">序号</th>
+	                <th>校区名称</th>
+	                <th>销售名称</th>
+	                <th>订单开始时间</th>
+	                <th>订单结束时间</th>
+	                <th>订单学生数</th>
+	                <th>校区现有学生</th>
+	                <th>操作</th>
+	            </tr>
+	        </thead>
+            <tbody>
+				
+				<tr th:each="item:${list}" >
+					<td th:text="${itemStat.count}" ></td>
+					<td th:text="${item.league_name}" ></td>
+					<td th:text="${item.agent_name}" ></td>
+
+					<td><p th:text="''+${#calendars.format(item.sign_time,'yyyy-MM-dd HH:mm:ss')}"></p></td>
+					<td><p th:text="''+${#calendars.format(item.end_sign_time,'yyyy-MM-dd HH:mm:ss')}"></p></td>
+					<td th:text="${item.lib_service}" ></td>
+					<td th:text="${item.stu_count}" ></td>
+					<td>
+						<a th:href="@{/sys/agent/libStudentList.html(libId=${item.id})}" class="tablelink" >学生明细</a>
+					</td>
+			   </tr>
+			
+             </tbody>
+        </table>
+          <!-- 分页 -->
+		<div class="pagin">
+	    	<div class="message">共<i class="blue">[[${page.rowCnt}]]</i>条记录,当前显示第&nbsp;<i class="blue">[[${page.pageNo }]]&nbsp;</i>页</div>
+	    	<div th:utext='${listNavigatHtml}' th:remove="tag" ></div>
+	   	</div>
+	</div>
+	
+<script type="text/javascript">
+
+function openEdit(id,pId,title) {
+	parent.layer.open({
+		type: 2,
+		title: title == 1 ? '新增' : '修改',
+		shadeClose: false,
+		shade: 0.8,
+		offset: '60px',
+		area: ['670px', '520px'],
+		content: '[[${sysUrl}]]/sys/agent/edit.html?id=' + id + '&pId=' + pId
+	});
+}
+
+</script>
+</body>
+</html>

+ 163 - 0
src/main/resources/templates/sys/school/bookAdd.html

@@ -0,0 +1,163 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script>
+	<link th:href="@{/static/js/select/fselect.css}" rel="stylesheet" type="text/css">
+<script src="sys/js/jquery.validate.min.js" th:src="@{/static/sys/js/jquery.validate.min.js}"></script>
+<script src="sys/js/jquery-validation/messages_zh.js" th:src="@{/static/sys/js/jquery-validation/messages_zh.js}"></script>
+<script src="sys/js/My97DatePicker/WdatePicker.js" th:src="@{/static/sys/js/My97DatePicker/WdatePicker.js}"></script>
+	<script src="sys/js/select/fSelect.js" th:src="@{/static/js/select/fselect.js}"></script>
+
+
+	<style>
+		body {
+			min-width: 180px;
+		}
+
+		.select1 {
+			width: 100%;
+			height: 32px;
+			line-height: 32px;
+			border-top: solid 1px #a7b5bc;
+			border-left: solid 1px #a7b5bc;
+			border-right: solid 1px #ced9df;
+			border-bottom: solid 1px #ced9df;
+			opacity: 1;
+			margin-bottom: 10px;
+		}
+
+		.select2 {
+			width: 100%;
+			height: 32px;
+			line-height: 32px;
+			border-top: solid 1px #a7b5bc;
+			border-left: solid 1px #a7b5bc;
+			border-right: solid 1px #ced9df;
+			border-bottom: solid 1px #ced9df;
+			opacity: 1;
+			margin-bottom: 10px;
+		}
+		.btn {
+			width: 100px;
+		}
+
+		label.control-label-error {
+			color: Red;
+		}
+
+		.forminfo li label {
+			width: 110px;
+			line-height: 34px;
+			display: block;
+			float: left;
+		}
+		.showstyle{
+			display: none
+		}
+	</style>
+</head>
+
+<body>
+<div class="formbody">
+	<form id="submitFrom"   method="post" class="form-horizontal form-validate">
+		     <input type="hidden" name="schoolId" id="schoolId" />
+		<ul class="forminfo">
+			<li class="clearfix" id="clearfix">
+				<label>学校:<b>*</b></label>
+				<div   onclick="window.open('../problem/schoolList.html', 'newwindow', 'height=530, width=1100, top=200, left=250, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no');" style="margin-right: 5px; width: 346px">
+					<input type="text"  id="schoolName" style="width: 180px; "  disabled="disabled" class="dfinput" >
+				</div>
+				<input type="hidden" name="schoolName" id="schoolName2" />
+			</li>
+			<li class="clearfix" id="clearfix2">
+				<label>练习册:<b>*</b></label>
+				<div class="vocation" style="margin-right: 5px; width: 130px">
+					<input name="bookName" id="bookName" class="select1" autocomplete="off" type="text" onfocus="funcblurschooltext()"  placeholder=" 请选择练习册"  >
+				</div>
+			</li>
+			<input type="hidden" name="bookId" id="bookId" />
+			<input name="area" type="hidden" id="area" />
+				<li>
+					<label>&nbsp;</label>
+					<button type="submit" class="btn">保存</button>
+					<button type="button" class="btn" onclick="closeWin();">取消</button>
+				</li>
+		</ul>
+	</form>
+</div>
+</body>
+<script type="text/javascript">
+
+$(function(){
+	$("#submitFrom").validate({
+		rules : {
+
+			schoolName : {
+				required : true
+			},
+			bookName : {
+				required : true
+			}
+		},
+		messages: {
+			schoolName : {
+				required : "学校不能为空"
+			},
+			bookName : {
+				required : "练习册不能为空"
+			}
+			
+		},
+		errorPlacement : function(error, element) {
+				error.appendTo(element.parent()); 
+		},
+		submitHandler : function(form) {
+			roleFrom();
+		}
+	});
+
+});
+
+function funcblurschooltext(){
+		schoollistindex =layer.open({
+			type: 2,
+			title: '选择练习册',
+			closeBtn: 1, //不显示关闭按钮
+			shift: 0.8,
+			offset: '150px',
+			area: ['80%', '60%'],
+			content: "[[${sysUrl}]]/sys/problem/bookList"
+		});
+}
+function setBookIdValue(value) {
+	$("#bookId").val(value);
+}
+function setBookNameValue(value) {
+	$("#bookName").val(value);
+}
+function roleFrom(){
+	var url="[[${sysUrl}]]/sys/problem/bookSave";
+    //取值
+	var params = {'schoolId':$("#schoolId").val(),'bookId':$("#bookId").val()};
+	$.post(url,params,function(data){
+		if(data != null){
+				if(data.meta.success){
+					parent.layer.msg("新增成功",{icon:1});
+					closeWin();
+				}else{
+					parent.layer.msg(data.meta.message,{icon:11});
+					closeWin();
+				}
+		}
+		
+	});
+}
+function closeWin(){
+	window.location="[[${sysUrl}]]/sys/problem/schoolBookList.html";
+}
+
+
+
+</script>
+</html>

+ 102 - 0
src/main/resources/templates/sys/school/bookList.html

@@ -0,0 +1,102 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script> 
+</head>
+<style>
+	.tablelink{margin-right:10px;}
+	.stylecss{
+	      color: red;
+	}
+</style>
+<body>
+<div class="rightinfo">
+	<form id="seachform" th:action="@{/sys/problem/bookList.html}" method="post">
+	<ul class="seachform">
+		<li>
+			<label>练习册名称</label>
+			<input name="name" type="text" class="scinput" th:value="${search.get('name')}"/>
+		</li>
+		<li>
+			<label>科目</label>
+			<select class="scinput select_width" name="courseName" id="courseName">
+				<option value=""  th:selected="${ search.get('subject') eq '' }"  >全部</option>
+				<option  th:each="sort:${zyb_course}"  th:value="${sort.name}"  th:if="${sort.name ne '总体'}" th:selected="${ search.get('subject')  eq sort.name }" th:text="${sort.name}" ></option>
+			</select>
+		</li>
+		<li>
+			<label>年级</label>
+			<select class="scinput select_width" name="grade">
+				<option value=""  th:selected="${ search.get('grade') eq '' }"  >全部</option>
+				<option th:value="${list.name}" th:if="${list.aliases ne '0'}" th:each="list:${grade}" th:selected="${ search.get('grade')  eq list.name }" th:text="${list.name}">学前</option>
+			</select>
+		</li>
+		<li>
+			<label>&nbsp;</label>
+			<input type="button" class="scbtn" value="查询" />
+		</li>
+		<li>
+		<li>
+				<ul class="toolbar">
+					<li class="click"><span><img style="width: 24px;height: 24px" th:src="@{/static/sys/images/select.png}" /></span>选择</li>
+				</ul>
+		</li>
+		
+	</ul>
+	</form>
+	<table class="tablelist">
+		<thead>
+		    <tr>
+				<th style="width: 50px;">序号</th>
+				<th>练习册名称</th>
+				<th>科目</th>
+				<th>年级</th>
+				<th>学期</th>
+				<th>版本</th>
+				<th>练习册年份</th>
+		    </tr>
+		</thead>
+		<tbody>
+			<tr th:each="cnArealist:${list}" >
+				<td><input name="selectlist" type="checkbox" th:data-id="${cnArealist.get('id')}" /></td>
+				<td th:text="${cnArealist.get('book_name')}" class="bookName"></td>
+				<input type="hidden" class="id" th:value="${cnArealist.get('id')}" />
+				<td th:text="${cnArealist.get('book_subject')}"></td>
+				<td th:text="${cnArealist.get('book_grade')}"></td>
+				<td th:text="${cnArealist.get('semester')}"></td>
+				<td th:text="${cnArealist.get('version_name')}"></td>
+				<td th:text="${cnArealist.get('book_year')}"></td>
+			</tr>
+		</tbody>
+	</table>
+	<!-- 分页 -->
+	<div class="pagin">
+    	<div class="message">共<i class="blue">[[${page.rowCnt}]]</i>条记录,当前显示第&nbsp;<i class="blue">[[${page.pageNo }]]&nbsp;</i>页</div>
+    	<div th:utext='${listNavigatHtml}' th:remove="tag" ></div>
+   	</div>
+</div>
+</body>
+<script type="text/javascript">
+$(function(){
+	$('ul.toolbar li.click').click(function () {
+		var bookIds="";
+		var bookNames="";
+		 $.each($('[name=selectlist]'), function () {
+			 if ($(this).prop('checked')) {
+			 var id= $(this).parent().siblings(".id").val();
+			 var bookName= $(this).parent().siblings(".bookName").text();
+			 bookIds+=id+",";
+			 bookNames+=bookName+",";
+			 }
+         });
+		 var index = parent.layer.getFrameIndex(window.name);
+		 parent.setBookIdValue(bookIds);
+		 parent.setBookNameValue(bookNames);
+		 parent.layer.close(index);
+	 });
+})
+
+
+</script>
+</html>

+ 108 - 0
src/main/resources/templates/sys/school/schoolBookList.html

@@ -0,0 +1,108 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script>
+</head>
+<style>
+	.tablelink{margin-right:10px;}
+	.stylecss{
+	      color: red;
+	}
+	.select_width{
+	     width: 220px;
+	}
+	.date_width{
+	     width: 83px;
+	}
+</style>
+<body>
+<div class="place">
+	<span>位置:</span>
+	<ul class="placeul">
+		<li><a href="#">首页</a></li>
+		<li><a href="#">学校练习册管理</a></li>
+	</ul>
+</div>
+<div class="rightinfo">
+	<form id="seachform" th:action="@{/sys/problem/schoolBookList.html}" method="post">
+	<ul class="seachform">
+	<li>
+			<label>学校名字</label>
+			<input name="name" type="text" class="scinput" th:value="${search.get('name')}"/>
+		</li>
+		<li>
+			<input type="button" class="scbtn" value="查询" />
+		</li>
+		<li>
+			<ul class="toolbar">
+				<a th:href="@{/sys/problem/schoolBookAdd.html}"><li class="click"><span><img th:src="@{/static/sys/images/t01.png}" /></span>添加</li></a>
+			</ul>
+		</li>
+	</ul>
+	</form>
+	<table class="tablelist">
+		<thead>
+		    <tr>
+		        <th style="width: 50px;">序号</th>
+		        <th>学校名称</th>
+		        <th>练习册名称</th>
+		        <th>科目</th>
+		        <th>年级</th>
+		        <th>学期</th>
+				<th>版本</th>
+				<th>练习册年份</th>
+		        <th>操作</th>
+		    </tr>
+		</thead>
+		<tbody>
+			<tr th:each="cnArealist:${list}" >
+				<td th:text="${cnArealistStat.count}" ></td>
+				<td th:text="${cnArealist.get('school_name')}"></td>
+				<td th:text="${cnArealist.get('book_name')}"></td>
+
+				<td th:text="${cnArealist.get('book_subject')}"></td>
+				<td th:text="${cnArealist.get('book_grade')}"></td>
+				<td th:text="${cnArealist.get('version_name')}"></td>
+				<td th:text="${cnArealist.get('semester')}"></td>
+				<td th:text="${cnArealist.get('book_year')}"></td>
+				<td>
+					<a href="javascript:void(0)" th:onclick="'deleteById(\''+${cnArealist.get('id')}+'\')'" class="tablelink" >删除</a>
+				</td>
+			</tr>
+		</tbody>
+	</table>
+	<!-- 分页 -->
+	<div class="pagin">
+    	<div class="message">共<i class="blue">[[${page.rowCnt}]]</i>条记录,当前显示第&nbsp;<i class="blue">[[${page.pageNo }]]&nbsp;</i>页</div>
+    	<div th:utext='${listNavigatHtml}' th:remove="tag" ></div>
+   	</div>
+</div>
+<script type="text/javascript">
+
+function deleteById(id){
+	layer.confirm("确定删除吗?",
+			{icon: 4, btn: ['确定','取消']
+			}, function(){
+				$.ajax({
+					url: '[[${sysUrl}]]/sys/problem/banbenDelete',
+					type: "post",
+					data:{
+						'id': id
+					},
+					dataType: "json",
+					success:function(data){
+
+						if(data.meta.success){
+							layer.msg("删除成功",{icon:1});
+							setTimeout(function(){
+								location.reload();
+							},1000);
+						}else{
+							layer.msg(data.meta.message,{icon:11});
+						}
+					}
+				});
+			});
+}
+</script>