Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c095c0930 | ||
|
|
bab349004e | ||
|
|
1ea7d64e73 | ||
|
|
69e16d04c1 | ||
|
|
d45ea0a48f | ||
|
|
d56793afe3 |
@ -257,13 +257,13 @@ async def check_receive(
|
|||||||
"message": message
|
"message": message
|
||||||
})
|
})
|
||||||
|
|
||||||
@router.get("/{activity_id}/get_url_link", response_model=ResponseModel)
|
@router.get("/{activity_id}/get_qr_code", response_model=ResponseModel)
|
||||||
async def get_url_link(
|
async def get_qr_code(
|
||||||
activity_id: int,
|
activity_id: int,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
current_user: UserDB = Depends(get_current_user)
|
current_user: UserDB = Depends(get_current_user)
|
||||||
):
|
):
|
||||||
"""获取URL链接"""
|
"""获取二维码"""
|
||||||
activity = db.query(CouponActivityDB).filter(
|
activity = db.query(CouponActivityDB).filter(
|
||||||
CouponActivityDB.id == activity_id
|
CouponActivityDB.id == activity_id
|
||||||
).first()
|
).first()
|
||||||
@ -287,6 +287,26 @@ async def get_url_link(
|
|||||||
|
|
||||||
return success_response(data=url)
|
return success_response(data=url)
|
||||||
|
|
||||||
|
@router.get("/{activity_id}/get_url_link", response_model=ResponseModel)
|
||||||
|
async def get_url_link(
|
||||||
|
activity_id: int,
|
||||||
|
db: Session = Depends(get_db),
|
||||||
|
current_user: UserDB = Depends(get_current_user)
|
||||||
|
):
|
||||||
|
"""获取URL链接"""
|
||||||
|
activity = db.query(CouponActivityDB).filter(
|
||||||
|
CouponActivityDB.id == activity_id
|
||||||
|
).first()
|
||||||
|
|
||||||
|
if not activity:
|
||||||
|
return error_response(code=404, message="活动不存在")
|
||||||
|
|
||||||
|
# 获取URL链接
|
||||||
|
wechat_client = WeChatClient()
|
||||||
|
url = await wechat_client.get_url_link(path=f"pages/my/promation/activities/index", query=f"id={activity_id}")
|
||||||
|
|
||||||
|
return success_response(data=url)
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{activity_id}", response_model=ResponseModel)
|
@router.put("/{activity_id}", response_model=ResponseModel)
|
||||||
async def update_coupon_activity(
|
async def update_coupon_activity(
|
||||||
|
|||||||
@ -41,6 +41,7 @@ async def get_dashboard_info(
|
|||||||
# 查询已下单用户数
|
# 查询已下单用户数
|
||||||
all_orders = db.query(ShippingOrderDB).all()
|
all_orders = db.query(ShippingOrderDB).all()
|
||||||
completed_orders = [order for order in all_orders if order.status == OrderStatus.COMPLETED]
|
completed_orders = [order for order in all_orders if order.status == OrderStatus.COMPLETED]
|
||||||
|
unpaid_orders = [order for order in all_orders if order.status == OrderStatus.UNPAID]
|
||||||
|
|
||||||
#获取订单数超过 2 个的用户数量
|
#获取订单数超过 2 个的用户数量
|
||||||
repeat_user_count = 0
|
repeat_user_count = 0
|
||||||
@ -58,7 +59,7 @@ async def get_dashboard_info(
|
|||||||
has_order_user_count = len(set([order.userid for order in all_orders if order.status != OrderStatus.CANCELLED]))
|
has_order_user_count = len(set([order.userid for order in all_orders if order.status != OrderStatus.CANCELLED]))
|
||||||
has_order_completed_user_count = len(set([order.userid for order in completed_orders if order.status == OrderStatus.COMPLETED]))
|
has_order_completed_user_count = len(set([order.userid for order in completed_orders if order.status == OrderStatus.COMPLETED]))
|
||||||
has_paid_user_count = len(set([order.userid for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0]))
|
has_paid_user_count = len(set([order.userid for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0]))
|
||||||
|
has_unpaid_user_count = len(set([order.userid for order in unpaid_orders]))
|
||||||
order_count = len(completed_orders)
|
order_count = len(completed_orders)
|
||||||
|
|
||||||
# 今日新增配送订单数
|
# 今日新增配送订单数
|
||||||
@ -71,7 +72,7 @@ async def get_dashboard_info(
|
|||||||
|
|
||||||
#需要支付的订单数量
|
#需要支付的订单数量
|
||||||
need_pay_order_count = len([order for order in completed_orders if order.final_amount > 0])
|
need_pay_order_count = len([order for order in completed_orders if order.final_amount > 0])
|
||||||
order_unpaid_count = len([order for order in completed_orders if order.status == OrderStatus.UNPAID and order.final_amount > 0])
|
order_unpaid_count = len(unpaid_orders)
|
||||||
order_pay_count = len([order for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0])
|
order_pay_count = len([order for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0])
|
||||||
pay_rate = order_pay_count / need_pay_order_count if need_pay_order_count > 0 else 0
|
pay_rate = order_pay_count / need_pay_order_count if need_pay_order_count > 0 else 0
|
||||||
|
|
||||||
@ -79,7 +80,7 @@ async def get_dashboard_info(
|
|||||||
order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders])
|
order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders])
|
||||||
completed_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.status == OrderStatus.COMPLETED])
|
completed_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.status == OrderStatus.COMPLETED])
|
||||||
pay_amount = sum([order.final_amount for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0])
|
pay_amount = sum([order.final_amount for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0])
|
||||||
unpaid_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.status == OrderStatus.UNPAID])
|
unpaid_amount = sum([order.original_amount_with_additional_fee for order in unpaid_orders])
|
||||||
|
|
||||||
# 今日订单金额
|
# 今日订单金额
|
||||||
today_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.completed_time.date() == datetime.now().date()])
|
today_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.completed_time.date() == datetime.now().date()])
|
||||||
@ -94,6 +95,7 @@ async def get_dashboard_info(
|
|||||||
"has_order_user_count": has_order_user_count,
|
"has_order_user_count": has_order_user_count,
|
||||||
"has_order_completed_user_count": has_order_completed_user_count,
|
"has_order_completed_user_count": has_order_completed_user_count,
|
||||||
"has_paid_user_count": has_paid_user_count,
|
"has_paid_user_count": has_paid_user_count,
|
||||||
|
"has_unpaid_user_count": has_unpaid_user_count,
|
||||||
"order_count": order_count,
|
"order_count": order_count,
|
||||||
"need_pay_order_count": need_pay_order_count,
|
"need_pay_order_count": need_pay_order_count,
|
||||||
"order_completed_count": order_completed_count,
|
"order_completed_count": order_completed_count,
|
||||||
|
|||||||
@ -16,6 +16,7 @@ from app.models.order import (
|
|||||||
OrderPriceResult,
|
OrderPriceResult,
|
||||||
RefundOrderAmountRequest
|
RefundOrderAmountRequest
|
||||||
)
|
)
|
||||||
|
from app.models.wechat_payment import WechatPaymentRecordDB
|
||||||
from app.models.order_additional_fee import OrderAdditionalFeeDB, OrderAdditionalFeeInfo, AdditionalFeeResult
|
from app.models.order_additional_fee import OrderAdditionalFeeDB, OrderAdditionalFeeInfo, AdditionalFeeResult
|
||||||
from app.models.database import get_db
|
from app.models.database import get_db
|
||||||
from app.api.deps import get_current_user, get_deliveryman_user, get_admin_user
|
from app.api.deps import get_current_user, get_deliveryman_user, get_admin_user
|
||||||
@ -50,6 +51,8 @@ from app.models.community_timeperiod import CommunityTimePeriodDB
|
|||||||
from app.models.community_profit_sharing import CommunityProfitSharing
|
from app.models.community_profit_sharing import CommunityProfitSharing
|
||||||
from app.core.qcloud import QCloudManager
|
from app.core.qcloud import QCloudManager
|
||||||
from app.core.wechat import WeChatClient
|
from app.core.wechat import WeChatClient
|
||||||
|
from app.models.community import CommunityStatus
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: Session) -> OrderPriceResult:
|
def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: Session) -> OrderPriceResult:
|
||||||
@ -208,27 +211,28 @@ async def pre_order(
|
|||||||
if request.delivery_date and request.delivery_date < datetime.now().date():
|
if request.delivery_date and request.delivery_date < datetime.now().date():
|
||||||
return error_response(code=400, message="配送日期不能选择过去的时间")
|
return error_response(code=400, message="配送日期不能选择过去的时间")
|
||||||
|
|
||||||
# 检查是否在服务时间
|
|
||||||
community = db.query(CommunityDB).filter(
|
community = db.query(CommunityDB).filter(
|
||||||
CommunityDB.id == request.community_id
|
CommunityDB.id == request.community_id
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
if community:
|
# 检查是否在服务时间
|
||||||
# 检查是否在服务时间
|
if community and community.status != CommunityStatus.OPENING:
|
||||||
if community.weekdays and request.delivery_date:
|
return error_response(code=400, message="服务暂未开放")
|
||||||
if request.delivery_date.isoweekday() not in community.weekdays:
|
|
||||||
|
|
||||||
#排序
|
# 检查是否在服务时间
|
||||||
sorted_weekdays = sorted(community.weekdays)
|
if community and community.weekdays and request.delivery_date:
|
||||||
|
if request.delivery_date.isoweekday() not in community.weekdays:
|
||||||
|
#排序
|
||||||
|
sorted_weekdays = sorted(community.weekdays)
|
||||||
|
|
||||||
if has_consecutive_weekdays(sorted_weekdays):
|
if has_consecutive_weekdays(sorted_weekdays):
|
||||||
message = f"服务时间为: 周{sorted_weekdays[0]}-{sorted_weekdays[-1]}"
|
message = f"服务时间为: 周{sorted_weekdays[0]}-{sorted_weekdays[-1]}"
|
||||||
else:
|
else:
|
||||||
message = f"服务时间为: "
|
message = f"服务时间为: "
|
||||||
for day in sorted_weekdays:
|
for day in sorted_weekdays:
|
||||||
message += f"周{day}, "
|
message += f"周{day}, "
|
||||||
message = message[:-2]
|
message = message[:-2]
|
||||||
return error_response(code=400, message=message)
|
return error_response(code=400, message=message)
|
||||||
|
|
||||||
# 检查是否有未支付的订单
|
# 检查是否有未支付的订单
|
||||||
unpay_order = db.query(ShippingOrderDB).filter(
|
unpay_order = db.query(ShippingOrderDB).filter(
|
||||||
@ -479,6 +483,23 @@ async def get_order_detail(
|
|||||||
|
|
||||||
if not order:
|
if not order:
|
||||||
return error_response(code=404, message="订单不存在")
|
return error_response(code=404, message="订单不存在")
|
||||||
|
|
||||||
|
# 检查订单是否已经支付
|
||||||
|
if order.status == OrderStatus.UNPAID:
|
||||||
|
payment = db.query(WechatPaymentRecordDB).filter(
|
||||||
|
WechatPaymentRecordDB.out_trade_no == orderid
|
||||||
|
).first()
|
||||||
|
# 如果订单已支付,则更新订单状态
|
||||||
|
if payment and payment.trade_state == "SUCCESS":
|
||||||
|
if order.deliveryman_user_id:
|
||||||
|
order.status = OrderStatus.COMPLETED
|
||||||
|
else:
|
||||||
|
order.status = OrderStatus.CREATED
|
||||||
|
order.pay_status = True
|
||||||
|
order.transaction_id = payment.transaction_id
|
||||||
|
order.pay_time = payment.success_time
|
||||||
|
db.commit()
|
||||||
|
db.refresh(order)
|
||||||
|
|
||||||
# 如果有配送员 id,则获取配送员信息
|
# 如果有配送员 id,则获取配送员信息
|
||||||
if order.deliveryman_user_id:
|
if order.deliveryman_user_id:
|
||||||
@ -1298,12 +1319,6 @@ async def deliveryman_complete_order(
|
|||||||
OrderStatus.COMPLETED
|
OrderStatus.COMPLETED
|
||||||
)
|
)
|
||||||
|
|
||||||
qcloud = QCloudManager()
|
|
||||||
background_tasks.add_task(
|
|
||||||
qcloud.send_sms_order_complete,
|
|
||||||
order.address_customer_phone
|
|
||||||
)
|
|
||||||
|
|
||||||
# 发送模板消息
|
# 发送模板消息
|
||||||
if order.userid:
|
if order.userid:
|
||||||
order_user = db.query(UserDB).filter(
|
order_user = db.query(UserDB).filter(
|
||||||
@ -1327,6 +1342,12 @@ async def deliveryman_complete_order(
|
|||||||
data=data,
|
data=data,
|
||||||
orderid=order.orderid
|
orderid=order.orderid
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
qcloud = QCloudManager()
|
||||||
|
background_tasks.add_task(
|
||||||
|
qcloud.send_sms_order_complete,
|
||||||
|
order.address_customer_phone
|
||||||
|
)
|
||||||
|
|
||||||
return success_response(
|
return success_response(
|
||||||
message="订单已完成" if order.final_amount == 0 else "请继续支付",
|
message="订单已完成" if order.final_amount == 0 else "请继续支付",
|
||||||
@ -1414,6 +1435,12 @@ async def deliveryman_receive_order(
|
|||||||
data=data,
|
data=data,
|
||||||
orderid=order.orderid
|
orderid=order.orderid
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
qcloud = QCloudManager()
|
||||||
|
background_tasks.add_task(
|
||||||
|
qcloud.send_sms_order_receive,
|
||||||
|
order.address_customer_phone
|
||||||
|
)
|
||||||
|
|
||||||
return success_response(
|
return success_response(
|
||||||
message="接单成功",
|
message="接单成功",
|
||||||
|
|||||||
@ -215,15 +215,17 @@ async def payment_notify(
|
|||||||
# 获取订单信息
|
# 获取订单信息
|
||||||
out_trade_no = data.get("out_trade_no")
|
out_trade_no = data.get("out_trade_no")
|
||||||
transaction_id = data.get("transaction_id")
|
transaction_id = data.get("transaction_id")
|
||||||
|
trade_state = data.get("trade_state")
|
||||||
trade_state_desc = data.get("trade_state_desc")
|
trade_state_desc = data.get("trade_state_desc")
|
||||||
success_time = data.get("success_time")
|
success_time = data.get("success_time")
|
||||||
|
|
||||||
logger.info(f"out_trade_no: {out_trade_no}")
|
logger.info(f"out_trade_no: {out_trade_no}")
|
||||||
logger.info(f"transaction_id: {transaction_id}")
|
logger.info(f"transaction_id: {transaction_id}")
|
||||||
logger.info(f"trade_state_desc: {trade_state_desc}")
|
logger.info(f"trade_state_desc: {trade_state_desc}")
|
||||||
|
logger.info(f"trade_state: {trade_state}")
|
||||||
logger.info(f"success_time: {success_time}")
|
logger.info(f"success_time: {success_time}")
|
||||||
|
|
||||||
if not all([out_trade_no, transaction_id, trade_state_desc]) or trade_state_desc != "支付成功":
|
if not all([out_trade_no, transaction_id, trade_state])or trade_state != "SUCCESS":
|
||||||
return error_response(code=400, message="缺少必要的订单信息或支付未成功")
|
return error_response(code=400, message="缺少必要的订单信息或支付未成功")
|
||||||
|
|
||||||
# 判断订单类型并处理
|
# 判断订单类型并处理
|
||||||
@ -236,12 +238,18 @@ async def payment_notify(
|
|||||||
if not order:
|
if not order:
|
||||||
return error_response(code=404, message="订单不存在")
|
return error_response(code=404, message="订单不存在")
|
||||||
|
|
||||||
if trade_state_desc == "支付成功":
|
if trade_state == "SUCCESS":
|
||||||
# 更新订单状态
|
# 更新订单状态
|
||||||
if order.deliveryman_user_id:
|
if order.deliveryman_user_id:
|
||||||
order.status = OrderStatus.COMPLETED # 支付成功后状态为已完成
|
order.status = OrderStatus.COMPLETED # 支付成功后状态为已完成
|
||||||
else:
|
else:
|
||||||
order.status = OrderStatus.CREATED # 支付成功后状态为已创建
|
order.status = OrderStatus.CREATED # 支付成功后状态为已创建
|
||||||
|
order.pay_status = True
|
||||||
|
order.completed_time = datetime.now()
|
||||||
|
order.transaction_id = transaction_id
|
||||||
|
order.pay_time = datetime.fromisoformat(success_time.replace('Z', '+00:00'))
|
||||||
|
db.commit()
|
||||||
|
db.refresh(order)
|
||||||
|
|
||||||
# 发送企业微信消息
|
# 发送企业微信消息
|
||||||
if order.status == OrderStatus.CREATED:
|
if order.status == OrderStatus.CREATED:
|
||||||
@ -253,11 +261,6 @@ async def payment_notify(
|
|||||||
OrderStatus.CREATED
|
OrderStatus.CREATED
|
||||||
)
|
)
|
||||||
|
|
||||||
order.pay_status = True
|
|
||||||
order.completed_time = datetime.now()
|
|
||||||
order.transaction_id = transaction_id
|
|
||||||
order.pay_time = datetime.fromisoformat(success_time.replace('Z', '+00:00'))
|
|
||||||
|
|
||||||
elif out_trade_no.startswith("A"): # 加价订单
|
elif out_trade_no.startswith("A"): # 加价订单
|
||||||
additon_fee_order = db.query(OrderAdditionalFeeDB).filter(
|
additon_fee_order = db.query(OrderAdditionalFeeDB).filter(
|
||||||
OrderAdditionalFeeDB.fee_order_id == out_trade_no
|
OrderAdditionalFeeDB.fee_order_id == out_trade_no
|
||||||
@ -283,7 +286,8 @@ async def payment_notify(
|
|||||||
|
|
||||||
# 重新计算配送员配送费用
|
# 重新计算配送员配送费用
|
||||||
order.delivery_share = calculate_delivery_share(order, db)
|
order.delivery_share = calculate_delivery_share(order, db)
|
||||||
|
db.commit()
|
||||||
|
db.refresh(order)
|
||||||
|
|
||||||
elif out_trade_no.startswith("M"): # 商家商品订单
|
elif out_trade_no.startswith("M"): # 商家商品订单
|
||||||
# 查询商户订单
|
# 查询商户订单
|
||||||
@ -313,6 +317,8 @@ async def payment_notify(
|
|||||||
order.pay_status = True
|
order.pay_status = True
|
||||||
order.transaction_id = transaction_id
|
order.transaction_id = transaction_id
|
||||||
order.pay_time = datetime.fromisoformat(success_time.replace('Z', '+00:00'))
|
order.pay_time = datetime.fromisoformat(success_time.replace('Z', '+00:00'))
|
||||||
|
db.commit()
|
||||||
|
db.refresh(order)
|
||||||
|
|
||||||
elif out_trade_no.startswith("P"): # 商家在线买单
|
elif out_trade_no.startswith("P"): # 商家在线买单
|
||||||
order = db.query(MerchantPayOrderDB,MerchantDB).filter(
|
order = db.query(MerchantPayOrderDB,MerchantDB).filter(
|
||||||
@ -339,6 +345,8 @@ async def payment_notify(
|
|||||||
order.MerchantPayOrderDB.status = MerchantPayOrderStatus.PAID
|
order.MerchantPayOrderDB.status = MerchantPayOrderStatus.PAID
|
||||||
order.MerchantPayOrderDB.transaction_id = transaction_id
|
order.MerchantPayOrderDB.transaction_id = transaction_id
|
||||||
order.MerchantPayOrderDB.pay_time = datetime.fromisoformat(success_time.replace('Z', '+00:00'))
|
order.MerchantPayOrderDB.pay_time = datetime.fromisoformat(success_time.replace('Z', '+00:00'))
|
||||||
|
db.commit()
|
||||||
|
db.refresh(order)
|
||||||
|
|
||||||
# 对商家进行分账计算
|
# 对商家进行分账计算
|
||||||
account_manager = AccountManager(db)
|
account_manager = AccountManager(db)
|
||||||
@ -360,7 +368,7 @@ async def payment_notify(
|
|||||||
payment_record = WechatPaymentRecordDB(
|
payment_record = WechatPaymentRecordDB(
|
||||||
out_trade_no=out_trade_no,
|
out_trade_no=out_trade_no,
|
||||||
transaction_id=transaction_id,
|
transaction_id=transaction_id,
|
||||||
trade_state=data.get("trade_state"),
|
trade_state=trade_state,
|
||||||
trade_state_desc=trade_state_desc,
|
trade_state_desc=trade_state_desc,
|
||||||
success_time=datetime.fromisoformat(success_time) if success_time else None,
|
success_time=datetime.fromisoformat(success_time) if success_time else None,
|
||||||
total_amount=float(data.get("amount", {}).get("total", 0)) / 100,
|
total_amount=float(data.get("amount", {}).get("total", 0)) / 100,
|
||||||
|
|||||||
@ -60,10 +60,11 @@ class Settings(BaseSettings):
|
|||||||
TENCENT_SECRET_KEY: str = "ta6PXTMBsX7dzA7IN6uYUFn8F9uTovoU"
|
TENCENT_SECRET_KEY: str = "ta6PXTMBsX7dzA7IN6uYUFn8F9uTovoU"
|
||||||
TENCENT_REGION: str = "ap-guangzhou" # 接口地域
|
TENCENT_REGION: str = "ap-guangzhou" # 接口地域
|
||||||
SMS_SDK_APP_ID: str = "1400961527"
|
SMS_SDK_APP_ID: str = "1400961527"
|
||||||
SMS_SIGN_NAME: str = "蜂快到家公众号"
|
SMS_SIGN_NAME: str = "成都爱嘉辰科技"
|
||||||
SMS_TEMPLATE_ID: str = "2353143" # 验证码短信模板ID
|
SMS_TEMPLATE_ID: str = "2353143" # 验证码短信模板ID
|
||||||
SMS_TEMPLATE_ID_ADDITIONAL_FEE: str = "2375181" # 加价短信模板ID
|
SMS_TEMPLATE_ID_ADDITIONAL_FEE: str = "2375181" # 加价短信模板ID
|
||||||
SMS_TEMPLATE_ID_ORDER_COMPLETE: str = "2382882" # 订单完成短信模板ID
|
SMS_TEMPLATE_ID_ORDER_COMPLETE: str = "2410806" # 订单完成短信模板ID
|
||||||
|
SMS_TEMPLATE_ID_ORDER_RECEIVE: str = "2410809" # 订单接单短信模板ID
|
||||||
|
|
||||||
# 腾讯云 COS 配置
|
# 腾讯云 COS 配置
|
||||||
COS_REGION: str = "ap-chengdu"
|
COS_REGION: str = "ap-chengdu"
|
||||||
|
|||||||
@ -108,6 +108,32 @@ class QCloudManager:
|
|||||||
except TencentCloudSDKException as e:
|
except TencentCloudSDKException as e:
|
||||||
raise Exception(f"发送短信失败: {str(e)}")
|
raise Exception(f"发送短信失败: {str(e)}")
|
||||||
|
|
||||||
|
async def send_sms_order_receive(self, phone: str) -> tuple[str, str]:
|
||||||
|
"""
|
||||||
|
发送订单接单短信
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
self._init_sms_client()
|
||||||
|
|
||||||
|
# 构建请求
|
||||||
|
req = sms_models.SendSmsRequest()
|
||||||
|
req.SmsSdkAppId = settings.SMS_SDK_APP_ID
|
||||||
|
req.SignName = settings.SMS_SIGN_NAME
|
||||||
|
req.TemplateId = settings.SMS_TEMPLATE_ID_ORDER_RECEIVE
|
||||||
|
req.PhoneNumberSet = [f"+86{phone}"]
|
||||||
|
|
||||||
|
# 发送短信
|
||||||
|
response = self.sms_client.SendSms(req)
|
||||||
|
|
||||||
|
# 检查发送结果
|
||||||
|
if response.SendStatusSet[0].Code != "Ok":
|
||||||
|
raise Exception(response.SendStatusSet[0].Message)
|
||||||
|
|
||||||
|
return response.RequestId
|
||||||
|
|
||||||
|
except TencentCloudSDKException as e:
|
||||||
|
raise Exception(f"发送订单接单短信失败: {str(e)}")
|
||||||
|
|
||||||
async def send_sms_order_complete(self, phone: str) -> tuple[str, str]:
|
async def send_sms_order_complete(self, phone: str) -> tuple[str, str]:
|
||||||
"""
|
"""
|
||||||
发送订单完成短信
|
发送订单完成短信
|
||||||
|
|||||||
BIN
jobs.sqlite
BIN
jobs.sqlite
Binary file not shown.
Loading…
Reference in New Issue
Block a user