Răsfoiți Sursa

管理员查看界面

fangqing 2 luni în urmă
părinte
comite
acd30eb676

+ 57 - 7
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityReportController.java

@@ -10,10 +10,12 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.generator.domain.Community.*;
 import com.ruoyi.generator.mapper.community.CommunityReportDataMapper;
+import com.ruoyi.generator.mapper.community.CommunityReportUserMapper;
 import com.ruoyi.generator.service.ICommunityNotificationService;
 import com.ruoyi.generator.service.ICommunityPrivacyService;
 import com.ruoyi.generator.service.ICommunityReportDataService;
 import com.ruoyi.generator.service.ICommunityReportUserService;
+import com.ruoyi.generator.vo.CommunityReportUserVo;
 import com.ruoyi.generator.vo.CommunityUserNotificationVo;
 import com.ruoyi.generator.vo.CommunityUserPrivacyVo;
 import io.swagger.annotations.Api;
@@ -22,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -41,6 +44,9 @@ public class CommunityReportController {
     @Autowired
     private ICommunityReportUserService communityReportUserService;
 
+    @Autowired
+    private CommunityReportUserMapper communityReportUserMapper;
+
 
     /**
      * 获取举报类型信息
@@ -64,7 +70,6 @@ public class CommunityReportController {
                     .and((wrapper) -> {
                         wrapper.ne("is_delete", true).or().isNull("is_delete");
                     });
-
            communityReportData = communityReportDataMapper.selectPage(page, queryWrapper).getRecords();
 
         } catch (Exception e) {
@@ -77,26 +82,71 @@ public class CommunityReportController {
 
 
     /**
-     * 举报
+     * 用户举报
      * @param
-     * @return 举报
+     * @return 用户举报
      */
-    @ApiOperation("举报")
+    @ApiOperation("用户举报")
     @GetMapping("/reportTypes")
     //@Anonymous
     public AjaxResult reportMessage(@RequestBody CommunityReportUser communityReportUser) {
         if (Objects.isNull(communityReportUser.getUserId())) {
             return AjaxResult.error("请传被举报人ID!");
         }
-        CommunityReportUser reportUser = null;
         try {
-            reportUser  = communityReportUserService.insertCommunityReportUser(communityReportUser);
+            communityReportUserService.insertCommunityReportUser(communityReportUser);
         } catch (Exception e) {
             System.out.println(e.getMessage());
             throw new ProjectException();
         }
-
         return AjaxResult.success("举报成功");
     }
 
+
+    /**
+     * 管理员查看界面
+     * @param
+     * @return
+     */
+    @ApiOperation("管理员查看界面")
+    @GetMapping("/adminReport")
+    //@Anonymous
+    public AjaxResult adminReport() {
+        List<CommunityReportUserVo> communityReportUsers = null;
+        try {
+            int pageNum = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
+            int pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
+            int offset = (pageNum - 1) * pageSize;
+            int searchType = Convert.toInt(ServletUtils.getParameter("searchType"), 0);
+            communityReportUsers = communityReportUserMapper.selectCommunityReportUser(offset, pageSize, searchType);
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+            throw new ProjectException();
+        }
+        return AjaxResult.success(communityReportUsers);
+    }
+
+    /**
+     * 管理员查看界面
+     * @param
+     * @return
+     */
+    @ApiOperation("管理员处罚界面")
+    @GetMapping("/adminReportPunish")
+    //@Anonymous
+    public AjaxResult adminReportPunish() {
+        List<CommunityReportUserVo> communityReportUsers = null;
+        try {
+            int pageNum = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
+            int pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
+            int offset = (pageNum - 1) * pageSize;
+            int searchType = Convert.toInt(ServletUtils.getParameter("searchType"), 0);
+            communityReportUsers = communityReportUserMapper.selectCommunityReportUser(offset, pageSize, searchType);
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+            throw new ProjectException();
+        }
+        return AjaxResult.success(communityReportUsers);
+    }
+
 }

+ 75 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityReportImages.java

