daShangDao_psiServer/controllers/wangdian.go

116 lines
3.1 KiB
Go

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,
})
}