yujian
2019-04-28 3602fce772a496406476364f7dbdff6f38e80e14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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;
 
@Service
public class TaoBaoClassServiceImpl implements TaoBaoClassService {
 
    @Resource
    private TaoBaoClassMapper taoBaoClassMapper;
    
    @Resource
    private TaoBaoClassRelationMapper taoBaoClassRelationMapper;
 
 
    @Override
    public List<TaoBaoClass> listBySystemCid(long start, int count, Long systemCid) {
        return taoBaoClassMapper.listBySystemCid(start, count, systemCid);
    }
    
    @Override
    public String getTaoBaoCatIds(Long classId) {
        List<TaoBaoClass> listCatIds = listBySystemCid(0, 10, classId);
        if (listCatIds == null || listCatIds.size() == 0) {
            return null;
        }
        
        String taobaoCatIds = "";
        for (TaoBaoClass taoBaoClass: listCatIds) {
               Integer categoryId = taoBaoClass.getCategoryId();
              
              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);
            }
        }
    }
    
}