Пример #1
0
    def get(self, request):
        '''
        获取通知
        :param request:
        :return:
        '''
        '''获取订单通知'''
        user = getUser(request.session.get('login'))
        orders = OrderNotification.objects.filter(
            Q(relatedUser=user) & Q(isRead=False))
        comments = CommentNotifications.objects.filter(
            Q(aboutUser=user) & Q(isRead=False))

        order_notification = [
            model_to_dict(order, fields=self.orderNotificationFields)
            for order in orders
        ]
        '''获取评论通知'''
        comment_notification = [
            model_to_dict(comment, fields=self.commentNotificationFields)
            for comment in comments
        ]

        return JsonResponse({
            'status': True,
            'orderNotification': order_notification,
            'commentNotification': comment_notification
        })
Пример #2
0
    def get(self, request):
        '''
        获取当前用户的浏览记录(商品和帮助消息)
        :param request:
        :return:
        '''
        try:
            user = User_Info.objects.get(email__exact=request.session.get('login'))
            commodityLog = CommodityViewLog.objects.filter(user=user)
            helpsLog = HelpsViewLog.objects.filter(user=user)

            commodityList = [commodity.commodity for commodity in commodityLog]
            helpsList = [helps.HelpsArticle for helps in helpsLog]

            commodityResult = [model_to_dict(commodity, fields=self.COMMODITY_INCLUDE_FIELDS) for commodity in
                               commodityList]
            helpsResult = [model_to_dict(helps) for helps in helpsList]

            return JsonResponse({
                'status': True,
                'commodity': commodityResult,
                'helps': helpsResult
            })
        except:
            return JsonResponse({
                'status': False,
                'err': '意料之外的错误'
            }, status=403)
Пример #3
0
    def get(self, request):
        '''
        获取当前登录用户信息
        :param request:
        :return:
        '''
        user = User_Info.objects.get(email=request.session.get('login'))
        userResult = model_to_dict(user, fields=self.USER_INCLUDE_FIELDS)
        if user.head_portrait:
            userResult[
                'head'] = 'https://algyunxs.oss-cn-shenzhen.aliyuncs.com/media/' + str(
                    user.head_portrait) + '?x-oss-process=style/head_portrait'
        else:
            userResult['head'] = None

        if user.user_role == '5':
            userResult['email_active'] = False
        else:
            userResult['email_active'] = True
        if user.student_id != '0':
            userResult['es_check'] = True
        else:
            userResult['es_check'] = False
        return JsonResponse({
            'status': True,
            'myself': userResult,
        })
Пример #4
0
    def get(self, requests, pid):
        '''
        获得兼职消息详情
        :param requests:
        :param pid: ptj id
        :return:
        '''
        try:
            try:
                pObject = PTJInfo.objects.get(id=pid)
            except:
                return JsonResponse({
                    'status': False,
                    'err': '内容不存在'
                },
                                    status=404)

            ptjResult = model_to_dict(pObject)

            return JsonResponse({'status': True, 'ptj': ptjResult})

        except:
            return JsonResponse({
                'status': False,
                'err': '出现未知的错误'
            },
                                status=403)
Пример #5
0
    def get(self, requests):
        '''
        获取互帮互助文章列表
        :param requests:
        :return:
        '''
        try:
            page = requests.GET.get('page')
            articleObj = Article.objects.all()
            articleList = paginator(articleObj, page)
            article = [
                model_to_dict(art, exclude=self.EXCLUDE_FIELDS)
                for art in articleList if art.status == 'p'
            ]

            return JsonResponse({
                'status': True,
                'articleList': article,
                'has_previous': articleList.has_previous(),
                'has_next': articleList.has_next(),
            })
        except:
            return JsonResponse({
                'status': False,
                'err': '出现未知的错误'
            },
                                status=403)
