feat(park):修改园区信息功能已经完成。

This commit is contained in:
徐涛
2022-08-15 21:01:56 +08:00
parent 1bc87f7ca2
commit ddda0ac196
4 changed files with 60 additions and 3 deletions

View File

@@ -28,6 +28,7 @@ func InitializeParkController(router *gin.Engine) {
ParkController.Router.GET("/parks", security.EnterpriseAuthorize, listAllParksUnderSessionUser)
ParkController.Router.GET("/parks/:uid", security.ManagementAuthorize, listAllParksUnderSpecificUser)
ParkController.Router.POST("/park", security.EnterpriseAuthorize, createNewPark)
ParkController.Router.PUT("/park/:pid", security.EnterpriseAuthorize, modifyPark)
}
func listAllParksUnderSessionUser(c *gin.Context) {
@@ -61,7 +62,7 @@ func listAllParksUnderSpecificUser(c *gin.Context) {
result.Json(http.StatusOK, "已获取到指定用户下的园区。", gin.H{"parks": parks})
}
type _ParkCreationFormData struct {
type _ParkInfoFormData struct {
Name string `json:"name" form:"name"`
Region *string `json:"region" form:"region"`
Address *string `json:"address" form:"address"`
@@ -86,7 +87,7 @@ func createNewPark(c *gin.Context) {
result.Failure(http.StatusInternalServerError, "内部缓存错误,需要重新登录。")
return
}
formData := new(_ParkCreationFormData)
formData := new(_ParkInfoFormData)
c.BindJSON(formData)
newPark := new(model.Park)
copier.Copy(newPark, formData)
@@ -102,3 +103,38 @@ func createNewPark(c *gin.Context) {
}
result.Success("新园区完成创建。")
}
func modifyPark(c *gin.Context) {
result := response.NewResult(c)
session, exists := c.Get("session")
if !exists {
result.Error(http.StatusUnauthorized, "用户会话无效。")
return
}
userSession, ok := session.(*model.Session)
if !ok {
result.Failure(http.StatusInternalServerError, "内部缓存错误,需要重新登录。")
return
}
requestParkId := c.Param("pid")
formData := new(_ParkInfoFormData)
c.BindJSON(formData)
park, err := repository.ParkRepo.FetchParkDetail(requestParkId)
if err != nil {
result.Error(http.StatusInternalServerError, err.Error())
return
}
if userSession.Uid != park.UserId {
result.NotAccept("不能修改不属于自己的园区。")
return
}
copier.Copy(park, formData)
nameAbbr := utils.PinyinAbbr(formData.Name)
park.Abbr = &nameAbbr
err = service.ParkService.UpdateParkInfo(park)
if err != nil {
result.Error(http.StatusInternalServerError, err.Error())
return
}
result.Updated("指定园区资料已更新。")
}