【恢复删除内容,修改完毕后统一删除】

This commit is contained in:
weizhihong 2023-11-17 16:51:28 +08:00
parent b8efe7e11b
commit 8b556ab416
3 changed files with 98 additions and 0 deletions

View File

@ -17,6 +17,9 @@ func InitProjectLinkRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddl
authed := api.Group("/v1/projectLink").Use(authMiddleware.MiddlewareFunc(), middleware.PermissMiddleware)
authed.GET("/info/:id", queryProjectLinkInfo)
authed.POST("", saveProjectLinkInfo)
// TODO: 前端修改完成后删除
authed.GET("/mapInfo/trainSize/:id", queryTrainSizeByMapId)
authed.GET("/project/trainSize/:id", queryTrainSizeByPId)
}
// 查询项目的所有关联信息
@ -69,3 +72,57 @@ func saveProjectLinkInfo(c *gin.Context) {
service.UpdateProjectLink(&req)
c.JSON(http.StatusOK, true)
}
// TODO:前端修改完成后删除
// 通过项目ID查询项目的关联列车尺寸信息
//
// @Summary 通过项目ID查询项目的关联列车尺寸信息
//
// @Security JwtAuth
//
// @Description 通过项目ID查询项目的关联列车尺寸信息
// @Tags 项目关联信息Api
// @Accept json
// @Produce json
// @Param id path int true "地图ID"
// @Success 200 {object} dto.TrainSizeDto
// @Failure 401 {object} dto.ErrorDto
// @Failure 404 {object} dto.ErrorDto
// @Failure 500 {object} dto.ErrorDto
// @Router /api/v1/projectLink/project/trainSize/{id} [get]
func queryTrainSizeByMapId(c *gin.Context) {
id, exist := c.Params.Get("id")
if !exist {
panic(sys_error.New("查询失败,缺少id"))
}
slog.Debug("传入参数id为" + id)
int64Id, _ := strconv.ParseInt(id, 10, 64)
c.JSON(http.StatusOK, service.QueryTrainSizeByMapId(int32(int64Id)))
}
// 通过地图ID查询项目的关联列车尺寸信息
//
// @Summary 通过地图ID查询项目的关联列车尺寸信息
//
// @Security JwtAuth
//
// @Description 通过地图ID查询项目的关联列车尺寸信息
// @Tags 项目关联信息Api
// @Accept json
// @Produce json
// @Param id path int true "地图ID"
// @Success 200 {object} dto.TrainSizeDto
// @Failure 401 {object} dto.ErrorDto
// @Failure 404 {object} dto.ErrorDto
// @Failure 500 {object} dto.ErrorDto
// @Router /api/v1/projectLink/mapInfo/trainSize/{id} [get]
func queryTrainSizeByPId(c *gin.Context) {
id, exist := c.Params.Get("id")
if !exist {
panic(sys_error.New("查询失败,缺少id"))
}
slog.Debug("传入参数id为" + id)
int64Id, _ := strconv.ParseInt(id, 10, 64)
trainSizeArr := service.QueryProjectTrainSize(int32(int64Id))
c.JSON(http.StatusOK, dto.ConvertFromTrainSizeDto(trainSizeArr))
}

View File

@ -7,11 +7,15 @@ type ProjectLinkRspDto struct {
Name string `json:"name" form:"name"`
Code string `json:"code" form:"code"`
PublishedGiLinks []*PublishedGiLinkDto `json:"mapInfoLinks" form:"mapInfoLinks"`
// TODO:前端修改完成后删除
TrainSizeLinks []*TrainSizeDto `json:"trainSizeLinks" form:"trainSizeLinks"`
}
type ProjectLinkReqDto struct {
Pid int32 `json:"pid" form:"pid"`
Mids []*int32 `json:"mids" form:"mids"`
// TODO:前端修改完成后删除
Sids []*int32 `json:"sids" form:"sids"`
}
type PublishedGiLinkDto struct {
@ -27,6 +31,8 @@ func ConvertProjectLink(gi *model.Project) *ProjectLinkRspDto {
Name: gi.Name,
Code: gi.Code,
PublishedGiLinks: []*PublishedGiLinkDto{},
// TODO:前端修改完成后删除
TrainSizeLinks: []*TrainSizeDto{},
}
}

View File

@ -15,6 +15,9 @@ func QueryProjectLinkInfo(id int32) *dto.ProjectLinkRspDto {
projectLink := dto.ConvertProjectLink(pro)
// 关联地图列表
projectLink.PublishedGiLinks = dto.ConvertFromPublishedGiLink(QueryProjectPublished(id))
// TODO:前端修改完成后删除
// 关联列车尺寸列表
projectLink.TrainSizeLinks = dto.ConvertFromTrainSizeDto(QueryProjectTrainSize(id))
return projectLink
}
@ -22,6 +25,11 @@ func QueryProjectLinkInfo(id int32) *dto.ProjectLinkRspDto {
func UpdateProjectLink(req *dto.ProjectLinkReqDto) {
delProjectMapLink(req.Pid)
saveProjectMapLink(req.Pid, req.Mids)
// TODO:前端修改完成后删除
// 保存新关联关系
delProjectSizeLink(req.Pid)
saveProjectSize(req.Pid, req.Sids)
}
// 删除项目地图关联关系
@ -40,3 +48,30 @@ func saveProjectMapLink(pid int32, mids []*int32) {
}
dbquery.ProjectPublishLink.Save(mapInfos...)
}
// TODO: 以下代码前端修改完成后删除
// 通过地图ID获取列车尺寸列表
func QueryTrainSizeByMapId(mid int32) []*dto.TrainSizeDto {
pl, err := dbquery.ProjectPublishLink.Where(dbquery.ProjectPublishLink.Mid.Eq(mid)).First()
if err != nil {
panic(dto.ErrorDto{Code: dto.QueryDBError, Message: err.Error()})
}
return dto.ConvertFromTrainSizeDto(QueryProjectTrainSize(pl.Pid))
}
// 保存项目尺寸关联关系
func saveProjectSize(pid int32, sids []*int32) {
if len(sids) == 0 {
return
}
sizeInfos := make([]*model.ProjectTrainSizeLink, len(sids))
for i, sid := range sids {
sizeInfos[i] = &model.ProjectTrainSizeLink{Pid: pid, Sid: *sid}
}
dbquery.ProjectTrainSizeLink.Save(sizeInfos...)
}
// 删除项目列车尺寸关联关系
func delProjectSizeLink(pid int32) {
dbquery.ProjectTrainSizeLink.Where(dbquery.ProjectTrainSizeLink.Pid.Eq(pid)).Delete()
}