wuwen 5 年之前
父節點
當前提交
b61436d966
共有 20 個文件被更改,包括 1017 次插入37 次删除
  1. 10 0
      src/main/java/com/ssj/bean/sys/imlibuser/TbClass.java
  2. 10 0
      src/main/java/com/ssj/bean/sys/imlibuser/TbClassTeacher.java
  3. 3 0
      src/main/java/com/ssj/dao/sys/imlibuser/dao/TbClassDao.java
  4. 1 1
      src/main/java/com/ssj/dao/sys/imlibuser/dao/TbClassQueryDao.java
  5. 4 0
      src/main/java/com/ssj/dao/sys/imlibuser/dao/TbClassTeacherDao.java
  6. 36 2
      src/main/java/com/ssj/dao/sys/imlibuser/dao/impl/TbClassQueryDaoImpl.java
  7. 5 0
      src/main/java/com/ssj/framework/core/util/Constant.java
  8. 1 0
      src/main/java/com/ssj/service/sys/imlibuser/service/TbClassService.java
  9. 3 1
      src/main/java/com/ssj/service/sys/imlibuser/service/TbClassTeacherService.java
  10. 8 0
      src/main/java/com/ssj/service/sys/imlibuser/service/TbClassTeacherTempService.java
  11. 5 0
      src/main/java/com/ssj/service/sys/imlibuser/service/impl/TbClassServiceImpl.java
  12. 11 0
      src/main/java/com/ssj/service/sys/imlibuser/service/impl/TbClassTeacherServiceImpl.java
  13. 314 0
      src/main/java/com/ssj/service/sys/imlibuser/service/impl/TbClassTeacherTempServiceImpl.java
  14. 214 2
      src/main/java/com/ssj/sys/controller/ImLibUserController.java
  15. 二進制
      src/main/resources/static/sys/excel/headmaster_lib.xlsx
  16. 二進制
      src/main/resources/static/sys/excel/leader_lib .xlsx
  17. 二進制
      src/main/resources/static/sys/excel/principal_lib .xlsx
  18. 164 0
      src/main/resources/templates/sys/imlibuser/headmasterList.html
  19. 220 23
      src/main/resources/templates/sys/imlibuser/schoolList.html
  20. 8 8
      src/main/resources/templates/sys/imlibuser/teacherList.html

+ 10 - 0
src/main/java/com/ssj/bean/sys/imlibuser/TbClass.java

@@ -19,6 +19,8 @@ public class TbClass  extends BaseEntity {
     private String school;
     
     private String className;
+    
+    private String grade;
 
 	/**
 	 * 0无效 ,1有效,2 默认班级
@@ -67,6 +69,14 @@ public class TbClass  extends BaseEntity {
 		this.libId = libId;
 	}
 
+	public String getGrade() {
+		return grade;
+	}
+
+	public void setGrade(String grade) {
+		this.grade = grade;
+	}
+
 	
 
 }

+ 10 - 0
src/main/java/com/ssj/bean/sys/imlibuser/TbClassTeacher.java

@@ -24,6 +24,8 @@ public class TbClassTeacher  extends BaseEntity {
 	 * 0无效 1有效
 	 */
 	private Integer status;
+	
+	private Integer type;
     
     private Date createTime;
 
@@ -67,6 +69,14 @@ public class TbClassTeacher  extends BaseEntity {
 		this.classId = classId;
 	}
 
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
 
 
 }

+ 3 - 0
src/main/java/com/ssj/dao/sys/imlibuser/dao/TbClassDao.java

