yujian
2019-04-28 3602fce772a496406476364f7dbdff6f38e80e14
淘宝分类 映射 系统分类
8个文件已修改
263 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/TaoBaoClassMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/TaoBaoClassRelationMapper.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/clazz/GoodsClass.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/TaoBaoClassMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/TaoBaoClassRelationMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/TaoBaoClassServiceImpl.java 132 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/TaoBaoClassService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/TaoBaoClassMapper.java
@@ -4,22 +4,19 @@
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass;
public interface TaoBaoClassMapper {
public interface TaoBaoClassMapper extends BaseMapper<TaoBaoClass>{
    int deleteByPrimaryKey(Long id);
    int insert(TaoBaoClass record);
    int insertSelective(TaoBaoClass record);
    TaoBaoClass selectByPrimaryKey(Long id);
    int updateByPrimaryKeySelective(TaoBaoClass record);
    int updateByPrimaryKey(TaoBaoClass record);
    
    List<TaoBaoClass> listBySystemCid(@Param("start") long start, @Param("count") int count,
            @Param("systemCid") Long systemCid);
    /**
     * 根据淘宝分类查询
     * @param categoryId
     * @return
     */
    TaoBaoClass getByCategoryId(@Param("categoryId") Integer categoryId);
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/TaoBaoClassRelationMapper.java
@@ -2,24 +2,25 @@
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.bus.clazz.TaoBaoClassRelation;
public interface TaoBaoClassRelationMapper {
public interface TaoBaoClassRelationMapper extends BaseMapper<TaoBaoClassRelation>{
    int deleteByPrimaryKey(Long id);
    int insert(TaoBaoClassRelation record);
    int insertSelective(TaoBaoClassRelation record);
    TaoBaoClassRelation selectByPrimaryKey(Long id);
    int updateByPrimaryKeySelective(TaoBaoClassRelation record);
    int updateByPrimaryKey(TaoBaoClassRelation record);
    
    List<TaoBaoClassRelation> listByTaoBaoCid(Long taobaoCid);
    
    /**
     * 根据分类id查询
     * @param taobaoCid
     * @return
     */
    TaoBaoClassRelation getByLocalCid(Long localCid);
    /**
     *
     * @param localCid
     * @param classId
     */
    void deleteRelationByLocalCid(Long localCid);
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/clazz/GoodsClass.java
@@ -65,6 +65,8 @@
    // 关联标签数量
    private int countlabel = 0; 
    private String taobaoCids;
    
    public GoodsClass() {
    }
@@ -185,7 +187,13 @@
    public void setState(Integer state) {
        this.state = state;
    }
    public String getTaobaoCids() {
        return taobaoCids;
    }
    public void setTaobaoCids(String taobaoCids) {
        this.taobaoCids = taobaoCids;
    }
}
fanli/src/main/java/com/yeshi/fanli/mapping/TaoBaoClassMapper.xml
@@ -53,4 +53,10 @@
         LIMIT  ${start},${count}
  </select>
  
   <select id="getByCategoryId" resultMap="BaseResultMap">
         SELECT * FROM `yeshi_ec_taobao_class`
         WHERE tc_category_id = #{categoryId}
        LIMIT 1
  </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/mapping/TaoBaoClassRelationMapper.xml
@@ -55,4 +55,15 @@
         WHERE tc.`tc_category_id`= #{taobaoCid,jdbcType=BIGINT}  ORDER BY tm.`tm_weight` DESC LIMIT 0,10
  </select>
  
  <select id="getByLocalCid" resultMap="BaseResultMap" parameterType="java.lang.Long">
         SELECT <include refid="Base_Column_List"/> FROM `yeshi_ec_taobao_class_mapper`
         WHERE tm_taobao_cid = #{localCid,jdbcType=BIGINT}
         LIMIT 1
  </select>
  <delete id="deleteRelationByLocalCid" parameterType="java.lang.Long">
      delete from yeshi_ec_taobao_class_mapper
      where tm_taobao_cid = #{localCid,jdbcType=BIGINT}
  </delete>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java
@@ -21,9 +21,11 @@
import com.yeshi.fanli.dao.mybatis.GoodsClassMapper;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass;
import com.yeshi.fanli.exception.GoodsClassException;
import com.yeshi.fanli.service.inter.goods.GoodsClassService;
import com.yeshi.fanli.service.inter.goods.GoodsSubClassService;
import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
import com.yeshi.fanli.service.inter.lable.LabelClassService;
import com.yeshi.fanli.util.StringUtil;
@@ -39,6 +41,9 @@
    @Resource
    private LabelClassService labelClassService;
    
    @Resource
    private TaoBaoClassService taoBaoClassService;
    public GoodsClass getGoodsClass(long id) {
        return goodsClassMapper.selectByPrimaryKey(id);
@@ -112,6 +117,23 @@
            // 标签
            int countlabel = labelClassService.getCountQueryByClassId(gclass.getId());
            gclass.setCountlabel(countlabel);
            List<TaoBaoClass> listTB = taoBaoClassService.listBySystemCid(0, Integer.MAX_VALUE, gclass.getId());
            if (listTB == null || listTB.size() == 0) {
                gclass.setTaobaoCids("");
            } else {
                String taobaoCids = "";
                for (TaoBaoClass taoBaoClass: listTB) {
                    taobaoCids = taobaoCids + taoBaoClass.getCategoryName() + "-" + taoBaoClass.getCategoryId() + ",";
                }
                if (!StringUtil.isNullOrEmpty(taobaoCids)){
                    taobaoCids = taobaoCids.substring(0, taobaoCids.length()-1);
                }
                gclass.setTaobaoCids(taobaoCids);
            }
        }
        return list;
    }
@@ -122,6 +144,7 @@
    
    @Override
    @Transactional
    public void saveObject(MultipartFile file, GoodsClass record) throws GoodsClassException, Exception{
        
        String name = record.getName();
@@ -141,6 +164,7 @@
        } else if (!StringUtil.isJson(params)) {
            throw new GoodsClassException(1, "筛选条件非JSON格式");
        }
        
        
        Long id = record.getId();
@@ -189,6 +213,12 @@
            record.setCreatetime(resultObj.getCreatetime());
            goodsClassMapper.updateByPrimaryKey(record);
        }
        // 保存淘宝商品分类id
        String taobaoCids = record.getTaobaoCids();
        if (!StringUtil.isNullOrEmpty(taobaoCids) && !"null".equalsIgnoreCase(taobaoCids)) {
            taoBaoClassService.save(record.getId(), taobaoCids);
        }
    }
    
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);
            }
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/TaoBaoClassService.java
@@ -8,18 +8,7 @@
public interface TaoBaoClassService {
    
    public int deleteByPrimaryKey(Long id);
    public int insert(TaoBaoClass record);
    public int insertSelective(TaoBaoClass record);
    public TaoBaoClass selectByPrimaryKey(Long id);
    public int updateByPrimaryKeySelective(TaoBaoClass record);
    public int updateByPrimaryKey(TaoBaoClass record);
    public List<TaoBaoClass> listBySystemCid(long start, int count, Long systemCid);
    /**
@@ -29,4 +18,13 @@
     */
    public String getTaoBaoCatIds(Long classId);
    public TaoBaoClass getByCategoryId(Integer categoryId);
    /**
     * 保存
     * @param classId
     * @param taobaoCids
     */
    public void save(Long classId, String taobaoCids);
}