DESKTOP-71BH0QO\L、ming
2021-04-20 26cd8c7b2bc7a725a3de28d3ed883a6f54da84f1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
package com.panzhihua.applets.api;
 
import com.panzhihua.applets.weixin.CheckService;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.PageDTO;
import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.advertisement.ComOpsAdvVO;
import com.panzhihua.common.model.vos.community.ComActEasyPhotoCommentVO;
import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
import com.panzhihua.common.model.vos.community.ComActMessageBackVO;
import com.panzhihua.common.model.vos.community.ComActMessageVO;
import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
import com.panzhihua.common.model.vos.community.PageComActMessageVO;
import com.panzhihua.common.model.vos.user.NoticeUnReadVO;
import com.panzhihua.common.model.vos.user.SysUserAgreementVO;
import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.validated.AddGroup;
import com.panzhihua.common.validated.PageGroup;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
 
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 首页
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-12-10 14:39
 **/
@RestController
@RequestMapping("/index/")
@Api(tags = {"首页"})
public class IndexApi extends BaseController {
    @Resource
    private CommunityService communityService;
    @Resource
    private UserService userService;
    @Resource
    private CheckService checkService;
 
    @ApiOperation(value = "分页展示社区随手拍",response = ComActEasyPhotoVO.class)
    @PostMapping("pageeasyphoto")
    public R pageEasyPhoto (@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        comActEasyPhotoVO.setCommunityId(communityId);
        comActEasyPhotoVO.setLogInUserId(loginUserInfo.getUserId());
        return communityService.pageEasyPhotoApplets(comActEasyPhotoVO);
    }
 
    @ApiOperation("上传随手拍")
    @PostMapping("easyphoto")
    public R addEasyPhoto (@RequestBody @Validated(AddGroup.class) ComActEasyPhotoVO comActEasyPhotoVO){
        //        微信内容审核
        String msg = comActEasyPhotoVO.getDetail();
        if (!checkService.checkMessage(msg)) {
            return R.fail("内容违规");
        }
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        Long userId = loginUserInfo.getUserId();
        comActEasyPhotoVO.setCommunityId(communityId);
        comActEasyPhotoVO.setSponsorId(userId);
        comActEasyPhotoVO.setStatus(1);
        return communityService.addEasyPhoto(comActEasyPhotoVO);
    }
 
    @ApiOperation(value = "随手拍详情",response =ComActEasyPhotoVO.class )
    @GetMapping("detaileasyphoto")
    @ApiImplicitParam(name = "id",value = "随手拍主键")
    public R detailEasyPhoto (@RequestParam("id") Long id){
        Long userId = this.getUserId();
        return communityService.detailEasyPhoto(id,userId);
    }
 
    @ApiOperation(value = "随手拍--评论--分页查询",response = ComActEasyPhotoCommentVO.class )
    @PostMapping("pagecomacteasyphotocomment")
    public R pageComActEasyPhotoComment (@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO){
        pageComActEasyPhotoCommentDTO.setUserId(this.getUserId());
        return communityService.pageComActEasyPhotoComment(pageComActEasyPhotoCommentDTO);
    }
 
    @ApiOperation(value = "随手拍--评论--新增评论")
    @PostMapping("comacteasyphotocomment")
    public R addComActEasyPhotoComment (@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO){
        comActEasyPhotoCommentDTO.setUserId(this.getUserId());
        return communityService.addComActEasyPhotoComment(comActEasyPhotoCommentDTO);
    }
 
    @ApiOperation(value = "随手拍--评论--点赞/取消点赞" )
    @PostMapping("commentsign")
    public R commentSign (@RequestBody ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO){
        comActEasyPhotoCommentUserDTO.setUserId(this.getUserId());
        return communityService.commentSign(comActEasyPhotoCommentUserDTO);
    }
 
