| | |
| | | package com.yeshi.fanli.service.impl.taobao.dataoke;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Collections;
|
| | | import java.util.Comparator;
|
| | | import java.util.Date;
|
| | | import java.util.HashMap;
|
| | | import java.util.Iterator;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | |
| | | import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
|
| | | import com.yeshi.fanli.util.BeanUtil;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | |
| | | public void startSyncGoods() {
|
| | | LogHelper.test("大淘客同步开始");
|
| | | DaTaoKeGoodsResult result = DaTaoKeApiUtil.listAll("1");
|
| | | int page=0;
|
| | | int page = 0;
|
| | | while (result.getGoodsList() != null && result.getGoodsList().size() > 0) {
|
| | | System.out.println(page++);
|
| | | for (DaTaoKeDetailV2 v2 : result.getGoodsList())
|
| | | daTaoKeGoodsDetailV2Dao.save(v2);
|
| | | daTaoKeGoodsDetailV2Dao.saveWithCommision(v2);
|
| | | result = DaTaoKeApiUtil.listAll(result.getPageId());
|
| | | try {
|
| | | Thread.sleep(10);
|
| | |
| | | String startTime = null;
|
| | | DaTaoKeDetailV2 latest = daTaoKeGoodsDetailV2Dao.selectLatest();
|
| | | if (latest != null) {
|
| | | startTime = TimeUtil.getGernalTime(latest.getCreateTime().getTime(), "yyyy-MM-dd HH:mm:ss");
|
| | | startTime = latest.getCreateTime();
|
| | | }
|
| | | DaTaoKeGoodsResult result = DaTaoKeApiUtil.getNewGoodsList(null, startTime, null);
|
| | | while (!StringUtil.isNullOrEmpty(result.getPageId())) {
|
| | | for (DaTaoKeDetailV2 v2 : result.getGoodsList()) {
|
| | | v2.setUpdateTime(new Date());
|
| | | daTaoKeGoodsDetailV2Dao.save(v2);
|
| | | daTaoKeGoodsDetailV2Dao.saveWithCommision(v2);
|
| | | }
|
| | | result = DaTaoKeApiUtil.getNewGoodsList(result.getPageId(), startTime, null);
|
| | | try {
|
| | |
| | | private void addGoodsList(List<DaTaoKeDetailV2> goodsList) {
|
| | | for (DaTaoKeDetailV2 goods : goodsList) {
|
| | | goods.setUpdateTime(new Date());
|
| | | daTaoKeGoodsDetailV2Dao.save(goods);
|
| | | daTaoKeGoodsDetailV2Dao.saveWithCommision(goods);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | return daTaoKeGoodsDetailV2Dao.getGoodsNotInList(cid, listId, count);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<DaTaoKeDetailV2> listPreShareHotGoods(int page) {
|
| | | Map<Long, DaTaoKeDetailV2> map = new HashMap<>();
|
| | | List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Dao.listPreShareHotGoods((page - 1) * Constant.PAGE_SIZE,
|
| | | Constant.PAGE_SIZE, "monthSales");
|
| | | System.out.println(list);
|
| | | for (DaTaoKeDetailV2 v2 : list) {
|
| | | map.put(v2.getId(), v2);
|
| | | }
|
| | |
|
| | | List<DaTaoKeDetailV2> finalList = new ArrayList<>();
|
| | | for (Iterator<Long> its = map.keySet().iterator(); its.hasNext();) {
|
| | | DaTaoKeDetailV2 v2 = map.get(its.next());
|
| | | Date time = new Date(TimeUtil.convertToTimeTemp(v2.getCouponEndTime(), "yyyy-MM-dd HH:mm:ss"));
|
| | | Date targetTime = new Date(TimeUtil.convertToTimeTemp(
|
| | | TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 2L, "yyyy-MM-dd"),
|
| | | "yyyy-MM-dd") - 1000L);
|
| | | if (time.getTime() >= targetTime.getTime())
|
| | | finalList.add(v2);
|
| | | }
|
| | |
|
| | | Comparator<DaTaoKeDetailV2> cm = new Comparator<DaTaoKeDetailV2>() {
|
| | | @Override
|
| | | public int compare(DaTaoKeDetailV2 o1, DaTaoKeDetailV2 o2) {
|
| | | return o1.getActualPrice().compareTo(o2.getActualPrice());
|
| | | }
|
| | | };
|
| | | Collections.sort(finalList, cm);
|
| | | return finalList;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<DaTaoKeDetailV2> listPreTLJBuyGoods(int page) {
|
| | | if (page == 1) {
|
| | | DaTaoKeGoodsResult result = DaTaoKeApiUtil.getRankingList(DaTaoKeApiUtil.RANK_TYPE_DAY, null);
|
| | | List<DaTaoKeDetailV2> goodsList = new ArrayList<>();
|
| | | for (DaTaoKeDetailV2 v2 : result.getGoodsList()) {
|
| | | BigDecimal commision = MoneyBigDecimalUtil
|
| | | .div(MoneyBigDecimalUtil.mul(v2.getActualPrice(), v2.getCommissionRate()), new BigDecimal(100));
|
| | | if (commision.multiply(new BigDecimal("0.7")).compareTo(new BigDecimal("1.01")) >= 0)
|
| | | goodsList.add(v2);
|
| | | }
|
| | | return goodsList;
|
| | | } else
|
| | | return new ArrayList<>();
|
| | | }
|
| | |
|
| | | }
|