From 8008366abcaff1ce2bf047a3f88854cde05d7542 Mon Sep 17 00:00:00 2001 From: guke Date: Wed, 24 Jun 2026 18:15:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(wx-cps):=20=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1cps=E5=88=86=E5=8F=91=E6=97=B6=E6=B7=98?= =?UTF-8?q?=E5=AE=9D=E8=90=BD=E5=9C=B0=E9=A1=B5=E6=8E=88=E6=9D=83=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E5=AF=BC=E8=87=B4click=5Fvalue=20=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E9=97=AE=E9=A2=98=200624=20(#73)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 通过authed=1判断当前请求是否是微信授权回填,如果是授权回填,不再insert cps_click --------- Co-authored-by: guke Reviewed-on: https://gitea.shaguabijia.com/WonderableAI/shaguabijia-app-server/pulls/73 Co-authored-by: guke Co-committed-by: guke --- app/api/v1/cps_redirect.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/api/v1/cps_redirect.py b/app/api/v1/cps_redirect.py index ee7aa0b..57b5387 100644 --- a/app/api/v1/cps_redirect.py +++ b/app/api/v1/cps_redirect.py @@ -83,7 +83,10 @@ def cps_landing(code: str, request: Request, db: Session = Depends(get_db)): redirect_uri = f"{settings.CPS_REDIRECT_BASE.rstrip('/')}/wx/oauth/cb" auth_url = wx_oauth.build_authorize_url(redirect_uri, "snsapi_base", f"base:{code}") return RedirectResponse(auth_url, status_code=302) - _record(db, link, request, "visit", openid=openid) + # ?authed=1 是 userinfo 授权后的自动回跳重载,不是用户主动打开:visit 已在授权前那次 + # 落地(base 静默授权回来那次)记过,这里再记会让每个走"领券授权"的用户 visit 虚增 1。 + if request.query_params.get("authed") != "1": + _record(db, link, request, "visit", openid=openid) if link.platform == "taobao": activity = db.get(CpsActivity, link.activity_id) image_url = (activity.image_url if activity else None) or _DEFAULT_TAOBAO_IMAGE @@ -201,8 +204,9 @@ function copyToken(){ if(UINFO_URL){location.href=UINFO_URL;return} doCopy(); } -// userinfo 授权回流(?authed=1):自动复制,把"点领券→授权→复制"衔接成一步无感 -if(location.search.indexOf('authed=1')>=0){doCopy()} +// userinfo 授权回流(?authed=1):自动复制,把"点领券→授权→复制"衔接成一步无感; +// 复制后用 replaceState 清掉 authed=1,避免刷新/微信返回(BFCache)重载时重复触发复制上报。 +if(location.search.indexOf('authed=1')>=0){doCopy();history.replaceState(null,'',location.pathname)} """ From b1849834f7cb250db5aa9441c3c21b1142061c21 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 24 Jun 2026 20:50:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(alembic):=20merge=20meituan=5Fcoupon=5F?= =?UTF-8?q?image=5Fmeta=20=E4=B8=8E=20comparison/ad=20=E5=8F=8C=20head?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2b_merge_meituan_coupon_image_meta_and_.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 alembic/versions/bcfcaf07152b_merge_meituan_coupon_image_meta_and_.py diff --git a/alembic/versions/bcfcaf07152b_merge_meituan_coupon_image_meta_and_.py b/alembic/versions/bcfcaf07152b_merge_meituan_coupon_image_meta_and_.py new file mode 100644 index 0000000..31a5378 --- /dev/null +++ b/alembic/versions/bcfcaf07152b_merge_meituan_coupon_image_meta_and_.py @@ -0,0 +1,26 @@ +"""merge meituan_coupon_image_meta and comparison/ad heads + +Revision ID: bcfcaf07152b +Revises: 4dc2af7ebe74, meituan_coupon_image_meta +Create Date: 2026-06-24 20:34:09.475641 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = 'bcfcaf07152b' +down_revision: Union[str, Sequence[str], None] = ('4dc2af7ebe74', 'meituan_coupon_image_meta') +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + pass + + +def downgrade() -> None: + pass