package launch import ( "errors" "github.com/fonchain_enterprise/fonchain-main/api/account" "github.com/fonchain_enterprise/fonchain-main/api/conference" "github.com/fonchain_enterprise/fonchain-main/api/documentContract" "github.com/fonchain_enterprise/fonchain-main/pkg/e" "github.com/fonchain_enterprise/fonchain-main/pkg/model/login" "github.com/fonchain_enterprise/fonchain-main/pkg/request" "github.com/fonchain_enterprise/fonchain-main/pkg/service" "github.com/fonchain_enterprise/fonchain-main/pkg/utils/launch" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" ) func CreateContract(c *gin.Context) { req := &documentContract.CreateContractRequest{} if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, e.InvalidParams, err) return } userInfoAny, _ := c.Get("jwtInfo") userInfo := userInfoAny.(login.Info) infoReq := &account.InfoRequest{ ID: userInfo.ID, } infoRes, err := service.AccountProvider.Info(c, infoReq) req.CreatedUid = infoRes.Info.ID req.JobNum = infoRes.Info.JobNum req.Creator = infoRes.Info.NickName res, err := service.GrpcDocumentContractImpl.CreateContract(c, req) if err != nil { service.Error(c, e.Error, err) return } service.Success(c, res) return } func UpdateContract(c *gin.Context) { req := &documentContract.UpdateContractRequest{} if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, e.InvalidParams, err) return } res, err := service.GrpcDocumentContractImpl.UpdateContract(c, req) if err != nil { service.Error(c, e.Error, err) return } service.Success(c, res) return } func DeletedContract(c *gin.Context) { req := &documentContract.DeletedContractRequest{} if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, e.InvalidParams, err) return } res, err := service.GrpcDocumentContractImpl.DeletedContract(c, req) if err != nil { service.Error(c, e.Error, err) return } service.Success(c, res) return } func FindContract(c *gin.Context) { req := &documentContract.FindContractRequest{} if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, e.InvalidParams, err) return } res, err := service.GrpcDocumentContractImpl.FindContract(c, req) if err != nil { service.Error(c, e.Error, err) return } service.Success(c, res) return } func CreateSort(c *gin.Context) { req := &documentContract.SortCreateRequest{} if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, e.InvalidParams, err) return } res, err := service.GrpcDocumentContractImpl.CreateSort(c, req) if err != nil { service.Error(c, e.Error, err) return } service.Success(c, res) return } func FindSort(c *gin.Context) { req := &documentContract.SortFindRequest{} if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, e.InvalidParams, err) return } res, err := service.GrpcDocumentContractImpl.FindSort(c, req) if err != nil { service.Error(c, e.Error, err) return } service.Success(c, res) return } func DownloadPackaged(c *gin.Context) { var reqData request.Response var fileType string req := &request.DownloadPackaged{} if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, e.InvalidParams, err) return } if req.Type == "conference" { conferenceReq := &conference.FindConferenceRequest{ Ids: req.Ids, } res, err := service.GrpcConferenceImpl.FindConference(c, conferenceReq) if err != nil { service.Error(c, e.InvalidParams, err) return } fileType = "会议录" for _, i := range res.Conference { var attachments []request.Attachment for _, att := range i.Attachment { attachments = append(attachments, request.Attachment{ URL: att.Url, Name: att.Name, }) } reqData.Contracts = append(reqData.Contracts, request.Contract{ Theme: i.Theme, Attachment: attachments, }) } } else if req.Type == "contract" { contractReq := &documentContract.FindContractRequest{ Ids: req.Ids, } res, err := service.GrpcDocumentContractImpl.FindContract(c, contractReq) if err != nil { service.Error(c, e.InvalidParams, err) return } fileType = "合同" for _, i := range res.Contract { var attachments []request.Attachment for _, att := range i.Attachment { attachments = append(attachments, request.Attachment{ URL: att.Url, Name: att.Name, }) } reqData.Contracts = append(reqData.Contracts, request.Contract{ Theme: i.Theme, Attachment: attachments, }) } } else { service.Error(c, e.InvalidParams, errors.New(e.GetMsg(e.InvalidParams))) return } launch.DownloadAndZip(reqData, fileType, c.Writer) }