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);
|
}
|
|
|
}
|