    @ApiOperation("点赞/取消点赞随手拍")
    @PutMapping("easyphoto")
    public R putEasyPhoto (@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
        Long id = comActEasyPhotoVO.getId();
        if (null==id||id==0) {
            return R.fail("随手拍主键不能为空");
        }
        Integer haveGiveThumbsUp = comActEasyPhotoVO.getHaveGiveThumbsUp();
        if (null==haveGiveThumbsUp) {
            return R.fail("操作类型不能为空");
        }
        Long userId = this.getUserId();
        comActEasyPhotoVO.setSponsorId(userId);
        return communityService.putEasyPhoto(comActEasyPhotoVO);
    }
 
 
    @ApiOperation(value = "分页展示社区微心愿",response = ComActMicroWishVO.class)
    @PostMapping("pagemicrowish")
    public R pageMicroWish (@RequestBody ComActMicroWishVO comActMicroWishVO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        Long userId = loginUserInfo.getUserId();
        comActMicroWishVO.setCommunityId(communityId);
        comActMicroWishVO.setIsApplets(1);
        comActMicroWishVO.setResponsibleId(userId);//责任人暂时放登录用户id
        comActMicroWishVO.setIsPageMyWish(null);
        return communityService.pageMicroWish(comActMicroWishVO);
    }
 
    @ApiOperation("发布微心愿")
    @PostMapping("microwish")
    public R addMicroWish (@RequestBody @Validated(AddGroup.class) ComActMicroWishVO comActMicroWishVO){
        //        微信内容审核
        String msg = comActMicroWishVO.getDetail();
        if (!checkService.checkMessage(msg)) {
            return R.fail("内容违规");
        }
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        Long userId = loginUserInfo.getUserId();
        String phone = loginUserInfo.getPhone();
        if (ObjectUtils.isEmpty(phone)) {
//            return R.fail("用户绑定手机号后才能发布微心愿");
            phone="18228784579";
        }
        comActMicroWishVO.setSponsorPhone(phone);
        comActMicroWishVO.setCommunityId(communityId);
        comActMicroWishVO.setSponsorId(userId);
        return communityService.addMicroWish(comActMicroWishVO);
    }
 
    @ApiOperation(value = "心愿详情",response = ComActMicroWishVO.class)
    @GetMapping("microwish")
    @ApiImplicitParam(name = "id",value = "微心愿主键")
    public R detailMicroWish (@RequestParam("id")Long id){
        Long userId = this.getUserId();
        return communityService.detailMicroWish(id,userId);
    }
 
    @ApiOperation("点赞/取消点赞微心愿")
    @PutMapping("microwish")
    public R putMicroWish (@RequestBody ComActMicroWishVO comActMicroWishVO){
        Long id = comActMicroWishVO.getId();
        if (null==id||id==0) {
            return R.fail("微心愿主键不能为空");
        }
        Long userId = this.getUserId();
        comActMicroWishVO.setSponsorId(userId);//发起人字段暂时存放userId
        return communityService.putMicroWish(comActMicroWishVO);
    }
 
    @ApiOperation(value = "首页广告banner",response = ComOpsAdvVO.class)
    @GetMapping("listadvertisement")
    public R listAdvertisement (){
        return communityService.listAdvertisement();
    }
 
    @ApiOperation(value = "分页通知列表",response = SysUserNoticeVO.class)
    @PostMapping("pagenotice")
    public R pageNotice (@RequestBody @Validated(PageGroup.class) PageDTO pageDTO){
        Long userId = this.getUserId();
        pageDTO.setUserId(userId);
        return userService.pageNotice(pageDTO);
    }
 
    @ApiOperation(value = "通知已读")
    @PutMapping("notice")
    public R putNotice (@RequestBody NoticeReadDTO noticeReadDTO){
        Long userId = this.getUserId();
        noticeReadDTO.setUserId(userId);
        return userService.putNotice(noticeReadDTO);
    }
 
    @ApiOperation(value = "未读消息汇总",response = NoticeUnReadVO.class)
    @GetMapping("noticeunreadnum")
    public R noticeUnreadNum (){
        Long userId = this.getUserId();
        return userService.noticeUnreadNum(userId);
    }
 
