diff --git a/app/api/endpoints/merchant_order.py b/app/api/endpoints/merchant_order.py index 3979767..cdd6028 100644 --- a/app/api/endpoints/merchant_order.py +++ b/app/api/endpoints/merchant_order.py @@ -86,7 +86,7 @@ async def create_merchant_order( product_pickup_time_from=product.pickup_time_from, product_pickup_time_to=product.pickup_time_to, product_delivery_time_type=product.delivery_time_type, - product_delivery_date=product.delivery_date, + product_delivery_date=product.delivery_date ) try: @@ -213,6 +213,7 @@ async def cancel_order( @router.put("/{order_id}/complete", response_model=ResponseModel) async def complete_order( + background_tasks: BackgroundTasks, order_id: str, db: Session = Depends(get_db), merchant_user: UserDB = Depends(get_merchant_user) @@ -242,6 +243,31 @@ async def complete_order( description = f"消费送蜂蜜", order_id = order.order_id ) + + # 发送商家订单完成消息 + user = db.query(UserDB).filter( + UserDB.userid == order.user_id + ).first() + + product = db.query(MerchantProductDB).filter( + MerchantProductDB.id == order.merchant_product_id + ).first() + + if user and user.mp_openid: + data={ + "character_string7": order_id, + "thing5": product.name, + "character_string24": order.qty, + "time10": datetime.now().strftime("%Y-%m-%d %H:%M:%S") + } + + background_tasks.add_task( + sent_merchant_order_status_change_message, + openid=user.mp_openid, + template_id=settings.MERCHANT_ORDER_COMPLETED_TEMPLATE_ID, + data=data, + orderid=order_id + ) return success_response(data=MerchantOrderInfo.model_validate(order)) except Exception as e: @@ -250,6 +276,7 @@ async def complete_order( @router.put("/{order_id}/accept", response_model=ResponseModel) async def accept_order( + background_tasks: BackgroundTasks, order_id: str, db: Session = Depends(get_db), merchant_user: UserDB = Depends(get_merchant_user) @@ -284,6 +311,25 @@ async def accept_order( order.product_delivery_deadline_time = None db.commit() + + # 发送商家订单接单消息 + user = db.query(UserDB).filter( + UserDB.userid == order.user_id + ).first() + if user and user.mp_openid: + data={ + "thing1": product.name, + "amount2": order.pay_amount, + "character_string3": order.qty + } + + background_tasks.add_task( + sent_merchant_order_status_change_message, + openid=user.mp_openid, + template_id=settings.MERCHANT_ORDER_ACCEPTED_TEMPLATE_ID, + data=data, + orderid=order_id + ) return success_response(data=MerchantOrderInfo.model_validate(order)) except Exception as e: diff --git a/app/core/config.py b/app/core/config.py index 90195da..12cf52d 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -110,6 +110,13 @@ class Settings(BaseSettings): # 商家订单创建成功 MERCHANT_ORDER_CREATED_TEMPLATE_ID: str = "tyB7fncVCdEyNNCm-XUUWQgDmGnnGT_WORPbHsc_89k" + # 商家订单接单 + MERCHANT_ORDER_ACCEPTED_TEMPLATE_ID: str = "600F3pDnYqrMdjlfR-TPyzWtD3UBt0WHq-oHttnaBPs" + + # 商家订单完成 + MERCHANT_ORDER_COMPLETED_TEMPLATE_ID: str = "TWcSEUAPInnctf4Jm-2JTHHMzvIWqkybkUS3drE8Jg4" + + # 反馈需求企业微信 FEEDBACK_NEED_WECOM_BOT_WEBHOOK_URL: str = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=ccd6e8d4-4c8a-45b4-9b6b-dd4cae563176" # 商家投诉企业微信 diff --git a/jobs.sqlite b/jobs.sqlite index 775c7b5..30665c8 100644 Binary files a/jobs.sqlite and b/jobs.sqlite differ