feat(points): 新增积分赠送
This commit is contained in:
@@ -14,7 +14,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from core.base import schema as base_schema
|
||||
from core.db.crud import CRUD
|
||||
from core.db.engine import get_async_session
|
||||
from core.db.models import Order
|
||||
from core.db.models import Order, Product
|
||||
from core.routers.auth.schema import LoginUser
|
||||
from core.routers.auth.services import get_current_user_form_http
|
||||
from core.utils.helper import generate_keyname, generate_order_number
|
||||
@@ -55,6 +55,14 @@ async def create_order(
|
||||
login_user: LoginUser = Depends(get_current_user_form_http),
|
||||
db_session: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
db_crud = CRUD(db_session, Order)
|
||||
product = await db_crud.get(model=Product, filters={'id': payload.product_id})
|
||||
if product is None:
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND, detail='产品不存在')
|
||||
|
||||
if product.number != payload.total_fee:
|
||||
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail='产品费用不合法')
|
||||
|
||||
client_ip = (
|
||||
request.headers.get('X-Real-IP') or
|
||||
request.headers.get('x-real-ip') or
|
||||
@@ -67,7 +75,7 @@ async def create_order(
|
||||
create_ip=client_ip
|
||||
)
|
||||
payment_params = wechat_pay_api.generate_payment_params(prepay_id)
|
||||
db_crud = CRUD(db_session, Order)
|
||||
|
||||
order: Order = await db_crud.create(
|
||||
data={
|
||||
'order_id': out_trade_no,
|
||||
@@ -112,7 +120,7 @@ async def wechat_notify(
|
||||
# 处理支付结果
|
||||
db_crud = CRUD(db_session, Order)
|
||||
record = {
|
||||
'out_trade_no': params['out_trade_no'],
|
||||
'order_id': params['out_trade_no'],
|
||||
'transaction_id': params['transaction_id']
|
||||
}
|
||||
if params['return_code'] == 'SUCCESS' and params['result_code'] == 'SUCCESS':
|
||||
|
||||
Reference in New Issue
Block a user