Пример #6
0
 def get(self, requests):
     '''
     获取公告列表
     :param requests:
     :return:
     '''
     if requests.session.get('login'):
         try:
             user = getUser(requests.session.get('login'))
             if user.user_role != '515400':
                 return JsonResponse({
                     'status': False,
                     'err': '你没有权限'
                 }, status=401)
             noticeList = Notice.objects.all()
             noticeListResult = [model_to_dict(notice) for notice in noticeList]
             return JsonResponse({
                 'status': True,
                 'noticeList': noticeListResult
             })
         except:
             return JsonResponse({
                 'status': False,
                 'err': '出现未知错误'
             }, status=403)
     else:
         return JsonResponse({
             'status': False,
             'err': '你还未登录'
         }, status=401)
Пример #7
0
 def get(self, request, tid):
     '''
     根据标签获取文章
     :param request:
     :param tid:
     :return:
     '''
     try:
         page = request.GET.get('page')
         tag = Tag.objects.filter(id=tid)
         if not tag.exists():
             return JsonResponse({
                 'status': False,
                 'err': '标签不存在',
             },
                                 status=404)
         tag = tag[0]
         article = Article.objects.filter(tags=tag)
         articleList = paginator(article, page)
         result = [
             model_to_dict(art, exclude=self.EXCLUDE_FIELDS)
             for art in articleList if art.status == 'p'
         ]
         return JsonResponse({'status': True, 'article': result})
     except:
         return JsonResponse({'status': False, 'err': '出现未知错误'}, status=403)
Пример #8
0
 def get(self, request, aid):
     '''
     获取文章所有的评论
     :param request:
     :param aid:
     :return:
     '''
     article = Article.objects.filter(id=aid)
     if not article.exists():
         return JsonResponse({'status': False, 'err': '文章不存在'}, status=404)
     article = article[0]
     result = []
     user = User_Info.objects.get(email=request.session.get('login'))
     comments = article.comment.all()
     commentList = paginator(comments, request.GET.get('page'))
     i = 0
     for comment in commentList:
         result.append(model_to_dict(comment))
         if comment.from_author == user:
             result[i]['manage'] = True
         else:
             result[i]['manage'] = False
         if user.user_role == '515400' or user.user_role == '123':
             result[i]['admin'] = True
         else:
             result[i]['admin'] = False
         i += 1
     return JsonResponse({
         'status': True,
         'comment': result,
         'has_previous': commentList.has_previous(),
         'has_next': commentList.has_next()
     })
Пример #9
0
 def get(self, request):
     '''
     获取文章分类列表
     :param request:
     :return:
     '''
     categoryAll = Category.objects.all()
     result = [model_to_dict(category) for category in categoryAll]
     return JsonResponse({'status': True, 'category': result})
Пример #10
0
 def get(self, requests):
     '''
     获取最新的公告
     :param requests:
     :return:
     '''
     notice = Notice.objects.all()
     returnResult = model_to_dict(notice.first())
     return JsonResponse({'status': True, 'notice': returnResult})
Пример #11
0
 def get(self, requests):
     '''
     获取商品分类列表
     :param requests:
     :return:
     '''
     try:
         classificationAll = Classification.objects.all()
         result = [
             model_to_dict(classification)
             for classification in classificationAll
         ]
         return JsonResponse({'status': True, 'classificationList': result})
     except:
         return JsonResponse({'status': False, 'err': '未知错误'}, status=403)
Пример #12
0
 def get(self, request):
     '''
     获取本人收藏的商品
     :param request:
     :return:
     '''
     userID = getUser(request.session.get('login')).id
     page = request.GET.get('login')
     cclt = CommodityCollection.objects.filter(relatedUser=userID)
     ccltPage = paginator(cclt, page)
     cidList = [
         model_to_dict(c, fields='relatedCommodity') for c in ccltPage
     ]
     for i in range(len(cidList)):
         cidList[i] = cidList[i]['relatedCommodity']
Пример #13
0
    def get(self, requests):
        '''
        获取兼职消息列表
        :param requests:
        :return:
        '''
        ptjAll = PTJInfo.objects.all()
        page = requests.GET.get('page')
        ptjList = paginator(ptjAll, page)

        ptj = [
            model_to_dict(ptjs, exclude='create_time') for ptjs in ptjList
            if ptjs.status == 'p'
        ]

        return JsonResponse({'status': True, 'ptjList': ptj})
