template.go 3.14 KB
Newer Older
brent's avatar
brent committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
package controllers

import (
	"aon_app_server/models"
	"aon_app_server/utils/mongo"
	"encoding/json"
	"github.com/beego/beego/v2/core/logs"
	"go.mongodb.org/mongo-driver/bson"
	"net/http"
	"time"
)

type TemplateController struct {
	MainController
}

func (server *TemplateController) Add() {
	body := server.Ctx.Input.RequestBody
	template := models.Template{}
	err := json.Unmarshal(body, &template) //解析body中数据
	logs.Debug("appRequest", template)
	if err != nil {
		server.respond(models.NoRequestBody, err.Error())
		return
	}

	template.CreatedTime = time.Now().UTC()
	template.UpdatedTime = template.CreatedTime
	_, err = mongo.Insert(&template)
	if err != nil {
		server.respond(models.BusinessFailed, err.Error())
		return
	}
	server.respond(http.StatusOK, "")
}

func (server *TemplateController) Update() {
	body := server.Ctx.Input.RequestBody
	template := models.Template{}
	err := json.Unmarshal(body, &template) //解析body中数据
	logs.Debug("appRequest", template)
	if err != nil {
		server.respond(models.NoRequestBody, err.Error())
		return
	}

	if template.Id == nil {
		server.respond(models.MissingParameter, "id param is null")
		return
	}
	template.UpdatedTime = time.Now().UTC()
	_, err = mongo.Update(template)
	if err != nil {
		server.respond(models.BusinessFailed, err.Error())
		return
	}
	server.respond(http.StatusOK, "")
}

func (server *TemplateController) Delete() {
	body := server.Ctx.Input.RequestBody
	template := models.Template{}
	err := json.Unmarshal(body, &template) //解析body中数据
	logs.Debug("appRequest", template)
	if err != nil {
		server.respond(models.NoRequestBody, err.Error())
		return
	}

	if template.Id == nil {
		server.respond(models.MissingParameter, "id param is null")
		return
	}

	template.UpdatedTime = time.Now().UTC()

	template.Deleted = 1
	_, err = mongo.Update(template)
	if err != nil {
		server.respond(models.BusinessFailed, err.Error())
		return
	}
	server.respond(http.StatusOK, "")
}

func (server *TemplateController) List() {
	body := server.Ctx.Input.RequestBody
	request := models.ListRequest{}
	err := json.Unmarshal(body, &request) //解析body中数据
	logs.Debug("appRequest", request)
	if err != nil {
		server.respond(models.NoRequestBody, err.Error())
		return
	}

	if request.Page == 0 {
		request.Page = 1
	}
	if request.Size == 0 {
		request.Size = 10
	}

	total, data, err := mongo.Query("Template", request.Page, request.Size, request.Filter)
	if err != nil {
		logs.Info("List Error:", err)
		server.respond(models.BusinessFailed, err.Error())
	}

	var templates []models.Template
	for _, bsonD := range data {
		var template models.Template
		// 将 bson.D 转换为 bson.Raw
		bsonRaw, err := bson.Marshal(bsonD)
		if err != nil {
			server.respond(models.BusinessFailed, err.Error())
		}
		// 将 bson.Raw 解码为 User 结构体
		err = bson.Unmarshal(bsonRaw, &template)
		if err != nil {
			server.respond(models.BusinessFailed, err.Error())
		}
		templates = append(templates, template)
	}
	responseData := struct {
		Total int64       `json:"total"`
		Data  interface{} `json:"data,omitempty"`
	}{
		Total: total,
		Data:  templates,
	}
	server.respond(http.StatusOK, "", responseData)

}