提交 54465333 编写于 作者: peijun.zhao's avatar peijun.zhao

微信绑定用户后 多返回openId

上级 35158ffa
流水线 #30189 已失败 于阶段
in 0 second
......@@ -205,12 +205,14 @@ public class LoginController extends AccountBaseController {
cacheClient.expire(cache_prifix + request.getWeChatCode(), 60);
long doctorId = super.getDoctorIdByToken();
logger.info("bindWeChat doctorId:{}",doctorId);
String nickname = loginService.bindWeChat(doctorId, request);
Map<String, String> map = new HashMap();
map.put("nickname", nickname);
// String nickname = loginService.bindWeChat(doctorId, request);
Map<String,String> rtnMap = loginService.bindWeChatMap(doctorId, request);
// Map<String, String> map = new HashMap();
// map.put("nickname", rtnMap.get("nickname"));
//成功以后释放锁
cacheClient.del(cache_prifix + request.getWeChatCode());
return PicaResponse.toResponse(map);
return PicaResponse.toResponse(rtnMap);
} catch (Exception e) {
cacheClient.del(cache_prifix + request.getWeChatCode());
logger.error("bindWeChat-" + e.getMessage(), e);
......
......@@ -59,6 +59,8 @@ public interface LoginService {
*/
String bindWeChat(long doctorId, BaseRequest request);
Map bindWeChatMap(long doctorId, BaseRequest request);
PICAPDoctor queryDoctor(long doctorId);
/**
......
......@@ -523,6 +523,31 @@ public class LoginServiceImpl implements LoginService {
return weChatUserInfoEntity.getNickname();
}
@Override
@Transactional
public Map bindWeChatMap(long doctorId, BaseRequest request) {
WeChatEntity weChatEntity = WeChatUtils.getAuthorizationInfo(appId, appSecret, request.getWeChatCode());
Map map = new HashMap();
map.put("access_token", weChatEntity.getAccess_token());
map.put("openid", weChatEntity.getOpenid());
Map weChatUserInfo = WeChatUtils.getWeChatUserInfo(map, weChatURL);
WeChatUserInfoEntity weChatUserInfoEntity = WeChatUtils.mergeWechatUserInfo(weChatUserInfo, weChatEntity.getOpenid());
String unionId = weChatUserInfoEntity.getUnionid();
AccountWeChatInfoEntity entity = accountWeChatInfoMapper.selectByUnionId(unionId);
if (entity == null) {
processWeChatInfoUser(weChatUserInfoEntity, request.getWeChatLoginType());
} else {
updateWechatInfoUser(entity, weChatUserInfoEntity);
}
Integer acctId = doctorInfoMapper.getAcctIdByDoctorId(doctorId);
processAccountUnion(acctId, unionId, request.getProductType());
Map<String,String> rtnMap = new HashMap();
rtnMap.put("openId",weChatEntity.getOpenid());
rtnMap.put("nickname",weChatUserInfoEntity.getNickname());
return rtnMap;
}
/**
* 把unionId存储到联合登录表中
*
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册