admin
2021-11-27 4f015b8c624484e0c3b2d88b944163ce43a48d1f
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
package com.yeshi.location.app.controller.client.api;
 
import com.yeshi.location.app.dto.user.LoginInfoDTO;
import com.yeshi.location.app.entity.user.UserInfo;
import com.yeshi.location.app.entity.user.UserLoginRecord;
import com.yeshi.location.app.entity.vip.UserVIPInfo;
import com.yeshi.location.app.exception.user.LoginException;
import com.yeshi.location.app.service.inter.user.UserAccountService;
import com.yeshi.location.app.service.inter.user.UserInfoService;
import com.yeshi.location.app.service.inter.vip.VIPService;
import com.yeshi.location.app.utils.ApiCodeConstant;
import com.yeshi.location.app.utils.annotation.UserLogin;
import com.yeshi.location.app.vo.AcceptData;
import com.yeshi.location.app.vo.user.UserInfoVO;
import net.sf.json.util.JSONUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.StringUtil;
 
import javax.annotation.Resource;
 
/**
 * @author hxh
 * @title: UserController
 * @description: 用户接口
 * @date 2021/11/16 17:37
 */
@Controller
@RequestMapping("api/v1/user")
public class UserController {
 
    @Resource
    private UserAccountService userAccountService;
 
    @Resource
    private UserInfoService userInfoService;
 
    @Resource
    private VIPService vipService;
 
    @ResponseBody
    @RequestMapping("loginPhone")
    public String loginPhone(AcceptData acceptData, String phone, String vcode, String token) {
        LoginInfoDTO loginInfo = new LoginInfoDTO();
        loginInfo.setLoginType(UserLoginRecord.TYPE_LOGIN_PHONE);
        if (!StringUtil.isNullOrEmpty(phone)) {
            if (StringUtil.isNullOrEmpty(vcode)) {
                return JsonUtil.loadFalseResult("请上传验证码");
            }
 
            loginInfo.setPhone(phone);
            loginInfo.setVcode(vcode);
 
        } else if (!StringUtil.isNullOrEmpty(token)) {
            loginInfo.setPhoneAuthInfo(token);
        } else {
            return JsonUtil.loadFalseResult("信息不完整");
        }
        loginInfo.setSystem(acceptData.getSystem());
        try {
            UserInfo userInfo = userAccountService.login(loginInfo);
            return JsonUtil.loadTrueResult(JsonUtil.getApiCommonGson().toJson(userInfo));
        } catch (LoginException e) {
            return JsonUtil.loadFalseResult(e.getMessage());
        }
 
    }
 
    @UserLogin(uid = "#uid")
    @ResponseBody
    @RequestMapping("logout")
    public String logout(AcceptData acceptData, Long uid) {
        return JsonUtil.loadTrueResult("");
    }
 
 
    @UserLogin(uid = "#uid")
    @ResponseBody
    @RequestMapping("getUserInfo")
    public String getUserInfo(AcceptData acceptData, Long uid) {
 
        UserInfo user = userInfoService.get(uid);
 
        if (user == null) {
            return JsonUtil.loadFalseResult("用户不存在");
        }
        if (user.getStatus() == UserInfo.STATUS_FORBIDDEN) {
            return JsonUtil.loadFalseResult(ApiCodeConstant.CODE_FAIL_USER_FORBIDDEN, "账号被封禁");
        }
 
        if (user.getStatus() == UserInfo.STATUS_OWN_DELETE) {
            return JsonUtil.loadFalseResult(ApiCodeConstant.CODE_FAIL_USER_DELETE, "用户已被删除");
        }
 
        UserInfoVO vo = new UserInfoVO();
        vo.setId(user.getId() + "");
        vo.setNickName(user.getNickName());
        vo.setPortrait(user.getPortrait());
 
        UserVIPInfo userVIPInfo = vipService.getVIPInfo(user.getId());
        if (userVIPInfo != null) {
            vo.setVipExpireTime(userVIPInfo.getExpireDate().getTime());
        }
        return JsonUtil.loadTrueResult(vo);
    }
 
 
}