/chiwen-admin/admin-server/src/main/java/com/databps/bigdaf/admin/dao/HbaseDao.java

https://github.com/datapickaxe/chiwen · Java · 165 lines · 140 code · 20 blank · 5 comment · 3 complexity · 0877c75d3d2137e3391d0d852ef81a2f MD5 · raw file

  1. package com.databps.bigdaf.admin.dao;
  2. import com.databps.bigdaf.admin.domain.GatewayUser;
  3. import com.databps.bigdaf.admin.domain.HbasePrivliege;
  4. import com.databps.bigdaf.admin.domain.HbaseRole;
  5. import com.databps.bigdaf.admin.domain.HbaseUser;
  6. import com.databps.bigdaf.core.common.AuditType;
  7. import com.databps.bigdaf.core.mongo.plugin.MongoPage;
  8. import com.databps.bigdaf.core.util.DateUtils;
  9. import com.google.gson.Gson;
  10. import com.google.gson.JsonArray;
  11. import com.google.gson.JsonObject;
  12. import com.google.gson.reflect.TypeToken;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.data.domain.Sort;
  16. import org.springframework.data.mongodb.core.MongoOperations;
  17. import org.springframework.data.mongodb.core.query.Criteria;
  18. import org.springframework.data.mongodb.core.query.Query;
  19. import org.springframework.data.mongodb.core.query.Update;
  20. import org.springframework.stereotype.Repository;
  21. import java.util.List;
  22. /**
  23. * @author shibingxin
  24. * @create 2017-08-31 下午1:54
  25. */
  26. @Repository
  27. public class HbaseDao {
  28. private final static String COLLECTIO_HBASE_ROLE = "hbase_role";
  29. private final static String COLLECTIO_HBASE_USER = "hbase_user";
  30. private final static String COLLECTIO_HBASE_PRIVILEGE = "hbase_privilege";
  31. @Autowired
  32. private MongoOperations mongoOperations;
  33. public void saveHbaseRole(HbaseRole hbaseRole) {
  34. hbaseRole.setCreateTime(DateUtils.formatDateNow());
  35. mongoOperations.save(hbaseRole,COLLECTIO_HBASE_ROLE);
  36. }
  37. public void saveHbaseUser(HbaseUser hbaseUser) {
  38. hbaseUser.setCreateTime(DateUtils.formatDateNow());
  39. mongoOperations.save(hbaseUser,COLLECTIO_HBASE_USER);
  40. }
  41. public void saveHbasePrivliege(HbasePrivliege hbasePrivliege) {
  42. hbasePrivliege.setCreateTime(DateUtils.formatDateNow());
  43. mongoOperations.save(hbasePrivliege,COLLECTIO_HBASE_PRIVILEGE);
  44. }
  45. public void upsertHbaseRole(HbaseRole hbaseRole) {
  46. Query query = new Query();
  47. query.addCriteria(Criteria.where("cmpy_id").is(hbaseRole.getCmpyId()));
  48. Update update = new Update();
  49. update.set("name",hbaseRole.getName());
  50. update.set("description",hbaseRole.getDescription());
  51. update.set("users_name",hbaseRole.getUsersName());
  52. mongoOperations.upsert(query,update,COLLECTIO_HBASE_ROLE);
  53. }
  54. public void upsertHbaseUser(HbaseUser hbaseUser) {
  55. Query query = new Query();
  56. query.addCriteria(Criteria.where("cmpy_id").is(hbaseUser.getCmpyId()));
  57. Update update = new Update();
  58. update.set("name",hbaseUser.getName());
  59. update.set("description",hbaseUser.getDescription());
  60. mongoOperations.upsert(query,update,COLLECTIO_HBASE_USER);
  61. }
  62. public void upsertHbasePrivliege(HbasePrivliege hbasePrivliege) {
  63. Query query = new Query();
  64. query.addCriteria(Criteria.where("cmpy_id").is(hbasePrivliege.getCmpyId()));
  65. Update update = new Update();
  66. update.set("name",hbasePrivliege.getName());
  67. update.set("description",hbasePrivliege.getDescription());
  68. update.set("resource",hbasePrivliege.getResource());
  69. update.set("roles_name",hbasePrivliege.getRolesName());
  70. update.set("permissions",hbasePrivliege.getPermissions());
  71. mongoOperations.upsert(query,update,COLLECTIO_HBASE_PRIVILEGE);
  72. }
  73. public HbaseRole getHbaseRole(String cmpyId,String name) {
  74. Query query = new Query();
  75. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId).and("name").is(name));
  76. return mongoOperations.findOne(query,HbaseRole.class);
  77. }
  78. public List<HbaseRole> getHbaseRoles(String cmpyId) {
  79. Query query = new Query();
  80. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId));
  81. List<HbaseRole> hbaseRoles = mongoOperations.find(query,HbaseRole.class,COLLECTIO_HBASE_ROLE);
  82. return hbaseRoles;
  83. }
  84. public HbaseUser getHbaseUser(String cmpyId,String name) {
  85. Query query = new Query();
  86. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId).and("name").is(name));
  87. return mongoOperations.findOne(query,HbaseUser.class,COLLECTIO_HBASE_USER);
  88. }
  89. public HbasePrivliege getHbasePrivliege(String cmpyId,String name) {
  90. Query query = new Query();
  91. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId).and("name").is(name));
  92. return mongoOperations.findOne(query,HbasePrivliege.class,COLLECTIO_HBASE_PRIVILEGE);
  93. }
  94. public JsonObject getJson(String cmpyId,String pluginUid) {
  95. JsonObject json = new JsonObject();
  96. json.addProperty("pluginUid",pluginUid);
  97. json.addProperty("lastVersion","123456789");
  98. json.addProperty("updateTime",DateUtils.formatDateNow());
  99. json.addProperty("type", AuditType.HBASE.getName());
  100. // json.addProperty("isEnabled","true");
  101. JsonArray rolesJsonArray = new JsonArray();
  102. List<HbaseRole> hbaseRoles = getHbaseRoles(cmpyId);
  103. if(hbaseRoles !=null) {
  104. for(HbaseRole hbaseRole : hbaseRoles) {
  105. JsonObject jsonRole = new JsonObject();
  106. String roleName = hbaseRole.getName();
  107. jsonRole.addProperty("roleName",roleName);
  108. List<String> usersName = hbaseRole.getUsersName();
  109. JsonArray usersArrayJson =null;
  110. if(usersName !=null){
  111. usersArrayJson = new Gson().toJsonTree(usersName, new TypeToken<List<String>>() {}.getType()).getAsJsonArray();
  112. }
  113. jsonRole.add("users",usersArrayJson);
  114. JsonArray privliegeJsonArray = getPrivilege(cmpyId,roleName);
  115. jsonRole.add("privileges",privliegeJsonArray);
  116. rolesJsonArray.add(jsonRole);
  117. }
  118. }
  119. json.add("roles", rolesJsonArray);
  120. return json ;
  121. }
  122. public JsonArray getPrivilege(String cmpyId ,String roleName) {
  123. Query query = new Query();
  124. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId).and("roles_name").is(roleName));
  125. List<HbasePrivliege> privlieges = mongoOperations.find(query , HbasePrivliege.class,COLLECTIO_HBASE_PRIVILEGE);
  126. JsonArray privliegeJsonArray = new Gson().toJsonTree(privlieges, new TypeToken<List<HbasePrivliege>>() {}.getType()).getAsJsonArray();
  127. return privliegeJsonArray;
  128. }
  129. public List<HbasePrivliege> getPrivilege2(String cmpyId ,String roleName) {
  130. Query query = new Query();
  131. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId).and("roles_name").is(roleName));
  132. List<HbasePrivliege> privlieges = mongoOperations.find(query , HbasePrivliege.class,COLLECTIO_HBASE_PRIVILEGE);
  133. return privlieges;
  134. }
  135. public long countUser(String cmpyId) {
  136. Query query =new Query();
  137. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId));
  138. return mongoOperations.count(query,COLLECTIO_HBASE_USER);
  139. }
  140. public long countPrivilege(String cmpyId) {
  141. Query query =new Query();
  142. query.addCriteria(Criteria.where("cmpy_id").is(cmpyId));
  143. return mongoOperations.count(query,COLLECTIO_HBASE_PRIVILEGE);
  144. }
  145. }