package com.nuvole.four.util;
|
|
import cn.hutool.core.convert.Convert;
|
import com.nuvole.base.domain.SysUser;
|
import com.nuvole.constants.SystemConstants;
|
import com.nuvole.four.contants.Contants;
|
import com.nuvole.four.domain.StoreMemberInfo;
|
import com.nuvole.four.domain.StoreSupplierInfoAccount;
|
import com.nuvole.four.service.RedisService;
|
import com.nuvole.util.JWTUtil;
|
import jakarta.servlet.http.HttpServletRequest;
|
import org.apache.commons.lang.StringEscapeUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
/**
|
* 系统工具类
|
*
|
* @Author: lc
|
* @Date: 2019/6/3 20:10
|
*/
|
@Component
|
public class SystemUtil {
|
|
private static RedisService redisService;
|
|
@Autowired
|
public void setRedisService(RedisService redisService) {
|
SystemUtil.redisService = redisService;
|
}
|
|
/**
|
* 获取request对象
|
*
|
* @param
|
* @return : javax.servlet.http.HttpServletRequest
|
* @author ChenLong
|
* @date 2019/5/8 16:50
|
* @version 1.0
|
*/
|
public static HttpServletRequest getRequest() {
|
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
HttpServletRequest request = requestAttributes.getRequest();
|
return request;
|
}
|
|
/**
|
* 根据key获取header值
|
*
|
* @param k
|
* @param k
|
* @return : java.lang.String
|
* @author ChenLong
|
* @date 2019/5/8 16:55
|
* @version 1.0
|
*/
|
public static String getHeader(String k) {
|
return StringEscapeUtils.unescapeHtml(getRequest().getHeader(k));
|
}
|
|
/**
|
* 取token
|
*/
|
public static String getToken(String loginType) {
|
if (loginType.equals(Contants.LOGIN_TYPE_PC)) {
|
return getPcToken();
|
} else if (loginType.equals(Contants.LOGIN_TYPE_WECHAT)) {
|
return getWechatToken();
|
} else if (loginType.equals(Contants.LOGIN_TYPE_MANAGER_APP)) {
|
return getManagerAppToken();
|
} else if (loginType.equals(Contants.SCAN_WECHAT_TOKEN_HEADER)) {
|
return getScanToken();
|
}
|
return "";
|
}
|
|
/**
|
* 获取header中的扫码付 token
|
*/
|
public static String getScanToken() {
|
return getHeader(SystemConstants.SCAN_WECHAT_TOKEN_HEADER);
|
}
|
|
|
/**
|
* 获取header中PC token
|
*
|
* @param
|
* @return : java.lang.String
|
* @author ChenLong
|
* @date 2019/5/8 16:57
|
* @version 1.0
|
*/
|
public static String getPcToken() {
|
return getHeader(SystemConstants.BASE_PC_TOKEN_HEADER);
|
}
|
|
/**
|
* 获取header中PC 供货商头
|
*
|
* @return
|
*/
|
public static String getSupplierPcToken() {
|
return getHeader(SystemConstants.SUPPLIER_PC_TOKEN_HEADER);
|
}
|
|
/**
|
* 获取header中的WECHAT token
|
*
|
* @Author: lc
|
* @Date: 2019/6/14 11:43
|
*/
|
public static String getWechatToken() {
|
return getHeader(SystemConstants.SHOP_WECHAT_TOKEN_HEADER);
|
}
|
|
/**
|
* 获取header中的客户经理app token
|
*
|
* @Author: lc
|
* @Date: 2019/9/3 15:31
|
*/
|
public static String getManagerAppToken() {
|
return getHeader(SystemConstants.MANAGER_APP_TOKEN_HEADER);
|
}
|
|
/**
|
* 根据token获取pc登录用户信息
|
*
|
* @param token
|
* @return : com.nuvole.merchant.domain.StoreMerchantShopAccount
|
* @author ChenLong
|
* @date 2019/5/8 17:00
|
* @version 1.0
|
*/
|
public static SysUser getPcLoginUserByToken(String token) {
|
try {
|
token = JWTUtil.getSubOfClaims(token);
|
} catch (Exception e) {
|
return null;
|
}
|
|
String redisK = Convert.toStr(redisService.get(SystemConstants.BASE_PC_USER_PREFIX + token));
|
SysUser s = (SysUser) redisService.get(redisK);
|
return s;
|
}
|
public static StoreSupplierInfoAccount getSupplierLoginUserByToken(String token) {
|
try {
|
token = JWTUtil.getSubOfClaims(token);
|
} catch (Exception e) {
|
return null;
|
}
|
|
String redisK = Convert.toStr(redisService.get(SystemConstants.BASE_PC_USER_PREFIX + token));
|
StoreSupplierInfoAccount s = (StoreSupplierInfoAccount) redisService.get(redisK);
|
return s;
|
}
|
|
|
/**
|
* 根据token获取wechat登录用户信息
|
*
|
* @Author: lc
|
* @Date: 2019/6/14 11:44
|
*/
|
public static StoreMemberInfo getWechatLoginUserByToken(String token) {
|
return (StoreMemberInfo) redisService.get(SystemConstants.SHOP_WECHAT_USER_PREFIX + token);
|
}
|
|
/**
|
* 根据token获取扫码付登录用户
|
*
|
* @param token
|
* @return
|
*/
|
public static StoreMemberInfo getScanLoginUserByToken(String token) {
|
return (StoreMemberInfo) redisService.get(SystemConstants.SCAN_WECHAT_USER_PREFIX + token);
|
}
|
|
|
/**
|
* 根据token获取客户经理app登录用户信息
|
*
|
* @Author: lc
|
* @Date: 2019/9/3 15:33
|
*/
|
public static SysUser getManagerAppLoginUserByToken(String token) {
|
try {
|
token = JWTUtil.getSubOfClaims(token);
|
} catch (Exception e) {
|
return new SysUser();
|
}
|
if (redisService.get(SystemConstants.MANAGER_APP_USER_PREFIX + token) == null) {
|
return new SysUser();
|
}
|
String redisK = Convert.toStr(redisService.get(SystemConstants.MANAGER_APP_USER_PREFIX + token));
|
SysUser s = (SysUser) redisService.get(redisK);
|
return s;
|
}
|
//
|
// public static StoreSupplierInfoAccount getLoginSupplierUser() {
|
// StoreSupplierInfoAccount supplierInfo = getPcLoginUserByToken(getPcToken());
|
// if (supplierInfo == null) {
|
// return new StoreSupplierInfoAccount();
|
// }
|
// StoreSupplierInfoAccount s = new StoreSupplierInfoAccount();
|
// BeanUtils.copyProperties(supplierInfo, s);
|
// supplierInfo = s;
|
// return supplierInfo;
|
// }
|
|
/**
|
* 取综合后台PC/客户经理app登录信息
|
*/
|
public static SysUser getLoginUser(String loginType) {
|
if (loginType.equals(Contants.LOGIN_TYPE_PC)) {
|
SysUser sysUser = getPcLoginUserByToken(getPcToken());
|
if (sysUser == null) {
|
return new SysUser();
|
}
|
SysUser s = new SysUser();
|
BeanUtils.copyProperties(sysUser, s);
|
sysUser = s;
|
return sysUser;
|
} else if (loginType.equals(Contants.LOGIN_TYPE_MANAGER_APP)) {
|
SysUser sysUser = getManagerAppLoginUserByToken(getManagerAppToken());
|
SysUser s = new SysUser();
|
BeanUtils.copyProperties(sysUser, s);
|
sysUser = s;
|
return sysUser;
|
}
|
return new SysUser();
|
}
|
|
/**
|
* 取商城微信登录信息
|
*/
|
public static StoreMemberInfo getMemberInfo() {
|
StoreMemberInfo storeMemberInfo = getWechatLoginUserByToken(getWechatToken());
|
if (storeMemberInfo != null) {
|
StoreMemberInfo s = new StoreMemberInfo();
|
BeanUtils.copyProperties(storeMemberInfo, s);
|
storeMemberInfo = s;
|
}
|
return storeMemberInfo;
|
}
|
|
/************************************* 获取登录信息 *****************************************/
|
|
/**
|
* 获取登录信息(商户pc和商户app)
|
*/
|
public static StoreSupplierInfoAccount getSupplierLoginUser(String loginType) {
|
if (loginType.equals(Contants.LOGIN_TYPE_PC)) {
|
StoreSupplierInfoAccount storeSupplierInfoAccount = getPcLoginSupplierUserByToken(getSupplierPcToken());
|
StoreSupplierInfoAccount sto = new StoreSupplierInfoAccount();
|
BeanUtils.copyProperties(storeSupplierInfoAccount, sto);
|
return sto;
|
}
|
return new StoreSupplierInfoAccount();
|
}
|
|
/**
|
* 根据token获取pc登录用户信息
|
*/
|
public static StoreSupplierInfoAccount getPcLoginSupplierUserByToken(String token) {
|
try {
|
token = JWTUtil.getSubOfClaims(token);
|
} catch (Exception e) {
|
return new StoreSupplierInfoAccount();
|
}
|
if (redisService.get(SystemConstants.SUPPLIER_PC_USER_PREFIX + token) == null) {
|
return new StoreSupplierInfoAccount();
|
}
|
return (StoreSupplierInfoAccount) redisService.get(SystemConstants.SUPPLIER_PC_USER_PREFIX + token);
|
}
|
|
}
|