import instance from '../../utils/axios.js' /** * 商品管理相关接口 */ // 获取商品列表 export const getShopGoodsList = async (params = {}) => { // 构造查询参数 const queryParams = new URLSearchParams(); // 添加分页参数 if (params.pageNum) queryParams.append('pageNum', params.pageNum); if (params.pageSize) queryParams.append('pageSize', params.pageSize); // 添加搜索参数 if (params.itemNumber) queryParams.append('itemNumber', params.itemNumber); if (params.goodsName) queryParams.append('goodsName', params.goodsName); if (params.artNo) queryParams.append('artNo', params.artNo); if (params.originalArtNo) queryParams.append('originalArtNo', params.originalArtNo); if (params.isbn) queryParams.append('isbn', params.isbn); if (params.conditionCode) queryParams.append('conditionCode', params.conditionCode); if (params.IsBookPicNull) queryParams.append('IsBookPicNull', params.IsBookPicNull); if (params.minprice) queryParams.append('minprice', params.minprice); if (params.maxprice) queryParams.append('maxprice', params.maxprice); if (params.mininventory) queryParams.append('mininventory', params.mininventory); if (params.maxinventory) queryParams.append('maxinventory', params.maxinventory); if (params.deliveryAddress) queryParams.append('deliveryAddress', params.deliveryAddress); if (params.cargoAreaIds) queryParams.append('cargoAreaIds', params.cargoAreaIds); if (params.isExistIsbn) queryParams.append('isExistIsbn', params.isExistIsbn); if (params.isQueryAllGoods) queryParams.append('isQueryAllGoods', params.isQueryAllGoods); if (params.isJoinDistribution) queryParams.append('isJoinDistribution', params.isJoinDistribution); const url = `/shopGoods/list?${queryParams.toString()}`; return instance.get(url); }; // 获取商品详情 export const getShopGoodsDetail = (id) => { return instance.get(`/zhishu/shopGoods/detailShopGoods/${id}`); }; // 新增商品 export const addShopGoods = (data) => { return instance.post('/zhishu/shopGoods/add', data); }; // 修改商品 export const updateShopGoods = (data) => { return instance.post('/zhishu/shopGoods/update', data); }; // 删除商品 export const deleteShopGoods = (ids, isProSynch = true) => { const idsStr = Array.isArray(ids) ? ids.join(',') : ids; return instance.delete(`/zhishu/shopGoods/${idsStr}?isProSynch=${isProSynch}`); }; // 导出商品列表 export const exportShopGoods = (params) => { return instance.post('/zhishu/shopGoods/export', params, { responseType: 'blob' }); }; // 导入商品Excel export const importShopGoodsExcel = (file, depotId) => { const formData = new FormData(); formData.append('file', file); formData.append('depotId', depotId); return instance.post('/zhishu/shopGoods/importExcel', formData); }; // 上传商品图片 export const uploadShopGoodsImage = (file) => { const formData = new FormData(); formData.append('file', file); return instance.post('/zhishu/shopGoods/uploadImages', formData); }; // 发布商品到店铺 export const publishGoodsToShop = (data) => { return instance.post('/zhishu/shopGoods/goodsAdd', data); }; // 获取库存变更日志 export const getStockChangeLog = (id) => { return instance.get(`/zhishu/shopGoods/stockLog/${id}`); }; // 批量修改货区 export const batchUpdateCargoArea = (data) => { return instance.put('/zhishu/shopGoods/batchUpdateAre', data); }; // 根据商品条码查询商品信息 export const getProductByBarcode = (barcode) => { return instance.get(`/zhishu/shopGoods/info?barcode=${barcode}`); }; // 提交商品信息 export const submitProduct = (data) => { return instance.post('/zhishu/shopGoods/submit', data); }; // 版权页上传 export const submitFromCopyrightPage = (data) => { return instance.post('/zhishu/shopGoods/submitFromCopyrightPage', data); }; // 重复书籍检查 export const checkRepeatBook = (data) => { return instance.post('/zhishu/shopGoods/repeatBook', data); }; // 孔夫子比价搜索 export const searchKongfzBooks = (params) => { const queryParams = new URLSearchParams(); if (params.keyword) queryParams.append('keyword', params.keyword); if (params.searchType) queryParams.append('searchType', params.searchType); if (params.sortType) queryParams.append('sortType', params.sortType); if (params.conditionValue) queryParams.append('conditionValue', params.conditionValue); if (params.cookies) queryParams.append('cookies', params.cookies); if (params.publisher) queryParams.append('publisher', params.publisher); if (params.author) queryParams.append('author', params.author); return instance.get(`/zhishu/shopGoods/kongfz/search?${queryParams.toString()}`); }; // 根据书名获取作者和出版社信息 export const getAuthorAndPublisher = (keyword, cookies) => { return instance.get(`/zhishu/shopGoods/getAuthorAndPublisher?keyword=${keyword}&cookies=${cookies}`); }; // 小程序上书记录 export const getXcxShopGoods = (phoneNumber, pageNum = 1, pageSize = 10, date) => { let url = `/zhishu/shopGoods/xcx/${phoneNumber}?pageNum=${pageNum}&pageSize=${pageSize}`; if (date) url += `&date=${date}`; return instance.get(url); }; // 查询获取对应商品数据 export const getGoodsData = (code, userId, pageNum = 1, pageSize = 10, date) => { let url = `/zhishu/shopGoods/getGoodsData?code=${code}&userId=${userId}&pageNum=${pageNum}&pageSize=${pageSize}`; if (date) url += `&date=${date}`; return instance.get(url); }; // 批量移动商品位置 export const batchMoveItems = (itemIds, newLocationCode, userId) => { const params = new URLSearchParams(); itemIds.forEach(id => params.append('itemIds', id)); params.append('newLocationCode', newLocationCode); params.append('userId', userId); return instance.post('/zhishu/shopGoods/batchMoveItems', params); }; // 初始化库存到Redis export const batchInitInventoryToRedis = () => { return instance.get('/zhishu/shopGoods/batchInitInventoryToRedis'); }; // 查询库存 export const queryInventory = (shopGoodsId) => { return instance.get(`/zhishu/shopGoods/queryInventory?shopGoodsId=${shopGoodsId}`); }; // 操作库存 export const operatingInventory = (data) => { return instance.post('/zhishu/shopGoods/operatingInventory', data); }; // 拉取孔夫子/万里牛商品 export const synchronizationGoods = (shopId, shopType) => { let url = `/zhishu/shopGoods/synchronizationGoods?shopId=${shopId}`; if (shopType) url += `&shopType=${shopType}`; return instance.get(url); }; // 比对存入表格 export const goodsComparison = (data) => { return instance.post('/zhishu/shopGoods/goodsComparison', data); }; // 分批比对商品 export const batchGoodsComparison = (data) => { return instance.post('/zhishu/shopGoods/batchGoodsComparison', data); }; // 根据用户选择货号规则将商品存入数据库 export const saveShopGoodsInDb = (data) => { return instance.post('/zhishu/shopGoods/saveShopGoodsInDb', data); }; // 随机修改孔夫子货号(仅测试使用) export const randomUpdateArtNo = (userId, shopId) => { return instance.get(`/zhishu/shopGoods/randomUpdateArtNo?userId=${userId}&shopId=${shopId}`); }; // 通过货号查询仓库信息 export const getDepotIds = (artNo, userId) => { return instance.get(`/zhishu/shopGoods/getDepotIds?artNo=${artNo}&userId=${userId}`); }; // 修改商品价格 export const editShopGoodsPrice = (data) => { return instance.post('/zhishu/shopGoods/editShopGoodsPrice', data); }; // 通过平台订单Id查询库存操作日志 export const queryStockChangeLogByOrderSn = (orderSn, type) => { return instance.get(`/zhishu/shopGoods/queryStockChangeLogByOrderSn?orderSn=${orderSn}&type=${type}`); }; // 操作下架商品 export const operatingSoldOut = (data) => { return instance.post('/zhishu/shopGoods/operatingSoldOut', data); }; // 通过userId查询对应用户商品表数据条数 export const queryGoodsCountByUserId = (userId) => { return instance.get(`/zhishu/shopGoods/queryGoodsCountByUserId?userId=${userId}`); }; // 通过userId查询对应用户 export const queryUserByUserId = (userId) => { return instance.get(`/zhishu/shopGoods/queryUserIdByUserId?userId=${userId}`); }; // 批量修改店铺商品下架/改价 export const updateShopGoodsPrice = (data) => { return instance.post('/zhishu/shopGoods/updateShopGoodsPrice', data); }; // 为了向后兼容,也导出整个对象 export const shopGoodsApi = { getShopGoodsList, getShopGoodsDetail, addShopGoods, updateShopGoods, deleteShopGoods, exportShopGoods, importShopGoodsExcel, uploadShopGoodsImage, publishGoodsToShop, getStockChangeLog, batchUpdateCargoArea, getProductByBarcode, submitProduct, submitFromCopyrightPage, checkRepeatBook, searchKongfzBooks, getAuthorAndPublisher, getXcxShopGoods, getGoodsData, batchMoveItems, batchInitInventoryToRedis, queryInventory, operatingInventory, synchronizationGoods, goodsComparison, batchGoodsComparison, saveShopGoodsInDb, randomUpdateArtNo, getDepotIds, editShopGoodsPrice, queryStockChangeLogByOrderSn, operatingSoldOut, queryGoodsCountByUserId, queryUserByUserId, updateShopGoodsPrice }; export default shopGoodsApi;