package com.ruoyi.account.controller;
|
|
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.alipay.api.internal.util.codec.Base64;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.ruoyi.account.api.dto.PhoneLoginDTO;
|
import com.ruoyi.account.api.model.TAppUser;
|
import com.ruoyi.account.service.TAppUserService;
|
import com.ruoyi.account.util.RptUtils;
|
import com.ruoyi.account.wx.body.resp.Code2SessionRespBody;
|
import com.ruoyi.account.wx.body.resq.Code2SessionResqBody;
|
import com.ruoyi.account.wx.model.WeixinProperties;
|
import com.ruoyi.account.wx.pojo.AppletUserDecodeData;
|
import com.ruoyi.account.wx.pojo.AppletUserEncrypteData;
|
import com.ruoyi.account.wx.tools.WxAppletTools;
|
import com.ruoyi.account.wx.tools.WxUtils;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.exception.ServiceException;
|
import com.ruoyi.common.core.utils.HttpUtils;
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
import com.ruoyi.common.redis.service.RedisService;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpMethod;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.client.RestTemplate;
|
|
import javax.annotation.Resource;
|
import java.io.ByteArrayInputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.io.OutputStream;
|
import java.security.SecureRandom;
|
import java.util.HashMap;
|
import java.util.Map;
|
import java.util.Objects;
|
|
/**
|
* <p>
|
* H5手机号登录 前端控制器
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2024-08-06
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/phone")
|
public class PhoneLoginController {
|
@Autowired
|
private TAppUserService appUserService;
|
|
@ApiOperation(value = "H5通过手机号登录",tags = {"H5通过手机号登录"})
|
@PostMapping("/phoneLogin")
|
public AjaxResult<Map<String, Object>> phoneLogin(@RequestBody PhoneLoginDTO dto) {
|
// 查询手机号是否存在与系统
|
TAppUser appUser = appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class)
|
.eq(TAppUser::getPhone, dto.getPhoneNumber())
|
.eq(TAppUser::getStatus,1)
|
.last("LIMIT 1"));
|
if(Objects.isNull(appUser)){
|
appUser = new TAppUser();
|
appUser.setPhone(dto.getPhoneNumber());
|
}
|
if(Objects.nonNull(appUser.getStatus())){
|
switch (appUser.getStatus()){
|
case 1:
|
break;
|
case 2:
|
throw new ServiceException("账号被冻结,请联系管理员");
|
case 3:
|
appUser = new TAppUser();
|
appUser.setPhone(dto.getPhoneNumber());
|
break;
|
}
|
}
|
appUser.setAvatar(org.springframework.util.StringUtils.hasLength(appUser.getAvatar())?appUser.getAvatar():"http://221.182.45.100:8090/2024-10-26/logo.png");
|
appUser.setName(StringUtils.hasLength(appUser.getName())?appUser.getName(): RptUtils.around(dto.getPhoneNumber(),3,4));
|
appUserService.saveOrUpdate(appUser);
|
return AjaxResult.success(appUserService.getUserInfo(appUser));
|
}
|
}
|