Пример #14
0
 def get(self, request):
     '''
     获取用户列表
     :param request:
     :return:
     '''
     if authCheck(role='515400', email=request.session.get('login')):
         userList = User_Info.objects.all()
         return JsonResponse({
             'status': True,
             'users': [model_to_dict(user, fields=self.INCLUDE_FIELDS) for user in userList]
         })
     else:
         return JsonResponse({
             'status': False,
             'err': '你没有权限'
         }, status=401)
Пример #15
0
 def get(self, request, cid):
     '''
     获取商品评论列表
     :param request:
     :param cid:
     :return:
     '''
     try:
         commodity = Commodity.objects.filter(id=cid)
         if not commodity.exists():
             return JsonResponse({
                 'err': '商品不存在',
                 'status': False
             },
                                 status=404)
         commodity = commodity[0]
         user = getUser(request.session.get('login'))
         result = []
         comments = commodity.comment.all()
         commentList = paginator(comments, request.GET.get('page'))
         i = 0
         for comment in commentList:
             result.append(model_to_dict(comment))
             if comment.fromUser == user:
                 result[i]['manage'] = True
             else:
                 result[i]['manage'] = False
             if user.user_role == '515400' or user.user_role == '12':
                 result[i]['admin'] = True
             else:
                 result[i]['admin'] = False
             if CStarRecord.objects.filter(
                     Q(comment=comment) & Q(star_man=user)).exists():
                 result[i]['stared'] = True
             else:
                 result[i]['stared'] = False
             i += 1
         return JsonResponse({
             'status': True,
             'comment': result,
             'has_previous': commentList.has_previous(),
             'has_next': commentList.has_next()
         })
     except:
         return JsonResponse({'err': '出现未知错误', 'status': False}, status=403)
Пример #16
0
    def get(self, request, pid):
        '''
        获取互帮互助信息详情
        :param request:
        :param pid:
        :return:
        '''
        article = Article.objects.filter(id=pid)
        if not article.exists():
            return JsonResponse({
                'status': False,
                'err': '找不到该内容'
            }, status=404)
        article = article[0]
        user = User_Info.objects.get(email__exact=request.session.get('login'))
        if user != article.author:
            if article.status == 's':
                # 未发布的文章非作者无法直接查看
                return JsonResponse({
                    'status': False,
                    'err': '找不到该内容'
                }, status=404)
        if user != article.author:
            manage = False
            article.views += 1
        else:
            manage = True
        if not HelpsStarRecord.objects.filter(
                Q(star_man=user) & Q(article=article)
        ).exists():
            can_star = True
        else:
            can_star = False

        HelpsViewLog.objects.create(
            ip=request.META['REMOTE_ADDR'],
            user=user,
            HelpsArticle=article
        )
        return JsonResponse({
            'status': True,
            'article': model_to_dict(article, exclude=self.EXCLUDE_FIELDS),
            'can_star': can_star, # 是否已对其点赞
            'manage': manage # 是否是管理员
        })
Пример #17
0
 def get(self, request, cid, ocid):
     '''
     查看订单信息
     :param request:
     :param cid:
     :param ocid:
     :return:
     '''
     order = self.getOrder(cid, ocid)
     if not isinstance(order, CommodityOrder):
         return JsonResponse({'status': False, 'err': '订单未找到'}, status=404)
     user = getUser(request.session.get('login'))
     if user != order.commodity.seller or user != order.buyer:
         if user.user_role not in ['515400', '12']:
             return JsonResponse({
                 'err': '你没有权限查看',
                 'status': False
             },
                                 status=401)
     return JsonResponse({'status': True, 'order': model_to_dict(order)})
Пример #18
0
 def get(self, request, uid):
     '''
     获取用户评价信息
     :param request:
     :param uid:
     :return:
     '''
     user = User_Info.objects.filter(id=uid)
     if not user.exists():
         return JsonResponse({'status': False, 'err': '用户不存在'}, status=403)
     user = user[0]
     rates = BuyerRateModel.objects.filter(
         relatedOrder__commodity__seller=user)
     page = request.GET.get('page')
     rateList = paginator(rates, page)
     return JsonResponse({
         'status': True,
         'rates': [model_to_dict(rate) for rate in rateList],
         'has_next': rateList.has_next(),
         'has_previous': rateList.has_previous()
     })
