コード例 #1
0
ファイル: PTJInfo.py プロジェクト: DICKQI/ALGYunXS
 def delete(self, requests, pid):
     '''
     删除兼职消息
     :param requests:
     :param pid:
     :return:
     '''
     try:
         user = getUser(requests.session.get('login'))
         try:
             ptj = PTJInfo.objects.get(id=pid)
         except:
             return JsonResponse({
                 'status': False,
                 'err': '内容不存在'
             },
                                 status=404)
         if ptj.publisher != user:
             if user.user_role != '525400':
                 return JsonResponse({
                     'status': False,
                     'err': '你没有权限'
                 },
                                     status=401)
         ptj.delete()
         return JsonResponse({'status': True, 'id': pid})
     except:
         return JsonResponse({
             'status': False,
             'err': '出现未知的错误'
         },
                             status=403)
コード例 #2
0
    def post(self, request, aid):
        '''
        新增评论
        :param request:
        :param aid:
        :return:
        '''
        user = getUser(request.session.get("login"))
        if not studentCheck(user):
            return JsonResponse({
                'err': '请完成学生认证',
                'status': False
            },
                                status=403)
        article = Article.objects.filter(id=aid)
        if not article.exists():
            return JsonResponse({'status': False, 'err': '未找到该文章'}, status=404)
        article = article[0]
        params = json.loads(request.body)

        try:
            comment = AComment.objects.create(from_author=user,
                                              content=params.get('content'))
            article.comment.add(comment)
            return JsonResponse({'status': True, 'id': comment.id})
        except:
            return JsonResponse({'status': False, 'err': '新增失败'}, status=403)
コード例 #3
0
ファイル: ConfirmOrder.py プロジェクト: DICKQI/ALGYunXS
 def get(self, request, cid, ocid, type):
     '''
     卖家确认/发货订单
     :param request:
     :param cid:
     :param ocid:
     :return:
     '''
     classOrder = OrderView()
     order = classOrder.getOrder(cid, ocid)
     if not order:
         return JsonResponse({'status': False, 'err': '订单未找到'}, status=404)
     user = getUser(request.session.get('login'))
     if user != order.commodity.seller:
         return JsonResponse({
             'status': False,
             'err': '你没有权限操作'
         },
                             status=401)
     if type == 'c':
         order.status = '已确认'
     elif type == 'd':
         order.status = '已发货'
     else:
         return JsonResponse({'status': False, 'err': '参数错误'})
     '''设置自动确认收货截止时间'''
     order.unCompleteDeadline = da.now() + timedelta(days=15)
     order.save()
     return JsonResponse({'status': True, 'id': order.id})
コード例 #4
0
ファイル: noticeControl.py プロジェクト: DICKQI/ALGYunXS
 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)
コード例 #5
0
ファイル: controlPTJ.py プロジェクト: DICKQI/ALGYunXS
    def put(self, requests, cid):
        '''
        管理员更改兼职信息状态
        :param requests:
        :param cid:
        :return:
        '''
        try:
            user = getUser(requests.session.get('login'))
            if user.user_role != '515400' or user.user_role != '1234':
                return JsonResponse({
                    'status': False,
                    'err': '你没有权限'
                },
                                    status=401)
            try:
                ptj = PTJInfo.objects.get(id=cid)
            except:
                return JsonResponse({
                    'status': False,
                    'err': '内容不存在'
                },
                                    status=404)

            param = requests.body
            jsonParam = json.loads(param)

            ptj.status = jsonParam.get('status')

            ptj.save()

            return JsonResponse({'status': True, 'result': '修改成功'})

        except:
            return JsonResponse({'status': False, 'err': '意料之外的错误'})
コード例 #6
0
 def delete(self, request, cid, ccid):
     '''
     删除(禁用)商品评论
     :param request:
     :param cid:
     :param ccid:
     :return:
     '''
     commodity = Commodity.objects.filter(id=cid)
     if not commodity.exists():
         return JsonResponse({'err': '商品不存在', 'status': False}, status=404)
     commodity = commodity[0]
     comment = CComment.objects.filter(Q(id=ccid) & Q(commodity=commodity))
     if not comment.exists():
         return JsonResponse({'status': False, 'err': '评论不存在'}, status=404)
     comment = comment[0]
     user = getUser(request.session.get('login'))
     if comment.fromUser != user:
         if user.user_role in ['515400', '12']:  # 管理员操作
             comment.content = '评论已被封禁'
             comment.save()
             return JsonResponse({'status': True, 'id': ccid})
         else:
             # 非评论归属人
             return JsonResponse({
                 'status': False,
                 'err': '你没有权限操作'
             },
                                 status=401)
     comment.delete()
     return JsonResponse({'status': True, 'id': ccid})
