优化dou商品

This commit is contained in:
启航 2026-01-24 20:04:54 +08:00
parent 1b0abc44a8
commit b5a94c8af1
9 changed files with 64 additions and 37 deletions

View File

@ -103,6 +103,7 @@ public class DouGoodsApiController {
for (var s : goods.getSkuList()) {
DouGoodsSku sku = new DouGoodsSku();
BeanUtils.copyProperties(s, sku);
sku.setProductId(goods.getProductId().toString());
sku.setShopId(params.getShopId());
sku.setName(douGoods.getName());
sku.setImg(douGoods.getImg());

View File

@ -2,6 +2,7 @@ package cn.qihangerp.oms.dou.controller;
import cn.qihangerp.common.*;
import cn.qihangerp.model.bo.DouGoodsSkuBo;
import cn.qihangerp.model.bo.LinkErpGoodsSkuBo;
import cn.qihangerp.module.service.OGoodsSkuService;
import cn.qihangerp.model.entity.DouGoods;
@ -32,7 +33,7 @@ public class DouGoodsController extends BaseController {
}
@RequestMapping(value = "/skuList", method = RequestMethod.GET)
public TableDataInfo skuList(DouGoodsBo bo, PageQuery pageQuery) {
public TableDataInfo skuList(DouGoodsSkuBo bo, PageQuery pageQuery) {
PageResult<DouGoodsSku> result = skuService.queryPageList(bo, pageQuery);
return getDataTable(result);

View File

@ -0,0 +1,18 @@
package cn.qihangerp.model.bo;
import lombok.Data;
import java.io.Serializable;
@Data
public class DouGoodsSkuBo implements Serializable {
/**
* 商品数字id
*/
private Long productId;
private Long skuId;
private String title;
private String code;
private Integer shopId;
private Integer hasLink;//是否关联
}

View File

@ -3,6 +3,7 @@ package cn.qihangerp.module.service;
import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.PageResult;
import cn.qihangerp.common.ResultVo;
import cn.qihangerp.model.bo.DouGoodsSkuBo;
import cn.qihangerp.model.bo.LinkErpGoodsSkuBo;
import cn.qihangerp.model.entity.DouGoodsSku;
import cn.qihangerp.model.bo.DouGoodsBo;
@ -15,6 +16,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @createDate 2024-05-31 17:23:21
*/
public interface DouGoodsSkuService extends IService<DouGoodsSku> {
PageResult<DouGoodsSku> queryPageList(DouGoodsBo bo, PageQuery pageQuery);
PageResult<DouGoodsSku> queryPageList(DouGoodsSkuBo bo, PageQuery pageQuery);
ResultVo linkErpGoodsSku(LinkErpGoodsSkuBo bo);
}

View File

@ -48,7 +48,7 @@ public class DouGoodsServiceImpl extends ServiceImpl<DouGoodsMapper, DouGoods>
public PageResult<DouGoods> queryPageList(DouGoodsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<DouGoods> queryWrapper = new LambdaQueryWrapper<DouGoods>()
.eq(bo.getShopId()!=null,DouGoods::getShopId,bo.getShopId())
.eq(bo.getProductId()!=null,DouGoods::getProductId,bo.getProductId())
;
Page<DouGoods> goodsPage = mapper.selectPage(pageQuery.build(), queryWrapper);
@ -97,7 +97,7 @@ public class DouGoodsServiceImpl extends ServiceImpl<DouGoodsMapper, DouGoods>
item.setErpGoodsSkuId(oGoodsSkus.get(0).getId().toString());
}
}
List<DouGoodsSku> pddGoodsSkus = skuMapper.selectList(new LambdaQueryWrapper<DouGoodsSku>().eq(DouGoodsSku::getSpecId, item.getSpecId()));
List<DouGoodsSku> pddGoodsSkus = skuMapper.selectList(new LambdaQueryWrapper<DouGoodsSku>().eq(DouGoodsSku::getId, item.getId()));
if(pddGoodsSkus!=null && !pddGoodsSkus.isEmpty()){
item.setModifyTime(new Date());
skuMapper.updateById(item);

View File

@ -3,6 +3,7 @@ package cn.qihangerp.module.service.impl;
import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.PageResult;
import cn.qihangerp.common.ResultVo;
import cn.qihangerp.model.bo.DouGoodsSkuBo;
import cn.qihangerp.model.bo.LinkErpGoodsSkuBo;
import cn.qihangerp.model.entity.OGoods;
import cn.qihangerp.model.entity.OGoodsSku;
@ -39,7 +40,7 @@ public class DouGoodsSkuServiceImpl extends ServiceImpl<DouGoodsSkuMapper, DouGo
private final OGoodsService oGoodsService;
@Override
public PageResult<DouGoodsSku> queryPageList(DouGoodsBo bo, PageQuery pageQuery) {
public PageResult<DouGoodsSku> queryPageList(DouGoodsSkuBo bo, PageQuery pageQuery) {
if(StringUtils.hasText(bo.getCode())){
bo.setCode(bo.getCode().trim());
}

View File

@ -42,7 +42,7 @@ public class PddGoodsSkuServiceImpl extends ServiceImpl<PddGoodsSkuMapper, PddGo
LambdaQueryWrapper<PddGoodsSku> ew = new LambdaQueryWrapper<PddGoodsSku>()
.eq(bo.getShopId()!=null,PddGoodsSku::getShopId,bo.getShopId())
.eq(bo.getGoodsId()!=null,PddGoodsSku::getGoodsId,bo.getGoodsId())
.eq(bo.getSkuId()!=null,PddGoodsSku::getSkuId,bo.getSkuId())
.eq(StringUtils.hasText(bo.getSkuId()),PddGoodsSku::getSkuId,bo.getSkuId())
.eq(bo.getErpSkuId()!=null,PddGoodsSku::getErpGoodsSkuId,bo.getErpSkuId())
.eq(StringUtils.hasText(bo.getOuterId()),PddGoodsSku::getOuterId,bo.getOuterId())
.eq(bo.getIsSkuOnsale()!=null,PddGoodsSku::getIsSkuOnsale,bo.getIsSkuOnsale())

View File

@ -1,30 +1,30 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="108px">
<el-form-item label="平台SkuId" prop="skuId">
<el-form-item label="平台商品ID" prop="productId">
<el-input
v-model="queryParams.skuId"
placeholder="请输入平台SkuId"
v-model="queryParams.productId"
placeholder="请输入平台商品ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="商家sku编码" prop="outerId">
<el-form-item label="商家商品编码" prop="outerProductId">
<el-input
v-model="queryParams.outerId"
placeholder="请输入商家sku编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="ERP skuId" prop="erpSkuId">
<el-input
v-model="queryParams.erpSkuId"
placeholder="请输入ERP skuId"
v-model="queryParams.outerProductId"
placeholder="请输入商家商品编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="ERP skuId" prop="erpSkuId">-->
<!-- <el-input-->
<!-- v-model="queryParams.erpSkuId"-->
<!-- placeholder="请输入ERP skuId"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="店铺" prop="shopId">
<el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<el-option
@ -68,13 +68,13 @@
<el-table v-loading="loading" :data="goodsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="ID" align="center" prop="id" />-->
<el-table-column label="平台商品ID" align="center" prop="productId" />
<el-table-column label="图片" align="center" prop="logo" width="100">
<el-table-column label="平台商品ID" align="center" prop="productId" width="200"/>
<el-table-column label="图片" align="center" prop="img" width="70">
<template slot-scope="scope">
<image-preview :src="scope.row.img" :width="50" :height="50"/>
</template>
</el-table-column>
<el-table-column label="商品名称" align="center" prop="name" />
<el-table-column label="商品名称" align="left" prop="name" />
<el-table-column label="商家编码" align="center" prop="outerProductId" />
<el-table-column label="价格" align="center" prop="formattedPrice" >
</el-table-column>
@ -117,11 +117,12 @@
/>
<el-dialog title="Sku List" :visible.sync="skuOpen" width="1200px" append-to-body>
<el-table v-loading="loading" :data="skuList">
<el-table v-loading="loading" :data="skuList" :row-class-name="rowIndex">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="SkuId" align="center" prop="id" width="200"/>
<el-table-column label="SKU编码" align="left" prop="code" />
<el-table-column label="规格Id" align="center" prop="specId" />
<el-table-column label="商品名称" align="center" prop="name" />
<el-table-column label="图片" align="center" prop="logo" width="100">
<template slot-scope="scope">
@ -151,16 +152,16 @@
<!-- <el-tag size="small" v-if="scope.row.status === 2">已下架</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-share"-->
<!-- @click="handleLink(scope.row)"-->
<!-- >关联ERP</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-share"
@click="handleLink(scope.row)"
>关联ERP</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
@ -187,6 +188,7 @@ import {listShop} from "@/api/shop/shop";
import {pullGoodsList, listGoods, getGoodsSku, linkErpGoodsSkuId,pushToOms} from "@/api/dou/goods";
import {MessageBox} from "element-ui";
import {isRelogin} from "@/utils/request";
import {rowIndex} from "@/utils/zhijian";
export default {
name: "GoodsListDou",
@ -218,7 +220,9 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
name: null
name: null,
productId: null,
outerProductId: null,
},
//
form: {},
@ -248,6 +252,7 @@ export default {
this.loading = false;
},
methods: {
rowIndex,
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)

View File

@ -247,7 +247,7 @@
<el-form-item label="商品图片" prop="image">
<image-upload v-model="form.image"/>
</el-form-item>
<el-form-item label="商品编号" prop="number">
<el-form-item label="商品编号" prop="goodsNum">
<el-input v-model="form.goodsNum" placeholder="请输入商品编号" />
</el-form-item>
<!-- <el-form-item label="单位名称" prop="unitName">-->