package system import ( "net/http" "management/internal/db/model/dto" "management/internal/erpserver/biz" "management/internal/pkg/convertor" "management/internal/pkg/tpl" ) type AuditHandler interface { List(w http.ResponseWriter, r *http.Request) } type auditHandler struct { render tpl.Renderer biz biz.IBiz } var _ AuditHandler = (*auditHandler)(nil) func NewAuditHandler(render tpl.Renderer, biz biz.IBiz) *auditHandler { return &auditHandler{ render: render, biz: biz, } } func (h *auditHandler) List(w http.ResponseWriter, r *http.Request) { switch r.Method { case http.MethodGet: h.render.HTML(w, r, "audit_log/list.tmpl", nil) case http.MethodPost: var q dto.SearchDto q.SearchTimeBegin, q.SearchTimeEnd = convertor.DefaultStartTimeAndEndTime(r.PostFormValue("timeBegin"), r.PostFormValue("timeEnd")) q.SearchName = r.PostFormValue("name") q.SearchEmail = r.PostFormValue("email") q.Page = convertor.ConvertInt(r.PostFormValue("page"), 1) q.Rows = convertor.ConvertInt(r.PostFormValue("rows"), 10) res, count, err := h.biz.SystemV1().AuditBiz().List(r.Context(), q) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } data := tpl.ResponseList{ Code: 0, Message: "ok", Count: count, Data: res, } h.render.JSON(w, data) default: http.Error(w, "Method Not Allowed", http.StatusMethodNotAllowed) } }