From 70b53ffedeeb4478a62cb072beadbdd81ceff243 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 18 Jan 2023 11:35:47 +0800 Subject: [PATCH 1/6] optimize web service package initialize --- internal/servants/web/core.go | 3 --- internal/servants/web/web.go | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/internal/servants/web/core.go b/internal/servants/web/core.go index 92dcfbaa..b3c3aee5 100644 --- a/internal/servants/web/core.go +++ b/internal/servants/web/core.go @@ -11,7 +11,6 @@ import ( "time" "unicode/utf8" - "github.com/alimy/cfg" "github.com/alimy/mir/v3" "github.com/gin-gonic/gin" api "github.com/rocboss/paopao-ce/auto/api/v1" @@ -34,8 +33,6 @@ var ( _ api.Core = (*coreSrv)(nil) _ api.CoreBinding = (*coreBinding)(nil) _ api.CoreRender = (*coreRender)(nil) - - _EnablePhoneVerify = cfg.If("Sms") ) type coreSrv struct { diff --git a/internal/servants/web/web.go b/internal/servants/web/web.go index 286109d3..034cc83c 100644 --- a/internal/servants/web/web.go +++ b/internal/servants/web/web.go @@ -5,6 +5,8 @@ package web import ( + "sync" + "github.com/alimy/cfg" "github.com/gin-gonic/gin" api "github.com/rocboss/paopao-ce/auto/api/v1" @@ -15,8 +17,14 @@ import ( "github.com/smartwalle/alipay/v3" ) +var ( + _EnablePhoneVerify bool + _onceInitial sync.Once +) + // RouteWeb register web route func RouteWeb(e *gin.Engine) { + initial() oss := dao.ObjectStorageService() ds := &base.DaoServant{ Redis: conf.Redis, @@ -66,3 +74,10 @@ func mustAlipayClient() *alipay.Client { } return client } + +// initial do some package lazy initialize for performance +func initial() { + _onceInitial.Do(func() { + _EnablePhoneVerify = cfg.If("Sms") + }) +} From e6414f66ffc80f97f555fd1b6fc3909a7a35d391 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 18 Jan 2023 11:42:59 +0800 Subject: [PATCH 2/6] change func name initial=>lazyInitial in web service package --- internal/servants/web/web.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/servants/web/web.go b/internal/servants/web/web.go index 034cc83c..f8a495ed 100644 --- a/internal/servants/web/web.go +++ b/internal/servants/web/web.go @@ -24,7 +24,7 @@ var ( // RouteWeb register web route func RouteWeb(e *gin.Engine) { - initial() + lazyInitial() oss := dao.ObjectStorageService() ds := &base.DaoServant{ Redis: conf.Redis, @@ -75,8 +75,8 @@ func mustAlipayClient() *alipay.Client { return client } -// initial do some package lazy initialize for performance -func initial() { +// lazyInitial do some package lazy initialize for performance +func lazyInitial() { _onceInitial.Do(func() { _EnablePhoneVerify = cfg.If("Sms") }) From dc77a22586d1e70b4ee52243b23acade688d186b Mon Sep 17 00:00:00 2001 From: Michael Li Date: Fri, 20 Jan 2023 22:13:06 +0800 Subject: [PATCH 3/6] add deployed sites information --- README.md | 11 +++++++++++ deployed-sites.md | 6 ++++++ 2 files changed, 17 insertions(+) create mode 100644 deployed-sites.md diff --git a/README.md b/README.md index 3835bd88..21d69abd 100644 --- a/README.md +++ b/README.md @@ -532,6 +532,17 @@ paopao-ce 是一个利用 *业余时间* 本着 **"Just for fun just do it."** [![Star History Chart](https://api.star-history.com/svg?repos=rocboss/paopao-ce&type=Date)](https://star-history.com/#rocboss/paopao-ce&Date) +## 部署站点 +* [官方 paopao.info](https://www.paopao.info) +> 具体部署站点信息请查阅 [deployed-sites](./deployed-sites.md 'deployed sites'). 欢迎站长将已部署PaoPao实例的站点信息添加到 [deployed-sites](./deployed-sites.md 'deployed sites') 列表中。 + +#### Collaborator's paopao account +| 昵称 | [@GitHub](https://github.com 'github.com') | [@PaoPao](https://www.paopao.info 'paopao.info') | +| ----- | ----- | ----- | +| ROC | [ROC](https://github.com/rocboss 'ROC')|[ROC](https://www.paopao.info/#/user?username=roc 'ROC @roc')| +| 北野 | [Michael Li](https://github.com/alimy 'Michael Li') | [alimy](https://www.paopao.info/#/user?username=alimy '北野 @alimy')| +| orzi!| [orzi!](https://github.com/orziz 'orzi!')|| + ## License Distributed under the MIT License. See `LICENSE` for more information. diff --git a/deployed-sites.md b/deployed-sites.md new file mode 100644 index 00000000..be9b51d0 --- /dev/null +++ b/deployed-sites.md @@ -0,0 +1,6 @@ +## 部署站点 +PaoPao部署站点信息。 + +| 名称 | 网址 | 备注 | +| ----- | ----- | ----- | +|泡泡|[www.paopao.info](https://www.paopao.info)|PaoPao官方站点| From 447fcc5bf8dd422bb18ab08414e641e50b6ea6d2 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Fri, 20 Jan 2023 22:22:09 +0800 Subject: [PATCH 4/6] ajust README.md --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 21d69abd..024e230a 100644 --- a/README.md +++ b/README.md @@ -517,6 +517,17 @@ x/sqlx **代码分支演进图** ![](docs/proposal/.assets/000-01.png) +### 部署站点信息 +* [官方 paopao.info](https://www.paopao.info) +> 具体部署站点信息请查阅 [deployed-sites](./deployed-sites.md 'deployed sites'). 欢迎站长将已部署PaoPao实例的站点信息添加到 [deployed-sites](./deployed-sites.md 'deployed sites') 列表中。 + +#### Collaborator's paopao account +| 昵称 | [@GitHub](https://github.com 'github.com') | [@PaoPao](https://www.paopao.info 'paopao.info') | +| ----- | ----- | ----- | +| ROC | [ROC](https://github.com/rocboss 'ROC')|[ROC](https://www.paopao.info/#/user?username=roc 'ROC @roc')| +| 北野 | [Michael Li](https://github.com/alimy 'Michael Li') | [alimy](https://www.paopao.info/#/user?username=alimy '北野 @alimy')| +| orzi!| [orzi!](https://github.com/orziz 'orzi!')|| + ### 其他说明 建议后端服务使用 `supervisor` 守护进程,并通过 `nginx` 反向代理后,提供API给前端服务调用。 @@ -532,17 +543,6 @@ paopao-ce 是一个利用 *业余时间* 本着 **"Just for fun just do it."** [![Star History Chart](https://api.star-history.com/svg?repos=rocboss/paopao-ce&type=Date)](https://star-history.com/#rocboss/paopao-ce&Date) -## 部署站点 -* [官方 paopao.info](https://www.paopao.info) -> 具体部署站点信息请查阅 [deployed-sites](./deployed-sites.md 'deployed sites'). 欢迎站长将已部署PaoPao实例的站点信息添加到 [deployed-sites](./deployed-sites.md 'deployed sites') 列表中。 - -#### Collaborator's paopao account -| 昵称 | [@GitHub](https://github.com 'github.com') | [@PaoPao](https://www.paopao.info 'paopao.info') | -| ----- | ----- | ----- | -| ROC | [ROC](https://github.com/rocboss 'ROC')|[ROC](https://www.paopao.info/#/user?username=roc 'ROC @roc')| -| 北野 | [Michael Li](https://github.com/alimy 'Michael Li') | [alimy](https://www.paopao.info/#/user?username=alimy '北野 @alimy')| -| orzi!| [orzi!](https://github.com/orziz 'orzi!')|| - ## License Distributed under the MIT License. See `LICENSE` for more information. From 822125e6de29668171b926e80fb1d2f45495df67 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Sun, 22 Jan 2023 22:13:36 +0800 Subject: [PATCH 5/6] fixed user phone bind error when custom configed Sms feature --- internal/servants/web/core.go | 11 ++--------- internal/servants/web/pub.go | 1 + 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/internal/servants/web/core.go b/internal/servants/web/core.go index b3c3aee5..11f0cb18 100644 --- a/internal/servants/web/core.go +++ b/internal/servants/web/core.go @@ -281,19 +281,12 @@ func (s *coreSrv) GetCollections(req *web.GetCollectionsReq) (*web.GetCollection func (s *coreSrv) UserPhoneBind(req *web.UserPhoneBindReq) mir.Error { // 手机重复性检查 u, err := s.Ds.GetUserByPhone(req.Phone) - if err != nil { - logrus.Errorf("Ds.GetUserByPhone err: %v", err) - return _errExistedUserPhone - } - if u.Model == nil || u.ID == 0 { - return _errExistedUserPhone - } - if u.ID == req.User.ID { + if err == nil && u.Model != nil && u.ID != 0 && u.ID != req.User.ID { return _errExistedUserPhone } // 如果禁止phone verify 则允许通过任意验证码 - if !_EnablePhoneVerify { + if _EnablePhoneVerify { c, err := s.Ds.GetLatestPhoneCaptcha(req.Phone) if err != nil { return _errErrorPhoneCaptcha diff --git a/internal/servants/web/pub.go b/internal/servants/web/pub.go index 51718dee..58d49ee9 100644 --- a/internal/servants/web/pub.go +++ b/internal/servants/web/pub.go @@ -204,6 +204,7 @@ func (s *pubSrv) SendCaptcha(req *web.SendCaptchaReq) mir.Error { // 验证图片验证码 if res, err := s.Redis.Get(ctx, "PaoPaoCaptcha:"+req.ImgCaptchaID).Result(); err != nil || res != req.ImgCaptcha { + logrus.Debugf("get captcha err:%s expect:%s got:%s", err, res, req.ImgCaptcha) return _errErrorCaptchaPassword } s.Redis.Del(ctx, "PaoPaoCaptcha:"+req.ImgCaptchaID).Result() From 881f799d683e3fed210e20511e7c6f8b1920b826 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Thu, 2 Feb 2023 11:03:50 +0800 Subject: [PATCH 6/6] optimize sql schema ddl file name style for migration --- ..._initialize_schema.down.sql => 001_initialize_schema.down.sql} | 0 .../{1_initialize_schema.up.sql => 001_initialize_schema.up.sql} | 0 .../{2_post_visibility.down.sql => 002_post_visibility.down.sql} | 0 .../{2_post_visibility.up.sql => 002_post_visibility.up.sql} | 0 .../{3_feature_contact.down.sql => 003_feature_contact.down.sql} | 0 .../{3_feature_contact.up.sql => 003_feature_contact.up.sql} | 0 ..._initialize_schema.down.sql => 001_initialize_schema.down.sql} | 0 .../{1_initialize_schema.up.sql => 001_initialize_schema.up.sql} | 0 .../{2_post_visibility.down.sql => 002_post_visibility.down.sql} | 0 .../{2_post_visibility.up.sql => 002_post_visibility.up.sql} | 0 .../{3_feature_contact.down.sql => 003_feature_contact.down.sql} | 0 .../{3_feature_contact.up.sql => 003_feature_contact.up.sql} | 0 ..._initialize_schema.down.sql => 001_initialize_schema.down.sql} | 0 .../{1_initialize_schema.up.sql => 001_initialize_schema.up.sql} | 0 .../{2_post_visibility.down.sql => 002_post_visibility.down.sql} | 0 .../{2_post_visibility.up.sql => 002_post_visibility.up.sql} | 0 .../{3_feature_contact.down.sql => 003_feature_contact.down.sql} | 0 .../{3_feature_contact.up.sql => 003_feature_contact.up.sql} | 0 18 files changed, 0 insertions(+), 0 deletions(-) rename scripts/migration/mysql/{1_initialize_schema.down.sql => 001_initialize_schema.down.sql} (100%) rename scripts/migration/mysql/{1_initialize_schema.up.sql => 001_initialize_schema.up.sql} (100%) rename scripts/migration/mysql/{2_post_visibility.down.sql => 002_post_visibility.down.sql} (100%) rename scripts/migration/mysql/{2_post_visibility.up.sql => 002_post_visibility.up.sql} (100%) rename scripts/migration/mysql/{3_feature_contact.down.sql => 003_feature_contact.down.sql} (100%) rename scripts/migration/mysql/{3_feature_contact.up.sql => 003_feature_contact.up.sql} (100%) rename scripts/migration/postgres/{1_initialize_schema.down.sql => 001_initialize_schema.down.sql} (100%) rename scripts/migration/postgres/{1_initialize_schema.up.sql => 001_initialize_schema.up.sql} (100%) rename scripts/migration/postgres/{2_post_visibility.down.sql => 002_post_visibility.down.sql} (100%) rename scripts/migration/postgres/{2_post_visibility.up.sql => 002_post_visibility.up.sql} (100%) rename scripts/migration/postgres/{3_feature_contact.down.sql => 003_feature_contact.down.sql} (100%) rename scripts/migration/postgres/{3_feature_contact.up.sql => 003_feature_contact.up.sql} (100%) rename scripts/migration/sqlite3/{1_initialize_schema.down.sql => 001_initialize_schema.down.sql} (100%) rename scripts/migration/sqlite3/{1_initialize_schema.up.sql => 001_initialize_schema.up.sql} (100%) rename scripts/migration/sqlite3/{2_post_visibility.down.sql => 002_post_visibility.down.sql} (100%) rename scripts/migration/sqlite3/{2_post_visibility.up.sql => 002_post_visibility.up.sql} (100%) rename scripts/migration/sqlite3/{3_feature_contact.down.sql => 003_feature_contact.down.sql} (100%) rename scripts/migration/sqlite3/{3_feature_contact.up.sql => 003_feature_contact.up.sql} (100%) diff --git a/scripts/migration/mysql/1_initialize_schema.down.sql b/scripts/migration/mysql/001_initialize_schema.down.sql similarity index 100% rename from scripts/migration/mysql/1_initialize_schema.down.sql rename to scripts/migration/mysql/001_initialize_schema.down.sql diff --git a/scripts/migration/mysql/1_initialize_schema.up.sql b/scripts/migration/mysql/001_initialize_schema.up.sql similarity index 100% rename from scripts/migration/mysql/1_initialize_schema.up.sql rename to scripts/migration/mysql/001_initialize_schema.up.sql diff --git a/scripts/migration/mysql/2_post_visibility.down.sql b/scripts/migration/mysql/002_post_visibility.down.sql similarity index 100% rename from scripts/migration/mysql/2_post_visibility.down.sql rename to scripts/migration/mysql/002_post_visibility.down.sql diff --git a/scripts/migration/mysql/2_post_visibility.up.sql b/scripts/migration/mysql/002_post_visibility.up.sql similarity index 100% rename from scripts/migration/mysql/2_post_visibility.up.sql rename to scripts/migration/mysql/002_post_visibility.up.sql diff --git a/scripts/migration/mysql/3_feature_contact.down.sql b/scripts/migration/mysql/003_feature_contact.down.sql similarity index 100% rename from scripts/migration/mysql/3_feature_contact.down.sql rename to scripts/migration/mysql/003_feature_contact.down.sql diff --git a/scripts/migration/mysql/3_feature_contact.up.sql b/scripts/migration/mysql/003_feature_contact.up.sql similarity index 100% rename from scripts/migration/mysql/3_feature_contact.up.sql rename to scripts/migration/mysql/003_feature_contact.up.sql diff --git a/scripts/migration/postgres/1_initialize_schema.down.sql b/scripts/migration/postgres/001_initialize_schema.down.sql similarity index 100% rename from scripts/migration/postgres/1_initialize_schema.down.sql rename to scripts/migration/postgres/001_initialize_schema.down.sql diff --git a/scripts/migration/postgres/1_initialize_schema.up.sql b/scripts/migration/postgres/001_initialize_schema.up.sql similarity index 100% rename from scripts/migration/postgres/1_initialize_schema.up.sql rename to scripts/migration/postgres/001_initialize_schema.up.sql diff --git a/scripts/migration/postgres/2_post_visibility.down.sql b/scripts/migration/postgres/002_post_visibility.down.sql similarity index 100% rename from scripts/migration/postgres/2_post_visibility.down.sql rename to scripts/migration/postgres/002_post_visibility.down.sql diff --git a/scripts/migration/postgres/2_post_visibility.up.sql b/scripts/migration/postgres/002_post_visibility.up.sql similarity index 100% rename from scripts/migration/postgres/2_post_visibility.up.sql rename to scripts/migration/postgres/002_post_visibility.up.sql diff --git a/scripts/migration/postgres/3_feature_contact.down.sql b/scripts/migration/postgres/003_feature_contact.down.sql similarity index 100% rename from scripts/migration/postgres/3_feature_contact.down.sql rename to scripts/migration/postgres/003_feature_contact.down.sql diff --git a/scripts/migration/postgres/3_feature_contact.up.sql b/scripts/migration/postgres/003_feature_contact.up.sql similarity index 100% rename from scripts/migration/postgres/3_feature_contact.up.sql rename to scripts/migration/postgres/003_feature_contact.up.sql diff --git a/scripts/migration/sqlite3/1_initialize_schema.down.sql b/scripts/migration/sqlite3/001_initialize_schema.down.sql similarity index 100% rename from scripts/migration/sqlite3/1_initialize_schema.down.sql rename to scripts/migration/sqlite3/001_initialize_schema.down.sql diff --git a/scripts/migration/sqlite3/1_initialize_schema.up.sql b/scripts/migration/sqlite3/001_initialize_schema.up.sql similarity index 100% rename from scripts/migration/sqlite3/1_initialize_schema.up.sql rename to scripts/migration/sqlite3/001_initialize_schema.up.sql diff --git a/scripts/migration/sqlite3/2_post_visibility.down.sql b/scripts/migration/sqlite3/002_post_visibility.down.sql similarity index 100% rename from scripts/migration/sqlite3/2_post_visibility.down.sql rename to scripts/migration/sqlite3/002_post_visibility.down.sql diff --git a/scripts/migration/sqlite3/2_post_visibility.up.sql b/scripts/migration/sqlite3/002_post_visibility.up.sql similarity index 100% rename from scripts/migration/sqlite3/2_post_visibility.up.sql rename to scripts/migration/sqlite3/002_post_visibility.up.sql diff --git a/scripts/migration/sqlite3/3_feature_contact.down.sql b/scripts/migration/sqlite3/003_feature_contact.down.sql similarity index 100% rename from scripts/migration/sqlite3/3_feature_contact.down.sql rename to scripts/migration/sqlite3/003_feature_contact.down.sql diff --git a/scripts/migration/sqlite3/3_feature_contact.up.sql b/scripts/migration/sqlite3/003_feature_contact.up.sql similarity index 100% rename from scripts/migration/sqlite3/3_feature_contact.up.sql rename to scripts/migration/sqlite3/003_feature_contact.up.sql