diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ReportCateController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ReportCateController.java new file mode 100644 index 0000000..709f8c2 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ReportCateController.java @@ -0,0 +1,95 @@ +package com.ruoyi.xq.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.xq.domain.ReportCate; +import com.ruoyi.xq.service.ReportCateService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; + +/** + * 举报类型管理 + * + * @author 77 + * @date 2024-03-19 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xq/reportCate") +public class ReportCateController extends BaseController { + + private final ReportCateService reportCateService; + + /** + * 查询举报类型管理列表 + */ + @SaCheckPermission("xq:reportCate:list") + @GetMapping("/list") + public TableDataInfo list(ReportCate bo, PageQuery pageQuery) { + Page page = reportCateService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); + return TableDataInfo.build(page); + } + + /** + * 获取举报类型管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("xq:reportCate:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(reportCateService.getById(id)); + } + + /** + * 新增举报类型管理 + */ + @SaCheckPermission("xq:reportCate:add") + @Log(title = "举报类型管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ReportCate bo) { + return toAjax(reportCateService.save(bo)); + } + + /** + * 修改举报类型管理 + */ + @SaCheckPermission("xq:reportCate:edit") + @Log(title = "举报类型管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ReportCate bo) { + return toAjax(reportCateService.updateById(bo)); + } + + /** + * 删除举报类型管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("xq:reportCate:remove") + @Log(title = "举报类型管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(reportCateService.removeBatchByIds(Arrays.asList(ids))); + } +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ReportController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ReportController.java new file mode 100644 index 0000000..d31ea26 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ReportController.java @@ -0,0 +1,84 @@ +package com.ruoyi.xq.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.xq.domain.Report; +import com.ruoyi.xq.dto.admin.report.ReportAdminVo; +import com.ruoyi.xq.service.ReportService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; + +/** + * 举报 + * + * @author 77 + * @date 2024-03-19 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xq/report") +public class ReportController extends BaseController { + + private final ReportService reportService; + + /** + * 查询举报列表 + */ + @SaCheckPermission("xq:report:list") + @GetMapping("/list") + public TableDataInfo list(ReportAdminVo bo, PageQuery pageQuery) { + IPage page = reportService.pageAdmin(pageQuery, bo); + return TableDataInfo.build(page); + } + + + /** + * 获取举报详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("xq:report:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(reportService.getById(id)); + } + + /** + * 修改举报 + */ + @SaCheckPermission("xq:report:edit") + @Log(title = "处理举报", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PostMapping("/close") + public R edit(@RequestBody Report bo) { + reportService.close(bo.getId()); + return R.ok(); + } + + /** + * 删除举报 + * + * @param ids 主键串 + */ + @SaCheckPermission("xq:report:remove") + @Log(title = "举报", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(reportService.removeBatchByIds(Arrays.asList(ids))); + } +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/ReportAppController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/ReportAppController.java new file mode 100644 index 0000000..9458568 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/ReportAppController.java @@ -0,0 +1,43 @@ +package com.ruoyi.xq.controller.app; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.xq.domain.ReportCate; +import com.ruoyi.xq.dto.app.report.ReportPushReq; +import com.ruoyi.xq.dto.app.setting.AgreementDTO; +import com.ruoyi.xq.service.ReportCateService; +import com.ruoyi.xq.service.ReportService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/report") +@Tag(name = "举报相关接口") +public class ReportAppController { + @Autowired + private ReportCateService reportCateService; + @Autowired + private ReportService reportService; + + @GetMapping("/cate/list") + @Operation(summary = "获取举报类型") + @Log(title = "获取举报类型", businessType = BusinessType.OTHER, isSaveDb = false) + public R> cateList() { + List list = reportCateService.list(); + return R.ok(list); + } + + @PostMapping("/push") + @Operation(summary = "举报") + @Log(title = "举报", businessType = BusinessType.OTHER, isSaveDb = false) + public R push(@RequestBody ReportPushReq reportPushReq) { + reportService.push(reportPushReq); + return R.ok(); + } +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/Report.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/Report.java new file mode 100644 index 0000000..0ff2405 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/Report.java @@ -0,0 +1,55 @@ +package com.ruoyi.xq.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 举报对象 xq_report + * + * @author 77 + * @date 2024-03-19 + */ +@Data +@TableName("xq_report") +public class Report implements Serializable { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + /** + * 举报分类名称 + */ + private String cateName; + /** + * 举报内容 + */ + private Long userId; + /** + * 举报对象 + */ + private Long reportUid; + /** + * 举报内容 + */ + private String content; + /** + * 举报照片 + */ + private String contentImage; + /** + * 状态 0 未处理 1 已经处理 + */ + private Integer reportStatus; + private LocalDateTime createTime; + + private LocalDateTime updateTime; + +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ReportCate.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ReportCate.java new file mode 100644 index 0000000..1daad8d --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ReportCate.java @@ -0,0 +1,36 @@ +package com.ruoyi.xq.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 举报类型管理对象 xq_report_cate + * + * @author 77 + * @date 2024-03-19 + */ +@Data +@TableName("xq_report_cate") +public class ReportCate implements Serializable { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + /** + * + */ + private String name; + + private LocalDateTime createTime; + + private LocalDateTime updateTime; + +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/report/ReportAdminVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/report/ReportAdminVo.java new file mode 100644 index 0000000..5b6cbf0 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/report/ReportAdminVo.java @@ -0,0 +1,17 @@ +package com.ruoyi.xq.dto.admin.report; + +import com.ruoyi.xq.domain.Report; +import lombok.Data; + +@Data +public class ReportAdminVo extends Report { + private String usercode; + private String mobile; + private String avatar; + private String nickname; + + private String reportUsercode; + private String reportMobile; + private String reportAvatar; + private String reportNickname; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/report/ReportPushReq.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/report/ReportPushReq.java new file mode 100644 index 0000000..d6606fc --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/report/ReportPushReq.java @@ -0,0 +1,22 @@ +package com.ruoyi.xq.dto.app.report; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class ReportPushReq { + @Schema(description = "举报对象名称") + private String cateName; + @Schema(description = "举报人用户ID") + private Long reportUid; + /** + * 举报内容 + */ + @Schema(description = "举报内容") + private String content; + /** + * 举报照片 + */ + @Schema(description = "举报图片,逗号分割") + private String contentImage; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ReportCateMapper.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ReportCateMapper.java new file mode 100644 index 0000000..9af5d2d --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ReportCateMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.xq.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.xq.domain.ReportCate; + +/** + * 举报类型管理Mapper接口 + * + * @author 77 + * @date 2024-03-19 + */ +public interface ReportCateMapper extends BaseMapper { + +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ReportMapper.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ReportMapper.java new file mode 100644 index 0000000..4dcf7c9 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ReportMapper.java @@ -0,0 +1,19 @@ +package com.ruoyi.xq.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.xq.domain.Report; +import com.ruoyi.xq.dto.admin.report.ReportAdminVo; +import org.apache.ibatis.annotations.Param; + +/** + * 举报Mapper接口 + * + * @author 77 + * @date 2024-03-19 + */ +public interface ReportMapper extends BaseMapper { + + IPage pageAdmin(@Param("build") Page build, @Param("bo") ReportAdminVo bo); +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ReportCateService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ReportCateService.java new file mode 100644 index 0000000..156e4c8 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ReportCateService.java @@ -0,0 +1,14 @@ +package com.ruoyi.xq.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.xq.domain.ReportCate; + +/** + * 举报类型管理Service接口 + * + * @author 77 + * @date 2024-03-19 + */ +public interface ReportCateService extends IService { + +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ReportService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ReportService.java new file mode 100644 index 0000000..0027371 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ReportService.java @@ -0,0 +1,23 @@ +package com.ruoyi.xq.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.xq.domain.Report; +import com.ruoyi.xq.dto.admin.report.ReportAdminVo; +import com.ruoyi.xq.dto.app.report.ReportPushReq; + +/** + * 举报Service接口 + * + * @author 77 + * @date 2024-03-19 + */ +public interface ReportService extends IService { + + void close(Long id); + + IPage pageAdmin(PageQuery pageQuery, ReportAdminVo bo); + + void push(ReportPushReq reportPushReq); +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ReportCateServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ReportCateServiceImpl.java new file mode 100644 index 0000000..0eaf2c1 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ReportCateServiceImpl.java @@ -0,0 +1,18 @@ +package com.ruoyi.xq.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.xq.domain.ReportCate; +import com.ruoyi.xq.mapper.ReportCateMapper; +import com.ruoyi.xq.service.ReportCateService; +import org.springframework.stereotype.Service; + +/** + * 举报类型管理Service业务层处理 + * + * @author 77 + * @date 2024-03-19 + */ +@Service +public class ReportCateServiceImpl extends ServiceImpl implements ReportCateService { + +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ReportServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ReportServiceImpl.java new file mode 100644 index 0000000..4202cea --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ReportServiceImpl.java @@ -0,0 +1,46 @@ +package com.ruoyi.xq.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.xq.domain.Report; +import com.ruoyi.xq.dto.admin.report.ReportAdminVo; +import com.ruoyi.xq.dto.app.report.ReportPushReq; +import com.ruoyi.xq.mapper.ReportMapper; +import com.ruoyi.xq.service.ReportService; +import org.springframework.stereotype.Service; + +/** + * 举报Service业务层处理 + * + * @author 77 + * @date 2024-03-19 + */ +@Service +public class ReportServiceImpl extends ServiceImpl implements ReportService { + + @Override + public void close(Long id) { + Report updateReport = new Report(); + updateReport.setId(id); + updateReport.setReportStatus(1); + this.updateById(updateReport); + } + + @Override + public IPage pageAdmin(PageQuery pageQuery, ReportAdminVo bo) { + return baseMapper.pageAdmin(pageQuery.build(), bo); + } + + @Override + public void push(ReportPushReq reportPushReq) { + Report report = new Report(); + report.setCateName(reportPushReq.getCateName()); + report.setUserId(LoginHelper.getUserId()); + report.setReportUid(reportPushReq.getReportUid()); + report.setContent(reportPushReq.getContent()); + report.setContentImage(reportPushReq.getContentImage()); + this.save(report); + } +} diff --git a/ruoyi-xq/src/main/resources/mapper/xq/ReportCateMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/ReportCateMapper.xml new file mode 100644 index 0000000..d235638 --- /dev/null +++ b/ruoyi-xq/src/main/resources/mapper/xq/ReportCateMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/ruoyi-xq/src/main/resources/mapper/xq/ReportMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/ReportMapper.xml new file mode 100644 index 0000000..595e35f --- /dev/null +++ b/ruoyi-xq/src/main/resources/mapper/xq/ReportMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/ruoyi-xq/src/main/resources/mapper/xq/UserInfoMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/UserInfoMapper.xml index c6d772f..f05a14c 100644 --- a/ruoyi-xq/src/main/resources/mapper/xq/UserInfoMapper.xml +++ b/ruoyi-xq/src/main/resources/mapper/xq/UserInfoMapper.xml @@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"