Merge branch 'cc_20230520_partner' of http://gitlab.coolcollege.cn/hangzhou/java/coolstore-partner-manage into cc_20230520_partner

# Conflicts:
#	coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java
This commit is contained in:
pserimal
2023-06-09 13:44:21 +08:00
47 changed files with 1128 additions and 347 deletions

View File

@@ -10,11 +10,7 @@ public class CurrentUser {
private String name;
private String enterpriseId;
private String dingCorpId;
private String appType;
private String corpId;
private String accessToken;
@@ -23,19 +19,15 @@ public class CurrentUser {
*/
private String roleIds;
private String dbName;
/**
* 钉钉管理员和数智门店无关
*/
private Boolean isAdmin;
/**
* 角色权限
* 头像
*/
private String roleAuth;
private String mainCorpId;
private String avatar;
private SysRoleDO sysRoleDO;
}

View File

@@ -6,7 +6,7 @@ import org.apache.commons.lang3.StringUtils;
/**
*
*/
public class UserContext {
public class CurrentUserContext {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();

View File

@@ -0,0 +1,16 @@
package com.cool.store.service;
import com.cool.store.vo.menu.MenuTreeVO;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: MenuService
* @Description:
* @date 2023-06-08 16:43
*/
public interface MenuService {
List<MenuTreeVO> getUserMenus(String userId);
}

View File

@@ -80,6 +80,8 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
enterpriseUserRoleDAO.batchInsertOrUpdate(userRoleInsertOrUpdateList);
//删除不存在的角色?
sysRoleDAO.deleteRole(DataSourceEnum.SYNC, roleIds);
}else {
//如果为空 是不是得删除角色 及用户角色信息?
}
}

View File

@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.RandomNumberGenerator;
import org.apache.shiro.crypto.SecureRandomNumberGenerator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -40,6 +41,8 @@ public class LoginServiceImpl implements LoginService {
private RedisUtilPool redisUtilPool;
@Resource
private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
@Value("${corp.id:null}")
private String corpId;
@Override
public Object feiShuLogin(String userId, Boolean needRefreshToken, String avatar) {
@@ -73,25 +76,20 @@ public class LoginServiceImpl implements LoginService {
enterpriseUser.setFaceUrl(finalAvatar);
currentUser.setUserId(enterpriseUser.getUserId());
currentUser.setIsAdmin(enterpriseUser.getIsAdmin());
//设置当前登录人使用的企业相关信息
//currentUser.setRoleAuth(sysRole.getRoleAuth());
currentUser.setSysRoleDO(sysRole);
currentUser.setCorpId(corpId);
currentUser.setAvatar(enterpriseUser.getAvatar());
//生成令牌
RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator();
String token = randomNumberGenerator.nextBytes().toHex();
String refreshToken = randomNumberGenerator.nextBytes().toHex();
currentUser.setName(enterpriseUser.getName());
currentUser.setAccessToken(token);
JSONObject jsonObject = new JSONObject();
jsonObject.put("action_token", token);
jsonObject.put("user", currentUser);
redisUtilPool.setString(CommonConstants.ACCESS_TOKEN_KEY + ":" + token, JSON.toJSONString(currentUser), CommonConstants.ACTION_TOKEN_EXPIRE);
jsonObject.put("expire", CommonConstants.ACTION_TOKEN_EXPIRE);
redisUtilPool.setString(CommonConstants.ACCESS_TOKEN_KEY + ":" + token, JSON.toJSONString(currentUser), CommonConstants.ACCESS_TOKEN_EXPIRE);
redisUtilPool.setString(currentUser.getUserId(), token);
redisUtilPool.setString(CommonConstants.REFRESH_TOKEN_KEY+":"+refreshToken,JSON.toJSONString(refreshUser), CommonConstants.REFRESH_TOKEN_EXPIRE);
jsonObject.put("refresh_token",refreshToken);
log.info("[" + enterpriseUser.getName() + "; action_token"+ token + "; userId" + currentUser.getUserId() +"]登入系统成功");
return jsonObject;
return currentUser;
}
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.service.impl;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.SysMenuDAO;
import com.cool.store.entity.SysMenuDO;
import com.cool.store.enums.PlatFormTypeEnum;
import com.cool.store.service.MenuService;
import com.cool.store.vo.menu.MenuTreeVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: MenuServiceImpl
* @Description:
* @date 2023-06-08 16:43
*/
@Service
public class MenuServiceImpl implements MenuService {
@Resource
private SysMenuDAO sysMenuDAO;
@Override
public List<MenuTreeVO> getUserMenus(String userId) {
List<SysMenuDO> menuList= sysMenuDAO.selectMenuAll(null, PlatFormTypeEnum.PC.getCode());
return MenuTreeVO.dealMenuTree(CommonConstants.ZERO_LONG, menuList);
}
}

View File

@@ -1,50 +0,0 @@
package com.cool.store.utils;
import com.cool.store.context.DataSourceContext;
import com.cool.store.context.UserContext;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
public class DataSourceHelper {
private static final Logger logger = LoggerFactory.getLogger(DataSourceHelper.class);
/**
* @param
* @return void
* @throws
* @Title changeToMy
* @Description 切换到自己的数据库
*/
public static void changeToMy() {
DataSourceContext.clearDataSourceType();
String dbName = UserContext.getUser().getDbName();
DataSourceContext.setDataSourceType(dbName);
}
/**
* @param datasource
* @return void
* @throws
* @Title changeToSpecificDataSource
* @Description 切换到指定的数据库
*/
public static void changeToSpecificDataSource(String datasource) {
DataSourceContext.clearDataSourceType();
String dbName = datasource;
DataSourceContext.setDataSourceType(dbName);
}
/**
* @param
* @return void
* @throws
* @Title reset
* @Description 重置链接到主库
*/
public static void reset() {
DataSourceContext.clearDataSourceType();
}
}