package com.yeshi.fanli.service.impl.taobao.dataoke;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.taobao.dataoke.DaTaoKeDetailMapper;
|
import com.yeshi.fanli.dto.dataoke.DaTaoKeApiResult;
|
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
|
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
|
import com.yeshi.fanli.util.RedisManager;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
|
|
@Service
|
public class DaTaoKeGoodsServiceImpl implements DaTaoKeGoodsService {
|
@Resource
|
private DaTaoKeDetailMapper daTaoKeDetailMapper;
|
|
@Resource
|
private RedisManager redisManager;
|
|
@Override
|
public void startSyncGoods() {
|
// 判断是否有正在进行的更新
|
String key1 = "dataoke-updating";
|
if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key1)))
|
return;
|
|
String key2 = "dataoke-update-time";
|
String updateTime = redisManager.getCommonString(key2);
|
if (!StringUtil.isNullOrEmpty(updateTime)) {
|
DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(1);
|
if (result.getUpdateTime().equalsIgnoreCase(updateTime)) {// 和上次更新在同一时间
|
return;
|
}
|
}
|
|
// 开始更新
|
redisManager.cacheCommonString(key1, "1");
|
List<DaTaoKeDetail> goodsList = new ArrayList<>();
|
for (int p = 1; p < 2000; p++) {
|
DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(p);
|
goodsList.addAll(result.getDetailList());
|
if (result.getDetailList().size() < 50)// 更新完成
|
{
|
redisManager.removeCommonString(key1);
|
break;
|
}
|
}
|
|
//
|
|
|
|
}
|
|
}
|