1 /**
2 * 手机端微信登陆3 *4 *@return
5 */
6 @RequestMapping(value = "/wxLogin", method =RequestMethod.GET)7 @ResponseBody8 public R wxLogin(String userResult, String state, @RequestParam(required = false, value = "userId") String userId) throwsException {9 //System.out.println(userResult+"\n"+state+"\n"+userId);
10 WxUser wxUser = JSON.parseObject(userResult, WxUser.class);11 UserInfo userInfo = newUserInfo();12 userInfo.setUnionId(wxUser.getUnionid());13 userInfo.setOpenid(wxUser.getOpenid());14 userInfo.setSex((long) wxUser.getSex());15 userInfo.setHeadImgUrl(wxUser.getHeadimgurl());16 if(EmojiUtil.containsEmoji(wxUser.getNickName())) {17 logger.info(wxUser.getNickName());18 userInfo.setNickName(EmojiUtil.emojiConverterToAlias(wxUser.getNickName()));19 } else{20 userInfo.setNickName(wxUser.getNickName());21 }22 System.out.println(userInfo.getUnionId());23 UserInfo userInfo1;24 WebSocket webSocket =WebSocket.getWebSocket(state);25 Map m = new HashMap<>();26 //登录
27 if (userId == null || "".equals(userId)) {28 if ((userInfo1 = userInfoService.selectWx(userInfo)) != null) {29 //判定账号是否被禁用
30 if (userInfo1.getUserState() != 1) {31 R r = newR();32 r.put("code", 500);33 r.put("msg", "此账号因为特殊原因已被禁用,若想重新启用,请联系管理员");34 webSocket.sendMessage(JSON.toJSONString(r));35 return null;36 }37
38 userInfo.setUserId(userInfo1.getUserId());39 //System.out.println(userInfo1.getHeadImgUrl()+"你好呀");
40 if (userInfo1.getHeadImgUrl() != null) {41 userInfo.setHeadImgUrl(null);42 }43 //System.out.println(userInfo.getHeadImgUrl()+"你好");
44 userInfoService.updateByPrimaryKeySelective(userInfo);45 UserInfo userInfo2 =userInfoService.selectWx(userInfo);46 if(EmojiUtil.containsEmoji(userInfo2.getNickName())) {47 userInfo2.setNickName(EmojiUtil.emojiConverterUnicodeStr(userInfo2.getNickName()));48 }49 m.put("openId", userInfo2.getOpenid());50 m.put("userId", userInfo2.getUserId());51 m.put("createTime", newDate());52 String javaWebToken =WebTokenUtil.createJavaWebToken(m);53 userInfo2.setToken(javaWebToken);54 redisCache.setValue(javaWebToken, "1", 1, TimeUnit.DAYS);55 webSocket.sendMessage(JSON.toJSONString(userInfo2));//登录用户信息发送给web
56 return R.ok("登录成功");57 } else{58 userInfo.setUserName(userInfo.getNickName());59 userInfoService.insertSelective(userInfo);60 UserInfo userInfo3 =userInfoService.selectWx(userInfo);61 if(EmojiUtil.containsEmoji(userInfo3.getNickName())) {62 userInfo3.setNickName(EmojiUtil.emojiConverterUnicodeStr(userInfo3.getNickName()));63 }64 //判定账号是否被禁用
65 if (userInfo3.getUserState() != 1) {66 R r = newR();67 r.put("code", 500);68 r.put("msg", "此账号因为特殊原因已被禁用,若想启用,请联系管理员");69 webSocket.sendMessage(JSON.toJSONString(r));70 return null;71 }72
73 System.out.println(userInfo.getOpenid());74 m.put("openId", userInfo3.getOpenid());75 m.put("userId", userInfo3.getUserId());76 m.put("createTime", newDate());77 String javaWebToken =WebTokenUtil.createJavaWebToken(m);78 userInfo3.setToken(javaWebToken);79 redisCache.setValue(javaWebToken, "1", 1, TimeUnit.DAYS);80 webSocket.sendMessage(JSON.toJSONString(userInfo3));//登录用户信息发送给web
81 return R.ok("登录成功");82 }83 } else{84 userInfo.setUserId(Long.valueOf(userId));85 //绑定微信前先判断数据库中是否有头像,如果有,不更改头像
86 List selectmemberlist =userInfoService.selectmemberlist(userInfo);87 if (selectmemberlist.get(0).getHeadImgUrl() != null) {88 userInfo.setHeadImgUrl(null);89 }90
91 UserInfo userInfo2 =userInfoService.selectWx(userInfo);92 if (userInfo2 != null) {93 R r = newR();94 r.put("code", 500);95 r.put("msg", "此微信已被注册,若确认是你本人微信,请联系管理员帮你更改");96 webSocket.sendMessage(JSON.toJSONString(r));97 return R.error("");98 }99 if(EmojiUtil.containsEmoji(wxUser.getNickName())) {100 userInfo.setNickName( EmojiUtil.emojiConverterToAlias(wxUser.getNickName()));101 }102 R r =userInfoService.updateByPrimaryKeySelective(userInfo);103 if (r.get("code").equals(200)) {104 R r1 = newR();105 r1.put("code", 200);106 r1.put("msg", "更改成功");107 webSocket.sendMessage(JSON.toJSONString(r1));108 } else{109 R r2 = newR();110 r2.put("code", 500);111 r2.put("msg", "更改失败");112 webSocket.sendMessage(JSON.toJSONString(r2));113 }114 returnr;115 }116 }117
118 }