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); }