| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- package com.izouma.nineth.web;
- import com.izouma.nineth.domain.MetaTourist;
- import com.izouma.nineth.domain.User;
- import com.izouma.nineth.dto.MetaRestResult;
- import com.izouma.nineth.dto.MetaTouristDTO;
- import com.izouma.nineth.dto.MetaUserDTO;
- import com.izouma.nineth.enums.AuthorityName;
- import com.izouma.nineth.enums.InviteType;
- import com.izouma.nineth.exception.AuthenticationException;
- import com.izouma.nineth.exception.BusinessException;
- import com.izouma.nineth.repo.AssetRepo;
- import com.izouma.nineth.repo.MetaTouristRepo;
- import com.izouma.nineth.security.JwtTokenUtil;
- import com.izouma.nineth.security.JwtUserFactory;
- import com.izouma.nineth.service.ContentAuditService;
- import com.izouma.nineth.service.UserService;
- import io.swagger.annotations.ApiOperation;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.RandomStringUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.security.authentication.AuthenticationManager;
- import org.springframework.web.bind.annotation.*;
- import java.util.HashMap;
- import java.util.Map;
- @Slf4j
- @AllArgsConstructor
- @RestController
- @RequestMapping("/auth")
- public class AuthenticationController {
- private final AuthenticationManager authenticationManager;
- private final JwtTokenUtil jwtTokenUtil;
- private final UserService userService;
- private ContentAuditService contentAuditService;
- private MetaTouristRepo metaTouristRepo;
- private AssetRepo assetRepo;
- @PostMapping("/login")
- public String loginByUserPwd(String username, String password, Integer expiration) {
- User user = userService.loginByUsernamePwd(username, password);
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- }
- @PostMapping("/oasisLogin")
- public Map<String, Object> oasisLogin(String phone, String password, Integer expiration) {
- User user = userService.loginByPhonePwd(phone, password);
- Map<String, Object> result = userService.oasisInfo(user.getId());
- result.put("token", jwtTokenUtil.generateToken(JwtUserFactory.create(user)));
- result.put("userId", user.getId());
- return result;
- }
- @PostMapping("/oasisLoginPhone")
- public Map<String, Object> oasisLogin(String phone, String code) {
- User user = userService.loginByPhone(phone, code);
- Map<String, Object> result = userService.oasisInfo(user.getId());
- result.put("token", jwtTokenUtil.generateToken(JwtUserFactory.create(user)));
- result.put("userId", user.getId());
- return result;
- }
- @PostMapping("/loginAdmin")
- public String loginByUserPwdAdmin(String username, String password, Integer expiration) {
- User user = userService.loginByUsernamePwd(username, password);
- if (user.getAuthorities() == null ||
- user.getAuthorities().stream().anyMatch(au -> au.getName().equals(AuthorityName.ROLE_ADMIN.name()))) {
- throw new AuthenticationException("禁止登录", null);
- }
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- }
- @PostMapping("/phoneLogin")
- @ApiOperation(value = "手机号验证码登录")
- public String phoneLogin(String phone, String code, @RequestParam(required = false) Long invitor) {
- User user = userService.loginByPhone(phone, code);
- InviteType userInviteType = user.getInviteType();
- if (invitor != null) {
- if (userInviteType != null) {
- if (!userInviteType.equals(InviteType.AUCTION)) {
- userService.bindAuctionInvitor(user.getId(), invitor);
- }
- } else {
- userService.bindAuctionInvitor(user.getId(), invitor);
- }
- }
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- }
- @PostMapping("/metaPhoneLogin")
- @ApiOperation(value = "元宇宙手机号验证码登录")
- public MetaRestResult<MetaUserDTO> metaPhoneLogin(String phone, String code) {
- User user = userService.loginByPhone(phone, code);
- String token = jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- return MetaRestResult.returnSuccess(MetaUserDTO.create(user, token));
- }
- @PostMapping("/phonePwdLogin")
- @ApiOperation(value = "手机号密码登录")
- public String phonePwdLogin(String phone, String password, @RequestParam(required = false) Long invitor) {
- User user = userService.loginByPhonePwd(phone, password);
- InviteType userInviteType = user.getInviteType();
- if (invitor != null) {
- if (userInviteType != null) {
- if (!userInviteType.equals(InviteType.AUCTION)) {
- userService.bindAuctionInvitor(user.getId(), invitor);
- }
- } else {
- userService.bindAuctionInvitor(user.getId(), invitor);
- }
- }
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- }
- @PostMapping("/metaPhonePwdLogin")
- @ApiOperation(value = "元宇宙手机号密码登录")
- public MetaRestResult<MetaUserDTO> metaPhonePwdLogin(String phone, String password) {
- User user = userService.loginByPhonePwd(phone, password);
- String token = jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- return MetaRestResult.returnSuccess(MetaUserDTO.create(user, token));
- }
- @PostMapping("/metaDomainPwdLogin")
- @ApiOperation(value = "元宇宙元域名密码登录")
- public MetaRestResult<MetaUserDTO> metaDomainPwdLogin(String name, String password) {
- String phone = assetRepo.findPhone("RID元宇宙域名 ".concat(name).concat(".nft"));
- if (StringUtils.isEmpty(phone)){
- return MetaRestResult.returnError("此域名暂无用户持有");
- }
- User user = userService.loginByPhonePwd(phone, password);
- String token = jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- return MetaRestResult.returnSuccess(MetaUserDTO.create(user, token));
- }
- @PostMapping("/tradingLogin")
- public Object tradingLogin(String phone, String password, String tradeCode) {
- return userService.loginTrading(phone, password, tradeCode);
- }
- @PostMapping("/phoneRegister")
- @ApiOperation(value = "手机号密码注册")
- public String phonePwdLogin(String phone, String code, String password, String inviteCode, Long invitor,
- Long collectionId, Long showroomId, InviteType inviteType) {
- User user = userService
- .phoneRegister(phone, code, password, inviteCode, invitor, collectionId, showroomId, inviteType, null);
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- }
- @PostMapping("/meta/phoneRegister")
- @ApiOperation(value = "元宇宙手机号密码注册")
- public String metaPhonePwdLogin(String phone, String code, String password, String inviteCode, Long invitor,
- Long collectionId, Long showroomId, InviteType inviteType, String name) {
- if (!contentAuditService.auditText(name)) {
- throw new BusinessException("昵称包含不合法内容!");
- }
- User user = userService
- .phoneRegister(phone, code, password, inviteCode, invitor, collectionId, showroomId, inviteType, name);
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- }
- @PostMapping("/mqPhoneRegister")
- @ApiOperation(value = "手机号密码注册")
- public String mqPhoneRegister(String phone, String code, String password, String inviteCode, Long invitor,
- Long collectionId, Long showroomId) {
- // boolean verify = captchaService.verify(captchaKey, captcha);
- // if (!verify) {
- // throw new BusinessException("验证码错误");
- // }
- return userService.mqRegister(phone, code, password, inviteCode, invitor, collectionId, showroomId);
- }
- @GetMapping("/registerResult")
- public Object registerResult(String phone) {
- Object res = userService.getRegisterResult(phone);
- Map<String, Object> map = new HashMap<>();
- if (res == null) {
- map.put("status", "pending");
- return map;
- } else {
- return res;
- }
- }
- @PostMapping("/mpLogin")
- @ApiOperation(value = "公众号登录")
- public String mpLogin(String code) {
- try {
- User user = userService.loginMp(code);
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- } catch (Exception e) {
- log.error("loginByCode", e);
- throw new AuthenticationException("登陆错误", e);
- }
- }
- @PostMapping("/maLogin")
- @ApiOperation(value = "小程序登录")
- public String maLogin(String code) {
- try {
- User user = userService.loginMa(code);
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- } catch (Exception e) {
- log.error("loginByCode", e);
- throw new AuthenticationException("登陆错误", e);
- }
- }
- @GetMapping("/getTime")
- public Long getTime() {
- return System.currentTimeMillis();
- }
- @PostMapping("/oneKeyLogin")
- public String oneKeyLogin(String umengKey, String token) {
- User user = userService.oneKeyLogin(umengKey, token);
- return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
- }
- @GetMapping("/touristLogin")
- public MetaTouristDTO touristLogin() {
- MetaTourist save = metaTouristRepo.save(new MetaTourist());
- MetaTouristDTO metaTouristDTO = new MetaTouristDTO();
- metaTouristDTO.setUserId(-save.getUserId());
- metaTouristDTO.setNickname("游客-" + RandomStringUtils.randomAlphabetic(8));
- return metaTouristDTO;
- }
- }
|