package com.sissi.ucenter.relation.muc.status.adder;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DBObject;
import com.sissi.config.Dictionary;
import com.sissi.config.MongoConfig;
import com.sissi.ucenter.relation.muc.status.CodeStatus;
import com.sissi.ucenter.relation.muc.status.CodeStatusAdder;
/**
* 等待激活
*
* @author kim 2014年3月16日
*/
public class Code201StatusAdder implements CodeStatusAdder {
/**
* {"configs.activate"}
*/
private final DBObject query = BasicDBObjectBuilder.start(Dictionary.FIELD_CONFIGS + "." + Dictionary.FIELD_ACTIVATE, false).get();
private final MongoConfig config;
public Code201StatusAdder(MongoConfig config) {
super();
this.config = config;
}
/*
* {"configs.activate","jid",Xxx}</p>TODO: Cached
*
* @see com.sissi.ucenter.relation.muc.status.CodeStatusAdder#judege(com.sissi.ucenter.relation.muc.status.CodeStatus)
*/
@Override
public CodeStatus add(CodeStatus status) {
return status.loop() && this.config.collection().findOne(BasicDBObjectBuilder.start(this.query.toMap()).add(Dictionary.FIELD_JID, status.group()).get()) != null ? status.add("201") : status;
}
}