微信绑定

beetlsql3-dev
xuliangtong
parent 9c69cef5d2
commit 0ecb32909d

@ -20,8 +20,10 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Binary Wang
@ -40,6 +42,11 @@ public class MsgHandler extends AbstractHandler {
@Autowired
private WxMpConfig wxConfig;
/**
*
*/
public static ConcurrentHashMap<String, Map<String, Object>> WE_CHAT_MAP = new ConcurrentHashMap<>();
@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
@ -55,6 +62,7 @@ public class MsgHandler extends AbstractHandler {
.build();
}
userId = userId.replace("qrscene_", "");
Map<String, Object> map = new HashMap<>();
//登录
if (userId.contains("login")) {
//登录所包含userId为雪花算法ID
@ -65,11 +73,20 @@ public class MsgHandler extends AbstractHandler {
if (CollectionUtil.isNotEmpty(info)) {
Student student = studentService.getByUserId(info.get(0).getUserId());
String token = tokenService.getToken(student);
WebSocketServer.sendToUser("token="+token, userId);
map.put("type", "login");
map.put("status", "success");
map.put("token", token);
WE_CHAT_MAP.put(userId, map);
// WebSocketServer.sendToUser("token="+token, userId);
return WxMpXmlOutMessage.TEXT().content("登录成功").toUser(fromUser)
.fromUser(wxMessage.getToUser())
.build();
}
map.put("type", "login");
map.put("status", "error");
map.put("token", "登录失败,未绑定账号");
WE_CHAT_MAP.put(userId, map);
return WxMpXmlOutMessage.TEXT().content("登录失败,未绑定账号").toUser(fromUser)
.fromUser(wxMessage.getToUser())
.build();
@ -81,12 +98,20 @@ public class MsgHandler extends AbstractHandler {
coreUserWxQuery2.setUserId(Long.parseLong(userId));
CoreUserWx info2 = coreUserWxService.getInfo(coreUserWxQuery2);
if (info2 != null || info1 != null) {
return WxMpXmlOutMessage.TEXT().content("绑定失败,已经绑定其他账号").toUser(fromUser)
map.put("type", "bind");
map.put("status", "error");
map.put("token", "绑定失败,已经绑定");
WE_CHAT_MAP.put(userId, map);
return WxMpXmlOutMessage.TEXT().content("绑定失败,已经绑定").toUser(fromUser)
.fromUser(wxMessage.getToUser())
.build();
}
coreUserWxQuery2.setOpenid(fromUser);
coreUserWxService.add(coreUserWxQuery2);
map.put("type", "bind");
map.put("status", "success");
map.put("token", "绑定成功");
WE_CHAT_MAP.put(userId, map);
// String redirectURI = wxConfig.getCodeBackUrl();
// String s = weixinService.oauth2buildAuthorizationUrl(redirectURI, "snsapi_userinfo", "STATE");
return WxMpXmlOutMessage.TEXT().content("绑定成功").toUser(fromUser)

@ -8,10 +8,12 @@ import cn.jlw.webSocket.WebSocketServer;
import com.github.binarywang.utils.qrcode.MatrixToImageWriter;
import com.ibeetl.admin.core.conf.WxMpConfig;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.util.map.MapUtil;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.CoreUserWx;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.service.CoreUserWxService;
import com.ibeetl.jlw.service.MsgHandler;
import com.ibeetl.jlw.service.StudentService;
import com.ibeetl.jlw.service.WeixinService;
import com.ibeetl.jlw.web.query.CoreUserWxQuery;
@ -228,4 +230,29 @@ public class WeiXinController {
//endregion 网页授权
//region 登录绑定轮询
/**
*
* @param type login bind
* @param userId id
* @return status success,error,warning
*/
@GetMapping("/getLoginAndBindStatus")
public Map<String, Object> getLoginAndBindStatus(String type, String userId) {
Map<String, Object> userMap = MsgHandler.WE_CHAT_MAP.get(userId);
if (MapUtil.isEmpty(userMap)) {
Map<String, Object> map = new HashMap<>();
map.put("type", type);
map.put("status", "warning");
map.put("token", "微信未回复,请等待");
return map;
}
MsgHandler.WE_CHAT_MAP.remove(userId);
return userMap;
}
//endregion 登录绑定轮询
}
Loading…
Cancel
Save