diff --git a/README.md b/README.md index 3835bd88..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给前端服务调用。 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官方站点| diff --git a/internal/servants/web/core.go b/internal/servants/web/core.go index 92dcfbaa..11f0cb18 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 { @@ -284,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() diff --git a/internal/servants/web/web.go b/internal/servants/web/web.go index b385e8c9..e5ffe196 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) { + lazyInitial() oss := dao.ObjectStorageService() ds := &base.DaoServant{ Redis: conf.MustRedis(), @@ -66,3 +74,10 @@ func mustAlipayClient() *alipay.Client { } return client } + +// lazyInitial do some package lazy initialize for performance +func lazyInitial() { + _onceInitial.Do(func() { + _EnablePhoneVerify = cfg.If("Sms") + }) +} 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