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; /** *

* H5手机号登录 前端控制器 *

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