package controllers import ( "net/http" "psi/constant" "psi/database" "psi/service" "psi/utils" "strconv" "github.com/gin-gonic/gin" ) type WangdianApi struct{} func (i *WangdianApi) CreatePurchaseOrder(c *gin.Context) { raw := c.PostForm("purchase_order_id") if raw == "" { raw = c.Query("purchase_order_id") } purchaseOrderID, err := strconv.ParseInt(raw, 10, 64) if err != nil || purchaseOrderID <= 0 { utils.FailWithRequestLog(constant.LoggerChannelRequest, "参数错误: purchase_order_id 必须为正整数", nil, c, nil) return } resp, err := service.PushPurchaseOrder(purchaseOrderID, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "推送采购单到旺店通失败: "+err.Error(), err, c, nil) return } c.JSON(http.StatusOK, gin.H{ "code": resp.Code, "message": resp.Message, }) } func (i *WangdianApi) QueryProvider(c *gin.Context) { column := c.Query("column") providerNo := c.Query("provider_no") providerName := c.Query("provider_name") pageSizeStr := c.Query("page_size") pageNoStr := c.Query("page_no") pageSize, _ := strconv.Atoi(pageSizeStr) pageNo, _ := strconv.Atoi(pageNoStr) resp, err := service.QueryProvider(column, providerNo, providerName, pageSize, pageNo) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "查询旺店通供应商失败: "+err.Error(), err, c, nil) return } c.JSON(http.StatusOK, gin.H{ "code": resp.Code, "message": resp.Message, "total_count": resp.TotalCount, "provider_list": resp.ProviderList, }) } func (i *WangdianApi) QueryWarehouse(c *gin.Context) { warehouseNo := c.Query("warehouse_no") pageSizeStr := c.Query("page_size") pageNoStr := c.Query("page_no") isDisabled := c.Query("is_disabled") pageSize, _ := strconv.Atoi(pageSizeStr) pageNo, _ := strconv.Atoi(pageNoStr) resp, err := service.QueryWarehouse(warehouseNo, 0, 0, pageSize, pageNo, isDisabled) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "查询旺店通仓库失败: "+err.Error(), err, c, nil) return } c.JSON(http.StatusOK, gin.H{ "code": resp.Code, "message": resp.Message, "total_count": resp.TotalCount, "warehouses": resp.Warehouses, }) } func (i *WangdianApi) QueryGoods(c *gin.Context) { specNo := c.Query("spec_no") goodsNo := c.Query("goods_no") brandNo := c.Query("brand_no") className := c.Query("class_name") barcode := c.Query("barcode") startTime := c.Query("start_time") endTime := c.Query("end_time") pageSizeStr := c.Query("page_size") pageNoStr := c.Query("page_no") pageSize, _ := strconv.Atoi(pageSizeStr) if pageSize <= 0 { pageSize = 40 } pageNo, _ := strconv.Atoi(pageNoStr) resp, err := service.QueryGoods(specNo, goodsNo, brandNo, className, barcode, startTime, endTime, 0, pageSize, pageNo) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "查询旺店通商品失败: "+err.Error(), err, c, nil) return } c.JSON(http.StatusOK, gin.H{ "code": resp.Code, "message": resp.Message, "total_count": resp.TotalCount, "goods_list": resp.GoodsList, }) }