TopicController.java 3.85 KB
package com.tanpu.community.controller;

import com.alibaba.fastjson.JSONObject;
import com.tanpu.community.api.beans.TopicDTO;
import com.tanpu.community.controller.convert.TopicConverter;
import com.tanpu.community.dao.entity.community.TopicEntity;
import com.tanpu.community.manager.TopicManager;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.stream.Collectors;

@RestController
@Slf4j
@RequestMapping(value = "/api/topic")
public class TopicController {

    @Autowired
    private TopicManager topicManager;

    @PostMapping(value = "/queryTopicDetailList")
    @ApiOperation("查询所有的主题详情")
    @ResponseBody
    public List<TopicDTO> getAllTopicList(@RequestBody String content){
        JSONObject params = JSONObject.parseObject(content);
        List<TopicEntity> allTopic = topicManager.getAllTopic();
        List<TopicDTO> topicDTOS = TopicConverter.convertToDTOs(allTopic);
        //获取浏览数据:浏览、发帖、回帖
        return topicDTOS;
    }

    @PostMapping(value = "/queryTopicNameList")
    @ApiOperation("查询所有的主题名称列表")
    @ResponseBody
    public List<String> getTopicNameList(@RequestBody String content){
        JSONObject params = JSONObject.parseObject(content);
        List<TopicEntity> allTopic = topicManager.getAllTopic();
        List<String> topictitiles = allTopic.stream().map(TopicEntity::getTopicTitle).collect(Collectors.toList());
        //获取浏览数据:浏览、发帖、回帖
        return topictitiles;
    }

    @PostMapping(value="/insertTopic")
    @ApiOperation("新增主题主题")
    @ResponseBody
    public String addTopic(@RequestParam String topicTitle){
        //TODO:获取登录用户信息
        String userId = "liujm";
        topicManager.insertTopic(topicTitle,userId);
        return "success";
    }

    @ApiOperation("单个话题数据总览")
    @PostMapping("/selectOne")
    @ResponseBody
    public String selectOne(@RequestParam String topicId) throws MissingServletRequestParameterException {
        if (StringUtils.isEmpty(topicId)){
            throw new MissingServletRequestParameterException("topicId","String");
        }
        TopicDTO topicDTO=topicManager.getDetail(topicId);
        return "success";
    }

    @PostMapping(value = "/setTop")
    @ApiOperation("顶置/取消顶置主题")
    @ResponseBody
    public String setTopTopic(@RequestParam String topicId,@RequestParam boolean setTop) throws MissingServletRequestParameterException {
        if (StringUtils.isEmpty(topicId)){
            throw new MissingServletRequestParameterException("topicId","String");
        }
        topicManager.setTopTopic(topicId,setTop);
        return "success";
    }

    @PostMapping(value = "/setConceal")
    @ApiOperation("隐藏/显示主题")
    @ResponseBody
    public String setConceal(@RequestParam String topicId,@RequestParam boolean setConceal) throws MissingServletRequestParameterException {
        if (StringUtils.isEmpty(topicId)){
            throw new MissingServletRequestParameterException("topicId","String");
        }
        topicManager.setTopicConceal(topicId,setConceal);
        return "success";
    }

    @PostMapping(value = "/modifyViewNum")
    @ApiOperation("主题浏览数调整")
    @ResponseBody
    public String modifyViewNum(@RequestParam String topicId,@RequestParam Long modifyMount) throws MissingServletRequestParameterException {
        if (StringUtils.isEmpty(topicId)){
            throw new MissingServletRequestParameterException("topicId","String");
        }
        //修改浏览量
        return "success";
    }





}