Пример #19
0
 def get(self, request, cid):
     '''
     获取商品详情
     :param request:
     :param cid: 商品id
     :return:
     '''
     commodity = Commodity.objects.filter(id=cid)
     if not commodity.exists():
         return JsonResponse({
             'status': False,
             'err': '找不到该内容'
         }, status=404)
     commodity = commodity[0]
     user = User_Info.objects.get(email=request.session.get('login'))
     if user != commodity.seller:
         if commodity.status == 's':
             # 未发布的商品无法直接查看
             return JsonResponse({
                 'status': False,
                 'err': '找不到该内容'
             }, status=404)
     if commodity.seller == user:
         editable = True
     else:
         editable = False
     if user != commodity.seller:
         commodity.views += 1
     CommodityViewLog.objects.create(
         ip=request.META['REMOTE_ADDR'],
         commodity=commodity,
         user=user
     )
     commodity.save()
     cmdResult = model_to_dict(commodity, exclude=self.EXCLUDE_FIELDS)
     return JsonResponse({
         'status': True,
         'editable': editable,  # 属于自己的商品,可以修改、删除,但是不能购买
         'commodity': cmdResult
     })
Пример #20
0
    def get(self, request):
        '''
        获取文章标签列表(热度排名前十的标签)
        :param request:
        :return:
        '''
        tags_all = Tag.objects.annotate(Count('article'))
        tag_count = []
        for i in range(tags_all.count()):
            tag_count.append({
                'id': tags_all[i].id,
                'count': tags_all[i].article__count
            })

        id = []
        for i in sorted(tag_count, key=itemgetter('count'), reverse=True)[:10]:
            id.append(i.get('id'))

        tags = [
            model_to_dict(Tag.objects.get(id=tid), exclude='create_time')
            for tid in id
        ]

        return JsonResponse({'status': True, 'tags': tags})
Пример #21
0
    def get(self, request, uid=0):
        '''
        用户控制台
        :param request:
        :return:
        '''
        if uid == 0:
            user = User_Info.objects.get(email=request.session.get('login'))
        else:
            user = User_Info.objects.filter(id=uid)
            if not user.exists():
                return JsonResponse({
                    'status': False,
                    'err': '用户不存在'
                },
                                    status=404)
            user = user[0]
        articles = Article.objects.filter(author=user)
        markets = Commodity.objects.filter(seller=user)
        # ptj = PTJInfo.objects.filter(publisher=user)
        apage = request.GET.get('apage')
        mpage = request.GET.get('mpage')
        # ppge = request.GET.get('ppage')
        artList = paginator(articles, apage)
        marList = paginator(markets, mpage)
        # ptjList = paginator(ptj, ppge)
        artResult = [model_to_dict(art, exclude='comment') for art in artList]
        marResult = [model_to_dict(mar, exclude='comment') for mar in marList]
        # ptjResult = [model_to_dict(ptjs) for ptjs in ptjList]

        i = 0
        for com in marResult:
            if marList[i].commodity_img.first():
                com['commodity_img'] = 'https://algyunxs.oss-cn-shenzhen.aliyuncs.com/media/' + marList[
                    i].commodity_img.first(
                    ).img.name + '?x-oss-process=style/head_portrait'
            else:
                com['commodity_img'] = None
            i += 1

        return JsonResponse({
            'status':
            True,
            'myself':
            True
            if getUser(request.session.get('login')).id == user.id else False,
            'article':
            artResult,
            'commodity':
            marResult,
            # 'PTJ': ptjResult,
            'A_has_previous':
            artList.has_previous(),
            'A_has_next':
            artList.has_next(),
            'M_has_previous':
            marList.has_previous(),
            'M_has_next':
            marList.has_next(),
            # 'P_has_previous': ptjList.has_previous(),
            # 'P_has_next': ptjList.has_next()
        })