mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
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
package com.panzhihua.grid_app.api;
 
import javax.annotation.Resource;
 
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.vos.EditUserInfoAppDTO;
import com.panzhihua.common.model.vos.EditUserInfoPassAppDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO;
import com.panzhihua.common.service.auth.TokenService;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.grid.GridService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.common.validated.AddGroup;
 
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
 
/**
 * 我的模块
 * 
 * @author lyq
 */
@Slf4j
@RestController
@RequestMapping("/user/")
@Api(tags = {"我的模块"})
public class UserApi extends BaseController {
 
    @Resource
    private UserService userService;
    @Resource
    private CommunityService communityService;
    @Resource
    private TokenService tokenService;
    @Resource
    private GridService gridService;
 
    @ApiOperation(value = "当前登录用户信息-lyq", response = LoginUserInfoVO.class)
    @GetMapping("/info")
    public R getUserInfo() {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long communityId = loginUserInfo.getCommunityId();
        Long userId = loginUserInfo.getUserId();
        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
 
        if (R.isOk(r)) {
            Object data = r.getData();
            if (!ObjectUtils.isEmpty(data)) {
                LoginUserInfoVO loginUserInfoVO = (LoginUserInfoVO)data;
                // 查询社区信息
                if (null != communityId && 0 != communityId) {
                    R r1 = communityService.detailCommunity(communityId);
                    if (R.isOk(r1)) {
                        Object data1 = r1.getData();
                        if (!ObjectUtils.isEmpty(data1)) {
                            loginUserInfoVO
                                .setComActVO(JSONObject.parseObject(JSONObject.toJSONString(data1), ComActVO.class));
                            r.setData(loginUserInfoVO);
                        }
                    }
                }
            }
        }
        return r;
    }
 
    @ApiOperation(value = "修改用户信息-lyq")
    @PostMapping("/user")
    public R putUser(@RequestBody EditUserInfoAppDTO userInfoAppDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        if (StringUtils.isNotEmpty(userInfoAppDTO.getImagesUrl())) {
            loginUserInfo.setImageUrl(userInfoAppDTO.getImagesUrl());
            loginUserInfo.setNickName(null);
        }
        if (StringUtils.isNotEmpty(userInfoAppDTO.getNickName())) {
            loginUserInfo.setNickName(userInfoAppDTO.getNickName());
            loginUserInfo.setName(userInfoAppDTO.getNickName());
            loginUserInfo.setImageUrl(null);
        }
        return userService.putUser(loginUserInfo);
    }
 
    @ApiOperation(value = "修改用户登录密码-lyq")
    @PutMapping("/edit/pass")
    public R updatePass(@RequestBody EditUserInfoPassAppDTO userInfoAppDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        userInfoAppDTO.setUserId(loginUserInfo.getUserId());
        R updateUser = userService.updateUserPassByApp(userInfoAppDTO);
        if (R.isOk(updateUser)) {
            String token = this.getToken();
            if (StringUtils.isNotEmpty(token)) {
                tokenService.logout(token);
            }
            return R.ok();
        } else {
            return updateUser;
        }
    }
 
    @ApiOperation(value = "根据版本号获取最新版本信息-lyq")
    @GetMapping("/edition")
    public R editionUpdate() {
        return gridService.editionUpdate();
    }
 
    @ApiOperation(value = "网格员定时上报地理位置-lyq")
    @PostMapping("/report")
    public R gridReportPosition(@RequestBody @Validated(AddGroup.class) GridMemberPositionDTO memberPositionDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        memberPositionDTO.setGridMemberId(loginUserInfo.getUserId());
        return gridService.gridReportPosition(memberPositionDTO);
    }
 
}