    @ApiOperation(value = "获取各种协议",response = SysUserAgreementVO.class)
    @GetMapping("agreement")
    @ApiImplicitParam(name = "type",value = "1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策")
    public R agreement (@RequestParam("type")Integer type){
        return userService.agreement(type);
    }
    
    
    @ApiOperation("发布留言")
    @PostMapping("addmessage")
    public R addMessage(@RequestBody @Validated(AddGroup.class) ComActMessageVO comActMessageVO){
        //        微信内容审核
        String msg = comActMessageVO.getMsgContent();
        if (!checkService.checkMessage(msg)) {
            return R.fail("内容违规");
        }
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        Integer type = loginUserInfo.getType();
        if(null==type||(type!=1&&type!=2)) {
            return R.fail("留言对象类型错误!");
        }
        Long userId = loginUserInfo.getUserId();
        comActMessageVO.setCommunityId(communityId);
        comActMessageVO.setUserId(userId);
        comActMessageVO.setUserName(loginUserInfo.getName());
        comActMessageVO.setUserAccount(loginUserInfo.getAccount());
        comActMessageVO.setUserPhone(loginUserInfo.getPhone());
        comActMessageVO.setIspublic(1);
        comActMessageVO.setStatus(1);
        return communityService.addMessage(comActMessageVO);
    }
    
    @ApiOperation("发布留言回复")
    @PostMapping("addmessageback")
    public R addMessageBack(@RequestBody @Validated(AddGroup.class) ComActMessageBackVO comActMessageBackVO){
        //        微信内容审核
        String msg = comActMessageBackVO.getMsgContent();
        if (!checkService.checkMessage(msg)) {
            return R.fail("内容违规");
        }
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        Integer type = loginUserInfo.getType();
        if(null==type||(type!=1&&type!=2)) {
            return R.fail("留言对象类型错误!");
        }
        Long userId = loginUserInfo.getUserId();
        comActMessageBackVO.setCommunityId(communityId);
        comActMessageBackVO.setUserId(userId);
        comActMessageBackVO.setUserName(loginUserInfo.getName());
        comActMessageBackVO.setUserAccount(loginUserInfo.getAccount());
        comActMessageBackVO.setIspublic(1);
        comActMessageBackVO.setStatus(1);
        return communityService.addMessageBack(comActMessageBackVO);
    }
    
    @ApiOperation(value = "分页显示我的留言",response = ComActMessageVO.class)
    @PostMapping("pagemymessage")
    public R pageMyMessage (@RequestBody ComActMessageVO comActMessageVO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        comActMessageVO.setCommunityId(communityId);
        comActMessageVO.setUserId(loginUserInfo.getUserId());
        return communityService.pageMyMessageApplets(comActMessageVO);
    }
    
    @ApiOperation(value = "分页显示居民给我的留言",response = ComActMessageVO.class)
    @PostMapping("pagesendtomemessage")
    public R pageSendToMessage (@RequestBody ComActMessageVO comActMessageVO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        if (null==communityId||0==communityId) {
            return R.fail("用户未绑定社区");
        }
        comActMessageVO.setCommunityId(communityId);
        comActMessageVO.setUserId(loginUserInfo.getUserId());
        comActMessageVO.setPhone(loginUserInfo.getPhone());
        return communityService.pageSendToMessageApplets(comActMessageVO);
    }
    @ApiOperation(value = "分页显示指定用户的留言",response =ComActMessageVO.class )
    @PostMapping("pagemessagebyuser")
    public R pageMessageByUser (@RequestBody ComActMessageVO comActMessageVO){
        return communityService.pageMessageByUser(comActMessageVO);
    }
    
    @ApiOperation(value = "留言详情",response =ComActMessageVO.class )
    @GetMapping("detailmessage")
    @ApiImplicitParam(name = "id",value = "随手拍主键")
    public R detailMessage(@RequestParam("id") Long id){
        return communityService.detailMessage(id);
    }
}