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)
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)
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})
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)
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': '意料之外的错误'})
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})
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 })
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)
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)
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})
def post(self, request): ''' 为初次进入有闲的用户创建有闲账户 :param request: :return: ''' user = getUser(request.session.get('login')) if not studentCheck(user): return JsonResponse({ 'status': False, 'err': '请完成学生认证' }, status=403)
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)
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']
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 })
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)
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)})
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)
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 })
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})
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)
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)
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' })
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)
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)
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() })