关于微信账号和平台账号的关系

来源:10-8 微信登录帐号的创建中

慕用4013838

2020-07-16

老师好,我刚刚做到微信登录这一部分。按照老师您上传的代码的逻辑,只要是第一次用微信账号登录(无论是否用户已经在平台拥有账号),就会给用户重新创建一个属于平台的账号(一条新的数据在tb_person_info)。这样的话,就是说如果我用微信账号登录和直接在平台登录会得到不同的账号信息。

不知道我理解的是不是对的?因为我还没有阅读后面的代码,不知道后续在创建平台账号部分是不是针对这个问题有连接起来的办法。

还有就是源码这一部分

			if (wechatAuth.getPersonInfo() != null && wechatAuth.getPersonInfo().getUserId() == null) {
				try {					
					wechatAuth.getPersonInfo().setCreateTime(new Date());
					wechatAuth.getPersonInfo().setEnableStatus(1);
					PersonInfo personInfo = wechatAuth.getPersonInfo();
					int effectedNum = personInfoDao.insertPersonInfo(personInfo);
					wechatAuth.setPersonInfo(personInfo);
					if (effectedNum <= 0) {
						throw new WechatAuthOperationException("添加用户信息失败");
					}
				} catch (Exception e) {
					log.error("insertPersonInfo error:" + e.toString());
					throw new WechatAuthOperationException("insertPersonInfo error: " + e.getMessage());
				}
			}
			//创建专属于本平台的微信帐号
			int effectedNum = wechatAuthDao.insertWechatAuth(wechatAuth);
			if (effectedNum <= 0) {
				throw new WechatAuthOperationException("帐号创建失败");
			} else {
				return new WechatAuthExecution(WechatAuthStateEnum.SUCCESS, wechatAuth);
			}

感觉没有必要进行外围的if判断,因为根据controller的逻辑,这里的PersonInfo一定不为空,而且也一定不会有userId。不知道我是不是理解的对?

谢谢老师

写回答

1回答

翔仔

2020-07-16

同学好,在这里可以去掉这个判断,但是如果你的service层是开放给第三方调用的话,这里就需要加入校验了:)

此外,本地帐号和微信帐号的关联我们后续会讲,会有一个将本地帐号和微信帐号绑定的功能,主要就是给这两张表指定同一个user_id即可

0
1
慕用4013838
谢谢老师的回答。
2020-07-16
共1条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程