微信登录,回调

beetlsql3-dev
Mlxa0324
parent 490299fdd2
commit c7ef000f02

@ -1,21 +1,21 @@
package com.ibeetl.jlw.entity;
import javax.validation.constraints.NotNull;
import com.ibeetl.admin.core.entity.BaseEntity;
import org.beetl.sql.annotation.entity.*;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.util.ValidateConfig;
import org.beetl.sql.annotation.entity.AssignID;
import org.beetl.sql.annotation.entity.InsertIgnore;
import org.beetl.sql.annotation.entity.UpdateIgnore;
import org.beetl.sql.fetch.annotation.Fetch;
import org.beetl.sql.fetch.annotation.FetchSql;
import com.ibeetl.admin.core.annotation.Dict;
import java.math.BigDecimal;
import java.util.Date;
import javax.validation.constraints.NotNull;
/*
*
* gen by Spring Boot2 Admin 2022-11-08
*/
@Fetch
public class CoreUserWx extends BaseEntity{
//微信绑定主键
@ -32,6 +32,13 @@ public class CoreUserWx extends BaseEntity{
//系统用户id
private Long userId ;
// 查询关联的系统用户表,判断删除状态和启用状态
@FetchSql("select * from core_user t where t.id = #userId# and t.state = 'S1' and t.del_flag = 0 limit 1")
@UpdateIgnore
@InsertIgnore
private CoreUser coreUser;
//用户昵称
@ -170,4 +177,11 @@ public class CoreUserWx extends BaseEntity{
}
public CoreUser getCoreUser() {
return coreUser;
}
public void setCoreUser(CoreUser coreUser) {
this.coreUser = coreUser;
}
}

@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.BaseEntity;
import com.ibeetl.admin.core.enums.MenuEnums;
import org.beetl.sql.annotation.entity.AutoID;
import org.beetl.sql.fetch.annotation.Fetch;
@ -12,13 +13,14 @@ import javax.validation.constraints.NotNull;
import java.util.Date;
import static cn.hutool.core.date.DateUtil.date;
import static com.ibeetl.admin.core.enums.MenuEnums.JT_S_04;
/*
*
* gen by Spring Boot2 Admin 2021-06-19
*/
@Fetch
public class UniversitiesColleges extends BaseEntity{
public class UniversitiesColleges extends BaseEntity implements AbstractToken {
//ID
@NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class)
@ -221,6 +223,16 @@ public class UniversitiesColleges extends BaseEntity{
this.universitiesCollegesStatus = universitiesCollegesStatus;
}
@Override
public String getId() {
return universitiesCollegesId.toString();
}
@Override
public MenuEnums getIdentity() {
return JT_S_04;
}
/**
*@return
*/

@ -1,43 +1,32 @@
package com.ibeetl.jlw.service;
import java.io.*;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.math.BigDecimal;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.util.TimeTool;
import com.ibeetl.admin.core.rbac.UserLoginInfo;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.web.JsonReturnCode;
import com.ibeetl.jlw.dao.CoreUserWxDao;
import com.ibeetl.jlw.entity.CoreUserWx;
import com.ibeetl.jlw.web.query.CoreUserWxQuery;
import com.ibeetl.jlw.entity.FileEntity;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.PlatformException;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.core.SqlId;
import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.beans.factory.annotation.Autowired;
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
* CoreUserWx Service
@ -50,6 +39,7 @@ import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
public class CoreUserWxService extends CoreBaseService<CoreUserWx>{
@Autowired private CoreUserWxDao coreUserWxDao;
@Autowired private CoreUserService coreUserService;
public PageQuery<CoreUserWx>queryByCondition(PageQuery query){
PageQuery ret = coreUserWxDao.queryByCondition(query);
@ -167,4 +157,36 @@ public class CoreUserWxService extends CoreBaseService<CoreUserWx>{
}
}
/**
*
* @param openId
* @param userId
* @return
*/
public UserLoginInfo buildLoginInfoWithWx(@NotNull String openId, @NotNull Long userId){
// 构建的返回对象
UserLoginInfo loginInfo = new UserLoginInfo();
CoreUserWxQuery coreUserWxQuery = new CoreUserWxQuery();
coreUserWxQuery.setOpenid(openId);
coreUserWxQuery.setUserId(userId);
List<CoreUserWx> info = getValuesByQueryNotWithPermission(coreUserWxQuery);
if (CollectionUtil.isNotEmpty(info)) {
CoreUserWx coreUserWx = info.get(0);
// 微信登录信息,绑定的系统级用户
CoreUser bindCoreUser = coreUserWx.getCoreUser();
Assert.notNull(bindCoreUser, "绑定的用户,处于不存在或者未启用状态!");
// 查询这个对象所在的机构列表
List<CoreOrg> orgs = coreUserService.getUserOrg(bindCoreUser.getId(), bindCoreUser.getOrgId());
loginInfo.setUser(bindCoreUser);
loginInfo.setOrgs(orgs);
loginInfo.setCurrentOrg(orgs.get(0));
return loginInfo;
}
return null;
}
}

@ -2,21 +2,16 @@ package com.ibeetl.jlw.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.jlw.token.TokenService;
import cn.jlw.webSocket.WebSocketServer;
import com.ibeetl.admin.core.conf.CacheConfig;
import com.ibeetl.admin.core.conf.WxMpConfig;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.UserLoginInfo;
import com.ibeetl.admin.core.service.CorePlatformService;
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;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import me.chanjar.weixin.mp.builder.kefu.TextBuilder;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -43,6 +38,10 @@ public class MsgHandler extends AbstractHandler {
@Autowired
private TokenService tokenService;
@Autowired
private WebPlatformService webPlatformService;
@Autowired
private CorePlatformService corePlatformService;
@Autowired
private WxMpConfig wxConfig;
/**
@ -74,19 +73,15 @@ 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());
if (student != null) {
token = tokenService.getToken(student);
}else {
Teacher teacher = teacherService.getByUserId(info.get(0).getUserId());
if (teacher !=null) {
token = tokenService.getToken(teacher);
}
}
// 查询关联的状态正常的用户,是否存在
CoreUserWx coreUserWx = info.get(0);
UserLoginInfo userLoginInfo = coreUserWxService
.buildLoginInfoWithWx(coreUserWx.getOpenid(), coreUserWx.getUserId());
// 登录信息存放Session
String tokenNullable = webPlatformService.setLoginUser(userLoginInfo);
map.put("type", "login");
map.put("status", "success");
map.put("token", token);
map.put("token", tokenNullable);
WE_CHAT_MAP.put(userId, map);
// WebSocketServer.sendToUser("token="+token, userId);
return WxMpXmlOutMessage.TEXT().content("登录成功").toUser(fromUser)

@ -1,9 +1,14 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.util.EnumUtil;
import cn.jlw.token.TokenService;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.enums.MenuEnums;
import com.ibeetl.admin.core.rbac.UserLoginInfo;
import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.HttpRequestLocal;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.Teacher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -23,6 +28,8 @@ public class WebPlatformService {
@Autowired private TeacherService teacherService;
@Autowired private StudentService studentService;
@Autowired private UniversitiesCollegesService universitiesCollegesService;
@Autowired private CorePlatformService corePlatformService;
@Autowired private TokenService tokenService;
/**
* Session
@ -75,4 +82,26 @@ public class WebPlatformService {
}
}
}
/**
* Session
* TOKEN
* @param userLoginInfo
*/
public String setLoginUser(@NotNull(message = "登录实体不能为空!") UserLoginInfo userLoginInfo) {
CoreUser user = userLoginInfo.getUser();
corePlatformService.setLoginUser(user, userLoginInfo.getCurrentOrg(), userLoginInfo.getOrgs(), null);
setUserInfoToSessionByIdentity(user);
Student student = studentService.getByUserId(user.getId());
if (student != null) {
return tokenService.getToken(student);
}else {
Teacher teacher = teacherService.getByUserId(user.getId());
if (teacher !=null) {
return tokenService.getToken(teacher);
}
}
return null;
}
}

Loading…
Cancel
Save