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

加入微信登录相关信息

上级 7623d9f6
......@@ -126,6 +126,7 @@ public class AppUserController extends AbstractController {
return R.ok(map);
}
@Login
@PostMapping("update")
@ApiOperation("用户信息修改")
// @ApiLog("用户信息修改")
......@@ -162,33 +163,37 @@ public class AppUserController extends AbstractController {
return R.ok();
}
/**
* 登录
*/
@PostMapping("login")
@ApiOperation("用户登录")
@ApiLog("用户登录")
public R login(@RequestBody LoginForm form) {
//表单校验
ValidatorUtils.validateEntity(form);
//用户登录
AppUserEntity user = otherAppUserService.login(form);
/* String openId = null;
if (StringUtils.isNotBlank(form.getCode())) {
if (StringUtils.isBlank(form.getKey())) {
return R.error("登录失败!key为空");
// @ApiLog("用户登录")
public R login(@RequestBody Map<String, Object> params) {
String openid = (String) params.get("openid");
String code = (String) params.get("code");
String unionid = null;
if(StringUtils.isEmpty(openid) && StringUtils.isNotEmpty(code)) {
String info = getWechatInfo(code);
if(info != null) {
JSONObject json = JSONObject.parseObject(info);
openid = json.getString("openid");
unionid = json.getString("unionid");
if(StringUtils.isNotEmpty(unionid)) {
openid = unionid;
}
try {
openId = getOpenId(form.getCode(), form.getKey());
} catch (IOException e) {
return R.error("登录失败, 请重试!");
} else {
return R.error("查找用户openid失败!");
}
}*/
Map<String, Object> map = genTokenAndGetData(user, form.getClientId(), form.getRole());
// map.put("openId", openId);
}
AppUserEntity member = otherAppUserService.getOne(new QueryWrapper<AppUserEntity>().eq("open_id", openid));
if (member != null) {
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);
}else {
return R.error("当前微信暂未绑定任何账号!");
}
}
/**
* 忘记密码
......@@ -463,6 +468,23 @@ public class AppUserController extends AbstractController {
public R getMiniInfo(@RequestBody Map<String, Object> params) {
String code = (String) params.get("code");
//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";
//使用HttpClient发送请求
CloseableHttpClient httpclient = HttpClients.createDefault();
......@@ -481,12 +503,7 @@ public class AppUserController extends AbstractController {
e.printStackTrace();
}
logger.info("result:{}", result);
if(result != null) {
return R.ok(JSONObject.parseObject(result));
// String openid = jsonObject.get("openid").toString();
// logger.info("openid" + openid);
}
return R.error();
return result;
}
/**
......@@ -547,7 +564,8 @@ public class AppUserController extends AbstractController {
if(_user != null) {//已经注册过了,直接登录即可
String token = jwtUtils.generateToken(_user.getId() +"#"+_user.getPhone());
result.put("token", token);
result.put("id", _user.getId());
_user.setOpenId(unionid);
result.put("user", _user);
AppUserEntity userEntity = new AppUserEntity();
userEntity.setId(_user.getId());
userEntity.setOpenId(unionid);
......@@ -556,15 +574,29 @@ public class AppUserController extends AbstractController {
} else {//注册用户
AppUserEntity user = new AppUserEntity();
user.setPhone(phoneNumber);
user.setNickname("微信用户");
user.setNickname("暂未设置");
user.setOpenId(unionid);
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);
result.put("token", token);
result.put("id", user.getId());
result.put("user", otherAppUserService.getById(user.getId()));
}
} else {
return R.error("获取手机号码错误");
}
return R.ok(result);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论