@@ -0,0 +1,75 @@
+package com.ruoyi.generator.domain.Community;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 举报上传的图片
+ * @TableName community_report_images
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("community_report_images")
+public class CommunityReportImages implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 图片id
+     */
+    @ApiModelProperty("图片id")
+    @TableId("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 文章id
+     */
+    @ApiModelProperty("文章id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long reportId;
+
+    /**
+     * 图片地址
+     */
+    @ApiModelProperty("图片地址")
+    @TableField("image_url")
+    private String imageUrl;
+
+    /**
+     * 缩略图图片
+     */
+    @ApiModelProperty("缩略图图片")
+    @TableField("compress_url")
+    private String compressUrl;
+
+    /** 创建者 */
+    private Long createBy;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /** 更新者 */
+    private Long updateBy;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 是否已删除
+     */
+    @ApiModelProperty("是否已删除")
+    private Boolean isDelete;
+}

+ 18 - 11
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityReportUser.java

@@ -1,6 +1,7 @@
 package com.ruoyi.generator.domain.Community;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -10,6 +11,7 @@ import lombok.Data;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
 * 举报记录表
@@ -27,11 +29,18 @@ public class CommunityReportUser implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+
+    /**
+     * 举报类型
+     */
+    @ApiModelProperty("type")
+    private Long type;
+
     /**
-     * 举报明细ID
+     * 举报内容
      */
-    @ApiModelProperty("举报明细ID")
-    private String reportId;
+    @ApiModelProperty("举报内容")
+    private String reportContent;
 
 
     /**
@@ -59,11 +68,7 @@ public class CommunityReportUser implements Serializable {
     @ApiModelProperty("被举报人头像")
     private String avatar;
 
-    /**
-     * 举报类型
-     */
-    @ApiModelProperty("type")
-    private Long type;
+
 
     /**
      * 举报理由
@@ -72,10 +77,11 @@ public class CommunityReportUser implements Serializable {
     private String content;
 
     /**
-     * 举报图片地址
+     * 图片地址
      */
-    @ApiModelProperty("举报图片地址")
-    private String imageUrl;
+    @ApiModelProperty("图片地址")
+    @TableField(exist = false)
+    private List<String> images;
 
     /**
      * 文章/评论ID
@@ -98,6 +104,7 @@ public class CommunityReportUser implements Serializable {
      * 创建时间
      */
     @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
     /**
      * 更新者

+ 17 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityReportImagesMapper.java

@@ -0,0 +1,17 @@
+package com.ruoyi.generator.mapper.community;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.generator.domain.Community.CommunityArticleImages;
+import com.ruoyi.generator.domain.Community.CommunityReportImages;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author Administrator
+* @description 针对表【community_report_images(举报上传的图片)】的数据库操作Mapper
+* @createDate 2024-08-24 17:04:17
+* @Entity com.ruoyi.generator.domain.Community.CommunityArticleImages
+*/
+@Mapper
+public interface CommunityReportImagesMapper extends BaseMapper<CommunityReportImages> {
+
+}

+ 15 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityReportUserMapper.java

@@ -2,8 +2,23 @@ package com.ruoyi.generator.mapper.community;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.generator.domain.Community.CommunityReportUser;
+import com.ruoyi.generator.vo.CommunityReportUserVo;
+import com.ruoyi.generator.vo.RecommendAndCollectVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 @Mapper
 public interface CommunityReportUserMapper extends BaseMapper<CommunityReportUser> {
+
+    /**
+     * 获取被举报的具体信息
+     * @param offset
+     * @param limit
+     * @return
+     */
+    List<CommunityReportUserVo> selectCommunityReportUser          (@Param("offset") int offset,
+                                                                      @Param("limit") int limit,
+                                                                      @Param("searchType") int searchType);
 }

+ 26 - 3
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityReportUserServiceImpl.java

@@ -5,7 +5,10 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.generator.domain.Community.CommunityArticleImages;
+import com.ruoyi.generator.domain.Community.CommunityReportImages;
 import com.ruoyi.generator.domain.Community.CommunityReportUser;
+import com.ruoyi.generator.mapper.community.CommunityReportImagesMapper;
 import com.ruoyi.generator.mapper.community.CommunityReportUserMapper;
 import com.ruoyi.generator.mapper.community.CommunityTagBlockMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
@@ -13,6 +16,8 @@ import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class CommunityReportUserServiceImpl extends ServiceImpl<CommunityReportUserMapper, CommunityReportUser> implements ICommunityReportUserService {
 
@@ -25,6 +30,10 @@ public class CommunityReportUserServiceImpl extends ServiceImpl<CommunityReportU
 
     @Autowired
     private ISysUserService userService;
+
+    @Autowired
+    private CommunityReportImagesMapper communityReportImagesMapper;
+
     @Override
     public CommunityReportUser insertCommunityReportUser(CommunityReportUser communityReportUser) {
         /*SysUser user = new SysUser();
@@ -38,9 +47,8 @@ public class CommunityReportUserServiceImpl extends ServiceImpl<CommunityReportU
         reportUser.setUserId(communityReportUser.getUserId());
         reportUser.setType(communityReportUser.getType());
         reportUser.setContent(communityReportUser.getContent());
-        reportUser.setImageUrl(communityReportUser.getImageUrl());
         reportUser.setTypeId(communityReportUser.getTypeId());
-        reportUser.setReportId(communityReportUser.getReportId());
+        reportUser.setReportContent(communityReportUser.getReportContent());
 
         //根据用户信息查询用户头像名称
         SysUser sysUser = sysUserMapper.selectUserById(reportUser.getUserId());
@@ -49,9 +57,24 @@ public class CommunityReportUserServiceImpl extends ServiceImpl<CommunityReportU
         reportUser.setUserState(sysUser.getUserState());
         reportUser.setCreateBy(SecurityUtils.getUserId());
         reportUser.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
-
         communityReportUserMapper.insert(reportUser);
 
+        Long id = reportUser.getId();
+        System.out.println(id);
+        //插入图片日志
+        List<String> images = communityReportUser.getImages();
+        if (images != null && !images.isEmpty()) {
+            CommunityReportImages reportImages = null;
+            for (String image : images) {
+                reportImages = new CommunityReportImages();
+                reportImages.setReportId(reportUser.getId());
+                reportImages.setImageUrl(image);
+                reportImages.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+                reportImages.setCreateBy(SecurityUtils.getUserId());
+                communityReportImagesMapper.insert(reportImages);
+            }
+        }
+
         return reportUser;
     }
 }

+ 122 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityReportUserVo.java

@@ -0,0 +1,122 @@
+package com.ruoyi.generator.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+* 举报记录表
+* @TableName community_report_user
+*/
+@TableName("community_report_user")
+@Data
+public class CommunityReportUserVo implements Serializable {
+
+    /**
+     * id
+     */
+    @NotNull(message = "[id]不能为空")
+    @ApiModelProperty("id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 举报类型
+     */
+    @ApiModelProperty("type")
+    private String type;
+
+    /**
+     * 举报内容
+     */
+    @ApiModelProperty("举报内容")
+    private String reportContent;
+
+
+    /**
+     * 被举报人ID
+     */
+    @ApiModelProperty("被举报人ID")
+    private Long userId;
+
+    /**
+     * 被举报人名称
+     */
+    @ApiModelProperty("被举报人名称")
+    private String userName;
+
+    /**
+     * 被举报人用户状态
+     */
+    @ApiModelProperty("被举报人用户状态")
+    private String userState;
+
+
+    /**
+     * 被举报人头像
+     */
+    @ApiModelProperty("被举报人头像")
+    private String avatar;
+
+
+
+    /**
+     * 举报理由
+     */
+    @ApiModelProperty("举报理由")
+    private String content;
+
+    /**
+     * 图片地址
+     */
+    @ApiModelProperty("图片地址")
+    @TableField(exist = false)
+    private List<Map<String, Object>> imageList;
+
+    /**
+     * 文章/评论ID
+     */
+    @ApiModelProperty("文章/评论ID")
+    private String typeId;
+
+    /**
+     * 是否已删除
+     */
+    @ApiModelProperty("是否已删除")
+    private Boolean isDelete;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+     * 更新者
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+
+}

+ 79 - 0
ruoyi-generator/src/main/resources/mapper/community/CommunityReportUserMapper.xml

@@ -0,0 +1,79 @@
+<?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.generator.mapper.community.CommunityReportUserMapper">
+
+    <resultMap type="com.ruoyi.generator.vo.CommunityReportUserVo" id="CommunityReportUserVoResult">
+        <id property="id" column="report_id"/>
+        <result property="type" column="report_type"/>
+        <result property="reportContent" column="report_reportContent"/>
+        <result property="userId" column="user_id"/>
+        <result property="userName" column="user_name"/>
+        <result property="userState" column="user_state"/>
+        <result property="avatar" column="avatar"/>
+        <result property="content" column="report_content"/>
+        <result column="images" property="imageList" javaType="java.util.List" typeHandler="com.ruoyi.common.utils.bean.JSONTypeHandler"/>
+        <result property="typeId" column="report_typeId"/>
+        <result property="isDelete" column="id_delete"/>
+        <result property="createBy" column="report_create_by"/>
+        <result property="createTime" column="report_create_time"/>
+        <result property="updateBy" column="report_update_by"/>
+        <result property="updateTime" column="report_update_time"/>
+
+
+    </resultMap>
+
+
+    <select id="selectCommunityReportUser"  parameterType="CommunityReportUser" resultMap="CommunityReportUserVoResult">
+        select
+        id as report_id,
+        case when  type = '1' then '文章举报'
+        when  type = '2' then '个人举报'
+        when  type = '3' then '评价举报' end report_type,
+        report_content as  report_reportContent,
+        user_id ,
+        user_name ,
+        user_state,
+        avatar,
+        content as report_content,
+        type_id as report_typeId,
+        is_delete,
+        create_by as report_create_by,
+        create_time as report_create_time,
+        update_by as report_update_by,
+        update_time as  report_update_time,
+        COALESCE((
+        SELECT
+        JSON_ARRAYAGG(
+        CASE
+        WHEN b.id IS NOT NULL THEN
+        JSON_OBJECT(
+        'id', IFNULL(b.id,''),
+        'reportId', IFNULL(b.report_id,''),
+        'imageUrl', IFNULL(b.image_url,''),
+        'compressUrl', IFNULL(b.compress_url,''),
+        'createBy', IFNULL(b.create_by,''),
+        'createTime', IFNULL(DATE_FORMAT(b.create_time,'%Y-%m-%d %H:%i:%s'),''),
+        'updateBy', IFNULL(b.update_by,''),
+        'updateTime', IFNULL(DATE_FORMAT(b.update_time,'%Y-%m-%d %H:%i:%s'),'')
+        )
+        ELSE NULL
+        END
+        )
+        FROM
+        community_report_images  b
+        WHERE
+        b.report_id = a.id
+        and (b.is_delete != 1 or b.is_delete is null)
+        ), '[]') AS images
+        from community_report_user a
+        <if test="searchType == 1">
+            order by a.create_time desc
+        </if>
+        <if test="searchType == 2">
+            order by a.create_time asc
+        </if>
+        limit #{offset},#{limit}
+    </select>
+</mapper>