@@ -20,6 +20,9 @@ public interface TbClassDao extends JpaRepository<TbClass, String> {
 
 	@Query(nativeQuery = true, value = " SELECT * from tb_class t where t.lib_id=?1 AND t.class_name=?2 LIMIT 1 ")
 	TbClass getTbClassByLibId(String libId,String className);
+	
+	@Query(nativeQuery = true, value = " SELECT * from tb_class t where t.lib_id=?1 AND t.grade=?2 AND t.class_name=?3 LIMIT 1 ")
+	TbClass getTbClassGradeByLibId(String libId,String grade,String className);
 
 	@Query(nativeQuery = true, value = " SELECT * from tb_class t where t.lib_id=?1 AND t.status = 2 order by create_time LIMIT 1 ")
 	TbClass getDefaultTbClassByLibId(String libId);

+ 1 - 1
src/main/java/com/ssj/dao/sys/imlibuser/dao/TbClassQueryDao.java

@@ -42,7 +42,7 @@ public interface TbClassQueryDao {
 	  * @return
 	  */
 	 Page<Map<String, Object>> findTeacherByPage(Map<String, Object> searchParam, Pageable pageable);
-	 
+	 Page<Map<String, Object>> findHeadmasterByPage(Map<String, Object> searchParam, Pageable pageable);
 	 
 	 /**
 	  * 查询老师添加失败的分页

+ 4 - 0
src/main/java/com/ssj/dao/sys/imlibuser/dao/TbClassTeacherDao.java

@@ -44,5 +44,9 @@ public interface TbClassTeacherDao extends JpaRepository<TbClassTeacher, String>
 	@Modifying
 	@Query(nativeQuery=true,value="delete from tb_class_teacher where lib_id=?1 and status=1 and class_id=?2 ")
 	void deleteClassTeacherByClassIdAndLibId(String libId,String classId);
+	
+	@Query(nativeQuery = true, value = " SELECT * from tb_class_teacher t where t.class_id=?1 and t.type=2 and t.status = 1  LIMIT 1")
+	TbClassTeacher getTbLibImTeacherByClassType(String classId);
+
 
 }

+ 36 - 2
src/main/java/com/ssj/dao/sys/imlibuser/dao/impl/TbClassQueryDaoImpl.java

@@ -26,6 +26,9 @@ public class TbClassQueryDaoImpl implements TbClassQueryDao {
 		selSql.append(" SELECT t.*    ");
 		selSql.append(" ,( SELECT COUNT(DISTINCT(v.id)) from tb_lib_vip v  where v.stat=1 AND v.lib_id=t.id  ) as student_num     ");
 		selSql.append(" ,( SELECT COUNT(DISTINCT(a.user_id)) from tb_lib_manager a  where a.state=1  AND a.type in (2,10,15) AND a.lib_id=t.id  ) as teacher_num    ");
+		selSql.append(" ,( SELECT COUNT(DISTINCT(a.user_id)) from tb_lib_manager a  where a.state=1  AND a.type in (4) AND a.lib_id=t.id  ) as principal_num    ");
+		selSql.append(" ,( SELECT COUNT(DISTINCT(a.user_id)) from tb_lib_manager a  where a.state=1  AND a.type in (19) AND a.lib_id=t.id  ) as leader_num    ");
+		selSql.append(" ,( SELECT COUNT(DISTINCT(a.teacher_id)) from tb_class_teacher a  where a.status=1  AND a.lib_id=t.id  ) as headmaster_num    ");
 		selSql.append(" ,IFNULL(( SELECT SUM(m.port_num) from fx_merchant m WHERE m.lib_id=t.id GROUP BY m.lib_id),0) as port_num ");
 		selSql.append(" from tb_lib_join t    ");
 		selSql.append(" where t.type=1    ");
@@ -108,8 +111,21 @@ public class TbClassQueryDaoImpl implements TbClassQueryDao {
 		StringBuffer selSql = new StringBuffer();
 		List<Object> queryParams = new ArrayList<Object>();
 		selSql.append("  SELECT * from tb_lib_manager t  ");
-		selSql.append("  where t.state=1  AND t.type in (2,10,15) AND t.lib_id=?    ");
+		selSql.append("  where t.state=1 AND t.lib_id=?    ");
 		queryParams.add(searchParam.get("libId"));
+		
+		if("1".equals(searchParam.get("type"))){
+			  selSql.append(" AND t.type in (4)   ");
+	    }else 
+		if("2".equals(searchParam.get("type"))){
+			  selSql.append(" AND t.type in (19)   ");
+	    }else
+		if("3".equals(searchParam.get("type"))){
+			  selSql.append(" AND t.type in (4,19,2,10,15)   ");
+	    }else
+		if("4".equals(searchParam.get("type"))){
+			  selSql.append(" AND t.type in (2,10,15) ");
+	    }
 		if(!"".equals(searchParam.get("name"))){
 			  selSql.append(" AND t.name LIKE  CONCAT('%',?,'%')   ");
 	          queryParams.add(searchParam.get("name"));
@@ -117,7 +133,25 @@ public class TbClassQueryDaoImpl implements TbClassQueryDao {
 		selSql.append(" GROUP BY t.user_id ORDER BY t.create_time DESC  ");
 		return dao.findPage(selSql.toString(),queryParams.toArray(), pageable);
 	}
-
+	
+	
+	
+	@Override
+	public Page<Map<String, Object>> findHeadmasterByPage(Map<String, Object> searchParam, Pageable pageable) {
+		StringBuffer selSql = new StringBuffer();
+		List<Object> queryParams = new ArrayList<Object>();
+		selSql.append("  SELECT u.* from tb_class_teacher t LEFT JOIN tb_user u ON t.teacher_id=u.id   ");
+		selSql.append("  where t.status=1 AND t.lib_id=?    ");
+		queryParams.add(searchParam.get("libId"));
+		if(!"".equals(searchParam.get("name"))){
+			  selSql.append(" AND u.user_name LIKE  CONCAT('%',?,'%')   ");
+	          queryParams.add(searchParam.get("name"));
+	    }
+		selSql.append(" ORDER BY t.create_time DESC  ");
+		return dao.findPage(selSql.toString(),queryParams.toArray(), pageable);
+	}
+	
+	
 	@Override
 	public Page<Map<String, Object>> findTeacherErrorByPage(Map<String, Object> searchParam, Pageable pageable) {
 		StringBuffer selSql = new StringBuffer();

+ 5 - 0
src/main/java/com/ssj/framework/core/util/Constant.java

@@ -25,6 +25,11 @@ public class Constant {
      * tb_lib_manager中馆长的类别
      */
     public static final int CURATOR = 4;
+    
+    /**
+     * tb_lib_manager中组长的类别
+     */
+    public static final int LEADER = 19;
 
     /**
      * tb_lib_manager中在馆老师的类别

+ 1 - 0
src/main/java/com/ssj/service/sys/imlibuser/service/TbClassService.java

@@ -11,6 +11,7 @@ import java.util.Map;
 public interface TbClassService extends BaseService<TbClass, String> {
 	
 	 TbClass getTbClassByLibId(String libId,String className);
+	 TbClass getTbClassGradeByLibId(String libId,String grade,String className);
 	 
 	 Page<Map<String, Object>> findClassByPage(Map<String, Object> searchParam, Pageable pageable);
 

+ 3 - 1
src/main/java/com/ssj/service/sys/imlibuser/service/TbClassTeacherService.java

@@ -17,8 +17,8 @@ public interface TbClassTeacherService extends BaseService<TbClassTeacher, Strin
 	  * @return
 	  */
 	 Page<Map<String, Object>> findTeacherByPage(Map<String, Object> searchParam, Pageable pageable);
-	 
 
+	 Page<Map<String, Object>> findHeadmasterByPage(Map<String, Object> searchParam, Pageable pageable);
 	 /**
 	  * 查询班级下的老师
 	  * @param libId
@@ -26,6 +26,8 @@ public interface TbClassTeacherService extends BaseService<TbClassTeacher, Strin
 	  * @return
 	  */
 	 TbClassTeacher getTbLibImTeacherByClassId(String classId,String teacherId);
+	 
+	 TbClassTeacher getTbLibImTeacherByClassType(String classId);
 
 	/**
 	 * 查询老师记录,没有的话新增

+ 8 - 0
src/main/java/com/ssj/service/sys/imlibuser/service/TbClassTeacherTempService.java

@@ -25,6 +25,9 @@ public interface TbClassTeacherTempService extends BaseService<TbClassTeacherTem
 	  * @return
 	  */
 	 int insertTbLibImTeacher(TbLibJoin libJoin,TbClassTeacherTemp tbLibImTeacherTemp);
+	 int insertTbLibImPrincipal(TbLibJoin libJoin,TbClassTeacherTemp tbLibImTeacherTemp);
+	 int insertTbLibImLeader(TbLibJoin libJoin,TbClassTeacherTemp tbLibImTeacherTemp);
+	 int insertTbLibImHeadmaster(TbLibJoin libJoin,TbClassTeacherTemp tbLibImTeacherTemp);
 	 
 	 /**
 	  * 批量老师
@@ -33,6 +36,11 @@ public interface TbClassTeacherTempService extends BaseService<TbClassTeacherTem
 	  */
 	 int insertBatchTbLibImTeacher(List<TbClassTeacherTemp> tbLibImTeacherTemps);
 	 
+	 int insertBatchTbLibImPrincipal(List<TbClassTeacherTemp> tbLibImTeacherTemps);
+	 
+	 int insertBatchTbLibImLeader(List<TbClassTeacherTemp> tbLibImTeacherTemps);
+	 
+	 int insertBatchTbLibImHeadmaster(List<TbClassTeacherTemp> tbLibImTeacherTemps);
 	 
 	 TbClassTeacherTemp getTbLibImTeacherTempByLibId(String libId,String teacherId);
 	 

+ 5 - 0
src/main/java/com/ssj/service/sys/imlibuser/service/impl/TbClassServiceImpl.java

@@ -59,6 +59,11 @@ public class TbClassServiceImpl extends BaseServiceImpl<TbClass, String> impleme
 	public TbClass getTbClassByLibId(String libId, String className) {
 		return dao.getTbClassByLibId(libId, className);
 	}
+	
+	@Override
+	public TbClass getTbClassGradeByLibId(String libId,String grade,String className){
+		return dao.getTbClassGradeByLibId(libId, grade,className);
+	}
 
 	@Override
 	public Page<Map<String, Object>> findClassByPage(Map<String, Object> searchParam, Pageable pageable) {

+ 11 - 0
src/main/java/com/ssj/service/sys/imlibuser/service/impl/TbClassTeacherServiceImpl.java

@@ -40,6 +40,12 @@ public class TbClassTeacherServiceImpl extends BaseServiceImpl<TbClassTeacher, S
 			Map<String, Object> searchParam, Pageable pageable) {
 		return queryDao.findTeacherByPage(searchParam, pageable);
 	}
+	
+	public Page<Map<String, Object>> findHeadmasterByPage(
+			Map<String, Object> searchParam, Pageable pageable) {
+		return queryDao.findHeadmasterByPage(searchParam, pageable);
+	}
+	
 
 	@Override
 	public TbClassTeacher getTbLibImTeacherByClassId(String classId,String teacherId) {
@@ -91,4 +97,9 @@ public class TbClassTeacherServiceImpl extends BaseServiceImpl<TbClassTeacher, S
 	public void deleteClassTeacherByClassIdAndLibId(String libId,String classId) {
 		 dao.deleteClassTeacherByClassIdAndLibId(libId,classId);
 	}
+
+	@Override
+	public TbClassTeacher getTbLibImTeacherByClassType(String classId){
+		return dao.getTbLibImTeacherByClassType(classId);
+	}
 }

+ 314 - 0
src/main/java/com/ssj/service/sys/imlibuser/service/impl/TbClassTeacherTempServiceImpl.java

@@ -5,6 +5,7 @@ import com.ssj.bean.sys.imlibuser.TbClassTeacher;
 import com.ssj.bean.sys.imlibuser.TbClassTeacherTemp;
 import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
 import com.ssj.bean.weixin.libmy.domain.TbLibManager;
+import com.ssj.bean.weixin.libmy.domain.TbLibManagerAudit;
 import com.ssj.bean.weixin.user.domain.User;
 import com.ssj.dao.sys.imlibuser.dao.TbClassQueryDao;
 import com.ssj.dao.sys.imlibuser.dao.TbClassTeacherTempDao;
@@ -17,6 +18,7 @@ import com.ssj.service.sys.imlibuser.service.TbClassTeacherService;
 import com.ssj.service.sys.imlibuser.service.TbClassTeacherTempService;
 import com.ssj.service.weixin.library.service.IBookManagerService;
 import com.ssj.service.weixin.library.service.ILibJoinService;
+import com.ssj.service.weixin.library.service.LibManagerAuditService;
 import com.ssj.service.weixin.user.service.UserService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,6 +60,9 @@ public class TbClassTeacherTempServiceImpl extends BaseServiceImpl<TbClassTeache
     
 	@Autowired
 	private TbClassService tbClassService;
+	
+    @Autowired
+    private LibManagerAuditService auditService;
     
     
 	@Override
@@ -291,5 +296,314 @@ public class TbClassTeacherTempServiceImpl extends BaseServiceImpl<TbClassTeache
 		return dao.getTbLibImTeacherTempByLibId(libId, teacherId);
 	}
 
+
+	@Override
+	public int insertBatchTbLibImPrincipal(List<TbClassTeacherTemp> tbLibImTeacherTemps) {
+		int successNum=0;
+		for (TbClassTeacherTemp tbLibImTeacherTemp : tbLibImTeacherTemps) {
+			try {
+				TbLibJoin tbLibJoin=null;
+				if(StringUtils.isNotEmpty(tbLibImTeacherTemp.getLibId())){
+					tbLibJoin=joinService.getById(tbLibImTeacherTemp.getLibId());
+				}else{
+					tbLibJoin=tbLibImStudentService.getTbLibJoinByLeagueName(tbLibImTeacherTemp.getLeagueName());
+				}
+				//无机构信息
+				if(tbLibJoin!=null){
+					successNum=successNum+this.insertTbLibImPrincipal(tbLibJoin, tbLibImTeacherTemp);
+				}else{
+					successNum=-1;
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return successNum;
+	}
+	
+	
+	@Override
+	public int insertTbLibImPrincipal(TbLibJoin libJoin ,TbClassTeacherTemp tbLibImTeacherTemp) {
+		if(libJoin!=null){
+			tbLibImTeacherTemp.setLibId(libJoin.getId());
+			tbLibImTeacherTemp.setLeagueName(libJoin.getLeagueName());
+			tbLibImTeacherTemp.setCreateTime(new Date());
+			tbLibImTeacherTemp.setStatus(1);
+			
+			try {
+				User user=userService.findByMobile(tbLibImTeacherTemp.getTeacherPhone());
+				if(user==null){//无老师user,生成老师user
+					user=new User();
+					user.setId(IdWorker.generateId());
+					user.setUserName(tbLibImTeacherTemp.getTeacherName());
+					user.setMobile(tbLibImTeacherTemp.getTeacherPhone());
+					user.setCreateTime(new Date());
+					user=userService.save(user);
+				}
+				//如果之前有这个老师的,就统一使用用旧老师的名称,如果没有就使用新的名称。
+				TbLibManager tbLibManager=managerService.findAllByUserIdAndTypeAndState(user.getId(),Constant.CURATOR,1);
+				if(tbLibManager==null){//有老师user,生成type=2的老师
+					tbLibManager=new TbLibManager();
+					tbLibManager.setUserId(user.getId());
+					tbLibManager.setType(Constant.CURATOR);
+					tbLibManager.setCreateTime(new Date());
+					tbLibManager.setName(tbLibImTeacherTemp.getTeacherName());
+					tbLibManager.setTelephone(tbLibImTeacherTemp.getTeacherPhone());
+					tbLibManager.setLibId(tbLibImTeacherTemp.getLibId());
+					if(tbLibImTeacherTemp.getIsCorrect()!=null && tbLibImTeacherTemp.getIsCorrect()==1) {
+						tbLibManager.setIsCorrect(1);
+					}else {
+						tbLibManager.setIsCorrect(0);
+					}
+					tbLibManager.setState(1);
+					tbLibManager=managerService.save(tbLibManager);
+				}else {
+					tbLibImTeacherTemp.setTeacherId(user.getId());
+					tbLibImTeacherTemp.setStatus(0);
+					tbLibImTeacherTemp.setErrorReason("与平台已有老师信息冲突");
+					this.save(tbLibImTeacherTemp);
+					return 0;
+				}
+				
+				TbLibManagerAudit audit = new  TbLibManagerAudit();
+		        audit.setStatus(1);
+		        audit.setTelephone(tbLibManager.getTelephone());
+		        audit.setLibManagerId(tbLibManager.getId());
+		        audit.setLibId(tbLibManager.getLibId());
+		        audit.setType(tbLibManager.getType());
+		        audit.setCreateTime(new Date());
+		        audit.setLastUpdateTime(new Date());
+		        audit.setUserId(tbLibManager.getUserId());
+		        audit.setName(tbLibManager.getName());
+		        auditService.save(audit);
+		        
+		        TbLibJoin tbLibJoin=joinService.getById(tbLibManager.getLibId());
+		        if(tbLibJoin!=null && tbLibJoin.getLibtype()!=4) {
+		        	tbLibJoin.setLibtype(4);
+		        	joinService.save(tbLibJoin);
+		        }
+		        
+			} catch (Exception e) {
+				e.printStackTrace();
+			}finally{
+			}
+			return 1;
+		}
+		return 0;
+	}
+	
+	
+
+
+	@Override
+	public int insertBatchTbLibImLeader(List<TbClassTeacherTemp> tbLibImTeacherTemps) {
+		int successNum=0;
+		for (TbClassTeacherTemp tbLibImTeacherTemp : tbLibImTeacherTemps) {
+			try {
+				TbLibJoin tbLibJoin=null;
+				if(StringUtils.isNotEmpty(tbLibImTeacherTemp.getLibId())){
+					tbLibJoin=joinService.getById(tbLibImTeacherTemp.getLibId());
+				}else{
+					tbLibJoin=tbLibImStudentService.getTbLibJoinByLeagueName(tbLibImTeacherTemp.getLeagueName());
+				}
+				//无机构信息
+				if(tbLibJoin!=null){
+					successNum=successNum+this.insertTbLibImLeader(tbLibJoin, tbLibImTeacherTemp);
+				}else{
+					successNum=-1;
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return successNum;
+	}
+	
+	
+	@Override
+	public int insertTbLibImLeader(TbLibJoin libJoin, TbClassTeacherTemp tbLibImTeacherTemp) {
+		if(libJoin!=null){
+			tbLibImTeacherTemp.setLibId(libJoin.getId());
+			tbLibImTeacherTemp.setLeagueName(libJoin.getLeagueName());
+			tbLibImTeacherTemp.setCreateTime(new Date());
+			tbLibImTeacherTemp.setStatus(1);
+			
+			try {
+				
+				if(StringUtils.isNotEmpty(tbLibImTeacherTemp.getSubject())) {
+					String subject=tbLibImTeacherTemp.getSubject();
+					if(StringUtils.isNotEmpty(subject.replaceAll("语文", "").replaceAll("数学", "").replaceAll("英语", "").replaceAll(",", ""))) {
+						tbLibImTeacherTemp.setStatus(0);
+						tbLibImTeacherTemp.setErrorReason("填写科目不正确,科目只能包含语文,数学,英语与英文逗号分隔");
+						this.save(tbLibImTeacherTemp);
+						return 0;
+					}
+					int contain=containSubject(subject);
+					if(contain<=0) {
+						tbLibImTeacherTemp.setStatus(0);
+						tbLibImTeacherTemp.setErrorReason("填写科目不正确,科目只能包含语文,数学,英语");
+						this.save(tbLibImTeacherTemp);
+						return 0;
+					}else {
+						if(contain>=2 && !subject.contains(",")) {
+							tbLibImTeacherTemp.setStatus(0);
+							tbLibImTeacherTemp.setErrorReason("多个科目间隔使用英语逗号分隔','");
+							this.save(tbLibImTeacherTemp);
+							return 0;
+						}
+					}
+				}
+				
+				User user=userService.findByMobile(tbLibImTeacherTemp.getTeacherPhone());
+				if(user==null){//无老师user,生成老师user
+					user=new User();
+					user.setId(IdWorker.generateId());
+					user.setUserName(tbLibImTeacherTemp.getTeacherName());
+					user.setMobile(tbLibImTeacherTemp.getTeacherPhone());
+					user.setCreateTime(new Date());
+					user=userService.save(user);
+				}
+				//如果之前有这个老师的,就统一使用用旧老师的名称,如果没有就使用新的名称。
+				TbLibManager tbLibManager=managerService.findAllByUserIdAndTypeAndState(user.getId(),Constant.LEADER,1);
+				if(tbLibManager==null){//有老师user,生成type=2的老师
+					tbLibManager=new TbLibManager();
+					tbLibManager.setUserId(user.getId());
+					tbLibManager.setType(Constant.LEADER);
+					tbLibManager.setGrade(tbLibImTeacherTemp.getGrade());
+					tbLibManager.setCourseName(tbLibImTeacherTemp.getSubject());
+					tbLibManager.setCreateTime(new Date());
+					tbLibManager.setName(tbLibImTeacherTemp.getTeacherName());
+					tbLibManager.setTelephone(tbLibImTeacherTemp.getTeacherPhone());
+					tbLibManager.setLibId(tbLibImTeacherTemp.getLibId());
+					if(tbLibImTeacherTemp.getIsCorrect()!=null && tbLibImTeacherTemp.getIsCorrect()==1) {
+						tbLibManager.setIsCorrect(1);
+					}else {
+						tbLibManager.setIsCorrect(0);
+					}
+					tbLibManager.setState(1);
+					tbLibManager=managerService.save(tbLibManager);
+				}else {
+					tbLibImTeacherTemp.setTeacherId(user.getId());
+					tbLibImTeacherTemp.setStatus(0);
+					tbLibImTeacherTemp.setErrorReason("与平台已有老师信息冲突");
+					this.save(tbLibImTeacherTemp);
+					return 0;
+				}
+				
+				TbLibManagerAudit audit= new  TbLibManagerAudit();
+		        audit.setStatus(1);
+		        audit.setTelephone(tbLibManager.getTelephone());
+		        audit.setLibManagerId(tbLibManager.getId());
+		        audit.setLibId(tbLibManager.getLibId());
+		        audit.setType(tbLibManager.getType());
+		        audit.setCreateTime(new Date());
+		        audit.setLastUpdateTime(new Date());
+		        audit.setUserId(tbLibManager.getUserId());
+		        audit.setName(tbLibManager.getName());
+		        auditService.save(audit);
+				
+			} catch (Exception e) {
+				e.printStackTrace();
+			}finally{
+			}
+			return 1;
+		}
+		return 0;
+	}
+	
+
+
+	@Override
+	public int insertBatchTbLibImHeadmaster(List<TbClassTeacherTemp> tbLibImTeacherTemps) {
+		int successNum=0;
+		for (TbClassTeacherTemp tbLibImTeacherTemp : tbLibImTeacherTemps) {
+			try {
+				TbLibJoin tbLibJoin=null;
+				if(StringUtils.isNotEmpty(tbLibImTeacherTemp.getLibId())){
+					tbLibJoin=joinService.getById(tbLibImTeacherTemp.getLibId());
+				}else{
+					tbLibJoin=tbLibImStudentService.getTbLibJoinByLeagueName(tbLibImTeacherTemp.getLeagueName());
+				}
+				//无机构信息
+				if(tbLibJoin!=null){
+					successNum=successNum+this.insertTbLibImHeadmaster(tbLibJoin, tbLibImTeacherTemp);
+				}else{
+					successNum=-1;
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return successNum;
+	}
+
+
+	@Override
+	public int insertTbLibImHeadmaster(TbLibJoin libJoin, TbClassTeacherTemp tbLibImTeacherTemp) {
+		if(libJoin!=null){
+			tbLibImTeacherTemp.setLibId(libJoin.getId());
+			tbLibImTeacherTemp.setLeagueName(libJoin.getLeagueName());
+			tbLibImTeacherTemp.setCreateTime(new Date());
+			tbLibImTeacherTemp.setStatus(1);
+			
+			try {
+				User user=userService.findByMobile(tbLibImTeacherTemp.getTeacherPhone());
+				if(user==null){//无老师user,生成老师user
+					user=new User();
+					user.setId(IdWorker.generateId());
+					user.setUserName(tbLibImTeacherTemp.getTeacherName());
+					user.setMobile(tbLibImTeacherTemp.getTeacherPhone());
+					user.setCreateTime(new Date());
+					user=userService.save(user);
+				}
+				tbLibImTeacherTemp.setTeacherId(user.getId());
+				
+				//如果之前有这个老师的,就统一使用用旧老师的名称,如果没有就使用新的名称。
+				TbClass tbClass=tbClassService.getTbClassGradeByLibId(tbLibImTeacherTemp.getLibId(),tbLibImTeacherTemp.getGrade(), tbLibImTeacherTemp.getSubject());
+				if(tbClass==null) {
+					tbClass=new TbClass();
+					tbClass.setLibId(tbLibImTeacherTemp.getLibId());
+					tbClass.setClassName(tbLibImTeacherTemp.getSubject());
+					tbClass.setGrade(tbLibImTeacherTemp.getGrade());
+					tbClass.setCreateTime(new Date());
+					tbClass.setStatus(1);
+					tbClass=tbClassService.save(tbClass);
+				}
+				TbClassTeacher tbClassType=tbClassTeacherService.getTbLibImTeacherByClassType(tbClass.getId());
+				if(tbClassType!=null) {
+					TbClassTeacher tbClassTeacher=tbClassTeacherService.getTbLibImTeacherByClassId(tbClass.getId(),user.getId());
+					if(tbClassTeacher==null) {
+						 tbClassTeacher=new TbClassTeacher();
+						 tbClassTeacher.setClassId(tbClass.getId());
+						 tbClassTeacher.setCreateTime(new Date());
+						 tbClassTeacher.setLibId(tbLibImTeacherTemp.getLibId());
+						 tbClassTeacher.setType(2);
+						 tbClassTeacher.setStatus(1);
+						 tbClassTeacher.setTeacherId(user.getId());
+						 tbClassTeacherService.save(tbClassTeacher);
+					}else {
+						tbLibImTeacherTemp.setTeacherId(user.getId());
+						tbLibImTeacherTemp.setStatus(0);
+						tbLibImTeacherTemp.setErrorReason("已存在班级老师身份");
+						this.save(tbLibImTeacherTemp);
+						return 0;
+					}
+				}else {
+					tbLibImTeacherTemp.setTeacherId(user.getId());
+					tbLibImTeacherTemp.setStatus(0);
+					tbLibImTeacherTemp.setErrorReason("已存在班主任级信息");
+					this.save(tbLibImTeacherTemp);
+					return 0;
+				}
+			
+			} catch (Exception e) {
+				e.printStackTrace();
+			}finally{
+			}
+			return 1;
+		}
+		return 0;
+	}
+
 	
 }

+ 214 - 2
src/main/java/com/ssj/sys/controller/ImLibUserController.java

@@ -778,17 +778,201 @@ public class ImLibUserController extends BaseController {
 		}
 		return response;
 	}	
+	
+	
+	
+	//校长导入
+	@RequestMapping(value="/principal/import")
+	@ResponseBody
+	public Response principalImput(Model model,@RequestParam("file") MultipartFile file) {
+		Response response = new  Response();
+		try {
+			List<Map<String,String>> datas=analysisExFile(file);
+			if(datas!=null && datas.size()>0){
+				List<TbClassTeacherTemp> tbLibImTeacherTemps=new ArrayList<TbClassTeacherTemp>();
+				TbClassTeacherTemp tbLibImTeacherTemp=null;
+				boolean iserror=false;
+				
+				for (Map<String,String> map : datas) {
+					tbLibImTeacherTemp=new TbClassTeacherTemp();
+					tbLibImTeacherTemp.setLeagueName(map.get("data_0"));
+					tbLibImTeacherTemp.setTeacherName(map.get("data_1"));
+					tbLibImTeacherTemp.setTeacherPhone(map.get("data_2"));
+					tbLibImTeacherTemps.add(tbLibImTeacherTemp);
+					
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getLeagueName())){
+						response.failure("机构名称不能为空");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherName())){
+						response.failure("姓名不能为空");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherPhone()) || tbLibImTeacherTemp.getTeacherPhone().length()!=11){
+						response.failure("电话号码不正确");
+						iserror=true;
+						break;
+					}
+				}
+				if(!iserror){
+					Integer successNum=tbLibImTeacherTempService.insertBatchTbLibImPrincipal(tbLibImTeacherTemps);
+					if(successNum<0){
+						response.failure("机构数据为空,请检查机构是否存在!");
+					}else if(tbLibImTeacherTemps.size()!=successNum) {
+						response.failure("存在导入失败数据,请查看失败列表!");
+					}else{
+						response.success("成功");
+					}
+				}
+			}
+			
+		} catch (Exception e) {
+			logger.error("异常", e);
+			response.failure("导入异常:"+e.getMessage());
+		}
+		return response;
+	}	
+	
+	
+	
+	//科目组长导入
+	@RequestMapping(value="/leader/import")
+	@ResponseBody
+	public Response leaderImput(Model model,@RequestParam("file") MultipartFile file) {
+		Response response = new  Response();
+		try {
+			List<Map<String,String>> datas=analysisExFile(file);
+			if(datas!=null && datas.size()>0){
+				List<TbClassTeacherTemp> tbLibImTeacherTemps=new ArrayList<TbClassTeacherTemp>();
+				TbClassTeacherTemp tbLibImTeacherTemp=null;
+				boolean iserror=false;
+				
+				for (Map<String,String> map : datas) {
+					tbLibImTeacherTemp=new TbClassTeacherTemp();
+					tbLibImTeacherTemp.setLeagueName(map.get("data_0"));
+					tbLibImTeacherTemp.setTeacherName(map.get("data_1"));
+					tbLibImTeacherTemp.setTeacherPhone(map.get("data_2"));
+					tbLibImTeacherTemp.setGrade(map.get("data_3"));
+					tbLibImTeacherTemp.setSubject(map.get("data_4"));
+					tbLibImTeacherTemps.add(tbLibImTeacherTemp);
+					
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getLeagueName())){
+						response.failure("机构名称不能为空");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherName())){
+						response.failure("姓名不能为空");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherPhone()) || tbLibImTeacherTemp.getTeacherPhone().length()!=11){
+						response.failure("电话号码不正确");
+						iserror=true;
+						break;
+					}
+				}
+				if(!iserror){
+					Integer successNum=tbLibImTeacherTempService.insertBatchTbLibImLeader(tbLibImTeacherTemps);
+					if(successNum<0){
+						response.failure("机构数据为空,请检查机构是否存在!");
+					}else if(tbLibImTeacherTemps.size()!=successNum) {
+						response.failure("存在导入失败数据,请查看失败列表!");
+					}else{
+						response.success("成功");
+					}
+				}
+			}
+			
+		} catch (Exception e) {
+			logger.error("异常", e);
+			response.failure("导入异常:"+e.getMessage());
+		}
+		return response;
+	}	
+	
+	
+	//科目组长导入
+	@RequestMapping(value="/headmaster/import")
+	@ResponseBody
+	public Response headmasterImput(Model model,@RequestParam("file") MultipartFile file) {
+		Response response = new  Response();
+		try {
+			List<Map<String,String>> datas=analysisExFile(file);
+			if(datas!=null && datas.size()>0){
+				List<TbClassTeacherTemp> tbLibImTeacherTemps=new ArrayList<TbClassTeacherTemp>();
+				TbClassTeacherTemp tbLibImTeacherTemp=null;
+				boolean iserror=false;
+				
+				for (Map<String,String> map : datas) {
+					tbLibImTeacherTemp=new TbClassTeacherTemp();
+					tbLibImTeacherTemp.setLeagueName(map.get("data_0"));
+					tbLibImTeacherTemp.setTeacherName(map.get("data_1"));
+					tbLibImTeacherTemp.setTeacherPhone(map.get("data_2"));
+					tbLibImTeacherTemp.setGrade(map.get("data_3"));
+					tbLibImTeacherTemp.setSubject(map.get("data_4"));
+					tbLibImTeacherTemps.add(tbLibImTeacherTemp);
+					
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getLeagueName())){
+						response.failure("校区名称不能为空");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherName())){
+						response.failure("姓名不能为空");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherPhone()) || tbLibImTeacherTemp.getTeacherPhone().length()!=11){
+						response.failure("电话号码不正确");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getGrade())){
+						response.failure("年级名称不能为空");
+						iserror=true;
+						break;
+					}
+					if(StringUtils.isEmpty(tbLibImTeacherTemp.getSubject())){
+						response.failure("班级名称不能为空");
+						iserror=true;
+						break;
+					}
+				}
+				if(!iserror){
+					Integer successNum=tbLibImTeacherTempService.insertBatchTbLibImHeadmaster(tbLibImTeacherTemps);
+					if(successNum<0){
+						response.failure("机构数据为空,请检查机构是否存在!");
+					}else if(tbLibImTeacherTemps.size()!=successNum) {
+						response.failure("存在导入失败数据,请查看失败列表!");
+					}else{
+						response.success("成功");
+					}
+				}
+			}
+			
+		} catch (Exception e) {
+			logger.error("异常", e);
+			response.failure("导入异常:"+e.getMessage());
+		}
+		return response;
+	}	
+	
+	
 
 	
 
 	//老师列表
