From 6288e46e94d44936ce186ae30c91a9810aab65e5 Mon Sep 17 00:00:00 2001 From: Aug <17674666882@163.com> Date: Wed, 27 Aug 2025 19:23:34 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EducationCategoryServiceModuleController.java | 229 +++++++++++++ .../entity/EducationCategoryServiceModule.java | 67 ++++ .../EducationCategoryServiceModuleMapper.java | 22 ++ .../xml/EducationCategoryServiceModuleMapper.xml | 9 + .../IEducationCategoryServiceModuleService.java | 38 +++ .../EducationCategoryServiceModuleServiceImpl.java | 191 +++++++++++ .../vue/EducationCategoryServiceModuleList.vue | 360 +++++++++++++++++++++ .../EducationCategoryServiceModuleModal.vue | 159 +++++++++ .../vue3/EducationCategoryServiceModule.api.ts | 82 +++++ .../vue3/EducationCategoryServiceModule.data.ts | 51 +++ .../vue3/EducationCategoryServiceModuleList.vue | 272 ++++++++++++++++ .../EducationCategoryServiceModuleModal.vue | 87 +++++ .../EducationCategoryThesisController.java | 2 +- .../entity/EducationCategoryThesis.java | 6 +- .../mapper/EducationCategoryThesisMapper.java | 2 +- .../service/IEducationCategoryThesisService.java | 2 +- .../impl/EducationCategoryThesisServiceImpl.java | 2 +- .../vue/EducationCategoryThesisList.vue | 6 + .../vue/modules/EducationCategoryThesisModal.vue | 3 + .../vue3/EducationCategoryThesis.data.ts | 10 + .../EducationCategoryThesisTwoController.java | 2 +- .../entity/EducationCategoryThesisTwo.java | 6 +- .../mapper/EducationCategoryThesisTwoMapper.java | 2 +- .../IEducationCategoryThesisTwoService.java | 2 +- .../EducationCategoryThesisTwoServiceImpl.java | 2 +- .../vue/EducationCategoryThesisTwoList.vue | 6 + .../modules/EducationCategoryThesisTwoModal.vue | 3 + .../vue3/EducationCategoryThesisTwo.data.ts | 10 + .../EducationServiceArticleController.java | 171 ++++++++++ .../entity/EducationServiceArticle.java | 67 ++++ .../mapper/EducationServiceArticleMapper.java | 17 + .../mapper/xml/EducationServiceArticleMapper.xml | 5 + .../service/IEducationServiceArticleService.java | 14 + .../impl/EducationServiceArticleServiceImpl.java | 19 ++ .../vue/EducationServiceArticleList.vue | 191 +++++++++++ .../vue/modules/EducationServiceArticleForm.vue | 126 ++++++++ .../EducationServiceArticleModal.Style#Drawer.vue | 84 +++++ .../vue/modules/EducationServiceArticleModal.vue | 60 ++++ .../vue3/EducationServiceArticle.api.ts | 61 ++++ .../vue3/EducationServiceArticle.data.ts | 61 ++++ .../vue3/EducationServiceArticleList.vue | 162 ++++++++++ .../components/EducationServiceArticleModal.vue | 58 ++++ .../api/educationController/ConfigController.java | 7 + .../api/educationController/IndexController.java | 15 + .../jeecg/modules/api/service/ConfigService.java | 2 + .../jeecg/modules/api/service/IndexService.java | 7 + .../api/service/impl/ConfigServiceImpl.java | 54 +++- .../modules/api/service/impl/IndexServiceImpl.java | 74 +++++ 48 files changed, 2873 insertions(+), 15 deletions(-) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/controller/EducationCategoryServiceModuleController.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/entity/EducationCategoryServiceModule.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/EducationCategoryServiceModuleMapper.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/xml/EducationCategoryServiceModuleMapper.xml create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/IEducationCategoryServiceModuleService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/impl/EducationCategoryServiceModuleServiceImpl.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/EducationCategoryServiceModuleList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/modules/EducationCategoryServiceModuleModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.api.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.data.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModuleList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/components/EducationCategoryServiceModuleModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/controller/EducationServiceArticleController.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/entity/EducationServiceArticle.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/EducationServiceArticleMapper.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/xml/EducationServiceArticleMapper.xml create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/IEducationServiceArticleService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/impl/EducationServiceArticleServiceImpl.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/EducationServiceArticleList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleForm.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.Style#Drawer.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.api.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.data.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticleList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/components/EducationServiceArticleModal.vue diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/controller/EducationCategoryServiceModuleController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/controller/EducationCategoryServiceModuleController.java new file mode 100644 index 0000000..fc295c6 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/controller/EducationCategoryServiceModuleController.java @@ -0,0 +1,229 @@ +package org.jeecg.modules.educationCategoryServiceModule.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.educationCategoryServiceModule.entity.EducationCategoryServiceModule; +import org.jeecg.modules.educationCategoryServiceModule.service.IEducationCategoryServiceModuleService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 服务模块分类 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +@Api(tags="服务模块分类") +@RestController +@RequestMapping("/educationCategoryServiceModule/educationCategoryServiceModule") +@Slf4j +public class EducationCategoryServiceModuleController extends JeecgController{ + @Autowired + private IEducationCategoryServiceModuleService educationCategoryServiceModuleService; + + /** + * 分页列表查询 + * + * @param educationCategoryServiceModule + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "服务模块分类-分页列表查询") + @ApiOperation(value="服务模块分类-分页列表查询", notes="服务模块分类-分页列表查询") + @GetMapping(value = "/rootList") + public Result> queryPageList(EducationCategoryServiceModule educationCategoryServiceModule, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + String hasQuery = req.getParameter("hasQuery"); + if(hasQuery != null && "true".equals(hasQuery)){ + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(educationCategoryServiceModule, req.getParameterMap()); + List list = educationCategoryServiceModuleService.queryTreeListNoPage(queryWrapper); + IPage pageList = new Page<>(1, 10, list.size()); + pageList.setRecords(list); + return Result.OK(pageList); + }else{ + String parentId = educationCategoryServiceModule.getPid(); + if (oConvertUtils.isEmpty(parentId)) { + parentId = "0"; + } + educationCategoryServiceModule.setPid(null); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(educationCategoryServiceModule, req.getParameterMap()); + // 使用 eq 防止模糊查询 + queryWrapper.eq("pid", parentId); + Page page = new Page(pageNo, pageSize); + IPage pageList = educationCategoryServiceModuleService.page(page, queryWrapper); + return Result.OK(pageList); + } + } + + /** + * 获取子数据 + * @param educationCategoryServiceModule + * @param req + * @return + */ + //@AutoLog(value = "服务模块分类-获取子数据") + @ApiOperation(value="服务模块分类-获取子数据", notes="服务模块分类-获取子数据") + @GetMapping(value = "/childList") + public Result> queryPageList(EducationCategoryServiceModule educationCategoryServiceModule,HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(educationCategoryServiceModule, req.getParameterMap()); + List list = educationCategoryServiceModuleService.list(queryWrapper); + IPage pageList = new Page<>(1, 10, list.size()); + pageList.setRecords(list); + return Result.OK(pageList); + } + + /** + * 批量查询子节点 + * @param parentIds 父ID(多个采用半角逗号分割) + * @return 返回 IPage + * @param parentIds + * @return + */ + //@AutoLog(value = "服务模块分类-批量获取子数据") + @ApiOperation(value="服务模块分类-批量获取子数据", notes="服务模块分类-批量获取子数据") + @GetMapping("/getChildListBatch") + public Result getChildListBatch(@RequestParam("parentIds") String parentIds) { + try { + QueryWrapper queryWrapper = new QueryWrapper<>(); + List parentIdList = Arrays.asList(parentIds.split(",")); + queryWrapper.in("pid", parentIdList); + List list = educationCategoryServiceModuleService.list(queryWrapper); + IPage pageList = new Page<>(1, 10, list.size()); + pageList.setRecords(list); + return Result.OK(pageList); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.error("批量查询子节点失败:" + e.getMessage()); + } + } + + /** + * 添加 + * + * @param educationCategoryServiceModule + * @return + */ + @AutoLog(value = "服务模块分类-添加") + @ApiOperation(value="服务模块分类-添加", notes="服务模块分类-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody EducationCategoryServiceModule educationCategoryServiceModule) { + educationCategoryServiceModuleService.addEducationCategoryServiceModule(educationCategoryServiceModule); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param educationCategoryServiceModule + * @return + */ + @AutoLog(value = "服务模块分类-编辑") + @ApiOperation(value="服务模块分类-编辑", notes="服务模块分类-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody EducationCategoryServiceModule educationCategoryServiceModule) { + educationCategoryServiceModuleService.updateEducationCategoryServiceModule(educationCategoryServiceModule); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "服务模块分类-通过id删除") + @ApiOperation(value="服务模块分类-通过id删除", notes="服务模块分类-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + educationCategoryServiceModuleService.deleteEducationCategoryServiceModule(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "服务模块分类-批量删除") + @ApiOperation(value="服务模块分类-批量删除", notes="服务模块分类-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.educationCategoryServiceModuleService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "服务模块分类-通过id查询") + @ApiOperation(value="服务模块分类-通过id查询", notes="服务模块分类-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + EducationCategoryServiceModule educationCategoryServiceModule = educationCategoryServiceModuleService.getById(id); + if(educationCategoryServiceModule==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(educationCategoryServiceModule); + } + + /** + * 导出excel + * + * @param request + * @param educationCategoryServiceModule + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EducationCategoryServiceModule educationCategoryServiceModule) { + return super.exportXls(request, educationCategoryServiceModule, EducationCategoryServiceModule.class, "服务模块分类"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EducationCategoryServiceModule.class); + } + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/entity/EducationCategoryServiceModule.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/entity/EducationCategoryServiceModule.java new file mode 100644 index 0000000..5b3ce17 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/entity/EducationCategoryServiceModule.java @@ -0,0 +1,67 @@ +package org.jeecg.modules.educationCategoryServiceModule.entity; + +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.UnsupportedEncodingException; + +/** + * @Description: 服务模块分类 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +@Data +@TableName("education_category_service_module") +@ApiModel(value="education_category_service_module对象", description="服务模块分类") +public class EducationCategoryServiceModule implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**分类名称*/ + @Excel(name = "分类名称", width = 15) + @ApiModelProperty(value = "分类名称") + private java.lang.String title; + /**图标*/ + @Excel(name = "图标", width = 15) + @ApiModelProperty(value = "图标") + private java.lang.String image; + /**排序编号*/ + @Excel(name = "排序编号", width = 15) + @ApiModelProperty(value = "排序编号") + private java.lang.Integer orderNo; + /**父级节点*/ + @Excel(name = "父级节点", width = 15) + @ApiModelProperty(value = "父级节点") + private java.lang.String pid; + /**是否有子节点*/ + @Excel(name = "是否有子节点", width = 15, dicCode = "yn") + @Dict(dicCode = "yn") + @ApiModelProperty(value = "是否有子节点") + private java.lang.String hasChild; +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/EducationCategoryServiceModuleMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/EducationCategoryServiceModuleMapper.java new file mode 100644 index 0000000..9321f1b --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/EducationCategoryServiceModuleMapper.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.educationCategoryServiceModule.mapper; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.educationCategoryServiceModule.entity.EducationCategoryServiceModule; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 服务模块分类 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +public interface EducationCategoryServiceModuleMapper extends BaseMapper { + + /** + * 编辑节点状态 + * @param id + * @param status + */ + void updateTreeNodeStatus(@Param("id") String id,@Param("status") String status); + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/xml/EducationCategoryServiceModuleMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/xml/EducationCategoryServiceModuleMapper.xml new file mode 100644 index 0000000..1963fb8 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/mapper/xml/EducationCategoryServiceModuleMapper.xml @@ -0,0 +1,9 @@ + + + + + + update education_category_service_module set has_child = #{status} where id = #{id} + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/IEducationCategoryServiceModuleService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/IEducationCategoryServiceModuleService.java new file mode 100644 index 0000000..665bc86 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/IEducationCategoryServiceModuleService.java @@ -0,0 +1,38 @@ +package org.jeecg.modules.educationCategoryServiceModule.service; + +import org.jeecg.modules.educationCategoryServiceModule.entity.EducationCategoryServiceModule; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.exception.JeecgBootException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import java.util.List; + +/** + * @Description: 服务模块分类 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +public interface IEducationCategoryServiceModuleService extends IService { + + /**根节点父ID的值*/ + public static final String ROOT_PID_VALUE = "0"; + + /**树节点有子节点状态值*/ + public static final String HASCHILD = "1"; + + /**树节点无子节点状态值*/ + public static final String NOCHILD = "0"; + + /**新增节点*/ + void addEducationCategoryServiceModule(EducationCategoryServiceModule educationCategoryServiceModule); + + /**修改节点*/ + void updateEducationCategoryServiceModule(EducationCategoryServiceModule educationCategoryServiceModule) throws JeecgBootException; + + /**删除节点*/ + void deleteEducationCategoryServiceModule(String id) throws JeecgBootException; + + /**查询所有数据,无分页*/ + List queryTreeListNoPage(QueryWrapper queryWrapper); + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/impl/EducationCategoryServiceModuleServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/impl/EducationCategoryServiceModuleServiceImpl.java new file mode 100644 index 0000000..3d7a686 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/service/impl/EducationCategoryServiceModuleServiceImpl.java @@ -0,0 +1,191 @@ +package org.jeecg.modules.educationCategoryServiceModule.service.impl; + +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.educationCategoryServiceModule.entity.EducationCategoryServiceModule; +import org.jeecg.modules.educationCategoryServiceModule.mapper.EducationCategoryServiceModuleMapper; +import org.jeecg.modules.educationCategoryServiceModule.service.IEducationCategoryServiceModuleService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 服务模块分类 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +@Service +public class EducationCategoryServiceModuleServiceImpl extends ServiceImpl implements IEducationCategoryServiceModuleService { + + @Override + public void addEducationCategoryServiceModule(EducationCategoryServiceModule educationCategoryServiceModule) { + //新增时设置hasChild为0 + educationCategoryServiceModule.setHasChild(IEducationCategoryServiceModuleService.NOCHILD); + if(oConvertUtils.isEmpty(educationCategoryServiceModule.getPid())){ + educationCategoryServiceModule.setPid(IEducationCategoryServiceModuleService.ROOT_PID_VALUE); + }else{ + //如果当前节点父ID不为空 则设置父节点的hasChildren 为1 + EducationCategoryServiceModule parent = baseMapper.selectById(educationCategoryServiceModule.getPid()); + if(parent!=null && !"1".equals(parent.getHasChild())){ + parent.setHasChild("1"); + baseMapper.updateById(parent); + } + } + baseMapper.insert(educationCategoryServiceModule); + } + + @Override + public void updateEducationCategoryServiceModule(EducationCategoryServiceModule educationCategoryServiceModule) { + EducationCategoryServiceModule entity = this.getById(educationCategoryServiceModule.getId()); + if(entity==null) { + throw new JeecgBootException("未找到对应实体"); + } + String old_pid = entity.getPid(); + String new_pid = educationCategoryServiceModule.getPid(); + if(!old_pid.equals(new_pid)) { + updateOldParentNode(old_pid); + if(oConvertUtils.isEmpty(new_pid)){ + educationCategoryServiceModule.setPid(IEducationCategoryServiceModuleService.ROOT_PID_VALUE); + } + if(!IEducationCategoryServiceModuleService.ROOT_PID_VALUE.equals(educationCategoryServiceModule.getPid())) { + baseMapper.updateTreeNodeStatus(educationCategoryServiceModule.getPid(), IEducationCategoryServiceModuleService.HASCHILD); + } + } + baseMapper.updateById(educationCategoryServiceModule); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteEducationCategoryServiceModule(String id) throws JeecgBootException { + //查询选中节点下所有子节点一并删除 + id = this.queryTreeChildIds(id); + if(id.indexOf(",")>0) { + StringBuffer sb = new StringBuffer(); + String[] idArr = id.split(","); + for (String idVal : idArr) { + if(idVal != null){ + EducationCategoryServiceModule educationCategoryServiceModule = this.getById(idVal); + String pidVal = educationCategoryServiceModule.getPid(); + //查询此节点上一级是否还有其他子节点 + List dataList = baseMapper.selectList(new QueryWrapper().eq("pid", pidVal).notIn("id",Arrays.asList(idArr))); + if((dataList == null || dataList.size()==0) && !Arrays.asList(idArr).contains(pidVal) + && !sb.toString().contains(pidVal)){ + //如果当前节点原本有子节点 现在木有了,更新状态 + sb.append(pidVal).append(","); + } + } + } + //批量删除节点 + baseMapper.deleteBatchIds(Arrays.asList(idArr)); + //修改已无子节点的标识 + String[] pidArr = sb.toString().split(","); + for(String pid : pidArr){ + this.updateOldParentNode(pid); + } + }else{ + EducationCategoryServiceModule educationCategoryServiceModule = this.getById(id); + if(educationCategoryServiceModule==null) { + throw new JeecgBootException("未找到对应实体"); + } + updateOldParentNode(educationCategoryServiceModule.getPid()); + baseMapper.deleteById(id); + } + } + + @Override + public List queryTreeListNoPage(QueryWrapper queryWrapper) { + List dataList = baseMapper.selectList(queryWrapper); + List mapList = new ArrayList<>(); + for(EducationCategoryServiceModule data : dataList){ + String pidVal = data.getPid(); + //递归查询子节点的根节点 + if(pidVal != null && !"0".equals(pidVal)){ + EducationCategoryServiceModule rootVal = this.getTreeRoot(pidVal); + if(rootVal != null && !mapList.contains(rootVal)){ + mapList.add(rootVal); + } + }else{ + if(!mapList.contains(data)){ + mapList.add(data); + } + } + } + return mapList; + } + + /** + * 根据所传pid查询旧的父级节点的子节点并修改相应状态值 + * @param pid + */ + private void updateOldParentNode(String pid) { + if(!IEducationCategoryServiceModuleService.ROOT_PID_VALUE.equals(pid)) { + Integer count = Math.toIntExact(baseMapper.selectCount(new QueryWrapper().eq("pid", pid))); + if(count==null || count<=1) { + baseMapper.updateTreeNodeStatus(pid, IEducationCategoryServiceModuleService.NOCHILD); + } + } + } + + /** + * 递归查询节点的根节点 + * @param pidVal + * @return + */ + private EducationCategoryServiceModule getTreeRoot(String pidVal){ + EducationCategoryServiceModule data = baseMapper.selectById(pidVal); + if(data != null && !"0".equals(data.getPid())){ + return this.getTreeRoot(data.getPid()); + }else{ + return data; + } + } + + /** + * 根据id查询所有子节点id + * @param ids + * @return + */ + private String queryTreeChildIds(String ids) { + //获取id数组 + String[] idArr = ids.split(","); + StringBuffer sb = new StringBuffer(); + for (String pidVal : idArr) { + if(pidVal != null){ + if(!sb.toString().contains(pidVal)){ + if(sb.toString().length() > 0){ + sb.append(","); + } + sb.append(pidVal); + this.getTreeChildIds(pidVal,sb); + } + } + } + return sb.toString(); + } + + /** + * 递归查询所有子节点 + * @param pidVal + * @param sb + * @return + */ + private StringBuffer getTreeChildIds(String pidVal,StringBuffer sb){ + List dataList = baseMapper.selectList(new QueryWrapper().eq("pid", pidVal)); + if(dataList != null && dataList.size()>0){ + for(EducationCategoryServiceModule tree : dataList) { + if(!sb.toString().contains(tree.getId())){ + sb.append(",").append(tree.getId()); + } + this.getTreeChildIds(tree.getId(),sb); + } + } + return sb; + } + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/EducationCategoryServiceModuleList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/EducationCategoryServiceModuleList.vue new file mode 100644 index 0000000..683bbb2 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/EducationCategoryServiceModuleList.vue @@ -0,0 +1,360 @@ + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/modules/EducationCategoryServiceModuleModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/modules/EducationCategoryServiceModuleModal.vue new file mode 100644 index 0000000..161b151 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue/modules/EducationCategoryServiceModuleModal.vue @@ -0,0 +1,159 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.api.ts new file mode 100644 index 0000000..9762e11 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.api.ts @@ -0,0 +1,82 @@ +import {defHttp} from "/@/utils/http/axios"; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/educationCategoryServiceModule/educationCategoryServiceModule/rootList', + save='/educationCategoryServiceModule/educationCategoryServiceModule/add', + edit='/educationCategoryServiceModule/educationCategoryServiceModule/edit', + deleteEducationCategoryServiceModule = '/sys/educationCategoryServiceModule/delete', + deleteBatch = '/educationCategoryServiceModule/educationCategoryServiceModule/deleteBatch', + importExcel = '/educationCategoryServiceModule/educationCategoryServiceModule/importExcel', + exportXls = '/educationCategoryServiceModule/educationCategoryServiceModule/exportXls', + loadTreeData = '/educationCategoryServiceModule/educationCategoryServiceModule/loadTreeRoot', + getChildList = '/educationCategoryServiceModule/educationCategoryServiceModule/childList', + getChildListBatch = '/educationCategoryServiceModule/educationCategoryServiceModule/getChildListBatch', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + * @param params + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); +/** + * 删除 + */ +export const deleteEducationCategoryServiceModule = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteEducationCategoryServiceModule, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDeleteEducationCategoryServiceModule = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdateDict = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} +/** + * 查询全部树形节点数据 + * @param params + */ +export const loadTreeData = (params) => + defHttp.get({url: Api.loadTreeData,params}); +/** + * 查询子节点数据 + * @param params + */ +export const getChildList = (params) => + defHttp.get({url: Api.getChildList, params}); +/** + * 批量查询子节点数据 + * @param params + */ +export const getChildListBatch = (params) => + defHttp.get({url: Api.getChildListBatch, params},{isTransformResponse:false}); diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.data.ts new file mode 100644 index 0000000..cc0f573 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModule.data.ts @@ -0,0 +1,51 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '分类名称', + align:"center", + dataIndex: 'title' + }, + { + title: '图标', + align:"center", + dataIndex: 'image', + customRender:render.renderAvatar, + }, + { + title: '排序编号', + align:"center", + dataIndex: 'orderNo' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '分类名称', + field: 'title', + component: 'Input', + }, + { + label: '图标', + field: 'image', + component: 'JImageUpload', + componentProps:{ + }, + }, + { + label: '排序编号', + field: 'orderNo', + component: 'InputNumber', + }, + { + label: '父级节点', + field: 'pid', + component: 'Input', + }, +]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModuleList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModuleList.vue new file mode 100644 index 0000000..b78436e --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/EducationCategoryServiceModuleList.vue @@ -0,0 +1,272 @@ + + + + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/components/EducationCategoryServiceModuleModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/components/EducationCategoryServiceModuleModal.vue new file mode 100644 index 0000000..f7b24cf --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryServiceModule/vue3/components/EducationCategoryServiceModuleModal.vue @@ -0,0 +1,87 @@ + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/controller/EducationCategoryThesisController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/controller/EducationCategoryThesisController.java index 97b61fa..2540502 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/controller/EducationCategoryThesisController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/controller/EducationCategoryThesisController.java @@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 论文分类表 * @Author: jeecg-boot - * @Date: 2025-07-28 + * @Date: 2025-08-26 * @Version: V1.0 */ @Api(tags="论文分类表") diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/entity/EducationCategoryThesis.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/entity/EducationCategoryThesis.java index eeaa210..d3f1319 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/entity/EducationCategoryThesis.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/entity/EducationCategoryThesis.java @@ -18,7 +18,7 @@ import java.io.UnsupportedEncodingException; /** * @Description: 论文分类表 * @Author: jeecg-boot - * @Date: 2025-07-28 + * @Date: 2025-08-26 * @Version: V1.0 */ @Data @@ -51,6 +51,10 @@ public class EducationCategoryThesis implements Serializable { @Excel(name = "图标", width = 15) @ApiModelProperty(value = "图标") private java.lang.String image; + /**排序编号*/ + @Excel(name = "排序编号", width = 15) + @ApiModelProperty(value = "排序编号") + private java.lang.Integer orderNo; /**父级节点*/ @Excel(name = "父级节点", width = 15) @ApiModelProperty(value = "父级节点") diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/mapper/EducationCategoryThesisMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/mapper/EducationCategoryThesisMapper.java index 8323415..03970f6 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/mapper/EducationCategoryThesisMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/mapper/EducationCategoryThesisMapper.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 论文分类表 * @Author: jeecg-boot - * @Date: 2025-07-28 + * @Date: 2025-08-26 * @Version: V1.0 */ public interface EducationCategoryThesisMapper extends BaseMapper { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/IEducationCategoryThesisService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/IEducationCategoryThesisService.java index 9ee9dbf..878a4de 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/IEducationCategoryThesisService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/IEducationCategoryThesisService.java @@ -9,7 +9,7 @@ import java.util.List; /** * @Description: 论文分类表 * @Author: jeecg-boot - * @Date: 2025-07-28 + * @Date: 2025-08-26 * @Version: V1.0 */ public interface IEducationCategoryThesisService extends IService { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/impl/EducationCategoryThesisServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/impl/EducationCategoryThesisServiceImpl.java index ab8b0f9..5de91b4 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/impl/EducationCategoryThesisServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/service/impl/EducationCategoryThesisServiceImpl.java @@ -17,7 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 论文分类表 * @Author: jeecg-boot - * @Date: 2025-07-28 + * @Date: 2025-08-26 * @Version: V1.0 */ @Service diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/EducationCategoryThesisList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/EducationCategoryThesisList.vue index 8c036c8..07fd5e8 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/EducationCategoryThesisList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/EducationCategoryThesisList.vue @@ -121,6 +121,11 @@ dataIndex: 'image', scopedSlots: {customRender: 'imgSlot'} }, + { + title:'排序编号', + align:"left", + dataIndex: 'orderNo' + }, { title: '操作', dataIndex: 'action', @@ -343,6 +348,7 @@ let fieldList=[]; fieldList.push({type:'string',value:'title',text:'分类名称',dictCode:''}) fieldList.push({type:'Text',value:'image',text:'图标',dictCode:''}) + fieldList.push({type:'int',value:'orderNo',text:'排序编号',dictCode:''}) fieldList.push({type:'string',value:'pid',text:'父级节点',dictCode:''}) this.superFieldList = fieldList } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/modules/EducationCategoryThesisModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/modules/EducationCategoryThesisModal.vue index 7c46bf8..59a19d4 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/modules/EducationCategoryThesisModal.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesis/vue/modules/EducationCategoryThesisModal.vue @@ -16,6 +16,9 @@ + + + { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/IEducationCategoryThesisTwoService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/IEducationCategoryThesisTwoService.java index 9af2c06..58a7112 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/IEducationCategoryThesisTwoService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/IEducationCategoryThesisTwoService.java @@ -9,7 +9,7 @@ import java.util.List; /** * @Description: 论文分类表二 * @Author: jeecg-boot - * @Date: 2025-08-12 + * @Date: 2025-08-26 * @Version: V1.0 */ public interface IEducationCategoryThesisTwoService extends IService { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/impl/EducationCategoryThesisTwoServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/impl/EducationCategoryThesisTwoServiceImpl.java index f671c87..eb8b6e8 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/impl/EducationCategoryThesisTwoServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/service/impl/EducationCategoryThesisTwoServiceImpl.java @@ -17,7 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 论文分类表二 * @Author: jeecg-boot - * @Date: 2025-08-12 + * @Date: 2025-08-26 * @Version: V1.0 */ @Service diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/EducationCategoryThesisTwoList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/EducationCategoryThesisTwoList.vue index a22966b..d8d1ae2 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/EducationCategoryThesisTwoList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/EducationCategoryThesisTwoList.vue @@ -121,6 +121,11 @@ dataIndex: 'image', scopedSlots: {customRender: 'imgSlot'} }, + { + title:'排序编号', + align:"left", + dataIndex: 'orderNo' + }, { title: '操作', dataIndex: 'action', @@ -343,6 +348,7 @@ let fieldList=[]; fieldList.push({type:'Text',value:'title',text:'分类名称',dictCode:''}) fieldList.push({type:'Text',value:'image',text:'图标',dictCode:''}) + fieldList.push({type:'int',value:'orderNo',text:'排序编号',dictCode:''}) fieldList.push({type:'string',value:'pid',text:'父级节点',dictCode:''}) this.superFieldList = fieldList } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/modules/EducationCategoryThesisTwoModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/modules/EducationCategoryThesisTwoModal.vue index cba054b..6146d08 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/modules/EducationCategoryThesisTwoModal.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationCategoryThesisTwo/vue/modules/EducationCategoryThesisTwoModal.vue @@ -16,6 +16,9 @@ + + + { + @Autowired + private IEducationServiceArticleService educationServiceArticleService; + + /** + * 分页列表查询 + * + * @param educationServiceArticle + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "服务模块文章-分页列表查询") + @ApiOperation(value="服务模块文章-分页列表查询", notes="服务模块文章-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(EducationServiceArticle educationServiceArticle, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(educationServiceArticle, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = educationServiceArticleService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param educationServiceArticle + * @return + */ + @AutoLog(value = "服务模块文章-添加") + @ApiOperation(value="服务模块文章-添加", notes="服务模块文章-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody EducationServiceArticle educationServiceArticle) { + educationServiceArticleService.save(educationServiceArticle); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param educationServiceArticle + * @return + */ + @AutoLog(value = "服务模块文章-编辑") + @ApiOperation(value="服务模块文章-编辑", notes="服务模块文章-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody EducationServiceArticle educationServiceArticle) { + educationServiceArticleService.updateById(educationServiceArticle); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "服务模块文章-通过id删除") + @ApiOperation(value="服务模块文章-通过id删除", notes="服务模块文章-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + educationServiceArticleService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "服务模块文章-批量删除") + @ApiOperation(value="服务模块文章-批量删除", notes="服务模块文章-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.educationServiceArticleService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "服务模块文章-通过id查询") + @ApiOperation(value="服务模块文章-通过id查询", notes="服务模块文章-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + EducationServiceArticle educationServiceArticle = educationServiceArticleService.getById(id); + if(educationServiceArticle==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(educationServiceArticle); + } + + /** + * 导出excel + * + * @param request + * @param educationServiceArticle + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EducationServiceArticle educationServiceArticle) { + return super.exportXls(request, educationServiceArticle, EducationServiceArticle.class, "服务模块文章"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EducationServiceArticle.class); + } + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/entity/EducationServiceArticle.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/entity/EducationServiceArticle.java new file mode 100644 index 0000000..74e72da --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/entity/EducationServiceArticle.java @@ -0,0 +1,67 @@ +package org.jeecg.modules.educationServiceArticle.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 服务模块文章 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +@Data +@TableName("education_service_article") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="education_service_article对象", description="服务模块文章") +public class EducationServiceArticle implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private java.lang.String title; + /**封面*/ + @Excel(name = "封面", width = 15) + @ApiModelProperty(value = "封面") + private java.lang.String image; + /**详情*/ + @Excel(name = "详情", width = 15) + @ApiModelProperty(value = "详情") + private java.lang.String details; + /**关联分类id*/ + @Excel(name = "关联分类id", width = 15, dictTable = "education_category_service_module", dicText = "title", dicCode = "id") + @Dict(dictTable = "education_category_service_module", dicText = "title", dicCode = "id") + @ApiModelProperty(value = "关联分类id") + private java.lang.String categoryId; +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/EducationServiceArticleMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/EducationServiceArticleMapper.java new file mode 100644 index 0000000..ebd144e --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/EducationServiceArticleMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.educationServiceArticle.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.educationServiceArticle.entity.EducationServiceArticle; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 服务模块文章 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +public interface EducationServiceArticleMapper extends BaseMapper { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/xml/EducationServiceArticleMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/xml/EducationServiceArticleMapper.xml new file mode 100644 index 0000000..4c1b9d5 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/mapper/xml/EducationServiceArticleMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/IEducationServiceArticleService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/IEducationServiceArticleService.java new file mode 100644 index 0000000..10bd436 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/IEducationServiceArticleService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.educationServiceArticle.service; + +import org.jeecg.modules.educationServiceArticle.entity.EducationServiceArticle; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 服务模块文章 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +public interface IEducationServiceArticleService extends IService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/impl/EducationServiceArticleServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/impl/EducationServiceArticleServiceImpl.java new file mode 100644 index 0000000..d1e59dc --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/service/impl/EducationServiceArticleServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.educationServiceArticle.service.impl; + +import org.jeecg.modules.educationServiceArticle.entity.EducationServiceArticle; +import org.jeecg.modules.educationServiceArticle.mapper.EducationServiceArticleMapper; +import org.jeecg.modules.educationServiceArticle.service.IEducationServiceArticleService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 服务模块文章 + * @Author: jeecg-boot + * @Date: 2025-08-26 + * @Version: V1.0 + */ +@Service +public class EducationServiceArticleServiceImpl extends ServiceImpl implements IEducationServiceArticleService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/EducationServiceArticleList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/EducationServiceArticleList.vue new file mode 100644 index 0000000..13d29eb --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/EducationServiceArticleList.vue @@ -0,0 +1,191 @@ + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleForm.vue new file mode 100644 index 0000000..7889f5d --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleForm.vue @@ -0,0 +1,126 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.Style#Drawer.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.Style#Drawer.vue new file mode 100644 index 0000000..fcdada3 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.vue new file mode 100644 index 0000000..c8476ea --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue/modules/EducationServiceArticleModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.api.ts new file mode 100644 index 0000000..28b0d17 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/educationServiceArticle/educationServiceArticle/list', + save='/educationServiceArticle/educationServiceArticle/add', + edit='/educationServiceArticle/educationServiceArticle/edit', + deleteOne = '/educationServiceArticle/educationServiceArticle/delete', + deleteBatch = '/educationServiceArticle/educationServiceArticle/deleteBatch', + importExcel = '/educationServiceArticle/educationServiceArticle/importExcel', + exportXls = '/educationServiceArticle/educationServiceArticle/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.data.ts new file mode 100644 index 0000000..58d295e --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticle.data.ts @@ -0,0 +1,61 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '标题', + align:"center", + dataIndex: 'title' + }, + { + title: '封面', + align:"center", + dataIndex: 'image', + customRender:render.renderAvatar, + }, + { + title: '详情', + align:"center", + dataIndex: 'details', + slots: { customRender: 'htmlSlot' }, + }, + { + title: '关联分类id', + align:"center", + dataIndex: 'categoryId_dictText' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '标题', + field: 'title', + component: 'Input', + }, + { + label: '封面', + field: 'image', + component: 'JImageUpload', + componentProps:{ + }, + }, + { + label: '详情', + field: 'details', + component: 'JCodeEditor', //TODO String后缀暂未添加 + }, + { + label: '关联分类id', + field: 'categoryId', + component: 'JTreeSelect', + componentProps:{ + dict:"education_category_service_module,title,id", + pidValue:"0", + }, + }, +]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticleList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticleList.vue new file mode 100644 index 0000000..407c9a6 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/EducationServiceArticleList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/components/EducationServiceArticleModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/components/EducationServiceArticleModal.vue new file mode 100644 index 0000000..0ec7283 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/educationServiceArticle/vue3/components/EducationServiceArticleModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/ConfigController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/ConfigController.java index 5899e83..f5b380a 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/ConfigController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/ConfigController.java @@ -66,6 +66,13 @@ public class ConfigController { return configService.queryCategoryThesisTwoList(pid, pageBean); } + //获取服务模块分类列表 + @ApiOperation(value="系统配置-获取服务模块分类列表", notes="系统配置-获取服务模块分类列表") + @RequestMapping(value = "/queryCategoryServiceModuleList", method = {RequestMethod.GET}) + public Result queryCategoryServiceModuleList(String pid, PageBean pageBean){ + return configService.queryCategoryServiceModuleList(pid, pageBean); + } + //获取服务分类列表 @ApiOperation(value="系统配置-获取服务分类列表", notes="系统配置-获取服务分类列表") @RequestMapping(value = "/queryCategoryServiceList", method = {RequestMethod.GET}) diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/IndexController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/IndexController.java index 854c5f6..c4eebc8 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/IndexController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/educationController/IndexController.java @@ -8,6 +8,7 @@ import org.jeecg.modules.api.bean.PageBean; import org.jeecg.modules.api.service.IndexService; import org.jeecg.modules.educationArticle.entity.EducationArticle; import org.jeecg.modules.educationBanner.entity.EducationBanner; +import org.jeecg.modules.educationServiceArticle.entity.EducationServiceArticle; import org.jeecg.modules.educationThesis.entity.EducationThesis; import org.jeecg.modules.educationThesisTwo.entity.EducationThesisTwo; import org.springframework.web.bind.annotation.RequestMapping; @@ -76,4 +77,18 @@ public class IndexController { return indexService.queryAriticleById(articleId); } + //获取服务模块文章列表 + @ApiOperation(value="首页-获取服务模块文章列表", notes="首页-获取服务模块文章列表") + @RequestMapping(value = "/queryServiceArticleList", method = {RequestMethod.GET}) + public Result queryServiceArticleList(EducationServiceArticle educationServiceArticle, PageBean pageBean){ + return indexService.queryServiceArticleList(educationServiceArticle, pageBean); + } + + //获取服务模块文章详情 + @ApiOperation(value="首页-获取服务模块文章详情", notes="首页-获取服务模块文章详情") + @RequestMapping(value = "/queryServiceArticleById", method = {RequestMethod.GET}) + public Result queryServiceArticleById(String articleId){ + return indexService.queryServiceArticleById(articleId); + } + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java index adaeb82..ed68a16 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java @@ -20,6 +20,8 @@ public interface ConfigService { public Result queryCategoryThesisList(String pid, PageBean pageBean); //获取论文分类列表二 public Result queryCategoryThesisTwoList(String pid, PageBean pageBean); + //获取服务模块分类列表 + public Result queryCategoryServiceModuleList(String pid, PageBean pageBean); //获取服务分类列表 public Result queryCategoryServiceList(PageBean pageBean); //获取专业分类列表 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java index 2d7f2dd..67a02b0 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java @@ -5,6 +5,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.api.bean.PageBean; import org.jeecg.modules.educationArticle.entity.EducationArticle; import org.jeecg.modules.educationBanner.entity.EducationBanner; +import org.jeecg.modules.educationServiceArticle.entity.EducationServiceArticle; import org.jeecg.modules.educationThesis.entity.EducationThesis; import org.jeecg.modules.educationThesisTwo.entity.EducationThesisTwo; import org.springframework.web.bind.annotation.RequestMapping; @@ -33,4 +34,10 @@ public interface IndexService { //获取案例文章详情 public Result queryAriticleById(String articleId); + //获取案例文章列表 + public Result queryServiceArticleList(EducationServiceArticle educationServiceArticle, PageBean pageBean); + + //获取案例文章详情 + public Result queryServiceArticleById(String articleId); + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ConfigServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ConfigServiceImpl.java index 5ab9e10..fccbc91 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ConfigServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ConfigServiceImpl.java @@ -21,6 +21,8 @@ import org.jeecg.modules.educationCategoryPeriod.entity.EducationCategoryPeriod; import org.jeecg.modules.educationCategoryPeriod.service.IEducationCategoryPeriodService; import org.jeecg.modules.educationCategoryService.entity.EducationCategoryService; import org.jeecg.modules.educationCategoryService.service.IEducationCategoryServiceService; +import org.jeecg.modules.educationCategoryServiceModule.entity.EducationCategoryServiceModule; +import org.jeecg.modules.educationCategoryServiceModule.service.IEducationCategoryServiceModuleService; import org.jeecg.modules.educationCategoryThesis.entity.EducationCategoryThesis; import org.jeecg.modules.educationCategoryThesis.service.IEducationCategoryThesisService; import org.jeecg.modules.educationCategoryThesisTwo.entity.EducationCategoryThesisTwo; @@ -72,9 +74,12 @@ public class ConfigServiceImpl implements ConfigService { //论文分类信息一 @Resource private IEducationCategoryThesisService educationCategoryThesisService; - //论文分类信息一 + //论文分类信息二 @Resource private IEducationCategoryThesisTwoService educationCategoryThesisTwoService; + //服务模块分类信息 + @Resource + private IEducationCategoryServiceModuleService educationCategoryServiceModuleService; //服务分类信息 @Resource private IEducationCategoryServiceService educationCategoryServiceService; @@ -223,8 +228,8 @@ public class ConfigServiceImpl implements ConfigService { query.eq(EducationCategoryThesis::getPid, pid); } - //按照创建时间降序排列 - query.orderByDesc(EducationCategoryThesis::getCreateTime); + //按照排序编号升序排列 + query.orderByAsc(EducationCategoryThesis::getOrderNo); //获取论文分类列表信息 pageList = query.page(page); @@ -262,8 +267,8 @@ public class ConfigServiceImpl implements ConfigService { query.eq(EducationCategoryThesisTwo::getPid, pid); } - //按照创建时间降序排列 - query.orderByDesc(EducationCategoryThesisTwo::getCreateTime); + //按照排序编号升序排列 + query.orderByAsc(EducationCategoryThesisTwo::getOrderNo); //获取论文分类列表信息 pageList = query.page(page); @@ -277,6 +282,45 @@ public class ConfigServiceImpl implements ConfigService { } } + //获取服务模块分类列表 + @Override + public Result queryCategoryServiceModuleList(String pid, PageBean pageBean) { + log.info("开始查询服务模块分类列表"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = educationCategoryServiceModuleService + .lambdaQuery(); + + //组装查询条件 + if(StringUtils.isNotEmpty(pid)){ + query.eq(EducationCategoryServiceModule::getPid, pid); + } + + //按照排序编号升序排列 + query.orderByAsc(EducationCategoryServiceModule::getOrderNo); + + //获取服务模块分类列表信息 + pageList = query.page(page); + + log.info("服务模块分类列表查询结束"); + return Result.OK("服务模块分类列表", pageList); + }catch (Exception e){ + log.error("服务模块分类列表查询失败"); + e.printStackTrace(); + return Result.error("服务模块分类列表查询失败"); + } + } + //获取服务分类列表 @Override public Result queryCategoryServiceList(PageBean pageBean) { diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/IndexServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/IndexServiceImpl.java index a1d0277..8180bf8 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/IndexServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/IndexServiceImpl.java @@ -12,6 +12,8 @@ import org.jeecg.modules.educationArticle.entity.EducationArticle; import org.jeecg.modules.educationArticle.service.IEducationArticleService; import org.jeecg.modules.educationBanner.entity.EducationBanner; import org.jeecg.modules.educationBanner.service.IEducationBannerService; +import org.jeecg.modules.educationServiceArticle.entity.EducationServiceArticle; +import org.jeecg.modules.educationServiceArticle.service.IEducationServiceArticleService; import org.jeecg.modules.educationThesis.entity.*; import org.jeecg.modules.educationThesis.service.*; import org.jeecg.modules.educationThesisTwo.entity.EducationDocumentTwo; @@ -46,6 +48,9 @@ public class IndexServiceImpl implements IndexService { //案例文章信息 @Resource private IEducationArticleService educationArticleService; + //服务模块文章信息 + @Resource + private IEducationServiceArticleService educationServiceArticleService; //发表全流程辅导 @Resource private IEducationProcessService educationProcessService; @@ -404,4 +409,73 @@ public class IndexServiceImpl implements IndexService { return Result.error("案例文章信息查询失败"); } } + + //获取服务模块文章列表 + @Override + public Result queryServiceArticleList(EducationServiceArticle educationServiceArticle, PageBean pageBean) { + log.info("开始服务模块文章信息"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = educationServiceArticleService + .lambdaQuery(); + + //组装查询条件 + if(StringUtils.isNotBlank(educationServiceArticle.getTitle())){ + //标题 + query.like(EducationServiceArticle::getTitle, educationServiceArticle.getTitle()); + } + if(StringUtils.isNotBlank(educationServiceArticle.getCategoryId())){ + //分类 + query.eq(EducationServiceArticle::getCategoryId, educationServiceArticle.getCategoryId()); + } + + //按照创建时间降序排列 + query.orderByDesc(EducationServiceArticle::getCreateTime); + + //获取服务模块文章信息 + pageList = query.page(page); + + log.info("服务模块文章信息查询结束"); + return Result.OK("服务模块文章列表", pageList); + }catch (Exception e){ + log.info("服务模块文章信息列表查询失败"); + e.printStackTrace(); + return Result.error("服务模块文章列表查询失败"); + } + } + + //获取服务模块文章详情 + @Override + public Result queryServiceArticleById(String articleId) { + log.info("开始查询服务模块文章信息"); + //返回信息 + String massege = ""; + + try{ + //1、查询案例文章详情 + EducationServiceArticle one = educationServiceArticleService.getById(articleId); + if(null == one){ + log.info("服务模块文章不存在,请检查服务模块文章编号:{}", articleId); + return Result.OK("服务模块文章不存在,请检查服务模块文章编号:{}", articleId); + } + + //2、返回案例文章信息 + log.info("服务模块文章信息查询结束"); + return Result.OK("服务模块文章信息", one); + }catch (Exception e){ + log.info("服务模块文章信息查询失败"); + e.printStackTrace(); + return Result.error("服务模块文章信息查询失败"); + } + } }