# -*-coding:utf-8-*- import datetime import common.error_info as ce import common.models as cm import common.common_functions as ccf import common.common_control as ccc import utils.constant as const def add_sysnotice(request): """ """ uid = request.user.id uname = request.user.name kwargs = request.json need_params = ["title","content"] mse = ccf.check_params(*need_params,**kwargs) if mse: raise ce.TipException(mse) cvals = ccf.get_need_params(*need_params,**kwargs) cvals.update({"cid":uid}) cvals.update({"cperson":uname}) cm.SysNotice.objects.create(**cvals) def update_sysnotice(id,**kwargs): """ """ uvals = {} org_viewer = cm.SysNotice.objects.filter(id=id).first().viewer org_viewer = org_viewer if org_viewer else "" org_viewer = org_viewer.split(",") if "viewer" in kwargs: viewer = kwargs.get("viewer") org_viewer.append(str(viewer)) viewer = ",".join(list(set(org_viewer))) uvals.update({"viewer":viewer}) cm.SysNotice.objects.filter(id=id).update(**uvals) def delete_sysnotice(request): """删除批量用,隔开 """ kwargs = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**kwargs) if mse: raise ce.TipException(mse) id = kwargs.get("id") ids = str(id).split(",") cm.SysNotice.objects.filter(id__in=ids).delete() def get_sysnotice_info(*ids): """获取系统通知详情 """ if not ids: raise ce.TipException(u"缺少参数id!") if not cm.SysNotice.objects.filter(id__in=ids).exists(): raise ce.TipException(u"资源不存在!") qdata = cm.SysNotice.objects.filter(id__in=ids).values() return list(qdata) def get_sysnotice_list(request): """ """ uid = request.user.id filter_info = request.json qset = cm.SysNotice.objects.filter(cid=uid) if filter_info.get("title"): qset = qset.filter(title=filter_info.get("title")) # if filter_info.get("stime"): # qset = qset.filter(ctime__gte=filter_info.get("stime")) # if filter_info.get("etime"): # qset = qset.filter(ctime__lte=filter_info.get("etime")) if filter_info.get("ctime", ""): import web_site.tools as wst query = wst.datetime_filter("ctime", {}, filter_info["ctime"]) qset = qset.filter(**query) if filter_info.get("new"): vuid = str(uid) qset = qset.exclude(viewer__contains=vuid) qdata = list(qset.values()) return qset.count(),qdata def get_warning_notice_list(request): filter_info = request.json qset = cm.WarningNotice.objects.filter(is_suc=1) if filter_info.get("warning_type"): qset = qset.filter(warning_type=filter_info.get("warning_type")) if filter_info.get("notice_type"): qset = qset.filter(notice_type=filter_info.get("notice_type")) # if filter_info.get("stime"): # qset = qset.filter(ctime__gte=filter_info.get("stime")) # if filter_info.get("etime"): # qset = qset.filter(ctime__lte=filter_info.get("etime")) if filter_info.get("ctime", ""): import web_site.tools as wst query = wst.datetime_filter("ctime", {}, filter_info["ctime"]) qset = qset.filter(**query) count = qset.count() page = filter_info.get("page") page_size = filter_info.get("page_size") if page and page_size: count,qset = ccc.get_page_qset(qset,page,page_size) qdata = list(qset.values()) return count,qdata def get_warning_notice(*ids): """ """ qset = cm.WarningNotice.objects.filter(id__in=ids) qdata = qset.values() return qdata