Commit 7c302bec authored by shiyu's avatar shiyu

查价

parent 6fd7d644
...@@ -103,13 +103,13 @@ public class ItemController { ...@@ -103,13 +103,13 @@ public class ItemController {
} }
@GetMapping("/updateUrl") // @GetMapping("/updateUrl")
public void syn() { public void syn() {
synCoinJob.updateImageUrlOfsSize(); synCoinJob.updateImageUrlOfsSize();
} }
@GetMapping("/synToEs") // @GetMapping("/synToEs")
public void synToEs() { public void synToEs() {
synCoinJob.synItemToEs(); synCoinJob.synItemToEs();
} }
......
...@@ -78,7 +78,7 @@ public class SynItemToEsJob { ...@@ -78,7 +78,7 @@ public class SynItemToEsJob {
logger.info("es中最新数据时间为 {}", DateUtils.toString(time)); logger.info("es中最新数据时间为 {}", DateUtils.toString(time));
CoinRequestDto coinRequestDto = new CoinRequestDto(); CoinRequestDto coinRequestDto = new CoinRequestDto();
coinRequestDto.setPage(1); coinRequestDto.setPage(1);
coinRequestDto.setLimit(10); coinRequestDto.setLimit(100);
coinRequestDto.setStartUpdateTime(time); coinRequestDto.setStartUpdateTime(time);
coinRequestDto.setSortColumn("update_time"); coinRequestDto.setSortColumn("update_time");
List<Item> itemList = itemDao.findListByPage(coinRequestDto); List<Item> itemList = itemDao.findListByPage(coinRequestDto);
......
...@@ -149,8 +149,7 @@ public class ItemEsDao { ...@@ -149,8 +149,7 @@ public class ItemEsDao {
List<BulkOperation> opts = new ArrayList<>(); List<BulkOperation> opts = new ArrayList<>();
for (Item item : itemList) { for (Item item : itemList) {
CreateOperation<Item> optObj = new CreateOperation.Builder<Item>() CreateOperation<Item> optObj = new CreateOperation.Builder<Item>()
.index("quanku_prod_temp") .index(INDEX)
// .index(INDEX)
.id(String.valueOf(item.getId())) .id(String.valueOf(item.getId()))
.document(item) .document(item)
.build(); .build();
......
...@@ -7,4 +7,9 @@ import lombok.Data; ...@@ -7,4 +7,9 @@ import lombok.Data;
public class QueryPriceRequestDto implements Entity { public class QueryPriceRequestDto implements Entity {
private Integer cid; private Integer cid;
/**
* 时间跨度
*/
private Integer timeSpan;
} }
...@@ -10,15 +10,14 @@ import com.wwdz.ch.db.dao.CategoryDao; ...@@ -10,15 +10,14 @@ import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.domain.BidRecord; import com.wwdz.ch.db.domain.BidRecord;
import com.wwdz.ch.db.domain.Category; import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.db.dto.request.BidRecordRequestDto; import com.wwdz.ch.db.dto.request.BidRecordRequestDto;
import com.wwdz.ch.wx.entity.request.QueryPriceRequestDto;
import com.wwdz.ch.wx.entity.vo.BidRecordVo; import com.wwdz.ch.wx.entity.vo.BidRecordVo;
import com.wwdz.ch.wx.entity.vo.CategoryVo; import com.wwdz.ch.wx.entity.vo.CategoryVo;
import com.wwdz.ch.wx.service.QueryPriceService; import com.wwdz.ch.wx.service.QueryPriceService;
import com.xxdxxs.utils.DateUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -40,21 +39,26 @@ public class QueryPriceServiceImpl implements QueryPriceService { ...@@ -40,21 +39,26 @@ public class QueryPriceServiceImpl implements QueryPriceService {
@Override @Override
public Result queryPrice(Integer id) { public Result queryPrice(QueryPriceRequestDto queryPriceRequestDto) {
try { try {
Integer id = queryPriceRequestDto.getCid();
Category category = categoryDao.findById(id); Category category = categoryDao.findById(id);
//成交记录折线图 //成交记录折线图
BidRecordRequestDto dto = new BidRecordRequestDto(); BidRecordRequestDto dto = new BidRecordRequestDto();
LocalDate now = LocalDate.now(); LocalDate now = LocalDate.now();
int nowMills = (int) now.atStartOfDay(ZoneOffset.UTC).toEpochSecond(); int nowMills = (int) now.atStartOfDay(ZoneOffset.UTC).toEpochSecond();
LocalDate starTime = now.minusYears(1); //时间跨度参数为空,默认为近一年, 时间跨度不等于1的时候,代表历史所有数据,则不设置开始时间
int startMills = (int) starTime.atStartOfDay(ZoneOffset.UTC).toEpochSecond(); if (queryPriceRequestDto.getTimeSpan() == null || queryPriceRequestDto.getTimeSpan() == 1) {
LocalDate starTime = now.minusYears(1);
int startMills = (int) starTime.atStartOfDay(ZoneOffset.UTC).toEpochSecond();
dto.setStartBidTime(startMills);
}
dto.setCid(id); dto.setCid(id);
dto.setStartBidTime(startMills);
dto.setEndBidTime(nowMills); dto.setEndBidTime(nowMills);
List<BidRecord> bidRecordList = bidRecordDao.queryByCid(dto); List<BidRecord> bidRecordList = bidRecordDao.queryByCid(dto);
List<String> xData = new ArrayList<>(); List<String> xData = new ArrayList<>();
List<Object> valueList = new ArrayList<>(); List<Object> valueList = new ArrayList<>();
double totalPrice = 0;
for (BidRecord bidRecord : bidRecordList) { for (BidRecord bidRecord : bidRecordList) {
int bidTime = bidRecord.getBidTime(); int bidTime = bidRecord.getBidTime();
Instant instant = Instant.ofEpochSecond(bidTime); Instant instant = Instant.ofEpochSecond(bidTime);
...@@ -62,14 +66,17 @@ public class QueryPriceServiceImpl implements QueryPriceService { ...@@ -62,14 +66,17 @@ public class QueryPriceServiceImpl implements QueryPriceService {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String time = date.format(formatter); String time = date.format(formatter);
xData.add(time); xData.add(time);
totalPrice += bidRecord.getPrice() / (double)100;
valueList.add(bidRecord.getPrice() / (double)100 / (double)10000); valueList.add(bidRecord.getPrice() / (double)100 / (double)10000);
} }
double averagePrice = totalPrice / bidRecordList.size();
Chart chart = new Chart(); Chart chart = new Chart();
chart.setXData(xData); chart.setXData(xData);
chart.setValues(valueList); chart.setValues(valueList);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("details", CategoryVo.of(category)); map.put("details", CategoryVo.of(category));
map.put("chart", chart); map.put("chart", chart);
map.put("averagePrice", averagePrice);
return Result.success(map); return Result.success(map);
} catch (Exception e) { } catch (Exception e) {
logger.error("查询类目价格详情失败:{}", e); logger.error("查询类目价格详情失败:{}", e);
......
...@@ -2,10 +2,11 @@ package com.wwdz.ch.wx.service; ...@@ -2,10 +2,11 @@ package com.wwdz.ch.wx.service;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.BidRecordRequestDto; import com.wwdz.ch.db.dto.request.BidRecordRequestDto;
import com.wwdz.ch.wx.entity.request.QueryPriceRequestDto;
public interface QueryPriceService { public interface QueryPriceService {
Result queryPrice(Integer id); Result queryPrice(QueryPriceRequestDto dto);
/** /**
* 查询该子类目的成交记录 * 查询该子类目的成交记录
......
...@@ -38,7 +38,7 @@ public class QueryPriceController { ...@@ -38,7 +38,7 @@ public class QueryPriceController {
if (StringUtils.isEmpty(dto.getCid())) { if (StringUtils.isEmpty(dto.getCid())) {
return Result.failed(ResultCode.PARAM_ERROR); return Result.failed(ResultCode.PARAM_ERROR);
} }
return queryPriceService.queryPrice(dto.getCid()); return queryPriceService.queryPrice(dto);
} }
@ApiOperation(value = "查价成交记录") @ApiOperation(value = "查价成交记录")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment