From fdbf26d75136a05aa1c8abe9f4936c162a761174 Mon Sep 17 00:00:00 2001 From: Rogee Date: Sat, 20 Dec 2025 11:18:59 +0800 Subject: [PATCH] fix: auth --- backend_v1/app/http/posts.go | 6 +- backend_v1/app/services/users.go | 49 +++++-------- frontend/wechat/src/api/wechatApi.js | 11 --- frontend/wechat/src/hooks/useWxSDK.js | 80 ++++++++++++--------- frontend/wechat/src/views/ArticleDetail.vue | 20 ------ frontend/wechat/stats.html | 2 +- 6 files changed, 71 insertions(+), 97 deletions(-) delete mode 100644 frontend/wechat/src/api/wechatApi.js diff --git a/backend_v1/app/http/posts.go b/backend_v1/app/http/posts.go index 8f55fb3..c1808a1 100644 --- a/backend_v1/app/http/posts.go +++ b/backend_v1/app/http/posts.go @@ -257,7 +257,11 @@ func (ctl *posts) Mine( conds := []gen.Condition{ models.PostQuery.Status.Eq(fields.PostStatusPublished), - models.PostQuery.Title.Like(database.WrapLike(*query.Keyword)), + } + if query.Keyword != nil && *query.Keyword != "" { + conds = append(conds, + models.PostQuery.Title.Like(database.WrapLike(*query.Keyword)), + ) } pager, err := services.Users.PostList(ctx, user.ID, pagination, conds...) diff --git a/backend_v1/app/services/users.go b/backend_v1/app/services/users.go index 4234706..e8fa652 100644 --- a/backend_v1/app/services/users.go +++ b/backend_v1/app/services/users.go @@ -56,39 +56,26 @@ func (m *users) PostList( // OFFSET(pagination.Offset) // m.log().Infof("sql: %s", stmt.DebugSql()) - // var posts []Posts - // err := stmt.QueryContext(ctx, db, &posts) - // if err != nil { - // if errors.Is(err, qrm.ErrNoRows) { - // return &requests.Pager{ - // Items: nil, - // Total: 0, - // Pagination: *pagination, - // }, nil - // } - // m.log().Errorf("error querying posts: %v", err) - // return nil, err - // } + tbl, query := models.UserPostQuery.QueryContext(ctx) + pagePosts, cnt, err := query.Select(tbl.PostID). + Where(tbl.UserID.Eq(userId)). + FindByPage(int(pagination.Offset()), int(pagination.Limit)) - // // total count - // var cnt struct { - // Cnt int64 - // } + if err != nil { + return nil, err + } + postIds := lo.Map(pagePosts, func(item *models.UserPost, _ int) int64 { return item.PostID }) - // stmtCnt := tblUserPosts.SELECT(COUNT(tblUserPosts.ID).AS("cnt")).WHERE(tblUserPosts.UserID.EQ(Int64(userId))) - // m.log().Infof("sql: %s", stmtCnt.DebugSql()) - - // if err := stmtCnt.QueryContext(ctx, db, &cnt); err != nil { - // m.log().Errorf("error counting users: %v", err) - // return nil, err - // } - - // return &requests.Pager{ - // Items: posts, - // Total: cnt.Cnt, - // Pagination: *pagination, - // }, nil - return nil, nil + postTbl, postQuery := models.PostQuery.QueryContext(ctx) + items, err := postQuery.Where(postTbl.ID.In(postIds...)).Find() + if err != nil { + return nil, err + } + return &requests.Pager{ + Items: items, + Total: cnt, + Pagination: *pagination, + }, nil } // GetUsersMapByIDs diff --git a/frontend/wechat/src/api/wechatApi.js b/frontend/wechat/src/api/wechatApi.js deleted file mode 100644 index bfc9a84..0000000 --- a/frontend/wechat/src/api/wechatApi.js +++ /dev/null @@ -1,11 +0,0 @@ -import client from './client'; - -export const wechatApi = { - jsSdk() { - return client.get('/wechats/js-sdk', { - params: { - url: window.location.href.split('#')[0], - }, - }); - }, -} \ No newline at end of file diff --git a/frontend/wechat/src/hooks/useWxSDK.js b/frontend/wechat/src/hooks/useWxSDK.js index 3113596..b452395 100644 --- a/frontend/wechat/src/hooks/useWxSDK.js +++ b/frontend/wechat/src/hooks/useWxSDK.js @@ -1,6 +1,8 @@ import wx from "weixin-js-sdk"; export function useWxSDK() { + let ready = false; + /** * 初始化设置 */ @@ -24,8 +26,13 @@ export function useWxSDK() { }); wx.ready(() => { console.log("wx.ready called"); + ready = true; resolve(true); }); + wx.error(() => { + ready = false; + resolve(false); + }); }); } @@ -35,39 +42,46 @@ export function useWxSDK() { onSuccess = () => { }, onCancel = () => { } ) { + if (!ready) { + return; + } console.log("setShareInfo called", shareInfo); - wx.updateTimelineShareData({ - title: shareInfo.title, // 分享标题 - link: shareInfo.link, // 分享链接,可以不是当前页面,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 - imgUrl: shareInfo.imgUrl, - success: function (e) { - console.log("分享朋友圈成功", e); - // 用户确认分享后执行的回调函数 - onSuccess(); - }, - cancel: function (e) { - console.log("分享朋友圈取消", e); - onCancel(); - // 用户取消分享后执行的回调函数 - }, - }); - wx.updateAppMessageShareData({ - title: shareInfo.title, // 分享标题 - desc: shareInfo.desc, - link: shareInfo.link, // 分享链接,可以不是当前页面,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 - imgUrl: shareInfo.imgUrl, - type: "link", // 分享类型,music、video或link,不填默认为link - success: function (e) { - // 用户确认分享后执行的回调函数 - console.log("分享成功", e); - onSuccess(); - }, - cancel: function (e) { - // 用户取消分享后执行的回调函数 - console.log("分享取消", e); - onCancel(); - }, - }); + try { + wx.updateTimelineShareData({ + title: shareInfo.title, // 分享标题 + link: shareInfo.link, // 分享链接,可以不是当前页面,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + imgUrl: shareInfo.imgUrl, + success: function (e) { + console.log("分享朋友圈成功", e); + // 用户确认分享后执行的回调函数 + onSuccess(); + }, + cancel: function (e) { + console.log("分享朋友圈取消", e); + onCancel(); + // 用户取消分享后执行的回调函数 + }, + }); + wx.updateAppMessageShareData({ + title: shareInfo.title, // 分享标题 + desc: shareInfo.desc, + link: shareInfo.link, // 分享链接,可以不是当前页面,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + imgUrl: shareInfo.imgUrl, + type: "link", // 分享类型,music、video或link,不填默认为link + success: function (e) { + // 用户确认分享后执行的回调函数 + console.log("分享成功", e); + onSuccess(); + }, + cancel: function (e) { + // 用户取消分享后执行的回调函数 + console.log("分享取消", e); + onCancel(); + }, + }); + } catch { + // ignore + } } /** 是否是ios微信 */ @@ -80,4 +94,4 @@ export function useWxSDK() { setShareInfo, isiOSWechat, }; -} \ No newline at end of file +} diff --git a/frontend/wechat/src/views/ArticleDetail.vue b/frontend/wechat/src/views/ArticleDetail.vue index 7a1f214..b882259 100644 --- a/frontend/wechat/src/views/ArticleDetail.vue +++ b/frontend/wechat/src/views/ArticleDetail.vue @@ -9,7 +9,6 @@ import { onMounted, onUnmounted, ref } from "vue"; import { BsChevronLeft } from "vue-icons-plus/bs"; import { useRoute, useRouter } from "vue-router"; import { postApi } from "../api/postApi"; -import { wechatApi } from "../api/wechatApi"; import { useWxSDK } from "../hooks/useWxSDK"; const wx = useWxSDK(); @@ -172,25 +171,6 @@ const handleBack = () => { }; onMounted(async () => { - wechatApi - .jsSdk() - .then((resp) => { - wx.initConfig(resp.data).then(() => { - wx.setShareInfo({ - title: article.value.title, - desc: article.value.content, - link: window.location.href, - imgUrl: article.value.head_images[0], - }); - }); - }) - .catch((error) => { - console.error("Failed to initialize WeChat SDK:", error); - }) - .finally(() => { - - }); - await fetchArticle(); }); diff --git a/frontend/wechat/stats.html b/frontend/wechat/stats.html index 9438c35..3d4b6cd 100644 --- a/frontend/wechat/stats.html +++ b/frontend/wechat/stats.html @@ -4929,7 +4929,7 @@ var drawChart = (function (exports) {