|
@@ -0,0 +1,114 @@
|
|
|
+#!/usr/bin/env python3
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+"""
|
|
|
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
|
|
|
+@AUTHOR: ASJRD018
|
|
|
+@NAME: AnsjerFormal
|
|
|
+@software: PyCharm
|
|
|
+@DATE: 2019/5/18 10:45
|
|
|
+@Version: python3.6
|
|
|
+@MODIFY DECORD:ansjer dev
|
|
|
+@file: SysMsg.py
|
|
|
+@Contact: chanjunkai@163.com
|
|
|
+"""
|
|
|
+import time
|
|
|
+
|
|
|
+from django.views.generic.base import View
|
|
|
+
|
|
|
+from Model.models import SysMsgModel, FeedBackModel
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
+from Service.ModelService import ModelService
|
|
|
+
|
|
|
+
|
|
|
+class SysMsgView(View):
|
|
|
+
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation', None)
|
|
|
+ return self.validation(request.GET, operation)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation', None)
|
|
|
+ return self.validation(request.POST, operation)
|
|
|
+
|
|
|
+ def validation(self, request_dict, operation):
|
|
|
+ response = ResponseObject()
|
|
|
+ token = request_dict.get('token', None)
|
|
|
+ tko = TokenObject(token)
|
|
|
+ if tko.code == 0:
|
|
|
+ userID = tko.userID
|
|
|
+ if operation == 'pushFeedBack':
|
|
|
+ return self.do_push_msg_feed_back(userID, request_dict, response)
|
|
|
+ elif operation == 'query':
|
|
|
+ return self.do_query(userID, request_dict, response)
|
|
|
+ elif operation == 'queryByAdmin':
|
|
|
+ return self.do_query_by_admin(userID, request_dict, response)
|
|
|
+ else:
|
|
|
+ return response.json(414)
|
|
|
+ else:
|
|
|
+ return response.json(tko.code)
|
|
|
+
|
|
|
+ def do_push_msg_feed_back(self, userID, request_dict, response):
|
|
|
+ own_perm = ModelService.check_perm(userID, 10)
|
|
|
+ if own_perm:
|
|
|
+ fid = request_dict.get('fid', None)
|
|
|
+ msg = request_dict.get('msg', None)
|
|
|
+ if all([fid, msg]):
|
|
|
+ nowTime = int(time.time())
|
|
|
+ fb_qs = FeedBackModel.objects.filter(id=fid)
|
|
|
+ fb_list = fb_qs.values('userID_id')
|
|
|
+ if fb_qs.exists():
|
|
|
+ create_data = {'userID_id': fb_list[0]['userID_id'], 'msg': msg, 'addTime': nowTime,
|
|
|
+ 'updTime': nowTime}
|
|
|
+ try:
|
|
|
+ SysMsgModel.objects.create(**create_data)
|
|
|
+ fb_qs.update(status=1)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, repr(e))
|
|
|
+ else:
|
|
|
+ return response.json(0)
|
|
|
+ else:
|
|
|
+ return response.json(173)
|
|
|
+ else:
|
|
|
+ return response.json(444, 'cid,msg')
|
|
|
+ else:
|
|
|
+ return response.json(404)
|
|
|
+
|
|
|
+ def do_query(self, userID, request_dict, response):
|
|
|
+ page = request_dict.get('page', None)
|
|
|
+ line = request_dict.get('line', None)
|
|
|
+ if page and line:
|
|
|
+ page = int(page)
|
|
|
+ line = int(line)
|
|
|
+ sm_qs = SysMsgModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line]. \
|
|
|
+ values('status', 'id', 'msg', 'addTime', 'updTime')
|
|
|
+ # sm_qs = SysMsgModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line].values('sta')
|
|
|
+ if sm_qs.exists():
|
|
|
+ return response.json(0, list(sm_qs))
|
|
|
+ else:
|
|
|
+ return response.json(0, [])
|
|
|
+ else:
|
|
|
+ return response.json(444, 'page,line')
|
|
|
+
|
|
|
+ def do_query_by_admin(self, userID, request_dict, response):
|
|
|
+ own_perm = ModelService.check_perm(userID, 40)
|
|
|
+ if own_perm:
|
|
|
+ page = request_dict.get('page', None)
|
|
|
+ line = request_dict.get('line', None)
|
|
|
+ username = request_dict.get('username', None)
|
|
|
+ if page and line:
|
|
|
+ page = int(page)
|
|
|
+ line = int(line)
|
|
|
+ sm_qs = SysMsgModel.objects.filter()
|
|
|
+ if username:
|
|
|
+ userID_list = ModelService.get_user_list_by_username(username)
|
|
|
+ sm_qs = sm_qs.filter(userID_id__in=userID_list)
|
|
|
+ sm_qs = sm_qs[(page - 1) * line:page * line]. \
|
|
|
+ values('status', 'id', 'msg', 'addTime', 'updTime', 'userID__NickName')
|
|
|
+ return response.json(0, list(sm_qs))
|
|
|
+ else:
|
|
|
+ return response.json(444, 'page,line')
|
|
|
+ else:
|
|
|
+ return response.json(404)
|