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