This commit is contained in:
张良(004796)
2024-03-19 16:30:10 +08:00
parent 979d89eeac
commit 427ccf62e8
16 changed files with 538 additions and 1 deletions

View File

@@ -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<ReportCate> list(ReportCate bo, PageQuery pageQuery) {
Page<ReportCate> page = reportCateService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取举报类型管理详细信息
*
* @param id 主键
*/
@SaCheckPermission("xq:reportCate:query")
@GetMapping("/{id}")
public R<ReportCate> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(reportCateService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -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<ReportAdminVo> list(ReportAdminVo bo, PageQuery pageQuery) {
IPage<ReportAdminVo> page = reportService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取举报详细信息
*
* @param id 主键
*/
@SaCheckPermission("xq:report:query")
@GetMapping("/{id}")
public R<Report> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(reportService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -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<List<ReportCate>> cateList() {
List<ReportCate> list = reportCateService.list();
return R.ok(list);
}
@PostMapping("/push")
@Operation(summary = "举报")
@Log(title = "举报", businessType = BusinessType.OTHER, isSaveDb = false)
public R<AgreementDTO> push(@RequestBody ReportPushReq reportPushReq) {
reportService.push(reportPushReq);
return R.ok();
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<ReportCate> {
}

View File

@@ -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<Report> {
IPage<ReportAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") ReportAdminVo bo);
}

View File

@@ -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<ReportCate> {
}

View File

@@ -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<Report> {
void close(Long id);
IPage<ReportAdminVo> pageAdmin(PageQuery pageQuery, ReportAdminVo bo);
void push(ReportPushReq reportPushReq);
}

View File

@@ -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<ReportCateMapper,ReportCate> implements ReportCateService {
}

View File

@@ -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<ReportMapper,Report> implements ReportService {
@Override
public void close(Long id) {
Report updateReport = new Report();
updateReport.setId(id);
updateReport.setReportStatus(1);
this.updateById(updateReport);
}
@Override
public IPage<ReportAdminVo> 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);
}
}

View File

@@ -0,0 +1,15 @@
<?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.xq.mapper.ReportCateMapper">
<resultMap type="com.ruoyi.xq.domain.ReportCate" id="ReportCateResult">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,36 @@
<?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.xq.mapper.ReportMapper">
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.report.ReportAdminVo">
select t1.*, t2.usercode, t2.nickname, t2.avatar, t2.mobile,
t3.usercode as report_usercode, t3.nickname as report_nickname, t3.avatar as report_avatar, t3.mobile as report_mobile
from xq_report t1
join xq_user t2 on t1.user_id = t2.id
join xq_user t3 on t1.report_uid = t3.id
<where>
<if test="bo.usercode != null and bo.usercode != ''">
and t2.usercode = #{bo.usercode}
</if>
<if test="bo.nickname != null and bo.nickname != ''">
and t2.nickname like concat('%',#{bo.nickname},'%')
</if>
<if test="bo.mobile != null and bo.mobile != ''">
and t2.mobile = #{bo.mobile}
</if>
<if test="bo.reportUsercode != null and bo.reportUsercode != ''">
and t3.usercode = #{bo.reportUsercode}
</if>
<if test="bo.reportNickname != null and bo.reportNickname != ''">
and t3.nickname like concat('%',#{bo.reportNickname},'%')
</if>
<if test="bo.reportMobile != null and bo.reportMobile != ''">
and t3.mobile = #{bo.reportMobile}
</if>
</where>
</select>
</mapper>

View File

@@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.user.UserInfoAdminVo">
select t2.*,
t1.nickname,t1.type,t1.mobile,t1.avatar,t1.gender,t1.age,t1.birthday,
t1.height,t1.weight,t1.somatotype,t1.zodiac,t1.sign,t1.residence,t1.address,t1.residence_city,
t1.height,t1.weight,t1.somatotype,t1.zodiac,t1.sign,t1.residence_name,t1.address_name,t1.residence_city_name,
t1.education,t1.marriage,t1.profession,t1.annual_income,t1.company_nature,t1.for_personals,
t1.remark,t1.status,t1.finish_base_status
from xq_user t1