目前代替方案:
public void clearAuthByUserId(String uid,Boolean author, Boolean out){
//獲取所有session
Collection<Session> sessions = redisSessionDAO.getActiveSessions();
for (Session session:sessions){
//獲取session登錄信息。
Object obj = session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
if(obj instanceof SimplePrincipalCollection){
//強(qiáng)轉(zhuǎn)
SimplePrincipalCollection spc = (SimplePrincipalCollection)obj;
SysUser user = new SysUser();
BeanUtils.copyProperties(spc.getPrimaryPrincipal(),user);
//判斷用戶,匹配用戶ID。
if(uid.equals(user.getId())){
if(author)
this.clearCachedAuthorizationInfo(spc);
if(out){
redisSessionDAO.delete(session);
}
}
}
}
}我不是大佬,我來說說我的想法吧。
首先是地區(qū)表示,你知道有種官方的編碼叫做行政區(qū)劃代碼嗎?這個在民政部可以查到,不過沒有格式化的數(shù)據(jù)。你也可以找網(wǎng)上別人已經(jīng)整理好的地區(qū)庫。
我們可以把代碼存放到數(shù)據(jù)庫中,也可以寫到文件中,這就看你自己了。
就拿你的例子來說,廣東省廣州市白云區(qū)的代碼是440111,浙江省杭州市西湖區(qū)是330106。
其實(shí)代碼很好理解,每兩位數(shù)分別代表省、市、縣。
44就是廣東省,的33就是浙江省。 01在廣東省下就是廣州市,在浙江省下就是杭州市。
表示上級地區(qū)的,是在后面補(bǔ)0足6位。
比如廣東省就是440000,廣東省廣州市就是440100。
所以我們保存某地區(qū)的公司時,只要把對應(yīng)的代碼存起來就行了。
比如公司表:
id name district
1 廣東省1公司 440000
2 廣東省2公司 440000
3 廣東省廣州市白云區(qū)公司 440111
在網(wǎng)頁地區(qū)選擇中,返回的value只要對應(yīng)價格兩位就夠了。
比如sheng=44&shi=01&xian=11
我們處理時補(bǔ)出三個代碼
440000、440100和440111
然后我們直接查找公司表
如SELECT * FROM company WHERE district=440000 OR district=440100 OR district=440111;
然后返回結(jié)果,我們再一一檢查就行了。
當(dāng)然,可能公司很多,一次返回的結(jié)果太多了,我們可以先查詢440111的,有結(jié)果就返回,沒有就再查詢440100的,以此類推。
甚至,我們能在SQL中就完成這個操作
SELECT
CASE
WHEN EXIST(SELECT * FROM company WHERE district=440111) THEN (SELECT * FROM company WHERE district=440111)
WHEN EXIST(SELECT * FROM company WHERE district=440100) THEN (SELECT * FROM company WHERE district=440100)
ELSE (SELECT * FROM company WHERE district=440000)
END;
當(dāng)然,你不想用地區(qū)代碼,想要自己編碼,甚至直接保存中文也是可以的,操作都是類似的。
以上代碼手機(jī)輸入,未經(jīng)過驗(yàn)證,請自行搜索相關(guān)內(nèi)容理解后使用。
加到<ul>上看看
升級你的node至8.0以上版本
MySQL的information_schema庫中有個COLUMNS表,里面記錄了mysql所有庫中所有表的字段信息。所以直接根據(jù)這個表的信息查各個表有沒有json這個字段,然后創(chuàng)建即可。
IF NOT EXISTS( SELECT NULL
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tablename'
AND table_schema = 'db_name'
AND column_name = 'json') THEN
ALTER TABLE `TableName` ADD `json` VARCHAR(255) NOT NULL;
END IF;swagger 2只能使用httpstaus相關(guān)的 code,例如500,200這些,要想識別自定義的狀態(tài)碼,請使用swagger 1
Vue獲取dom時,最好在mounted里用$nextTick,在頁面渲染后dom更新時。
可以通過axios.interceptors.response進(jìn)行攔截,同時可以封裝一下response結(jié)果,不拋出reject: 比如錯誤code 200-300之外的都進(jìn)行錯誤處理(上報)。
{
code: 404,
message: 'Not Found'
}
不了解laravel,看起來 你想全部映射的這個目錄里面除了 app/vendor/public 三個目錄外,還有其它目錄。 你這樣映射會把其它文件映射沒了。容器內(nèi)就訪問不到了。
-v 主機(jī)目錄:容器目錄
這個參數(shù)的意義是 把主機(jī)目錄映射到 容器目錄。 容器內(nèi)訪問 這個容器目錄 就是訪問到 主機(jī)目錄這個目錄。 不知道你看不看得懂。。
const arr = Object.values(obj)
可以這樣控制
php直接json_decode($cookie, true);這樣不行么?
又仔細(xì)看了下問題 - -
id改變后應(yīng)該是發(fā)起了請求,但是因?yàn)楫惒秸埱筮€沒返回結(jié)果,所以導(dǎo)致了報錯:
Error in render: "TypeError: Cannot read property 'content' of undefined"
建議的解決方案是:
(1)DOM里改為 {{ detail && detail.content}}
或者
(2)computed屬性里增加一個默認(rèn)值,即:
gameDetail: {
get() {
let gameDetail = { content: '' }
const gameId = this.id
querySingleGameDetail(gameId).then(response => {
return response.data.data.singleGameDetail
})
return gameDetail
}
}1.檢查下.htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
2.使用了域名的話,是否配置了host文件
3.vhosts.conf文件是否有配置:
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}位置不對那就是樣式的問題。
那你就生成.css文件啊。這種問題真的很莫名其妙。
可以舉一下jquery的ajax例子,你瞅瞅~
$(document).ready(function() {
jQuery("#clearCac").click(function() {
jQuery.ajax({
url: url,
type: "post",
data: { id: '0' },
dataType: "json",
success: function(msg) {
alert(msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},
complete: function(XMLHttpRequest, textStatus) {
this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)
}
});
});
});
當(dāng)通過ajax異步調(diào)用成功時,會調(diào)用 success函數(shù) 。success函數(shù)語法為:
//請求成功后回調(diào)函數(shù)。這個方法有兩個參數(shù):服務(wù)器返回?cái)?shù)據(jù),返回狀態(tài)
function (data, textStatus){
// data could be xmlDoc, jsonObj, html, text, etc...
this;
// the options for this ajax request
}
當(dāng)通過ajax異步調(diào)用出錯時,會調(diào)用 error函數(shù) 。error函數(shù)語法為:
//(默 認(rèn): 自動判斷 (xml 或 html)) 請求失敗時調(diào)用時間。
//參數(shù)有以下三個:XMLHttpRequest 對象、錯誤信息、(可選)捕獲的錯誤對象。
//如果發(fā)生了錯誤,錯誤信息(第二個參數(shù))除了得到null之外,
//還可能是"timeout", "error", "notmodified" 和 "parsererror"。
//textStatus: "timeout", "error", "notmodified" 和 "parsererror"。
error:function (XMLHttpRequest, textStatus, errorThrown)
{
}
error事件返回的第一個參數(shù)XMLHttpRequest:
XMLHttpRequest.readyState: 狀態(tài)碼的意思
0 - (未初始化)還沒有調(diào)用send()方法
1 - (載入)已調(diào)用send()方法,正在發(fā)送請求
2 - (載入完成)send()方法執(zhí)行完成,已經(jīng)接收到全部響應(yīng)內(nèi)容
3 - (交互)正在解析響應(yīng)內(nèi)容
4 - (完成)響應(yīng)內(nèi)容解析完成,可以在客戶端調(diào)用了
XMLHttpRequest.status代表當(dāng)前http請求的狀態(tài),如200,404,500等
用debugger看一下? 這里看你的create_consumer_user里沒有創(chuàng)建session而是直接就添加了 一旦session被close了需要重新創(chuàng)建
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。