From 3602fce772a496406476364f7dbdff6f38e80e14 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期日, 28 四月 2019 15:58:11 +0800 Subject: [PATCH] 淘宝分类 映射 系统分类 --- fanli/src/main/java/com/yeshi/fanli/service/impl/goods/TaoBaoClassServiceImpl.java | 132 ++++++++++++++++++++++++++++++++----------- 1 files changed, 98 insertions(+), 34 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/TaoBaoClassServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/TaoBaoClassServiceImpl.java index 1702ecc..916ea84 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/TaoBaoClassServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/TaoBaoClassServiceImpl.java @@ -1,13 +1,18 @@ package com.yeshi.fanli.service.impl.goods; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.TaoBaoClassMapper; +import com.yeshi.fanli.dao.mybatis.TaoBaoClassRelationMapper; import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass; +import com.yeshi.fanli.entity.bus.clazz.TaoBaoClassRelation; import com.yeshi.fanli.service.inter.goods.TaoBaoClassService; import com.yeshi.fanli.util.StringUtil; @@ -16,36 +21,10 @@ @Resource private TaoBaoClassMapper taoBaoClassMapper; + + @Resource + private TaoBaoClassRelationMapper taoBaoClassRelationMapper; - @Override - public int deleteByPrimaryKey(Long id) { - return taoBaoClassMapper.deleteByPrimaryKey(id); - } - - @Override - public int insert(TaoBaoClass record) { - return taoBaoClassMapper.insert(record); - } - - @Override - public int insertSelective(TaoBaoClass record) { - return taoBaoClassMapper.insertSelective(record); - } - - @Override - public TaoBaoClass selectByPrimaryKey(Long id) { - return taoBaoClassMapper.selectByPrimaryKey(id); - } - - @Override - public int updateByPrimaryKeySelective(TaoBaoClass record) { - return taoBaoClassMapper.updateByPrimaryKeySelective(record); - } - - @Override - public int updateByPrimaryKey(TaoBaoClass record) { - return taoBaoClassMapper.updateByPrimaryKey(record); - } @Override public List<TaoBaoClass> listBySystemCid(long start, int count, Long systemCid) { @@ -54,8 +33,6 @@ @Override public String getTaoBaoCatIds(Long classId) { - - List<TaoBaoClass> listCatIds = listBySystemCid(0, 10, classId); if (listCatIds == null || listCatIds.size() == 0) { return null; @@ -68,16 +45,103 @@ if (categoryId == null ) { continue; } - taobaoCatIds += categoryId + ","; } - if (!StringUtil.isNullOrEmpty(taobaoCatIds)){ taobaoCatIds = taobaoCatIds.substring(0, taobaoCatIds.length()-1); } - return taobaoCatIds; } + + @Override + public TaoBaoClass getByCategoryId(Integer categoryId) { + return taoBaoClassMapper.getByCategoryId(categoryId); + } + + + @Override + @Transactional + public void save(Long classId, String taobaoCids) { + if (StringUtil.isNullOrEmpty(taobaoCids) || "null".equalsIgnoreCase(taobaoCids)) { + return; + } + + List<Long> listId = new ArrayList<Long>(); + List<TaoBaoClass> listExist = taoBaoClassMapper.listBySystemCid(0, Integer.MAX_VALUE, classId); + if (listExist != null && listExist.size() > 0) { + for (TaoBaoClass taoBaoClass: listExist) { + listId.add(taoBaoClass.getId()); + } + } + + + String[] array = taobaoCids.split(","); + for (String info: array) { + if(StringUtil.isNullOrEmpty(info)) { + continue; + } + + try { + String[] taobaoArray = info.split("-"); + + Integer categoryId = Integer.parseInt(taobaoArray[1]); + if (listExist != null && listExist.size() > 0) { + for (int i =0; i< listExist.size(); i++) { + TaoBaoClass taoBaoClass = listExist.get(i); + Integer categoryId2 = taoBaoClass.getCategoryId(); + if (categoryId == categoryId2 || categoryId.equals(categoryId2)) { + if (listId.size() > 0) { + listId.remove(taoBaoClass.getId()); + listExist.remove(i); + i--; + } + } + } + } + + TaoBaoClass tbClass = taoBaoClassMapper.getByCategoryId(Integer.parseInt(taobaoArray[1])); + if (tbClass == null) { + tbClass = new TaoBaoClass(); + tbClass.setCategoryName(taobaoArray[0].trim()); + tbClass.setCategoryId(Integer.parseInt(taobaoArray[1].trim())); + tbClass.setCreatetime(new Date()); + tbClass.setUpdatetime(new Date()); + taoBaoClassMapper.insert(tbClass); + } + + TaoBaoClassRelation relation = taoBaoClassRelationMapper.getByLocalCid(tbClass.getId()); + if (relation != null) { + if (classId.equals(relation.getCid()) || classId == relation.getCid()) { + continue; + } + TaoBaoClassRelation updateRelation = new TaoBaoClassRelation(); + updateRelation.setId(relation.getId()); + updateRelation.setCid(classId); + updateRelation.setUpdatetime(new Date()); + taoBaoClassRelationMapper.updateByPrimaryKeySelective(updateRelation); + } else { + relation = new TaoBaoClassRelation(); + relation.setCid(classId); + relation.setTaobaoCid(tbClass.getId()); + relation.setCreatetime(new Date()); + relation.setUpdatetime(new Date()); + relation.setWeight(0.0); + taoBaoClassRelationMapper.insertSelective(relation); + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + if (listId.size() > 0) { + for (Long id: listId) { + taoBaoClassMapper.deleteByPrimaryKey(id); + taoBaoClassRelationMapper.deleteRelationByLocalCid(id); + } + } + } + } -- Gitblit v1.8.0