From 60040d341ce88da966739c43bfa0220c25e1ebf5 Mon Sep 17 00:00:00 2001 From: KaiyuanOSG Date: Mon, 26 Jun 2023 12:35:35 +0800 Subject: [PATCH] =?UTF-8?q?2023.6.25=201.=20=E7=AD=94=E8=BE=A9=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdut/labex/Factory/ExperimentFactory.java | 7 ++ .../sdut/labex/controller/FileController.java | 3 +- .../sdut/labex/controller/UserController.java | 8 +++ .../java/com/sdut/labex/dto/TimeTable.java | 4 +- .../com/sdut/labex/entity/Experiment.java | 4 ++ .../sdut/labex/mapper/BorrowInfoMapper.java | 2 +- .../java/com/sdut/labex/mapper/LogMapper.java | 1 - .../com/sdut/labex/service/LogService.java | 3 +- .../service/impl/ExperimentsServiceImpl.java | 5 +- .../labex/service/impl/LogServiceImpl.java | 18 +++-- .../labex/service/impl/TableServiceImpl.java | 8 +-- .../labex/service/impl/UserServiceImpl.java | 6 +- src/main/resources/application.yml | 6 +- .../resources/mapper/BorrowInfoMapper.xml | 1 + .../resources/mapper/ExperimentsMapper.xml | 1 + web/src/components/Table.vue | 2 - web/src/main.js | 2 +- web/src/router/index.js | 10 ++- web/src/views/Admin/Admit.vue | 6 +- web/src/views/Admin/Log.vue | 67 +++++++++++++++++++ .../{RoomAndTimeManage.vue => System.vue} | 0 web/src/views/Admin/UserManage.vue | 1 + .../views/ApplyExperiment/ApplyExperiment.vue | 44 +++++++++++- .../views/ApplyExperiment/ExperimentCheck.vue | 8 ++- web/src/views/BorrowRoom/BorrowRoom.vue | 1 - web/src/views/BorrowRoom/RecordList.vue | 53 ++++++++++----- web/src/views/Home.vue | 11 +-- web/src/views/Student/Sub.vue | 5 +- 28 files changed, 229 insertions(+), 58 deletions(-) create mode 100644 web/src/views/Admin/Log.vue rename web/src/views/Admin/{RoomAndTimeManage.vue => System.vue} (100%) diff --git a/src/main/java/com/sdut/labex/Factory/ExperimentFactory.java b/src/main/java/com/sdut/labex/Factory/ExperimentFactory.java index dd9129b..53f1d79 100644 --- a/src/main/java/com/sdut/labex/Factory/ExperimentFactory.java +++ b/src/main/java/com/sdut/labex/Factory/ExperimentFactory.java @@ -57,6 +57,13 @@ public class ExperimentFactory { e.printStackTrace(); log.error("解析实验申请用户失败"); } + + try { + experiment.setAnnex(jsonObject.getString("annex")); + } catch (Exception e) { + e.printStackTrace(); + log.error("解析实验申请附件失败"); + } return experiment; } } diff --git a/src/main/java/com/sdut/labex/controller/FileController.java b/src/main/java/com/sdut/labex/controller/FileController.java index 7177fe4..eed1d3e 100644 --- a/src/main/java/com/sdut/labex/controller/FileController.java +++ b/src/main/java/com/sdut/labex/controller/FileController.java @@ -23,7 +23,7 @@ import java.util.UUID; @RestController @CrossOrigin public class FileController { - private final Path fileStorageLocation = Paths.get("/Users/springforest/Downloads/软件实训/"); + private final Path fileStorageLocation = Paths.get("/Users/springforest/Downloads/软件实训/uploads/"); @PostMapping("/upload") public ResVo uploadFile(@RequestParam("file") MultipartFile file) { @@ -51,7 +51,6 @@ public class FileController { ex.printStackTrace(); return ResVo.error("文件上传失败"); } - } @GetMapping("/download/{fileName}") diff --git a/src/main/java/com/sdut/labex/controller/UserController.java b/src/main/java/com/sdut/labex/controller/UserController.java index 5b8bb07..d7e2f75 100644 --- a/src/main/java/com/sdut/labex/controller/UserController.java +++ b/src/main/java/com/sdut/labex/controller/UserController.java @@ -3,6 +3,7 @@ package com.sdut.labex.controller; import com.alibaba.fastjson.JSONObject; import com.sdut.labex.Factory.UserFactory; import com.sdut.labex.entity.User; +import com.sdut.labex.service.LogService; import com.sdut.labex.service.UserService; import com.sdut.labex.utils.ResVo; import com.sdut.labex.utils.UserHolder; @@ -22,6 +23,8 @@ import javax.annotation.Resource; public class UserController { @Resource private UserService userService; + @Resource + private LogService logService; @PostMapping("/login") public ResVo login(@RequestBody JSONObject jsonObject) { @@ -63,4 +66,9 @@ public class UserController { User user = UserFactory.createUser(jsonObject); return userService.add(user); } + + @GetMapping("/log/{pageNum}/{pageSize}") + public ResVo getLog(@PathVariable("pageNum") int pageNum, @PathVariable("pageSize") int pageSize) { + return logService.getLog(pageNum, pageSize); + } } diff --git a/src/main/java/com/sdut/labex/dto/TimeTable.java b/src/main/java/com/sdut/labex/dto/TimeTable.java index d0ceebc..ee6c0a7 100644 --- a/src/main/java/com/sdut/labex/dto/TimeTable.java +++ b/src/main/java/com/sdut/labex/dto/TimeTable.java @@ -19,7 +19,7 @@ public class TimeTable { public int startWeek; public int endWeek; - public String name; + public String applyUser; public String[] time; public String reason; @@ -61,6 +61,6 @@ public class TimeTable { this.startWeek = Integer.parseInt(startWeekTemp); this.endWeek = Integer.parseInt(endWeekTemp); - this.name = temp[2]; + this.applyUser = temp[2]; } } \ No newline at end of file diff --git a/src/main/java/com/sdut/labex/entity/Experiment.java b/src/main/java/com/sdut/labex/entity/Experiment.java index 1297f6a..f26fab1 100644 --- a/src/main/java/com/sdut/labex/entity/Experiment.java +++ b/src/main/java/com/sdut/labex/entity/Experiment.java @@ -48,6 +48,10 @@ public class Experiment implements Serializable { * 申请人 */ private String applyUser; + /* + * 附件 + * */ + private String annex; @TableField(exist = false) private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java b/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java index 4ce5fe7..144ca2e 100644 --- a/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java +++ b/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java @@ -20,7 +20,7 @@ import java.util.Map; public interface BorrowInfoMapper extends BaseMapper { public Page queryBorrowInfoByOptions(Page page, BorrowInfo borrowInfo); - public void addTimeTable(Map map); + public void addTimeTable(Map map); public List notBorrowedYet(@Param("timeList") List timeList, @Param("date") String date); } diff --git a/src/main/java/com/sdut/labex/mapper/LogMapper.java b/src/main/java/com/sdut/labex/mapper/LogMapper.java index 0b75b19..2713bcb 100644 --- a/src/main/java/com/sdut/labex/mapper/LogMapper.java +++ b/src/main/java/com/sdut/labex/mapper/LogMapper.java @@ -12,7 +12,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface LogMapper extends BaseMapper { - } diff --git a/src/main/java/com/sdut/labex/service/LogService.java b/src/main/java/com/sdut/labex/service/LogService.java index e86447d..372f8ea 100644 --- a/src/main/java/com/sdut/labex/service/LogService.java +++ b/src/main/java/com/sdut/labex/service/LogService.java @@ -2,6 +2,7 @@ package com.sdut.labex.service; import com.baomidou.mybatisplus.extension.service.IService; import com.sdut.labex.entity.LogEntity; +import com.sdut.labex.utils.ResVo; /** * @author springforest @@ -10,6 +11,6 @@ import com.sdut.labex.entity.LogEntity; */ public interface LogService extends IService { - public void insertLog(LogEntity log); + public ResVo getLog(int pageNum, int pageSize); } diff --git a/src/main/java/com/sdut/labex/service/impl/ExperimentsServiceImpl.java b/src/main/java/com/sdut/labex/service/impl/ExperimentsServiceImpl.java index 7ea35c0..53802d7 100644 --- a/src/main/java/com/sdut/labex/service/impl/ExperimentsServiceImpl.java +++ b/src/main/java/com/sdut/labex/service/impl/ExperimentsServiceImpl.java @@ -138,14 +138,15 @@ public class ExperimentsServiceImpl extends ServiceImpl @Override - public void insertLog(LogEntity log) { - try { - logMapper.insert(log); - } catch (Exception e) { - e.printStackTrace(); - } + public ResVo getLog(int pageNum, int pageSize) { + Page page = new Page<>(pageNum, pageSize); + logMapper.selectPage(page, null); + + Map map = new HashMap<>(); + map.put("total", page.getTotal()); + map.put("list", page.getRecords()); + return ResVo.ok(map); } } diff --git a/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java b/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java index d5a80cf..30467ad 100644 --- a/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java +++ b/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java @@ -99,7 +99,7 @@ public class TableServiceImpl implements TableService { // 解析文件,将单元格内容解析为List // 处理list - Map map = new HashMap<>(); + Map map = new HashMap<>(); // 获取当前日期 Date today = new Date(); @@ -131,11 +131,11 @@ public class TableServiceImpl implements TableService { String[] ttmp = temp.split("/"); if (ttmp.length <= 10) { TimeTable timeTable = new TimeTable(temp); - map.put("name", timeTable.getName()); - map.put("reason", timeTable.getReason()); + map.put("applyUser", timeTable.getApplyUser()); map.put("roomName", roomName); - map.put("applyDate", dateFormat.format(today)); + map.put("date", dateFormat.format(today)); map.put("isAdmit", "1"); + map.put("applyDate", new Date()); calendar.add(Calendar.DATE, 7 * (timeTable.getStartWeek() - 1)); // 设置开始周 try { diff --git a/src/main/java/com/sdut/labex/service/impl/UserServiceImpl.java b/src/main/java/com/sdut/labex/service/impl/UserServiceImpl.java index b54c1ac..6275375 100644 --- a/src/main/java/com/sdut/labex/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sdut/labex/service/impl/UserServiceImpl.java @@ -39,8 +39,7 @@ public class UserServiceImpl extends ServiceImpl if (user == null) { return ResVo.error("用户不存在"); } - //仅测试用 - //todo:上线后删除||判断 + if (password.equals(user.getPassword()) || DigestUtils.md5DigestAsHex(password.getBytes()).equals(user.getPassword())) { Map map = new HashMap<>(); map.put("id", user.getId()); @@ -177,7 +176,7 @@ public class UserServiceImpl extends ServiceImpl if (excel.readCell(i, 4) == null) { return ResVo.error("Excel格式错误:第" + (i + 1) + "行第5列"); } - user.setRole(excel.readCell(i, 3)); + user.setRole(excel.readCell(i, 4)); } catch (Exception e) { e.printStackTrace(); return ResVo.error("Excel格式错误:第" + (i + 1) + "行第5列"); @@ -204,4 +203,5 @@ public class UserServiceImpl extends ServiceImpl map.put("list", page.getRecords()); return ResVo.ok(map); } + } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b72ad2f..35c8dd9 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,7 +1,11 @@ server: - port: 8080 + port: 8085 spring: + servlet: + multipart: + max-file-size: 10MB # 设置上传文件的最大大小为10MB + max-request-size: 100MB # 设置上传数据的最大总大小为100MB # Redis redis: host: 8.219.96.16 diff --git a/src/main/resources/mapper/BorrowInfoMapper.xml b/src/main/resources/mapper/BorrowInfoMapper.xml index 3fcb94a..ed00db5 100644 --- a/src/main/resources/mapper/BorrowInfoMapper.xml +++ b/src/main/resources/mapper/BorrowInfoMapper.xml @@ -33,6 +33,7 @@ and room_name = #{borrowInfo.roomName} + order by apply_date desc diff --git a/src/main/resources/mapper/ExperimentsMapper.xml b/src/main/resources/mapper/ExperimentsMapper.xml index 984ab40..6d69083 100644 --- a/src/main/resources/mapper/ExperimentsMapper.xml +++ b/src/main/resources/mapper/ExperimentsMapper.xml @@ -11,6 +11,7 @@ + diff --git a/web/src/components/Table.vue b/web/src/components/Table.vue index 4ee8969..381be1d 100644 --- a/web/src/components/Table.vue +++ b/web/src/components/Table.vue @@ -103,8 +103,6 @@ export default { } else { url = '/getUsedTable'; } - url = '/getUsedTable'; - this.$http({ url: url, method: 'post', diff --git a/web/src/main.js b/web/src/main.js index 0a7522e..5fe4d24 100755 --- a/web/src/main.js +++ b/web/src/main.js @@ -12,7 +12,7 @@ app.use(store).use(router).mount('#app') app.config.globalProperties.$http = axios; //接口请求的基准路径 -axios.defaults.baseURL = 'http://10.0.0.157:8080/'; +axios.defaults.baseURL = 'http://localhost:8085/'; // axios.defaults.baseURL = 'http://211.64.28.110:8080/'; // 添加请求拦截器 diff --git a/web/src/router/index.js b/web/src/router/index.js index f118310..77c12b2 100755 --- a/web/src/router/index.js +++ b/web/src/router/index.js @@ -34,9 +34,9 @@ const routes = [ component: () => import('../views/Admin/UserManage.vue') }, { - path: '/RoomTimeAndReasonManage', - name: 'RoomTimeAndReasonManage', - component: () => import('../views/Admin/RoomAndTimeManage.vue') + path: '/System', + name: 'System', + component: () => import('../views/Admin/System.vue') }, { path: '/Personal', @@ -57,6 +57,10 @@ const routes = [ path: '/Sub', name: 'Sub', component: () => import('../views/Student/Sub.vue') + }, { + path: '/Log', + name: 'Log', + component: () => import('../views/Admin/Log.vue') } ] }, diff --git a/web/src/views/Admin/Admit.vue b/web/src/views/Admin/Admit.vue index a03586e..669f975 100644 --- a/web/src/views/Admin/Admit.vue +++ b/web/src/views/Admin/Admit.vue @@ -39,7 +39,7 @@ export default { getAllAdmit() { this.loading = true; this.$http({ - url: '/experiments/1/10', + url: '/experiments/1/30', method: 'post', data: { status: 0 @@ -65,7 +65,7 @@ export default { }).then(({data}) => { if (data.code !== 200) { ElMessage({ - message: '操作失败', + message: data.msg, type: 'error', }) } else { @@ -82,7 +82,7 @@ export default { }).then(({data}) => { if (data.code !== 200) { ElMessage({ - message: '操作失败', + message: data.msg, type: 'error', }) } else { diff --git a/web/src/views/Admin/Log.vue b/web/src/views/Admin/Log.vue new file mode 100644 index 0000000..dbc4a80 --- /dev/null +++ b/web/src/views/Admin/Log.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/web/src/views/Admin/RoomAndTimeManage.vue b/web/src/views/Admin/System.vue similarity index 100% rename from web/src/views/Admin/RoomAndTimeManage.vue rename to web/src/views/Admin/System.vue diff --git a/web/src/views/Admin/UserManage.vue b/web/src/views/Admin/UserManage.vue index 24102e5..50af64a 100644 --- a/web/src/views/Admin/UserManage.vue +++ b/web/src/views/Admin/UserManage.vue @@ -204,6 +204,7 @@ export default { message: res.data.msg, type: 'success' }); + this.getUser() } else { this.$notify({ title: '文件解析失败', diff --git a/web/src/views/ApplyExperiment/ApplyExperiment.vue b/web/src/views/ApplyExperiment/ApplyExperiment.vue index 7bc4746..c138f29 100644 --- a/web/src/views/ApplyExperiment/ApplyExperiment.vue +++ b/web/src/views/ApplyExperiment/ApplyExperiment.vue @@ -9,6 +9,15 @@ + + 上传附件 + + + + 确认 @@ -45,6 +54,7 @@ import {computed, ref} from 'vue' import {ElMessage} from "element-plus"; +let formData = new FormData; const size = ref('') computed(() => { const marginMap = { @@ -66,7 +76,8 @@ export default { className: '', pageNum: 1, pageSize: 10, - total: 0 + total: 0, + annex: null }, size: '', } @@ -130,6 +141,37 @@ export default { } }) }, + fileChange(files, fileList) { + formData.append('file', files.raw) + files = null; + this.loading = true; + this.$http({ + method: 'post', + url: '/upload', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }).then(res => { + if (res.data.code === 200) { + this.$notify({ + title: '上传成功', + message: res.data.msg, + type: 'success' + }); + this.form.annex = res.data.fileName; + } else { + this.$notify({ + title: '文件解析失败', + message: res.data.msg, + type: 'error' + }); + } + formData = null; + formData = new FormData(); + this.loading = false; + }) + }, } } diff --git a/web/src/views/ApplyExperiment/ExperimentCheck.vue b/web/src/views/ApplyExperiment/ExperimentCheck.vue index 4153d6d..e499044 100644 --- a/web/src/views/ApplyExperiment/ExperimentCheck.vue +++ b/web/src/views/ApplyExperiment/ExperimentCheck.vue @@ -2,6 +2,10 @@ + + + 搜索 +
@@ -67,7 +71,7 @@ let formData = new FormData; export default { - naname: "ExperimentReview", + name: "ExperimentReview", data() { return { list: [], @@ -81,7 +85,7 @@ export default { }, dialogVisible: false, pageNum: 1, - pageSize: 10, + pageSize: 20, total: 0 } }, diff --git a/web/src/views/BorrowRoom/BorrowRoom.vue b/web/src/views/BorrowRoom/BorrowRoom.vue index 7e3c219..212b448 100644 --- a/web/src/views/BorrowRoom/BorrowRoom.vue +++ b/web/src/views/BorrowRoom/BorrowRoom.vue @@ -53,7 +53,6 @@
- 借用该教室 diff --git a/web/src/views/BorrowRoom/RecordList.vue b/web/src/views/BorrowRoom/RecordList.vue index 1cf4949..55db8fb 100644 --- a/web/src/views/BorrowRoom/RecordList.vue +++ b/web/src/views/BorrowRoom/RecordList.vue @@ -43,9 +43,8 @@ - - 下载模板 - + 下载模版 + @@ -64,17 +63,17 @@ - - - + + + + + + + @@ -132,10 +131,13 @@ export default { startDate: null, } }, - mounted() { + created() { this.userInfo.role = window.sessionStorage.getItem("role"); this.userInfo.userId = window.sessionStorage.getItem("userId"); this.userInfo.username = window.sessionStorage.getItem("username"); + }, + mounted() { + this.getBorrowInfo(); this.getAllRooms(); this.getAllTimeOptions(); @@ -221,12 +223,12 @@ export default { return; } - formData.append("startDate", this.startDate); - formData.append("roomName", this.subForm.roomName); + formData.append("date", this.startDate); + formData.append("room", this.subForm.roomName); this.$http({ method: 'post', - url: '/file/importTimeTable', + url: '/uploadTable', data: formData, headers: { 'Content-Type': 'multipart/form-data' @@ -251,6 +253,27 @@ export default { this.loading = false; }) }, + download(fileName) { + this.$http({ + url: '/download/' + fileName, + method: 'GET', + responseType: 'blob', + }).then((response) => { + const url = window.URL.createObjectURL(new Blob([response.data])); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click(); + }).catch((error) => { + if (error.response && error.response.status === 404) { + this.$message.error('文件不存在!'); + } else { + // 对于其他错误,可以选择不同的处理方式 + this.$message.error('下载文件时发生错误!'); + } + }); + }, } } diff --git a/web/src/views/Home.vue b/web/src/views/Home.vue index 2527b47..a9f546a 100644 --- a/web/src/views/Home.vue +++ b/web/src/views/Home.vue @@ -15,18 +15,19 @@ alt=""> 实验项目申请 - 实验项目审核 + 实验项目审核 实验项目批阅 教室申请 课表查看 - 教室申请记录查询 - 我的实验 + 教室申请记录 + 我的实验 - 用户管理 + 用户管理 个人信息 - 系统管理 + 系统管理 + 系统日志 diff --git a/web/src/views/Student/Sub.vue b/web/src/views/Student/Sub.vue index a3d3b33..719f555 100644 --- a/web/src/views/Student/Sub.vue +++ b/web/src/views/Student/Sub.vue @@ -18,11 +18,12 @@