前面文章
-**策略【用週期時間來模擬個數,7天,15天,乙個月】
-購買多個無意義,因為都是從同一天開始往後累加。
shopping_car_[user_id]_[commodity_id]為鍵,然後商品詳細為值。
,示例可以對購買個數進行限制,通過計算長度,看買了多少"4":
},"default_policy
": "4"
},
},"default_policy
": "2"
} ],
"error
": null
}
print(len(conn.keys("luffy_shopping_car_1_1
")))
conn.expire("使用方案:對購買課程個數進行限制luffy_shopping_car_1_1
",60*30) #
30min後過期也可以
1.操作頻繁,對資料庫壓力大,可以使用redis
2.操作速度快
3.購物車只是乙個臨時狀態,而不是永久儲存的
django rest framework 介面書寫規範
原則:-內建
-框架自定義
url(r'payment/$
',payment.paymentviewset.as_view())
#既然要結算,那麼我們需要把拿到購物車中的物品,以課程號為鍵,以課程詳細資訊為值進行結構的構造,最後獲取到後,才可以進行優惠券的獲取然後對**進行減免。author:jesi
#time : 2018/11/22 15:33
from rest_framework.views import
apiview
from ..auth.auth import
luffyauth
from rest_framework.response import
response
from django.conf import
settings
from django_redis import
get_redis_connection
import
json
from utils.response import
baseresponse
from api import
models
import
datetime
class
paymentviewset(apiview):
authentication_classes =[luffyauth,] #首先肯定還是進行認證
conn=get_redis_connection("
default
") #鏈結到redis
def post(self,request,*args,**kwargs):
ret=baseresponse()
try:
payment_dict={}
#1.1獲取使用者要結算課程id
course_id_list=request.data.get("
courseids")
for course_id in
course_id_list:
payment_course_dict={}
car_key=settings.shopping_car_key%(request.auth.user_id,course_id)
#1.2監測使用者要結算的課程是否已加入到購物車
ifnot
self.conn.exists(car_key):
ret.code=1001ret.error="
課程需要先加入購物車才能結算"#
1.3根據key去購物車中獲取資訊,放入到結算中心。
policy=json.loads(self.conn.hget(car_key,'
policy
').decode('
utf-8'))
default_policy=self.conn.hget(car_key,'
default_policy
').decode('
utf-8')
policy_info=policy[default_policy]
payment_course_dict=,
"default_coupon":0
}payment_course_dict.update(policy_info)
payment_dict[str(course_id)]=payment_course_dict
ret.data=payment_dict
#從這兒開始往下是優惠券的邏輯,還沒寫完【半成品】
#主要展示的是拿到購物車商品展示的邏輯
#2.獲取優惠券
ctime=datetime.date.today()
from django.db.models import
q
#a.通過表示式進行構造
q(q(account=request.auth.user)&q(status=0))|q(coupon__valid_begin_date__lte=ctime)
#b.通過方法進行構造
q=q()
q1=q()
q1.connector="
and"
'account
',request.auth.user))
'status
',0))
'coupon__valid_begin_date__lte
',ctime))
q2=q()
q2.connector = "
and"
'coupon__valid_end_date__lte
',ctime))
q.add(q1,'or
')q.add(q2,'or
')coupon_list=models.couponrecord.objects.filter(
account=request.auth.user,
status=0,
coupon__valid_begin_date__lte=ctime,
coupon__valid_end_date__gte=ctime,
)for coupon in
coupon_list:
(coupon)
#到此處結束購物車【半成品】
except
exception as e:
pass
return response(ret.dict)
我們傳入的值是乙個課程id,可為列表因為可能會出現購買多個課程
iOS支付寶支付相關問題
支付寶實現以及相關問題 1 支付寶支付流程 1.使用者點選支付 2.客戶端請求伺服器使用者支付 3.伺服器接收請求生成金額訂單等要給第三方支付的一切資訊,並生成 引數傳給客戶端 4.客戶端接收資訊 一般會再讓使用者確認支付或者乾脆購買後是生成訂單,然後才是付款 並將伺服器給的資訊分別傳入sdk需要的...
支付寶支付相關問題彙總
今天把支付寶支付的相關問題進行一下總結,在使用的時候步驟如下,1 匯入支付寶的sdk,openssl資料夾等相關檔案 2 根據支付寶提供的demo匯入系統需要的框架 3 這個時候執行專案應該會出現 找不到 include 的情況,出現這種情況需要我們配置一下header search paths,建...
路飛骷髏頭
路飛骷髏 import turtle as t 黃底帽子 t.pu t.goto 0,200 t.circle 130,80 t.pd t.colormode 255 t.pensize 5 t.color 242,232,184 帽子黃底rgb t.begin fill t.pencolor 0,...