commit
757bc0e5fc
@ -0,0 +1,66 @@
|
||||
package com.example.venue_reservation_service.controller;
|
||||
|
||||
import com.example.venue_reservation_service.dto.PageDTO;
|
||||
import com.example.venue_reservation_service.dto.SensitiveWordDTO;
|
||||
import com.example.venue_reservation_service.service.SensitiveWordService;
|
||||
import com.example.venue_reservation_service.vo.Result;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 敏感词管理Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/sensitiveword")
|
||||
@CrossOrigin
|
||||
@Api("敏感词管理")
|
||||
@Slf4j
|
||||
public class SensitiveWordController {
|
||||
|
||||
@Resource
|
||||
private SensitiveWordService sensitiveWordService;
|
||||
|
||||
/**
|
||||
* 分页查询敏感词列表
|
||||
*/
|
||||
@ApiOperation("获取敏感词数据")
|
||||
@PostMapping("/query")
|
||||
public Result query(@RequestBody PageDTO dto) {
|
||||
return sensitiveWordService.getSensitiveWords(dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加敏感词
|
||||
*/
|
||||
@ApiOperation("添加敏感词")
|
||||
@PostMapping("/create")
|
||||
public Result create(@RequestBody SensitiveWordDTO dto) {
|
||||
log.info("添加敏感词{}", dto);
|
||||
return sensitiveWordService.addSensitiveWord(dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改敏感词信息
|
||||
*/
|
||||
@ApiOperation("修改敏感词")
|
||||
@PostMapping("/update")
|
||||
public Result update(@RequestParam("id") Integer id,
|
||||
@RequestBody SensitiveWordDTO dto) {
|
||||
return sensitiveWordService.updateSensitiveWord(id, dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除敏感词
|
||||
*/
|
||||
@ApiOperation("移除敏感词")
|
||||
@DeleteMapping("/remove")
|
||||
public Result remove(@RequestParam("id") Integer id) {
|
||||
log.info("移除敏感词{}", id);
|
||||
return sensitiveWordService.removeSensitiveWord(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.example.venue_reservation_service.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@TableName(value ="venue_word")
|
||||
@Data
|
||||
public class SensitiveWord {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
private String word;
|
||||
|
||||
private String level;
|
||||
|
||||
private String status;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.example.venue_reservation_service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SensitiveWordDTO {
|
||||
|
||||
//敏感词
|
||||
private String word;
|
||||
|
||||
|
||||
//敏感词等级
|
||||
private String level;
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.example.venue_reservation_service.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.example.venue_reservation_service.domain.SensitiveWord;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface SensitiveWordMapper extends BaseMapper<SensitiveWord> {
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.example.venue_reservation_service.service;
|
||||
|
||||
import com.example.venue_reservation_service.dto.PageDTO;
|
||||
import com.example.venue_reservation_service.dto.SensitiveWordDTO;
|
||||
import com.example.venue_reservation_service.vo.Result;
|
||||
|
||||
public interface SensitiveWordService {
|
||||
|
||||
// 获取敏感词数据
|
||||
Result getSensitiveWords(PageDTO dto);
|
||||
|
||||
|
||||
// 添加敏感词
|
||||
Result addSensitiveWord(SensitiveWordDTO dto);
|
||||
|
||||
|
||||
// 更新敏感词
|
||||
|
||||
Result updateSensitiveWord(Integer id, SensitiveWordDTO dto);
|
||||
|
||||
// 移除敏感词
|
||||
Result removeSensitiveWord(Integer id);
|
||||
}
|
@ -0,0 +1,97 @@
|
||||
package com.example.venue_reservation_service.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.example.venue_reservation_service.domain.SensitiveWord;
|
||||
import com.example.venue_reservation_service.dto.PageDTO;
|
||||
import com.example.venue_reservation_service.dto.SensitiveWordDTO;
|
||||
import com.example.venue_reservation_service.mapper.SensitiveWordMapper;
|
||||
import com.example.venue_reservation_service.service.SensitiveWordService;
|
||||
import com.example.venue_reservation_service.vo.QueryVO;
|
||||
import com.example.venue_reservation_service.vo.Result;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 敏感词业务实现类
|
||||
*/
|
||||
@Service
|
||||
public class SensitiveWordServiceImpl extends ServiceImpl<SensitiveWordMapper, SensitiveWord> implements SensitiveWordService {
|
||||
|
||||
@Resource
|
||||
private SensitiveWordMapper sensitiveWordMapper;
|
||||
|
||||
/**
|
||||
* 分页查询敏感词列表
|
||||
*/
|
||||
@Override
|
||||
public Result getSensitiveWords(PageDTO dto) {
|
||||
Page<SensitiveWord> page = new Page<>(dto.getCurrent(), dto.getSize());
|
||||
page = page(page, null);
|
||||
QueryVO<SensitiveWord> vo = new QueryVO<>();
|
||||
vo.setList(page.getRecords());
|
||||
vo.setTotal(page.getTotal());
|
||||
return Result.ok(vo).message("查询成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加敏感词
|
||||
*/
|
||||
@Override
|
||||
public Result addSensitiveWord(SensitiveWordDTO sensitiveWordDTO) {
|
||||
// 去空格后判断是否重复
|
||||
String word = sensitiveWordDTO.getWord().trim();
|
||||
if (count(new LambdaQueryWrapper<SensitiveWord>().eq(SensitiveWord::getWord, word)) > 0) {
|
||||
return Result.fail().message("该敏感词已存在");
|
||||
}
|
||||
|
||||
SensitiveWord sensitiveWord = new SensitiveWord();
|
||||
sensitiveWord.setWord(word);
|
||||
sensitiveWord.setLevel(sensitiveWordDTO.getLevel());
|
||||
sensitiveWord.setStatus("0"); // 默认不启用
|
||||
sensitiveWord.setCreateTime(LocalDateTime.now());
|
||||
sensitiveWord.setUpdateTime(LocalDateTime.now());
|
||||
save(sensitiveWord);
|
||||
|
||||
return Result.ok().message("添加成功");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改敏感词信息
|
||||
*/
|
||||
@Override
|
||||
public Result updateSensitiveWord(Integer id, SensitiveWordDTO sensitiveWordDTO) {
|
||||
SensitiveWord sensitiveWord = getById(id);
|
||||
if (sensitiveWord == null) {
|
||||
return Result.fail().message("未找到对应敏感词");
|
||||
}
|
||||
|
||||
sensitiveWord.setWord(sensitiveWordDTO.getWord().trim());
|
||||
sensitiveWord.setLevel(sensitiveWordDTO.getLevel());
|
||||
|
||||
updateById(sensitiveWord);
|
||||
return Result.ok().message("修改成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除敏感词
|
||||
*/
|
||||
@Override
|
||||
public Result removeSensitiveWord(Integer id) {
|
||||
if (!exists(id)) {
|
||||
return Result.fail().message("未找到对应敏感词");
|
||||
}
|
||||
removeById(id);
|
||||
return Result.ok().message("删除成功");
|
||||
}
|
||||
|
||||
// 辅助方法:检查是否存在
|
||||
private boolean exists(Integer id) {
|
||||
return count(new LambdaQueryWrapper<SensitiveWord>().eq(SensitiveWord::getId, id)) > 0;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue