daShangDao_newAdmin/src/api/modules/shopGoods.js
2025-09-23 18:43:30 +08:00

274 lines
9.1 KiB
JavaScript

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;