Commit 1a0ee1aa authored by shiyu's avatar shiyu

成交记录

parent 76527c20
...@@ -4,10 +4,13 @@ import com.github.pagehelper.PageInfo; ...@@ -4,10 +4,13 @@ import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.consts.*; import com.wwdz.ch.core.consts.*;
import com.wwdz.ch.core.storage.QiniuStorage; import com.wwdz.ch.core.storage.QiniuStorage;
import com.wwdz.ch.core.util.RedisUtils; import com.wwdz.ch.core.util.RedisUtils;
import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.dao.CoinsDao; import com.wwdz.ch.db.dao.CoinsDao;
import com.wwdz.ch.db.dao.ItemDao; import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.db.domain.Coins; import com.wwdz.ch.db.domain.Coins;
import com.wwdz.ch.db.domain.Item; import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.dto.request.CategorySearchRequestDto;
import com.wwdz.ch.db.dto.request.CoinRequestDto; import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.es.ItemEsDao; import com.wwdz.ch.db.es.ItemEsDao;
import com.xxdxxs.utils.CommonUtils; import com.xxdxxs.utils.CommonUtils;
...@@ -57,6 +60,9 @@ public class SynCoinJob { ...@@ -57,6 +60,9 @@ public class SynCoinJob {
@Autowired @Autowired
RedissonClient redissonClient; RedissonClient redissonClient;
@Autowired
CategoryDao categoryDao;
public void execute() { public void execute() {
logger.info(">>>>>>>>>>>>>>>>>>>>>>> 同步coins表数据到item表, 开始执行 <<<<<<<<<<<<<<<<<<<<<"); logger.info(">>>>>>>>>>>>>>>>>>>>>>> 同步coins表数据到item表, 开始执行 <<<<<<<<<<<<<<<<<<<<<");
...@@ -219,6 +225,68 @@ public class SynCoinJob { ...@@ -219,6 +225,68 @@ public class SynCoinJob {
} }
/**
* 类目图片加上尺寸
*/
public void addSizeForCategoryIcon() {
logger.info(">>>>>>>>>>>>>>>>>>>>>>> 更新类目图片尺寸, 开始执行 <<<<<<<<<<<<<<<<<<<<<");
try {
CategorySearchRequestDto categorySearchRequestDto = new CategorySearchRequestDto();
categorySearchRequestDto.setPage(1);
categorySearchRequestDto.setLimit(100);
List<Category> list = categoryDao.findByPage(categorySearchRequestDto);
int totalPageNum = new PageInfo<>(list).getPages();
long total = new PageInfo<>(list).getTotal();
logger.info("total page : {}, total : {}", totalPageNum, total);
IntStream.rangeClosed(1, totalPageNum).parallel().forEach(i -> {
logger.info(">>>>>>>>>>>>>>>>> 当前更新数据的页码: {} 更新开始 <<<<<<<<<<<<<<<<<", i);
CategorySearchRequestDto dto = new CategorySearchRequestDto();
dto.setPage(i);
dto.setLimit(100);
List<Category> categoryList = categoryDao.findByPage(dto);
categoryList.parallelStream().forEach(category -> {
String imageUrl = category.getIcon();
if (StringUtils.hasLength(imageUrl) && !imageUrl.contains("_") ) {
String[] images = imageUrl.split(";");
StringBuffer stringBuffer = new StringBuffer();
Arrays.stream(images).parallel().forEach(image -> {
if (stringBuffer.length() != 0) {
stringBuffer.append(";");
}
try {
URL url = new URL(image);
InputStream inputStream = url.openStream();
BufferedImage bufferedImage = ImageIO.read(inputStream);
String keyName = CommConsts.UPLOAD_PRE_DIRECTORY + CommonUtils.getUUID() + "_" + bufferedImage.getWidth() + "x" + bufferedImage.getHeight() + "." + MediaTypeEnum.IMAGE_JPG.getExt();
InputStream imageStream = bufferedImageToInputStream(bufferedImage, MediaTypeEnum.IMAGE_JPG.getExt());
qiniuStorage.store(imageStream, 1, MediaTypeEnum.IMAGE_JPG.getMime(), keyName);
String urlOfSize = qiniuStorage.generateUrl(keyName);
logger.info(">>>>>>>>>>>>> id : {} ; new URL = {}", category.getId(), urlOfSize);
stringBuffer.append(urlOfSize);
} catch (Exception e) {
stringBuffer.append(image);
logger.error("更新类目错误 id: {} , url : {}, error :{}", category.getId(), image, e);
}
});
Category newCategory = new Category();
newCategory.setId(category.getId());
newCategory.setIcon(stringBuffer.toString());
categoryDao.updateById(newCategory);
logger.info(">>>>>>>>>>>>> id : {} ; 更新类目图片地址成功 !!!", category.getId());
}
});
logger.info(">>>>>>>>>>>>>>>>> 更新类目图片尺寸的页码: {}, 更新成功 <<<<<<<<<<<<<<<<<", i);
});
logger.info(">>>>>>>>>>>>>>>>>>>>>>> 更新类目图片尺寸, 执行完毕 <<<<<<<<<<<<<<<<<<<<<");
} catch (Exception e) {
logger.error("更新类目图片尺寸 error {}", e);
}
}
public void syn(){ public void syn(){
/* RLock lock = redissonClient.getLock(SYN_NEPHRITE_TO_ES_TASK_KEY); /* RLock lock = redissonClient.getLock(SYN_NEPHRITE_TO_ES_TASK_KEY);
if (!lock.tryLock()) { if (!lock.tryLock()) {
......
...@@ -77,4 +77,10 @@ public class SynCoinJobTest { ...@@ -77,4 +77,10 @@ public class SynCoinJobTest {
public void importNephriteData() throws Exception { public void importNephriteData() throws Exception {
importNephriteDataJob.execute(); importNephriteDataJob.execute();
} }
@Test
public void addSizeForCategoryIcon() throws Exception {
synCoinJob.addSizeForCategoryIcon();
}
} }
\ No newline at end of file
...@@ -2,12 +2,17 @@ package com.wwdz.ch.core.util; ...@@ -2,12 +2,17 @@ package com.wwdz.ch.core.util;
import com.github.benmanes.caffeine.cache.AsyncLoadingCache; import com.github.benmanes.caffeine.cache.AsyncLoadingCache;
import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.Caffeine;
import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.dao.dts.DtsAdminDao; import com.wwdz.ch.db.dao.dts.DtsAdminDao;
import com.wwdz.ch.db.dao.dts.DtsUserDao; import com.wwdz.ch.db.dao.dts.DtsUserDao;
import com.wwdz.ch.db.domain.Admin; import com.wwdz.ch.db.domain.Admin;
import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.db.domain.User; import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.dto.request.CategorySearchRequestDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -22,6 +27,9 @@ public class CacheUtil { ...@@ -22,6 +27,9 @@ public class CacheUtil {
@Autowired @Autowired
DtsUserDao dtsUserDao; DtsUserDao dtsUserDao;
@Autowired
CategoryDao categoryDao;
public String getAppletUserNameById(long key) { public String getAppletUserNameById(long key) {
try { try {
...@@ -84,4 +92,25 @@ public class CacheUtil { ...@@ -84,4 +92,25 @@ public class CacheUtil {
} }
/**
* 查询后台用户
*
* @return
*/
public List<Category> getAllCategory(Integer pid) {
CategorySearchRequestDto dto = new CategorySearchRequestDto();
List<Category> categoryList = categoryDao.listSelective(dto);
Map<Integer, List<Category>> map = new HashMap<>();
for (Category category : categoryList) {
if (category.getIsLeaf()) {
continue;
}
int nextPid = category.getId();
List<Category> childCategroyList = categoryDao.queryByPid(nextPid);
map.put(nextPid, childCategroyList);
}
return map.get(pid);
}
} }
...@@ -50,4 +50,7 @@ public interface CategoryDao { ...@@ -50,4 +50,7 @@ public interface CategoryDao {
Integer getMaxCagtegoryLevel(); Integer getMaxCagtegoryLevel();
List<String> getCategoryPath(Integer id); List<String> getCategoryPath(Integer id);
List<Category> findByPage(CategorySearchRequestDto dto);
} }
...@@ -136,4 +136,12 @@ public class CategoryDaoImpl implements CategoryDao { ...@@ -136,4 +136,12 @@ public class CategoryDaoImpl implements CategoryDao {
return pathList; return pathList;
} }
@Override
public List<Category> findByPage(CategorySearchRequestDto dto) {
CategoryExample example = new CategoryExample();
CategoryExample.Criteria criteria = example.createCriteria();
PageHelper.startPage(dto.getPage(), dto.getLimit());
return categoryMapper.selectByExample(example);
}
} }
...@@ -40,6 +40,9 @@ public class BidRecordVo implements Entity { ...@@ -40,6 +40,9 @@ public class BidRecordVo implements Entity {
*/ */
private Date updateTime; private Date updateTime;
public BidRecordVo() {
}
public BidRecordVo(BidRecord record) { public BidRecordVo(BidRecord record) {
this.id = record.getId(); this.id = record.getId();
this.cid = record.getCid(); this.cid = record.getCid();
......
...@@ -7,9 +7,13 @@ import com.wwdz.ch.core.type.PageSearchResult; ...@@ -7,9 +7,13 @@ import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.BidRecordDao; import com.wwdz.ch.db.dao.BidRecordDao;
import com.wwdz.ch.db.dao.CategoryDao; import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.dao.ItemDao;
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.domain.Item;
import com.wwdz.ch.db.dto.request.BidRecordRequestDto; import com.wwdz.ch.db.dto.request.BidRecordRequestDto;
import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.wx.entity.request.ItemRequestDto;
import com.wwdz.ch.wx.entity.request.QueryPriceRequestDto; 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;
...@@ -18,6 +22,8 @@ import org.slf4j.Logger; ...@@ -18,6 +22,8 @@ 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 org.springframework.util.StringUtils;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -37,6 +43,9 @@ public class QueryPriceServiceImpl implements QueryPriceService { ...@@ -37,6 +43,9 @@ public class QueryPriceServiceImpl implements QueryPriceService {
@Autowired @Autowired
BidRecordDao bidRecordDao; BidRecordDao bidRecordDao;
@Autowired
ItemDao itemDao;
@Override @Override
public Result queryPrice(QueryPriceRequestDto queryPriceRequestDto) { public Result queryPrice(QueryPriceRequestDto queryPriceRequestDto) {
...@@ -86,13 +95,25 @@ public class QueryPriceServiceImpl implements QueryPriceService { ...@@ -86,13 +95,25 @@ public class QueryPriceServiceImpl implements QueryPriceService {
@Override @Override
public Result findBidRecord(BidRecordRequestDto dto) { public Result findBidRecord(CoinRequestDto dto) {
try { try {
List<BidRecord> bidRecordList = bidRecordDao.queryByCidOrderBySelf(dto); List<Item> itemList = itemDao.findListByPage(dto);
List<BidRecordVo> bidRecordVos = new ArrayList<>(); PageInfo pageInfo = PageInfo.of(itemList);
bidRecordVos = bidRecordList.stream().map(i -> new BidRecordVo(i)).collect(Collectors.toList()); List<Map<String, Object>> mapList = new ArrayList<>();
PageInfo pageInfo = PageInfo.of(bidRecordVos); itemList.stream().forEach(i -> {
return Result.success(PageSearchResult.of(pageInfo)); Map<String, Object> map = new HashMap<>();
map.put("bidTime", i.getBidTime());
map.put("price", i.getPrice() / (double) 100);
map.put("platform", "电商平台");
map.put("detail", i.getDetail());
if (StringUtils.hasLength(i.getTopImage())) {
map.put("image", i.getTopImage());
} else {
map.put("image", StringUtils.isEmpty(i.getImages())?"":i.getImages().split(";")[0]);
}
mapList.add(map);
});
return Result.success(PageSearchResult.of(pageInfo, mapList));
} catch (Exception e) { } catch (Exception e) {
logger.info("成交记录查询失败:{}", e); logger.info("成交记录查询失败:{}", e);
} }
......
...@@ -2,6 +2,7 @@ package com.wwdz.ch.wx.service; ...@@ -2,6 +2,7 @@ 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.db.dto.request.CoinRequestDto;
import com.wwdz.ch.wx.entity.request.QueryPriceRequestDto; import com.wwdz.ch.wx.entity.request.QueryPriceRequestDto;
public interface QueryPriceService { public interface QueryPriceService {
...@@ -13,5 +14,5 @@ public interface QueryPriceService { ...@@ -13,5 +14,5 @@ public interface QueryPriceService {
* @param dto * @param dto
* @return * @return
*/ */
Result findBidRecord(BidRecordRequestDto dto); Result findBidRecord(CoinRequestDto dto);
} }
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.consts.ResultCode; import com.wwdz.ch.core.consts.ResultCode;
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.db.dto.request.CoinRequestDto;
import com.wwdz.ch.wx.entity.request.CategoryRequestDto; import com.wwdz.ch.wx.entity.request.CategoryRequestDto;
import com.wwdz.ch.wx.entity.request.QueryPriceRequestDto; import com.wwdz.ch.wx.entity.request.QueryPriceRequestDto;
import com.wwdz.ch.wx.service.CategoryService; import com.wwdz.ch.wx.service.CategoryService;
...@@ -43,7 +44,7 @@ public class QueryPriceController { ...@@ -43,7 +44,7 @@ public class QueryPriceController {
@ApiOperation(value = "查价成交记录") @ApiOperation(value = "查价成交记录")
@PostMapping("/findBidRecords") @PostMapping("/findBidRecords")
public Result findBidRecords(@RequestBody BidRecordRequestDto dto) { public Result findBidRecords(@RequestBody CoinRequestDto dto) {
logger.info("【请求开始】查价成交记录,请求参数:{}", JSON.toJSONString(dto)); logger.info("【请求开始】查价成交记录,请求参数:{}", JSON.toJSONString(dto));
if (StringUtils.isEmpty(dto.getCid())) { if (StringUtils.isEmpty(dto.getCid())) {
return Result.failed(ResultCode.PARAM_ERROR); return Result.failed(ResultCode.PARAM_ERROR);
......
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