ThemeController.java 4.74 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.common.exception.BizException;
刘基明's avatar
刘基明 committed
8
import com.tanpu.community.api.beans.qo.ThemeQo;
刘基明's avatar
刘基明 committed
9
import com.tanpu.community.api.beans.req.theme.*;
刘基明's avatar
刘基明 committed
10
import com.tanpu.community.api.beans.resp.CreateThemeResp;
刘基明's avatar
刘基明 committed
11
import com.tanpu.community.manager.ThemeManager;
刘基明's avatar
刘基明 committed
12
import io.swagger.annotations.ApiOperation;
刘基明's avatar
刘基明 committed
13 14
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
刘基明's avatar
刘基明 committed
15
import org.springframework.util.StringUtils;
刘基明's avatar
刘基明 committed
16
import org.springframework.validation.annotation.Validated;
刘基明's avatar
刘基明 committed
17
import org.springframework.web.bind.annotation.*;
刘基明's avatar
刘基明 committed
18

刘基明's avatar
刘基明 committed
19
import javax.annotation.Resource;
刘基明's avatar
刘基明 committed
20 21 22 23 24 25 26 27 28
import java.util.List;

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

    @Autowired
    private ThemeManager themeManager;
刘基明's avatar
刘基明 committed
29 30
    @Resource
    private UserHolder userHolder;
刘基明's avatar
刘基明 committed
31

刘基明's avatar
刘基明 committed
32
    @AuthLogin
刘基明's avatar
刘基明 committed
33 34
    @ApiOperation("发表主题")
    @PostMapping(value = "/publish")
刘基明's avatar
刘基明 committed
35
    @ResponseBody
刘基明's avatar
刘基明 committed
36
    public CommonResp<CreateThemeResp> publishTheme(@Validated @RequestBody CreateThemeReq req) {
刘基明's avatar
刘基明 committed
37
        String userId = userHolder.getUserId();
刘基明's avatar
刘基明 committed
38
        return CommonResp.success(themeManager.publishTheme(req, userId));
刘基明's avatar
刘基明 committed
39 40
    }

刘基明's avatar
刘基明 committed
41
    @AuthLogin
刘基明's avatar
刘基明 committed
42
    @ApiOperation("圈子首页-推荐/关注/热门/最新")
刘基明's avatar
刘基明 committed
43
    @PostMapping(value = "/list")
刘基明's avatar
刘基明 committed
44
    @ResponseBody
刘基明's avatar
刘基明 committed
45
    public CommonResp<List<ThemeQo>> selectInterestList(@Validated @RequestBody ThemeListReq req) {
刘基明's avatar
刘基明 committed
46
        String userId = userHolder.getUserId();
刘基明's avatar
刘基明 committed
47 48 49
        if(StringUtils.isEmpty(userId)){
            throw new BizException("用户为空");
        }
刘基明's avatar
刘基明 committed
50
        List<ThemeQo> result = themeManager.queryThemes(req, userId);
刘基明's avatar
刘基明 committed
51
        return CommonResp.success(result);
刘基明's avatar
刘基明 committed
52 53
    }

刘基明's avatar
刘基明 committed
54 55 56 57 58 59 60 61 62 63
    @AuthLogin
    @ApiOperation("主题搜索")
    @PostMapping(value = "/search")
    @ResponseBody
    public CommonResp<List<ThemeQo>> searchInterestList(@Validated @RequestBody ThemeSearchReq req) {
        String userId = userHolder.getUserId();
        List<ThemeQo> result = themeManager.searchThemes(req, userId);
        return CommonResp.success(result);
    }

刘基明's avatar
刘基明 committed
64
    @AuthLogin
刘基明's avatar
刘基明 committed
65
    @ApiOperation("主题正文")
刘基明's avatar
刘基明 committed
66
    @GetMapping(value = "/detail")
刘基明's avatar
刘基明 committed
67
    @ResponseBody
刘基明's avatar
刘基明 committed
68
    public CommonResp<ThemeQo> getThemeMainText(@RequestParam String themeId) {
刘基明's avatar
刘基明 committed
69
        String userId = userHolder.getUserId();
刘基明's avatar
刘基明 committed
70
        ThemeQo themeQo = themeManager.getDetail(themeId, userId);
刘基明's avatar
刘基明 committed
71
        return CommonResp.success(themeQo);
刘基明's avatar
刘基明 committed
72 73
    }

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

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

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

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

刘基明's avatar
刘基明 committed
113
    @AuthLogin
刘基明's avatar
刘基明 committed
114
    @ApiOperation("举报主题")
刘基明's avatar
刘基明 committed
115
    @PostMapping(value = "/report")
刘基明's avatar
刘基明 committed
116
    @ResponseBody
刘基明's avatar
刘基明 committed
117
    public CommonResp complaintTheme(@RequestBody ReportThemeReq req) {
刘基明's avatar
刘基明 committed
118

刘基明's avatar
刘基明 committed
119
        return CommonResp.failed("功能暂未开放");
刘基明's avatar
刘基明 committed
120 121
    }

刘基明's avatar
刘基明 committed
122
    @AuthLogin
刘基明's avatar
刘基明 committed
123 124 125 126
    @ApiOperation("分享主题")
    @GetMapping(value = "/share")
    @ResponseBody
    public CommonResp<Void> shareTheme(String themeId) {
刘基明's avatar
刘基明 committed
127
        return CommonResp.failed("功能暂未开放");
刘基明's avatar
刘基明 committed
128 129
    }

刘基明's avatar
刘基明 committed
130
    @AuthLogin
刘基明's avatar
刘基明 committed
131
    @ApiOperation("屏蔽")
刘基明's avatar
刘基明 committed
132
    @GetMapping(value = "/block")
刘基明's avatar
刘基明 committed
133
    @ResponseBody
刘基明's avatar
刘基明 committed
134
    public CommonResp concealTheme(String themeId) {
刘基明's avatar
刘基明 committed
135
        String userId = userHolder.getUserId();
刘基明's avatar
刘基明 committed
136
        return CommonResp.success();
刘基明's avatar
刘基明 committed
137
    }
刘基明's avatar
刘基明 committed
138

刘基明's avatar
刘基明 committed
139 140 141 142 143 144 145 146 147
    @AuthLogin
    @ApiOperation("关注主题更新数量")
    @GetMapping(value = "/updateCount")
    @ResponseBody
    public CommonResp<Integer> updateCount() {
        String userId = userHolder.getUserId();
        return CommonResp.success(themeManager.getFollowUpdateCount(userId));
    }

刘基明's avatar
刘基明 committed
148
}