1. Introduction
2. Technologie de développement
2.1 Cadre de démarrage de printemps
Spring Boot est un framework open source permettant de créer rapidement des applications Spring configurables, autonomes et de qualité production. Il est basé sur le framework Spring et vise à simplifier le développement et le déploiement d'applications Spring en vertu du principe de convention sur la configuration.
Voici quelques fonctionnalités et descriptions clés du framework Spring Boot :
(1) Configuration simplifiée : Spring Boot configure les applications par convention plutôt que par configuration, permettant aux développeurs de démarrer et de développer des projets plus rapidement. Il configure automatiquement de nombreuses fonctionnalités couramment utilisées et des bibliothèques tierces, telles que les connexions aux bases de données, le développement Web, la sécurité, etc., par défaut en suivant les meilleures pratiques.
(2) Conteneur de servlet intégré : Spring Boot intègre des conteneurs de servlet intégrés (tels que Tomcat, Jetty), permettant aux développeurs de regrouper des applications Web dans des fichiers JAR exécutables indépendants sans déploiement ni configuration de serveurs externes.
(3) Gestion automatisée des dépendances : Spring Boot simplifie la gestion des dépendances du projet. Il fournit un concept appelé "Starter", un ensemble de dépendances prédéfinies pour intégrer rapidement les bibliothèques et fonctionnalités associées. Les développeurs ajoutent simplement les dépendances Starter appropriées, et Spring Boot résout et configure automatiquement les dépendances requises.
(4) Surveillance et gestion : Spring Boot fournit une multitude de fonctions de surveillance et de gestion, permettant aux développeurs de mieux comprendre les indicateurs de santé et de performance de l'application. Il intègre plusieurs outils de surveillance enfichables, tels que les vérifications de l'état, les mesures, la journalisation, etc., pour le dépannage et l'optimisation des performances.
(5) Prise en charge de l'écosystème : en tant que version dérivée du framework Spring, Spring Boot peut tirer pleinement parti de tous les aspects de l'écosystème Spring. Les développeurs peuvent facilement intégrer d'autres modules et extensions du framework Spring, tels que Spring Data, Spring Security, etc., pour fournir des fonctions plus riches et plus complètes à l'application.
En résumé, Spring Boot est un framework qui simplifie le développement d'applications Spring. Il fournit un moyen rapide et efficace de créer des applications Java grâce à des fonctionnalités telles que la convention sur la configuration, la gestion automatisée des dépendances et un conteneur de servlet intégré. Le framework Spring Boot présente de grands avantages en termes d'efficacité de développement, de maintenabilité et d'évolutivité, et est largement utilisé dans divers types de projets et d'applications.
2.2Framework MyBatis
MyBatis est un framework de couche de persistance open source utilisé pour simplifier le développement de l'accès à la base de données. Il est étroitement intégré aux applications Java et permet aux développeurs d'accéder à des bases de données relationnelles et de les exploiter grâce à une configuration simple et un mappage SQL flexible.
Voici quelques fonctionnalités et descriptions clés du framework MyBatis :
(1) Mappage SQL : MyBatis utilise XML ou des annotations pour définir le mappage SQL et mappe les objets Java aux tables de la base de données. Les développeurs peuvent écrire des instructions SQL selon leurs besoins et les lier avec des méthodes Java. Cela permet un accès et une manipulation flexibles des données.
(2) Accès simplifié aux données : MyBatis fournit une API simple et intuitive, permettant aux développeurs d'effectuer facilement diverses opérations de base de données, telles que l'insertion, la mise à jour, la suppression et la requête. Il encapsule la connexion à la base de données sous-jacente et les détails de traitement de l'ensemble de résultats, et fournit aux développeurs une interface d'opération de données pratique.
(3) SQL dynamique : MyBatis prend en charge le SQL dynamique, de sorte que les instructions SQL peuvent être combinées et épissées de manière flexible en fonction de différentes conditions. Les développeurs peuvent modifier la logique des instructions SQL en fonction des conditions d'exécution, permettant un accès et un traitement des données de niveau supérieur.
(4) Mécanisme de mise en cache : MyBatis dispose d'un mécanisme de mise en cache intégré qui peut fournir une optimisation des performances lors de l'interrogation des mêmes données plusieurs fois. Les développeurs peuvent configurer différents niveaux de mise en cache, tels que la mise en cache au niveau de la session, la mise en cache au niveau de la requête, etc., pour améliorer l'efficacité de l'accès aux données.
(5) Évolutivité : MyBatis est un framework extensible. Les développeurs peuvent étendre et personnaliser les fonctionnalités de MyBatis à l'aide du mécanisme de plug-in. Les plugins peuvent intercepter et modifier le comportement de base de MyBatis en ajoutant des intercepteurs supplémentaires pour répondre à des besoins spécifiques.
(6) Support de l'écosystème : MyBatis dispose d'un écosystème étendu et d'un support communautaire actif. Les développeurs peuvent apprendre et résoudre des problèmes grâce à des ressources telles que la documentation officielle, des exemples de code et des forums communautaires. De plus, MyBatis a également une bonne intégration avec d'autres technologies et outils tels que le framework Spring.
Dans l'ensemble, MyBatis est un cadre de couche de persistance qui simplifie l'accès à la base de données. Avec un mappage SQL flexible, une API d'accès aux données simple et un support SQL dynamique, MyBatis permet aux développeurs d'effectuer facilement des opérations de base de données. Son mécanisme de mise en cache et son évolutivité facilitent également l'optimisation et la personnalisation des performances. MyBatis est largement utilisé dans de nombreuses applications Java, en particulier dans les scénarios nécessitant des opérations SQL flexibles et un accès aux données personnalisé.
2.3 Base de données MySQL
MySQL est un système de gestion de base de données relationnelle (RDBMS) open source. C'est l'une des bases de données les plus populaires et les plus utilisées, utilisée par de nombreuses applications et sites Web pour stocker et gérer des données.
Voici quelques fonctionnalités et descriptions clés de la base de données MySQL :
(1) Base de données relationnelle : MySQL est un système de gestion de base de données relationnelle qui organise et stocke les données en fonction des concepts de tables et de relations. Les données sont stockées de manière structurée et peuvent être interrogées et gérées via SQL (Structured Query Language).
(2) Fiable et stable : MySQL est célèbre pour sa fiabilité et sa stabilité, et est largement utilisé pour traiter des données importantes. Il est hautement disponible, tolérant aux pannes et intègre les données pour les applications de toutes tailles.
(3) Multiplateforme : MySQL peut s'exécuter sur plusieurs systèmes d'exploitation, notamment Windows, Linux, Mac et UNIX. Les développeurs peuvent utiliser la même base de données MySQL sur différentes plates-formes sans modifier le code et le modèle de données.
(4) Haute performance : MySQL fonctionne bien dans le traitement de grandes quantités de données et a des vitesses de lecture et d'écriture efficaces. Il utilise des technologies telles que l'indexation, l'optimisation des requêtes et les mécanismes de mise en cache pour améliorer les performances des requêtes afin de répondre aux besoins de diverses conditions de charge.
(5) Évolutivité : MySQL a une bonne évolutivité et peut gérer de grandes quantités de données et un accès simultané élevé. Il prend en charge l'expansion verticale et l'expansion horizontale, et peut améliorer les performances et la capacité en ajoutant plus de serveurs, de partitionnement et de réplication.
(6) Sécurité : MySQL fournit une variété de fonctionnalités de sécurité pour protéger la sécurité des données. Il prend en charge des fonctions telles que l'authentification des utilisateurs, le contrôle d'accès, la transmission cryptée et l'audit des données pour empêcher les accès non autorisés et les attaques malveillantes.
(7) Fonctions riches : MySQL fournit des fonctions et des fonctionnalités riches, telles que des procédures stockées, des déclencheurs, des vues, des sauvegardes et des restaurations, etc. Il fournit également une variété de moteurs de stockage, tels que InnoDB, MyISAM, etc., et vous pouvez choisir le moteur approprié en fonction de vos besoins.
En résumé, MySQL est un système de gestion de bases de données relationnelles puissant, fiable et performant. Il est multiplateforme, extensible et riche en fonctions, et est largement utilisé dans divers types d'applications et de sites Web. MySQL dispose d'une vaste communauté d'utilisateurs et de ressources riches, fournissant un grand nombre de documents, d'exemples et de support pour permettre aux développeurs de mieux gérer et exploiter la base de données.
3. Conception fonctionnelle
(2) conseiller
Responsable du maintien des informations de base sur les étudiants ; vérification des informations sur l'attribution des dortoirs des étudiants ; vérification de la localisation des étudiants pendant les vacances et des informations sur le retour à l'école ; vérification et approbation des demandes des étudiants pour rester à l'école pendant les vacances d'hiver et d'été ; vérification de l'état de l'inspection sanitaire des étudiants.
(3) Administrateur de dortoir
Responsable de la mise à jour des informations sur les dortoirs ; attribuer des dortoirs aux nouveaux étudiants ; gérer les demandes de réparation des étudiants ; publier des annonces, des informations perdues et trouvées sur les babillards électroniques ; vérifier les informations sur les étudiants qui restent à l'école pendant les vacances d'hiver et d'été ; effectuer des inspections sanitaires hebdomadaires et enregistrer les résultats des inspections dans le système.
4. Réalisez l'affichage de l'effet
(1) Se connecter
Afin d'assurer la sécurité du système, les utilisateurs doivent se connecter avant d'entrer dans le système et ne peuvent entrer dans le système qu'après avoir passé le contrôle de légalité du compte. L'interface de connexion est illustrée à la figure 4.1. L'utilisateur saisit les informations de compte et clique sur le bouton "Connexion" pour soumettre les données du formulaire au backend. S'il existe des informations utilisateur correspondantes, le système passera à la page avec l'autorité correspondante ; sinon, la vérification échoue et le système affichera une invite d'erreur.
(2) Côté étudiant
La page principale du terminal étudiant est illustrée à la figure 4.2. Ses fonctions comprennent principalement mon dortoir, l'enregistrement pour le départ et le retour à l'école, le babillard électronique, la gestion des informations de base, etc.
Mon dortoir
Les étudiants peuvent afficher les informations du rapport de réparation du dortoir (y compris celles soumises par eux-mêmes et d'autres), remplir et modifier les informations du rapport de réparation, mais seul le rapport de réparation soumis par eux-mêmes peut être modifié, et seuls les rapports non traités, en cours et celles traitées peuvent être modifiées. Les informations de réparation ne peuvent pas être modifiées.
Dossiers d'inspection sanitaire
Les étudiants peuvent vérifier l'état de l'inspection sanitaire de leur propre dortoir, et le système donnera la priorité à l'affichage des enregistrements récents, et le système mettra en évidence les enregistrements non qualifiés (moins de 60 points) pour rappeler aux étudiants.
Inscription aux congés scolaires
Le système affichera toutes les informations d'inscription de fin d'études de l'élève, et les étudiants peuvent également soumettre et modifier les informations d'inscription sous cette page. Lors du remplissage, les élèves doivent choisir le type de destination. S'ils rentrent chez eux ou sortent, ils doivent remplir la destination, l'heure de retour et le contact d'urgence. S'ils restent à l'école, les trois informations ci-dessus n'ont pas besoin être rempli.
Les étudiants qui doivent rester à l'école pendant les vacances d'hiver et d'été doivent soumettre une demande de séjour à l'école au collège. La page de remplissage de la demande est illustrée à la figure 4.8.Les élèves doivent expliquer la raison de leur séjour à l'école, la date limite pour rester à l'école et fournir une image de l'accord manuscrit du parent pour rester à l'école et un engagement de garantie de sécurité.
Lorsque l'école commence, les élèves doivent remplir les informations de retour.Le contenu principal comprend s'il faut retarder le retour à l'école, l'heure du retour, la raison du retard, le mode de transport et le nombre de trains.
Ici, les étudiants peuvent vérifier les informations de message pertinentes du bâtiment dans lequel ils se trouvent, y compris les annonces, les messages perdus et trouvés et les messages généraux ; ils peuvent également publier des messages pour communiquer avec les autres, modifier et afficher leurs propres messages, etc. Les informations de message sont affichées sous la forme d'un signe et différents types de messages utilisent différentes couleurs d'arrière-plan pour les distinguer.
(4) Borne du conseiller
Gestion des étudiants
Gestion des dortoirs
Les conseillers peuvent afficher les informations d'attribution des dortoirs des étudiants par majeure et par classe, et peuvent également exporter les informations d'attribution dans un fichier Excel.
Il est utilisé pour afficher les informations de localisation des étudiants pendant les vacances, qui peuvent être visualisées par type de localisation (rester à l'école, rentrer à la maison, sortir).Le système compte également le nombre et la proportion de chaque type d'étudiants et les affiche. sous forme de camemberts.
Gestion des sorties scolaires - gestion des séjours de vacances
Gestion de la sortie de l'école - retour à la gestion de l'école
Il est utilisé pour afficher et exporter le statut de retour à l'école de chaque élève, et réalise également les statistiques d'information sur le retour à l'école à temps et le retour à l'école retardé.
(5) Dortoir côté administrateur
Gestion des dortoirs
Gestion des hébergements - gestion des pré-attributions
Le système attribue des dortoirs aux étudiants qui n'ont pas reçu de dortoirs, principalement pour les étudiants de première année. Le système trouve la liste des étudiants qui n'ont pas reçu de dortoirs et la liste des dortoirs avec des lits vacants à partir des données, et organise les étudiants dans les dortoirs vacants par ordre de nombre d'étudiants de petit à grand selon le principe de donner la priorité aux même sexe, même collège, même majeure et même classe moyenne. Chaque fois qu'un étudiant est affecté, le numéro de vacance du dortoir sera réduit de 1. Lorsque le numéro de vacance du dortoir est 0, les étudiants de suivi seront placés dans le dortoir suivant jusqu'à ce que tous les étudiants soient affectés.
5. Code de base
@Controller
@RequestMapping("/dm")
public class DorMController {
@Resource
private DorMService dormService;
/**
* 卫生检查列表
*
* @return
*/
@RequestMapping(value = "/cleanList")
public String cleanList() {
return "/dm/clean-list";
}
/**
* 查看卫生检查情况
*
* @param ciVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/clean/list")
public DataGridViewResult findCleanInfoList(CleanInfoVo ciVo, HttpServletRequest request) {
// 获取宿管员管理的宿舍区和楼栋号,拼接成brcode
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
String brcode = MyStringUtil.getBrcode(brarea, brbid, "");
if (StringUtils.isNotBlank(brcode)) {
ciVo.setBrcode(brcode);
}
System.out.println(ciVo);
// 设置分页信息
PageHelper.startPage(ciVo.getPage(), ciVo.getLimit());
// 查询
List<CleanInfo> list = dormService.findCleanInfoListByPage(ciVo);
// 创建分页对象
PageInfo<CleanInfo> pageInfo = new PageInfo<CleanInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 更改卫生检查信息
*
* @param ci
* @return
*/
@ResponseBody
@RequestMapping(value = "/clean/update")
public String updateCleanInfo(CleanInfo ci) {
System.out.println(ci);
HashMap<String, Object> map = new HashMap<>();
int result = dormService.updateCleanInfo(ci);
if (result > 0) {
map.put("success", true);
map.put("msg", "更改成功!");
} else {
map.put("success", false);
map.put("msg", "更改失败!");
}
return JSON.toJSONString(map);
}
/**
* 删除卫生检查记录
*
* @param id
* @return
*/
@ResponseBody
@RequestMapping(value = "/clean/delete")
public String deleteCleanInfo(String id) {
System.out.println(id);
HashMap<String, Object> map = new HashMap<>();
int result = dormService.deleteCleanInfo(id);
if (result > 0) {
map.put("success", true);
map.put("msg", "删除成功!");
} else {
map.put("success", false);
map.put("msg", "删除失败!");
}
return JSON.toJSONString(map);
}
/**
* 返回添加卫生检查记录页面
*
* @return
*/
@RequestMapping(value = "/clean/add.html")
public String addCleanInfo() {
return "/dm/clean-add";
}
/**
* 批量添加卫生检查记录
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/clean/add")
public String batchAddCleanInfo(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String params = request.getParameter("params");
String checker = (String) request.getSession().getAttribute("uname");
try {
boolean result = dormService.batchInsertCleanInfo(params, checker);
if (result) {
map.put("success", true);
map.put("msg", "添加成功!");
} else {
map.put("success", false);
map.put("msg", "添加失败!");
}
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "添加失败!");
}
return JSON.toJSONString(map);
}
/**
* 学生报修列表
*
* @return
*/
@RequestMapping(value = "/repairList")
public String viewRepairList() {
return "/dm/repair-list";
}
/**
* 查找该宿管员负责的楼栋下的报修信息
*
* @param riVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/repair/list")
public DataGridViewResult findRepairInfoList(RepairInfoVo riVo, HttpServletRequest request) {
// 拼接brcode
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
if (StringUtils.isBlank(brarea)) {
brarea = riVo.getBrarea();
}
if (StringUtils.isBlank(brbid)) {
brbid = riVo.getBrbid();
}
String brcode = MyStringUtil.getBrcode(brarea, brbid, "");
if (StringUtils.isNotBlank(brcode)) {
riVo.setBrcode(brcode);
}
System.out.println(riVo);
// 设置分页信息
PageHelper.startPage(riVo.getPage(), riVo.getLimit());
// 查询
List<RepairInfo> list = dormService.findRepairInfoListByPage(riVo);
// 创建分页对象
PageInfo<RepairInfo> pageInfo = new PageInfo<RepairInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 查看报修详情
*
* @return
*/
@RequestMapping(value = "/repair/detail.html")
public String repairDetail() {
return "/dm/repair-detail";
}
/**
* 导出报修数据
*
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = "/repair/export.action")
public void exportToExcel(HttpServletRequest request, HttpServletResponse response) {
HashMap<String, Object> map = new HashMap<>();
response.reset();// 清除缓存
// 获取宿管员管理的宿舍区和楼栋号,拼接成brcode
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
String brcode = MyStringUtil.getBrcode(brarea, brbid, "");
String status = request.getParameter("status");
System.out.println("status" + status);
System.out.println("brcode" + brcode);
// 根据条件查找报修列表
List<RepairInfo> list = dormService.exportRepairInfo(brcode, status);
// 拼接excel表名
StringBuffer filenamebuffer = new StringBuffer();
if (StringUtils.isNotBlank(brcode)) {
filenamebuffer.append(brcode);
filenamebuffer.append("-");
}
filenamebuffer.append("报修表");
String filename = filenamebuffer.toString();
try {
ExcelUtils.writeExcel(filename, response, list, RepairInfo.class);
map.put("success", true);
map.put("msg", "导出成功!");
System.out.println(JSON.toJSONString(map));
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "导出失败!");
}
// return JSON.toJSONString(map);
}
/**
* 批量更改报修状态
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/repair/edit")
public String editRepairStatus(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String params = request.getParameter("params");
if (StringUtils.isNotBlank(params)) {
boolean result = dormService.batchEditRepairStatus(params);
if (result) {
map.put("success", true);
map.put("msg", "更改成功!");
return JSON.toJSONString(map);
} else {
map.put("success", false);
map.put("msg", "更改失败!");
return JSON.toJSONString(map);
}
}
map.put("success", false);
map.put("msg", "更改失败!请选择要更改的行。");
return JSON.toJSONString(map);
}
/**
* 学生报修列表
*
* @return
*/
@RequestMapping(value = "/buildroomList")
public String viewBuildRoomList() {
return "/dm/buildroom-list";
}
/**
* 查看宿舍信息
*
* @param biVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/buildroom/list")
public DataGridViewResult findBuildRoomInfo(BuildRoomInfoVo biVo, HttpServletRequest request) {
// 拼接brcode
String brarea = (String) request.getSession().getAttribute("brarea");
if (StringUtils.isBlank(brarea)) {
brarea = biVo.getBrarea();
}
/*
* 如果管理员负责具体的一栋楼,则只能查询本栋楼有关的宿舍信息;
* 如果是负责一个区,则可以查询这个区下所有楼的宿舍信息
* session中没有brbid说明是负责一个区的,此时按照用户输入的楼栋数来进行查询
*/
String brbid = (String) request.getSession().getAttribute("brbid");
if (StringUtils.isBlank(brbid)) {
brbid = biVo.getBrbid();
}
String brrid = biVo.getBrrid();
String brcode = MyStringUtil.getBrcode(brarea, brbid, brrid);
if (StringUtils.isNotBlank(brcode)) {
biVo.setBrcode(brcode);
}
System.out.println(biVo);
// 设置分页信息
PageHelper.startPage(biVo.getPage(), biVo.getLimit());
// 查询
List<RepairInfo> list = dormService.findBuildRoomInfoListByPage(biVo);
// 创建分页对象
PageInfo<RepairInfo> pageInfo = new PageInfo<RepairInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 单个添加宿舍信息
*
* @param bi
* @return
*/
@ResponseBody
@RequestMapping(value = "/buildroom/add")
public String addBuildRoomInfo(BuildRoomInfo bi) {
HashMap<String, Object> map = new HashMap<>();
// 拼接brcode,如果brcode是空,说明宿舍信息错误了
String brarea = bi.getBrarea();
String brbid = bi.getBrbid();
String brrid = bi.getBrrid();
String brcode = MyStringUtil.getBrcode(brarea, brbid, brrid);
if (StringUtils.isBlank(brcode)) {
map.put("success", false);
map.put("msg", "添加失败!宿舍信息错误!");
return JSON.toJSONString(map);
}
// 计算空余数
Integer free = bi.getVolume() - bi.getPeople();
if (free < 0) {
map.put("success", false);
map.put("msg", "添加失败!入住数不能大于床位数!");
return JSON.toJSONString(map);
}
bi.setBrcode(brcode);
bi.setFree(free);
System.out.println(bi);
List<BuildRoomInfo> list = new ArrayList<>();
list.add(bi);
boolean result = dormService.addBuildRoomInfo(list);
if (result) {
map.put("success", true);
map.put("msg", "添加成功!");
} else {
map.put("success", false);
map.put("msg", "添加失败!");
}
return JSON.toJSONString(map);
}
/**
* 导入宿舍信息
*
* @param file excel表格
* @return
*/
@ResponseBody
@RequestMapping(value = "/buildroom/import.action")
public String importExcel(@RequestParam("file") MultipartFile file) {
HashMap<String, Object> map = new HashMap<>();
try {
List<BuildRoomInfo> list = ExcelUtils.readExcel("", BuildRoomInfo.class, file);
// 拼接brcode和计算空余数
for (int i = 0; i < list.size(); i++) {
String brarea = list.get(i).getBrarea();
String brbid = list.get(i).getBrbid();
String brrid = list.get(i).getBrrid();
String brcode = MyStringUtil.getBrcode(brarea, brbid, brrid);
Integer free = list.get(i).getVolume() - list.get(i).getPeople();
list.get(i).setBrcode(brcode);
list.get(i).setFree(free);
}
boolean result = dormService.addBuildRoomInfo(list);
if (result) {
map.put("code", 200);
map.put("msg", "导入成功!");
map.put("data", null);
} else {
map.put("code", 500);
map.put("msg", "导入失败!");
map.put("data", null);
}
} catch (Exception e) {
e.printStackTrace();
map.put("code", 500);
map.put("msg", "导入失败!");
map.put("data", null);
}
return JSON.toJSONString(map);
}
/**
* 更改宿舍信息
*
* @param bi
* @return
*/
@ResponseBody
@RequestMapping(value = "/buildroom/update")
public String updateBuildRoomInfo(BuildRoomInfo bi) {
HashMap<String, Object> map = new HashMap<>();
try {
// 如果入住数小于等于床位数,则执行更新操作,否则返回提示
Integer free = bi.getVolume() - bi.getPeople();
if (free >= 0) {
bi.setFree(free);
System.out.println(bi);
int result = dormService.updateBuildRoomInfo(bi);
// 返回值大于0表示成功执行了更改操作,小于0表示发生了异常
if (result > 0) {
map.put("success", true);
map.put("msg", "更改成功!");
return JSON.toJSONString(map);
} else {
map.put("success", false);
map.put("msg", "更改失败!");
return JSON.toJSONString(map);
}
} else {
map.put("success", false);
map.put("msg", "更改失败!入住数不能大于床位数!");
return JSON.toJSONString(map);
}
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "更改失败!");
return JSON.toJSONString(map);
}
}
/**
* 删除宿舍信息
*
* @param brcode
* @return
*/
@ResponseBody
@RequestMapping(value = "/buildroom/delete")
public String deleteBuildRoomInfo(String brcode) {
System.out.println(brcode);
HashMap<String, Object> map = new HashMap<>();
int result = dormService.deleteBuildRoomInfo(brcode);
if (result > 0) {
map.put("success", true);
map.put("msg", "删除成功!");
} else {
map.put("success", false);
map.put("msg", "删除失败!");
}
return JSON.toJSONString(map);
}
@RequestMapping(value = "/messageList")
public String viewMessageBoard() {
return "/dm/message-list";
}
/**
* 公告管理、失物招领
*
* @param mbVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/message/list")
public DataGridViewResult findMessageList(MessageBoardVo mbVo, HttpServletRequest request) {
// 获取当前管理员的管理区域
// 如果管理员负责众多楼栋,则按查询条件的宿舍区和楼栋来查,否则只能查他所负责的楼栋的公告信息
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
if (StringUtils.isBlank(brarea)) {
brarea = mbVo.getBrarea();
}
if (StringUtils.isBlank(brbid)) {
brbid = mbVo.getBrbid();
}
String brcode = MyStringUtil.getBrcode(brarea, brbid, "");
mbVo.setBrcode(brcode);
System.out.println(mbVo);
// 设置分页信息
PageHelper.startPage(mbVo.getPage(), mbVo.getLimit());
// 查询
List<MessageBoard> list = dormService.findMessageListByPage(mbVo);
// 创建分页对象
PageInfo<MessageBoard> pageInfo = new PageInfo<MessageBoard>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 添加公告/失物招领信息
*
* @param mb
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/message/add")
public String addMessage(MessageBoard mb, HttpServletRequest request) {
// announcer是管理员的uname
String uname = (String) request.getSession().getAttribute("uname");
mb.setAnnouncer(uname);
HashMap<String, Object> map = new HashMap<>();
int result = dormService.addMessage(mb);
if (result > 0) {
map.put("success", true);
map.put("msg", "添加成功!");
} else {
map.put("success", false);
map.put("msg", "添加失败!");
}
return JSON.toJSONString(map);
}
/**
* 更新公告/失物招领
*
* @param mb
* @return
*/
@ResponseBody
@RequestMapping(value = "/message/update")
public String updateMessage(MessageBoard mb) {
// 拼接brcode
String brcode = MyStringUtil.getBrcode(mb.getBrarea(), mb.getBrbid(), "");
mb.setBrcode(brcode);
System.out.println(mb);
HashMap<String, Object> map = new HashMap<>();
int result = dormService.updateMessage(mb);
if (result > 0) {
map.put("success", true);
map.put("msg", "更改成功!");
} else {
map.put("success", false);
map.put("msg", "更改失败!");
}
return JSON.toJSONString(map);
}
/**
* 批量删除公告/失物招领信息
*
* @param request 获取前端传来的id数组
* @return
*/
@ResponseBody
@RequestMapping(value = "/message/delete")
public String deleteMessage(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String params = request.getParameter("params");
System.out.println(params);
try {
if (StringUtils.isNotBlank(params)) {
// 获取id数组
JSONArray jsonArray = JSONArray.parseArray(params);
List<Integer> list = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
Integer id = (Integer) obj.get("id");
System.out.println(id);
list.add(id);
}
boolean result = dormService.deleteMessage(list);
if (result) {
map.put("success", true);
map.put("msg", "删除成功!");
} else {
map.put("success", false);
map.put("msg", "删除失败!");
}
}
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "删除失败!");
}
return JSON.toJSONString(map);
}
/**
* 留校信息列表
*
* @return
*/
@RequestMapping(value = "/stayinList")
public String viewStayInfoList() {
return "/dm/stayin-list";
}
/**
* 查找留校信息列表
*
* @param stVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/list")
public DataGridViewResult findStayInfoListByPage(StayInfoVo stVo, HttpServletRequest request) {
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
if (StringUtils.isNotBlank(brarea)) {
stVo.setBrarea(brarea);
}
if (StringUtils.isNotBlank(brbid)) {
stVo.setBrbid(brbid);
}
System.out.println(stVo);
// 设置分页信息
PageHelper.startPage(stVo.getPage(), stVo.getLimit());
// 查询
List<StayInfo> list = dormService.findStayInfoListByPage(stVo);
// 创建分页对象
PageInfo<StayInfo> pageInfo = new PageInfo<StayInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 导出学生留校信息
*
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = "/stayin/export.action")
public void exportStayInfoToExcel(HttpServletRequest request, HttpServletResponse response) {
response.reset();// 清除缓存
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
// 查找学生登记信息
List<StayInfo> list = dormService.exportStayInfo(brarea, brbid);
// 拼接excel表名
StringBuffer filenamebuffer = new StringBuffer();
if (StringUtils.isNotBlank(brarea)) {
filenamebuffer.append(brarea);
filenamebuffer.append("-");
}
if (StringUtils.isNotBlank(brbid)) {
filenamebuffer.append(brbid);
filenamebuffer.append("栋-");
}
filenamebuffer.append("学生留校信息");
String filename = filenamebuffer.toString();
try {
ExcelUtils.writeExcel(filename, response, list, StayInfo.class);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取留校申请中的统计数据
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/echartsData")
public String getStayInfoEchartsData(HttpServletRequest request) {
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
JSONObject data = dormService.getStayInfoEchartsData(brarea, brbid);
System.out.println(JSON.toJSONString(data));
return JSON.toJSONString(data);
}
/**
* 预分配宿舍界面
*
* @return
*/
@RequestMapping(value = "/allocation/pre")
public String preAllocateDorm() {
return "/dm/pre-allocate";
}
/**
* 查找空余寝室
*
* @param biVo
* @return
*/
@ResponseBody
@RequestMapping(value = "/room/list")
public DataGridViewResult getFreeRoomList(BuildRoomInfoVo biVo) {
System.out.println(biVo);
// 设置分页信息
PageHelper.startPage(biVo.getPage(), biVo.getLimit());
// 查询
List<BuildRoomInfo> list = dormService.findFreeRoomListByPage(biVo);
// 创建分页对象
PageInfo<BuildRoomInfo> pageInfo = new PageInfo<BuildRoomInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 查找未分配寝室的学生
*
* @param siVo
* @return
*/
@ResponseBody
@RequestMapping(value = "/student/list")
public DataGridViewResult getNotAllocateStudentList(StudentInfoVo siVo) {
System.out.println(siVo);
// 设置分页信息
PageHelper.startPage(siVo.getPage(), siVo.getLimit());
// 查询
List<StudentInfo> list = dormService.findNotAllocateStudentListByPage(siVo);
// 创建分页对象
PageInfo<StudentInfo> pageInfo = new PageInfo<StudentInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
@ResponseBody
@RequestMapping(value = "/allocation/doAllocate")
public String doAllocate(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String room = request.getParameter("room");
String student = request.getParameter("student");
System.out.println(room);
System.out.println(student);
map.put("msg", "接受到数据");
return JSON.toJSONString(map);
}
/**
* 判断床位数够不够
*
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/isEnough")
public String judgeIsEnough() {
HashMap<String, Object> map = new HashMap<>();
boolean enough = dormService.judgeIsEnough();
if (enough) {
map.put("success", true);
} else {
map.put("success", false);
map.put("msg", "床位数不够,请先添加空余宿舍信息!");
}
return JSON.toJSONString(map);
}
/**
* 全部分配
*
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/assignAll")
public String assignAll() {
HashMap<String, Object> map = new HashMap<>();
boolean success = dormService.doAssignAll();
if (success) {
map.put("success", true);
map.put("msg", "分配完毕,分配结果显示在当前页面下方。");
} else {
map.put("success", false);
map.put("msg", "分配失败!");
}
return JSON.toJSONString(map);
}
/**
* 显示分配结果
*
* @param aiVo
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/result")
public DataGridViewResult viewAllocateResult(AllocationInfoVo aiVo) {
// 设置分页信息
PageHelper.startPage(aiVo.getPage(), aiVo.getLimit());
// 查询
List<AllocationInfo> list = dormService.viewAllocateResult(aiVo);
// 创建分页对象
PageInfo<AllocationInfo> pageInfo = new PageInfo<AllocationInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 宿舍分配列表
*
* @return
*/
@RequestMapping(value = "/allocation/list")
public String allocationList() {
return "/dm/allocation-list";
}
/**
* 查询宿舍分配信息
* 查询条件:专业/年级
*
* @param aiVo
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/info")
public DataGridViewResult findAllocationInfoList(AllocationInfoVo aiVo, HttpServletRequest request) {
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
if (StringUtils.isNotBlank(brarea)) {
aiVo.setBrarea(brarea);
}
if (StringUtils.isNotBlank(brbid)) {
aiVo.setBrbid(brbid);
}
System.out.println(aiVo);
// 设置分页信息
PageHelper.startPage(aiVo.getPage(), aiVo.getLimit());
// 查询
List<AllocationInfo> list = dormService.findAllocationInfoListByPage(aiVo);
// 创建分页对象
PageInfo<AllocationInfo> pageInfo = new PageInfo<AllocationInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 导出学生宿舍分配信息
*
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = "/allocation/export.action")
public void exportAllocationInfoToExcel(HttpServletRequest request, HttpServletResponse response) {
response.reset();// 清除缓存
String brarea = (String) request.getSession().getAttribute("brarea");
String brbid = (String) request.getSession().getAttribute("brbid");
// 查找宿舍分配信息
List<AllocationInfo> list = dormService.exportAllocationInfo(brarea, brbid);
// 拼接excel表名
StringBuffer filenamebuffer = new StringBuffer();
if (StringUtils.isNotBlank(brarea)) {
filenamebuffer.append(brarea);
filenamebuffer.append("-");
}
if (StringUtils.isNotBlank(brbid)) {
filenamebuffer.append(brbid);
filenamebuffer.append("栋-");
}
filenamebuffer.append("学生宿舍分配名单");
String filename = filenamebuffer.toString();
try {
ExcelUtils.writeExcel(filename, response, list, AllocationInfo.class);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Controller
@RequestMapping("/")
public class IndexController {
@Resource
private IndexService indexService;
@Resource
private MenuService menuService;
public String index() {
return "index";
}
@RequestMapping(value = "/login.html")
public String toLogin() {
return "/login";
}
@RequestMapping(value = "/home.html")
public String home() {
return "/home";
}
/**
* 验证登录
*
* @param re 前端返回的参数
* @param session 将用户信息添加到session中
* @return
*/
@ResponseBody
@RequestMapping(value = "/login.action")
public String loginAction(@RequestBody Map<String, String> re, HttpSession session) {
String uid = re.get("username");
String upwd = re.get("password");
Integer utype = Integer.parseInt(re.get("type"));
System.out.println(utype);
Users user = indexService.findUserByuId(uid, upwd, utype);
Map<String, Object> map = new HashMap<>();
if (user != null) {
session.setAttribute("uid", uid);
session.setAttribute("uname", user.getUname());
session.setAttribute("utype", utype);
// 如果是教师或宿管员,还要把他们负责的部门(专业年级/宿舍楼)记下
if (utype == 1) {
session.setAttribute("dept", user.getDept());
session.setAttribute("grade", user.getGrade());
} else if (utype == 2) {
session.setAttribute("brarea", user.getBrarea());
session.setAttribute("brbid", user.getBrbid());
}
map.put("type", "success");
} else {
map.put("type", "error");
}
return JSON.toJSONString(map);
}
/**
* 退出登录
*
* @param session
* @return 返回到登录界面
*/
@RequestMapping(value = "/logout.action")
public String logout(HttpSession session) {
// 清空session中的属性
session.removeAttribute("uid");
session.removeAttribute("uname");
session.removeAttribute("utype");
//让session无效
session.invalidate();
return "redirect:/login";
}
@ResponseBody
@RequestMapping(value = "/api/loadMenuList")
public String loadMenuList(HttpSession session) {
Integer utype = (Integer) session.getAttribute("utype");
String initJson = menuService.loadMenuList(utype);
System.out.println(initJson);
return initJson;
}
/**
* 基本资料
*
* @param session
* @return
*/
@RequestMapping(value = "/basic-info.html")
public String setBasicInfo(HttpSession session) {
Integer utype = (Integer) session.getAttribute("utype");
// 是学生则返回学生的界面
if (utype == 0) {
return "/student/basic-info";
} else {
return "/basic-info";
}
}
/**
* 修改密码
*
* @return
*/
@RequestMapping(value = "/password-setting.html")
public String setPassword() {
return "/password-setting";
}
@ResponseBody
@RequestMapping(value = "/updatePassword.action")
public String updatePassword(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String uid = (String) request.getSession().getAttribute("uid");
Integer utype = (Integer) request.getSession().getAttribute("utype");
String param = request.getParameter("param");
System.out.println(param);
try {
if (StringUtils.isNotBlank(param)) {
JSONObject obj = JSONObject.parseObject(param);
String old_password = (String) obj.get("old_password");
String new_password = (String) obj.get("new_password");
int result = indexService.updatePassword(uid, utype, old_password, new_password);
switch (result) {
case -1:
map.put("success", false);
map.put("msg", "系统出错,修改失败!");
break;
case 0:
map.put("success", false);
map.put("msg", "旧密码不正确!");
break;
case 1:
map.put("success", true);
map.put("msg", "修改成功!");
}
return JSON.toJSONString(map);
}
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "系统出错,修改失败!");
}
return JSON.toJSONString(map);
}
}
@Controller
@RequestMapping
public class MenuController {
@Resource
private MenuService menuService;
}
@Controller
@RequestMapping("/student")
public class StudentController {
@Resource
private StudentService studentService;
/**
* 我的卫生检查记录界面
*
* @return
*/
@RequestMapping(value = "/viewMyCleanInfo")
public String viewMyCleanInfo() {
return "/student/clean-list";
}
/**
* 查询我的宿舍卫生检查记录
*
* @param ciVo 分页信息
* @param request 用于获取session中的uid
* @return
*/
@ResponseBody
@RequestMapping(value = "/clean/list")
public DataGridViewResult findMyCleanInfoListByPage(CleanInfoVo ciVo, HttpServletRequest request) {
// 获取学号
String uid = (String) request.getSession().getAttribute("uid");
ciVo.setStuid(uid);
// 设置分页信息
PageHelper.startPage(ciVo.getPage(), ciVo.getLimit());
// 查询
List<CleanInfo> list = studentService.findMyCleanInfoListByPage(ciVo);
// 创建分页对象
PageInfo<CleanInfo> pageInfo = new PageInfo<CleanInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 我的报修界面
*
* @return
*/
@RequestMapping(value = "/viewMyRepairInfo")
public String viewMyRepairInfo() {
return "/student/repair-list";
}
/**
* 查询我的宿舍的报修记录
*
* @param riVo 分页信息
* @param request 用于获取session中的uid
* @return
*/
@ResponseBody
@RequestMapping(value = "/repair/list")
public DataGridViewResult findMyRepairInfoListByPage(RepairInfoVo riVo, HttpServletRequest request) {
// 获取学号
String uid = (String) request.getSession().getAttribute("uid");
riVo.setStuid(uid);
// 设置分页信息
PageHelper.startPage(riVo.getPage(), riVo.getLimit());
// 查询
List<RepairInfo> list = studentService.findMyRepairInfoListByPage(riVo);
// 创建分页对象
PageInfo<RepairInfo> pageInfo = new PageInfo<RepairInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 提交报修单
*
* @param ri
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/repair/add")
public String addRepairInfo(RepairInfo ri, HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
ri.setStuid(stuid);
// 报修提交时间
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
ri.setSubtime(format.format(date));
System.out.println(ri);
// 去执行添加操作
int result = studentService.addRepairInfo(ri);
if (result > 0) {
map.put("success", true);
map.put("msg", "添加成功");
} else {
map.put("success", false);
map.put("msg", "添加失败");
}
return JSON.toJSONString(map);
}
/**
* 修改报修单
*
* @param ri
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/repair/update")
public String updateRepairInfo(RepairInfo ri, HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
System.out.println(ri);
// 判断这是不是自己的提交的报修单
String stuid = (String) request.getSession().getAttribute("uid");
if (!stuid.equals(ri.getStuid())) {
map.put("success", false);
map.put("msg", "只能修改自己提交的报修单!");
return JSON.toJSONString(map);
}
int result = studentService.updateRepairInfo(ri);
if (result > 0) {
map.put("success", true);
map.put("msg", "修改成功!");
} else {
map.put("success", false);
map.put("msg", "修改失败!");
}
return JSON.toJSONString(map);
}
/**
* 我的宿舍界面
*
* @return
*/
@RequestMapping(value = "/viewMyDormInfo")
public String viewMyDormInfo() {
return "/student/myDorm";
}
/**
* 查看留言板
*
* @return
*/
@RequestMapping(value = "/viewMessageBoard")
public String viewMessageBoard() {
return "/student/messageboard";
}
@ResponseBody
@RequestMapping(value = "/message/list")
public String findMessageListByPage(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
try {
// 获取id,用来查找所在宿舍区
String uid = (String) request.getSession().getAttribute("uid");
// 获取当前页
Integer curr = Integer.parseInt(request.getParameter("curr"));
// 获取页面size
Integer limit = Integer.parseInt(request.getParameter("limit"));
// 获取信息类型
Integer type = Integer.parseInt(request.getParameter("type"));
// 起始行数
Integer start = (curr - 1) * limit;
List<MessageBoard> list = studentService.findMessageListByPage(uid, start, limit, type);
// 总行数
Integer count = studentService.findMessageCount(type);
// 总页数
Integer total = (count - 1) / limit + 1;
map.put("success", true);
map.put("count", count);
map.put("total", total);
map.put("curr", curr);
map.put("limit", limit);
map.put("data", list);
System.out.println(JSON.toJSONString(map));
return JSON.toJSONString(map);
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "系统错误!");
return JSON.toJSONString(map);
}
}
/**
* 查看我的留言
*
* @return
*/
@RequestMapping(value = "viewMyMessage")
public String viewMyMessage() {
return "/student/my-message";
}
/**
* 查看我的留言
*
* @param mbVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/message/my")
public DataGridViewResult myMessage(MessageBoardVo mbVo, HttpServletRequest request) {
String uname = (String) request.getSession().getAttribute("uname");
mbVo.setAnnouncer(uname);
// 设置分页信息
PageHelper.startPage(mbVo.getPage(), mbVo.getLimit());
// 查询
List<MessageBoard> list = studentService.findMyMessage(mbVo);
// 创建分页对象
PageInfo<MessageBoard> pageInfo = new PageInfo<MessageBoard>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 发布留言
*
* @param mb
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/message/add")
public String addMessage(MessageBoard mb, HttpServletRequest request) {
String uname = (String) request.getSession().getAttribute("uname");
mb.setAnnouncer(uname);
HashMap<String, Object> map = new HashMap<>();
int result = studentService.addMessage(mb);
if (result > 0) {
map.put("success", true);
map.put("msg", "添加成功!");
} else {
map.put("success", false);
map.put("msg", "添加失败!");
}
return JSON.toJSONString(map);
}
/**
* 批量删除留言
*
* @param request 获取前端传来的id数组
* @return
*/
@ResponseBody
@RequestMapping(value = "/message/delete")
public String deleteMessage(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String params = request.getParameter("params");
System.out.println(params);
try {
if (StringUtils.isNotBlank(params)) {
// 获取id数组
JSONArray jsonArray = JSONArray.parseArray(params);
List<Integer> list = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
Integer id = (Integer) obj.get("id");
list.add(id);
}
boolean result = studentService.deleteMessage(list);
if (result) {
map.put("success", true);
map.put("msg", "删除成功!");
} else {
map.put("success", false);
map.put("msg", "删除失败!");
}
}
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "删除失败!");
}
return JSON.toJSONString(map);
}
/**
* 查看学生基本信息
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/basic/info")
public String viewStudentInfo(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
if (StringUtils.isNotBlank(stuid)) {
StudentInfo si = studentService.findStudentInfoByStuid(stuid);
if (si != null) {
map.put("success", true);
map.put("data", si);
} else {
map.put("success", false);
map.put("msg", "系统错误:不存在该用户!");
}
}
return JSON.toJSONString(map);
}
/**
* 更改基本信息
*
* @param si
* @return
*/
@ResponseBody
@RequestMapping(value = "/basic/update")
public String updateStudentInfo(StudentInfo si) {
HashMap<String, Object> map = new HashMap<>();
System.out.println(si);
int result = studentService.updateStudentInfo(si);
if (result > 0) {
map.put("success", true);
map.put("msg", "保存成功!");
} else {
map.put("success", false);
map.put("msg", "保存失败!");
}
return JSON.toJSONString(map);
}
@RequestMapping(value = "/leave/register")
public String myLeaveInfo() {
return "/student/leave-info";
}
/**
* 查找我的离校登记记录
*
* @param liVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/leave/list")
public DataGridViewResult findMyLeaveInfoByPage(LeaveInfoVo liVo, HttpServletRequest request) {
String stuid = (String) request.getSession().getAttribute("uid");
liVo.setStuid(stuid);
System.out.println(liVo);
// 设置分页信息
PageHelper.startPage(liVo.getPage(), liVo.getLimit());
// 查询
List<LeaveInfo> list = studentService.findMyLeaveInfoByPage(liVo);
// 创建分页对象
PageInfo<LeaveInfo> pageInfo = new PageInfo<LeaveInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 添加离校登记记录
*
* @param li
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/leave/add")
public String addMyLeaveInfo(LeaveInfo li, HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
li.setStuid(stuid);
System.out.println(li);
int result = studentService.addMyLeaveInfo(li);
if (result > 0) {
map.put("success", true);
map.put("msg", "登记成功!");
} else {
map.put("success", false);
map.put("msg", "登记失败,请稍后再试!");
}
return JSON.toJSONString(map);
}
/**
* 修改离校登记记录
*
* @param li
* @return
*/
@ResponseBody
@RequestMapping(value = "/leave/update")
public String updateMyLeaveInfo(LeaveInfo li) {
HashMap<String, Object> map = new HashMap<>();
System.out.println(li);
int result = studentService.updateMyLeaveInfo(li);
if (result > 0) {
map.put("success", true);
map.put("msg", "更改成功!");
} else {
map.put("success", false);
map.put("msg", "更改失败,请稍后再试!");
}
return JSON.toJSONString(map);
}
/**
* 留校申请
*
* @return
*/
@RequestMapping(value = "/stayin/apply")
public String myStayInfo() {
return "/student/stayin-apply";
}
/**
* 查看自己的留校申请
*
* @param siVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/list")
public DataGridViewResult findMyStayInfoListByPage(StayInfoVo siVo, HttpServletRequest request) {
String stuid = (String) request.getSession().getAttribute("uid");
siVo.setStuid(stuid);
System.out.println(siVo);
// 设置分页信息
PageHelper.startPage(siVo.getPage(), siVo.getLimit());
// 查询
List<StayInfo> list = studentService.findMyStayInfoListByPage(siVo);
// 创建分页对象
PageInfo<StayInfo> pageInfo = new PageInfo<StayInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 上传图片
*
* @param file
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/uploadImage")
public String uploadOpinionImage(MultipartFile file, HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
HashMap<String, Object> data = new HashMap<>();
try {
if (file != null) {
String stuid = (String) request.getSession().getAttribute("uid");
String originalFilename = file.getOriginalFilename();
Date date = new Date();
String fileName = date.getTime() + "-" + originalFilename;
// 类路径
// String path = ResourceUtils.getURL("classpath:").getPath();
String classPath = "F:/IDEA/workspace/高校宿舍管理系统/doms/target/classes/static";
// 父路径
String src = "/upload/stayin/" + stuid + "/";
File directory = new File(classPath, src);
if (!directory.exists()) {
directory.mkdir();
}
// 文件名
String imagePath = directory.getPath() + "\\" + fileName;
System.out.println(imagePath);
file.transferTo(new File(imagePath));
data.put("src", src + fileName);
map.put("code", 0);
map.put("msg", "上传成功!");
map.put("data", data);
return JSON.toJSONString(map);
} else {
map.put("code", -1);
map.put("msg", "请选择图片!");
return JSON.toJSONString(map);
}
} catch (Exception e) {
e.printStackTrace();
map.put("code", -1);
map.put("msg", "上传失败,请稍后重试!");
return JSON.toJSONString(map);
}
}
/**
* 提交留校申请
*
* @param si
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/add")
public String addStayInfo(StayInfo si, HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
si.setStuid(stuid);
System.out.println(si);
int result = studentService.addMyStayInfo(si);
if (result > 0) {
map.put("success", true);
map.put("msg", "提交申请成功");
} else {
map.put("success", false);
map.put("msg", "提交申请失败,请稍后重试!");
}
return JSON.toJSONString(map);
}
/**
* 修改留校申请信息
*
* @param si
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/update")
public String updateMyStayInfo(StayInfo si) {
HashMap<String, Object> map = new HashMap<>();
System.out.println(si);
int result = studentService.updateMyStayInfo(si);
if (result > 0) {
map.put("success", true);
map.put("msg", "修改成功!");
} else {
map.put("success", false);
map.put("msg", "修改失败,请稍后再试!");
}
return JSON.toJSONString(map);
}
/**
* 查看我的返校信息
*
* @return
*/
@RequestMapping(value = "/viewMyBackInfo")
public String viewMyBackToScInfo() {
return "/student/back-info";
}
/**
* 查找我的返校登记记录
*
* @param bsVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/back/list")
public DataGridViewResult findMyBackInfoByPage(BackToScInfoVo bsVo, HttpServletRequest request) {
String stuid = (String) request.getSession().getAttribute("uid");
bsVo.setStuid(stuid);
System.out.println(bsVo);
// 设置分页信息
PageHelper.startPage(bsVo.getPage(), bsVo.getLimit());
// 查询
List<BackToScInfo> list = studentService.findMyBackInfoByPage(bsVo);
// 创建分页对象
PageInfo<BackToScInfo> pageInfo = new PageInfo<BackToScInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 添加返校登记记录
*
* @param bs
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/back/add")
public String addMyBackInfo(BackToScInfo bs, HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
bs.setStuid(stuid);
System.out.println(bs);
int result = studentService.addMyBackInfo(bs);
if (result > 0) {
map.put("success", true);
map.put("msg", "提交成功!");
} else {
map.put("success", false);
map.put("msg", "提交失败,请稍后再试!");
}
return JSON.toJSONString(map);
}
/**
* 修改返校登记记录
*
* @param bs
* @return
*/
@ResponseBody
@RequestMapping(value = "/back/update")
public String updateMyBackInfo(BackToScInfo bs) {
HashMap<String, Object> map = new HashMap<>();
System.out.println(bs);
int result = studentService.updateMyBackInfo(bs);
if (result > 0) {
map.put("success", true);
map.put("msg", "更改成功!");
} else {
map.put("success", false);
map.put("msg", "更改失败,请稍后再试!");
}
return JSON.toJSONString(map);
}
/**
* 密码设置
*
* @return
*/
@RequestMapping(value = "/setting")
public String passwordSetting() {
return "password-setting";
}
@RequestMapping(value = "/myDormitoryInfo")
public String viewMyDormitoryInfo() {
return "/student/my-dormitory";
}
/**
* 查看自己宿舍信息
*
* @param aiVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/mydorm/list")
public DataGridViewResult findMyDormitoryInfoListByPage(AllocationInfoVo aiVo, HttpServletRequest request) {
String stuid = (String) request.getSession().getAttribute("uid");
aiVo.setStuid(stuid);
System.out.println(aiVo);
// 设置分页信息
PageHelper.startPage(aiVo.getPage(), aiVo.getLimit());
// 查询
List<AllocationInfo> list = studentService.findMyDormitoryInfoListByPage(aiVo);
// 创建分页对象
PageInfo<AllocationInfo> pageInfo = new PageInfo<AllocationInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 判断是否已经选择床位了
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/mydorm/isChoosed")
public String isChooseBed(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
boolean status = studentService.isChooseBed(stuid);
map.put("status", status);
return JSON.toJSONString(map);
}
/**
* 提交选择的床位号
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/mydorm/chooseBed")
public String chooseBed(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
String bed = request.getParameter("bed");
if (StringUtils.isNotBlank(bed)) {
int bedNum = Integer.parseInt(bed);
// 提交床位号
int result = studentService.chooseBed(stuid, bedNum);
if (result > 0) {
map.put("success", true);
map.put("msg", "选择成功!");
} else {
map.put("success", false);
map.put("msg", "选择失败!");
}
return JSON.toJSONString(map);
} else {
map.put("success", false);
map.put("msg", "床位号不能为空!");
return JSON.toJSONString(map);
}
}
/**
* 查找已经选择了的床位
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/mydorm/alreadyBeds")
public String findAlreadyChooseBeds(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String stuid = (String) request.getSession().getAttribute("uid");
List<Integer> list = studentService.findAlreadyChooseBeds(stuid);
map.put("beds", list);
return JSON.toJSONString(map);
}
}
/**
* 教师对应的控制器
*/
@Controller
@RequestMapping("/teacher")
public class TeacherController {
@Resource
private TeacherService teacherService;
@RequestMapping(value = "/viewAllocationInfo")
public String allocationList() {
return "/teacher/allocation-list";
}
/**
* 查询宿舍分配信息
* 查询条件:专业/年级
*
* @param aiVo
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/list")
public DataGridViewResult findAllocationInfoList(AllocationInfoVo aiVo, HttpServletRequest request) {
// 获取session中的专业和年级
String dept = (String) request.getSession().getAttribute("dept");
String grade = (String) request.getSession().getAttribute("grade");
if (StringUtils.isNotBlank(dept)) {
aiVo.setStudept(dept);
}
if (StringUtils.isNotBlank(grade)) {
aiVo.setStugrade(grade);
}
System.out.println(aiVo);
// 设置分页信息
PageHelper.startPage(aiVo.getPage(), aiVo.getLimit());
// 查询
List<AllocationInfo> list = teacherService.findAllocationInfoListByPage(aiVo);
// 创建分页对象
PageInfo<AllocationInfo> pageInfo = new PageInfo<AllocationInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 添加宿舍分配信息
*
* @param ai
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/add")
public String addAllocationInfo(AllocationInfo ai) {
HashMap<String, Object> map = new HashMap<>();
int result = teacherService.addAllocationInfo(ai);
if (result > 0) {
map.put("success", true);
map.put("msg", "添加成功!");
} else {
map.put("success", false);
map.put("msg", "添加失败!");
}
return JSON.toJSONString(map);
}
/**
* 更改宿舍分配信息
*
* @param ai
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/update")
public String updateAllocationInfo(AllocationInfo ai) {
HashMap<String, Object> map = new HashMap<>();
int result = teacherService.updateAllocationInfo(ai);
if (result > 0) {
map.put("success", true);
map.put("msg", "更改成功!");
} else {
map.put("success", false);
map.put("msg", "更改失败!");
}
return JSON.toJSONString(map);
}
/**
* 删除宿舍分配信息
*
* @param stuid
* @return
*/
@ResponseBody
@RequestMapping(value = "/allocation/delete")
public String deleteAllocationInfo(String stuid) {
HashMap<String, Object> map = new HashMap<>();
int result = teacherService.deleteAllocationInfo(stuid);
if (result > 0) {
map.put("success", true);
map.put("msg", "删除成功!");
} else {
map.put("success", false);
map.put("msg", "删除失败!");
}
return JSON.toJSONString(map);
}
/**
* 导出宿舍分配信息列表(excel格式)
*
* @param request 用来获取缓存中的attribute
* @param response 输出文件流
*/
@ResponseBody
@RequestMapping(value = "/allocation/export.action")
public void exportAllocationInfoToExcel(HttpServletRequest request, HttpServletResponse response) {
HashMap<String, Object> map = new HashMap<>();
response.reset();// 清除缓存
String studept = (String) request.getSession().getAttribute("dept");
String grade = (String) request.getSession().getAttribute("grade");
System.out.println("studept" + studept);
System.out.println("grade" + grade);
// 查找宿舍分配信息列表
List<AllocationInfo> list = teacherService.exportByDept(studept, grade);
// 拼接excel表名
StringBuffer filenamebuffer = new StringBuffer();
if (StringUtils.isNotBlank(studept)) {
filenamebuffer.append(studept);
filenamebuffer.append("-");
}
if (StringUtils.isNotBlank(grade)) {
filenamebuffer.append(grade);
filenamebuffer.append("-");
}
filenamebuffer.append("宿舍分配表");
String filename = filenamebuffer.toString();
try {
ExcelUtils.writeExcel(filename, response, list, AllocationInfo.class);
map.put("success", true);
map.put("mag", "导出成功!");
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("mag", "导出失败!");
}
// return JSON.toJSONString(map);
}
@RequestMapping(value = "/viewStudentInfo")
public String studentList() {
return "/teacher/student-list";
}
/**
* 获取学生信息列表
*
* @param si
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/student/list")
public DataGridViewResult findStudentInfoList(StudentInfoVo si, HttpServletRequest request) {
// 获取教师所负责的专业和年级,年级对应学号
String studept = (String) request.getSession().getAttribute("dept");
String grade = (String) request.getSession().getAttribute("grade");
if (StringUtils.isNotBlank(studept)) {
si.setStudept(studept);
}
// 如果学号为空,则教师负责的年级作为学号的前缀条件
if (StringUtils.isBlank(si.getStuid())) {
if (StringUtils.isNotBlank(grade)) {
si.setStuid(grade);
}
}
System.out.println(si);
// 设置分页信息
PageHelper.startPage(si.getPage(), si.getLimit());
// 查询
List<StudentInfo> list = teacherService.findStudentInfoListByPage(si);
// 创建分页对象
PageInfo<StudentInfo> pageInfo = new PageInfo<StudentInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 添加学生信息
*
* @param si
* @return
*/
@ResponseBody
@RequestMapping(value = "/student/add")
public String addStudentInfo(StudentInfo si) {
HashMap<String, Object> map = new HashMap<>();
String grade = si.getStuid().substring(0, 4);
si.setStugrade(grade);
System.out.println(grade);
int result = teacherService.addStudentInfo(si);
if (result > 0) {
map.put("success", true);
map.put("msg", "添加成功!");
} else {
map.put("success", false);
map.put("msg", "添加失败!");
}
return JSON.toJSONString(map);
}
/**
* 更改学生信息
*
* @param si
* @return
*/
@ResponseBody
@RequestMapping(value = "/student/update")
public String updateStudentInfo(StudentInfo si) {
HashMap<String, Object> map = new HashMap<>();
int result = teacherService.updateStudentInfo(si);
if (result > 0) {
map.put("success", true);
map.put("msg", "更改成功!");
} else {
map.put("success", false);
map.put("msg", "更改失败!");
}
return JSON.toJSONString(map);
}
/**
* 删除学生信息
*
* @param stuid
* @return
*/
@ResponseBody
@RequestMapping(value = "/student/delete")
public String deleteaddStudentInfo(String stuid) {
HashMap<String, Object> map = new HashMap<>();
int result = teacherService.deleteStudentInfo(stuid);
if (result > 0) {
map.put("success", true);
map.put("msg", "删除成功!");
} else {
map.put("success", false);
map.put("msg", "删除失败!");
}
return JSON.toJSONString(map);
}
/**
* 导入学生信息
*
* @param file excel表格
* @return
*/
@ResponseBody
@RequestMapping(value = "/student/import.action")
public String importExcel(@RequestParam("file") MultipartFile file) {
HashMap<String, Object> map = new HashMap<>();
try {
List<StudentInfo> list = ExcelUtils.readExcel("", StudentInfo.class, file);
for (int i = 0; i < list.size(); i++) {
String grade = list.get(i).getStuid().substring(0, 4);
list.get(i).setStugrade(grade);
System.out.println(grade);
}
boolean result = teacherService.batchInsert(list);
if (result) {
map.put("code", 200);
map.put("msg", "导入成功!");
map.put("data", null);
} else {
map.put("code", 500);
map.put("msg", "导入失败!");
map.put("data", null);
}
} catch (Exception e) {
e.printStackTrace();
map.put("code", 500);
map.put("msg", "导入失败,请检查文件内容是否正确。");
map.put("data", null);
}
return JSON.toJSONString(map);
}
/**
* 查看卫生检查情况
*
* @return
*/
@RequestMapping(value = "/viewCleanInfo")
public String viewCleanInfo() {
return "/teacher/clean-list";
}
/**
* 专业班级卫生检查信息
*
* @param ciVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/clean/list")
public DataGridViewResult findCleanInfoListByPage(CleanInfoVo ciVo, HttpServletRequest request) {
// 获取session中的专业和年级
String dept = (String) request.getSession().getAttribute("dept");
String grade = (String) request.getSession().getAttribute("grade");
if (StringUtils.isNotBlank(dept)) {
ciVo.setStudept(dept);
}
if (StringUtils.isNotBlank(grade)) {
ciVo.setStuid(grade);
}
System.out.println(ciVo);
// 设置分页信息
PageHelper.startPage(ciVo.getPage(), ciVo.getLimit());
// 查询
List<CleanInfoVo> list = teacherService.findCleanInfoListByPage(ciVo);
// 创建分页对象
PageInfo<CleanInfoVo> pageInfo = new PageInfo<CleanInfoVo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
@RequestMapping(value = "/viewLeaveInfo")
public String viewLeaveInfo() {
return "/teacher/leave-info";
}
@ResponseBody
@RequestMapping(value = "/leave/list")
public DataGridViewResult findLeaveInfoByPage(LeaveInfoVo liVo, HttpServletRequest request) {
// 专业和年级
String dept = (String) request.getSession().getAttribute("dept");
String grade = (String) request.getSession().getAttribute("grade");
if (StringUtils.isNotBlank(dept)) {
liVo.setStudept(dept);
}
if (StringUtils.isNotBlank(grade)) {
liVo.setStugrade(grade);
}
System.out.println(liVo);
// 设置分页信息
PageHelper.startPage(liVo.getPage(), liVo.getLimit());
// 查询
List<LeaveInfo> list = teacherService.findLeaveInfoListByPage(liVo);
// 创建分页对象
PageInfo<LeaveInfo> pageInfo = new PageInfo<LeaveInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
@ResponseBody
@RequestMapping(value = "/leave/delete")
public String batchDeleteLeaveInfo(HttpServletRequest request) {
HashMap<String, Object> map = new HashMap<>();
String params = request.getParameter("params");
try {
if (StringUtils.isBlank(params)) {
map.put("success", false);
map.put("msg", "请选择要删除的行!");
return JSON.toJSONString(map);
}
boolean result = teacherService.batchDeleteLeaveInfo(params);
if (result) {
map.put("success", true);
map.put("msg", "删除成功!");
} else {
map.put("success", false);
map.put("msg", "系统错误,请稍后再试!");
}
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("msg", "系统错误,请稍后再试!");
}
return JSON.toJSONString(map);
}
/**
* 将学生去向信息导出到Excel中
*
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = "/leave/export.action")
public void exportLeaveInfoToExcel(HttpServletRequest request, HttpServletResponse response) {
response.reset();// 清除缓存
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
// 查找学生登记信息
List<LeaveInfo> list = teacherService.exportLeaveInfo(studept, stugrade);
// 拼接excel表名
StringBuffer filenamebuffer = new StringBuffer();
if (StringUtils.isNotBlank(studept)) {
filenamebuffer.append(studept);
filenamebuffer.append("-");
}
if (StringUtils.isNotBlank(stugrade)) {
filenamebuffer.append(stugrade);
filenamebuffer.append("级-");
}
filenamebuffer.append("节假日去向表");
String filename = filenamebuffer.toString();
try {
ExcelUtils.writeExcel(filename, response, list, LeaveInfo.class);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取饼状图的数据
*
* @return
*/
@ResponseBody
@RequestMapping(value = "/leave/echartsData")
public String getLeaveInfoEchartsData(HttpServletRequest request) {
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
HashMap<String, Object> map = teacherService.getLeaveInfoEchartsData(studept, stugrade);
String result = JSON.toJSONString(map);
System.out.println(result);
return result;
}
/**
* 留校管理
*
* @return
*/
@RequestMapping(value = "/stayinManage")
public String stayinManege() {
return "/teacher/stayin-manage";
}
/**
* 留校申请列表
*
* @param siVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/list")
public DataGridViewResult findStayInfoListByPage(StayInfoVo siVo, HttpServletRequest request) {
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
if (StringUtils.isNotBlank(studept)) {
siVo.setStudept(studept);
}
if (StringUtils.isNotBlank(stugrade)) {
siVo.setStugrade(stugrade);
}
System.out.println(siVo);
// 设置分页信息
PageHelper.startPage(siVo.getPage(), siVo.getLimit());
// 查询
List<StayInfo> list = teacherService.findStayInfoListByPage(siVo);
// 创建分页对象
PageInfo<StayInfo> pageInfo = new PageInfo<StayInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 审批学生留校申请
*
* @param si
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/approve")
public String approveStayInfo(StayInfo si) {
HashMap<String, Object> map = new HashMap<>();
System.out.println(si);
int result = teacherService.approveStayInfo(si);
if (result > 0) {
map.put("success", true);
map.put("msg", "审批成功");
} else {
map.put("success", false);
map.put("msg", "审批失败,请稍后再试!");
}
return JSON.toJSONString(map);
}
/**
* 导出学生留校申请信息
*
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = "/stayin/export.action")
public void exportStayInfoToExcel(HttpServletRequest request, HttpServletResponse response) {
response.reset();// 清除缓存
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
// 查找学生登记信息
List<StayInfo> list = teacherService.exportStayInfo(studept, stugrade);
// 拼接excel表名
StringBuffer filenamebuffer = new StringBuffer();
if (StringUtils.isNotBlank(studept)) {
filenamebuffer.append(studept);
filenamebuffer.append("-");
}
if (StringUtils.isNotBlank(stugrade)) {
filenamebuffer.append(stugrade);
filenamebuffer.append("级-");
}
filenamebuffer.append("留校申请表");
String filename = filenamebuffer.toString();
try {
ExcelUtils.writeExcel(filename, response, list, StayInfo.class);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取留校申请中的统计数据
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/stayin/echartsData")
public String getStayInfoEchartsData(HttpServletRequest request) {
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
JSONObject data = teacherService.getStayInfoEchartsData(studept, stugrade);
System.out.println(JSON.toJSONString(data));
return JSON.toJSONString(data);
}
@RequestMapping(value = "/backManage")
public String backManage() {
return "/teacher/back-manage";
}
/**
* 查找学生返校信息
*
* @param bsVo
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/back/list")
public DataGridViewResult findBackToScInfoListByPage(BackToScInfoVo bsVo, HttpServletRequest request) {
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
if (StringUtils.isNotBlank(studept)) {
bsVo.setStudept(studept);
}
if (StringUtils.isNotBlank(stugrade)) {
bsVo.setStugrade(stugrade);
}
System.out.println(bsVo);
// 设置分页信息
PageHelper.startPage(bsVo.getPage(), bsVo.getLimit());
// 查询
List<BackToScInfo> list = teacherService.findBackToScInfoListByPage(bsVo);
// 创建分页对象
PageInfo<BackToScInfo> pageInfo = new PageInfo<BackToScInfo>(list);
// 按接口要求返回数据
DataGridViewResult data = new DataGridViewResult(pageInfo.getTotal(), pageInfo.getList());
return data;
}
/**
* 导出学生返校登记信息
*
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = "/back/export.action")
public void exportBackToScInfoToExcel(HttpServletRequest request, HttpServletResponse response) {
response.reset();// 清除缓存
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
// 查找学生登记信息
List<BackToScInfo> list = teacherService.exportBackToScInfo(studept, stugrade);
// 拼接excel表名
StringBuffer filenamebuffer = new StringBuffer();
if (StringUtils.isNotBlank(studept)) {
filenamebuffer.append(studept);
filenamebuffer.append("-");
}
if (StringUtils.isNotBlank(stugrade)) {
filenamebuffer.append(stugrade);
filenamebuffer.append("级-");
}
filenamebuffer.append("返校登记表");
String filename = filenamebuffer.toString();
try {
ExcelUtils.writeExcel(filename, response, list, BackToScInfo.class);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取返校登记的统计数据
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/back/echartsData")
public String getBackToScInfoEchartsData(HttpServletRequest request) {
String studept = (String) request.getSession().getAttribute("dept");
String stugrade = (String) request.getSession().getAttribute("grade");
JSONObject data = teacherService.getBackToScInfoEchartsData(studept, stugrade);
System.out.println(JSON.toJSONString(data));
return JSON.toJSONString(data);
}
}