You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					95 lines
				
				2.6 KiB
			
		
		
			
		
	
	
					95 lines
				
				2.6 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.ali.helper;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.User;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.config.EhCacheConfig;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.wx.wxfactory.WxCacheHelper;
							 | 
						||
| 
								 | 
							
								import org.ehcache.Cache;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public class AliCacheHelper {
							 | 
						||
| 
								 | 
							
								    public static final String AUTH_USER = "auth_user";
							 | 
						||
| 
								 | 
							
								    public static final String HOSPITAL_ORDER = "hospital_order"; // 消息推送
							 | 
						||
| 
								 | 
							
								    public static final String MFRS_TRE = "mfrstre"; // 能量
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    static {
							 | 
						||
| 
								 | 
							
								        createUserCache();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 缓存
							 | 
						||
| 
								 | 
							
								    private static Cache<String, User> ALI_USER_CACHE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    private synchronized static void createUserCache() {
							 | 
						||
| 
								 | 
							
								        if (ALI_USER_CACHE == null) {
							 | 
						||
| 
								 | 
							
								            ALI_USER_CACHE = EhCacheConfig.createCacheTTL(String.class, User.class, "ali_user_cache", (5400L)); // 一个半小时
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static Cache<String, User> getAliUserCache() {
							 | 
						||
| 
								 | 
							
								        if (ALI_USER_CACHE == null) {
							 | 
						||
| 
								 | 
							
								            createUserCache();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return ALI_USER_CACHE;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static User getCacheUser(String openid) {
							 | 
						||
| 
								 | 
							
								        if (ALI_USER_CACHE == null) {
							 | 
						||
| 
								 | 
							
								            createUserCache();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return ALI_USER_CACHE.get(openid);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static User setUserAccessToken(String scopes, User user, String accessToken) {
							 | 
						||
| 
								 | 
							
								        if (scopes == null || user == null) {
							 | 
						||
| 
								 | 
							
								            return null;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        user.setAccessToken(accessToken);
							 | 
						||
| 
								 | 
							
								        scopes = scopes.replaceAll("\\s*", "");
							 | 
						||
| 
								 | 
							
								        if (scopes.contains(AUTH_USER)) {
							 | 
						||
| 
								 | 
							
								            user.setAccess_token_user(accessToken);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (scopes.contains(HOSPITAL_ORDER)) {
							 | 
						||
| 
								 | 
							
								            user.setAccess_token_hosp_order(accessToken);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (scopes.contains(MFRS_TRE)) {
							 | 
						||
| 
								 | 
							
								            user.setAccess_token_energy(accessToken);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return user;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 消息推送token
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static String getHospAccessToken(String openid) {
							 | 
						||
| 
								 | 
							
								        if (openid == null) {
							 | 
						||
| 
								 | 
							
								            return null;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        Cache<String, User> cache = WxCacheHelper.getUserCache();
							 | 
						||
| 
								 | 
							
								        User user = cache.get(openid);
							 | 
						||
| 
								 | 
							
								        if (user != null) {
							 | 
						||
| 
								 | 
							
								            return user.getAccess_token_hosp_order();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 能量token
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static String getEnergyAccessToken(String openid) {
							 | 
						||
| 
								 | 
							
								        if (openid == null) {
							 | 
						||
| 
								 | 
							
								            return null;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        Cache<String, User> cache = WxCacheHelper.getUserCache();
							 | 
						||
| 
								 | 
							
								        User user = cache.get(openid);
							 | 
						||
| 
								 | 
							
								        if (user != null) {
							 | 
						||
| 
								 | 
							
								            return user.getAccess_token_energy();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |