|
|
@@ -13,6 +13,7 @@ import com.ylx.common.core.controller.BaseController;
|
|
|
import com.ylx.common.core.domain.AjaxResult;
|
|
|
import com.ylx.common.core.domain.R;
|
|
|
import com.ylx.common.core.domain.model.BindPhoneBody;
|
|
|
+import com.ylx.common.core.domain.model.PhoneLoginBody;
|
|
|
import com.ylx.common.core.domain.model.WxLoginUser;
|
|
|
import com.ylx.common.core.redis.RedisCache;
|
|
|
import com.ylx.common.enums.BusinessType;
|
|
|
@@ -309,16 +310,9 @@ public class WeChatController extends BaseController {
|
|
|
@Log(title = "获取微信code", businessType = BusinessType.OTHER)
|
|
|
@GetMapping("/getCode")
|
|
|
public String weiXinLogin(String state) {
|
|
|
-// QrConfig config = new QrConfig(300, 300);
|
|
|
- // 设置边距,即二维码和背景之间的边距
|
|
|
-// config.setMargin(1);
|
|
|
- // 生成二维码到文件,也可以到流
|
|
|
String code = weChatUtil.getCode(state);
|
|
|
log.info("code的值:{}", code);
|
|
|
redisCache.setCacheObject("code", state, 10, TimeUnit.MINUTES);
|
|
|
-
|
|
|
-// QrCodeUtil.generate(code, config,
|
|
|
-// FileUtil.file(IMG_PATH));
|
|
|
return code;
|
|
|
}
|
|
|
|
|
|
@@ -575,4 +569,45 @@ public class WeChatController extends BaseController {
|
|
|
return fixedVerifyCode.equals(code);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 手机号登录
|
|
|
+ *
|
|
|
+ * @param phoneLoginBody 手机号登录请求参数
|
|
|
+ * @return R<WxLoginUser> 登录结果
|
|
|
+ */
|
|
|
+ @ApiOperation("手机号登录")
|
|
|
+ @PostMapping("/phoneLogin")
|
|
|
+ @Log(title = "手机号登录", businessType = BusinessType.OTHER)
|
|
|
+ public R<WxLoginUser> phoneLogin(@RequestBody PhoneLoginBody phoneLoginBody) {
|
|
|
+ String phone = phoneLoginBody.getPhone();
|
|
|
+ String code = phoneLoginBody.getCode();
|
|
|
+
|
|
|
+ // 校验验证码(验证码不为空且为6位数字在@Valid注解中已校验)
|
|
|
+ if (StringUtils.isEmpty(code)) {
|
|
|
+ return R.fail("验证码不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 手机号登录获取用户
|
|
|
+ TWxUser user = wxUserService.phoneLogin(phone);
|
|
|
+ if (user == null) {
|
|
|
+ return R.fail("登录失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建WxLoginUser
|
|
|
+ WxLoginUser wxUser = new WxLoginUser();
|
|
|
+ BeanUtils.copyProperties(user, wxUser);
|
|
|
+
|
|
|
+ // 生成并返回令牌
|
|
|
+ String token = wxTokenService.createToken(wxUser);
|
|
|
+ log.info("手机号登录生成的token值:{}", token);
|
|
|
+ if (StringUtils.isEmpty(token)) {
|
|
|
+ return R.fail("生成令牌失败");
|
|
|
+ }
|
|
|
+ wxUser.setToken(token);
|
|
|
+ // 记录登录信息
|
|
|
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(phone, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
|
|
+ log.info("手机号: {} 登录成功", phone);
|
|
|
+ return R.ok(wxUser);
|
|
|
+ }
|
|
|
}
|