Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計(jì)管理系統(tǒng)的實(shí)現(xiàn)流程
一、項(xiàng)目簡述
功能包括: 該系統(tǒng)不錯(cuò)分為學(xué)生,教師,管理員,教導(dǎo)主任四種角 色,包括學(xué)生管理,教師管理,學(xué)生選題,教師選題,主 任審核,管理員審核,開題報(bào)告,中期檢查,論文提交, 文件管理等等非常不錯(cuò)。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。





用戶管理操作控制層:
/**
* 用戶管理操作
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 用戶添加頁面
* @return
*/
@GetMapping("/add")
public String create() {
return "user/add";
}
/**
* 用戶添加操作
* @param user
* @return
*/
@PostMapping("/add")
@ResponseBody
public Map<String, Object> add(@RequestBody User user) {
if(StringUtils.isEmpty(user.getUserName())){
return MapControl.getInstance().error("請?zhí)顚懹脩裘?).getMap();
}
if(StringUtils.isEmpty(user.getName())){
return MapControl.getInstance().error("請?zhí)顚懨Q").getMap();
}
if(StringUtils.isEmpty(user.getUserPwd())){
return MapControl.getInstance().error("請?zhí)顚懨艽a").getMap();
}
int result = userService.create(user);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
/**
* 根據(jù)id刪除
* @param id
* @return
*/
@PostMapping("/delete/{id}")
@ResponseBody
public Map<String, Object> delete(@PathVariable("id") Integer id) {
int result = userService.delete(id);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
//批量刪除
@PostMapping("/delete")
@ResponseBody
public Map<String, Object> delete(String ids) {
int result = userService.delete(ids);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
/**
* 編輯用戶信息操作
* @param user
* @return
*/
@PostMapping("/edit")
@ResponseBody
public Map<String, Object> edit(@RequestBody User user) {
if(StringUtils.isEmpty(user.getUserName())){
return MapControl.getInstance().error("請?zhí)顚懹脩裘?).getMap();
}
if(StringUtils.isEmpty(user.getName())){
return MapControl.getInstance().error("請?zhí)顚懨Q").getMap();
}
if(StringUtils.isEmpty(user.getUserPwd())){
return MapControl.getInstance().error("請?zhí)顚懨艽a").getMap();
}
int result = userService.update(user);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
/**
* 根據(jù)id查詢,跳轉(zhuǎn)修改頁面
* @param id
* @param modelMap
* @return
*/
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Integer id, ModelMap modelMap) {
User user = userService.detail(id);
modelMap.addAttribute("user", user);
return "user/edit";
}
//查詢所有
@PostMapping("/query")
@ResponseBody
public Map<String, Object> query(@RequestBody User user) {
List<User> list = userService.query(user);
Integer count = userService.count(user);
return MapControl.getInstance().success().page(list, count).getMap();
}
//跳轉(zhuǎn)列表頁面
@GetMapping("/list")
public String list() {
return "user/list";
}
}
跳轉(zhuǎn)首頁判斷以及數(shù)據(jù)展示圖表:
@Controller
public class IndexController {
@Autowired
UserService userService;
@Autowired
TeacherService teacherService;
@Autowired
StudentService studentService;
@Autowired
ClazzService clazzService;
@Autowired
SubjectService subjectService;
@Autowired
CourseService courseService;
@Autowired
SectionService sectionService;
@Autowired
ScoreService scoreService;
//跳轉(zhuǎn)系統(tǒng)主頁
@GetMapping("/index")
public String login() {
return "index";
}
//跳轉(zhuǎn)用戶基本信息頁面
@GetMapping("/info")
public String info() {
return "info";
}
//跳轉(zhuǎn)修改密碼頁面
@GetMapping("/pwd")
public String pwd() {
return "pwd";
}
//修改密碼 根據(jù)舊密碼來修改密碼
@PostMapping("/pwd")
@ResponseBody
public Map<String,Object> pwd(String sourcePwd,String newPwd,String type,Integer id) {
//先判斷類型
if("1".equals(type)) {
User user = userService.detail(id);
//比較原密碼是否相同 注意:原密碼也要加密后再進(jìn)行比較,因?yàn)閿?shù)據(jù)庫中存儲的是加密后的密碼
if(user.getUserPwd().equals(MD5Utils.getMD5(sourcePwd))) {
User entity = new User();
entity.setId(id);
entity.setUserPwd(MD5Utils.getMD5(newPwd)); //主要要加密
int result = userService.update(entity);
if(result <= 0) {
return MapControl.getInstance().error().getMap();
} else {
return MapControl.getInstance().success().getMap();
}
} else {
return MapControl.getInstance().error("原密碼錯(cuò)誤").getMap();
}
}
if("2".equals(type)) {
Teacher teacher = teacherService.detail(id);
//比較原密碼
if(teacher.getTeacherPwd().equals(MD5Utils.getMD5(sourcePwd))) {
Teacher entity = new Teacher();
entity.setId(id);
entity.setTeacherPwd(MD5Utils.getMD5(newPwd));
int result = teacherService.update(entity);
if(result <= 0) {
return MapControl.getInstance().error().getMap();
} else {
return MapControl.getInstance().success().getMap();
}
} else {
return MapControl.getInstance().error("原密碼錯(cuò)誤").getMap();
}
}
if("3".equals(type)) {
Student student = studentService.detail(id);
//比較原密碼
if(student.getStuPwd().equals(MD5Utils.getMD5(sourcePwd))) {
Student entity = new Student();
entity.setId(id);
entity.setStuPwd(MD5Utils.getMD5(newPwd));
int result = studentService.update(entity);
if(result <= 0) {
return MapControl.getInstance().error().getMap();
} else {
return MapControl.getInstance().success().getMap();
}
} else {
return MapControl.getInstance().error("原密碼錯(cuò)誤").getMap();
}
}
return MapControl.getInstance().error().getMap();
}
//跳轉(zhuǎn)系統(tǒng)主頁(數(shù)據(jù)概覽)
@GetMapping("/main")
public String main(ModelMap modelMap) {
//1.系統(tǒng)數(shù)據(jù)概覽
List<Clazz> clazzes = clazzService.query(null);
List<Subject> subjects = subjectService.query(null);
List<Teacher> teachers = teacherService.query(null);
List<Course> courses = courseService.query(null);
List<Section> sections = sectionService.query(null);
List<Student> students = studentService.query(null);
modelMap.addAttribute("clazzCnt",clazzes.size());
modelMap.addAttribute("subjectCnt",subjects.size());
modelMap.addAttribute("teacherCnt",teachers.size());
modelMap.addAttribute("courseCnt",courses.size());
modelMap.addAttribute("studentCnt",students.size());
modelMap.addAttribute("sectionCnt",sections.size());
//2.班級學(xué)生數(shù)量
List<Map<String,Object>> mapList = new ArrayList<>();
for(Clazz clazz : clazzes) {
Map<String,Object> map = new HashMap<>();
map.put("name",clazz.getClazzName()); //設(shè)置班級名稱
int cnt = 0;
//統(tǒng)計(jì)學(xué)生數(shù)量
for(Student student : students) {
if(student.getClazzId() == clazz.getId()) {
cnt++;
}
}
map.put("cnt",cnt); //設(shè)置學(xué)生數(shù)量
mapList.add(map);
}
modelMap.addAttribute("mapList",mapList);
//3.查詢各科平均成績(根據(jù)專業(yè)查詢各科平均成績)
List<HashMap> mapList2 = scoreService.queryAvgScoreBySection();
modelMap.addAttribute("mapList2",mapList2);
return "main";
}
}
公告管理控制器:
/**
* 公告管理控制器
*/
@Controller
@RequestMapping("/notice")
public class NoticeController {
@Autowired
private NoticeService noticeService;
//跳轉(zhuǎn)添加頁面
@GetMapping("/add")
public String add() {
return "notice/add";
}
/**
* 公告添加
* @param notice
* @return
*/
@PostMapping("/add")
@ResponseBody
public Map<String, Object> add(Notice notice, HttpServletRequest request) {
if(StringUtils.isEmpty(notice.getTitle())){
return MapControl.getInstance().error("請?zhí)顚懝鏄?biāo)題").getMap();
}
if(StringUtils.isEmpty(notice.getContent())){
return MapControl.getInstance().error("請?zhí)顚懝鎯?nèi)容").getMap();
}
User user = (User) request.getSession().getAttribute("user");
notice.setAuthor(user.getUserName());
notice.setAuth("1");
int result = noticeService.create(notice);
if (result <= 0) {
//新增失敗
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
//根據(jù)id刪除
@PostMapping("/delete/{id}")
@ResponseBody
public Map<String, Object> delete(@PathVariable("id") Integer id) {
int result = noticeService.delete(id);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
//批量刪除
@PostMapping("/delete")
@ResponseBody
public Map<String, Object> delete(String ids) {
int result = noticeService.delete(ids);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
/**
* 修改公告操作
* @param notice
* @return
*/
@PostMapping("/edit")
@ResponseBody
public Map<String, Object> edit(@RequestBody Notice notice) {
if(StringUtils.isEmpty(notice.getTitle())){
return MapControl.getInstance().error("請?zhí)顚懝鏄?biāo)題").getMap();
}
if(StringUtils.isEmpty(notice.getContent())){
return MapControl.getInstance().error("請?zhí)顚懝鎯?nèi)容").getMap();
}
int result = noticeService.update(notice);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
//根據(jù)id查詢,跳轉(zhuǎn)修改頁面
@GetMapping("/edit/{id}")
public String edit(@PathVariable Integer id, ModelMap modelMap) {
//查詢要修改的老師
Notice notice = noticeService.detail(id);
modelMap.addAttribute("notice", notice);
return "notice/edit";
}
//根據(jù)id查詢,跳轉(zhuǎn)添加頁面
@GetMapping("/look/{id}")
public String look(@PathVariable Integer id, ModelMap modelMap) {
Notice notice = noticeService.detail(id);
modelMap.addAttribute("notice", notice);
return "notice/look";
}
//查詢所有
@PostMapping("/query")
@ResponseBody
public Map<String, Object> query(@RequestBody Notice notice) {
List<Notice> list = noticeService.query(notice);
Integer count = noticeService.count(notice);
return MapControl.getInstance().success().put("data", list).put("count", count).getMap();
}
//跳轉(zhuǎn)列表頁面
@GetMapping("/list")
public String list() {
return "notice/list";
}
}
登陸用戶判斷業(yè)務(wù)控制層:
@Controller
public class LoginController {
@Autowired
private UserService userService;
@Autowired
private TeacherService teacherService;
@Autowired
private StudentService studentService;
//跳轉(zhuǎn)登錄頁面
@GetMapping("/login")
public String login() {
return "login";
}
//登錄操作
@PostMapping("/login")
@ResponseBody
public Map<String, Object> login(String userName, String password, String captcha, String type, HttpSession session) {
//判斷用戶名、密碼、用戶類型、驗(yàn)證碼是否為空
if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password) || StringUtils.isEmpty(captcha) || StringUtils.isEmpty(type)) {
return MapControl.getInstance().error("用戶名或密碼不能為空").getMap();
}
//獲取系統(tǒng)生成的驗(yàn)證碼
String _captcha = (String) session.getAttribute("captcha");
//先判斷驗(yàn)證碼是否正確
if (!(captcha.toLowerCase()).equals(_captcha.toLowerCase())) {
//驗(yàn)證碼錯(cuò)誤
return MapControl.getInstance().error("驗(yàn)證碼錯(cuò)誤").getMap();
}
//判斷用戶類型
if ("1".equals(type)) { //管理員驗(yàn)證登錄
User user = userService.login(userName, MD5Utils.getMD5(password)); //對密碼進(jìn)行加密處理,因?yàn)閿?shù)據(jù)庫中存儲的是加密后的密碼
if (user != null) {
session.setAttribute("user", user);
session.setAttribute("type", 1);
return MapControl.getInstance().success().add("data", user).getMap();
} else {
return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap();
}
}
if ("2".equals(type)) { //老師驗(yàn)證登錄
Teacher teacher = teacherService.login(userName, MD5Utils.getMD5(password));
if (teacher != null) {
session.setAttribute("user", teacher);
session.setAttribute("type", "2");
return MapControl.getInstance().success().add("data", teacher).getMap();
} else {
return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap();
}
}
if ("3".equals(type)) { //學(xué)生驗(yàn)證登錄
Student student = studentService.login(userName, MD5Utils.getMD5(password));
if (student != null) {
session.setAttribute("user", student);
session.setAttribute("type", "3");
return MapControl.getInstance().success().add("data", student).getMap();
} else {
return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap();
}
}
return MapControl.getInstance().getMap();
}
}
到此這篇關(guān)于Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計(jì)管理系統(tǒng)的實(shí)現(xiàn)流程的文章就介紹到這了,更多相關(guān)Java 畢業(yè)設(shè)計(jì)管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之寵物商城系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之倉庫管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)
- Java實(shí)戰(zhàn)項(xiàng)目練習(xí)之球館在線預(yù)約系統(tǒng)的實(shí)現(xiàn)
- Java?實(shí)戰(zhàn)項(xiàng)目之家政服務(wù)平臺系統(tǒng)的實(shí)現(xiàn)流程
- Java?實(shí)戰(zhàn)項(xiàng)目之學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)例項(xiàng)目零錢通的實(shí)現(xiàn)流程
相關(guān)文章
Java與Node.js利用AES加密解密出相同結(jié)果的方法示例
這篇文章主要介紹了Java與Node.js利用AES加密解密出相同結(jié)果的方法,文中給出了詳細(xì)的示例代碼,相信對大家的學(xué)習(xí)或者工作能帶來一定的幫助,需要的朋友們下面來一起看看吧。2017-02-02
SpringBoot使用classfinal-maven-plugin插件加密Jar包的示例代碼
這篇文章給大家介紹了SpringBoot使用classfinal-maven-plugin插件加密Jar包的實(shí)例,文中通過代碼示例和圖文講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02
使用MyBatis 動態(tài)update數(shù)據(jù)
使用mybatis寫sql,需要動態(tài)更新對象數(shù)據(jù),每次需要更新的字段不同,為了防止null空異常,就需要用動態(tài)sql了,下面給大家分享一段代碼關(guān)于mybatis動態(tài)update,需要的朋友參考下2016-11-11
淺析RxJava處理復(fù)雜表單驗(yàn)證問題的方法
這篇文章主要介紹了RxJava處理復(fù)雜表單驗(yàn)證問題的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06

