feat: add QuickReplyGetBy route and builder functions for quick replies
This commit is contained in:
@@ -165,6 +165,7 @@ func registerDashboardNotificationRoutes(group *gin.RouterGroup) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func registerDashboardQuickReplyRoutes(group *gin.RouterGroup) {
|
func registerDashboardQuickReplyRoutes(group *gin.RouterGroup) {
|
||||||
|
group.GET("/:id", dashboard.QuickReplyGetBy)
|
||||||
group.POST("/create", dashboard.QuickReplyPostCreate)
|
group.POST("/create", dashboard.QuickReplyPostCreate)
|
||||||
group.POST("/delete", dashboard.QuickReplyPostDelete)
|
group.POST("/delete", dashboard.QuickReplyPostDelete)
|
||||||
group.Any("/list", dashboard.QuickReplyAnyList)
|
group.Any("/list", dashboard.QuickReplyAnyList)
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package builders
|
||||||
|
|
||||||
|
import (
|
||||||
|
"cs-agent/internal/models"
|
||||||
|
"cs-agent/internal/pkg/dto/response"
|
||||||
|
)
|
||||||
|
|
||||||
|
func BuildQuickReplyResponse(item *models.QuickReply) *response.QuickReplyResponse {
|
||||||
|
if item == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &response.QuickReplyResponse{
|
||||||
|
ID: item.ID,
|
||||||
|
GroupName: item.GroupName,
|
||||||
|
Title: item.Title,
|
||||||
|
Content: item.Content,
|
||||||
|
Status: item.Status,
|
||||||
|
SortNo: item.SortNo,
|
||||||
|
CreatedBy: item.CreateUserID,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BuildQuickReplyResponses(list []models.QuickReply) []response.QuickReplyResponse {
|
||||||
|
results := make([]response.QuickReplyResponse, 0, len(list))
|
||||||
|
for _, item := range list {
|
||||||
|
result := BuildQuickReplyResponse(&item)
|
||||||
|
if result != nil {
|
||||||
|
results = append(results, *result)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results
|
||||||
|
}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package dashboard
|
package dashboard
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"cs-agent/internal/builders"
|
||||||
"cs-agent/internal/pkg/constants"
|
"cs-agent/internal/pkg/constants"
|
||||||
"cs-agent/internal/pkg/dto/request"
|
"cs-agent/internal/pkg/dto/request"
|
||||||
"cs-agent/internal/pkg/dto/response"
|
|
||||||
"cs-agent/internal/pkg/enums"
|
"cs-agent/internal/pkg/enums"
|
||||||
"cs-agent/internal/pkg/httpx"
|
"cs-agent/internal/pkg/httpx"
|
||||||
"cs-agent/internal/services"
|
"cs-agent/internal/services"
|
||||||
@@ -28,37 +28,35 @@ func QuickReplyAnyList(ctx *gin.Context) {
|
|||||||
).Asc("sort_no").Desc("id")
|
).Asc("sort_no").Desc("id")
|
||||||
|
|
||||||
list, paging := services.QuickReplyService.FindPageByCnd(cnd)
|
list, paging := services.QuickReplyService.FindPageByCnd(cnd)
|
||||||
results := make([]response.QuickReplyResponse, 0, len(list))
|
results := builders.BuildQuickReplyResponses(list)
|
||||||
for _, item := range list {
|
|
||||||
results = append(results, response.QuickReplyResponse{
|
|
||||||
ID: item.ID,
|
|
||||||
GroupName: item.GroupName,
|
|
||||||
Title: item.Title,
|
|
||||||
Content: item.Content,
|
|
||||||
Status: item.Status,
|
|
||||||
SortNo: item.SortNo,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
httpx.WriteJSON(ctx, &web.PageResult{Results: results, Page: paging})
|
httpx.WriteJSON(ctx, &web.PageResult{Results: results, Page: paging})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func QuickReplyGetBy(ctx *gin.Context) {
|
||||||
|
id, ok := httpx.GetPathInt64(ctx, "id")
|
||||||
|
if !ok {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if _, err := services.AuthService.RequirePermission(ctx, constants.PermissionQuickReplyView); err != nil {
|
||||||
|
httpx.WriteJSON(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
item := services.QuickReplyService.Get(id)
|
||||||
|
if item == nil {
|
||||||
|
httpx.WriteJSON(ctx, web.JsonErrorMsg("快捷回复不存在"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpx.WriteJSON(ctx, builders.BuildQuickReplyResponse(item))
|
||||||
|
}
|
||||||
|
|
||||||
func QuickReplyGetList_all(ctx *gin.Context) {
|
func QuickReplyGetList_all(ctx *gin.Context) {
|
||||||
if _, err := services.AuthService.RequirePermission(ctx, constants.PermissionQuickReplyView); err != nil {
|
if _, err := services.AuthService.RequirePermission(ctx, constants.PermissionQuickReplyView); err != nil {
|
||||||
httpx.WriteJSON(ctx, err)
|
httpx.WriteJSON(ctx, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
list := services.QuickReplyService.Find(sqls.NewCnd().Eq("status", enums.StatusOk).Asc("sort_no").Desc("id"))
|
list := services.QuickReplyService.Find(sqls.NewCnd().Eq("status", enums.StatusOk).Asc("sort_no").Desc("id"))
|
||||||
results := make([]response.QuickReplyResponse, 0, len(list))
|
results := builders.BuildQuickReplyResponses(list)
|
||||||
for _, item := range list {
|
|
||||||
results = append(results, response.QuickReplyResponse{
|
|
||||||
ID: item.ID,
|
|
||||||
GroupName: item.GroupName,
|
|
||||||
Title: item.Title,
|
|
||||||
Content: item.Content,
|
|
||||||
Status: item.Status,
|
|
||||||
SortNo: item.SortNo,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
httpx.WriteJSON(ctx, results)
|
httpx.WriteJSON(ctx, results)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,14 +77,7 @@ func QuickReplyPostCreate(ctx *gin.Context) {
|
|||||||
httpx.WriteJSON(ctx, err)
|
httpx.WriteJSON(ctx, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpx.WriteJSON(ctx, &response.QuickReplyResponse{
|
httpx.WriteJSON(ctx, builders.BuildQuickReplyResponse(item))
|
||||||
ID: item.ID,
|
|
||||||
GroupName: item.GroupName,
|
|
||||||
Title: item.Title,
|
|
||||||
Content: item.Content,
|
|
||||||
Status: item.Status,
|
|
||||||
SortNo: item.SortNo,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func QuickReplyPostUpdate(ctx *gin.Context) {
|
func QuickReplyPostUpdate(ctx *gin.Context) {
|
||||||
|
|||||||
Reference in New Issue
Block a user