package com.lizhou.service;
import java.sql.Connection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import com.lizhou.bean.Clazz;
import com.lizhou.bean.Course;
import com.lizhou.bean.CourseItem;
import com.lizhou.bean.Grade;
import com.lizhou.bean.Page;
import com.lizhou.bean.Student;
import com.lizhou.bean.Teacher;
import com.lizhou.bean.User;
import com.lizhou.dao.impl.BaseDaoImpl;
import com.lizhou.dao.impl.StudentDaoImpl;
import com.lizhou.dao.impl.TeacherDaoImpl;
import com.lizhou.dao.inter.BaseDaoInter;
import com.lizhou.dao.inter.StudentDaoInter;
import com.lizhou.dao.inter.TeacherDaoInter;
import com.lizhou.tools.MysqlTool;
import com.lizhou.tools.StringTool;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* 教师类服务层
* @author bojiangzhou
*
*/
public class TeacherService {
private TeacherDaoInter dao;
public TeacherService(){
dao = new TeacherDaoImpl();
}
/**
* 获取教师信息
* @param page
* @param rows
* @return
*/
public String getTeacherList(Page page) {
//sql语句
String sql = "SELECT * FROM teacher ORDER BY id DESC LIMIT ?,?";
//获取数据
List<Teacher> list = dao.getTeacherList(sql, new Object[]{page.getStart(), page.getSize()}, null, null);
//获取总记录数
long total = dao.count("SELECT COUNT(*) FROM teacher", new Object[]{});
//定义Map
Map<String, Object> jsonMap = new HashMap<String, Object>();
//total键 存放总记录数,必须的
jsonMap.put("total", total);
//rows键 存放每页记录 list
jsonMap.put("rows", list);
//格式化Map,以json格式返回数据
String result = JSONObject.fromObject(jsonMap).toString();
//返回
return result;
}
/**
* 获取某个老师的具体信息:包括所选课程
* @param number
* @return
*/
public Teacher getTeacher(String number) {
//sql语句
String sql = "SELECT * FROM teacher WHERE number=?";
//获取数据
List<Teacher> list = dao.getTeacherList(sql, new Object[]{number}, null, null);
//返回
return list.get(0);
}
/**
* 获取某年级下老师的班级
* @param number
* @param grade
* @return
*/
public String getExamClazz(String number, Grade grade) {
//sql语句
String sql = "SELECT * FROM teacher WHERE number=?";
//获取数据
Teacher list = dao.getTeacherList(sql, new Object[]{number}, grade, null).get(0);
List<Clazz> clazzList = new LinkedList<>();
List<CourseItem> courseItem = list.getCourseList();
for(CourseItem item : courseItem){
boolean flag = true;
for(Clazz clazz : clazzList){
if(clazz.getId() == item.getClazzid()){
flag = false;
break;
}
}
if(flag){
clazzList.add(item.getClazz());
}
}
String result = JSONArray.fromObject(clazzList).toString();
//返回
return result;
}
/**
* 查询考试下老师的课程
* @param number
* @param grade
* @param clazz
* @return
*/
public String getExamClazz(String number, Grade grade, Clazz clazz) {
//sql语句
String sql = "SELECT * FROM teacher WHERE number=?";
//获取数据
Teacher list = dao.getTeacherList(sql, new Object[]{number}, grade, clazz).get(0);
List<Course> courseList = new LinkedList<>();
List<CourseItem> courseItem = list.getCourseList();
for(CourseItem item : courseItem){
courseList.add(item.getCourse());
}
String result = JSONArray.fromObject(courseList).toString();
//返回
return result;
}
/**
* 获取老师详细信息
* @param number
* @return
*/
public String getTeacherResult(String number) {
Teacher teacher = getTeacher(number);
String result = JSONObject.fromObject(teacher).toString();
//返回
return result;
}
/**
* 添加老师信息
* @param teacher
* @throws Exception
*/
public void addTeacher(Teacher teacher) throws Exception {
Connection conn = MysqlTool.getConnection();
try {
//开启事务
MysqlTool.startTransaction();
String sql = "INSERT INTO teacher(number, name, sex, qq, photo) value(?,?,?,?,?)";
Object[] param = new Object[]{
teacher.getNumber(),
teacher.getName(),
teacher.getSex(),
teacher.getPhone(),
teacher.getQq()
};
//添加教师信息
int teacherid = dao.insertReturnKeysTransaction(conn, sql, param);
//设置课程
if(teacher.getCourse() != null && teacher.getCourse().length > 0){
for(String course : teacher.getCourse()){
String[] gcc = course.split("_");
int gradeid = Integer.parseInt(gcc[0]);
int clazzid = Integer.parseInt(gcc[1]);
int courseid = Integer.parseInt(gcc[2]);
dao.insertTransaction(conn,
"INSERT INTO clazz_course_teacher(clazzid, gradeid, courseid, teacherid) value(?,?,?,?) ",
new Object[]{clazzid, gradeid, courseid, teacherid});
}
}
//添加用户记录
dao.insertTransaction(conn, "INSERT INTO user(account, name, type) value(?,?,?)",
new Object[]{
teacher.getNumber(),
teacher.getName(),
User.USER_TEACHER
});
//提交事务
MysqlTool.commit();
} catch (Exception e) {
//回滚事务
MysqlTool.rollback();
e.printStackTrace();
throw e;
} finally {
MysqlTool.closeConnection();
}
}
/**
* 修改教师信息
* @param teacher
* @throws Exception
*/
public void editTeacher(Teacher teacher) throws Exception {
Connection conn = MysqlTool.getConnection();
try {
//开启事务
MysqlTool.startTransaction();
String sql = "UPDATE teacher set name=?,sex=?,phone=?,qq=? WHERE id=?";
Object[] param = new Object[]{
teacher.getName(),
teacher.getSex(),
teacher.getPhone(),
teacher.getQq(),
teacher.getId()
};
//修改教师信息
dao.updateTransaction(conn, sql, param);
//修改系统用户信息
dao.update("UPDATE user SET name=? WHERE account=?",
new Object[]{teacher.getName(), teacher.getNumber()});
//删除教师与课程的关联
dao.deleteTransaction(conn, "DELETE FROM clazz_course_teacher WHERE teacherid =?", new Object[]{teacher.getId()});
//设置课程
if(teacher.getCourse() != null && teacher.getCourse().length > 0){
for(String course : teacher.getCourse()){
String[] gcc = course.split("_");
int gradeid = Integer.parseInt(gcc[0]);
int clazzid = Integer.parseInt(gcc[1]);
int courseid = Integer.parseInt(gcc[2]);
dao.insertTransaction(conn,
"INSERT INTO clazz_course_teacher(clazzid, gradeid, courseid, teacherid) value(?,?,?,?) ",
new Object[]{clazzid, gradeid, courseid, teacher.getId()});
}
}
//提交事务
MysqlTool.commit();
} catch (Exception e) {
//回滚事务
MysqlTool.rollback();
e.printStackTrace();
throw e;
} finally {
MysqlTool.closeConnection();
}
}
/**
* 教师修改个人信息
* @param teacher
*/
public void editTeacherPersonal(Teacher teacher){
String sql = "UPDATE teacher SET name=?, sex=?, phone=?, qq=? WHERE number=?";
//更新信息
dao.update(sql, new Object[]{
teacher.getName(),
teacher.getSex(),
teacher.getPhone(),
teacher.getQq(),
teacher.getNumber()});
dao.update("UPDATE user SET name=? WHERE account=?",
new Object[]{teacher.getName(), teacher.getNumber()});
}
/**
* 删除教师
* @param ids 教师ID数组
* @param numbers 教师工号数组
* @throws Exception
*/
public void deleteTeacher(String[] ids, String[] numbers) throws Exception{
//获取占位符
String mark = StringTool.getMark(ids.length);
Integer tid[] = new Integer[ids.length
没有合适的资源?快使用搜索试试~ 我知道了~
jsp学生信息管理系统(源码+数据库脚本) .zip
共350个文件
png:110个
java:53个
class:53个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 36 浏览量
2022-03-11
20:28:54
上传
评论
收藏 8.93MB ZIP 举报
温馨提示
源码参考,欢迎下载
资源推荐
资源详情
资源评论
收起资源包目录
jsp学生信息管理系统(源码+数据库脚本) .zip (350个子文件)
BaseDaoImpl.class 11KB
TeacherService.class 9KB
ExamService.class 8KB
ScoreService.class 8KB
ExcelTool.class 7KB
TeacherServlet.class 7KB
StudentService.class 7KB
VCodeGenerator.class 6KB
StudentServlet.class 6KB
GradeService.class 5KB
ExamServlet.class 5KB
TeacherDaoImpl.class 5KB
ClazzService.class 5KB
SystemServlet.class 4KB
ScoreServlet.class 4KB
Exam.class 4KB
ScoreDaoImpl.class 4KB
ExamDaoImpl.class 3KB
LoginServlet.class 3KB
ClazzDaoImpl.class 3KB
ClazzServlet.class 3KB
StudentDaoImpl.class 3KB
BaseDaoInter.class 3KB
PhotoService.class 3KB
GradeServlet.class 3KB
PhotoServlet.class 3KB
CourseServlet.class 3KB
CourseService.class 3KB
EScore.class 3KB
Student.class 3KB
MysqlTool.class 2KB
PhotoDaoImpl.class 2KB
SystemService.class 2KB
VisitFilter.class 2KB
Teacher.class 2KB
CourseItem.class 2KB
Grade.class 2KB
Clazz.class 2KB
SystemInfo.class 2KB
StringTool.class 1KB
User.class 1KB
EncodeFilter.class 1KB
SystemInitListener.class 1KB
Page.class 982B
Course.class 718B
TeacherDaoInter.class 453B
StudentDaoInter.class 375B
ClazzDaoInter.class 365B
ExamDaoInter.class 363B
SystemDaoImpl.class 362B
ScoreDaoInter.class 353B
PhotoDaoInter.class 311B
SystemDaoInter.class 171B
.classpath 661B
org.eclipse.wst.common.component 485B
org.eclipse.wst.jsdt.ui.superType.container 49B
H-ui.css 139KB
H-ui.min.css 99KB
easyui.css 54KB
iconfont.css 12KB
icheck.css 12KB
tabs.css 9KB
datagrid.css 5KB
icon.css 4KB
linkbutton.css 4KB
color.css 4KB
calendar.css 4KB
tree.css 3KB
panel.css 3KB
default.css 2KB
menu.css 2KB
window.css 2KB
tooltip.css 2KB
menubutton.css 2KB
searchbox.css 2KB
datalist.css 2KB
textbox.css 2KB
H-ui.login.css 2KB
layout.css 2KB
slider.css 2KB
spinner.css 1KB
pagination.css 1KB
skin.css 1KB
combo.css 1KB
accordion.css 838B
messager.css 804B
propertygrid.css 716B
progressbar.css 653B
datebox.css 619B
dialog.css 560B
combobox.css 396B
demo.css 306B
filebox.css 306B
splitbutton.css 293B
numberbox.css 128B
validatebox.css 94B
Thumbs.db 56KB
Thumbs.db 18KB
Thumbs.db 13KB
Thumbs.db 4KB
共 350 条
- 1
- 2
- 3
- 4
资源评论
- m0_680644392022-12-13这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
等天晴i
- 粉丝: 3419
- 资源: 10万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功