コード例 #7
0
ファイル: notificationInfo.py プロジェクト: DICKQI/ALGYunXS
    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
        })
コード例 #8
0
ファイル: ClassificationInfo.py プロジェクト: DICKQI/ALGYunXS
 def post(self, requests):
     '''
     新增商品分类
     :param requests:
     :return:
     '''
     try:
         if not authCheck(['12', '515400'], requests.session.get('login')):
             return JsonResponse({
                 'status': False,
                 'err': '你没有权限'
             },
                                 status=401)
         param = requests.body
         jsonParams = json.loads(param)
         user = getUser(requests.session.get('login'))
         if Classification.objects.filter(
                 name__exact=jsonParams.get('name')).exists():
             return JsonResponse({
                 'status': False,
                 'err': '分类名已存在'
             },
                                 status=401)
         classification = Classification.objects.create(
             name=jsonParams.get('name'), create_man=user)
         return JsonResponse({'status': True, 'id': classification.id})
     except:
         return JsonResponse({'status': False, 'err': '未知错误'}, status=403)
コード例 #9
0
ファイル: PTJInfo.py プロジェクト: DICKQI/ALGYunXS
    def post(self, requests):
        '''
        新增兼职信息
        :param requests:
        :return:
        '''
        try:
            param = requests.body
            jsonParam = json.loads(param)

            user = getUser(requests.session.get('login'))

            if user.user_role != '515400' or user.user_role != '1234':
                return JsonResponse({
                    'status': False,
                    'err': '你没有权限'
                },
                                    status=401)

            ptj = PTJInfo.objects.create(publisher=user,
                                         title=jsonParam.get('title'),
                                         content=jsonParam.get('content'))
            return JsonResponse({'status': True, 'id': ptj.id})

        except:
            return JsonResponse({
                'status': False,
                'err': '出现未知的错误'
            },
                                status=403)
コード例 #10
0
 def post(self, request):
     '''
     新增/更换头像
     :param request:
     :return:
     '''
     user = getUser(request.session.get('login'))
     if request.FILES.get('head_img') != None:
         user.head_portrait = request.FILES.get('head_img')
         user.save()
     return JsonResponse({'status': True, 'id': user.id})
コード例 #11
0
ファイル: tailwindUserInfo.py プロジェクト: DICKQI/ALGYunXS
 def post(self, request):
     '''
     为初次进入有闲的用户创建有闲账户
     :param request:
     :return:
     '''
     user = getUser(request.session.get('login'))
     if not studentCheck(user):
         return JsonResponse({
             'status': False,
             'err': '请完成学生认证'
         },
                             status=403)
コード例 #12
0
ファイル: commodityInfo.py プロジェクト: DICKQI/ALGYunXS
 def post(self, request):
     '''
     新增商品
     :param request:
     :param cid:
     :return:
     '''
     jsonParams = json.loads(request.body)
     if jsonParams.get('detail') == None or jsonParams.get(
             'classification') == None or jsonParams.get('price') == None:
         return JsonResponse({
             'status': False,
             'err': '输入错误'
         }, status=403)
     # noinspection PyBroadException
     try:
         seller = getUser(request.session.get('login'))
         if not studentCheck(seller):
             return JsonResponse({
                 'status': False,
                 'err': '你还未进行学生认证,请前往学生认证后再发布商品'
             })
         classification = Classification.objects.filter(name=jsonParams.get('classification'))
         if not classification.exists():
             return JsonResponse({
                 'status': False,
                 'err': '找不到该分类'
             })
         classification = classification[0]
         if jsonParams.get('status') != None:
             status = jsonParams.get('status')
         else:
             status = 's'
         newCommodity = Commodity.objects.create(
             seller=seller,
             detail=jsonParams.get('detail'),
             classification=classification,
             price=jsonParams.get('price'),
             status=status
         )
         return JsonResponse({
             'status': True,
             'commodity': newCommodity.id
         })
     except:
         return JsonResponse({
             'status': False,
             'err': '未知错误'
         }, status=403)
