Exemple #1
0
 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)
Exemple #2
0
def cart_selected(request):

    user = request.user
    cartid = user.cart.id
    cart_select(cartid)
    cart = cache.get('cartid')
    return render_json(cart)
Exemple #3
0
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})
Exemple #4
0
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)
Exemple #5
0
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())
Exemple #6
0
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()
Exemple #7
0
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)
Exemple #9
0
 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)
Exemple #10
0
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)
Exemple #11
0
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])
Exemple #12
0
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)}")
Exemple #13
0
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)
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
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()
Exemple #17
0
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})
Exemple #18
0
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)
Exemple #19
0
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())
Exemple #20
0
def success_pay(request):
    return render_json({"page": 'success_pay/success_pay.html'})
Exemple #21
0
def add_order(request):
    user = request.user
    order = deal_cart(user)
    return render_json(order.order_no)
Exemple #22
0
def pay(request):
    # 传递参数初始化支付类
    user = request.user
    orderNo = request.POST.get('orderNo')
    re_url = pay_logic(user, orderNo)
    return render_json({'re_url': re_url})
Exemple #23
0
def order_service(request):
    # 判断用户是否登录
    orders = Order.objects.filter(user_id=request.user.id,
                                  status=keys.Order_Status.ORDER_IS_FINISH)
    return render_json()
Exemple #24
0
 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)
Exemple #25
0
def order_pay(request):
    orders = Order.objects.filter(user_id=request.user.id,
                                  status=keys.Order_Status.ORDER_ARRIVED)
    return render_json()
Exemple #26
0
def order_unreceive(request):
    orders = Order.objects.filter(user_id=request.user.id,
                                  status=keys.Order_Status.RECEIVE_UNCOMMENT)
    return render_json()