提交 fbe331fe authored 作者: linzhenjie's avatar linzhenjie

加入微信登录相关信息

上级 7623d9f6
...@@ -126,6 +126,7 @@ public class AppUserController extends AbstractController { ...@@ -126,6 +126,7 @@ public class AppUserController extends AbstractController {
return R.ok(map); return R.ok(map);
} }
@Login
@PostMapping("update") @PostMapping("update")
@ApiOperation("用户信息修改") @ApiOperation("用户信息修改")
// @ApiLog("用户信息修改") // @ApiLog("用户信息修改")
...@@ -162,33 +163,37 @@ public class AppUserController extends AbstractController { ...@@ -162,33 +163,37 @@ public class AppUserController extends AbstractController {
return R.ok(); return R.ok();
} }
/**
* 登录
*/
@PostMapping("login") @PostMapping("login")
@ApiOperation("用户登录") @ApiOperation("用户登录")
@ApiLog("用户登录") // @ApiLog("用户登录")
public R login(@RequestBody LoginForm form) { public R login(@RequestBody Map<String, Object> params) {
//表单校验 String openid = (String) params.get("openid");
ValidatorUtils.validateEntity(form); String code = (String) params.get("code");
String unionid = null;
//用户登录 if(StringUtils.isEmpty(openid) && StringUtils.isNotEmpty(code)) {
AppUserEntity user = otherAppUserService.login(form); String info = getWechatInfo(code);
/* String openId = null; if(info != null) {
if (StringUtils.isNotBlank(form.getCode())) { JSONObject json = JSONObject.parseObject(info);
if (StringUtils.isBlank(form.getKey())) { openid = json.getString("openid");
return R.error("登录失败!key为空"); unionid = json.getString("unionid");
if(StringUtils.isNotEmpty(unionid)) {
openid = unionid;
} }
try { } else {
openId = getOpenId(form.getCode(), form.getKey()); return R.error("查找用户openid失败!");
} catch (IOException e) {
return R.error("登录失败, 请重试!");
} }
}*/ }
Map<String, Object> map = genTokenAndGetData(user, form.getClientId(), form.getRole()); AppUserEntity member = otherAppUserService.getOne(new QueryWrapper<AppUserEntity>().eq("open_id", openid));
if (member != null) {
// map.put("openId", openId); String token = jwtUtils.generateToken(member.getId() +"#"+member.getPhone());
Map<String, Object> map = new HashMap<>();
map.put("token", token);
// map.put("expire", jwtUtils.getExpire());
map.put("user", member);
return R.ok(map); return R.ok(map);
}else {
return R.error("当前微信暂未绑定任何账号!");
}
} }
/** /**
* 忘记密码 * 忘记密码
...@@ -463,6 +468,23 @@ public class AppUserController extends AbstractController { ...@@ -463,6 +468,23 @@ public class AppUserController extends AbstractController {
public R getMiniInfo(@RequestBody Map<String, Object> params) { public R getMiniInfo(@RequestBody Map<String, Object> params) {
String code = (String) params.get("code"); String code = (String) params.get("code");
//wx接口路径 //wx接口路径
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + appSecret + "&js_code=" + code + "&grant_type=authorization_code";
//使用HttpClient发送请求
CloseableHttpClient httpclient = HttpClients.createDefault();
//发送Get请求
HttpGet request = new HttpGet(url);
request.addHeader("Content-Type", "application/json");
//获得响应
String result = getWechatInfo(code);// 转成string
if(result != null) {
return R.ok(JSONObject.parseObject(result));
// String openid = jsonObject.get("openid").toString();
// logger.info("openid" + openid);
}
return R.error();
}
private String getWechatInfo(String code) {
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + appSecret + "&js_code=" + code + "&grant_type=authorization_code"; String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + appSecret + "&js_code=" + code + "&grant_type=authorization_code";
//使用HttpClient发送请求 //使用HttpClient发送请求
CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpClient httpclient = HttpClients.createDefault();
...@@ -481,12 +503,7 @@ public class AppUserController extends AbstractController { ...@@ -481,12 +503,7 @@ public class AppUserController extends AbstractController {
e.printStackTrace(); e.printStackTrace();
} }
logger.info("result:{}", result); logger.info("result:{}", result);
if(result != null) { return result;
return R.ok(JSONObject.parseObject(result));
// String openid = jsonObject.get("openid").toString();
// logger.info("openid" + openid);
}
return R.error();
} }
/** /**
...@@ -547,7 +564,8 @@ public class AppUserController extends AbstractController { ...@@ -547,7 +564,8 @@ public class AppUserController extends AbstractController {
if(_user != null) {//已经注册过了,直接登录即可 if(_user != null) {//已经注册过了,直接登录即可
String token = jwtUtils.generateToken(_user.getId() +"#"+_user.getPhone()); String token = jwtUtils.generateToken(_user.getId() +"#"+_user.getPhone());
result.put("token", token); result.put("token", token);
result.put("id", _user.getId()); _user.setOpenId(unionid);
result.put("user", _user);
AppUserEntity userEntity = new AppUserEntity(); AppUserEntity userEntity = new AppUserEntity();
userEntity.setId(_user.getId()); userEntity.setId(_user.getId());
userEntity.setOpenId(unionid); userEntity.setOpenId(unionid);
...@@ -556,15 +574,29 @@ public class AppUserController extends AbstractController { ...@@ -556,15 +574,29 @@ public class AppUserController extends AbstractController {
} else {//注册用户 } else {//注册用户
AppUserEntity user = new AppUserEntity(); AppUserEntity user = new AppUserEntity();
user.setPhone(phoneNumber); user.setPhone(phoneNumber);
user.setNickname("微信用户"); user.setNickname("暂未设置");
user.setOpenId(unionid); user.setOpenId(unionid);
user.setPassword(DigestUtils.sha256Hex(StringUtils.random(6, StringUtils.RandomType.INT))); user.setPassword(DigestUtils.sha256Hex(StringUtils.random(6, StringUtils.RandomType.INT)));
otherAppUserService.save(user);
ShFamilyEntity family = new ShFamilyEntity();
family.setName("我的家");
family.setUserId(user.getId());
otherShFamilyService.save(family);
//新增家庭成员
ShFamilyMemberEntity member = new ShFamilyMemberEntity();
member.setFamilyId(family.getId());
member.setUserId(user.getId());
member.setIsAdmin(1);//管理员
shFamilyMemberService.save(member);
String token = jwtUtils.generateToken(user.getId() +"#"+phoneNumber); String token = jwtUtils.generateToken(user.getId() +"#"+phoneNumber);
result.put("token", token); result.put("token", token);
result.put("id", user.getId()); result.put("user", otherAppUserService.getById(user.getId()));
} }
} else {
return R.error("获取手机号码错误");
} }
return R.ok(result); return R.ok(result);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论