コード例 #13
0
ファイル: userCollectionInfo.py プロジェクト: DICKQI/ALGYunXS
 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']
コード例 #14
0
ファイル: helpsInfo.py プロジェクト: DICKQI/ALGYunXS
 def post(self, request):
     '''
     新建文章
     :param request:
     :return:
     '''
     user = getUser(request.session.get('login'))
     if not studentCheck(user):
         return JsonResponse({
             'status': False,
             'err': '请完成学生认证'
         }, status=403)
     params = json.loads(request.body)
     try:
         title = params['title']
         content = params['content']
         status = params['status']
         category = params['category']
     except:
         return JsonResponse({
             'status': False,
             'err': '输入错误'
         }, status=403)
     if Article.objects.filter(title=title).exists():
         return JsonResponse({
             'status': False,
             'err': '标题重复'
         }, status=401)
     article = Article.objects.create(
         author=user,
         title=title,
         content=content,
         status=status,
         category=Category.objects.get(cid=category),
     )
     if params.get('tags'):
         for tag_name in params.get('tags'):
             t = Tag.objects.filter(name=tag_name)
             if not t.exists():
                 t = Tag.objects.create(name=tag_name)
                 article.tags.add(t)
             else:
                 t = t[0]
                 article.tags.add(t)
     return JsonResponse({
         'status': True,
         'id': article.id
     })
コード例 #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, 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)})
コード例 #17
0
ファイル: userEsCheck.py プロジェクト: DICKQI/ALGYunXS
 def post(self, requests):
     '''
     验证教务账号
     :param requests:
     :return:
     '''
     params = json.loads(requests.body)
     esResult = es_test(params.get('school'), params.get('username'),
                        params.get('password')).result()
     if esResult:
         user = getUser(requests.session.get('login'))
         user.student_id = params.get('username')
         user.RealName = esResult.get('name')
         user.save()
         return JsonResponse({'status': True, 'id': user.id})
     else:
         return JsonResponse({
             'status': False,
             'err': '验证失败,请重试'
         },
                             status=403)
コード例 #18
0
ファイル: collectionInfo.py プロジェクト: DICKQI/ALGYunXS
 def post(self, request, cid):
     '''
     收藏商品
     :param request:
     :return:
     '''
     myselfID = getUser(request.session.get('login')).id
     commodity = Commodity.objects.filter(id=cid)
     if not commodity.exists():
         return JsonResponse({
             'status': False,
             'err': '商品不存在'
         }, status=404)
     # 创建收藏数据表
     cclt = CommodityCollection.objects.create(
         relatedUser=myselfID,
         relatedCommodity=cid
     )
     return JsonResponse({
         'status': True,
         'collection_id': cclt.id
     })
コード例 #19
0
 def post(self, request, cid):
     '''
     新增评论
     :param request:
     :param cid:
     :return:
     '''
     commodity = Commodity.objects.filter(id=cid)
     if not commodity.exists():
         return JsonResponse({'err': '商品不存在', 'status': False}, status=404)
     params = json.loads(request.body)
     commodity = commodity[0]
     user = getUser(request.session.get('login'))
     if not studentCheck(user):
         return JsonResponse({'err': '请完成学生认证后再评论', 'status': False})
     try:
         content = params.get('content')
     except:
         return JsonResponse({'err': '输入错误', 'status': False}, status=403)
     comment = CComment.objects.create(fromUser=user, content=content)
     commodity.comment.add(comment)
     return JsonResponse({'status': True, 'id': comment.id})
コード例 #20
0
ファイル: commentStarInfo.py プロジェクト: DICKQI/ALGYunXS
 def get(self, request, cid, ccid):
     '''
     给评论点赞
     :param request:
     :param cid:
     :param ccid:
     :return:
     '''
     try:
         comment = self.getComment(cid, ccid)
         if not isinstance(comment, CComment):
             return JsonResponse({
                 'status': False,
                 'err': '未找到该评论'
             }, status=404)
         user = getUser(request.session.get('login'))
         if CStarRecord.objects.filter(
                 Q(star_man=user) & Q(comment=comment)
         ).exists():
             return JsonResponse({
                 'status': False,
                 'err': '已经点过赞了'
             }, status=401)
         CStarRecord.objects.create(
             star_man=user,
             comment=comment
         )
         comment.star += 1
         comment.save()
         return JsonResponse({
             'status': True,
             'id': ccid
         })
     except:
         return JsonResponse({
             'status': False,
             'err': '出现未知错误'
         }, status=403)
