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

https://github.com/datapickaxe/chiwen · Java · 197 lines · 132 code · 47 blank · 18 comment · 8 complexity · 991468808a68d63c51a8dff56bd1f44a MD5 · raw file

  1. package com.databps.bigdaf.admin.dao;
  2. import com.databps.bigdaf.admin.domain.*;
  3. import com.databps.bigdaf.admin.domain.model.ChiWenPolicy;
  4. import com.databps.bigdaf.admin.domain.model.ChiWenPrivilege;
  5. import com.databps.bigdaf.core.common.AuditType;
  6. import com.databps.bigdaf.core.mongo.plugin.MongoPage;
  7. import com.databps.bigdaf.core.util.DateUtils;
  8. import com.google.gson.Gson;
  9. import com.google.gson.JsonArray;
  10. import com.google.gson.JsonObject;
  11. import com.google.gson.reflect.TypeToken;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.data.domain.Pageable;
  15. import org.springframework.data.domain.Sort;
  16. import org.springframework.data.mongodb.core.MongoOperations;
  17. import org.springframework.data.mongodb.core.query.BasicUpdate;
  18. import org.springframework.data.mongodb.core.query.Criteria;
  19. import org.springframework.data.mongodb.core.query.Query;
  20. import org.springframework.data.mongodb.core.query.Update;
  21. import org.springframework.stereotype.Repository;
  22. import java.util.Iterator;
  23. import java.util.List;
  24. import java.util.Set;
  25. /**
  26. * @author shibingxin
  27. * @create 2017-08-31 下午1:54
  28. */
  29. @Repository
  30. public class HbasePrivilegeDao {
  31. private final static String COLLECTIO_HBASE_PRIVILEGE = "hbase_privilege";
  32. @Autowired
  33. private MongoOperations mongoOperations;
  34. private String CMPY_ID= "5968802a01cbaa46738eee3d";
  35. public HbasePrivliege findOneGp(Pageable pageable, String name, String id) {
  36. Query query = getQuery(pageable, name,id);
  37. return mongoOperations.findOne(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  38. }
  39. public List<HbasePrivliege> findHbasePrivliegesPage(MongoPage page, String name, String id) {
  40. if (page!=null) {
  41. page.setTotalResults(count(name));
  42. }
  43. Query query = new Query();
  44. if(StringUtils.isNotBlank(name)){
  45. query.addCriteria(Criteria.where("name").is(name));
  46. }
  47. if(StringUtils.isNotBlank(id)){
  48. query.addCriteria(Criteria.where("_id").is(id));
  49. }
  50. Sort sort = new Sort(Sort.Direction.DESC, "create_time");
  51. if (page!=null) {
  52. query.with(sort).skip(page.getFirstResult()).limit(page.getMaxResults());
  53. }
  54. return mongoOperations.find(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  55. }
  56. private Query getQuery(Pageable pageable, String name,String id) {
  57. Query query = new Query();
  58. if (StringUtils.isNotBlank(name)) {
  59. query.addCriteria(Criteria.where("name").is(name));
  60. }
  61. if (StringUtils.isNotBlank(id)) {
  62. query.addCriteria(Criteria.where("_id").is(id));
  63. }
  64. if (pageable!=null){
  65. // query.with(pageable);
  66. }
  67. return query;
  68. }
  69. public long count(String name) {
  70. Query query = new Query();
  71. if (StringUtils.isNotBlank(name)) {
  72. query.addCriteria(Criteria.where("g_name").is(name));
  73. }
  74. long count = mongoOperations.count(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  75. return count;
  76. }
  77. public void deleteByName(String name) {
  78. Query query = new Query();
  79. // query.addCriteria(Criteria.where("type").is("hdfs"));
  80. query.addCriteria(Criteria.where("_id").is(name));
  81. mongoOperations.remove(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  82. }
  83. public HbasePrivliege findOneByName(String name) {
  84. Query query = new Query();
  85. //query.addCriteria(Criteria.where("type").is("hdfs").and("privileges").elemMatch(Criteria.where("name").is(name)));
  86. // query.fields().position("privileges.name",1);
  87. query.addCriteria(Criteria.where("_id").is(name));
  88. return mongoOperations.findOne(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  89. }
  90. public HbasePrivliege findOneByName2(String name) {
  91. Query query = new Query();
  92. //query.addCriteria(Criteria.where("type").is("hdfs").and("privileges").elemMatch(Criteria.where("name").is(name)));
  93. // query.fields().position("privileges.name",1);
  94. query.addCriteria(Criteria.where("name").is(name));
  95. return mongoOperations.findOne(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  96. }
  97. public HbasePrivliege findByCriteria(String where, String criteria,String id) {
  98. Query query = new Query();
  99. query.addCriteria(Criteria.where(where).is(criteria));
  100. query.addCriteria(Criteria.where("_id").is(id));
  101. HbasePrivliege oldpolicy = mongoOperations.findOne(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  102. return oldpolicy;
  103. }
  104. public void insert(HbasePrivliege policy) {
  105. policy.setCmpyId(CMPY_ID);
  106. mongoOperations.insert(policy, COLLECTIO_HBASE_PRIVILEGE);
  107. }
  108. /**
  109. * 先删除在更新
  110. * @param type
  111. * @param privilege
  112. * @param id
  113. */
  114. public void updateByName(String type, HbasePrivliege privilege,String id) {
  115. Query query =new Query();
  116. //query.addCriteria(Criteria.where("type").is(type));
  117. query.addCriteria(Criteria.where("_id").is(id));
  118. Update update = new Update();
  119. update.set("name", privilege.getName());
  120. update.set("description", privilege.getDescription());
  121. update.set("update_time", DateUtils.getNowDateTime());
  122. update.set("permissions",privilege.getPermissions());
  123. update.set("resource", privilege.getResource());
  124. update.set("cmpy_id", CMPY_ID);
  125. mongoOperations.updateFirst(query, update, COLLECTIO_HBASE_PRIVILEGE);
  126. }
  127. public Policy findOneByType(String type) {
  128. Query query = new Query();
  129. query.addCriteria(Criteria.where("type").is(type));
  130. return mongoOperations.findOne(query, Policy.class);
  131. }
  132. public HbasePrivliege findOneById(String id) {
  133. Query query = new Query();
  134. query.addCriteria(Criteria.where("_id").is(id));
  135. return mongoOperations.findOne(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  136. }
  137. public void update(HbasePrivliege group, String id) {
  138. Query query = new Query();
  139. query.addCriteria(Criteria.where("_id").is(id));
  140. HbasePrivliege oldRole = mongoOperations.findOne(query, HbasePrivliege.class, COLLECTIO_HBASE_PRIVILEGE);
  141. Update update = new Update();
  142. update.set("name", group.getName());
  143. update.set("description", group.getDescription());
  144. update.set("update_time", DateUtils.getNowDateTime());
  145. update.set("roles_name",group.getRolesName());
  146. update.set("cmpy_id", CMPY_ID);
  147. //update.set("privileges",group.getPrivileges());
  148. mongoOperations.updateFirst(query, update, COLLECTIO_HBASE_PRIVILEGE);
  149. }
  150. }