From 5277db0d5c78d2a8e9b7e3080eaa644306a6f9ed Mon Sep 17 00:00:00 2001 From: 13405411873 <1994398261@qq.com> Date: Fri, 28 Mar 2025 18:59:14 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=80=9A=E5=91=8A=E3=80=81=E6=84=8F?= =?UTF-8?q?=E8=A7=81=E5=8F=8D=E9=A6=88=E3=80=81=E4=B8=BE=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BusiFeedbackController.java | 26 +++++++-- .../busi/controller/BusiNoticeController.java | 4 +- .../busi/controller/BusiReportController.java | 25 ++++++-- .../com/ruoyi/busi/domain/BusiNotice.java | 2 +- .../com/ruoyi/busi/domain/BusiReport.java | 6 +- .../ruoyi/busi/mapper/BusiFeedbackMapper.java | 6 +- .../ruoyi/busi/mapper/BusiReportMapper.java | 6 +- .../ruoyi/busi/query/BusiFeedbackQuery.java | 11 ++++ .../com/ruoyi/busi/query/BusiReportQuery.java | 17 ++++++ .../busi/service/IBusiFeedbackService.java | 8 ++- .../busi/service/IBusiReportService.java | 7 ++- .../service/impl/BusiFeedbackServiceImpl.java | 19 ++++++- .../service/impl/BusiNoticeServiceImpl.java | 23 +++++++- .../service/impl/BusiReportServiceImpl.java | 19 ++++++- .../com/ruoyi/busi/utils/NoticeUtils.java | 6 ++ .../com/ruoyi/busi/vo/BusiFeedbackVo.java | 12 ++++ .../java/com/ruoyi/busi/vo/BusiNoticeVo.java | 4 ++ .../java/com/ruoyi/busi/vo/BusiReportVo.java | 23 ++++++++ .../mapper/busi/BusiFeedbackMapper.xml | 44 ++++++-------- .../mapper/busi/BusiNoticeMapper.xml | 9 ++- .../mapper/busi/BusiReportMapper.xml | 57 ++++++++----------- 21 files changed, 237 insertions(+), 97 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiFeedbackQuery.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/query/BusiReportQuery.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiFeedbackVo.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/vo/BusiReportVo.java 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<BusiFeedback> page = new Page<>(pageNum, pageSize); - IPage<BusiFeedback> list = busiFeedbackService.queryListPage(busiFeedback,page); + Page<BusiFeedbackVo> page = new Page<>(pageNum, pageSize); + IPage<BusiFeedbackVo> list = busiFeedbackService.queryListPage(busiFeedback,page); return success(list); } @@ -109,4 +112,15 @@ public class BusiFeedbackController extends BaseController List<String> 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<BusiReport> page = new Page<>(pageNum, pageSize); - IPage<BusiReport> list = busiReportService.queryListPage(busiReport,page); + Page<BusiReportVo> page = new Page<>(pageNum, pageSize); + IPage<BusiReportVo> 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<BusiFeedback> { - IPage<BusiFeedback> queryListPage(@Param("entity") BusiFeedback entity, Page<BusiFeedback> page); + IPage<BusiFeedbackVo> queryListPage(@Param("entity") BusiFeedbackQuery entity, Page<BusiFeedbackVo> 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<BusiReport> { - IPage<BusiReport> queryListPage(@Param("entity") BusiReport entity, Page<BusiReport> page); + IPage<BusiReportVo> queryListPage(@Param("entity") BusiReportQuery entity, Page<BusiReportVo> 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<BusiFeedback> { - IPage<BusiFeedback> queryListPage(BusiFeedback pageReqVO, Page<BusiFeedback> page); + IPage<BusiFeedbackVo> queryListPage(BusiFeedbackQuery pageReqVO, Page<BusiFeedbackVo> 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<BusiReport> { - IPage<BusiReport> queryListPage(BusiReport pageReqVO, Page<BusiReport> page); + IPage<BusiReportVo> queryListPage(BusiReportQuery pageReqVO, Page<BusiReportVo> 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<BusiFeedbackMapper,Busi private BusiFeedbackMapper busiFeedbackMapper; @Override - public IPage<BusiFeedback> queryListPage(BusiFeedback pageReqVO, Page<BusiFeedback> page) { + public IPage<BusiFeedbackVo> queryListPage(BusiFeedbackQuery pageReqVO, Page<BusiFeedbackVo> 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<BusiNoticeMapper,BusiNoti List<BusiNotice> 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<BusiNoticeMapper,BusiNoti } }else { - //如果是下架 回归草稿状态 - data.setApprovalStatus("8"); + //如果是关闭 关闭状态 + data.setApprovalStatus("2"); } this.updateById(data); } + /** + * 审核接口 + * @param query 审核参数 + */ + @Override public void auditInfo(BusiNoticeQuery query) { - + BusiNotice busiNotice = this.getById(query.getId()); + //1代表审核通过 + if (query.getApprovalStatus().equals("1")){ + busiNotice.setApprovalStatus("1"); + }else { + busiNotice.setApprovalStatus("9"); + } + busiNotice.setApprovalUserId(SecurityUtils.getUserId()); + busiNotice.setApprovalTime(new Date()); + busiNotice.setApprovalRemark(query.getApprovalRemark()); + this.updateById(busiNotice); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiReportServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiReportServiceImpl.java index 9d7c2c6..3676d41 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiReportServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiReportServiceImpl.java @@ -1,9 +1,13 @@ package com.ruoyi.busi.service.impl; import java.util.List; + +import com.ruoyi.busi.query.BusiReportQuery; +import com.ruoyi.busi.vo.BusiReportVo; 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.IBusiReportService; /** * 举报记录Service业务层处理 - * + * * @author 朱春云 * @date 2025-03-17 */ @@ -24,7 +28,18 @@ public class BusiReportServiceImpl extends ServiceImpl<BusiReportMapper,BusiRepo private BusiReportMapper busiReportMapper; @Override - public IPage<BusiReport> queryListPage(BusiReport pageReqVO, Page<BusiReport> page) { + public IPage<BusiReportVo> queryListPage(BusiReportQuery pageReqVO, Page<BusiReportVo> 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<String> 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"> <mapper namespace="com.ruoyi.busi.mapper.BusiFeedbackMapper"> - - <resultMap type="BusiFeedback" id="BusiFeedbackResult"> - <result property="id" column="id" /> - <result property="userId" column="user_id" /> - <result property="userType" column="user_type" /> - <result property="content" column="content" /> - <result property="images" column="images" /> - <result property="backContent" column="back_content" /> - <result property="backImages" column="back_images" /> - <result property="backTime" column="back_time" /> - <result property="backUserId" column="back_user_id" /> - <result property="creator" column="creator" /> - <result property="createTime" column="create_time" /> - <result property="updater" column="updater" /> - <result property="updateTime" column="update_time" /> - <result property="delFlag" column="del_flag" /> - </resultMap> - <sql id="selectBusiFeedbackVo"> - 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 - </sql> - <select id="queryListPage" parameterType="BusiFeedback" resultMap="BusiFeedbackResult"> - <include refid="selectBusiFeedbackVo"/> + <select id="queryListPage" resultType="com.ruoyi.busi.vo.BusiFeedbackVo"> + 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 <where> - <if test="entity.userId != null "> and user_id like concat('%', #{entity.userId}, '%')</if> - <if test="entity.userType != null and entity.userType != ''"> and user_type = #{entity.userType}</if> - <if test="entity.backUserId != null "> and back_user_id = #{entity.backUserId}</if> - <if test="entity.createTime != null "> and create_time = #{entity.createTime}</if> + main.del_flag = '0' + <if test="entity.userNickName != null and entity.userNickName != '' "> + and su1.nick_name like concat('%', #{entity.userNickName}, '%') + </if> + <if test="entity.backUserNickName != null and entity.backUserNickName != ''"> + and su2.nick_name like concat('%', #{entity.backUserNickName}, '%') + </if> </where> + order by main.create_time asc </select> -</mapper> \ No newline at end of file + +</mapper> 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 @@ <mapper namespace="com.ruoyi.busi.mapper.BusiNoticeMapper"> - <select id="queryListPage" parameterType="BusiNotice" resultType="com.ruoyi.busi.vo.BusiNoticeVo"> + <select id="queryListPage" resultType="com.ruoyi.busi.vo.BusiNoticeVo"> 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 <where> - main.del_flag = '0' + main.del_flag = '0' and main.approval_status != 8 <if test="entity.userNickName != null "> and uTable.nick_name like concat('%', #{entity.userNickName}, '%')</if> <if test="entity.province != null "> and main.province = #{entity.province}</if> <if test="entity.city != null "> and main.city = #{entity.city}</if> @@ -44,6 +46,7 @@ <if test="entity.approvalStatus != null and entity.approvalStatus != ''"> and main.approval_status = #{entity.approvalStatus}</if> <if test="entity.params.beginCreateTime != null and entity.params.beginCreateTime != '' and entity.params.endCreateTime != null and entity.params.endCreateTime != ''"> and main.create_time between #{entity.params.beginCreateTime} and #{entity.params.endCreateTime}</if> </where> + order by FIELD(main.approval_status,0,1,9,2) asc, main.create_time desc </select> <select id="queryListByUserId" resultType="com.ruoyi.busi.vo.BusiNoticeVo"> SELECT diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiReportMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiReportMapper.xml index 0370065..b2d929a 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiReportMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiReportMapper.xml @@ -3,40 +3,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.busi.mapper.BusiReportMapper"> - - <resultMap type="BusiReport" id="BusiReportResult"> - <result property="id" column="id" /> - <result property="userId" column="user_id" /> - <result property="userType" column="user_type" /> - <result property="reportUserId" column="report_user_id" /> - <result property="reportUserType" column="report_user_type" /> - <result property="reportNoticeId" column="report_notice_id" /> - <result property="reportType" column="report_type" /> - <result property="reportTitle" column="report_title" /> - <result property="content" column="content" /> - <result property="images" column="images" /> - <result property="dealUserId" column="deal_user_id" /> - <result property="dealResult" column="deal_result" /> - <result property="dealTime" column="deal_time" /> - <result property="creator" column="creator" /> - <result property="createTime" column="create_time" /> - <result property="updater" column="updater" /> - <result property="updateTime" column="update_time" /> - <result property="delFlag" column="del_flag" /> - </resultMap> - <sql id="selectBusiReportVo"> - select id, user_id, user_type, report_user_id, report_user_type, report_notice_id, report_type, report_title, content, images, deal_user_id, deal_result, deal_time, creator, create_time, updater, update_time, del_flag from dl_busi_report - </sql> - <select id="queryListPage" parameterType="BusiReport" resultMap="BusiReportResult"> - <include refid="selectBusiReportVo"/> + + <select id="queryListPage" resultType="com.ruoyi.busi.vo.BusiReportVo"> + select main.id, main.user_id, main.user_type, main.report_user_id, main.report_user_type, + main.report_notice_id, main.report_type, main.content, main.images, + main.deal_user_id, main.deal_result, main.deal_time, main.creator, main.create_time, + su1.nick_name as userNickName,su2.nick_name as reportUserNickName,su3.nick_name as dealUserName, + notice.title as reportNoticeTitle, bTable.title as reportTitle + from dl_busi_report main + inner join sys_user su1 on main.user_id = su1.user_id and su1.del_flag = '0' + inner join sys_user su2 on main.report_user_id = su2.user_id and su2.del_flag = '0' + left join sys_user su3 on main.deal_user_id = su3.user_id + left join dl_busi_notice notice on main.report_notice_id = notice.id + left join dl_base_category bTable on main.report_type = bTable.code <where> - <if test="entity.userId != null "> and user_id like concat('%', #{entity.userId}, '%')</if> - <if test="entity.reportUserId != null "> and report_user_id like concat('%', #{entity.reportUserId}, '%')</if> - <if test="entity.reportNoticeId != null and entity.reportNoticeId != ''"> and report_notice_id like concat('%', #{entity.reportNoticeId}, '%')</if> - <if test="entity.reportTitle != null and entity.reportTitle != ''"> and report_title = #{entity.reportTitle}</if> - <if test="entity.dealUserId != null "> and deal_user_id = #{entity.dealUserId}</if> + main.del_flag = '0' + <if test="entity.reportUserNickName != null and entity.reportUserNickName != '' "> + and su2.nick_name like concat('%', #{entity.reportUserNickName}, '%') + </if> + <if test="entity.reportNoticeTitle != null and entity.reportNoticeTitle != '' "> + and notice.title like concat('%', #{entity.reportNoticeTitle}, '%') + </if> + <if test="entity.dealUserName != null and entity.dealUserName != ''"> + and su3.nick_name like concat('%', #{entity.dealUserName}, '%') + </if> </where> + order by main.create_time asc </select> -</mapper> \ No newline at end of file +</mapper> From abb04343603a2f6ff3090061be91a898abe90c79 Mon Sep 17 00:00:00 2001 From: 13405411873 <1994398261@qq.com> Date: Sat, 29 Mar 2025 11:10:32 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=80=9A=E5=91=8A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/controller/BusiNoticeController.java | 17 +++ .../controller/BusiUserLoveController.java | 112 ++++++++++++++++++ .../com/ruoyi/busi/domain/BusiUserLove.java | 39 ++++++ .../ruoyi/busi/mapper/BusiNoticeMapper.java | 12 +- .../ruoyi/busi/mapper/BusiUserLoveMapper.java | 21 ++++ .../busi/service/IBusiNoticeService.java | 16 ++- .../busi/service/IBusiUserLoveService.java | 18 +++ .../service/impl/BusiNoticeServiceImpl.java | 74 ++++++++++++ .../service/impl/BusiUserLoveServiceImpl.java | 30 +++++ .../mapper/busi/BusiNoticeMapper.xml | 14 +++ .../mapper/busi/BusiUserLoveMapper.xml | 26 ++++ 11 files changed, 374 insertions(+), 5 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiUserLoveController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiUserLove.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiUserLoveMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiUserLoveService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiUserLoveServiceImpl.java create mode 100644 ruoyi-admin/src/main/resources/mapper/busi/BusiUserLoveMapper.xml 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 85705dd..f68588a 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 @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.busi.query.AppNoticeQuery; @@ -159,4 +161,19 @@ public class BusiNoticeController extends BaseController return success(list); } + /** + * 小程序端查询通告详细信息 + * @author 朱春云 + * @date 15:39 2025/3/29 + * @param noticeId 通告id + * @return com.ruoyi.common.core.domain.AjaxResult + **/ + @GetMapping("/appGetDetail") + @Anonymous + public AjaxResult appGetDetail(@RequestParam(name = "noticeId") String noticeId) + { + JSONObject detail = busiNoticeService.appGetDetail(noticeId); + return success(detail); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiUserLoveController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiUserLoveController.java new file mode 100644 index 0000000..c634068 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiUserLoveController.java @@ -0,0 +1,112 @@ +package com.ruoyi.busi.controller; + +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 org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.busi.domain.BusiUserLove; +import com.ruoyi.busi.service.IBusiUserLoveService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 用户关注Controller + * + * @author 朱春云 + * @date 2025-03-29 + */ +@RestController +@RequestMapping("/busi/love") +public class BusiUserLoveController extends BaseController +{ + @Autowired + private IBusiUserLoveService busiUserLoveService; + + /** + * 查询用户关注列表 + */ + @PreAuthorize("@ss.hasPermi('busi:love:list')") + @GetMapping("/list") + public AjaxResult list(BusiUserLove busiUserLove, + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) + { + Page<BusiUserLove> page = new Page<>(pageNum, pageSize); + IPage<BusiUserLove> list = busiUserLoveService.queryListPage(busiUserLove,page); + return success(list); + } + + /** + * 导出用户关注列表 + */ + @PreAuthorize("@ss.hasPermi('busi:love:export')") + @Log(title = "用户关注", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BusiUserLove busiUserLove) + { + List<BusiUserLove> list = busiUserLoveService.list(); + ExcelUtil<BusiUserLove> util = new ExcelUtil<BusiUserLove>(BusiUserLove.class); + util.exportExcel(response, list, "用户关注数据"); + } + + /** + * 获取用户关注详细信息 + */ + @PreAuthorize("@ss.hasPermi('busi:love:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return success(busiUserLoveService.getById(id)); + } + + /** + * 新增用户关注 + */ + @PreAuthorize("@ss.hasPermi('busi:love:add')") + @Log(title = "用户关注", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BusiUserLove busiUserLove) + { + return toAjax(busiUserLoveService.save(busiUserLove)); + } + + /** + * 修改用户关注 + */ + @PreAuthorize("@ss.hasPermi('busi:love:edit')") + @Log(title = "用户关注", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BusiUserLove busiUserLove) + { + return toAjax(busiUserLoveService.updateById(busiUserLove)); + } + + /** + * 删除用户关注 + */ + @PreAuthorize("@ss.hasPermi('busi:love:remove')") + @Log(title = "用户关注", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) + { + List<String> list = new ArrayList<>(Arrays.asList(ids)); + return toAjax(busiUserLoveService.removeByIds(list)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiUserLove.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiUserLove.java new file mode 100644 index 0000000..388832a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiUserLove.java @@ -0,0 +1,39 @@ +package com.ruoyi.busi.domain; + +import com.ruoyi.common.annotation.Excel; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import com.ruoyi.common.core.domain.DlBaseEntity; + +/** + * 用户关注对象 dl_busi_user_love + * + * @author 朱春云 + * @date 2025-03-29 + */ +@TableName("dl_busi_user_love") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BusiUserLove extends DlBaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** 用户主键 */ + @Excel(name = "用户主键") + private Long userId; + + /** 被关注通告主用户id */ + @Excel(name = "被关注通告主用户id") + private Long loveUserId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMapper.java index ea0fa9b..03953ca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMapper.java @@ -34,11 +34,19 @@ public interface BusiNoticeMapper extends BaseMapper<BusiNotice> { /** * 小程序端查询通告列表 - * @author vinjor-M - * @date 15:41 2025/3/25 + * @author vinjor-M + * @date 15:41 2025/3/25 * @param query TODO * @param page * @return com.baomidou.mybatisplus.core.metadata.IPage<com.ruoyi.busi.domain.BusiNotice> **/ IPage<BusiNoticeVo> queryAppListPage(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page); + /** + * 小程序端查询通告详细信息 + * @author 朱春云 + * @date 15:39 2025/3/29 + * @param noticeId 通告id + * @return com.ruoyi.common.core.domain.AjaxResult + **/ + BusiNoticeVo selectByIdVo(@Param("noticeId") String noticeId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiUserLoveMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiUserLoveMapper.java new file mode 100644 index 0000000..9a8fdc3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiUserLoveMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.busi.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.busi.domain.BusiUserLove; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 用户关注Mapper接口 + * + * @author 朱春云 + * @date 2025-03-29 + */ +@Mapper +public interface BusiUserLoveMapper extends BaseMapper<BusiUserLove> +{ + IPage<BusiUserLove> queryListPage(@Param("entity") BusiUserLove entity, Page<BusiUserLove> page); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java index 5e357c6..74deb69 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java @@ -1,5 +1,6 @@ package com.ruoyi.busi.service; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -63,11 +64,20 @@ public interface IBusiNoticeService extends IService<BusiNotice> /** * 小程序端查询通告列表 - * @author vinjor-M - * @date 15:41 2025/3/25 + * @author vinjor-M + * @date 15:41 2025/3/25 * @param query TODO - * @param page TODO + * @param page TODO * @return com.baomidou.mybatisplus.core.metadata.IPage<com.ruoyi.busi.domain.BusiNotice> **/ IPage<BusiNoticeVo> queryAppListPage(AppNoticeQuery query, Page<BusiNotice> page); + + /** + * 小程序端查询通告详细信息 + * @author 朱春云 + * @date 15:39 2025/3/29 + * @param noticeId 通告id + * @return com.ruoyi.common.core.domain.AjaxResult + **/ + JSONObject appGetDetail(String noticeId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiUserLoveService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiUserLoveService.java new file mode 100644 index 0000000..e341b02 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiUserLoveService.java @@ -0,0 +1,18 @@ +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; +import com.ruoyi.busi.domain.BusiUserLove; + +/** + * 用户关注Service接口 + * + * @author 朱春云 + * @date 2025-03-29 + */ +public interface IBusiUserLoveService extends IService<BusiUserLove> +{ + IPage<BusiUserLove> queryListPage(BusiUserLove pageReqVO, Page<BusiUserLove> page); +} 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 f2cedd3..cb1b9d0 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 @@ -3,11 +3,15 @@ package com.ruoyi.busi.service.impl; import java.util.*; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.base.domain.BaseCategory; import com.ruoyi.base.service.IBaseCategoryService; +import com.ruoyi.busi.domain.BusiNoticeSign; +import com.ruoyi.busi.domain.BusiUserLove; import com.ruoyi.busi.mapper.BusiNoticeSignMapper; import com.ruoyi.busi.query.AppNoticeQuery; +import com.ruoyi.busi.service.IBusiUserLoveService; import com.ruoyi.busi.vo.BusiNoticeVo; import com.ruoyi.common.core.domain.DlBaseEntity; @@ -17,10 +21,16 @@ import cn.hutool.core.date.DateUtil; import com.ruoyi.busi.utils.NoticeUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.busi.query.BusiNoticeQuery; import com.ruoyi.constant.DictConstants; +import com.ruoyi.member.domain.MemberApply; +import com.ruoyi.member.service.IMemberApplyService; +import com.ruoyi.system.service.ISysDictDataService; +import com.ruoyi.system.service.ISysDictTypeService; +import com.ruoyi.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -45,6 +55,14 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti private BusiNoticeSignMapper busiNoticeSignMapper; @Autowired private NoticeUtils noticeUtils; + @Autowired + private IBusiUserLoveService userLoveService; + @Autowired + private ISysUserService userService; + @Autowired + private IMemberApplyService memberApplyService; + @Autowired + private ISysDictDataService dictDataService; @Override public IPage<BusiNoticeVo> queryListPage(BusiNoticeQuery query, Page<BusiNotice> page) { @@ -222,6 +240,62 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti } + /** + * 小程序端查询通告详细信息 + * @author 朱春云 + * @date 15:39 2025/3/29 + * @param noticeId 通告id + * @return com.ruoyi.common.core.domain.AjaxResult + **/ + @Override + public JSONObject appGetDetail(String noticeId) { + JSONObject res =new JSONObject(); + //通告信息 + BusiNoticeVo detail = busiNoticeMapper.selectByIdVo(noticeId); + res.put("noticeDetail",detail); + //通告主信息 + SysUser userDetail = userService.selectUserById(detail.getUserId()); + JSONObject userDetailJson = new JSONObject(); + userDetailJson.put("userId",userDetail.getUserId()); + userDetailJson.put("nickName",userDetail.getNickName()); + userDetailJson.put("avatar",userDetail.getAvatar()); + //关联认证表 + LambdaQueryWrapper<MemberApply> queryWrapperMember =new LambdaQueryWrapper<>(); + queryWrapperMember.eq(MemberApply::getUserId,userDetail.getUserId()).eq(MemberApply::getApprovalStatus,1).last("limit 1"); + MemberApply memberApply = memberApplyService.getOne(queryWrapperMember); + if (null != memberApply){ + userDetailJson.put("identityType",dictDataService.selectDictLabel("dl_identity_type",memberApply.getIdentityType())); + } + res.put("userDetail",userDetailJson); + //已报名用户头像 + List<BusiNoticeSign> signList = busiNoticeSignMapper.selectList(new LambdaQueryWrapper<BusiNoticeSign>().eq(BusiNoticeSign::getNoticeId, noticeId)); + List<String> signUserAvatarList = signList.stream().map(BusiNoticeSign::getAvatar).collect(Collectors.toList()); + res.put("signUserAvatarList",signUserAvatarList); + //当前用户是否已关注该通告主 + Long userId=null; + try { + userId = SecurityUtils.getUserId(); + }catch (Exception ignored){ + //未登录状态 + } + res.put("isLove",false); + res.put("isSign",false); + if (null != userId){ + LambdaQueryWrapper<BusiUserLove> queryWrapper =new LambdaQueryWrapper<>(); + queryWrapper.eq(BusiUserLove::getUserId,userId).eq(BusiUserLove::getLoveUserId,detail.getUserId()); + if(userLoveService.getOne(queryWrapper)!=null){ + //当前用户已关注通告主 + res.put("isLove",true); + } + //当前用户是否已报名该通告 + if(busiNoticeSignMapper.selectOne(new LambdaQueryWrapper<BusiNoticeSign>().eq(BusiNoticeSign::getNoticeId, noticeId).eq(BusiNoticeSign::getUserId, userId).last("limit 1"))!=null){ + res.put("isSign",true); + } + } + + + return res; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiUserLoveServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiUserLoveServiceImpl.java new file mode 100644 index 0000000..39c05eb --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiUserLoveServiceImpl.java @@ -0,0 +1,30 @@ +package com.ruoyi.busi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.busi.mapper.BusiUserLoveMapper; +import com.ruoyi.busi.domain.BusiUserLove; +import com.ruoyi.busi.service.IBusiUserLoveService; + +/** + * 用户关注Service业务层处理 + * + * @author 朱春云 + * @date 2025-03-29 + */ +@Service +public class BusiUserLoveServiceImpl extends ServiceImpl<BusiUserLoveMapper,BusiUserLove> implements IBusiUserLoveService +{ + @Autowired + private BusiUserLoveMapper busiUserLoveMapper; + + @Override + public IPage<BusiUserLove> queryListPage(BusiUserLove pageReqVO, Page<BusiUserLove> page) { + return busiUserLoveMapper.queryListPage(pageReqVO, page); + } +} diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml index 0df8c9f..65205ae 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml @@ -120,5 +120,19 @@ </choose> </select> + <select id="selectByIdVo" resultType="com.ruoyi.busi.vo.BusiNoticeVo"> + select 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,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 dl_base_category bTable on main.platform_code = bTable.code + left join dl_busi_notice_view noticeView on noticeView.id = main.id + WHERE + main.id = #{noticeId} + </select> </mapper> diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiUserLoveMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiUserLoveMapper.xml new file mode 100644 index 0000000..6dab41d --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiUserLoveMapper.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.busi.mapper.BusiUserLoveMapper"> + + <resultMap type="BusiUserLove" id="BusiUserLoveResult"> + <result property="id" column="id" /> + <result property="userId" column="user_id" /> + <result property="loveUserId" column="love_user_id" /> + <result property="creator" column="creator" /> + <result property="createTime" column="create_time" /> + </resultMap> + + <sql id="selectBusiUserLoveVo"> + select id, user_id, love_user_id, creator, create_time from dl_busi_user_love + </sql> + + <select id="queryListPage" parameterType="BusiUserLove" resultMap="BusiUserLoveResult"> + <include refid="selectBusiUserLoveVo"/> + <where> + <if test="entity.userId != null "> and user_id = #{entity.userId}</if> + <if test="entity.loveUserId != null "> and love_user_id = #{entity.loveUserId}</if> + </where> + </select> +</mapper> \ No newline at end of file From 1de92003595c826c2d58d8484ccfb096e906a4a2 Mon Sep 17 00:00:00 2001 From: 13405411873 <1994398261@qq.com> Date: Sat, 29 Mar 2025 11:12:36 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=80=9A=E5=91=8A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/busi/service/IBusiNoticeService.java | 2 +- .../java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java index 74deb69..eafb169 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java @@ -77,7 +77,7 @@ public interface IBusiNoticeService extends IService<BusiNotice> * @author 朱春云 * @date 15:39 2025/3/29 * @param noticeId 通告id - * @return com.ruoyi.common.core.domain.AjaxResult + * @return JSONObject **/ JSONObject appGetDetail(String noticeId); } 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 cb1b9d0..ab2f77a 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 @@ -245,7 +245,7 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti * @author 朱春云 * @date 15:39 2025/3/29 * @param noticeId 通告id - * @return com.ruoyi.common.core.domain.AjaxResult + * @return JSONObject **/ @Override public JSONObject appGetDetail(String noticeId) { From a3fef62a6ce0165423ab55fd2408c437a178140d Mon Sep 17 00:00:00 2001 From: 13405411873 <1994398261@qq.com> Date: Sat, 29 Mar 2025 11:18:43 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E9=80=9A=E5=91=8A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 ab2f77a..f0ea812 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 @@ -258,7 +258,7 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti JSONObject userDetailJson = new JSONObject(); userDetailJson.put("userId",userDetail.getUserId()); userDetailJson.put("nickName",userDetail.getNickName()); - userDetailJson.put("avatar",userDetail.getAvatar()); + userDetailJson.put("avatar",Optional.ofNullable(userDetail.getAvatar()).orElse("")); //关联认证表 LambdaQueryWrapper<MemberApply> queryWrapperMember =new LambdaQueryWrapper<>(); queryWrapperMember.eq(MemberApply::getUserId,userDetail.getUserId()).eq(MemberApply::getApprovalStatus,1).last("limit 1"); @@ -269,7 +269,8 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti res.put("userDetail",userDetailJson); //已报名用户头像 List<BusiNoticeSign> signList = busiNoticeSignMapper.selectList(new LambdaQueryWrapper<BusiNoticeSign>().eq(BusiNoticeSign::getNoticeId, noticeId)); - List<String> signUserAvatarList = signList.stream().map(BusiNoticeSign::getAvatar).collect(Collectors.toList()); + List<String> signUserAvatarList = signList.stream().map(it-> Optional.ofNullable(it.getAvatar()).orElse("") + ).collect(Collectors.toList()); res.put("signUserAvatarList",signUserAvatarList); //当前用户是否已关注该通告主 Long userId=null;