| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | 
							- from flask import jsonify, request
 
- from flask_login import current_user
 
- from flask_restful import Resource  # type: ignore
 
- from werkzeug.exceptions import NotFound
 
- from controllers.console import api
 
- from controllers.console.wraps import (
 
-     account_initialization_required,
 
-     setup_required,
 
- )
 
- from libs.login import login_required
 
- from services.dept_service import DeptService
 
- class DeptAccountListApi(Resource):
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def get(self):
 
-         dept_account_list = DeptService.get_dept_account_list()
 
-         response = {
 
-             "result": "success",
 
-             "data": dept_account_list,
 
-         }
 
-         return response, 200
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def post(self):
 
-         data = request.get_json()
 
-         if not data:
 
-             raise NotFound("Invalid JSON")
 
-         dept_account_list = data.get("account_ids")
 
-         dept_id = data.get("dept_id")
 
-         DeptService.save_dept_account_list(dept_id, dept_account_list)
 
-         response = {
 
-             "result": "success",
 
-         }
 
-         return response, 200
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def delete(self):
 
-         data = request.get_json()
 
-         if not data:
 
-             raise NotFound("Invalid JSON")
 
-         dept_account_list = data.get("account_ids")
 
-         dept_id = data.get("dept_id")
 
-         DeptService.delete_dept_account_list(dept_id, dept_account_list)
 
-         response = {
 
-             "result": "success",
 
-         }
 
-         return response, 200
 
- class DeptAccountApi(Resource):
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def get(self, dept_id):
 
-         dept_account = DeptService.get_dept_account(dept_id)
 
-         response = {
 
-             "result": "success",
 
-             "data": dept_account,
 
-         }
 
-         return response, 200
 
- class DeptListApi(Resource):
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def get(self):
 
-         dept_list = DeptService.get_dept_list()
 
-         response = {
 
-             "result": "success",
 
-             "data": dept_list,
 
-         }
 
-         return response, 200
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def post(self):
 
-         data = request.get_json()
 
-         if not data:
 
-             return jsonify({"error": "Invalid JSON"}), 400
 
-         if not data:
 
-             raise NotFound("Invalid JSON")
 
-         dept_name = data.get("dept_name")
 
-         dept_id = data.get("dept_id")
 
-         parent_dept_id = data.get("parent_dept_id")
 
-         dept_by_name = DeptService.get_dept_by_name(dept_name)
 
-         if dept_id not in {None, ""}:
 
-             dept_by_id = DeptService.get_dept_by_id(dept_id)
 
-             if dept_by_id != None:
 
-                 if dept_by_id.dept_name != dept_name or dept_by_id.parent_dept_id != parent_dept_id:
 
-                     # 修改
 
-                     if dept_by_name != None:
 
-                         if dept_by_name.dept_id == dept_by_id.dept_id and dept_by_id.parent_dept_id != parent_dept_id:
 
-                             DeptService.update_dept(dept_id, dept_name, current_user, parent_dept_id)
 
-                     else:
 
-                         DeptService.update_dept(dept_id, dept_name, current_user, parent_dept_id)
 
-             else:
 
-                 raise NotFound("Dept not found.")
 
-         else:
 
-             if dept_by_name != None:
 
-                 raise ValueError("dept_name cannot repeat.")
 
-             else:
 
-                 DeptService.save_dept(dept_name, current_user, parent_dept_id)
 
-         return {"result": "success"}, 204
 
- class DeptApi(Resource):
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def get(self, dept_id):
 
-         dept_id = str(dept_id)
 
-         dept = DeptService.get_dept_by_id(dept_id)
 
-         response = {
 
-             "result": "success",
 
-             "data": dept,
 
-         }
 
-         return response, 200
 
-     @setup_required
 
-     @login_required
 
-     @account_initialization_required
 
-     def delete(self, dept_id):
 
-         dept_id = str(dept_id)
 
-         dept = DeptService.get_dept_by_id(dept_id)
 
-         if dept is None:
 
-             raise NotFound("Dept not found.")
 
-         DeptService.delete_dept(dept)
 
-         return {"result": "success"}, 204
 
- api.add_resource(DeptAccountListApi, "/dept/dept-accounts")
 
- api.add_resource(DeptAccountApi, "/dept/dept-accounts/<uuid:dept_id>")
 
- api.add_resource(DeptListApi, "/depts")
 
- api.add_resource(DeptApi, "/depts/<uuid:dept_id>")
 
 
  |