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 b06023d..98e7028 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 @@ -6,6 +6,9 @@ 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.domain.BusiReport; +import com.ruoyi.busi.query.BusiFeedbackQuery; +import com.ruoyi.busi.vo.BusiFeedbackVo; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -28,7 +31,7 @@ import com.ruoyi.common.core.page.TableDataInfo; /** * 意见反馈Controller - * + * * @author 朱春云 * @date 2025-03-17 */ @@ -44,12 +47,12 @@ public class BusiFeedbackController extends BaseController */ @PreAuthorize("@ss.hasPermi('busi:feedback:list')") @GetMapping("/list") - public AjaxResult list(BusiFeedback busiFeedback, - @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) + public AjaxResult list(BusiFeedbackQuery busiFeedback, + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - Page page = new Page<>(pageNum, pageSize); - IPage list = busiFeedbackService.queryListPage(busiFeedback,page); + Page page = new Page<>(pageNum, pageSize); + IPage list = busiFeedbackService.queryListPage(busiFeedback,page); return success(list); } @@ -109,4 +112,15 @@ public class BusiFeedbackController extends BaseController List list = new ArrayList<>(Arrays.asList(ids)); return toAjax(busiFeedbackService.removeByIds(list)); } + + /** + * 处理反馈记录 + */ + @PreAuthorize("@ss.hasPermi('busi:feedback:edit')") + @PostMapping("/dealFeedback") + public AjaxResult dealFeedback(@RequestBody BusiFeedback busiFeedback) + { + busiFeedbackService.dealFeedback(busiFeedback); + return success(); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeController.java index 22b4006..85705dd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeController.java @@ -144,8 +144,8 @@ public class BusiNoticeController extends BaseController * @author vinjor-M * @date 15:39 2025/3/25 * @param query 查询条件 - * @param pageNum TODO - * @param pageSize TODO + * @param pageNum TODO + * @param pageSize TODO * @return com.ruoyi.common.core.domain.AjaxResult **/ @GetMapping("/appList") 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 142c34a..589e14b 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 @@ -6,6 +6,8 @@ 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; +import com.ruoyi.busi.vo.BusiReportVo; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -28,7 +30,7 @@ import com.ruoyi.common.core.page.TableDataInfo; /** * 举报记录Controller - * + * * @author 朱春云 * @date 2025-03-17 */ @@ -44,12 +46,12 @@ public class BusiReportController extends BaseController */ @PreAuthorize("@ss.hasPermi('busi:report:list')") @GetMapping("/list") - public AjaxResult list(BusiReport busiReport, - @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) + public AjaxResult list(BusiReportQuery busiReport, + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - Page page = new Page<>(pageNum, pageSize); - IPage list = busiReportService.queryListPage(busiReport,page); + Page page = new Page<>(pageNum, pageSize); + IPage list = busiReportService.queryListPage(busiReport,page); return success(list); } @@ -87,6 +89,17 @@ public class BusiReportController extends BaseController return toAjax(busiReportService.save(busiReport)); } + /** + * 处理举报记录 + */ + @PreAuthorize("@ss.hasPermi('busi:report:edit')") + @PostMapping("/dealReport") + public AjaxResult dealReport(@RequestBody BusiReport busiReport) + { + busiReportService.dealReport(busiReport); + return success(); + } + /** * 修改举报记录 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNotice.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNotice.java index 3ba6663..dbdf5ef 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNotice.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNotice.java @@ -147,7 +147,7 @@ public class BusiNotice extends DlBaseEntity private Long approvalUserId; /** 审核时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd") private Date approvalTime; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiReport.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiReport.java index 650d170..d92d97b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiReport.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiReport.java @@ -11,7 +11,7 @@ import com.ruoyi.common.core.domain.DlBaseEntity; /** * 举报记录对象 dl_busi_report - * + * * @author 朱春云 * @date 2025-03-17 */ @@ -51,10 +51,6 @@ public class BusiReport extends DlBaseEntity /** 举报类型code(树形字典:dl_report_type) */ private String reportType; - /** 举报类型文本 */ - @Excel(name = "举报类型文本") - private String reportTitle; - /** 举报描述 */ private String content; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiFeedbackMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiFeedbackMapper.java index 1715d20..f19d1e7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiFeedbackMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiFeedbackMapper.java @@ -4,18 +4,20 @@ import java.util.List; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.busi.domain.BusiFeedback; +import com.ruoyi.busi.query.BusiFeedbackQuery; +import com.ruoyi.busi.vo.BusiFeedbackVo; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * 意见反馈Mapper接口 - * + * * @author 朱春云 * @date 2025-03-17 */ @Mapper public interface BusiFeedbackMapper extends BaseMapper { - IPage queryListPage(@Param("entity") BusiFeedback entity, Page page); + IPage queryListPage(@Param("entity") BusiFeedbackQuery entity, Page page); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiReportMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiReportMapper.java index 6cf966c..61c137f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiReportMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiReportMapper.java @@ -4,18 +4,20 @@ import java.util.List; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.busi.domain.BusiReport; +import com.ruoyi.busi.query.BusiReportQuery; +import com.ruoyi.busi.vo.BusiReportVo; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * 举报记录Mapper接口 - * + * * @author 朱春云 * @date 2025-03-17 */ @Mapper public interface BusiReportMapper extends BaseMapper { - IPage queryListPage(@Param("entity") BusiReport entity, Page page); + IPage queryListPage(@Param("entity") BusiReportQuery entity, Page page); } 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 new file mode 100644 index 0000000..252323b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiFeedbackQuery.java @@ -0,0 +1,11 @@ +package com.ruoyi.busi.query; + +import lombok.Data; + +@Data +public class BusiFeedbackQuery { + //用户姓名 + private String userNickName; + //反馈人姓名 + private String backUserNickName; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiReportQuery.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiReportQuery.java new file mode 100644 index 0000000..28007ce --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiReportQuery.java @@ -0,0 +1,17 @@ +package com.ruoyi.busi.query; + +import lombok.Data; + +@Data +public class BusiReportQuery { + //举报人姓名 + private String userNickName; + //被举报人姓名 + private String reportUserNickName; + //被举报通告标题 + private String reportNoticeTitle; + //举报类型文本 + private String reportTitle; + //处理人姓名 + private String dealUserName; +} 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 2d1792a..daf78a6 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 @@ -5,14 +5,18 @@ 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.busi.domain.BusiFeedback; +import com.ruoyi.busi.query.BusiFeedbackQuery; +import com.ruoyi.busi.vo.BusiFeedbackVo; /** * 意见反馈Service接口 - * + * * @author 朱春云 * @date 2025-03-17 */ public interface IBusiFeedbackService extends IService { - IPage queryListPage(BusiFeedback pageReqVO, Page page); + IPage queryListPage(BusiFeedbackQuery pageReqVO, Page page); + + void dealFeedback(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 22029b4..2b4efd4 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 @@ -5,14 +5,17 @@ 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.busi.domain.BusiReport; +import com.ruoyi.busi.query.BusiReportQuery; +import com.ruoyi.busi.vo.BusiReportVo; /** * 举报记录Service接口 - * + * * @author 朱春云 * @date 2025-03-17 */ public interface IBusiReportService extends IService { - IPage queryListPage(BusiReport pageReqVO, Page page); + IPage queryListPage(BusiReportQuery pageReqVO, Page page); + void dealReport(BusiReport busiReport); } 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 ffb4d0a..6df05f7 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 @@ -1,9 +1,13 @@ package com.ruoyi.busi.service.impl; import java.util.List; + +import com.ruoyi.busi.query.BusiFeedbackQuery; +import com.ruoyi.busi.vo.BusiFeedbackVo; import com.ruoyi.common.utils.DateUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -13,7 +17,7 @@ import com.ruoyi.busi.service.IBusiFeedbackService; /** * 意见反馈Service业务层处理 - * + * * @author 朱春云 * @date 2025-03-17 */ @@ -24,7 +28,18 @@ public class BusiFeedbackServiceImpl extends ServiceImpl queryListPage(BusiFeedback pageReqVO, Page page) { + public IPage queryListPage(BusiFeedbackQuery pageReqVO, Page page) { return busiFeedbackMapper.queryListPage(pageReqVO, page); } + + /** + * 处理反馈 + * @param busiFeedback + */ + @Override + public void dealFeedback(BusiFeedback busiFeedback) { + busiFeedback.setBackTime(DateUtils.getNowDate()); + busiFeedback.setBackUserId(SecurityUtils.getUserId()); + busiFeedbackMapper.updateById(busiFeedback); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java index 265d5da..f2cedd3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java @@ -70,6 +70,8 @@ public class BusiNoticeServiceImpl extends ServiceImpl list = this.list(queryWrapper); //无问题数据直接审核通过 data.setApprovalStatus("1"); + data.setApprovalUserId(null); + data.setApprovalTime(new Date()); //遍历 list的每条数据与data对比,如果两条数据相似度大于70% 提出预警 for (BusiNotice busiNotice : list) { double v1 = NoticeUtils.computeJaccardSimilarity(data.getTitle(), busiNotice.getTitle()); @@ -151,15 +153,30 @@ public class BusiNoticeServiceImpl extends ServiceImpl queryListPage(BusiReport pageReqVO, Page page) { + public IPage queryListPage(BusiReportQuery pageReqVO, Page page) { return busiReportMapper.queryListPage(pageReqVO, page); } + + /** + * 处理举报 + * @param busiReport 请求参数 + */ + @Override + public void dealReport(BusiReport busiReport) { + busiReport.setDealTime(DateUtils.getNowDate()); + busiReport.setDealUserId(SecurityUtils.getUserId()); + busiReportMapper.updateById(busiReport); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/utils/NoticeUtils.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/utils/NoticeUtils.java index fc62258..fc260b5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/utils/NoticeUtils.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/utils/NoticeUtils.java @@ -12,6 +12,12 @@ import java.util.stream.Collectors; @Component public class NoticeUtils { + /** + * 比较两个文本字符串的相似度 + * @param str1 文本1 + * @param str2 文本2 + * @return 相似度值,范围在0到1之间,值越大相似度越高 + */ public static double computeJaccardSimilarity(String str1, String str2) { Set set1 = Arrays.stream(str1.split("\\s+")) // 分词,这里按空格分割,可以根据需要调整正则表达式 .collect(Collectors.toSet()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiFeedbackVo.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiFeedbackVo.java new file mode 100644 index 0000000..f5944b2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiFeedbackVo.java @@ -0,0 +1,12 @@ +package com.ruoyi.busi.vo; + +import com.ruoyi.busi.domain.BusiFeedback; +import lombok.Data; + +@Data +public class BusiFeedbackVo extends BusiFeedback { + //用户姓名 + private String userNickName; + //反馈人姓名 + private String backUserNickName; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiNoticeVo.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiNoticeVo.java index 067a0b9..82e127b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiNoticeVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiNoticeVo.java @@ -25,4 +25,8 @@ public class BusiNoticeVo extends BusiNotice { private Integer reportNum; /**博主类型-text*/ private String bloggerTypesText; + /** + * 审核人姓名 + */ + private String approvalUserName; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiReportVo.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiReportVo.java new file mode 100644 index 0000000..8a56f4e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiReportVo.java @@ -0,0 +1,23 @@ +package com.ruoyi.busi.vo; + +import com.ruoyi.busi.domain.BusiReport; +import lombok.Data; + + +/** + * 举报记录视图对象 + */ +@Data +public class BusiReportVo extends BusiReport { + //举报人姓名 + private String userNickName; + //被举报人姓名 + private String reportUserNickName; + //被举报通告标题 + private String reportNoticeTitle; + //举报类型文本 + private String reportTitle; + //处理人姓名 + private String dealUserName; + +} diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiFeedbackMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiFeedbackMapper.xml index 882fb12..839ddd8 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiFeedbackMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiFeedbackMapper.xml @@ -3,35 +3,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - select id, user_id, user_type, content, images, back_content, back_images, back_time, back_user_id, creator, create_time, updater, update_time, del_flag from dl_busi_feedback - - + select main.id, main.user_id, main.user_type, main.content, main.images, main.back_content, + main.back_images, main.back_time, main.back_user_id, main.creator, main.create_time, main.updater, main.update_time, main.del_flag + , su1.nick_name as userNickName, su2.nick_name as backUserNickName + from dl_busi_feedback main + inner join sys_user su1 on main.user_id = su1.user_id and su1.del_flag = '0' + left join sys_user su2 on main.back_user_id = su2.user_id - and user_id like concat('%', #{entity.userId}, '%') - and user_type = #{entity.userType} - and back_user_id = #{entity.backUserId} - and create_time = #{entity.createTime} + main.del_flag = '0' + + and su1.nick_name like concat('%', #{entity.userNickName}, '%') + + + and su2.nick_name like concat('%', #{entity.backUserNickName}, '%') + + order by main.create_time asc - \ No newline at end of file + + diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml index 074e677..0df8c9f 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml @@ -5,18 +5,20 @@ - select main.id, main.user_id, main.title, main.platform_code, main.province, main.city, main.fee_down, main.fee_up, main.is_self_price, main.gift_detail, main.gift_price, main.end_date, main.brand, main.is_show_brand, main.need_num, main.fans_down, main.fans_up, main.is_eligible, main.pic, main.collect, main.detail, main.images, main.blogger_types, main.is_show_tel, main.wechat, main.tel, main.group_image, main.is_use_coupon, main.approval_status, main.approval_user_id, main.approval_time, main.approval_remark, main.creator, main.create_time, main.updater, main.update_time, main.del_flag, - uTable.nick_name as userNickName, + uTable.nick_name as userNickName,auditTable.nick_name as approvalUserName,ifnull(noticeView.view_num,0) as viewNum, bTable.title as platformName from dl_busi_notice main left join sys_user uTable on main.user_id = uTable.user_id + left join sys_user auditTable on main.approval_user_id = auditTable.user_id left join dl_base_category bTable on main.platform_code = bTable.code + left join dl_busi_notice_view noticeView on noticeView.id = main.id - main.del_flag = '0' + main.del_flag = '0' and main.approval_status != 8 and uTable.nick_name like concat('%', #{entity.userNickName}, '%') and main.province = #{entity.province} and main.city = #{entity.city} @@ -44,6 +46,7 @@ and main.approval_status = #{entity.approvalStatus} and main.create_time between #{entity.params.beginCreateTime} and #{entity.params.endCreateTime} + order by FIELD(main.approval_status,0,1,9,2) asc, main.create_time desc - + + - \ No newline at end of file +