public class NgqaSetup implements Setup {
/**NutzMvc正常启动后就会执行这个方法,你可以认为所有东西都已经准备好了,你可以做一些额外的逻辑,例如启动某些后台线程*/
public void init(NutConfig config) {
CommonMongoService commons = config.getIoc().get(CommonMongoService.class, "commons");
MongoDao dao = commons.dao();
//初始化集合
dao.create(User.class, false);
dao.create(Question.class, false);
dao.create(Answer.class, false);
dao.create(SystemConfig.class, false);
dao.create(App.class, false);
dao.create(Role.class, false);
//创建匿名用户
User anonymous = dao.findOne(User.class, new BasicDBObject("provider", "anonymous"));
if (anonymous == null) {
anonymous = new User();
anonymous.setProvider("anonymous");
dao.save(anonymous);
}
//创建超级用户
User root = dao.findOne(User.class, new BasicDBObject("provider", "root"));
if (root == null) {
root = new User();
root.setProvider("root");
dao.save(root);
}
//检查超级用户的密码
DBObject dbo = commons.coll("systemconfig").findOne();
if (dbo == null) {
commons.coll("systemconfig").insert(new BasicDBObject("api_version", Ngqa.apiVersion()));
dbo = commons.coll("systemconfig").findOne();
}
if (Strings.isBlank((String)dbo.get("root_password"))) {
commons.coll("systemconfig").findAndModify(new BasicDBObject(), null, null, false, new BasicDBObject("$set", new BasicDBObject("root_password", R.sg(64).next())), true, true);
}
//载入js脚本
MongoJsManager.load(dao.getDB(), "mongo_js");