diff --git a/core/common/src/main/java/cn/qihangerp/common/ResultVo.java b/core/common/src/main/java/cn/qihangerp/common/ResultVo.java index d2d68444..1e8e6667 100644 --- a/core/common/src/main/java/cn/qihangerp/common/ResultVo.java +++ b/core/common/src/main/java/cn/qihangerp/common/ResultVo.java @@ -91,7 +91,13 @@ public class ResultVo { result.setMsg(msg); return result; } - + public static ResultVo error( String msg) + { + ResultVo result = new ResultVo<>(); + result.setCode(ResultVoEnum.Fail.getIndex()); + result.setMsg(msg); + return result; + } public static ResultVo error(int code, String msg) { ResultVo result = new ResultVo<>(); diff --git a/core/common/src/main/java/cn/qihangerp/common/bo/LinkErpGoodsSkuBo.java b/core/common/src/main/java/cn/qihangerp/common/bo/LinkErpGoodsSkuBo.java index a9ee8259..28da6a71 100644 --- a/core/common/src/main/java/cn/qihangerp/common/bo/LinkErpGoodsSkuBo.java +++ b/core/common/src/main/java/cn/qihangerp/common/bo/LinkErpGoodsSkuBo.java @@ -1,10 +1,10 @@ -package cn.qihangerp.common.bo; - -import lombok.Data; - -@Data -public class LinkErpGoodsSkuBo { - private String id;//主键ID - private String erpGoodsSkuId;//ERP商品SkuId - -} +//package cn.qihangerp.common.bo; +// +//import lombok.Data; +// +//@Data +//public class LinkErpGoodsSkuBo { +// private String id;//主键ID +// private String erpGoodsSkuId;//ERP商品SkuId +// +//} diff --git a/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoGoodsController.java b/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoGoodsController.java index d4fdab84..fad92f7f 100644 --- a/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoGoodsController.java +++ b/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoGoodsController.java @@ -1,10 +1,7 @@ package cn.qihangerp.api.tao.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; @@ -26,6 +23,13 @@ public class TaoGoodsController extends BaseController { private final TaoGoodsService goodsService; private final TaoGoodsSkuService skuService; private final OGoodsSkuService oGoodsSkuService; + + /** + * 商品列表 + * @param bo + * @param pageQuery + * @return + */ @RequestMapping(value = "/list", method = RequestMethod.GET) public TableDataInfo goodsList(TaoGoodsBo bo, PageQuery pageQuery) { PageResult result = goodsService.queryPageList(bo, pageQuery); @@ -57,13 +61,11 @@ public class TaoGoodsController 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"); - TaoGoodsSku sku = new TaoGoodsSku(); - sku.setId(bo.getId()); - sku.setOGoodsSkuId(bo.getErpGoodsSkuId()); - skuService.updateById(sku); - return success(); + + ResultVo resultVo = skuService.linkErpGoodsSku(bo); + if(resultVo.getCode()==0) + return success(); + else return AjaxResult.error(resultVo.getMsg()); } } diff --git a/module/tao/src/main/java/cn/qihangerp/module/open/tao/domain/TaoGoods.java b/module/tao/src/main/java/cn/qihangerp/module/open/tao/domain/TaoGoods.java index ba75a066..11f4116a 100644 --- a/module/tao/src/main/java/cn/qihangerp/module/open/tao/domain/TaoGoods.java +++ b/module/tao/src/main/java/cn/qihangerp/module/open/tao/domain/TaoGoods.java @@ -166,7 +166,7 @@ public class TaoGoods implements Serializable { /** * erp商品id */ - private Integer erpGoodsId; + private String erpGoodsId; /** * 创建时间 @@ -609,14 +609,14 @@ public class TaoGoods implements Serializable { /** * erp商品id */ - public Integer getErpGoodsId() { + public String getErpGoodsId() { return erpGoodsId; } /** * erp商品id */ - public void setErpGoodsId(Integer erpGoodsId) { + public void setErpGoodsId(String erpGoodsId) { this.erpGoodsId = erpGoodsId; } diff --git a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoGoodsSkuService.java b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoGoodsSkuService.java index 1bfa58c1..f188f9bf 100644 --- a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoGoodsSkuService.java +++ b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoGoodsSkuService.java @@ -2,6 +2,8 @@ package cn.qihangerp.module.open.tao.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.tao.domain.TaoGoodsSku; import cn.qihangerp.module.open.tao.domain.bo.TaoGoodsBo; import cn.qihangerp.module.open.tao.domain.vo.TaoGoodsSkuListVo; @@ -15,4 +17,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface TaoGoodsSkuService extends IService { PageResult queryPageList(TaoGoodsBo bo, PageQuery pageQuery); + + ResultVo linkErpGoodsSku(LinkErpGoodsSkuBo bo); } diff --git a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsServiceImpl.java b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsServiceImpl.java index d3139fb7..a719eeed 100644 --- a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsServiceImpl.java +++ b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsServiceImpl.java @@ -43,6 +43,11 @@ public class TaoGoodsServiceImpl extends ServiceImpl .eq(bo.getShopId()!=null,TaoGoods::getShopId,bo.getShopId()); Page taoGoodsPage = mapper.selectPage(pageQuery.build(), queryWrapper); + if(taoGoodsPage.getRecords()!=null && taoGoodsPage.getRecords().size()>0){ + for(TaoGoods taoGoods : taoGoodsPage.getRecords()){ + taoGoods.setSkus(skuMapper.selectList(new LambdaQueryWrapper().eq(TaoGoodsSku::getTaoGoodsId,taoGoods.getId()))); + } + } return PageResult.build(taoGoodsPage); } diff --git a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsSkuServiceImpl.java b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsSkuServiceImpl.java index d352df96..dd6ddc16 100644 --- a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsSkuServiceImpl.java +++ b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoGoodsSkuServiceImpl.java @@ -1,16 +1,24 @@ package cn.qihangerp.module.open.tao.service.impl; +import cn.qihangerp.common.AjaxResult; 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.OGoodsSku; +import cn.qihangerp.module.goods.service.OGoodsSkuService; +import cn.qihangerp.module.open.tao.domain.TaoGoods; import cn.qihangerp.module.open.tao.domain.TaoGoodsSku; import cn.qihangerp.module.open.tao.domain.bo.TaoGoodsBo; import cn.qihangerp.module.open.tao.domain.vo.TaoGoodsSkuListVo; +import cn.qihangerp.module.open.tao.mapper.TaoGoodsMapper; import cn.qihangerp.module.open.tao.mapper.TaoGoodsSkuMapper; import cn.qihangerp.module.open.tao.service.TaoGoodsSkuService; 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; /** * @author TW @@ -22,12 +30,41 @@ import org.springframework.stereotype.Service; public class TaoGoodsSkuServiceImpl extends ServiceImpl implements TaoGoodsSkuService { private final TaoGoodsSkuMapper mapper; + private final TaoGoodsMapper goodsMapper; + private final OGoodsSkuService oGoodsSkuService; @Override public PageResult queryPageList(TaoGoodsBo bo, PageQuery pageQuery) { IPage result = mapper.selectSkuPageList(pageQuery.build(), bo.getShopId(),bo.getNumIid(),bo.getSkuId(),bo.getOuterId(), bo.getHasLink()); return PageResult.build(result); } + + /** + * 手动绑定erpGoodsSku + * @param + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public ResultVo linkErpGoodsSku(LinkErpGoodsSkuBo bo) { + OGoodsSku oGoodsSku = oGoodsSkuService.getById(bo.getErpGoodsSkuId()); + if(oGoodsSku == null) return ResultVo.error("未找到系统商品sku"); + TaoGoodsSku taoGoodsSku = mapper.selectById(bo.getId()); + if(taoGoodsSku == null) { + return ResultVo.error("Tao商品sku数据不存在"); + } + TaoGoodsSku sku = new TaoGoodsSku(); + sku.setId(bo.getId()); + sku.setOGoodsId(oGoodsSku.getGoodsId()); + sku.setOGoodsSkuId(bo.getErpGoodsSkuId()); + mapper.updateById(sku); + + TaoGoods goodsUp=new TaoGoods(); + goodsUp.setId(taoGoodsSku.getTaoGoodsId()); + goodsUp.setErpGoodsId(oGoodsSku.getGoodsId()); + goodsMapper.updateById(goodsUp); + return ResultVo.success(); + } } diff --git a/update_log.md b/update_log.md new file mode 100644 index 00000000..e4f9087f --- /dev/null +++ b/update_log.md @@ -0,0 +1,3 @@ +# 更新日志 +#### 2025-05-19 ++ 店铺商品-tao:拆分商品和SKU列表 \ No newline at end of file diff --git a/vue/src/api/tao/goods.js b/vue/src/api/tao/goods.js index 12e2fe84..732d0cdb 100644 --- a/vue/src/api/tao/goods.js +++ b/vue/src/api/tao/goods.js @@ -1,6 +1,16 @@ import request from '@/utils/request' -// 查询淘宝订单列表 + +// 查询淘宝商品列表 +export function listGoods(query) { + return request({ + url: '/api/open-api/tao/goods/list', + method: 'get', + params: query + }) +} + +// 查询淘宝商品sku列表 export function listGoodsSku(query) { return request({ url: '/api/open-api/tao/goods/skuList', diff --git a/vue/src/utils/zhijian.js b/vue/src/utils/zhijian.js index 8d7cafc7..0730b093 100644 --- a/vue/src/utils/zhijian.js +++ b/vue/src/utils/zhijian.js @@ -231,3 +231,8 @@ export function tansParams(params) { export function blobValidate(data) { return data.type !== 'application/json' } + + +export function amountFormatter(row, column, cellValue, index) { + return '¥' + parseFloat(cellValue).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'); +} diff --git a/vue/src/views/index.vue b/vue/src/views/index.vue index 0b5141e5..a7731dfb 100644 --- a/vue/src/views/index.vue +++ b/vue/src/views/index.vue @@ -110,6 +110,7 @@ export default { orderCount:302, shopCount:8 } + } }, mounted() { diff --git a/vue/src/views/tao/goods/goods_list.vue b/vue/src/views/tao/goods/goods_list.vue new file mode 100644 index 00000000..8c8d5cd5 --- /dev/null +++ b/vue/src/views/tao/goods/goods_list.vue @@ -0,0 +1,352 @@ + + + diff --git a/vue/src/views/tao/goods/index.vue b/vue/src/views/tao/goods/index.vue index df9b7cc2..4ef10c09 100644 --- a/vue/src/views/tao/goods/index.vue +++ b/vue/src/views/tao/goods/index.vue @@ -1,300 +1,42 @@ diff --git a/vue/src/views/tao/goods/sku_list.vue b/vue/src/views/tao/goods/sku_list.vue new file mode 100644 index 00000000..de199f59 --- /dev/null +++ b/vue/src/views/tao/goods/sku_list.vue @@ -0,0 +1,302 @@ + + +