feat:第三方敏感词
This commit is contained in:
1 parent
be41d903ed
commit
30424cc145
8 files changed
+257
No files matched your search
+39
@@ -1,9 +1,21 @@
|
||||
package com.bx.implatform.controller.third;
|
||||
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveDelDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveInfoDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveSaveDTO;
|
||||
import com.bx.implatform.result.Result;
|
||||
import com.bx.implatform.result.ResultUtils;
|
||||
import com.bx.implatform.service.third.ThirdSensitiveService;
|
||||
import com.bx.implatform.vo.third.ThirdTableVO;
|
||||
import com.bx.implatform.vo.third.sensitive.ThirdSensitiveVO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@@ -16,4 +28,31 @@ public class ThirdSensitiveController {
|
||||
|
||||
private final ThirdSensitiveService thirdSensitiveService;
|
||||
|
||||
@PostMapping("/page")
|
||||
@Operation(summary = "查询敏感词列表", description = "查询敏感词列表")
|
||||
public Result<ThirdTableVO<ThirdSensitiveVO>> page(@Valid @RequestBody ThirdSensitiveDTO dto) {
|
||||
ThirdTableVO<ThirdSensitiveVO> vo = thirdSensitiveService.page(dto);
|
||||
return ResultUtils.success(vo);
|
||||
}
|
||||
|
||||
@PostMapping("/getById")
|
||||
@Operation(summary = "获取敏感词详细信息", description = "获取敏感词详细信息")
|
||||
public Result<ThirdSensitiveVO> getInfo(@Valid @RequestBody ThirdSensitiveInfoDTO dto) {
|
||||
ThirdSensitiveVO vo = thirdSensitiveService.getInfo(dto);
|
||||
return ResultUtils.success(vo);
|
||||
}
|
||||
|
||||
@PostMapping("/createOrUpdate")
|
||||
@Operation(summary = "创建或者更新敏感词", description = "创建或者更新敏感词")
|
||||
public Result<Boolean> createOrUpdate(@Valid @RequestBody ThirdSensitiveSaveDTO dto) {
|
||||
thirdSensitiveService.createOrUpdate(dto);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/delByIds")
|
||||
@Operation(summary = "删除敏感词", description = "删除敏感词")
|
||||
public Result<Boolean> delByIds(@Valid @RequestBody ThirdSensitiveDelDTO dto) {
|
||||
return ResultUtils.success(thirdSensitiveService.delByIds(dto));
|
||||
}
|
||||
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.bx.implatform.dto.third.sensitive;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Schema(description = "third敏感词DTO")
|
||||
public class ThirdSensitiveDTO {
|
||||
|
||||
@Schema(description = "分页大小")
|
||||
private Integer pageSize;
|
||||
|
||||
@Schema(description = "当前页数")
|
||||
private Integer pageNum;
|
||||
|
||||
@Schema(description = "敏感词内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "是否启用")
|
||||
private Boolean enabled;
|
||||
|
||||
@Schema(description = "创建者")
|
||||
private Long creator;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.bx.implatform.dto.third.sensitive;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Schema(description = "third敏感词删除DTO")
|
||||
public class ThirdSensitiveDelDTO {
|
||||
|
||||
@NotEmpty(message = "敏感词ids不能为空")
|
||||
@Schema(description = "敏感词ids")
|
||||
private List<Long> sensitiveIds;
|
||||
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.bx.implatform.dto.third.sensitive;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "third敏感词详情DTO")
|
||||
public class ThirdSensitiveInfoDTO {
|
||||
|
||||
@Schema(description = "敏感词id")
|
||||
private Long sensitiveId;
|
||||
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.bx.implatform.dto.third.sensitive;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "third新增或修改DTO")
|
||||
public class ThirdSensitiveSaveDTO {
|
||||
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
@NotEmpty(message = "敏感词内容不能为空")
|
||||
@Schema(description = "敏感词内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "是否启用")
|
||||
private Boolean enabled;
|
||||
|
||||
}
|
||||
@@ -1,5 +1,32 @@
|
||||
package com.bx.implatform.service.third;
|
||||
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveDelDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveInfoDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveSaveDTO;
|
||||
import com.bx.implatform.vo.third.ThirdTableVO;
|
||||
import com.bx.implatform.vo.third.sensitive.ThirdSensitiveVO;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
public interface ThirdSensitiveService {
|
||||
|
||||
/**
|
||||
* 查询敏感词列表
|
||||
*/
|
||||
ThirdTableVO<ThirdSensitiveVO> page(@Valid ThirdSensitiveDTO dto);
|
||||
|
||||
/**
|
||||
* 获取敏感词详细信息
|
||||
*/
|
||||
ThirdSensitiveVO getInfo(@Valid ThirdSensitiveInfoDTO dto);
|
||||
|
||||
/**
|
||||
* 创建或者更新敏感词
|
||||
*/
|
||||
void createOrUpdate(@Valid ThirdSensitiveSaveDTO dto);
|
||||
|
||||
/**
|
||||
* 删除敏感词
|
||||
*/
|
||||
Boolean delByIds(@Valid ThirdSensitiveDelDTO dto);
|
||||
}
|
||||
+80
@@ -1,13 +1,26 @@
|
||||
package com.bx.implatform.service.third.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveDelDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveInfoDTO;
|
||||
import com.bx.implatform.dto.third.sensitive.ThirdSensitiveSaveDTO;
|
||||
import com.bx.implatform.entity.SensitiveWord;
|
||||
import com.bx.implatform.mapper.SensitiveWordMapper;
|
||||
import com.bx.implatform.service.third.ThirdSensitiveService;
|
||||
import com.bx.implatform.vo.third.ThirdTableVO;
|
||||
import com.bx.implatform.vo.third.sensitive.ThirdSensitiveVO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 第三方敏感词
|
||||
*/
|
||||
@@ -16,4 +29,71 @@ import org.springframework.stereotype.Service;
|
||||
@RequiredArgsConstructor
|
||||
public class ThirdSensitiveServiceImpl extends ServiceImpl<SensitiveWordMapper, SensitiveWord> implements ThirdSensitiveService {
|
||||
|
||||
/**
|
||||
* 查询敏感词列表
|
||||
*/
|
||||
@Override
|
||||
public ThirdTableVO<ThirdSensitiveVO> page(ThirdSensitiveDTO dto) {
|
||||
ThirdTableVO<ThirdSensitiveVO> result = new ThirdTableVO<ThirdSensitiveVO>();
|
||||
|
||||
Page<SensitiveWord> page = baseMapper.selectPage(new Page(dto.getPageNum(), dto.getPageSize()), buildQueryWrapper(dto));
|
||||
|
||||
result.setTotal(page.getTotal());
|
||||
if (ObjectUtil.isNotEmpty(page.getRecords())) {
|
||||
result.setRows(BeanUtil.copyToList(page.getRecords(), ThirdSensitiveVO.class));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取敏感词详细信息
|
||||
*/
|
||||
@Override
|
||||
public ThirdSensitiveVO getInfo(ThirdSensitiveInfoDTO dto) {
|
||||
SensitiveWord detail = baseMapper.selectById(dto.getSensitiveId());
|
||||
if (ObjectUtil.isNotEmpty(detail)) {
|
||||
return BeanUtil.copyProperties(detail, ThirdSensitiveVO.class);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建或者更新敏感词
|
||||
*/
|
||||
@Override
|
||||
public void createOrUpdate(ThirdSensitiveSaveDTO dto) {
|
||||
if (ObjectUtil.isNotEmpty(dto.getId())) {
|
||||
// 修改
|
||||
SensitiveWord detail = baseMapper.selectById(dto.getId());
|
||||
if (ObjectUtil.isNotEmpty(detail)) {
|
||||
SensitiveWord updateObj = BeanUtil.toBean(dto, SensitiveWord.class);
|
||||
baseMapper.updateById(updateObj);
|
||||
}
|
||||
} else {
|
||||
SensitiveWord saveObj = BeanUtil.toBean(dto, SensitiveWord.class);
|
||||
if (ObjectUtil.isNotEmpty(saveObj.getEnabled())) {
|
||||
saveObj.setEnabled(true);
|
||||
}
|
||||
saveObj.setCreator(-1L);
|
||||
saveObj.setCreateTime(LocalDateTime.now());
|
||||
baseMapper.insert(saveObj);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除敏感词
|
||||
*/
|
||||
@Override
|
||||
public Boolean delByIds(ThirdSensitiveDelDTO dto) {
|
||||
return baseMapper.deleteByIds(dto.getSensitiveIds()) > 0;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SensitiveWord> buildQueryWrapper(ThirdSensitiveDTO bo) {
|
||||
LambdaQueryWrapper<SensitiveWord> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.like(ObjectUtil.isNotEmpty(bo.getContent()), SensitiveWord::getContent, bo.getContent());
|
||||
wrapper.eq(bo.getEnabled() != null, SensitiveWord::getEnabled, bo.getEnabled());
|
||||
wrapper.orderByDesc(SensitiveWord::getId);
|
||||
return wrapper;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.bx.implatform.vo.third.sensitive;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Schema(description = "third敏感词VO")
|
||||
public class ThirdSensitiveVO {
|
||||
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "敏感词内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "是否启用")
|
||||
private Boolean enabled;
|
||||
|
||||
@Schema(description = "创建者")
|
||||
private Long creator;
|
||||
|
||||
@Schema(description = "创建者")
|
||||
private String creatorName;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user