package com.xinquan.system.controller; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xinquan.common.core.domain.R; import com.xinquan.common.core.utils.page.PageDTO; import com.xinquan.common.log.annotation.Log; import com.xinquan.common.log.enums.BusinessType; import com.xinquan.common.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; import com.xinquan.system.api.model.LoginUser; import com.xinquan.system.domain.CommonQuestion; import com.xinquan.system.domain.HotWords; import com.xinquan.system.service.HotWordsService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** *

* 热词表 前端控制器 *

* * @author mitao * @since 2024-08-21 */ @RestController @RequestMapping("/system/hot-words") public class HotWordsController { @Resource private HotWordsService hotWordsService; @Autowired private TokenService tokenService; @GetMapping("/list") @ApiOperation(value = "热词管理-列表查询", tags = {"运营中心"}) @ApiImplicitParams({ @ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = true, dataType = "Integer"), @ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = true, dataType = "Integer") }) public R> list( Integer pageCurr, Integer pageSize) { LoginUser loginUser = tokenService.getLoginUser(); if (loginUser==null){ return R.tokenError("登录失效"); } Page page1 = new Page<>(pageCurr, pageSize); Page page = hotWordsService.lambdaQuery() .orderByDesc(HotWords::getSortNum) .page(page1); if (page.getRecords().isEmpty()){ return R.ok(PageDTO.empty(page)); } for (HotWords record : page.getRecords()) { record.setUid(record.getId()+""); } return R.ok(PageDTO.of(page, HotWords.class)); } @PostMapping("/add") @ApiOperation(value = "热词管理-添加热词", tags = {"管理后台-运营中心"}) @Log(title = "【热词】添加", businessType = BusinessType.INSERT) public R add(@RequestBody HotWords hotWords) { int size = hotWordsService.lambdaQuery().list().size(); if (size>=20){ return R.fail("热词数量已达上限"); } hotWordsService.save(hotWords); return R.ok(); } @PostMapping("/update") @ApiOperation(value = "热词管理-编辑热词", tags = {"管理后台-运营中心"}) @Log(title = "【热词】修改", businessType = BusinessType.UPDATE) public R update(@RequestBody HotWords hotWords) { LambdaUpdateWrapper hotWordsLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); if (hotWords.getSortNum()==null){ hotWordsLambdaUpdateWrapper.set(HotWords::getSortNum,null); }else{ hotWordsLambdaUpdateWrapper.set(HotWords::getSortNum,hotWords.getSortNum()); } hotWordsLambdaUpdateWrapper.set(HotWords::getWordName,hotWords.getWordName()); hotWordsLambdaUpdateWrapper.eq(HotWords::getId,hotWords.getId()); hotWordsService.update(hotWordsLambdaUpdateWrapper); return R.ok(); } @DeleteMapping("/delete") @ApiOperation(value = "热词管理-删除热词", tags = {"管理后台-运营中心"}) @Log(title = "【热词】删除", businessType = BusinessType.DELETE) public R add(String id) { hotWordsService.removeById(Long.valueOf(id)); return R.ok(); } @GetMapping("/queryAddCount") @ApiOperation(value = "热词管理-查询还可以上传多少个热词", tags = {"管理后台-运营中心"}) public R queryAddCount() { int i = 20 - hotWordsService.lambdaQuery().list().size(); return R.ok(i); } }