From 1f54d0c0b7b1dbab91b760e5d5dba9967e64b5d1 Mon Sep 17 00:00:00 2001 From: Richie <280645618@qq.com> Date: Tue, 20 May 2025 14:31:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Epdd=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E5=88=B0=E5=95=86=E5=93=81=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdd/controller/PddGoodsController.java | 54 +++-- .../module/open/jd/domain/JdGoods.java | 2 + .../module/open/jd/domain/JdGoodsSku.java | 3 + .../module/open/pdd/domain/PddGoods.java | 8 + .../open/pdd/service/PddGoodsService.java | 1 + .../open/pdd/service/PddGoodsSkuService.java | 16 +- .../pdd/service/impl/PddGoodsServiceImpl.java | 188 ++++++++++++++++++ .../service/impl/PddGoodsSkuServiceImpl.java | 80 +++++++- .../pdd/service/impl/PddOrderServiceImpl.java | 8 +- .../service/impl/PddRefundServiceImpl.java | 8 +- vue/src/api/pdd/goods.js | 8 + vue/src/views/pdd/goods/goods_list.vue | 35 +++- 12 files changed, 369 insertions(+), 42 deletions(-) diff --git a/microservices/pdd-api/src/main/java/cn/qihangerp/api/pdd/controller/PddGoodsController.java b/microservices/pdd-api/src/main/java/cn/qihangerp/api/pdd/controller/PddGoodsController.java index 9f5b9999..4eb0b428 100644 --- a/microservices/pdd-api/src/main/java/cn/qihangerp/api/pdd/controller/PddGoodsController.java +++ b/microservices/pdd-api/src/main/java/cn/qihangerp/api/pdd/controller/PddGoodsController.java @@ -1,10 +1,7 @@ package cn.qihangerp.api.pdd.controller; -import cn.qihangerp.common.AjaxResult; -import cn.qihangerp.common.PageQuery; -import cn.qihangerp.common.PageResult; -import cn.qihangerp.common.TableDataInfo; +import cn.qihangerp.common.*; import cn.qihangerp.domain.bo.LinkErpGoodsSkuBo; import cn.qihangerp.module.goods.domain.OGoodsSku; import cn.qihangerp.module.goods.service.OGoodsSkuService; @@ -19,6 +16,9 @@ import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; +import java.util.Map; + @RequestMapping("/pdd/goods") @RestController @AllArgsConstructor @@ -34,8 +34,8 @@ public class PddGoodsController extends BaseController { } @RequestMapping(value = "/skuList", method = RequestMethod.GET) - public TableDataInfo skuList(PddGoodsBo bo, PageQuery pageQuery) { - PageResult result = skuService.queryPageList(bo, pageQuery); + public TableDataInfo skuList(PddGoodsSku bo, PageQuery pageQuery) { + PageResult result = skuService.queryPageList(bo, pageQuery); return getDataTable(result); } @@ -57,18 +57,36 @@ public class PddGoodsController extends BaseController { if(StringUtils.isBlank(bo.getErpGoodsSkuId())){ return AjaxResult.error(500,"缺少参数oGoodsSkuId"); } - OGoodsSku oGoodsSku = oGoodsSkuService.getById(bo.getErpGoodsSkuId()); - if(oGoodsSku == null) return AjaxResult.error(1500,"未找到商品库sku"); - PddGoodsSku sku = new PddGoodsSku(); - sku.setId(bo.getId().toString()); - sku.setOGoodsSkuId(bo.getErpGoodsSkuId()); - skuService.updateById(sku); - return success(); -// PddGoodsSku sku = new PddGoodsSku(); -// sku.setId(bo.getId()); -// sku.setOGoodsSkuId(Long.parseLong(bo.getErpSkuId())); -// skuService.updateById(sku); -// return success(); + ResultVo resultVo = skuService.linkErpGoodsSku(bo); + if(resultVo.getCode()==0) + return success(); + else return AjaxResult.error(resultVo.getMsg()); + } + + /** + * 推送商品到OMS + * @param ids + * @return + */ + @PostMapping("/push_oms") + @ResponseBody + public AjaxResult pushOms(@RequestBody String[] ids) { + if (ids == null || ids.length == 0) return AjaxResult.error("缺少参数"); + int success = 0; + int isExist = 0; + int fail = 0; + for (String id : ids) { + ResultVo resultVo = goodsService.pushToOms(Long.parseLong(id)); + if(resultVo.getCode()==0) success++; + else if(resultVo.getCode()==ResultVoEnum.DataExist.getIndex()) isExist++; + else fail++; + } + Map map = new HashMap<>(); + map.put("success", success); + map.put("isExist", isExist); + map.put("fail", fail); + map.put("total", success + isExist+fail); + return success(map); } } diff --git a/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoods.java b/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoods.java index 81acc6c6..2e556129 100644 --- a/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoods.java +++ b/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoods.java @@ -9,6 +9,7 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; /** @@ -142,6 +143,7 @@ public class JdGoods implements Serializable { /** * */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.##") private BigDecimal jdPrice; /** diff --git a/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoodsSku.java b/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoodsSku.java index 27f0aaa4..1ba588b3 100644 --- a/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoodsSku.java +++ b/module/jd/src/main/java/cn/qihangerp/module/open/jd/domain/JdGoodsSku.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; /** @@ -40,6 +42,7 @@ public class JdGoodsSku implements Serializable { /** * */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.##") private BigDecimal jdPrice; /** diff --git a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/domain/PddGoods.java b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/domain/PddGoods.java index 5f259cf9..81da789b 100644 --- a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/domain/PddGoods.java +++ b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/domain/PddGoods.java @@ -8,6 +8,7 @@ import java.io.Serializable; import java.util.Date; import java.util.List; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; /** @@ -63,6 +64,13 @@ public class PddGoods implements Serializable { */ private Long marketPrice; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.##") + public double getFormattedPrice() { + if(marketPrice == null){ + return 0; + } + return marketPrice / 100; + } /** * 商品创建时间的时间戳 */ diff --git a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsService.java b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsService.java index 38ea86b1..b1ee54a1 100644 --- a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsService.java +++ b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsService.java @@ -16,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface PddGoodsService extends IService { PageResult queryPageList(PddGoodsBo bo, PageQuery pageQuery); ResultVo saveGoods(Long shopId, PddGoods goods); + ResultVo pushToOms(Long taoGoodsId); } diff --git a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsSkuService.java b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsSkuService.java index f846de07..db31e6af 100644 --- a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsSkuService.java +++ b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/PddGoodsSkuService.java @@ -1,13 +1,21 @@ package cn.qihangerp.module.open.pdd.service; +import cn.qihangerp.common.PageQuery; +import cn.qihangerp.common.PageResult; +import cn.qihangerp.common.ResultVo; +import cn.qihangerp.domain.bo.LinkErpGoodsSkuBo; import cn.qihangerp.module.open.pdd.domain.PddGoodsSku; +import cn.qihangerp.module.open.pdd.domain.bo.PddGoodsBo; +import cn.qihangerp.module.open.pdd.domain.vo.PddGoodsSkuListVo; import com.baomidou.mybatisplus.extension.service.IService; + /** -* @author qilip -* @description 针对表【oms_pdd_goods_sku(pdd商品SKU表)】的数据库操作Service -* @createDate 2025-05-20 12:30:47 +* @author TW +* @description 针对表【pdd_goods_sku(pdd商品SKU表)】的数据库操作Service +* @createDate 2024-06-04 17:11:49 */ public interface PddGoodsSkuService extends IService { - + PageResult queryPageList(PddGoodsSku bo, PageQuery pageQuery); + ResultVo linkErpGoodsSku(LinkErpGoodsSkuBo bo); } diff --git a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsServiceImpl.java b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsServiceImpl.java index 0b6c53b1..f6bbcffd 100644 --- a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsServiceImpl.java +++ b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsServiceImpl.java @@ -4,8 +4,13 @@ package cn.qihangerp.module.open.pdd.service.impl; import cn.qihangerp.common.PageQuery; import cn.qihangerp.common.PageResult; import cn.qihangerp.common.ResultVo; +import cn.qihangerp.common.ResultVoEnum; import cn.qihangerp.common.utils.StringUtils; +import cn.qihangerp.module.goods.domain.OGoods; +import cn.qihangerp.module.goods.domain.OGoodsInventory; import cn.qihangerp.module.goods.domain.OGoodsSku; +import cn.qihangerp.module.goods.mapper.OGoodsInventoryMapper; +import cn.qihangerp.module.goods.mapper.OGoodsMapper; import cn.qihangerp.module.goods.mapper.OGoodsSkuMapper; import cn.qihangerp.module.open.pdd.domain.PddGoods; import cn.qihangerp.module.open.pdd.domain.PddGoodsSku; @@ -13,6 +18,8 @@ import cn.qihangerp.module.open.pdd.domain.bo.PddGoodsBo; import cn.qihangerp.module.open.pdd.mapper.PddGoodsMapper; import cn.qihangerp.module.open.pdd.mapper.PddGoodsSkuMapper; import cn.qihangerp.module.open.pdd.service.PddGoodsService; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -20,8 +27,10 @@ import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @author TW @@ -35,12 +44,19 @@ public class PddGoodsServiceImpl extends ServiceImpl private final PddGoodsMapper mapper; private final PddGoodsSkuMapper skuMapper; private final OGoodsSkuMapper goodsSkuMapper; + private final OGoodsMapper goodsMapper; + private final OGoodsInventoryMapper inventoryMapper; @Override public PageResult queryPageList(PddGoodsBo bo, PageQuery pageQuery) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(bo.getShopId()!=null,PddGoods::getShopId,bo.getShopId()); Page goodsPage = mapper.selectPage(pageQuery.build(), queryWrapper); + if(goodsPage.getRecords()!=null&&goodsPage.getRecords().size()>0){ + for(PddGoods goods : goodsPage.getRecords()){ + goods.setSkuList(skuMapper.selectList(new LambdaQueryWrapper().eq(PddGoodsSku::getGoodsId,goods.getGoodsId()))); + } + } return PageResult.build(goodsPage); } @@ -105,6 +121,178 @@ public class PddGoodsServiceImpl extends ServiceImpl } return ResultVo.success(); } + + + @Transactional(rollbackFor = Exception.class) + @Override + public ResultVo pushToOms(Long taoGoodsId) { + PddGoods shopGoods = mapper.selectById(taoGoodsId); + if(shopGoods==null) return ResultVo.error("店铺商品数据不存在"); + + List shopGoodsSkus = skuMapper.selectList(new LambdaQueryWrapper().eq(PddGoodsSku::getGoodsId, shopGoods.getGoodsId())); + if(shopGoodsSkus==null || shopGoodsSkus.isEmpty()) return ResultVo.error("店铺商品Sku数据不存在"); + + String goodsNum =""; + if(org.springframework.util.StringUtils.hasText(shopGoods.getOuterGoodsId())){ + goodsNum = shopGoods.getOuterGoodsId(); + // 用商家编码查询 + List erpGoodsList = goodsMapper.selectList(new LambdaQueryWrapper() + .eq(OGoods::getGoodsNum, goodsNum)); + if(erpGoodsList!=null && !erpGoodsList.isEmpty()){ + // 存在=======关联 + //更新shopGoods + PddGoods shopGoodsUpdate = new PddGoods(); + shopGoodsUpdate.setId(shopGoods.getId()); + shopGoodsUpdate.setErpGoodsId(erpGoodsList.get(0).getId()); + mapper.updateById(shopGoodsUpdate); + + List oGoodsSkus = goodsSkuMapper.selectList(new LambdaQueryWrapper() + .eq(OGoodsSku::getGoodsId, erpGoodsList.get(0).getId()) + ); + //更新skus + for (var sku:shopGoodsSkus){ + if(org.springframework.util.StringUtils.hasText(sku.getOuterId())){ + List oGoodsSkuList = oGoodsSkus.stream().filter(x -> x.getSkuCode().equals(sku.getOuterId())).collect(Collectors.toList()); + if(oGoodsSkuList!=null && !oGoodsSkuList.isEmpty()){ + //更新ShopGoodsSku + PddGoodsSku shopGoodsSkuUpdate = new PddGoodsSku(); + shopGoodsSkuUpdate.setId(sku.getId()); + shopGoodsSkuUpdate.setErpGoodsId(oGoodsSkuList.get(0).getGoodsId()); + shopGoodsSkuUpdate.setErpGoodsSkuId(oGoodsSkuList.get(0).getId()); + skuMapper.updateById(shopGoodsSkuUpdate); + } + } + } + + return ResultVo.success("商品已存在,更新关联"); + } + + }else { + goodsNum = shopGoods.getGoodsId().toString(); + // 用商品ID查询 + List erpGoodsList = goodsMapper.selectList(new LambdaQueryWrapper() + .eq(OGoods::getGoodsNum, goodsNum)); + if(erpGoodsList!=null && !erpGoodsList.isEmpty()){ + return ResultVo.error(ResultVoEnum.DataExist.getIndex(),"商品已存在"); + } + } + + + // 添加商品 + OGoods erpGoods = new OGoods(); + erpGoods.setName(shopGoods.getGoodsName()); + erpGoods.setImage(shopGoods.getThumbUrl()); + erpGoods.setGoodsNum(goodsNum); + erpGoods.setCategoryId(0L); + erpGoods.setRemark("PDD店铺商品同步"); + erpGoods.setStatus(1); + erpGoods.setDisable(1); + if (shopGoods.getMarketPrice() != null) { + erpGoods.setRetailPrice(BigDecimal.valueOf(shopGoods.getMarketPrice()/100)); + } + erpGoods.setCreateBy("PDD店铺商品同步"); + erpGoods.setCreateTime(new Date()); + goodsMapper.insert(erpGoods); + + //更新shopGoods + PddGoods shopGoodsUpdate = new PddGoods(); + shopGoodsUpdate.setId(shopGoods.getId()); + shopGoodsUpdate.setErpGoodsId(erpGoods.getId()); + mapper.updateById(shopGoodsUpdate); + + // 添加商品SKU + for (var sku:shopGoodsSkus){ + OGoodsSku erpGoodsSku = new OGoodsSku(); + erpGoodsSku.setGoodsId(erpGoods.getId()); + erpGoodsSku.setGoodsName(erpGoods.getName()); + erpGoodsSku.setGoodsNum(erpGoods.getGoodsNum()); + //122216927:77835123:家具结构:框架结构;1627207:25326567650:颜色分类:奶油白【进口荔枝纹头层牛皮+碳素钢木排骨架】;21433:50753444:尺寸:1500mm*2000mm + // 组合规格 + String colorLabel=""; + String colorValue=""; + String sizeLabel=""; + String sizeValue=""; + String styleLabel=""; + String styleValue=""; + //组合属性 + if(org.springframework.util.StringUtils.hasText(sku.getSpec())) { + String[] specArr = sku.getSpec().split(" "); + if(specArr.length>0){ + colorLabel="颜色分类"; + colorValue=specArr[0]; + } + if(specArr.length>1){ + sizeLabel = "尺寸"; + sizeValue=specArr[1]; + } + if(specArr.length>2){ + styleLabel="款式"; + styleValue=specArr[2]; + } + }else{ + colorValue="默认"; + colorLabel="颜色分类"; + } + + erpGoodsSku.setColorId(0L); + erpGoodsSku.setColorLabel(colorLabel); + erpGoodsSku.setColorValue(colorValue); + erpGoodsSku.setSizeId(0L); + erpGoodsSku.setSizeLabel(sizeLabel); + erpGoodsSku.setSizeValue(sizeValue); + erpGoodsSku.setStyleId(0L); + erpGoodsSku.setStyleLabel(styleLabel); + erpGoodsSku.setStyleValue(styleValue); + String skuName=""; + if(org.springframework.util.StringUtils.hasText(colorValue)){ + skuName += colorValue+" "; + } + if(org.springframework.util.StringUtils.hasText(sizeValue)){ + skuName += sizeValue+" "; + } + if(org.springframework.util.StringUtils.hasText(styleValue)){ + skuName += styleValue+" "; + } + if(!org.springframework.util.StringUtils.hasText(skuName)){ + skuName = "默认"; + } + erpGoodsSku.setSkuName(skuName); + erpGoodsSku.setSkuCode(sku.getOuterId()); + erpGoodsSku.setColorImage(erpGoods.getImage()); + + if(sku.getPrice()!=null){ + erpGoodsSku.setRetailPrice(BigDecimal.valueOf(sku.getPrice()/100)); + } + erpGoodsSku.setStatus(1); + goodsSkuMapper.insert(erpGoodsSku); + + // 初始化商品库存 + OGoodsInventory inventory = new OGoodsInventory(); + + inventory.setGoodsId(erpGoods.getId()); + inventory.setGoodsNum(erpGoods.getGoodsNum()); + inventory.setGoodsName(erpGoods.getName()); + inventory.setGoodsImg(erpGoods.getImage()); + inventory.setSkuId(erpGoodsSku.getId()); + inventory.setSkuCode(erpGoodsSku.getSkuCode()); + inventory.setSkuName(erpGoodsSku.getSkuName()); + inventory.setQuantity(0L); + inventory.setIsDelete(0); + inventory.setCreateTime(new Date()); + inventory.setCreateBy("同步店铺商品初始化商品 sku 库存"); + inventoryMapper.insert(inventory); + + //更新ShopGoodsSku + PddGoodsSku shopGoodsSkuUpdate = new PddGoodsSku(); + shopGoodsSkuUpdate.setId(sku.getId()); + shopGoodsSkuUpdate.setErpGoodsId(erpGoods.getId()); + shopGoodsSkuUpdate.setErpGoodsSkuId(erpGoodsSku.getId()); + skuMapper.updateById(shopGoodsSkuUpdate); + + } + + return ResultVo.success(); + } } diff --git a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsSkuServiceImpl.java b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsSkuServiceImpl.java index 1eb8992e..0a0704f2 100644 --- a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsSkuServiceImpl.java +++ b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddGoodsSkuServiceImpl.java @@ -1,20 +1,88 @@ package cn.qihangerp.module.open.pdd.service.impl; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.qihangerp.common.PageQuery; +import cn.qihangerp.common.PageResult; +import cn.qihangerp.common.ResultVo; +import cn.qihangerp.domain.bo.LinkErpGoodsSkuBo; +import cn.qihangerp.module.goods.domain.OGoods; +import cn.qihangerp.module.goods.domain.OGoodsSku; +import cn.qihangerp.module.goods.service.OGoodsService; +import cn.qihangerp.module.goods.service.OGoodsSkuService; +import cn.qihangerp.module.open.pdd.domain.PddGoods; import cn.qihangerp.module.open.pdd.domain.PddGoodsSku; -import cn.qihangerp.module.open.pdd.service.PddGoodsSkuService; +import cn.qihangerp.module.open.pdd.domain.bo.PddGoodsBo; +import cn.qihangerp.module.open.pdd.domain.vo.PddGoodsSkuListVo; +import cn.qihangerp.module.open.pdd.mapper.PddGoodsMapper; import cn.qihangerp.module.open.pdd.mapper.PddGoodsSkuMapper; +import cn.qihangerp.module.open.pdd.service.PddGoodsSkuService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.List; /** -* @author qilip -* @description 针对表【oms_pdd_goods_sku(pdd商品SKU表)】的数据库操作Service实现 -* @createDate 2025-05-20 12:30:47 +* @author TW +* @description 针对表【pdd_goods_sku(pdd商品SKU表)】的数据库操作Service实现 +* @createDate 2024-06-04 17:11:49 */ +@AllArgsConstructor @Service public class PddGoodsSkuServiceImpl extends ServiceImpl - implements PddGoodsSkuService{ + implements PddGoodsSkuService { + private final PddGoodsSkuMapper mapper; + private final PddGoodsMapper pddGoodsMapper; + private final OGoodsSkuService oGoodsSkuService; + private final OGoodsService oGoodsService; + @Override + public PageResult queryPageList(PddGoodsSku bo, PageQuery pageQuery) { + LambdaQueryWrapper ew = new LambdaQueryWrapper() + .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.getOuterGoodsId()),PddGoodsSku::getOuterGoodsId,bo.getOuterGoodsId()) + .eq(StringUtils.hasText(bo.getOuterId()),PddGoodsSku::getOuterId,bo.getOuterId()) + ; + IPage result = mapper.selectPage(pageQuery.build(), ew); + return PageResult.build(result); + } + @Transactional(rollbackFor = Exception.class) + @Override + public ResultVo linkErpGoodsSku(LinkErpGoodsSkuBo bo) { + OGoodsSku oGoodsSku = oGoodsSkuService.getById(bo.getErpGoodsSkuId()); + if(oGoodsSku == null) return ResultVo.error("未找到系统商品sku"); + + OGoods oGoods=oGoodsService.getById(oGoodsSku.getGoodsId()); + if(oGoods == null){ + return ResultVo.error("未找到系统商品"); + } + + PddGoodsSku taoGoodsSku = mapper.selectById(bo.getId()); + if(taoGoodsSku == null) { + return ResultVo.error("PDD商品sku数据不存在"); + } + List jdGoods = pddGoodsMapper.selectList(new LambdaQueryWrapper().eq(PddGoods::getGoodsId, taoGoodsSku.getGoodsId())); + if(jdGoods==null||jdGoods.size()==0){ + return ResultVo.error("PDD商品数据不存在"); + } + + PddGoodsSku sku = new PddGoodsSku(); + sku.setId(bo.getId()); + sku.setErpGoodsId(oGoodsSku.getGoodsId()); + sku.setErpGoodsSkuId(oGoodsSku.getId()); + mapper.updateById(sku); + + PddGoods goodsUp=new PddGoods(); + goodsUp.setId(jdGoods.get(0).getId()); + goodsUp.setErpGoodsId(oGoodsSku.getGoodsId()); + pddGoodsMapper.updateById(goodsUp); + return ResultVo.success(); + } } diff --git a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddOrderServiceImpl.java b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddOrderServiceImpl.java index 6f720455..aec14315 100644 --- a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddOrderServiceImpl.java +++ b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddOrderServiceImpl.java @@ -185,8 +185,8 @@ public class PddOrderServiceImpl extends ServiceImpl for (var item : order.getItems()) { List pddGoodsSku = goodsSkuMapper.selectList(new LambdaQueryWrapper().eq(PddGoodsSku::getSkuId, item.getSkuId())); if (pddGoodsSku != null && !pddGoodsSku.isEmpty()) { - item.setOGoodsId(pddGoodsSku.get(0).getOGoodsId()); - item.setOGoodsSkuId(pddGoodsSku.get(0).getOGoodsSkuId()); + item.setOGoodsId(pddGoodsSku.get(0).getErpGoodsId().toString()); + item.setOGoodsSkuId(pddGoodsSku.get(0).getErpGoodsSkuId().toString()); } item.setOrderSn(order.getOrderSn()); itemMapper.insert(item); @@ -201,8 +201,8 @@ public class PddOrderServiceImpl extends ServiceImpl for (var item : order.getItems()) { List pddGoodsSku = goodsSkuMapper.selectList(new LambdaQueryWrapper().eq(PddGoodsSku::getSkuId, item.getSkuId())); if (pddGoodsSku != null && !pddGoodsSku.isEmpty()) { - item.setOGoodsId(pddGoodsSku.get(0).getOGoodsId()); - item.setOGoodsSkuId(pddGoodsSku.get(0).getOGoodsSkuId()); + item.setOGoodsId(pddGoodsSku.get(0).getErpGoodsId().toString()); + item.setOGoodsSkuId(pddGoodsSku.get(0).getErpGoodsSkuId().toString()); } item.setOrderSn(order.getOrderSn()); itemMapper.insert(item); diff --git a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddRefundServiceImpl.java b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddRefundServiceImpl.java index 64d8c552..07c0c239 100644 --- a/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddRefundServiceImpl.java +++ b/module/pdd/src/main/java/cn/qihangerp/module/open/pdd/service/impl/PddRefundServiceImpl.java @@ -66,16 +66,16 @@ public class PddRefundServiceImpl extends ServiceImpl pddGoodsSku = goodsSkuMapper.selectList(new LambdaQueryWrapper().eq(PddGoodsSku::getSkuId, refund.getSkuId())); if (pddGoodsSku != null && !pddGoodsSku.isEmpty()) { - refund.setOGoodsId(pddGoodsSku.get(0).getOGoodsId()); - refund.setOGoodsSkuId(pddGoodsSku.get(0).getOGoodsSkuId()); + refund.setOGoodsId(pddGoodsSku.get(0).getErpGoodsId().toString()); + refund.setOGoodsSkuId(pddGoodsSku.get(0).getErpGoodsSkuId().toString()); } return ResultVo.error(ResultVoEnum.DataExist, "退款已经存在,更新成功"); }else{ List pddGoodsSku = goodsSkuMapper.selectList(new LambdaQueryWrapper().eq(PddGoodsSku::getSkuId, refund.getSkuId())); if (pddGoodsSku != null && !pddGoodsSku.isEmpty()) { - refund.setOGoodsId(pddGoodsSku.get(0).getOGoodsId()); - refund.setOGoodsSkuId(pddGoodsSku.get(0).getOGoodsSkuId()); + refund.setOGoodsId(pddGoodsSku.get(0).getErpGoodsId().toString()); + refund.setOGoodsSkuId(pddGoodsSku.get(0).getErpGoodsSkuId().toString()); } refund.setShopId(shopId); refund.setCreateTime(new Date()); diff --git a/vue/src/api/pdd/goods.js b/vue/src/api/pdd/goods.js index 5ce268c3..c7cd1c50 100644 --- a/vue/src/api/pdd/goods.js +++ b/vue/src/api/pdd/goods.js @@ -43,3 +43,11 @@ export function pullGoodsList(data) { data: data }) } +//推送商品到商品库 +export function pushToOms(data) { + return request({ + url: '/api/open-api/pdd/goods/push_oms', + method: 'post', + data: data + }) +} diff --git a/vue/src/views/pdd/goods/goods_list.vue b/vue/src/views/pdd/goods/goods_list.vue index 99619fc2..03174384 100644 --- a/vue/src/views/pdd/goods/goods_list.vue +++ b/vue/src/views/pdd/goods/goods_list.vue @@ -65,7 +65,7 @@ - + @@ -75,7 +75,8 @@ - + + - - + +