project_module_files.go 5.1 KB
package controllers

import (
	"github.com/tiptok/gocomm/pkg/log"
	"gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/project_module_files"
	"gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol"
	protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/project_module_files"
	"io/ioutil"
	"mime/multipart"
	"sort"
)

type ProjectModuleFilesController struct {
	BaseController
}

// CreateProjectModuleFiles
// CreateProjectModuleFiles execute command  create  ProjectModuleFiles
func (controller *ProjectModuleFilesController) CreateProjectModuleFiles() {
	var (
		msg     *protocol.ResponseMessage
		svr     = project_module_files.NewProjectModuleFilesService(nil)
		request *protocolx.CreateProjectModuleFilesRequest
	)
	defer func() {
		controller.Resp(msg)
	}()
	if err := controller.JsonUnmarshal(&request); err != nil {
		msg = protocol.NewResponseMessage(2, "")
		return
	}
	header := controller.GetRequestHeader(controller.Ctx)
	data, err := svr.CreateProjectModuleFiles(header, request)
	if err != nil {
		log.Error(err)
	}
	msg = protocol.NewResponseMessageData(data, err)
}

// UpdateProjectModuleFiles
// UpdateProjectModuleFiles execute command  update  ProjectModuleFiles
func (controller *ProjectModuleFilesController) UpdateProjectModuleFiles() {
	var (
		msg     *protocol.ResponseMessage
		svr     = project_module_files.NewProjectModuleFilesService(nil)
		request *protocolx.UpdateProjectModuleFilesRequest
	)
	defer func() {
		controller.Resp(msg)
	}()
	if err := controller.JsonUnmarshal(&request); err != nil {
		msg = protocol.NewResponseMessage(2, "")
		return
	}
	request.Id, _ = controller.GetInt64(":projectModuleFilesId")
	header := controller.GetRequestHeader(controller.Ctx)
	data, err := svr.UpdateProjectModuleFiles(header, request)
	if err != nil {
		log.Error(err)
	}
	msg = protocol.NewResponseMessageData(data, err)
}

// GetProjectModuleFiles
// GetProjectModuleFiles execute query  get  ProjectModuleFiles
func (controller *ProjectModuleFilesController) GetProjectModuleFiles() {
	var (
		msg     *protocol.ResponseMessage
		svr     = project_module_files.NewProjectModuleFilesService(nil)
		request = &protocolx.GetProjectModuleFilesRequest{}
	)
	defer func() {
		controller.Resp(msg)
	}()
	request.Id, _ = controller.GetInt64(":projectModuleFilesId")
	header := controller.GetRequestHeader(controller.Ctx)
	data, err := svr.GetProjectModuleFiles(header, request)
	if err != nil {
		log.Error(err)
	}
	msg = protocol.NewResponseMessageData(data, err)
}

// DeleteProjectModuleFiles
// DeleteProjectModuleFiles execute command  delete  ProjectModuleFiles
func (controller *ProjectModuleFilesController) DeleteProjectModuleFiles() {
	var (
		msg     *protocol.ResponseMessage
		svr     = project_module_files.NewProjectModuleFilesService(nil)
		request = &protocolx.DeleteProjectModuleFilesRequest{}
	)
	defer func() {
		controller.Resp(msg)
	}()
	request.Id, _ = controller.GetInt64(":projectModuleFilesId")
	header := controller.GetRequestHeader(controller.Ctx)
	data, err := svr.DeleteProjectModuleFiles(header, request)
	if err != nil {
		log.Error(err)
	}
	msg = protocol.NewResponseMessageData(data, err)
}

// ListProjectModuleFiles
// ListProjectModuleFiles execute query  list  ProjectModuleFiles
func (controller *ProjectModuleFilesController) ListProjectModuleFiles() {
	var (
		msg     *protocol.ResponseMessage
		svr     = project_module_files.NewProjectModuleFilesService(nil)
		request = &protocolx.ListProjectModuleFilesRequest{}
	)
	defer func() {
		controller.Resp(msg)
	}()
	request.ProjectModuleVersionId, _ = controller.GetInt64("projectModuleVersionId")
	request.ProjectModuleId, _ = controller.GetInt64("projectModuleId")
	request.StructType = controller.GetString("structType")
	header := controller.GetRequestHeader(controller.Ctx)
	data, err := svr.ListProjectModuleFiles(header, request)
	if err != nil {
		log.Error(err)
	}
	msg = protocol.NewResponseMessageData(data, err)
}

// Import
// 权限列表
func (controller *ProjectModuleFilesController) Import() {
	var (
		msg     *protocol.ResponseMessage
		svr     = project_module_files.NewProjectModuleFilesService(nil)
		request = &protocolx.ImportRequest{}
	)
	defer func() {
		controller.Resp(msg)
	}()
	header := controller.GetRequestHeader(controller.Ctx)
	request.ProjectModuleId, _ = controller.GetInt64("projectModuleId")
	request.ProjectModuleVersionId, _ = controller.GetInt64("projectModuleVersionId")
	request.ParentId, _ = controller.GetInt64("parentId")
	for _, k := range getSortFileKeys(controller.Ctx.Request.MultipartForm.File) {
		v := controller.Ctx.Request.MultipartForm.File[k]
		log.Info(k, v[0].Filename, v[0].Size)
		for i := range v {
			if v[i].Size > 50*1024 {
				continue
			}
			f, _ := v[i].Open()
			data, _ := ioutil.ReadAll(f)
			f.Close()
			request.ImportFiles = append(request.ImportFiles, protocolx.ImportFile{
				FileName:    v[i].Filename,
				FileContent: data,
			})
		}
	}
	data, err := svr.Import(header, request)
	if err != nil {
		log.Error(err)
	}
	msg = protocol.NewResponseMessageData(data, err)
}

//获取排序键值
func getSortFileKeys(files map[string][]*multipart.FileHeader) (keys []string) {
	for k, _ := range files {
		keys = append(keys, k)
	}
	sort.Strings(keys)
	return
}