def process_request(self, request): path = request.path not_login_allow = False for URL in self.URL_NOT_LOGIN: patten = f".*{URL}.*" if re.match(patten, path): not_login_allow = True # print(111,patten, path) break #请求方式不为post且需POST请求,则抛出错误 if request.method != "POST": not_request_allow = False for URL in self.URL_NOT_POST_LIST: patten = f".*{URL}.*" # print(patten, path) if re.match(patten, path): not_request_allow = True # print(222, patten, path) break if not not_request_allow: return render_json(None, 'Request Method Error!', errors.Host_Error.BAD_REQUEST.code) uid = request.session.get('uid') if (not uid) and (not not_login_allow): return render_json(None, 'User Not Login!', errors.User_Error.NOT_IDENT.code) if not not_login_allow: try: user = User.objects.get(id=uid) request.user = user except User.DoesNotExist: return render_json('Not This User!', errors.User_Error.NOT_IDENT.code)
def cart_selected(request): user = request.user cartid = user.cart.id cart_select(cartid) cart = cache.get('cartid') return render_json(cart)
def orders(request): # 根据订单id取出订单 orders = Order.objects.filter(id=request.POST.get("oid")) if not orders: raise errors.Order_Error.NOT_EMPTY_ORDER order = orders.first() return render_json({'order': order})
def goods(request): types_id = request.GET.get("typeid",0) child_type = request.GET.get("childtype",None) num = request.GET.get("num", 100) print(types_id) goods = get_goods(types_id,child_type,num) return render_json(goods)
def seleced_all(request): user = request.user cartid = request.user.cart.id selected = request.POST.get('selected') all_select_or_none(user, selected) cart = cache.get(cartid) return render_json(cart.to_string())
def change_status(request): order_id = request.POST.get('orderid') status = request.POST.get('status') # 查找当前用户的订单 orders = Order.objects.filter(user_id=request.user.id, id=order_id) if not orders: raise errors.Order_Error.NOT_THIS_ORDER # 更新订单状态 orders.update(status=status) return render_json()
def s_sms(request): phone_num = request.POST.get('phone') vcode = cache.get(keys.SMS_KEY % phone_num, None) if vcode: raise errors.Sms_Error.SMS_TIME_LIMIT vcode = send_sms(phone_num) # 把验证码放到缓存中,过期时间60秒 cache.set(keys.SMS_KEY % phone_num, vcode, 60) # print(phone_num) return render_json({"vcode": vcode})
def process_request(self, request): path = request.path for URL in self.URL_WHITE_LIST: if path in URL: return if request.method != "POST" and not request.path in self.URL_NOT_POST_LIST: return render_json('Request Method Error!', errors.Host_Error.BAD_REQUEST.code) uid = request.session.get('uid') if not uid: return render_json('User Not Login!', errors.User_Error.NOT_IDENT.code) try: user = User.objects.get(id=uid) request.user = user except User.DoesNotExist: return render_json('Not This User!', errors.User_Error.NOT_IDENT.code)
def process_request(self, request): # print(request.META.get("HTTP_HOST")) # HTTP_USER_AGENT key = keys.HOST_KEY % request.META.get("HTTP_HOST") count = cache.get(key, 0) if count > 2: cache.set(key, count, 60) return render_json(errors.Host_Error.REQUEST_FORBID.msg, errors.Host_Error.REQUEST_FORBID.code) count += 1 cache.set(key, count, 1)
def homes(request): # 取出所有的商品 data = {} mains = Mainshow.objects.all() wheels = MainWheel.objects.all() navs = MainNav.objects.all() buys = Mustbuy.objects.all() data["mains"] = [wheel.to_dict() for wheel in wheels] data["wheels"] = [main.to_dict() for main in mains] data["navs"] = [nav.to_dict() for nav in navs] data["buys"] = [buy.to_dict() for buy in buys] return render_json(data)
def address(request): user = request.user if request.method == "POST": name = request.POST.get("name") phone = request.POST.get("phone") adress = request.POST.get("address") UserAdress.objects.create(uid=user.id, name=name, phone=phone, adress=adress) else: user_adds = UserAdress.objects.filter(uid=user.id) return render_json([user_add.to_dict() for user_add in user_adds])
def result(request): # print("result:", dict(request.GET)) data = request.GET.dict() # print(data) signature = data.pop("sign") # print(signature) success = alipay.verify(data, signature) if not success: raise errors.Pay_Error.PAY_DEFEATED order_id = request.GET.get("out_trade_no") orders = Order.objects.filter(orderid=order_id) orders.update(status=0) return render_json(f"支付成功:{dict(request.GET)}")
def notify(request): # fileName = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), # 'log/%s_notify.txt' % request.method) if request.method == 'GET': params = request.GET.dict() else: from urllib.parse import parse_qs body_str = request.body.decode('utf-8') post_data = parse_qs(body_str) params = {} for k, v in post_data.items(): params[k] = v[0] # with open(fileName, 'a') as fp: # fp.write(str(params)) return render_json(params)
def types(request): type_id = request.GET.get("types","all") if type_id == "all": types = Goodtypes.objects.all() else: types = Goodtypes.objects.filter(typeid = type_id) data = {} type_ids = [] for type_ in types: if type_.typeid in type_ids: if data.get("child",None) == None: data["child"] = [] data["child"].append(type_.to_dict()) data[type_.typeid] = type_.to_dict() type_ids.append(type_.typeid) return render_json(data)
def update_cart(request): ''' "event":"add", //可以是 minus(减) update(开通会员,使用优惠券等) "goodId":1, "isOpendClub":0, //是否打开会员 "coupon":"", //是否使用优惠券,优惠券ID "totalPrice": 123.3 //商品总价 ''' event = request.POST.get('event') cart = cache.get('cart') cartid = cart.id if event == 'add': cart_num_add(cartid) else: cart_num_sub(cartid,request.user.id) cart = cache.get(cartid) return render_json(cart)
def register_login(request): if request.session.get('uid'): raise errors.User_Error.LOGIN_REPEAT vcode = request.POST.get('vcode') phone_num = request.POST.get('phone') username = request.POST.get('username', phone_num) password = request.POST.get('password') re_vcode = cache.get(keys.SMS_KEY % phone_num, None) # print(re_vcode,vcode) if not str(re_vcode) == str(vcode): raise errors.Other_Error.NOT_VERIFIER cache.delete(keys.SMS_KEY % phone_num) users = User.objects.filter(phone=phone_num) if not users.exists(): user = User.objects.create(phone=phone_num, name=username, password=password) #, password=password) else: user = users.first() request.session['uid'] = user.id return render_json()
def order_handle(request): user = request.user order_no = request.POST.get('orderno') credit = request.POST.get("credit", 0) orders = Order.objects.filter(user_id=user.id, order_no=order_no) if not orders.exits(): raise errors.Order_Error.NOT_THIS_ORDER order = orders.first() # discount = order_string = alipay.api_alipay_trade_page_pay( out_trade_no=order.orderid, total_amount=str(order.total_price), subject="测试订单", return_url="http://10.3.139.178:8000/app/result/", notify_url=None # 可选, 不填则使用默认notify url ) # 将前面后的支付参数,拼接到支付网关 # 注意:下面支付网关是沙箱环境, re_url = "https://openapi.alipaydev.com/gateway.do?{data}".format( data=order_string) return render_json({'re_url': re_url})
def all_order(request): # 判断用户是否登录 user_id = request.user.id order_id = request.POST.get('orderid') orders = Order.objects.filter(user_id=user_id) return render_json(orders)
def create_cart(request): gid = request.POST.get('gid') num = request.POST.get('num') uid = request.user.id cart = Create_cart(uid, gid, num) return render_json(cart.to_string())
def success_pay(request): return render_json({"page": 'success_pay/success_pay.html'})
def add_order(request): user = request.user order = deal_cart(user) return render_json(order.order_no)
def pay(request): # 传递参数初始化支付类 user = request.user orderNo = request.POST.get('orderNo') re_url = pay_logic(user, orderNo) return render_json({'re_url': re_url})
def order_service(request): # 判断用户是否登录 orders = Order.objects.filter(user_id=request.user.id, status=keys.Order_Status.ORDER_IS_FINISH) return render_json()
def process_exception(self, request, exception): if isinstance(exception, errors.LogiceError): error_logger.error(f"Code:{exception.code}:\r Msg:{exception.msg}") return render_json(None, code=exception.code, msg=exception.msg)
def order_pay(request): orders = Order.objects.filter(user_id=request.user.id, status=keys.Order_Status.ORDER_ARRIVED) return render_json()
def order_unreceive(request): orders = Order.objects.filter(user_id=request.user.id, status=keys.Order_Status.RECEIVE_UNCOMMENT) return render_json()