Merge remote-tracking branch 'origin/beetlsql3-dev' into beetlsql3-dev

beetlsql3-dev
Mlxa0324
commit 8d32b5e386

@ -9,6 +9,7 @@ import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.jlw.entity.CoreUserWx;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.Teacher;
import com.ibeetl.jlw.web.query.CoreUserWxQuery;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.session.WxSessionManager;
@ -20,8 +21,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
@ -36,10 +39,17 @@ public class MsgHandler extends AbstractHandler {
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
@Autowired
private TokenService tokenService;
@Autowired
private WxMpConfig wxConfig;
/**
*
*/
public static ConcurrentHashMap<String, Map<String, Object>> WE_CHAT_MAP = new ConcurrentHashMap<>();
@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
@ -55,6 +65,7 @@ public class MsgHandler extends AbstractHandler {
.build();
}
userId = userId.replace("qrscene_", "");
Map<String, Object> map = new HashMap<>();
//登录
if (userId.contains("login")) {
//登录所包含userId为雪花算法ID
@ -63,13 +74,29 @@ public class MsgHandler extends AbstractHandler {
coreUserWxQuery.setOpenid(fromUser);
List<CoreUserWx> info = coreUserWxService.getValuesByQueryNotWithPermission(coreUserWxQuery);
if (CollectionUtil.isNotEmpty(info)) {
String token = "";
Student student = studentService.getByUserId(info.get(0).getUserId());
String token = tokenService.getToken(student);
WebSocketServer.sendToUser("token="+token, userId);
if (student != null) {
token = tokenService.getToken(student);
}else {
Teacher teacher = teacherService.getByUserId(info.get(0).getUserId());
if (teacher !=null) {
token = tokenService.getToken(teacher);
}
}
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 +108,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