online.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from ..base import base
  2. from ..models import OnLine
  3. from flask import render_template, request, jsonify
  4. from sqlalchemy import asc
  5. from sqlalchemy import desc
  6. import flask_excel as excel
  7. @base.route('/securityJsp/base/Syonline.jsp', methods=['GET'])
  8. def index_online():
  9. return render_template('online/index.html')
  10. @base.route('/base/syonline!grid.action', methods=['POST'])
  11. def grid_online():
  12. filters = []
  13. if request.form.get('loginname'):
  14. filters.append(OnLine.LOGINNAME.like('%' + request.form.get('loginname') + '%'))
  15. if request.form.get('ip'):
  16. filters.append(OnLine.NAME.like('%' + request.form.get('ip') + '%'))
  17. if request.form.get('type'):
  18. filters.append(OnLine.TYPE == request.form.get('type'))
  19. if request.form.get('createdatetime1') and request.form.get('createdatetime2'):
  20. filters.append(OnLine.CREATEDATETIME > request.form.get('createdatetime1'))
  21. filters.append(OnLine.CREATEDATETIME < request.form.get('createdatetime2'))
  22. order_by = []
  23. if request.form.get('sort'):
  24. if request.form.get('order') == 'asc':
  25. order_by.append(asc(getattr(OnLine,request.form.get('sort').upper())))
  26. elif request.form.get('order') == 'desc':
  27. order_by.append(desc(getattr(OnLine,request.form.get('sort').upper())))
  28. else:
  29. order_by.append(getattr(OnLine,request.form.get('sort').upper()))
  30. page = request.form.get('page', 1, type=int)
  31. rows = request.form.get('rows', 10, type=int)
  32. pagination = OnLine.query.filter(*filters).order_by(*order_by).paginate(
  33. page, per_page=rows, error_out=False)
  34. onlines = pagination.items
  35. return jsonify({'total': OnLine.query.count(), 'rows': [online.to_json() for online in onlines]})
  36. @base.route('/base/syonline!export.action', methods=['POST'])
  37. def online_export():
  38. rows = []
  39. rows.append(['登录名', 'IP地址', '创建时间', '类别'])
  40. onlines = OnLine.query.all()
  41. for online in onlines:
  42. row = []
  43. row.append(online.LOGINNAME)
  44. row.append(online.IP)
  45. row.append(online.CREATEDATETIME)
  46. if online.TYPE == '0':
  47. row.append('注销系统')
  48. elif online.TYPE == '1':
  49. row.append('登录系统')
  50. rows.append(row)
  51. return excel.make_response_from_array(rows, "csv",
  52. file_name="online")