Commit d14e02e3 authored by shiyu's avatar shiyu

首页列表随机展示

parent 64c6b1e5
......@@ -99,4 +99,11 @@ public interface SupplierItemDao {
*/
boolean isSupplierIdExisted(long supplierId, int type);
/**
* 查询所有商品的id
* @param supplierItemRequestDto
* @return
*/
List<SupplierItem> findAllItemId(SupplierItemRequestDto supplierItemRequestDto);
}
......@@ -133,6 +133,7 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
criteria.andTypeIn(dto.getTypeList());
criteria.andStockGreaterThan(0);
criteria.andIsDeletedEqualTo(false);
JdbcHelper.ifPresent(dto.getFilterIds(), criteria::andIdNotIn);
// criteria.andIsOnSaleEqualTo(true);
if (!CollectionUtils.isEmpty(dto.getIds())) {
SupplierItemExample.Criteria orCriteria = supplierItemExample.or();
......@@ -142,12 +143,25 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
orCriteria.andIsDeletedEqualTo(false);
// orCriteria.andIsOnSaleEqualTo(true);
}
supplierItemExample.setOrderByClause(" create_time desc");
// supplierItemExample.setOrderByClause(" create_time desc");
supplierItemExample.setOrderByClause(" rand() ");
PageHelper.startPage(dto.getPage(), dto.getLimit());
return supplierItemMapper.selectByExampleWithBLOBs(supplierItemExample);
}
/* public List<SupplierItem> findForHomePage(SupplierItemRequestDto dto) {
SupplierItemExample supplierItemExample = new SupplierItemExample();
SupplierItemExample.Criteria criteria = supplierItemExample.createCriteria();
criteria.andCreatorIdIn(dto.getCreatorIdList());
criteria.andTypeIn(dto.getTypeList());
criteria.andStockGreaterThan(0);
criteria.andIsDeletedEqualTo(false);
JdbcHelper.ifPresent(dto.getIds(), criteria::andIdIn);
return supplierItemMapper.selectByExampleWithBLOBs(supplierItemExample);
}*/
@Override
public long countByCreatorId(long creatorId) {
SupplierItemExample supplierItemExample = new SupplierItemExample();
......@@ -218,4 +232,17 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
criteria.andIsDeletedEqualTo(false);
return supplierItemMapper.countByExample(supplierItemExample) > 0;
}
@Override
public List<SupplierItem> findAllItemId(SupplierItemRequestDto dto) {
SupplierItemExample supplierItemExample = new SupplierItemExample();
SupplierItemExample.Criteria criteria = supplierItemExample.createCriteria();
criteria.andCreatorIdIn(dto.getCreatorIdList());
criteria.andTypeIn(dto.getTypeList());
criteria.andStockGreaterThan(0);
criteria.andIsDeletedEqualTo(false);
PageHelper.startPage(dto.getPage(), dto.getLimit());
return supplierItemMapper.selectByExampleSelective(supplierItemExample, SupplierItem.Column.id);
}
}
......@@ -1151,8 +1151,24 @@ public class SupplierItemServiceImpl implements SupplierItemService {
searchDto.setStock(0);//库存大于0
searchDto.setPage(dto.getPage());
searchDto.setLimit(dto.getLimit());
String viewKey = userId + ":homepage";
if (dto.getPage() == 1) {
redisUtils.delete(viewKey);
}
if (redisUtils.hasKey(viewKey)) {
List<Long> searchItemIds = (List<Long>) redisUtils.get(viewKey);
searchDto.setFilterIds(searchItemIds);
}
List<SupplierItem> supplierItemList = supplierItemDao.findForHomePage(searchDto);
PageInfo<SupplierItem> pageInfo = new PageInfo(supplierItemList);
List<Long> filterItemIds = supplierItemList.stream().map(SupplierItem::getId).collect(Collectors.toList());
if (redisUtils.hasKey(viewKey)) {
List<Long> searchItemIds = (List<Long>) redisUtils.get(viewKey);
searchItemIds.addAll(filterItemIds);
redisUtils.set(viewKey, searchItemIds);
} else {
redisUtils.set(viewKey, filterItemIds);
}
Date now = new Date();
supplierItemList.forEach(supplierItem -> {
SupplierItemVo supplierItemVo = new SupplierItemVo();
......@@ -1284,4 +1300,7 @@ public class SupplierItemServiceImpl implements SupplierItemService {
}
return null;
}
}
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