Java專案:學生管理系統(java+Springboot+Maven+mybatis+Vue+Mysql)
一、專案簡述
本系統功能包括:
學生管理,教師管理,課程管理,成績管理,系統管理等等。
二、專案執行
環境配置:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支援)。
專案技術:
Springboot + Maven + mybatis+ Vue 等等組成,B/S模式 + Maven管理等等。
學生管理控制層:
@Controller
@RequestMapping("admin/system/user")
public class UserController {
@Autowired
UserService userService;
@Autowired
RoleService roleService;
@Autowired
UploadService uploadService;
@RequestMapping("list")
@SysLog("跳轉系統使用者列表頁面")
public String list(){
return "admin/user/list";
}
@RequiresPermissions("sys:user:list")
@PostMapping("list")
@ResponseBody
public PageData<User> list(@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "limit",defaultValue = "10")Integer limit,
ServletRequest request){
Map map = WebUtils.getParametersStartingWith(request, "s_");
PageData<User> userPageData = new PageData<>();
QueryWrapper<User> userWrapper = new QueryWrapper<>();
if(!map.isEmpty()){
String type = (String) map.get("type");
if(StringUtils.isNotBlank(type)) {
userWrapper.eq("is_admin", "admin".equals(type) ? true : false);
}
String keys = (String) map.get("key");
if(StringUtils.isNotBlank(keys)) {
userWrapper.and(wrapper -> wrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys));
}
}
IPage<User> userPage = userService.page(new Page<>(page,limit),userWrapper);
userPageData.setCount(userPage.getTotal());
userPageData.setData(userPage.getRecords());
return userPageData;
}
@RequestMapping("add")
public String add(ModelMap modelMap){
List<Role> roleList = roleService.selectAll();
modelMap.put("roleList",roleList);
return "admin/user/add";
}
@RequiresPermissions("sys:user:add")
@PostMapping("add")
@ResponseBody
@SysLog("儲存新增系統使用者資料")
public ResponseEntity add(@RequestBody User user){
if(StringUtils.isBlank(user.getLoginName())){
return ResponseEntity.failure("登入名不能為空");
}
if(user.getRoleLists() == null || user.getRoleLists().size() == 0){
return ResponseEntity.failure("使用者角色至少選擇一個");
}
if(userService.userCount(user.getLoginName())>0){
return ResponseEntity.failure("登入名稱已經存在");
}
// if(StringUtils.isNotBlank(user.getEmail())){
// if(userService.userCount(user.getEmail())>0){
// return ResponseEntity.failure("該郵箱已被使用");
// }
// }
// if(StringUtils.isNoneBlank(user.getTel())){
// if(userService.userCount(user.getTel())>0){
// return ResponseEntity.failure("該手機號已被繫結");
// }
// }
//設定預設密碼
if(StringUtils.isBlank(user.getPassword())){
user.setPassword(Constants.DEFAULT_PASSWORD);
}
userService.saveUser(user);
if(StringUtils.isBlank(user.getId())){
return ResponseEntity.failure("儲存使用者資訊出錯");
}
//儲存使用者角色關係
userService.saveUserRoles(user.getId(),user.getRoleLists());
return ResponseEntity.success("操作成功");
}
@RequestMapping("edit")
public String edit(String id,ModelMap modelMap){
User user = userService.findUserById(id);
String roleIds = "";
if(user != null) {
roleIds = user.getRoleLists().stream().map(role -> role.getId()).collect(Collectors.joining(","));
}
List<Role> roleList = roleService.selectAll();
modelMap.put("localuser",user);
modelMap.put("roleIds",roleIds);
modelMap.put("roleList",roleList);
return "admin/user/edit";
}
@RequiresPermissions("sys:user:edit")
@PostMapping("edit")
@ResponseBody
@SysLog("儲存系統使用者編輯資料")
public ResponseEntity edit(@RequestBody User user){
if(StringUtils.isBlank(user.getId())){
return ResponseEntity.failure("使用者ID不能為空");
}
if(StringUtils.isBlank(user.getLoginName())){
return ResponseEntity.failure("登入名不能為空");
}
if(user.getRoleLists() == null || user.getRoleLists().size() == 0){
return ResponseEntity.failure("使用者角色至少選擇一個");
}
User oldUser = userService.findUserById(user.getId());
if(StringUtils.isNotBlank(user.getEmail())){
if(!user.getEmail().equals(oldUser.getEmail())){
if(userService.userCount(user.getEmail())>0){
return ResponseEntity.failure("該郵箱已被使用");
}
}
}
if(StringUtils.isNotBlank(user.getLoginName())){
if(!user.getLoginName().equals(oldUser.getLoginName())) {
if (userService.userCount(user.getLoginName()) > 0) {
return ResponseEntity.failure("該登入名已存在");
}
}
}
if(StringUtils.isNotBlank(user.getTel())){
if(!user.getTel().equals(oldUser.getTel())) {
if (userService.userCount(user.getTel()) > 0) {
return ResponseEntity.failure("該手機號已經被繫結");
}
}
}
user.setIcon(oldUser.getIcon());
userService.updateUser(user);
if(StringUtils.isBlank(user.getId())){
return ResponseEntity.failure("儲存使用者資訊出錯");
}
userService.saveUserRoles(user.getId(),user.getRoleLists());
return ResponseEntity.success("操作成功");
}
@RequiresPermissions("sys:user:lock")
@PostMapping("lock")
@ResponseBody
@SysLog("鎖定或開啟系統使用者")
public ResponseEntity lock(@RequestParam(value = "id",required = false)String id){
if(StringUtils.isBlank(id)){
return ResponseEntity.failure("引數錯誤");
}
User user = userService.getById(id);
if(user == null){
return ResponseEntity.failure("使用者不存在");
}
userService.lockUser(user);
return ResponseEntity.success("操作成功");
}
@RequiresPermissions("sys:user:delete")
@PostMapping("delete")
@ResponseBody
@SysLog("刪除系統使用者資料(單個)")
public ResponseEntity delete(@RequestParam(value = "id",required = false)String id){
if(StringUtils.isBlank(id)){
return ResponseEntity.failure("引數錯誤");
}
User user = userService.getById(id);
if(user == null){
return ResponseEntity.failure("使用者不存在");
}else if(user.getAdminUser()) {
return ResponseEntity.failure("不能刪除後臺使用者");
}
userService.deleteUser(user);
return ResponseEntity.success("操作成功");
}
@RequiresPermissions("sys:user:delete")
@PostMapping("deleteSome")
@ResponseBody
@SysLog("刪除系統使用者資料(多個)")
public ResponseEntity deleteSome(@RequestBody List<User> users){
if(users == null || users.size()==0){
return ResponseEntity.failure("請選擇需要刪除的使用者");
}
for (User u : users){
if(u.getAdminUser()){
return ResponseEntity.failure("不能刪除超級管理員");
}else{
userService.deleteUser(u);
}
}
return ResponseEntity.success("操作成功");
}
@RequestMapping("userinfo")
public String toEditMyInfo(ModelMap modelMap){
String userId = MySysUser.id();
User user = userService.findUserById(userId);
modelMap.put("userinfo",user);
modelMap.put("userRole",user.getRoleLists());
return "admin/user/userInfo";
}
@SysLog("系統使用者個人資訊修改")
@PostMapping("saveUserinfo")
@ResponseBody
public ResponseEntity saveUserInfo(User user){
if(StringUtils.isBlank(user.getId())){
return ResponseEntity.failure("使用者ID不能為空");
}
if(StringUtils.isBlank(user.getLoginName())){
return ResponseEntity.failure("登入名不能為空");
}
User oldUser = userService.findUserById(user.getId());
if(StringUtils.isNotBlank(user.getEmail())){
if(!user.getEmail().equals(oldUser.getEmail())){
if(userService.userCount(user.getEmail())>0){
return ResponseEntity.failure("該郵箱已被使用");
}
}
}
if(StringUtils.isNotBlank(user.getTel())){
if(!user.getTel().equals(oldUser.getTel())) {
if (userService.userCount(user.getTel()) > 0) {
return ResponseEntity.failure("該手機號已經被繫結");
}
}
}
userService.updateById(user);
return ResponseEntity.success("操作成功");
}
@RequestMapping("changePassword")
public String changePassword(ModelMap modelMap){
modelMap.put("currentUser",userService.getById(MySysUser.id()));
return "admin/user/changePassword";
}
@CrossOrigin
@SysLog("使用者修改密碼")
@PostMapping("changePassword")
@ResponseBody
public ResponseEntity changePassword(@RequestParam(value = "userName",required = false)String userName,
@RequestParam(value = "oldPwd",required = false)String oldPwd,
@RequestParam(value = "newPwd",required = false)String newPwd,
@RequestParam(value = "confirmPwd",required = false)String confirmPwd){
if(StringUtils.isBlank(oldPwd)){
return ResponseEntity.failure("舊密碼不能為空");
}
if(StringUtils.isBlank(newPwd)){
return ResponseEntity.failure("新密碼不能為空");
}
if(StringUtils.isBlank(confirmPwd)){
return ResponseEntity.failure("確認密碼不能為空");
}
if(!confirmPwd.equals(newPwd)){
return ResponseEntity.failure("確認密碼與新密碼不一致");
}
//小程式修改密碼
if(StringUtils.isBlank(userName)){
//PC修改密碼
User user = userService.findUserById(MySysUser.id());
byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS);
String password = Encodes.encodeHex(hashPassword);
if(!user.getPassword().equals(password)){
return ResponseEntity.failure("舊密碼錯誤");
}
user.setPassword(newPwd);
Encodes.entryptPassword(user);
userService.updateById(user);
return ResponseEntity.success("操作成功");
}else {
//小程式修改密碼
User user = userService.findUserByLoginName(userName);
byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS);
String password = Encodes.encodeHex(hashPassword);
if(!user.getPassword().equals(password)){
return ResponseEntity.failure("舊密碼錯誤");
}
user.setPassword(newPwd);
Encodes.entryptPassword(user);
userService.updateById(user);
return ResponseEntity.success("操作成功");
}
}
@SysLog("上傳頭像")
@PostMapping("uploadFace")
@ResponseBody
public ResponseEntity uploadFile(@RequestParam("icon") MultipartFile file, HttpServletRequest httpServletRequest) {
if(file == null){
return ResponseEntity.failure("上傳檔案為空 ");
}
String url = null;
Map map = new HashMap();
try {
url = uploadService.upload(file);
map.put("url", url);
map.put("name", file.getOriginalFilename());
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.failure(e.getMessage());
}
return ResponseEntity.success("操作成功").setAny("data",map);
}
}
教師管理控制層:
@Controller
public class TeacherController {
@Autowired
private TeacherService lxxTeacherService;
@Autowired
private StudentService lxxStudentService;
@Autowired
private DeleteService deleteService;
// 跳轉教師查詢頁面
@RequestMapping("/selectTeacher")
public String selectTeacher(){
return "view/teacher/selTeacher";
}
// 查詢教師資訊
@RequestMapping("selTeacher")
@ResponseBody
public LayuiResult<Map> selTeacher(TeacherDB teacherDB, pageCount pageCount){
LayuiResult<Map> result = new LayuiResult<>();
// 查詢所有教師資訊/模糊查詢教師資訊
List<Map> list = lxxTeacherService.selTeacher(teacherDB,pageCount);
// 查詢符合條件的教師數量
int count = lxxTeacherService.selTeacherCount(teacherDB);
result.setData(list);
result.setCount(count);
return result;
}
// 根據教師編號查詢教師資訊
@RequestMapping("/selTeacherId")
public String selTeacherId(Integer id, Model model){
List<TeacherDB> tea = lxxTeacherService.selTeacherId(id);
// 查詢政治面貌
List<PoliticsTypeDB> selpol = lxxStudentService.selPolitics();
model.addAttribute("tea",tea);
model.addAttribute("selpol",selpol);
return "view/teacher/updTeacher";
}
// 根據教師編號查詢教師詳細資訊
@RequestMapping("/selectTeaMessage")
public String selectTeaMessage(Integer id, Model model){
List<TeacherDB> tea = lxxTeacherService.selTeacherId(id);
// 查詢政治面貌
List<PoliticsTypeDB> selpol = lxxStudentService.selPolitics();
model.addAttribute("tea",tea);
model.addAttribute("selpol",selpol);
return "view/teacher/selTchMessage";
}
// 修改教師資訊
@RequestMapping("/updateTeacher")
@ResponseBody
public LayuiResult<TeacherDB> updTeacher(TeacherDB teacherDB, String birthday) throws Exception{
LayuiResult result= new LayuiResult();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date=format.parse(birthday);
teacherDB.setTbirthday(date);
Integer state = teacherDB.getTchstate();
Integer tid = teacherDB.getTid();
if(state == 1){
// 修改教師為離職狀態並邏輯刪除
Integer deleteTeacher = deleteService.deleteTeacher(teacherDB);
// 刪除教師授課資訊
Integer deleteTchCourse = deleteService.deleteTchCourse(tid);
// 刪除教師班級資訊
Integer deleteTchClass = deleteService.deleteTchClass(tid);
// 刪除教師成績資訊
Integer deleteTchExam = deleteService.deleteTchExam(tid);
// 刪除教評記錄資訊
Integer deleteTeaRecord = deleteService.deleteTeaRecord(tid);
// 改使用者登入狀態改為(1)鎖定狀態
Integer deleteUser = deleteService.deleteUser(teacherDB.getTchid());
//刪除提示
result.setMsg("修改成功!");
return result;
}else{
int a =lxxTeacherService.updTeacher(teacherDB);
//刪除提示
result.setMsg("修改成功!");
return result;
}
}
}
角色管理控制層:
————————————————
版權宣告:本文為CSDN博主「qq1334611189」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/m0_66863468/article/details/123150892
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69921766/viewspace-2863059/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JAVA學生宿舍管理系統Java
- java版工程專案管理系統原始碼+系統管理+系統設定+專案管理Java專案管理原始碼
- 學生管理系統
- 學生管理系統java簡單實現Java
- java版工程專案管理系統原始碼+系統管理+系統設定+專案管理+合同管理+二次開發Java專案管理原始碼
- Java入門專案:學生資訊管理系統V1Java
- java版工程專案管理系統原始碼Java專案管理原始碼
- 學生管理系統(springMVC)SpringMVC
- 【C++】學生管理系統C++
- 學生管理系統程式碼
- FineUI經典專案展示(1)生產線上管理系統UI
- 學生學籍管理系統~~功能介面
- EasyWork專案管理系統專案管理
- 學生選題資訊管理系統
- (十)ArrayList&&學生管理系統
- 專案風險管理系統有哪些?分享11款主流專案管理系統專案管理
- Java 學生管理系統(MVC)開源原始碼(基礎版)JavaMVC原始碼
- java版工程專案管理系統原始碼+系統管理+系統設定+二次開發Java專案管理原始碼
- 專案微管理35 - 系統
- 微專案:名片管理系統
- OPMS專案管理+OA系統專案管理
- Django練習-學生管理系統案例Django
- 9、ArrayList集合完成學生管理系統
- Python簡易學生管理系統Python
- 學生管理系統 四色原型原型
- 探討基於資訊系統的專案型生產管理
- 資訊系統專案管理系列之八:專案成本管理專案管理
- java版spring cloud工程專案管理系統原始碼JavaSpringCloud專案管理原始碼
- java+SQL做學生資訊管理系統(增刪改查)學生新作JavaSQL
- 專案管理學習筆記二:資訊系統服務管理專案管理筆記
- 企業工程專案管理系統+spring cloud 系統管理+java 系統設定+二次開發專案管理SpringCloudJava
- 什麼是專案管理系統?專案管理
- 測試專案管理系統 — TPA專案管理
- 鴻仁科研專案管理系統專案管理
- 專案管理系統使用指南專案管理
- 轉:SAP專案管理系統速成專案管理
- IT專案管理之系統測試專案管理
- 手把手教你做一個Java swing mysql實現的學生選課系統之Java學生選課系統開發教程及專案原始碼JavaMySql原始碼