config.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. from datetime import datetime
  2. from distutils.command.config import config
  3. from flask_login import current_user
  4. from ..base import base
  5. from ..models import Config
  6. from flask import render_template, request, jsonify
  7. from sqlalchemy import asc
  8. from sqlalchemy import desc
  9. from .. import db
  10. from flask_login import login_required
  11. import flask_excel as excel
  12. from .. import permission
  13. @base.route('/system/config/configKey/<configKey>', methods=['GET'])
  14. @login_required
  15. def sysconfig_get_value(configKey):
  16. data = Config.query.filter(Config.config_key == configKey).first()
  17. return jsonify({'code': 200, 'msg': data.config_value})
  18. @base.route('/system/config/list', methods=['GET'])
  19. @login_required
  20. @permission('system:config:list')
  21. def sys_config_list():
  22. filters = []
  23. if 'configName' in request.args:
  24. filters.append(Config.config_name.like('%' + request.args['configName'] + '%'))
  25. if 'configKey' in request.args:
  26. filters.append(Config.config_key.like('%' + request.args['configKey'] + '%'))
  27. if 'configType' in request.args:
  28. filters.append(Config.config_type.like('%' + request.args['configType'] + '%'))
  29. if 'params[beginTime]' in request.args and 'params[endTime]' in request.args:
  30. filters.append(Config.create_time > request.args['params[beginTime]'])
  31. filters.append(Config.create_time < request.args['params[endTime]'])
  32. page = request.args.get('pageNum', 1, type=int)
  33. rows = request.args.get('pageSize', 10, type=int)
  34. pagination = Config.query.filter(*filters).paginate(page=page, per_page=rows, error_out=False)
  35. config_list = pagination.items
  36. return jsonify({'msg': '操作成功', 'code': 200, 'rows': [config.to_json() for config in config_list], 'total': pagination.total})
  37. @base.route('/system/config/<id>', methods=['GET'])
  38. @login_required
  39. @permission('system:config:query')
  40. def sysconfig_get_by_id(id):
  41. config = Config.query.get(id)
  42. return jsonify({'msg': '操作成功', 'code': 200, 'data': config.to_json()})
  43. @base.route('/system/config', methods=['POST'])
  44. @login_required
  45. @permission('system:config:add')
  46. def sysconfig_add():
  47. config = Config()
  48. if 'configKey' in request.json: config.config_key = request.json['configKey']
  49. if 'configName' in request.json: config.config_name = request.json['configName']
  50. if 'configType' in request.json: config.config_type = request.json['configType']
  51. if 'configValue' in request.json: config.config_value = request.json['configValue']
  52. if 'remark' in request.json: config.remark = request.json['remark']
  53. config.create_time = datetime.now()
  54. config.create_by = current_user.NAME
  55. db.session.add(config)
  56. return jsonify({'code': 200, 'msg': '操作成功'})
  57. @base.route('/system/config', methods=['PUT'])
  58. @login_required
  59. @permission('system:config:edit')
  60. def sysconfig_update():
  61. config = Config.query.get(request.json['configId'])
  62. if 'configKey' in request.json: config.config_key = request.json['configKey']
  63. if 'configName' in request.json: config.config_name = request.json['configName']
  64. if 'configType' in request.json: config.config_type = request.json['configType']
  65. if 'configValue' in request.json: config.config_value = request.json['configValue']
  66. if 'remark' in request.json: config.remark = request.json['remark']
  67. config.UPDATEDATETIME = datetime.now()
  68. config.update_by = current_user.NAME
  69. db.session.add(config)
  70. return jsonify({'msg': '操作成功', 'code': 200})
  71. @base.route('/system/config/<string:ids>', methods=['DELETE'])
  72. @login_required
  73. @permission('system:config:remove')
  74. def syconfig_delete(ids):
  75. idList = ids.split(',')
  76. for id in idList:
  77. config = Config.query.get(id)
  78. if config:
  79. db.session.delete(config)
  80. return jsonify({'code': 200, 'msg': '操作成功'})
  81. @base.route('/system/config/export', methods=['POST'])
  82. @login_required
  83. @permission('system:config:export')
  84. def config_export():
  85. rows = []
  86. rows.append(['参数主键', '参数名称', '参数键名', '参数键值', '系统内置', '备注', '创建时间'])
  87. configs = Config.query.all()
  88. for config in configs:
  89. row = []
  90. row.append(config.config_id)
  91. row.append(config.config_name)
  92. row.append(config.config_key)
  93. row.append(config.config_value)
  94. if config.config_type == 'Y':
  95. row.append('是')
  96. elif config.config_type == 'N':
  97. row.append('否')
  98. row.append(config.remark)
  99. row.append(config.create_time)
  100. rows.append(row)
  101. return excel.make_response_from_array(rows, "xlsx",
  102. file_name="config")