ThemeController.java 5.16 KB
Newer Older
刘基明's avatar
刘基明 committed
1 2 3
package com.tanpu.community.controller;


刘基明's avatar
刘基明 committed
4
import com.tanpu.common.api.CommonResp;
刘基明's avatar
刘基明 committed
5
import com.tanpu.common.auth.AuthLogin;
刘基明's avatar
刘基明 committed
6
import com.tanpu.common.auth.UserHolder;
刘基明's avatar
刘基明 committed
7
import com.tanpu.community.api.beans.qo.ThemeQo;
刘基明's avatar
刘基明 committed
8
import com.tanpu.community.api.beans.req.theme.*;
刘基明's avatar
刘基明 committed
9
import com.tanpu.community.api.beans.resp.CreateThemeResp;
10
import com.tanpu.community.api.beans.resp.ThemeListResp;
张辰's avatar
张辰 committed
11
import com.tanpu.community.feign.community.FeignClientForCommunity;
刘基明's avatar
刘基明 committed
12
import com.tanpu.community.manager.ThemeManager;
张辰's avatar
张辰 committed
13
import com.tanpu.community.service.TraceTestService;
王亚雷's avatar
王亚雷 committed
14
import com.tanpu.community.util.HttpServletHelper;
刘基明's avatar
刘基明 committed
15
import io.swagger.annotations.ApiOperation;
刘基明's avatar
刘基明 committed
16
import lombok.extern.slf4j.Slf4j;
王亚雷's avatar
王亚雷 committed
17
import org.apache.commons.lang3.StringUtils;
张辰's avatar
张辰 committed
18
import org.checkerframework.checker.units.qual.A;
刘基明's avatar
刘基明 committed
19
import org.springframework.beans.factory.annotation.Autowired;
刘基明's avatar
刘基明 committed
20
import org.springframework.validation.annotation.Validated;
刘基明's avatar
刘基明 committed
21
import org.springframework.web.bind.annotation.*;
刘基明's avatar
刘基明 committed
22

刘基明's avatar
刘基明 committed
23
import javax.annotation.Resource;
刘基明's avatar
刘基明 committed
24 25 26 27 28 29 30 31

@RestController
@Slf4j
@RequestMapping(value = "/api/theme")
public class ThemeController {

