Commit 7c302bec authored by shiyu's avatar shiyu

查价

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