daShangDao_psiServer/routes/routes.go

312 lines
20 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package router
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/pkg/errors"
"psi/config"
"psi/controllers"
"psi/middleware"
)
var employeeApi = &controllers.EmployeeApi{}
var bookApi = &controllers.BookApi{}
var locationApi = &controllers.LocationApi{}
var warehouseApi = &controllers.WarehouseApi{}
var ocrApi = &controllers.OcrApi{}
var supplierApi = &controllers.SupplierApi{}
var productApi = &controllers.ProductApi{}
var productBookApi = &controllers.ProductBookApi{}
var processApi = &controllers.ProcessApi{}
var barcodeApi = &controllers.BarcodeApi{}
var purchaseApi = &controllers.PurchaseApi{}
var waveApi = &controllers.WaveApi{}
var sortingSettingsApi = &controllers.SortingSettingsApi{}
var salesApi = &controllers.SalesApi{}
var receivingApi = &controllers.ReceivingApi{}
var inventoryApi = &controllers.InventoryApi{}
var carApi = &controllers.CarApi{}
var shopApi = &controllers.ShopApi{}
var outboundApi = &controllers.OutboundApi{}
var shippingApi = &controllers.ShippingApi{}
var goodsImportApi = &controllers.GoodsImportApi{}
var locationImportApi = &controllers.LocationImportApi{}
var outTaskApi = &controllers.OutTaskApi{}
var logisticsApi = &controllers.LogisticsApi{}
var statistApi = &controllers.StatistApi{}
var userTypeApi = &controllers.UserTypeApi{}
var splitAccountConfigApi = &controllers.SplitAccountConfigApi{}
var splitAccountDeductionLogApi = &controllers.SplitAccountDeductionLogApi{}
var configApi = &controllers.ConfigApi{}
var cancelLogisticsApi = &controllers.CancelLogisticsApi{}
func Run() {
defer func() {
if err := recover(); err != nil {
fmt.Println(err)
}
}()
router := initRouter()
if err := router.Run(":" + config.AppConfig.Server.Port); err != nil {
panic(errors.Wrapf(err, "router start fail"))
}
}
func initRouter() (r *gin.Engine) {
r = gin.Default()
// 中间件
r.Use(middleware.Cors())
r.Static("/excel", "./excel")
api := r.Group("/api")
{
// 公开接口
public := api.Group("")
{
public.POST("/login/:type", employeeApi.Login) // 登录
public.POST("/employee/reg", employeeApi.AddEmployee) // 注册
// OCR
public.POST("/ocr", ocrApi.RecognizeText) // OCR识别
public.POST("/sales-order/create", processApi.CreateSalesOrderWithDetail) // 创建销售订单
public.POST("/product/updatePrice", productApi.UpdatePrice) // 更新商品价格
public.GET("/product/getProductInventory", productApi.GetProductInventory) // 获取商品库存
public.GET("/employee/check_code", employeeApi.CheckCodeEmployee) // 验证码
public.POST("/employee/clear_code", employeeApi.ClearCodeEmployee) // 验证码
public.POST("/out-task-log/update", outTaskApi.UpdateOutTaskLog) // 更新出库任务日志
public.GET("/warehouse/mapping_list", warehouseApi.GetUserWarehouseMappings) // 获取仓库映射
// 获取仓库商品列表
public.GET("/product/distribution_list", productApi.GetDistributionProductList) // 获取分销商品列表
public.POST("/product/batchPush", productApi.BatchPushProducts) // 批量推送商品
public.POST("/product/pushToShop", productApi.PushProductToShop) // 推送商品到店铺
// 商品反射
public.GET("/product_book/list", productBookApi.List) // 获取商品反射列表
public.GET("/product_book/detail", productBookApi.Detail) // 获取商品反射详情
public.POST("/product_book/create", productBookApi.Create) // 创建商品反射
public.POST("/product_book/update", productBookApi.Update) // 更新商品反射
public.GET("/product_book/del", productBookApi.Del) // 删除商品反射
public.GET("/product/full_info", productApi.GetProductFullInfo) // 没有签名认证获取商品完整信息
public.GET("/split-account-deduction-log/list", splitAccountDeductionLogApi.GetSplitAccountDeductionLogList) // 获取分账扣钱日志列表
public.GET("/split-account-deduction-log/detail/:id", splitAccountDeductionLogApi.GetSplitAccountDeductionLogDetail) // 获取分账扣钱日志详情
public.GET("/open/split-account-deduction-log/list", splitAccountDeductionLogApi.GetOpenSplitAccountDeductionLogList)
public.POST("/split-account-deduction-log/update", splitAccountDeductionLogApi.UpdateSplitAccountDeductionLog) // 更新分账扣钱日志
public.POST("/sales-order/unlock-inventory", processApi.UnlockSalesOrderInventory) // 解锁销售订单库存
public.POST("/split-account-deduction-log/create", splitAccountDeductionLogApi.CreateSplitAccountDeductionLog) // 创建分账
public.PUT("/split-account-deduction-log/update", splitAccountDeductionLogApi.UpdateSplitAccountDeductionLog) // 更新分账
public.DELETE("/split-account-deduction-log/delete", splitAccountDeductionLogApi.DeleteSplitAccountDeductionLog) // 删除分账
public.GET("/logistics/list-c", logisticsApi.GetLogisticsList) // 获取物流模板列表
}
sign := api.Group("")
{
sign.POST("/location/sync-locations", locationApi.SyncLocations) // 同步库位
sign.POST("/goods/sync-batch", locationApi.SyncGoods) // 同步商品
sign.POST("/goods/import-from-excel", goodsImportApi.ImportFromExcel) // 从Excel导入商品
sign.POST("/location/import-from-excel", locationImportApi.ImportFromExcel) // 从Excel批量创建库位
sign.POST("/logistics/cancel", cancelLogisticsApi.CancelLogistics) // 取消物流单号
}
// 需要认证的接口
auth := api.Group("")
auth.Use(middleware.APISign())
auth.Use(middleware.JWTAuth())
{
// 管理员
auth.GET("/user/current", employeeApi.GetCurrentUser) // 获取当前用户信息
auth.POST("/logout", employeeApi.Logout) // 登出
auth.GET("/userList", employeeApi.GetUserList) // 获取用户列表
// 配置管理
auth.GET("/config/list", configApi.GetConfigList) // 获取配置列表
auth.GET("/config/detail/:id", configApi.GetConfigDetail) // 获取配置详情
auth.POST("/config/create", configApi.CreateConfig) // 创建配置
auth.PUT("/config/update", configApi.UpdateConfig) // 更新配置
auth.DELETE("/config/delete", configApi.DeleteConfig) // 删除配置
// 供应商管理
auth.GET("/supplier/list", supplierApi.GetSupplierList) // 获取供应商列表
auth.GET("/supplier/detail/:id", supplierApi.GetSupplierDetail) // 获取供应商详情
auth.POST("/supplier/create", supplierApi.CreateSupplier) // 创建供应商
auth.PUT("/supplier/update", supplierApi.UpdateSupplier) // 更新供应商
auth.DELETE("/supplier/delete", supplierApi.DeleteSupplier) // 删除供应商
// 仓库管理
auth.GET("/warehouse/list", warehouseApi.GetWarehouseList) // 获取仓库列表
auth.GET("/warehouse/detail/:id", warehouseApi.GetWarehouseDetail) // 获取仓库详情
auth.POST("/warehouse/create", warehouseApi.CreateWarehouse) // 创建仓库
auth.PUT("/warehouse/update", warehouseApi.UpdateWarehouse) // 更新仓库
auth.POST("/warehouse/delete", warehouseApi.DeleteWarehouse) // 删除仓库
// 库位管理
auth.GET("/location/list", locationApi.GetLocationList) // 获取库位列表
auth.GET("/location/all-list", locationApi.GetAllLocationList) // 获取所有库位列表仓库ID可选
auth.GET("/location/detail/:id", locationApi.GetLocationDetail) // 获取库位详情
auth.POST("/location/create", locationApi.CreateLocation) // 创建库位
auth.POST("/location/batch-generate", locationApi.BatchGenerateLocations) // 批量生成库位
auth.PUT("/location/update", locationApi.UpdateLocation) // 更新库位
auth.POST("/location/delete", locationApi.DeleteLocation) // 删除库位
auth.POST("/location/to-csv", locationApi.LocationToCsv) // 导出库位
auth.POST("/location/csv-to", locationApi.CsvToLocation) // 导入库位
// 图书相关
auth.GET("/getBookInfo", bookApi.GetBookInfo) // 获取图书信息
auth.GET("/getSuitBook", bookApi.GetSuitBook) // 获取套装书
auth.GET("/getNoIsbnBook", bookApi.GetNoIsbnBook) // 获取无书号书
auth.GET("/getProCode", bookApi.GetProCode) // 获取商品条码
auth.POST("/syncBook", bookApi.SyncBook) // 同步图书
// 商品管理
auth.GET("/product/list", productApi.GetProductList) // 商品列表
auth.GET("/product/detail", productApi.GetProductDetail) // 商品详情
auth.POST("/product/save", productApi.SaveProduct) // 保存商品
auth.POST("/product/updateNameAndImages", productApi.UpdateProductNameAndImages) // 修改商品名称和实拍图
auth.POST("/product/delete", productApi.DeleteProduct) // 删除商品
auth.POST("/product/retry-out-task", productApi.RetryOutTask) // 重新出库
auth.GET("/product/export", productApi.ExportProducts) // 导出商品
auth.POST("/product/reimport", productApi.ReimportProducts) // 导出修改后回传导入
auth.POST("/product/destroy", productApi.DestroyProduct) // 销毁商品
auth.POST("/product/restore", productApi.RestoreProduct) // 还原商品
auth.GET("/product/destroy-log/list", productApi.GetDestroyLogList) // 销毁日志列表
auth.GET("/product/destroy-log/detail", productApi.GetDestroyLogDetail) // 销毁日志详情
auth.GET("/product/shop-detail", productApi.GetShopProductDetail) // 获取商品在店铺的详情
// 条形码
auth.POST("/barcode/generate", barcodeApi.GenerateBarcode) // 生成条形码
// 采购波次流程
auth.POST("/purchase-order/create-with-wave", processApi.CreatePurchaseOrderWithWave) // 创建采购单并生成入库波次
auth.POST("/wave/release", processApi.ReleaseWave) // 发布入库波次
// 采购订单与入库管理
auth.GET("/getLocationInfo", locationApi.GetLocationInfo) // 获取库位信息
auth.POST("/receiving/bind-wave", processApi.BindWave) // 绑定入库波次
auth.GET("/receiving/wave-task/:id", processApi.GetWaveTaskInfo) // 获取入库波次任务信息
auth.POST("/receiving/submit", processApi.SubmitReceiving) // 提交入库
auth.GET("/receiving/detail/:id", processApi.GetReceivingDetail) // 获取入库单详情
// 销售订单与出库管理
auth.POST("/outbound-order/create", processApi.CreateOutboundOrder) // 创建销售订单
auth.POST("/outbound-order/change-location", processApi.ChangeLocation) // 修改出库单地出库库位
auth.POST("/wave/outbound/create", processApi.CreateOutboundWave) // 创建出库波次
auth.POST("/wave/outbound/release", processApi.ReleaseOutboundWave) // 发布出库波次
auth.POST("/outbound/bind-wave", processApi.BindOutboundWave) // 绑定出库波次
auth.GET("/outbound/wave-task/:id", processApi.GetWaveTaskInfo) // 获取出库波次任务信息
auth.POST("/outbound/submit", processApi.SubmitOutbound) // 提交出库
auth.GET("/outbound/detail/:id", processApi.GetOutboundDetail) // 获取出库单详情
auth.POST("/shipping-order/create", processApi.CreateShippingOrder) // 创建发货单
auth.POST("/shipping-order/update", processApi.UpdateShippingLogistics) // 更新发货单物流信息
auth.POST("/sales-order/cancel", processApi.CancelSalesOrder) // 取消销售订
//auth.POST("/sales-order/unlock-inventory", processApi.UnlockSalesOrderInventory) // 解锁销售订单库存
auth.POST("/wave/outbound/cancel", processApi.CancelOutboundWave) // 取消出库波次
// 盘库
auth.POST("/stock_check/adjust", processApi.AdjustInventory) // 盘库
auth.POST("/stock_check/return", processApi.ReturnInventory) // 盘库退货
// 采购订单管理
auth.GET("/purchase-order/list", purchaseApi.GetPurchaseOrderList) // 获取采购订单列表
auth.GET("/purchase-order/detail", purchaseApi.GetPurchaseOrderDetail) // 获取采购订单详情
auth.GET("/purchase-order/export-to-wdt", purchaseApi.ExportPurchaseOrderToWDT) // 导出采购单到旺店通
// 入库订单管理
auth.GET("/receiving-order/list", receivingApi.GetReceivingOrderList) // 获取入库订单列表
auth.GET("/receiving-order/detail", receivingApi.GetReceivingOrderDetail) // 获取入库订单详情
// 销售订单管理
auth.GET("/sales-order/list", salesApi.GetSalesOrderList) // 获取销售订单列表
auth.GET("/sales-order/detail", salesApi.GetSalesOrderDetail) // 获取销售订单详情
auth.GET("/sales-order/detaillist", salesApi.GetSalesOrderDetailList) // 获取销售订单详情列表
// 出库单管理
auth.GET("/outbound-order/list", outboundApi.GetOutboundOrderList) // 获取出库订单列表
auth.GET("/outbound-order/detail", outboundApi.GetOutboundOrderDetail) // 获取出库订单详情
// 发货管理
auth.GET("/shipping-order/list", shippingApi.GetShippingOrderList) // 获取发货单列表
auth.GET("/shipping-order/detail", shippingApi.GetShippingOrderDetail) // 获取发货单详情
auth.GET("/shipping-order/detaillist", shippingApi.GetShippingOrderDetailList) // 获取发货单详情列表(按状态)
// 波次任务管理
auth.GET("/wave/task/list", waveApi.GetWaveTaskList) // 获取波次任务列表
auth.GET("/wave/task/detail", waveApi.GetWaveTaskDetail) // 获取波次任务详情
auth.GET("/wave/getWaveStatusById", waveApi.GetWaveStatusById) //用波次id获取波次的状态
// 分拣设置管理
auth.GET("/sorting-settings/get", sortingSettingsApi.GetSortingSettings) // 获取分拣设置
auth.POST("/sorting-settings/save", sortingSettingsApi.SaveSortingSettings) // 保存分拣设置
// 库存管理
auth.GET("/inventory/list", inventoryApi.GetInventoryList) // 获取库存列表
auth.GET("/inventory/grouped-list", inventoryApi.GetInventoryGroupedList) // 获取按仓库库位分分组的库存列表
auth.GET("/inventory/detail", inventoryApi.GetInventoryDetail) // 获取库存详情
auth.GET("/inventory/log/list", inventoryApi.GetInventoryLogList) // 获取库存日志列表
auth.GET("/inventory/statist", inventoryApi.InventoryStatist) // 库存统计
auth.GET("/inventory/summary", inventoryApi.GetInventorySummary) // 获取库存统计信息
auth.GET("/inventory/stock-check/list", inventoryApi.GetStockCheckList) // 获取库存盘点列表
auth.GET("/inventory/stock-check/detail", inventoryApi.GetStockCheckDetail) // 获取库存盘点详情
// 小车管理
auth.GET("/car/list", carApi.GetCarList) // 获取小车列表
auth.GET("/car/detail/:id", carApi.GetCarDetail) // 获取小车详情
auth.POST("/car/create", carApi.CreateCar) // 创建小车
auth.PUT("/car/update", carApi.UpdateCar) // 更新小车
auth.DELETE("/car/delete", carApi.DeleteCar) // 删除小车
// 店铺管理
auth.GET("/shop/list", shopApi.GetShopList) // 获取店铺列表
auth.GET("/shop/detail/:id", shopApi.GetShopDetail) // 获取店铺详情
auth.POST("/shop/create", shopApi.CreateShop) // 创建店铺
auth.PUT("/shop/update", shopApi.UpdateShop) // 更新店铺
auth.DELETE("/shop/delete", shopApi.DeleteShop) // 删除店铺
//PDA配置
auth.GET("/employee/get_pda_config", employeeApi.GetEmployeeSettings) // 获取PDA配置
auth.POST("/employee/set_pda_config", employeeApi.SaveEmployeeSettings) // 保存PDA配置
// 外部任务管理
auth.GET("/out-task/list", outTaskApi.GetOutTaskList) // 获取外部任务列表
auth.GET("/out-task-log/list", outTaskApi.GetOutTaskLogList) // 获取外部任务日志列表
auth.GET("/out-task/by-shop", outTaskApi.GetOutTaskByShop) // 获取店铺外部任务列表
// 物流模板管理
auth.GET("/logistics/list", logisticsApi.GetLogisticsList) // 获取物流模板列表
auth.GET("/logistics/detail/:id", logisticsApi.GetLogisticsDetail) // 获取物流模板详情
auth.POST("/logistics/create", logisticsApi.CreateLogistics) // 创建物流模板
auth.PUT("/logistics/update", logisticsApi.UpdateLogistics) // 更新物流模板
auth.DELETE("/logistics/delete", logisticsApi.DeleteLogistics) // 删除物流模板
// 分账配置管理
auth.GET("/split-account-config/list", splitAccountConfigApi.GetSplitAccountConfigList) // 获取分账配置列表
auth.GET("/split-account-config/detail/:id", splitAccountConfigApi.GetSplitAccountConfigDetail) // 获取分账配置详情
auth.POST("/split-account-config/create", splitAccountConfigApi.CreateSplitAccountConfig) // 创建分账配置
auth.PUT("/split-account-config/update", splitAccountConfigApi.UpdateSplitAccountConfig) // 更新分账配置
auth.DELETE("/split-account-config/delete", splitAccountConfigApi.DeleteSplitAccountConfig) // 删除分账配置
/*// 分账扣钱日志管理
auth.GET("/split-account-deduction-log/list", splitAccountDeductionLogApi.GetSplitAccountDeductionLogList) // 获取分账扣钱日志列表
auth.GET("/split-account-deduction-log/detail/:id", splitAccountDeductionLogApi.GetSplitAccountDeductionLogDetail) // 获取分账扣钱日志详情
//public.GET("/open/split-account-deduction-log/list", splitAccountDeductionLogApi.GetOpenSplitAccountDeductionLogList) // 公开获取分账扣钱日志列表(无需签名认证)*/
//auth.POST("/split-account-deduction-log/create", splitAccountDeductionLogApi.CreateSplitAccountDeductionLog) // 创建分账
//auth.PUT("/split-account-deduction-log/update", splitAccountDeductionLogApi.UpdateSplitAccountDeductionLog) // 更新分账
//auth.DELETE("/split-account-deduction-log/delete", splitAccountDeductionLogApi.DeleteSplitAccountDeductionLog) // 删除分账*/
// 产品日志管理
auth.GET("/product_log/list", productApi.GetProductLogList) // 获取产品日志列表
auth.POST("/product_log/save", productApi.SaveProductLog) // 保存产品日志
auth.POST("/product_log/audit", productApi.AuditProductLog) // 审核产品日志
auth.POST("/product_log/delete", productApi.DeleteProductLog) // 删除产品日志
// 仪表盘统计
auth.GET("/dashboard/statist", statistApi.DashboardStatist) // 仪表盘统计
auth.GET("/dashboard/warehouse", statistApi.GetWarehouseStatist) // 获取仓库统计
auth.GET("/dashboard/order", statistApi.GetOrderStatist) // 获取订单统计
// 管理员接口
admin := auth.Group("/admin")
admin.Use(middleware.APISign())
admin.Use(middleware.AdminRequired())
{
// 员工管理
admin.GET("/employee/list", employeeApi.GetEmployeeList) // 获取员工列表
admin.POST("/employee/add", employeeApi.AddEmployee) // 添加员工
admin.POST("/employee/update", employeeApi.UpdatePasswordEmployee) // 更新员工密码
admin.POST("/employee/update_expire_time", employeeApi.UpdateExpireTimeEmployee) // 更新员工到期时间
admin.GET("/employee/check_expire_time", employeeApi.CheckExpireTimeEmployee) // 检查员工到期时间
admin.POST("/employee/set_level", employeeApi.SetEmployeeLevel) // 设置员工等级
admin.GET("/employee/level_config", employeeApi.GetLevelConfigList) // 获取员工等级配置列表
admin.POST("/employee/update-split-account-config", employeeApi.UpdateEmployeeSplitAccountConfigByAboutId) // 根据about_id更新员工分账配置ID
// 用户类型管理
admin.GET("/user-type/list", userTypeApi.GetUserTypeList) // 获取用户类型列表
admin.GET("/user-type/detail/:id", userTypeApi.GetUserTypeDetail) // 获取用户类型详情
admin.POST("/user-type/create", userTypeApi.CreateUserType) // 创建用户类型
admin.PUT("/user-type/update", userTypeApi.UpdateUserType) // 更新用户类型
admin.DELETE("/user-type/delete", userTypeApi.DeleteUserType) // 删除用户类型
}
}
}
return
}