-	@RequestMapping(value="/teacher/list/{libId}")
-	public String teacherList(Model model,@PathVariable String libId,
+	@RequestMapping(value="/teacher/list/{libId}/{type}")
+	public String teacherList(Model model,@PathVariable String libId,@PathVariable String type,
             @RequestParam(required = false, defaultValue = "100") int pageSize,
             @RequestParam(required = false, defaultValue = "1") int pageNo) {
 		
 		Map<String, Object> params = new HashMap<String, Object>();
 		params.put("libId", libId);
+		params.put("type", type);
 		params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
         SplitPage sp = new SplitPage();
         sp.setAction(request.getRequestURI());
@@ -809,6 +993,34 @@ public class ImLibUserController extends BaseController {
 	
 	
 	
+	//老师列表
+	@RequestMapping(value="/headmaster/list/{libId}")
+	public String headmasterList(Model model,@PathVariable String libId,
+            @RequestParam(required = false, defaultValue = "100") int pageSize,
+            @RequestParam(required = false, defaultValue = "1") int pageNo) {
+		
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("libId", libId);
+		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 = tbLibImTeacherService.findHeadmasterByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"create_time"}));
+        sp.setRowCnt((int) page.getTotalElements());
+        model.addAttribute("list", page.getContent());
+        model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
+        model.addAttribute("page", sp);
+        model.addAttribute("search", params);    
+		
+		TbLibJoin tbLibJoin=joinService.getById(libId);
+		model.addAttribute("tbLibJoin", tbLibJoin);
+		return "sys/imlibuser/headmasterList";
+	}	
+	
+	
+	
 	@RequestMapping(value="/teacher/exlist/{libId}")
     @ResponseBody
     public void exportTeacher(@PathVariable String libId,HttpServletRequest request, HttpServletResponse response) {  

二進制
src/main/resources/static/sys/excel/headmaster_lib.xlsx


二進制
src/main/resources/static/sys/excel/leader_lib .xlsx


二進制
src/main/resources/static/sys/excel/principal_lib .xlsx


+ 164 - 0
src/main/resources/templates/sys/imlibuser/headmasterList.html

@@ -0,0 +1,164 @@
+<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> 
+<script src="sys/js/My97DatePicker/WdatePicker.js" th:src="@{/static/sys/js/My97DatePicker/WdatePicker.js}"></script>
+</head>
+<style>
+	.tablelink{margin-right:10px;}
+	.stylecss{
+	      color: red;
+	}
+	.select_width{
+	     width: 220px;
+	}
+	.date_width{
+	     width: 150px;
+	}
+</style>
+<body>
+<div class="place">
+	<span>位置:</span>
+	<ul class="placeul">
+		<li><a th:href="@{/sys/imuser/school/list}">导入老师/学生</a></li>
+		<li><a href="#">老师列表</a></li>
+	</ul>
+</div>
+<div class="rightinfo">
+	<form id="seachform" th:action="${sysUrl+'/sys/imlibuser/teacher/list/'+tbLibJoin.id}" method="post">
+	  <input type="hidden" name="reportType" id="reportType" />
+		<ul class="seachform">
+			<li>
+			  <input style="width: 250px;" name="name" placeholder="输入老师名称" type="text" class="scinput" th:value="${search.get('name')}"/>
+		    </li>
+		    <li>
+			  <input type="button" class="scbtn" value="查询" />
+		    </li>
+		      <li style="line-height: 35px;">
+		    	<span style="font-size: 15px;color: red" th:text="${tbLibJoin.leagueName} "></span> 
+		    </li>
+		     <li style="line-height: 35px;">
+		    	<a th:href="${sysUrl+'/sys/imlibuser/school/list'}">返回上一级</a> 
+		    </li>
+		    
+		</ul>
+	</form>
+	
+<!-- 	<ul class="seachform"> -->
+<!-- 	    <li> -->
+<!-- 		  <input type="button" onclick="javascript:teacherAdd();" style="width: 100px;height: 30px"  class="scbtn" value="+ 添加老师" /> -->
+<!-- 	    </li> -->
+<!-- 	      <li> -->
+<!-- 		  	<input type="button" id="exbutton" style="width: 100px;height: 30px;background: #ccc no-repeat center;"  class="scbtn" value="导出老师" /> -->
+<!-- 	     </li> -->
+<!-- 	</ul> -->
+	
+	
+	<table class="tablelist">
+		<thead>
+		    <tr>
+		    	<th>老师姓名</th>
+<!-- 		    	<th>学校名称</th> -->
+<!-- 		    	<th>年级</th> -->
+		    	<th>老师电话</th>
+<!-- 		    	<th>是否批改作业</th> -->
+		        <th>操作</th>
+		    </tr> 
+		</thead>
+		<tbody>
+			<tr th:each="item:${list}" >
+				<td th:text="${item.user_name}"></td>
+<!-- 				<td th:text="${item.school}"></td> -->
+<!-- 				<td th:text="${item.grade}"></td> -->
+				<td th:text="${item.mobile}"></td>
+<!-- 				<td > -->
+<!-- 					<a th:if="${item.is_correct==1}" th:href="${'javascript:teacherIsCorrectSave(''' + item.user_id + ''',0)'}"  class="tablelink" style="color:red">取消批改</a> -->
+<!-- 					<a th:if="${item.is_correct!=1}" th:href="${'javascript:teacherIsCorrectSave(''' + item.user_id + ''',1)'}"  class="tablelink">设置批改</a> -->
+<!-- 				</td> -->
+				<td>
+<!-- 					<a th:href="${'javascript:teacherDel(''' + item.user_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>
+</body>
+
+<script type="text/javascript">
+$("#exbutton").on('click',function(){
+	document.getElementById("seachform").action = "[[${sysUrl}]]/sys/imlibuser/teacher/exlist/[[${tbLibJoin.id}]]";
+	$("#seachform").submit();
+	document.getElementById("seachform").action = "[[${sysUrl}]]/sys/imlibuser/teacher/list/[[${tbLibJoin.id}]]";
+});
+</script>
+
+<script type="text/javascript">
+	
+	function teacherAdd(){
+		layer.open({
+		    type: 2,
+		    title: '添加老师',
+		    closeBtn: 1, //不显示关闭按钮
+		    shift: 0.8,
+		    offset: '100px',
+		    area: ['50%', '50%'],
+		    content: '[[${sysUrl}]]/sys/imlibuser/teacher/add/[[${tbLibJoin.id}]]'
+		});
+	}
+
+	function teacherDel(teacherId){
+		parent.layer.confirm("您确定要删除老师关联?", {
+			icon: 4, btn: ['确定','关闭'],offset: '100px' //按钮
+		}, function(){
+			var url="[[${sysUrl}]]/sys/imlibuser/teacher/data/del/[[${tbLibJoin.id}]]/"+teacherId;
+			var params ={};
+			$.post(url,params,function(data){
+				if(data.meta.success){
+					parent.layer.msg("删除成功",{icon:1});
+					location.reload();
+				}else{
+					parent.layer.msg(data.meta.message,{icon:11});
+				}
+			});
+		});
+	}
+	
+	
+	function teacherIsCorrectSave(teacherId,isCorrect){
+		var title="";
+		if(isCorrect==1){
+			title="您确定要【设置】此老师为批改老师的身份?";
+		}else{
+			title="您确定要【取消】此老师为批改老师的身份?";
+		}
+		
+		parent.layer.confirm(title, {
+			icon: 4, btn: ['确定','关闭'],offset: '100px' //按钮
+		}, function(){
+			var url="[[${sysUrl}]]/sys/imlibuser/teacher/data/iscorrect/save/[[${tbLibJoin.id}]]/"+teacherId;
+			var params ={isCorrect:isCorrect};
+			$.post(url,params,function(data){
+				if(data.meta.success){
+					parent.layer.msg("操作成功",{icon:1});
+					location.reload();
+				}else{
+					parent.layer.msg(data.meta.message,{icon:11});
+				}
+			});
+		});
+	}
+	
+
+	
+</script>
+
+
+</html>

+ 220 - 23
src/main/resources/templates/sys/imlibuser/schoolList.html

@@ -42,31 +42,66 @@
 	</form>
 	
 	<ul class="seachform">
-	    <li>
-		  <input type="button" id="studentimput" style="width: 100px;height: 30px"  class="scbtn" value=" + 导入学生" />
+
+	     <li>
+		  <input type="button" id="principalimput" style="width: 100px;height: 30px"  class="scbtn" value=" + 导入校长" />
 		  <div style="display: none">
-		 	 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" id="studentfile" />
+		 	 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" id="principalfile" />
+		  </div>
+	    </li>
+	    
+	      <li>
+		  <input type="button" id="leaderimput" style="width: 100px;height: 30px"  class="scbtn" value=" + 导入科目组长" />
+		  <div style="display: none">
+		 	 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" id="leaderfile" />
 		  </div>
 	    </li>
 	    
 	     <li>
-		  <input type="button" id="teacherimput" style="width: 100px;height: 30px"  class="scbtn" value=" + 导入老师" />
+		  <input type="button" id="headmasterimput" style="width: 100px;height: 30px"  class="scbtn" value=" + 导入班主任" />
 		  <div style="display: none">
-		 	 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" id="teacherfile" />
+		 	 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" id="headmasterfile" />
 		  </div>
 	    </li>
 	    
 	     <li>
-		  <a th:href="@{/static/sys/excel/student_lib.xlsx}"><input type="button" style="width: 100px;height: 30px"  class="scbtn" value="下载学生模板" /></a>
+		  <input type="button" id="teacherimput" style="width: 100px;height: 30px"  class="scbtn" value=" + 导入科任老师" />
+		  <div style="display: none">
+		 	 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" id="teacherfile" />
+		  </div>
 	    </li>
 	    
 	    <li>
-		  <a th:href="@{/static/sys/excel/teacher_lib.xlsx}"><input type="button" style="width: 100px;height: 30px"  class="scbtn" value="下载老师模板" /></a>
+		  <input type="button" id="studentimput" style="width: 100px;height: 30px"  class="scbtn" value=" + 导入学生" />
+		  <div style="display: none">
+		 	 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" id="studentfile" />
+		  </div>
 	    </li>
 	    
+	    
 	     <li>
-		  <input type="button" id="exbutton" style="width: 100px;height: 30px;background: #ccc no-repeat center;"  class="scbtn" value="导出校区" />
-	     </li>
+		  <a th:href="@{/static/sys/excel/principal_lib .xlsx}"><input type="button" style="background: #ccc no-repeat center;width: 100px;height: 30px"  class="scbtn" value="校长模板" /></a>
+	    </li>
+	    
+	     <li>
+		  <a th:href="@{/static/sys/excel/leader_lib .xlsx}"><input type="button" style="background: #ccc no-repeat center;width: 100px;height: 30px"  class="scbtn" value="科目组长模板" /></a>
+	    </li>
+	    
+	     <li>
+		  <a th:href="@{/static/sys/excel/headmaster_lib.xlsx}"><input type="button" style="background: #ccc no-repeat center;width: 100px;height: 30px"  class="scbtn" value="班主任模板" /></a>
+	    </li>
+	    
+	   <li>
+		  <a th:href="@{/static/sys/excel/teacher_lib.xlsx}"><input type="button" style="background: #ccc no-repeat center;width: 100px;height: 30px"  class="scbtn" value="科任老师模板" /></a>
+	    </li>
+	    
+	     <li>
+		  <a th:href="@{/static/sys/excel/student_lib.xlsx}"><input type="button" style="background: #ccc no-repeat center;width: 100px;height: 30px"  class="scbtn" value="学生模板" /></a>
+	    </li>
+	    
+<!-- 	     <li> -->
+<!-- 		  <input type="button" id="exbutton" style="width: 100px;height: 30px;background: #ccc no-repeat center;"  class="scbtn" value="导出校区" /> -->
+<!-- 	     </li> -->
 	    
 	    
 	     <li style="line-height: 30px;">
@@ -86,27 +121,47 @@
 		    	<th style="width: 10%">校区服务塾币</th>
 		    	<th style="width: 10%">平台服务塾币</th>
 		    	<th style="width: 10%">端口</th>
-		    	<th style="width: 10%">老师人数</th>
+		    	<th style="width: 10%">校长人数</th>
+		    	<th style="width: 10%">科目组长人数</th>
+		    	<th style="width: 10%">班主任人数</th>
+		    	<th style="width: 10%">科任老师人数</th>
 		    	<th style="width: 10%">学生人数</th>
-		        <th style="min-width: 14%">操作</th>
+<!-- 		        <th style="min-width: 14%">操作</th> -->
 		    </tr> 
 		</thead>
 		<tbody>
-			<tr th:each="item:${list}" th:style="${item.teacher_num>0 || item.student_num>0 ? 'color:red' : '' }">
+			<tr th:each="item:${list}" th:style="${item.principal_num>0 || item.teacher_num>0 || item.student_num>0 ? 'color:red' : '' }">
 				<td onclick="copyContent(this);"  th:text="${item.league_name}"></td>
 				<td th:text="${item.lib_service+' 个'}"></td>
 				<td th:text="${item.platform_service+' 个'}"></td>
 				<td th:text="${item.port_num+' 个'}"></td>
-				<td th:text="${item.teacher_num+' 人'}"></td>
-				<td th:text="${item.student_num+' 人'}"></td>
+				<td >
+					<a th:href="${sysUrl+'/sys/imlibuser/teacher/list/'+item.id+'/1'}"  class="tablelink">
+						[[${item.principal_num+' 人'}]]
+					</a>
+				</td>
+				<td >
+					<a th:href="${sysUrl+'/sys/imlibuser/teacher/list/'+item.id+'/2'}"  class="tablelink">
+						[[${item.leader_num+' 人'}]]
+					</a>
+				</td>
+				<td >
+					<a th:href="${sysUrl+'/sys/imlibuser/headmaster/list/'+item.id}"  class="tablelink">
+						[[${item.headmaster_num+' 人'}]]
+					</a>
+				</td>
+				<td >
+					<a th:href="${sysUrl+'/sys/imlibuser/teacher/list/'+item.id+'/4'}"  class="tablelink">
+						[[${item.teacher_num+' 人'}]]
+					</a>
+				</td>
+				<td >
+					<a th:href="${sysUrl+'/sys/imlibuser/student/list/'+item.id}"  class="tablelink">
+						[[${item.student_num+' 人'}]]
+					</a>
+				</td>
 				<td>
 				
-<!-- 					<a href="javascript:0" th:onclick="${'joinServiceEdit('''+item.id+''')'}"  class="tablelink">管理学币</a> -->
-				
-					<a th:href="${sysUrl+'/sys/imlibuser/teacher/list/'+item.id}"  class="tablelink">老师详情</a>
-						
-					<a th:href="${sysUrl+'/sys/imlibuser/student/list/'+item.id}"  class="tablelink">学生详情</a>
-					
 				</td>
 			</tr>
 		</tbody>
@@ -332,7 +387,6 @@ function copyContent(ElementObj){
 		$("#studentimput").click(function (){
 			$("#studentfile").click();
 		})
-	
 	    var $studentfile =  $("#studentfile");
 	    $studentfile.change(function () {
 	        if($(this).val() != ""){
@@ -340,11 +394,44 @@ function copyContent(ElementObj){
 	        }
 	    })
 	    
+	    
+	    
+	    $("#principalimput").click(function (){
+			$("#principalfile").click();
+		})
+	    var $principalfile =  $("#principalfile");
+	    $principalfile.change(function () {
+	        if($(this).val() != ""){
+	        	filePrincipalLoad(this);
+	        }
+	    })
+	    
+	    
+	    $("#leaderimput").click(function (){
+			$("#leaderfile").click();
+		})
+	    var $leaderfile =  $("#leaderfile");
+	    $leaderfile.change(function () {
+	        if($(this).val() != ""){
+	        	fileLeaderLoad(this);
+	        }
+	    })
+	    
+	    
+	    $("#headmasterimput").click(function (){
+			$("#headmasterfile").click();
+		})
+	    var $leaderfile =  $("#headmasterfile");
+	    $leaderfile.change(function () {
+	        if($(this).val() != ""){
+	        	fileHeadmasterLoad(this);
+	        }
+	    })
+	    
 	  
-
 	})
 
-	
+	//+ 导入学生
 	function fileStudentLoad(ele){
 	  var formData = new FormData();
 	  var name = $(ele).val();
@@ -378,6 +465,7 @@ function copyContent(ElementObj){
 	  });
 	}
 	
