From 4fdb6b8d2e6a7b6e501a1142ed4b9d7b4850edc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Thu, 27 Feb 2025 18:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/SchoolController.java | 149 +++++++ .../com/ruoyi/cms/domain/vo/SchoolImport.java | 16 + .../service/impl/CmsCategoryServiceImpl.java | 8 +- .../main/resources/config/ueditor/config.json | 4 +- .../system/mapper/SysDictDataMapper.java | 2 + .../system/service/ISysDictDataService.java | 8 + .../service/impl/SysDictDataServiceImpl.java | 12 + .../mapper/system/SysDictDataMapper.xml | 37 +- ruoyi-ui/src/api/hit/school.js | 49 +++ ruoyi-ui/src/utils/request.js | 10 +- ruoyi-ui/src/views/cms/editor/index.vue | 7 +- ruoyi-ui/src/views/hit/school/index.vue | 392 ++++++++++++++++++ .../officialWebsite/Components/footer.vue | 11 +- .../src/views/officialWebsite/committee.vue | 34 +- ruoyi-ui/src/views/officialWebsite/news.vue | 2 +- .../src/views/officialWebsite/platform.vue | 59 +-- ruoyi-ui/src/views/officialWebsite/team.vue | 52 +-- 17 files changed, 763 insertions(+), 89 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/cms/controller/SchoolController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/cms/domain/vo/SchoolImport.java create mode 100644 ruoyi-ui/src/api/hit/school.js create mode 100644 ruoyi-ui/src/views/hit/school/index.vue diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/controller/SchoolController.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/controller/SchoolController.java new file mode 100644 index 0000000..d205f38 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/controller/SchoolController.java @@ -0,0 +1,149 @@ +package com.ruoyi.cms.controller; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.ruoyi.cms.domain.vo.SchoolImport; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDictDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + + +/** + * @Description: 学校相关接口 + * @Author: 86187 + * @Date: 2025/02/27 14:41 + * @Version: 1.0 + */ +@RequestMapping("/school") +@RestController +public class SchoolController extends BaseController { + @Autowired + private ISysDictDataService sysDictDataService; + + /** + * 获取学校列表 + * + * @param schoolName + * @return + */ + @GetMapping("/getSchoolList") + public TableDataInfo getSchoolList(@RequestParam(required=false) String schoolName) { + SysDictData dictData = new SysDictData(); + dictData.setDictType("school_name"); + if (StringUtils.isNotEmpty(schoolName)) { + dictData.setDictLabel(schoolName); + } + startPage(); + List sysDictData = sysDictDataService.selectDictDataList(dictData); + return getDataTable(sysDictData); + } + + /** + * 添加学校 + * @param dictData + * @return + */ + @PostMapping("/add") + public AjaxResult add(@RequestBody SysDictData dictData) { + if (StringUtils.isEmpty(dictData.getDictLabel())) { + return AjaxResult.error("学校名称不能为空"); + } + //查询是否有重复 + dictData.setDictType("school_name"); + dictData.setDictValue(dictData.getDictLabel()); + String s = sysDictDataService.selectDictLabel(dictData.getDictType(), dictData.getDictLabel()); + if (StringUtils.isNotEmpty(s)) { + return AjaxResult.error("学校已存在"); + } + dictData.setDictSort(1L); + startPage(); + int i = sysDictDataService.insertDictData(dictData); + return AjaxResult.success(); + } + + @DeleteMapping("/deleteSchool/{id}") + public AjaxResult delete(@PathVariable("id") Long dictCode) { + sysDictDataService.deleteDictDataByIds(new Long[]{dictCode}); + return AjaxResult.success(); + } + + /** + * 获取学校信息 + * @param dictCode + * @return + */ + @GetMapping("/getSchoolInfo") + public AjaxResult getSchoolInfo(Long dictCode) { + SysDictData sysDictData1 = sysDictDataService.selectDictDataById(dictCode); + return AjaxResult.success(sysDictData1); + } + + @PutMapping("/updateSchool") + public AjaxResult updateSchool(@RequestBody SysDictData sysDictData) { + sysDictDataService.updateDictData(sysDictData); + return AjaxResult.success(); + } + + /** + * 导出模板 + * + * @param response + */ + @PostMapping("/exportSchoolTemplate") + public void exportSchoolTemplate(HttpServletResponse response) { + ExcelUtil util = new ExcelUtil<>(SchoolImport.class); + util.importTemplateExcel(response, "学校数据"); + } + + /** + * 导入学校数据 + * + * @param file + * @return + * @throws IOException + */ + @PostMapping("/importSchoolData") + public AjaxResult importData(MultipartFile file) throws IOException { + ExcelUtil util = new ExcelUtil<>(SchoolImport.class); + List list = util.importExcel(file.getInputStream()); + + //查询所有的学校 + SysDictData query = new SysDictData(); + query.setDictType("school_name"); + List result = sysDictDataService.selectDictDataList(query); + List sysDictDataList = new ArrayList<>(); + for (SchoolImport schoolImport : list) { + //判断是否为空 + if (ObjectUtil.isEmpty(schoolImport)) { + continue; + } + //判断名称是否重复 + if (result.stream().anyMatch(item -> item.getDictLabel().equals(schoolImport.getSchoolName()))) { + continue; + } + + SysDictData sysDictData = new SysDictData(); + sysDictData.setDictType("school_name"); + sysDictData.setDictLabel(schoolImport.getSchoolName()); + sysDictData.setDictValue(schoolImport.getSchoolName()); + sysDictData.setDictSort(1L); + sysDictDataList.add(sysDictData); + } + if(CollUtil.isNotEmpty(sysDictDataList)) { + sysDictDataService.insertBatchDictData(sysDictDataList); + } + return AjaxResult.success(list); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/vo/SchoolImport.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/vo/SchoolImport.java new file mode 100644 index 0000000..d3d60fb --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/vo/SchoolImport.java @@ -0,0 +1,16 @@ +package com.ruoyi.cms.domain.vo; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +/** + * @Description: 学校导入 + * @Author: 86187 + * @Date: 2025/02/27 14:44 + * @Version: 1.0 + */ +@Data +public class SchoolImport { + @Excel(name = "学校名称") + public String schoolName; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/CmsCategoryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/CmsCategoryServiceImpl.java index c4ad94c..c3d8975 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/CmsCategoryServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/CmsCategoryServiceImpl.java @@ -287,10 +287,10 @@ public class CmsCategoryServiceImpl extends ServiceImpl getLeavesContentList(Long id) { - return contentMapper.selectList(new QueryWrapper().and(item -> { - item.eq("category_id", id) - .eq("del_flag", 0); - })); + return contentMapper.selectList(new QueryWrapper().and(item -> { + item.eq("category_id", id) + .eq("del_flag", 0); + })); } /** diff --git a/ruoyi-admin/src/main/resources/config/ueditor/config.json b/ruoyi-admin/src/main/resources/config/ueditor/config.json index 9c31087..5d542bc 100644 --- a/ruoyi-admin/src/main/resources/config/ueditor/config.json +++ b/ruoyi-admin/src/main/resources/config/ueditor/config.json @@ -2,7 +2,7 @@ /* 上传图片配置项 */ "imageActionName": "uploadimage", /* 执行上传图片的action名称 */ "imageFieldName": "upfile", /* 提交的图片表单名称 */ - "imageMaxSize": 2048000, /* 上传大小限制,单位B */ + "imageMaxSize": 104857600, /* 上传大小限制,单位B */ "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp", '.webp'], /* 上传图片格式显示 */ "imageCompressEnable": true, /* 是否压缩图片,默认是true */ "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ @@ -24,7 +24,7 @@ "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */ "scrawlFieldName": "upfile", /* 提交的图片表单名称 */ "scrawlPathFormat": "image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */ + "scrawlMaxSize": 104857600, /* 上传大小限制,单位B */ "scrawlUrlPrefix": "", /* 图片访问路径前缀 */ "scrawlInsertAlign": "none", /* 截图工具上传 */ "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java index a341f1e..bb9bb0a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java @@ -92,4 +92,6 @@ public interface SysDictDataMapper * @return 结果 */ public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); + + int insertBatchDictData(@Param("dictDatas") List dictDatas); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java index 9bc4f13..d521fc6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java @@ -50,6 +50,14 @@ public interface ISysDictDataService */ public int insertDictData(SysDictData dictData); + /** + * 新增保存字典数据信息 + * + * @param dictDatas 字典数据信息 + * @return 结果 + */ + public int insertBatchDictData(List dictDatas); + /** * 修改保存字典数据信息 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java index fced569..ea85c48 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java @@ -91,6 +91,18 @@ public class SysDictDataServiceImpl implements ISysDictDataService return row; } + /** + * 新增保存字典数据信息 + * + * @param dictDatas 字典数据信息 + * @return 结果 + */ + @Override + public int insertBatchDictData(List dictDatas) { + dictDataMapper.insertBatchDictData(dictDatas); + return 0; + } + /** * 修改保存字典数据信息 * diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml index 3b94b7f..ccb09e4 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -120,5 +120,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sysdate() ) - + + insert into sys_dict_data( + + + dict_sort, + dict_label, + dict_value, + dict_type, + css_class, + list_class, + is_default, + status, + remark, + create_by, + create_time + + + ) + values + + ( + #{dictData.dictSort}, + #{dictData.dictLabel}, + #{dictData.dictValue}, + #{dictData.dictType}, + #{dictData.cssClass}, + #{dictData.listClass}, + #{dictData.isDefault}, + #{dictData.status}, + #{dictData.remark}, + #{dictData.createBy}, + sysdate() + ) + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/hit/school.js b/ruoyi-ui/src/api/hit/school.js new file mode 100644 index 0000000..82cf724 --- /dev/null +++ b/ruoyi-ui/src/api/hit/school.js @@ -0,0 +1,49 @@ +import request from '@/utils/request' + +// 查询教师信息列表 +export function listSchool(query) { + return request({ + url: '/school/getSchoolList', + method: 'get', + params: query + }) +} +// 查询教师信息列表 +export function deleteSchool(id) { + return request({ + url: '/school/deleteSchool/' + id, + method: 'delete', + }) +} + +// 新增教师信息 +export function addSchool(data) { + return request({ + url: '/school/add', + method: 'post', + data: data + }) +} +// 新增教师信息 +export function exportTemplate() { + return request({ + url: '/school/exportSchoolTemplate', + method: 'post', + }) +} +// 新增教师信息 +export function getSchoolInfo(query) { + return request({ + url: '/school/getSchoolInfo', + method: 'get', + params: query + }) +} +// 新增教师信息 +export function updateSchool(data) { + return request({ + url: '/school/updateSchool', + method: 'put', + data: data + }) +} diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js index c1a7d14..9a2fe30 100644 --- a/ruoyi-ui/src/utils/request.js +++ b/ruoyi-ui/src/utils/request.js @@ -48,20 +48,22 @@ service.interceptors.request.use(config => { console.warn(`[${config.url}]: ` + '请求数据大小超出允许的5M限制,无法进行防重复提交验证。') return config; } - const sessionObj = cache.session.getJSON('sessionObj') + const sessionObj = cache.session.getJSON(requestObj.url) if (sessionObj === undefined || sessionObj === null || sessionObj === '') { - cache.session.setJSON('sessionObj', requestObj) + cache.session.setJSON(requestObj.url, requestObj) } else { const s_url = sessionObj.url; // 请求地址 const s_data = sessionObj.data; // 请求数据 const s_time = sessionObj.time; // 请求时间 - const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交 + const interval = 1; + console.log(requestObj.time,s_time,'111') + // 间隔时间(ms),小于此时间视为重复提交 if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { const message = '数据正在处理,请勿重复提交'; console.warn(`[${s_url}]: ` + message) return Promise.reject(new Error(message)) } else { - cache.session.setJSON('sessionObj', requestObj) + cache.session.setJSON(requestObj.url, requestObj) } } } diff --git a/ruoyi-ui/src/views/cms/editor/index.vue b/ruoyi-ui/src/views/cms/editor/index.vue index 5964c7e..417fd76 100644 --- a/ruoyi-ui/src/views/cms/editor/index.vue +++ b/ruoyi-ui/src/views/cms/editor/index.vue @@ -265,10 +265,14 @@ export default { getLeavesCategoryList().then(response => { this.categoryList = response.data console.log(this.temp) + console.log('category', this.categoryList) + this.form.categoryId = this.$route.query.categoryId + '' + console.log('categoryId', this.form.categoryId) if (!!this.$route.query.categoryId){ + console.log('执行') let flag = false; this.categoryList.forEach(item => { - if (item.id === this.$route.query.categoryId) { + if (item.id == this.$route.query.categoryId) { this.form.categoryId = this.$route.query.categoryId.toString() flag = true; } @@ -276,6 +280,7 @@ export default { this.form.categoryId = "" } }) + console.log('最终的categoryId', this.form.categoryId) } }) }, diff --git a/ruoyi-ui/src/views/hit/school/index.vue b/ruoyi-ui/src/views/hit/school/index.vue new file mode 100644 index 0000000..779eda9 --- /dev/null +++ b/ruoyi-ui/src/views/hit/school/index.vue @@ -0,0 +1,392 @@ + + + diff --git a/ruoyi-ui/src/views/officialWebsite/Components/footer.vue b/ruoyi-ui/src/views/officialWebsite/Components/footer.vue index c5e7855..6970ef0 100644 --- a/ruoyi-ui/src/views/officialWebsite/Components/footer.vue +++ b/ruoyi-ui/src/views/officialWebsite/Components/footer.vue @@ -3,7 +3,7 @@