コード例 #21
0
    def put(self, request, cid, ocid):
        '''
        订单完成(购买人)
        :param request:
        :param cid:
        :param ocid:
        :return:
        '''
        try:
            order = self.getOrder(cid, ocid)
            if not isinstance(order, CommodityOrder):
                return JsonResponse({
                    'status': False,
                    'err': '订单未找到'
                },
                                    status=404)

            user = getUser(email=request.session.get('login'))
            if order.status == '已完成':
                return JsonResponse({
                    'status': False,
                    'err': '订单已完成,请勿重复操作'
                },
                                    status=401)
            if user == order.buyer:
                order.status = '已完成'
                order.end_time = da.now()
                order.save()
                return JsonResponse({'status': True, 'id': order.id})
            else:
                return JsonResponse({
                    'status': False,
                    'err': '你不可以进行此操作'
                },
                                    status=401)

        except:
            return JsonResponse({'status': False, 'err': '出现未知错误'}, status=403)
コード例 #22
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)
     )
     if (not comments.exists()) & (not orders.exists()):
         return JsonResponse({
             'status': True,
             'mss': 'none'
         }, status=404)
     else:
         return JsonResponse({
             'status': True,
             'mss': 'yes'
         })
コード例 #23
0
ファイル: commentStarInfo.py プロジェクト: DICKQI/ALGYunXS
 def delete(self, request, cid, ccid):
     '''
     取消赞
     :param request:
     :param cid:
     :param ccid:
     :return:
     '''
     try:
         comment = self.getComment(cid, ccid)
         if not isinstance(comment, CComment):
             return JsonResponse({
                 'status': False,
                 'err': '未找到该评论'
             }, status=404)
         user = getUser(request.session.get('login'))
         record = CStarRecord.objects.filter(
             Q(star_man=user) & Q(comment=comment)
         )
         if not record.exists():
             return JsonResponse({
                 'status': False,
                 'err': '你还没点赞呢'
             }, status=401)
         record[0].delete()
         comment.star -= 1
         comment.save()
         return JsonResponse({
             'status': True,
             'id': ccid
         })
     except:
         return JsonResponse({
             'status': False,
             'err': '出现未知错误'
         }, status=403)
コード例 #24
0
    def post(self, request, cid):
        '''
        创建新订单(下单)
        :param request:
        :param cid:
        :return:
        '''
        try:
            user = getUser(email=request.session.get('login'))
            if not studentCheck(user):
                return JsonResponse({
                    'status': False,
                    'err': '你还未进行学生认证,请前往学生认证后再下单'
                })
            commodity = Commodity.objects.filter(id=cid)
            if not commodity.exists():
                return JsonResponse({
                    'err': '商品不存在',
                    'status': False
                },
                                    status=404)
            commodity = commodity[0]
            if commodity.status == 'o':
                return JsonResponse({
                    'status': False,
                    'err': '商品已售出'
                },
                                    status=401)

            if commodity.seller == user:
                return JsonResponse({
                    'status': False,
                    'err': '不能购买自己的商品'
                },
                                    status=401)
            params = json.loads(request.body)
            try:
                address = params.get('address')
                time = int(params.get('time'))
            except:
                return JsonResponse({
                    'err': '输入错误',
                    'status': False
                },
                                    status=403)
            '''新建订单'''
            orderID = self.generateID()
            '''创建一个"未确认"订单'''
            order = CommodityOrder.objects.create(id=orderID,
                                                  commodity=commodity,
                                                  buyer=user,
                                                  address=address,
                                                  unConfirmDeadline=da.now() +
                                                  timedelta(minutes=time))
            '''商品状态修改'''
            commodity.status = 'o'
            commodity.save()
            '''通知商品所有者'''
            '''站内通知'''
            OrderNotification.send(user, order, commodity)
            '''邮件通知'''
            email_title = '您的商品被下单啦,请尽快处理噢'
            email_body = '您的商品已被下单,请尽快处理,感谢您使用ALG智慧校园~'
            email = request.session.get('login')
            send_mail(email_title, email_body, EMAIL_FROM, [email])
            '''结束'''
            return JsonResponse({'status': True, 'id': order.id})
        except:
            return JsonResponse({'status': False, 'err': '出现未知错误'}, status=403)
コード例 #25
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()
        })