From 32cbe38436740ac7c0897c96010d3f9255bd6c31 Mon Sep 17 00:00:00 2001 From: Havoc412 <2993167370@qq.com> Date: Thu, 17 Oct 2024 22:43:20 +0800 Subject: [PATCH] change Create to store --- app/http/controller/web/animal_controller.go | 3 +- .../controller/web/encounter_controller.go | 29 +++++++++++++++ .../web_register_validator.go | 6 +++ app/http/validator/web/encounter/store.go | 37 +++++++++++++++++++ app/model/encounter.go | 4 ++ app/service/animals/curd/animals_curd.go | 2 +- app/service/encounter/curd/encounter_curd.go | 16 ++++++++ app/service/users/curd/users_curd.go | 1 - routers/web.go | 11 ++++++ 9 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 app/http/controller/web/encounter_controller.go create mode 100644 app/http/validator/web/encounter/store.go create mode 100644 app/service/encounter/curd/encounter_curd.go diff --git a/app/http/controller/web/animal_controller.go b/app/http/controller/web/animal_controller.go index 16bf0ee..a39ee19 100644 --- a/app/http/controller/web/animal_controller.go +++ b/app/http/controller/web/animal_controller.go @@ -7,7 +7,6 @@ import ( "catface/app/utils/response" "github.com/gin-gonic/gin" - ) type Animals struct { // INFO 起到一个标记的作用,这样 web.xxx 的时候不同模块就不会命名冲突了。 @@ -23,7 +22,7 @@ func (a *Animals) List(context *gin.Context) { num := context.GetFloat64(consts.ValidatorPrefix + "num") skip := context.GetFloat64(consts.ValidatorPrefix + "skip") - animals := curd.CreateUserCurdFactory().List(attrs, gender, breed, sterilzation, status, int(num), int(skip)) + animals := curd.CreateAnimalsCurdFactory().List(attrs, gender, breed, sterilzation, status, int(num), int(skip)) if animals != nil { response.Success(context, consts.CurdStatusOkMsg, animals) } else { diff --git a/app/http/controller/web/encounter_controller.go b/app/http/controller/web/encounter_controller.go new file mode 100644 index 0000000..a3e583f --- /dev/null +++ b/app/http/controller/web/encounter_controller.go @@ -0,0 +1,29 @@ +package web + +import ( + "catface/app/global/consts" + "catface/app/service/encounter/curd" + "catface/app/utils/response" + + "github.com/gin-gonic/gin" +) + +type Encounters struct { +} + +func (e *Encounters) Store(context *gin.Context) { + userId := context.GetFloat64(consts.ValidatorPrefix + "user_id") + animalsID := context.GetString(consts.ValidatorPrefix + "animals_id") + title := context.GetString(consts.ValidatorPrefix + "title") + context := context.GetString(consts.ValidatorPrefix + "content") + photos := context.GetString(consts.ValidatorPrefix + "photos") + laitude := context.GetFloat64(consts.ValidatorPrefix + "latitude") + longitude := context.GetFloat64(consts.ValidatorPrefix + "longitude") + + encounters := curd.CreateEncounterCurdFactory().Create() + if encounters == nil { + response.Success(context, consts.CurdStatusOkMsg, encounters) + } else { + response.Fail(context, consts.CurdCreatFailCode, consts.CurdCreatFailMsg, "") + } +} diff --git a/app/http/validator/common/register_validator/web_register_validator.go b/app/http/validator/common/register_validator/web_register_validator.go index f0de85b..91cb709 100644 --- a/app/http/validator/common/register_validator/web_register_validator.go +++ b/app/http/validator/common/register_validator/web_register_validator.go @@ -6,6 +6,7 @@ import ( "catface/app/http/validator/common/upload_files" "catface/app/http/validator/common/websocket" "catface/app/http/validator/web/animal" + "catface/app/http/validator/web/encounter" "catface/app/http/validator/web/users" ) @@ -51,4 +52,9 @@ func WebRegisterValidator() { containers.Set(key, animal.List{}) key = consts.ValidatorPrefix + "AnimalDetail" containers.Set(key, animal.Detail{}) + + // TAG Encounter + key = consts.ValidatorPrefix + "EncounterStore" + containers.Set(key, encounter.Store{}) + } diff --git a/app/http/validator/web/encounter/store.go b/app/http/validator/web/encounter/store.go new file mode 100644 index 0000000..4fe58ee --- /dev/null +++ b/app/http/validator/web/encounter/store.go @@ -0,0 +1,37 @@ +package encounter + +import ( + "catface/app/global/consts" + "catface/app/http/controller/web" + "catface/app/http/validator/core/data_transfer" + "catface/app/utils/response" + + "github.com/gin-gonic/gin" +) + +type Store struct { + UserId int `form:"user_id" json:"user_id" binding:"required,numeric"` + AnimalsId string `form:"animals_id" json:"animals_id" binding:"required"` + Title string `form:"title" json:"title" binding:"required"` + Content string `form:"content" json:"content"` + + // Avatar string `form:"avatar" json:"avatar"` + Photos string `form:"photos" json:"photos"` // INFO 如果 Photo 为空,那就选取 Animals 的 Avatar + Laitude float64 `form:"latitude" json:"latitude"` + Longitude float64 `form:"longitude" json:"longitude"` +} + +func (e Store) CheckParams(context *gin.Context) { + if err := context.ShouldBind(&e); err != nil { + response.ValidatorError(context, err) + return + } + + extraAddBindDataContext := data_transfer.DataAddContext(e, consts.ValidatorPrefix, context) + if extraAddBindDataContext == nil { + response.ErrorSystem(context, "EncounterStore表单验证器json化失败", "") + } else { + // 验证完成,调用控制器,并将验证器成员(字段)递给控制器,保持上下文数据一致性 + (&web.Encounters{}).Store(extraAddBindDataContext) + } +} diff --git a/app/model/encounter.go b/app/model/encounter.go index e611228..3c50351 100644 --- a/app/model/encounter.go +++ b/app/model/encounter.go @@ -1,5 +1,9 @@ package model +func CreateEncounterFactory(sqlType string) *Encounter { + return &Encounter{BaseModel: BaseModel{DB: UseDbConn(sqlType)}} +} + type Encounter struct { // Encounter 或者称为 post,指的就是 Human 单次的记录。 BaseModel // TAG 外键关联 diff --git a/app/service/animals/curd/animals_curd.go b/app/service/animals/curd/animals_curd.go index e7f99cf..6cfd426 100644 --- a/app/service/animals/curd/animals_curd.go +++ b/app/service/animals/curd/animals_curd.go @@ -8,7 +8,7 @@ import ( "strconv" ) -func CreateUserCurdFactory() *AnimalsCurd { +func CreateAnimalsCurdFactory() *AnimalsCurd { return &AnimalsCurd{model.CreateAnimalFactory("")} } diff --git a/app/service/encounter/curd/encounter_curd.go b/app/service/encounter/curd/encounter_curd.go new file mode 100644 index 0000000..a6ce2f7 --- /dev/null +++ b/app/service/encounter/curd/encounter_curd.go @@ -0,0 +1,16 @@ +package curd + +import "catface/app/model" + +func CreateEncounterCurdFactory() *EncounterCurd { + return &EncounterCurd{model.CreateEncounterFactory("")} +} + +type EncounterCurd struct { + encounter *model.Encounter +} + +func (e *EncounterCurd) Store(encounter *model.Encounter) bool { + + return model.CreateEncounterFactory() +} diff --git a/app/service/users/curd/users_curd.go b/app/service/users/curd/users_curd.go index 3983606..abbd2b6 100644 --- a/app/service/users/curd/users_curd.go +++ b/app/service/users/curd/users_curd.go @@ -19,7 +19,6 @@ func (u *UsersCurd) Register(userName, pass, userIp string) bool { } func (u *UsersCurd) Store(name string, pass string, realName string, phone string, remark string) bool { - pass = md5_encrypt.Base64Md5(pass) // 预先处理密码加密,然后存储在数据库 return u.userModel.Store(name, pass, realName, phone, remark) } diff --git a/routers/web.go b/routers/web.go index 4094066..f9c2ab7 100644 --- a/routers/web.go +++ b/routers/web.go @@ -6,6 +6,7 @@ import ( // "catface/app/http/controller/captcha" // 验证码组件 // "catface/app/http/middleware/authorization" + "catface/app/http/middleware/cors" validatorFactory "catface/app/http/validator/core/factory" @@ -123,6 +124,16 @@ func InitWebRouter() *gin.Engine { animal.GET("", validatorFactory.Create(consts.ValidatorPrefix+"AnimalList")) animal.GET(":anm_id", validatorFactory.Create(consts.ValidatorPrefix+"AnimalDetail")) } + + // backend.Use(authorization.CheckTokenAuth()) // INFO token 检查 + // { + encounter := backend.Group("encounter") + { + // GET 获取列表; POST 上传 + // encounter.GET("", validatorFactory.Create(consts.ValidatorPrefix+"EncounterList")) + encounter.POST("", validatorFactory.Create(consts.ValidatorPrefix+"EnconterStore")) + } + // } } // //处理静态资源(不建议gin框架处理静态资源,参见 public/readme.md 说明 ) // INFO 已经交给 Nginx 了