diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 3fa45f7..75bbc2e 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -245,7 +245,7 @@ async def pre_order( return success_response(data=price_info) except Exception as e: logging.exception(f"预下单失败: {str(e)}") - return error_response(code=500, message=f"预下单失败: {str(e)}") + return error_response(code=400, message=f"预下单失败: {str(e)}") @router.post("", response_model=ResponseModel) async def create_order( @@ -401,16 +401,6 @@ async def create_order( ShippingOrderPackageDB.orderid == orderid ).all() - # 发送企业微信消息 - wecom_bot = WecomBot() - order_info = OrderInfo.model_validate(db_order) - background_tasks.add_task( - wecom_bot.send_order_notification, - db, - order_info, - OrderStatus.CREATED - ) - #发送订单创建成功的公众号消息 if current_user.mp_openid: data={ @@ -428,6 +418,17 @@ async def create_order( data=data, orderid=db_order.orderid ) + + # 发送企业微信消息 + if db_order.status == OrderStatus.CREATED: + wecom_bot = WecomBot() + order_info = OrderInfo.model_validate(db_order) + background_tasks.add_task( + wecom_bot.send_order_notification, + db, + order_info, + OrderStatus.CREATED + ) # 添加到新订单队列 if db_order.address_community_id: diff --git a/app/api/endpoints/wechat.py b/app/api/endpoints/wechat.py index 6455fc7..17f1db5 100644 --- a/app/api/endpoints/wechat.py +++ b/app/api/endpoints/wechat.py @@ -27,6 +27,8 @@ from app.core.security import get_password_hash from app.models.order_additional_fee import OrderAdditionalFeeDB, AdditionalFeeResult from app.api.endpoints.order import calculate_delivery_share from app.models.wechat_payment import WechatPaymentRecordDB +from app.core.wecombot import WecomBot +from app.models.order import OrderInfo router = APIRouter() @@ -241,6 +243,16 @@ async def payment_notify( else: order.status = OrderStatus.CREATED # 支付成功后状态为已创建 + # 发送企业微信消息 + if order.status == OrderStatus.CREATED: + wecom_bot = WecomBot() + order_info = OrderInfo.model_validate(order) + wecom_bot.send_order_notification( + db, + order_info, + OrderStatus.CREATED + ) + order.pay_status = True order.completed_time = datetime.now() order.transaction_id = transaction_id diff --git a/jobs.sqlite b/jobs.sqlite index 301925d..4805687 100644 Binary files a/jobs.sqlite and b/jobs.sqlite differ