admin
2019-07-25 eee931dfb53af971d79329f294fe18958f15c0de
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
package com.yeshi.fanli.service.impl.taobao;
 
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.taobao.TaoBaoBuyRelationMapMapper;
import com.yeshi.fanli.entity.taobao.TaoBaoBuyRelationMap;
import com.yeshi.fanli.exception.taobao.TaoBaoBuyRelationMapException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
import com.yeshi.fanli.util.StringUtil;
 
@Service
public class TaoBaoBuyRelationMapServiceImpl implements TaoBaoBuyRelationMapService {
 
    @Resource
    private TaoBaoBuyRelationMapMapper taoBaoBuyRelationMapMapper;
 
    @Transactional
    @Override
    public String getRelationId(Long uid) throws TaoBaoBuyRelationMapException {
        TaoBaoBuyRelationMap relationMap = taoBaoBuyRelationMapMapper.selectByUid(uid);
        if (relationMap != null)
            return relationMap.getRelationId();
 
        String relationId = null;
 
        // 总共尝试3次分配
 
        for (int i = 0; i < 3; i++) {
            if (!StringUtil.isNullOrEmpty(relationId))
                break;
            try {
                List<String> list = taoBaoBuyRelationMapMapper.listValidRelaionId(uid, 1);
                if (list == null || list.size() == 0)
                    throw new TaoBaoBuyRelationMapException(1, "渠道ID库存不足");
                TaoBaoBuyRelationMap map = new TaoBaoBuyRelationMap();
                map.setCreateTime(new Date());
                map.setRelationId(list.get(0));
                map.setUid(uid);
                taoBaoBuyRelationMapMapper.insertSelective(map);
                relationId = map.getRelationId();
            } catch (Exception e) {
                try {
                    LogHelper.errorDetailInfo(e);
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
            }
        }
 
        if (StringUtil.isNullOrEmpty(relationId))
            throw new TaoBaoBuyRelationMapException(2, "渠道ID分配失败");
        return relationId;
    }
 
    @Override
    public Long selectUidByRelationId(String relationId) {
        TaoBaoBuyRelationMap map = taoBaoBuyRelationMapMapper.selectByRelationId(relationId);
        if (map != null)
            return map.getUid();
        return null;
    }
 
}