diff --git a/app/api/endpoints/coupon_activity.py b/app/api/endpoints/coupon_activity.py index cf96a46..ab36b7d 100644 --- a/app/api/endpoints/coupon_activity.py +++ b/app/api/endpoints/coupon_activity.py @@ -16,7 +16,7 @@ from app.core.response import success_response, error_response, ResponseModel from typing import Optional, List from datetime import datetime, time, timedelta from app.core.coupon_manager import CouponManager - +from app.core.wechat import WeChatClient router = APIRouter() @@ -241,6 +241,26 @@ async def check_receive( "message": message }) +@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链接 + client = WeChatClient() + url = await client.get_url_link("pages/my/promation/activities/index", f"id={activity_id}") + return success_response(data=url) + + @router.put("/{activity_id}", response_model=ResponseModel) async def update_coupon_activity( activity_id: int, diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 940b7a4..aeb3081 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -225,15 +225,15 @@ async def pre_order( return error_response(code=400, message=message) # 检查是否有配送员在线 - deliveryman_online = db.query(UserDB).filter( - UserDB.roles.contains(UserRole.DELIVERYMAN), - UserDB.community_id == request.community_id, - UserDB.is_delivering == True - ).first() + # deliveryman_online = db.query(UserDB).filter( + # UserDB.roles.contains(UserRole.DELIVERYMAN), + # UserDB.community_id == request.community_id, + # UserDB.is_delivering == True + # ).first() - if deliveryman_online is None: - print(f"没有配送员在线, 无法下单") - return error_response(code=400, message="没有配送员在线, 无法下单") + # if deliveryman_online is None: + # print(f"没有配送员在线, 无法下单") + # return error_response(code=400, message="没有配送员在线, 无法下单") # 检查是否有未支付的订单 diff --git a/app/core/wechat.py b/app/core/wechat.py index 33b1c57..8d38244 100644 --- a/app/core/wechat.py +++ b/app/core/wechat.py @@ -445,3 +445,27 @@ class WeChatClient: except Exception as e: print(f"申请退款异常: {str(e)}") raise Exception(f"申请退款失败: {str(e)}") + + + async def get_url_link(self, path: str, query: str) -> str: + + url =f"https://api.weixin.qq.com/wxa/generate_urllink?access_token={await self.get_access_token()}" + + params = { + "path": path, + "query": query, + "expire_type" :1, + "expire_interval" : 30 + } + try: + async with aiohttp.ClientSession() as session: + async with session.post(url, json=params) as response: + result = await response.json() + print(f"获取URL链接结果: {result}") + return result.get("url_link") + except Exception as e: + print(f"获取URL链接失败: {str(e)}") + raise Exception(f"获取URL链接失败: {str(e)}") + + + \ No newline at end of file diff --git a/jobs.sqlite b/jobs.sqlite index 5d3ccbc..188e025 100644 Binary files a/jobs.sqlite and b/jobs.sqlite differ