package com.example.jz.controller; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.api.ApiController; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.jz.dao.UserDao; import com.example.jz.modle.PageParam; import com.example.jz.modle.R; import com.example.jz.modle.entity.Sensitive; import com.example.jz.modle.dto.SensitiveDto; import com.example.jz.modle.entity.User; import com.example.jz.modle.vo.SensitiveVO; import com.example.jz.service.SensitiveService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; /** * 敏感词表(Sensitive)表控制层 * * @author 安瑾然 * @since 2022-07-13 09:54:49 */ @RestController @RequestMapping("sensitive") @ApiOperation("敏感词表(Sensitive)表控制层") @Api(tags = "敏感词接口") public class SensitiveController extends ApiController { /** * 服务对象 */ @Resource private SensitiveService sensitiveService; @Resource UserDao userDao; /** * 分页查询所有数据 * * @param page 分页对象 * @param sensitive 查询实体 * @return 所有数据 */ @GetMapping @ApiOperation("分页查询所有数据") public R> selectAll(PageParam page, Sensitive sensitive) { Page sensitivePage = sensitiveService.page(page, new QueryWrapper() .like(StringUtils.isNotBlank(sensitive.getWords()),"words",sensitive.getWords()).orderByDesc("ctime")); // 将sensitive转换成sensitiveVO List sensitiveVOList = new ArrayList<>(); for (Sensitive s : sensitivePage.getRecords()) { SensitiveVO sensitiveVO = new SensitiveVO(); BeanUtil.copyProperties(s, sensitiveVO); sensitiveVO.setCreator(userDao.selectOne(new QueryWrapper().eq("id",s.getCreator())).getRealName()); sensitiveVOList.add(sensitiveVO); } // 封装分页数据 Page sensitiveVOPage = new PageParam(); BeanUtil.copyProperties(sensitivePage, sensitiveVOPage); sensitiveVOPage.setRecords(sensitiveVOList); return R.ok(sensitiveVOPage); } /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ @GetMapping("{id}") @ApiOperation("通过主键查询单条数据") public R selectOne(@PathVariable Serializable id) { Sensitive sensitive = sensitiveService.getById(id); SensitiveVO sensitiveVO = new SensitiveVO(); BeanUtil.copyProperties(sensitive, sensitiveVO); sensitiveVO.setCreator(userDao.selectOne(new QueryWrapper().eq("id",sensitive.getCreator())).getRealName()); return R.ok(sensitiveVO); } /** * 新增数据 * * @param sensitiveDto 实体对象 * @return 新增结果 */ @PostMapping @ApiOperation("新增数据") public R insert(@RequestBody SensitiveDto sensitiveDto) { Sensitive sensitive = new Sensitive().setCreator(userDao.selectOne(new QueryWrapper() .eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId()) .setCtime(new Date()).setWords(sensitiveDto.getWords()); return R.ok(sensitiveService.save(sensitive)); } /** * 修改数据 * * @param sensitiveDto 实体对象 * @return 修改结果 */ // @PutMapping // @ApiOperation("修改数据") // public R update(@RequestBody SensitiveDto sensitiveDto) { // Sensitive sensitive = new Sensitive().setId(sensitiveDto.getId()).setCreator(sensitiveDto.getCreator()).setWord(String.join(",", sensitiveDto.getWords())); // return R.ok(sensitiveService.updateById(sensitive)); // } /** * 删除数据 * * @param id 主键 * @return 删除结果 */ @DeleteMapping @ApiOperation("删除数据") public R delete(@RequestParam("id") Serializable id) { return R.ok(sensitiveService.removeById(id)); } }