    @Autowired
    private ThemeManager themeManager;
刘基明's avatar
刘基明 committed
32 33
    @Resource
    private UserHolder userHolder;
王亚雷's avatar
王亚雷 committed
34 35
    @Resource
    private HttpServletHelper httpServletHelper;
张辰's avatar
张辰 committed
36 37 38
    @Autowired
    private TraceTestService traceTestService;

刘基明's avatar
刘基明 committed
39

刘基明's avatar
刘基明 committed
40
    @AuthLogin
刘基明's avatar
刘基明 committed
41 42
    @ApiOperation("发表主题")
    @PostMapping(value = "/publish")
刘基明's avatar
刘基明 committed
43
    @ResponseBody
刘基明's avatar
刘基明 committed
44
    public CommonResp<CreateThemeResp> publishTheme(@Validated @RequestBody CreateThemeReq req) {
刘基明's avatar
刘基明 committed
45
        String userId = userHolder.getUserId();
46
        return themeManager.publishTheme(req, userId);
刘基明's avatar
刘基明 committed
47 48
    }

刘基明's avatar
刘基明 committed
49
    @ApiOperation("主题列表-推荐/关注/热门/最新")
刘基明's avatar
刘基明 committed
50
    @PostMapping(value = "/list")
刘基明's avatar
刘基明 committed
51
    @ResponseBody
52
    public CommonResp<ThemeListResp> selectInterestList(@Validated @RequestBody ThemeListReq req) {
王亚雷's avatar
王亚雷 committed
53 54 55 56
        String selfUserId = httpServletHelper.getCurrentUserId();
        if (StringUtils.isEmpty(req.getUserId())) {
            req.setUserId(selfUserId);
        }
王亚雷's avatar
王亚雷 committed
57
        ThemeListResp result = themeManager.queryList(req, req.getUserId());
刘基明's avatar
刘基明 committed
58
        return CommonResp.success(result);
刘基明's avatar
刘基明 committed
59 60
    }

刘基明's avatar
刘基明 committed
61
    @ApiOperation("主题正文")
刘基明's avatar
刘基明 committed
62
    @GetMapping(value = "/detail")
刘基明's avatar
刘基明 committed
63
    @ResponseBody
王亚雷's avatar
王亚雷 committed
64 65
    public CommonResp<ThemeQo> getDetail(@RequestParam(value = "themeId") String themeId,
                                         @RequestParam(value = "userId", required = false) String userId) {
王亚雷's avatar
王亚雷 committed
66 67 68 69
        String selfUserId = httpServletHelper.getCurrentUserId();
        if (StringUtils.isEmpty(userId)) {
            userId = selfUserId;
        }
70
        return themeManager.getThemeDetail(themeId, userId);
刘基明's avatar
刘基明 committed
71 72
    }

刘基明's avatar
刘基明 committed
73
    @AuthLogin
刘基明's avatar
刘基明 committed
74
    @ApiOperation("转发主题")
刘基明's avatar
刘基明 committed
75
    @PostMapping(value = "/forward")
刘基明's avatar
刘基明 committed
76
    @ResponseBody
刘基明's avatar
刘基明 committed
77
    public CommonResp<CreateThemeResp> forwardTheme(@Validated @RequestBody ForwardThemeReq forwardThemeReq) {
刘基明's avatar
刘基明 committed
78
        String userId = userHolder.getUserId();
刘基明's avatar
刘基明 committed
79
        return CommonResp.success(themeManager.forward(forwardThemeReq, userId));
刘基明's avatar
刘基明 committed
80 81
    }

刘基明's avatar
刘基明 committed
82
    @AuthLogin
刘基明's avatar
刘基明 committed
83
    @ApiOperation("点赞/取消点赞主题")
刘基明's avatar
刘基明 committed
84
    @PostMapping(value = "/like")
刘基明's avatar
刘基明 committed
85
    @ResponseBody
刘基明's avatar
刘基明 committed
86
    public CommonResp<Void> likeOnTheme(@RequestBody LikeThemeReq req) {
刘基明's avatar
刘基明 committed
87 88
        String userId = userHolder.getUserId();
        themeManager.like(req, userId);
刘基明's avatar
刘基明 committed
89
        return CommonResp.success();
刘基明's avatar
刘基明 committed
90 91
    }

刘基明's avatar
刘基明 committed
92
    @AuthLogin
刘基明's avatar
刘基明 committed
93
    @ApiOperation("用户删除主题")
刘基明's avatar
刘基明 committed
94 95
    @GetMapping(value = "/delete")
    @ResponseBody
刘基明's avatar
刘基明 committed
96
    public CommonResp<Void> delete(@RequestParam(value = "themeId") String themeId) {
刘基明's avatar
刘基明 committed
97
        String userId = userHolder.getUserId();
刘基明's avatar
刘基明 committed
98
        themeManager.delete(themeId, userId);
刘基明's avatar
刘基明 committed
99 100
        return CommonResp.success();
    }
刘基明's avatar
刘基明 committed
101

刘基明's avatar
刘基明 committed
102
    @AuthLogin
刘基明's avatar
刘基明 committed
103
    @ApiOperation("收藏/取消收藏主题")
刘基明's avatar
刘基明 committed
104
    @PostMapping(value = "/collect")
刘基明's avatar
刘基明 committed
105
    @ResponseBody
刘基明's avatar
刘基明 committed
106
    public CommonResp<Void> bookTheme(@RequestBody CollectThemeReq req) {
刘基明's avatar
刘基明 committed
107 108
        String userId = userHolder.getUserId();
        themeManager.collect(req, userId);
刘基明's avatar
刘基明 committed
109
        return CommonResp.success();
刘基明's avatar
刘基明 committed
110 111
    }

刘基明's avatar
刘基明 committed
112
    @AuthLogin
刘基明's avatar
刘基明 committed
113
    @ApiOperation("举报主题")
刘基明's avatar
刘基明 committed
114
    @PostMapping(value = "/report")
刘基明's avatar
刘基明 committed
115
    @ResponseBody
116 117 118 119
    public CommonResp<Void> complaintTheme(@RequestBody ReportThemeReq req) {
        String userId = userHolder.getUserId();
        themeManager.report(req, userId);
        return CommonResp.success();
刘基明's avatar
刘基明 committed
120 121
    }

刘基明's avatar
刘基明 committed
122 123 124 125 126 127 128 129 130
    @AuthLogin
    @ApiOperation("关注主题更新数量")
    @GetMapping(value = "/updateCount")
    @ResponseBody
    public CommonResp<Integer> updateCount() {
        String userId = userHolder.getUserId();
        return CommonResp.success(themeManager.getFollowUpdateCount(userId));
    }

刘基明's avatar
刘基明 committed
131 132 133
    @ApiOperation("专栏同步主题")
    @PostMapping(value = "/convertFromNewsFeed")
    @ResponseBody
刘基明's avatar
刘基明 committed
134 135
    public CommonResp<Void> convertFromNewsFeed(@Validated @RequestBody SynchroThemeReq req) {
        themeManager.convertFromNewsFeed(req);
刘基明's avatar
刘基明 committed
136
        return CommonResp.success();
刘基明's avatar
刘基明 committed
137 138
    }

刘基明's avatar
刘基明 committed
139 140 141 142 143 144 145
    @ApiOperation("文本查重初始化")
    @GetMapping(value = "/initTextCheck")
    @ResponseBody
    public CommonResp<Void> initTextCheck() {
        themeManager.initThemeTextCheck();
        return CommonResp.success();
    }
刘基明's avatar
刘基明 committed
146

张辰's avatar
张辰 committed
147 148 149 150 151 152
    @PostMapping(value = "/testTrace")
    @ResponseBody
    public CommonResp<Void> testTrace() {
        traceTestService.testTraceId();
        return CommonResp.success();
    }
153
}