|  | @@ -1,10 +1,14 @@
 | 
	
		
			
				|  |  |  package work
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import (
 | 
	
		
			
				|  |  | +	"encoding/json"
 | 
	
		
			
				|  |  | +	"fmt"
 | 
	
		
			
				|  |  |  	"kpt-pasture/http/middleware"
 | 
	
		
			
				|  |  |  	"net/http"
 | 
	
		
			
				|  |  | +	"time"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 | 
	
		
			
				|  |  | +	operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
 | 
	
		
			
				|  |  |  	"gitee.com/xuyiping_admin/pkg/apierr"
 | 
	
		
			
				|  |  |  	"gitee.com/xuyiping_admin/pkg/ginutil"
 | 
	
		
			
				|  |  |  	"github.com/gin-gonic/gin"
 | 
	
	
		
			
				|  | @@ -13,7 +17,7 @@ import (
 | 
	
		
			
				|  |  |  func OrderList(c *gin.Context) {
 | 
	
		
			
				|  |  |  	var req pasturePb.SearchWorkOrderRequest
 | 
	
		
			
				|  |  |  	if err := ginutil.BindProto(c, &req); err != nil {
 | 
	
		
			
				|  |  | -		apierr.AbortBadRequest(c, http.StatusOK, err)
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  |  		return
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -30,3 +34,45 @@ func OrderList(c *gin.Context) {
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	ginutil.JSONResp(c, res)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func OrderCreateOrUpdate(c *gin.Context) {
 | 
	
		
			
				|  |  | +	files, err := c.MultipartForm()
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		c.JSON(http.StatusBadRequest, gin.H{"error": "MultipartForm"})
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	b, _ := json.Marshal(files.Value)
 | 
	
		
			
				|  |  | +	fmt.Println("===Value====", string(b))
 | 
	
		
			
				|  |  | +	fileHeaders := files.File["photos"] // 注意这里使用 "files[]" 作为 key,与前端匹配
 | 
	
		
			
				|  |  | +	// 验证文件数量
 | 
	
		
			
				|  |  | +	if len(fileHeaders) == 0 {
 | 
	
		
			
				|  |  | +		c.JSON(http.StatusBadRequest, gin.H{"error": "No files selected"})
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 处理每个文件
 | 
	
		
			
				|  |  | +	for i, file := range fileHeaders {
 | 
	
		
			
				|  |  | +		if err = c.SaveUploadedFile(file, fmt.Sprintf("%d_%d_%s", i+1, time.Now().Unix(), file.Filename)); err != nil {
 | 
	
		
			
				|  |  | +			fmt.Println("===SaveUploadedFile==", err, i)
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/*if err := valid.ValidateStruct(&req,
 | 
	
		
			
				|  |  | +		valid.Field(&req.Name, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.CategoryId, valid.Required),
 | 
	
		
			
				|  |  | +	); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if err := middleware.BackendOperation(c).OpsService.OrderCreateOrUpdate(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}*/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, &operationPb.CommonOK{
 | 
	
		
			
				|  |  | +		Code: http.StatusOK,
 | 
	
		
			
				|  |  | +		Msg:  "ok",
 | 
	
		
			
				|  |  | +		Data: &operationPb.Success{Success: true},
 | 
	
		
			
				|  |  | +	})
 | 
	
		
			
				|  |  | +}
 |