organization.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. from ..base import base
  2. from ..models import Resource
  3. from ..models import Role
  4. from ..models import User
  5. from ..models import Organization
  6. from flask import g, jsonify, request
  7. from flask_login import current_user, login_required
  8. import json
  9. from .. import db
  10. from flask import render_template
  11. from datetime import datetime
  12. import uuid
  13. @base.route('/base/syorganization!grant.action', methods=['POST'])
  14. @login_required
  15. def grant_organization_resource():
  16. id = request.form.get('id')
  17. ids = request.form.get('ids')
  18. org = Organization.query.get(id)
  19. if not ids:
  20. org.resources = []
  21. else:
  22. idList = ids.split(',')
  23. org.resources = [Resource.query.get(rid) for rid in idList]
  24. db.session.add(org)
  25. return jsonify({'success': True})
  26. @base.route('/system/dept/list', methods=['GET'])
  27. @login_required
  28. def syorganization_treeGrid():
  29. filters = []
  30. if 'deptName' in request.args:
  31. filters.append(Organization.NAME.like('%' + request.args['deptName'] + '%'))
  32. orgs = Organization.query.filter(*filters)
  33. return jsonify({'msg': '操作成功', 'code': 200, "data": [org.to_json() for org in orgs]})
  34. @base.route('/system/dept/treeselect', methods=['GET'])
  35. @login_required
  36. def syorganization_tree_select():
  37. orgs = Organization.query.filter(Organization.SYORGANIZATION_ID == None)
  38. return jsonify({'msg': '操作成功', 'code': 200, "data": [org.to_tree_select_json() for org in orgs]})
  39. @base.route('/system/dept/list/exclude/<id>', methods=['GET'])
  40. @login_required
  41. def syorganization_dept_list_exclude(id):
  42. orgs = Organization.query.filter(Organization.ID != id)
  43. return jsonify({'msg': '操作成功', 'code': 200, "data": [org.to_json() for org in orgs]})
  44. @base.route('/base/syorganization!doNotNeedSecurity_comboTree.action', methods=['POST'])
  45. @login_required
  46. def syorganization_comboTree():
  47. orgs = Organization.query.all()
  48. return jsonify([org.to_json() for org in orgs])
  49. @base.route('/base/syorganization!doNotNeedSecurity_getSyorganizationsTree.action', methods=['POST'])
  50. @login_required
  51. def get_syorganizations_tree():
  52. orgs = Organization.query.join(User, Organization.users).filter(User.ID == current_user.ID).all()
  53. return jsonify([org.to_json() for org in orgs])
  54. @base.route('/base/syorganization!doNotNeedSecurity_getSyorganizationByUserId.action', methods=['POST'])
  55. @login_required
  56. def get_syorganization_by_userId():
  57. orgs = Organization.query.join(User, Organization.users).filter(User.ID == request.form.get('id')).all()
  58. return jsonify([org.to_json() for org in orgs])
  59. @base.route('/system/dept/<string:id>', methods=['GET'])
  60. @login_required
  61. def syorganization_getById(id):
  62. org = Organization.query.get(id)
  63. if org:
  64. return jsonify({'msg': '操作成功', 'code': 200, 'data': org.to_json()})
  65. else:
  66. return jsonify({'success': False, 'msg': 'error'})
  67. @base.route('/system/dept', methods=['PUT'])
  68. @login_required
  69. def syorganization_update():
  70. org = Organization.query.get(request.json['deptId'])
  71. org.UPDATEDATETIME = datetime.now()
  72. if 'deptName' in request.json: org.NAME = request.json['deptName']
  73. if 'email' in request.json: org.EMAIL = request.json['email']
  74. if 'leader' in request.json: org.LEADER = request.json['leader']
  75. if 'phone' in request.json: org.PHONE = request.json['phone']
  76. if 'orderNum' in request.json: org.SEQ = request.json['orderNum']
  77. if 'parentId' in request.json: org.parent = Organization.query.get(request.json['parentId'])
  78. db.session.add(org)
  79. return jsonify({'code': 200, 'msg': '操作成功'})
  80. @base.route('/system/dept', methods=['POST'])
  81. @login_required
  82. def syorganization_save():
  83. org = Organization()
  84. org.ID = str(uuid.uuid4())
  85. if 'deptName' in request.json: org.NAME = request.json['deptName']
  86. if 'email' in request.json: org.EMAIL = request.json['email']
  87. if 'leader' in request.json: org.LEADER = request.json['leader']
  88. if 'phone' in request.json: org.PHONE = request.json['phone']
  89. if 'orderNum' in request.json: org.SEQ = request.json['orderNum']
  90. if 'parentId' in request.json: org.parent = Organization.query.get(request.json['parentId'])
  91. # add organization to current user
  92. current_user.organizations.append(org)
  93. db.session.add(org)
  94. return jsonify({'code': 200, 'msg': '操作成功'})