From 96d4d77b10019cf578f8e084585c61d96db1b1c9 Mon Sep 17 00:00:00 2001 From: PQZ Date: Mon, 14 Apr 2025 17:01:58 +0800 Subject: [PATCH] 111 --- .../controller/BaseCategoryController.java | 13 ++++ .../ruoyi/base/mapper/BaseCategoryMapper.java | 8 ++- .../base/service/IBaseCategoryService.java | 10 +++ .../service/impl/BaseCategoryServiceImpl.java | 61 +++++++++++++++++++ .../com/ruoyi/base/vo/BaseCategoryVO.java | 21 +++++++ .../controller/BusiFeedbackController.java | 17 +++++- .../busi/controller/BusiReportController.java | 46 ++++++++------ .../ruoyi/busi/query/BusiFeedbackQuery.java | 2 + .../busi/service/IBusiFeedbackService.java | 8 +++ .../busi/service/IBusiReportService.java | 15 ++++- .../service/impl/BusiFeedbackServiceImpl.java | 14 +++++ .../service/impl/BusiReportServiceImpl.java | 34 +++++++++++ .../mapper/busi/BusiFeedbackMapper.xml | 3 + 13 files changed, 228 insertions(+), 24 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/base/vo/BaseCategoryVO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCategoryController.java index aadcf37..f30c115 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCategoryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCategoryController.java @@ -61,6 +61,19 @@ public class BaseCategoryController extends BaseController { return success(list); } + /** + * 查询分类树 + * + * @param code 分类编码 + * @return com.ruoyi.common.core.domain.AjaxResult + * @author PQZ + * @date 10:49 2025/4/14 + **/ + @GetMapping("/treeData") + public AjaxResult treeData(@RequestParam("code") String code) { + return success(baseCategoryService.treeData(code)); + } + /** * 导出分类树-各种分类属性结构列表 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCategoryMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCategoryMapper.java index b1de3e5..d08bef7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCategoryMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCategoryMapper.java @@ -1,21 +1,23 @@ package com.ruoyi.base.mapper; import java.util.List; + import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.base.domain.BaseCategory; +import com.ruoyi.base.vo.BaseCategoryVO; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * 分类树-各种分类属性结构Mapper接口 - * + * * @author vinjor-m * @date 2025-03-17 */ @Mapper -public interface BaseCategoryMapper extends BaseMapper -{ +public interface BaseCategoryMapper extends BaseMapper { IPage queryListPage(@Param("entity") BaseCategory entity, Page page); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCategoryService.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCategoryService.java index fd82149..918af65 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCategoryService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCategoryService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.base.domain.BaseCategory; +import com.ruoyi.base.vo.BaseCategoryVO; import com.ruoyi.member.vo.MemberUniVO; /** @@ -48,4 +49,13 @@ public interface IBaseCategoryService extends IService { * @date 14:43 2025/4/3 **/ List uniListByParentCode(String code, Integer isSystem); + + /** + * 通用查询分类树方法 + * @author PQZ + * @date 10:50 2025/4/14 + * @param code 分类code + * @return java.util.List + **/ + List treeData(String code); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCategoryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCategoryServiceImpl.java index 1ec4396..3c0b15f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCategoryServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCategoryServiceImpl.java @@ -1,9 +1,16 @@ package com.ruoyi.base.service.impl; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.base.domain.BaseCity; +import com.ruoyi.base.vo.BaseCategoryVO; +import com.ruoyi.base.vo.BaseCityVO; +import com.ruoyi.common.core.domain.DlBaseEntity; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -84,4 +91,58 @@ public class BaseCategoryServiceImpl extends ServiceImpl list = listByParentCode(code, isSystem); return list.stream().map(item -> new MemberUniVO(item.getCode(),item.getTitle())).collect(Collectors.toList()); } + + /** + * 通用查询分类树方法 + * + * @param code 分类code + * @return java.util.List + * @author PQZ + * @date 10:50 2025/4/14 + **/ + @Override + public List treeData(String code) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DlBaseEntity::getDelFlag,0); + List list = list(lambdaQueryWrapper); + List treeData = buildCategoryTree(list); + List result = treeData.stream() + .filter(node -> code.equals(node.getValue())) + .findFirst() + .map(BaseCategoryVO::getChildren) + .orElseGet(ArrayList::new); + return result; + } + /** + * 生成树结构 + * + * @param list List + * @return java.util.List + * @author PQZ + * @date 9:44 2025/4/3 + **/ + private List buildCategoryTree(List list) { + List tree = new ArrayList<>(); + //创建一个Map来存储每个分类及子集 + Map categoryMap = new HashMap<>(); + for (BaseCategory category : list) { + categoryMap.put(category.getId(), new BaseCategoryVO(category.getCode(), category.getTitle())); + } + //组装类型VO列表 + for (BaseCategory category : list) { + BaseCategoryVO categoryVO = categoryMap.get(category.getId()); + if ("0".equals(category.getPid())) { + //跟类型添加到列表 + tree.add(categoryVO); + } else { + //非根类型添加到其父亲的孩子中 + BaseCategoryVO parentCategoryVO = categoryMap.get(category.getPid()); + if (parentCategoryVO != null) { + parentCategoryVO.getChildren().add(categoryVO); + } + } + } + return tree; + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/vo/BaseCategoryVO.java b/ruoyi-admin/src/main/java/com/ruoyi/base/vo/BaseCategoryVO.java new file mode 100644 index 0000000..5e67c4d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/vo/BaseCategoryVO.java @@ -0,0 +1,21 @@ +package com.ruoyi.base.vo; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Data +@NoArgsConstructor +public class BaseCategoryVO { + String text; + String value; + List children; + + public BaseCategoryVO(String value, String text) { + this.text = text; + this.value = value; + this.children = new ArrayList<>(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiFeedbackController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiFeedbackController.java index 98e7028..21d02e9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiFeedbackController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiFeedbackController.java @@ -45,7 +45,6 @@ public class BusiFeedbackController extends BaseController /** * 查询意见反馈列表 */ - @PreAuthorize("@ss.hasPermi('busi:feedback:list')") @GetMapping("/list") public AjaxResult list(BusiFeedbackQuery busiFeedback, @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, @@ -79,6 +78,22 @@ public class BusiFeedbackController extends BaseController return success(busiFeedbackService.getById(id)); } + + /** + * 新增意见反馈 + * + * @param busiFeedback {@link BusiFeedback} + * @return com.ruoyi.common.core.domain.AjaxResult + * @author PQZ + * @date 14:34 2025/4/14 + **/ + @PostMapping("/uniAddFeedBack") + public AjaxResult uniAddFeedback(@RequestBody BusiFeedback busiFeedback) { + busiFeedbackService.uniAddFeedBack(busiFeedback); + return success(); + } + + /** * 新增意见反馈 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiReportController.java index 589e14b..2cd1816 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiReportController.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.servlet.http.HttpServletResponse; + import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.busi.query.BusiReportQuery; @@ -36,8 +37,7 @@ import com.ruoyi.common.core.page.TableDataInfo; */ @RestController @RequestMapping("/busi/report") -public class BusiReportController extends BaseController -{ +public class BusiReportController extends BaseController { @Autowired private IBusiReportService busiReportService; @@ -48,10 +48,9 @@ public class BusiReportController extends BaseController @GetMapping("/list") public AjaxResult list(BusiReportQuery busiReport, @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) - { + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page<>(pageNum, pageSize); - IPage list = busiReportService.queryListPage(busiReport,page); + IPage list = busiReportService.queryListPage(busiReport, page); return success(list); } @@ -61,8 +60,7 @@ public class BusiReportController extends BaseController @PreAuthorize("@ss.hasPermi('busi:report:export')") @Log(title = "举报记录", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, BusiReport busiReport) - { + public void export(HttpServletResponse response, BusiReport busiReport) { List list = busiReportService.list(); ExcelUtil util = new ExcelUtil(BusiReport.class); util.exportExcel(response, list, "举报记录数据"); @@ -73,19 +71,34 @@ public class BusiReportController extends BaseController */ @PreAuthorize("@ss.hasPermi('busi:report:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") String id) - { + public AjaxResult getInfo(@PathVariable("id") String id) { return success(busiReportService.getById(id)); } + + /** + * 博主举报通告主 + * + * @param busiReport {@link BusiReport} + * @return com.ruoyi.common.core.domain.AjaxResult + * @author PQZ + * @date 14:07 2025/4/14 + **/ + @Log(title = "博主举报通告主", businessType = BusinessType.INSERT) + @PostMapping("/saveReport") + public AjaxResult saveReport(@RequestBody BusiReport busiReport) { + busiReportService.saveReport(busiReport); + return success(); + } + + /** * 新增举报记录 */ @PreAuthorize("@ss.hasPermi('busi:report:add')") @Log(title = "举报记录", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody BusiReport busiReport) - { + public AjaxResult add(@RequestBody BusiReport busiReport) { return toAjax(busiReportService.save(busiReport)); } @@ -94,8 +107,7 @@ public class BusiReportController extends BaseController */ @PreAuthorize("@ss.hasPermi('busi:report:edit')") @PostMapping("/dealReport") - public AjaxResult dealReport(@RequestBody BusiReport busiReport) - { + public AjaxResult dealReport(@RequestBody BusiReport busiReport) { busiReportService.dealReport(busiReport); return success(); } @@ -106,8 +118,7 @@ public class BusiReportController extends BaseController @PreAuthorize("@ss.hasPermi('busi:report:edit')") @Log(title = "举报记录", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody BusiReport busiReport) - { + public AjaxResult edit(@RequestBody BusiReport busiReport) { return toAjax(busiReportService.updateById(busiReport)); } @@ -116,9 +127,8 @@ public class BusiReportController extends BaseController */ @PreAuthorize("@ss.hasPermi('busi:report:remove')") @Log(title = "举报记录", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable String[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { List list = new ArrayList<>(Arrays.asList(ids)); return toAjax(busiReportService.removeByIds(list)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiFeedbackQuery.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiFeedbackQuery.java index 252323b..a991368 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiFeedbackQuery.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiFeedbackQuery.java @@ -8,4 +8,6 @@ public class BusiFeedbackQuery { private String userNickName; //反馈人姓名 private String backUserNickName; + //用户id + private Long userId; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiFeedbackService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiFeedbackService.java index daf78a6..7a7ce0a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiFeedbackService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiFeedbackService.java @@ -19,4 +19,12 @@ public interface IBusiFeedbackService extends IService IPage queryListPage(BusiFeedbackQuery pageReqVO, Page page); void dealFeedback(BusiFeedback busiFeedback); + + /** + * 新增意见反馈 + * @author PQZ + * @date 14:35 2025/4/14 + * @param busiFeedback {@link BusiFeedback} + **/ + void uniAddFeedBack(BusiFeedback busiFeedback); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiReportService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiReportService.java index 2b4efd4..5cbcf73 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiReportService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiReportService.java @@ -1,6 +1,7 @@ package com.ruoyi.busi.service; import java.util.List; + import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -14,8 +15,18 @@ import com.ruoyi.busi.vo.BusiReportVo; * @author 朱春云 * @date 2025-03-17 */ -public interface IBusiReportService extends IService -{ +public interface IBusiReportService extends IService { IPage queryListPage(BusiReportQuery pageReqVO, Page page); + void dealReport(BusiReport busiReport); + + /** + * 博主举报通告主 + * + * @param report {@link BusiReport} + * @return void + * @author PQZ + * @date 14:00 2025/4/14 + **/ + void saveReport(BusiReport report); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiFeedbackServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiFeedbackServiceImpl.java index 6df05f7..2e134c2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiFeedbackServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiFeedbackServiceImpl.java @@ -42,4 +42,18 @@ public class BusiFeedbackServiceImpl extends ServiceImpl queryListPage(BusiReportQuery pageReqVO, Page page) { @@ -42,4 +52,28 @@ public class BusiReportServiceImpl extends ServiceImpl main.del_flag = '0' + + and main.user_id = #{entity.userId} + and su1.nick_name like concat('%', #{entity.userNickName}, '%')