SysMsg.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2019/5/18 10:45
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: SysMsg.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. import time
  15. from django.views.generic.base import View
  16. from Model.models import SysMsgModel, FeedBackModel
  17. from Object.ResponseObject import ResponseObject
  18. from Object.TokenObject import TokenObject
  19. from Service.ModelService import ModelService
  20. class SysMsgView(View):
  21. def get(self, request, *args, **kwargs):
  22. request.encoding = 'utf-8'
  23. operation = kwargs.get('operation', None)
  24. return self.validation(request.GET, operation)
  25. def post(self, request, *args, **kwargs):
  26. request.encoding = 'utf-8'
  27. operation = kwargs.get('operation', None)
  28. return self.validation(request.POST, operation)
  29. def validation(self, request_dict, operation):
  30. response = ResponseObject()
  31. token = request_dict.get('token', None)
  32. tko = TokenObject(token)
  33. if tko.code == 0:
  34. userID = tko.userID
  35. if operation == 'pushFeedBack':
  36. return self.do_push_msg_feed_back(userID, request_dict, response)
  37. elif operation == 'query':
  38. return self.do_query(userID, request_dict, response)
  39. elif operation == 'queryByAdmin':
  40. return self.do_query_by_admin(userID, request_dict, response)
  41. else:
  42. return response.json(414)
  43. else:
  44. return response.json(tko.code)
  45. def do_push_msg_feed_back(self, userID, request_dict, response):
  46. own_perm = ModelService.check_perm(userID, 10)
  47. if own_perm:
  48. fid = request_dict.get('fid', None)
  49. msg = request_dict.get('msg', None)
  50. if all([fid, msg]):
  51. nowTime = int(time.time())
  52. fb_qs = FeedBackModel.objects.filter(id=fid)
  53. fb_list = fb_qs.values('userID_id')
  54. if fb_qs.exists():
  55. create_data = {'userID_id': fb_list[0]['userID_id'], 'msg': msg, 'addTime': nowTime,
  56. 'updTime': nowTime}
  57. try:
  58. SysMsgModel.objects.create(**create_data)
  59. fb_qs.update(status=1)
  60. except Exception as e:
  61. return response.json(500, repr(e))
  62. else:
  63. return response.json(0)
  64. else:
  65. return response.json(173)
  66. else:
  67. return response.json(444, 'cid,msg')
  68. else:
  69. return response.json(404)
  70. def do_query(self, userID, request_dict, response):
  71. page = request_dict.get('page', None)
  72. line = request_dict.get('line', None)
  73. if page and line:
  74. page = int(page)
  75. line = int(line)
  76. sm_qs = SysMsgModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line]. \
  77. values('status', 'id', 'msg', 'addTime', 'updTime')
  78. # sm_qs = SysMsgModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line].values('sta')
  79. if sm_qs.exists():
  80. return response.json(0, list(sm_qs))
  81. else:
  82. return response.json(0, [])
  83. else:
  84. return response.json(444, 'page,line')
  85. def do_query_by_admin(self, userID, request_dict, response):
  86. own_perm = ModelService.check_perm(userID, 40)
  87. if own_perm:
  88. page = request_dict.get('page', None)
  89. line = request_dict.get('line', None)
  90. username = request_dict.get('username', None)
  91. if page and line:
  92. page = int(page)
  93. line = int(line)
  94. sm_qs = SysMsgModel.objects.filter()
  95. if username:
  96. userID_list = ModelService.get_user_list_by_username(username)
  97. sm_qs = sm_qs.filter(userID_id__in=userID_list)
  98. sm_qs = sm_qs[(page - 1) * line:page * line]. \
  99. values('status', 'id', 'msg', 'addTime', 'updTime', 'userID__NickName')
  100. return response.json(0, list(sm_qs))
  101. else:
  102. return response.json(444, 'page,line')
  103. else:
  104. return response.json(404)