permission_model.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * 后台权限数据模型
  3. *
  4. * @author EllisRan
  5. * @date 2018/12/06
  6. * @version
  7. */
  8. import mongoose from "mongoose";
  9. import BaseModel from "../../common/base/base_model";
  10. class PermissionModel extends BaseModel {
  11. /**
  12. * 构造函数
  13. *
  14. * @return {void}
  15. */
  16. constructor() {
  17. let parent = super();
  18. parent.model = mongoose.model('permission');
  19. parent.init();
  20. }
  21. /**
  22. * 设置场景
  23. *
  24. * @param {string} scene
  25. * @return {void}
  26. */
  27. setScene(scene = '') {
  28. switch (scene) {
  29. // 新增权限
  30. case 'insert':
  31. // this.model.schema.path('ID').required(true);
  32. this.model.schema.path('name').required(true);
  33. this.model.schema.path('controller').required(true);
  34. this.model.schema.path('url').required(true);
  35. this.model.schema.path('pid').required(true);
  36. break;
  37. }
  38. }
  39. /**
  40. * 新增权限
  41. *
  42. * @param {Object} data
  43. * @return {Promise}
  44. */
  45. async createPermission(data) {
  46. if (Object.keys(data).length <= 0) {
  47. throw '数据格式错误';
  48. }
  49. data.create_time = new Date().getTime();
  50. let result = await this.db.create(data);
  51. return result;
  52. }
  53. /**
  54. * 获取列表
  55. *
  56. * @param {object} condition
  57. * @param {number} page
  58. * @return {Promise}
  59. */
  60. async getList(condition = null, page = 1, pageSize = 30) {
  61. page = parseInt(page);
  62. page = page <= 1 ? 1 : page;
  63. let option = {pageSize: pageSize, offset: parseInt((page - 1) * pageSize), sort: {ID:1}};
  64. let list = await this.db.find(condition, null, option);
  65. list = list.length > 0 ? list : [];
  66. return list;
  67. }
  68. }
  69. export default PermissionModel;