+	//+ 导入老师
 	function fileTeacherLoad(ele){
 		  var formData = new FormData();
 		  var name = $(ele).val();
@@ -410,8 +498,117 @@ function copyContent(ElementObj){
 		      }
 		  });
 		}
+	
+	
+	
+	//  + 导入校长
+	function filePrincipalLoad(ele){
+		  var formData = new FormData();
+		  var name = $(ele).val();
+		  var files = $(ele)[0].files[0];
+		  formData.append("file", files);
+		  formData.append("name", name);
+		  $.ajax({
+			  url: "[[${sysUrl}]]/sys/imlibuser/principal/import",
+		      type: 'POST',
+		      data: formData,
+		      processData: false,
+		      contentType: false, 
+		      beforeSend: function () {
+		    	  parent.layer.msg("数据正在导入中....",{icon:2});
+		      },
+		      success: function (responseStr) {
+		    	  if(responseStr.meta.success){
+			    	  parent.layer.msg("导入成功",{icon:1});
+					  parent.location.reload();
+					  parent.layer.close(parent.layer.getFrameIndex(window.name));
+		    	  }else{
+		    		  parent.layer.msg(responseStr.meta.message,{icon:11});
+		    		  $("#principalfile").val("");
+		    	  }
+		      }
+		      ,
+		      error : function (responseStr) {
+		    	  parent.layer.msg("导入失败,请刷新后重试!",{icon:11});
+		    	  $("#studentfile").val("");
+		      }
+		  });
+		}
 
 	
+	// + 导入科目组长
+	function fileLeaderLoad(ele){
+		  var formData = new FormData();
+		  var name = $(ele).val();
+		  var files = $(ele)[0].files[0];
+		  formData.append("file", files);
+		  formData.append("name", name);
+		  $.ajax({
+			  url: "[[${sysUrl}]]/sys/imlibuser/leader/import",
+		      type: 'POST',
+		      data: formData,
+		      processData: false,
+		      contentType: false, 
+		      beforeSend: function () {
+		    	  parent.layer.msg("数据正在导入中....",{icon:2});
+		      },
+		      success: function (responseStr) {
+		    	  if(responseStr.meta.success){
+			    	  parent.layer.msg("导入成功",{icon:1});
+					  parent.location.reload();
+					  parent.layer.close(parent.layer.getFrameIndex(window.name));
+		    	  }else{
+		    		  parent.layer.msg(responseStr.meta.message,{icon:11});
+		    		  $("#principalfile").val("");
+		    	  }
+		      }
+		      ,
+		      error : function (responseStr) {
+		    	  parent.layer.msg("导入失败,请刷新后重试!",{icon:11});
+		    	  $("#leaderfile").val("");
+		      }
+		  });
+		}
+	
+	
+	// + 导入班主任
+	function fileHeadmasterLoad(ele){
+		  var formData = new FormData();
+		  var name = $(ele).val();
+		  var files = $(ele)[0].files[0];
+		  formData.append("file", files);
+		  formData.append("name", name);
+		  $.ajax({
+			  url: "[[${sysUrl}]]/sys/imlibuser/headmaster/import",
+		      type: 'POST',
+		      data: formData,
+		      processData: false,
+		      contentType: false, 
+		      beforeSend: function () {
+		    	  parent.layer.msg("数据正在导入中....",{icon:2});
+		      },
+		      success: function (responseStr) {
+		    	  if(responseStr.meta.success){
+			    	  parent.layer.msg("导入成功",{icon:1});
+					  parent.location.reload();
+					  parent.layer.close(parent.layer.getFrameIndex(window.name));
+		    	  }else{
+		    		  parent.layer.msg(responseStr.meta.message,{icon:11});
+		    		  $("#principalfile").val("");
+		    	  }
+		      }
+		      ,
+		      error : function (responseStr) {
+		    	  parent.layer.msg("导入失败,请刷新后重试!",{icon:11});
+		    	  $("#headmasterfile").val("");
+		      }
+		  });
+		}
+	
+	
+
+	
+	
 
 </script>
 

+ 8 - 8
src/main/resources/templates/sys/imlibuser/teacherList.html

@@ -45,16 +45,16 @@
 		</ul>
 	</form>
 	
-	<ul class="seachform">
-	    <li>
-		  <input type="button" onclick="javascript:teacherAdd();" style="width: 100px;height: 30px"  class="scbtn" value="+ 添加老师" />
-	    </li>
+<!-- 	<ul class="seachform"> -->
+<!-- 	    <li> -->
+<!-- 		  <input type="button" onclick="javascript:teacherAdd();" style="width: 100px;height: 30px"  class="scbtn" value="+ 添加老师" /> -->
+<!-- 	    </li> -->
 	    
-	      <li>
-		  	<input type="button" id="exbutton" style="width: 100px;height: 30px;background: #ccc no-repeat center;"  class="scbtn" value="导出老师" />
-	     </li>
+<!-- 	      <li> -->
+<!-- 		  	<input type="button" id="exbutton" style="width: 100px;height: 30px;background: #ccc no-repeat center;"  class="scbtn" value="导出老师" /> -->
+<!-- 	     </li> -->
 	    
-	</ul>
+<!-- 	</ul> -->
 	
 	
 	<table class="tablelist">