Commit 90bff1e4 authored by muhong's avatar muhong

修改 藏品被删除后的展示问题

parent d4225270
......@@ -7,10 +7,14 @@ public interface CategoryDao {
List<Category> queryByLevel(Integer level, Integer offset, Integer limit);
List<Category> listByLevel(Integer level);
List<Category> queryByPid(Integer pid);
Category findById(Integer id);
Category findByName(String name);
List<Category> querySelective(String id, String name, Integer page, Integer size, String sort, String order);
int updateById(Category category);
......
......@@ -36,6 +36,12 @@ public class CategoryDaoImpl implements CategoryDao {
return categoryMapper.selectByExample(example);
}
public List<Category> listByLevel(Integer level) {
CategoryExample example = new CategoryExample();
example.or().andLevelEqualTo(level).andIsDeletedEqualTo(false);
return categoryMapper.selectByExample(example);
}
public List<Category> queryByPid(Integer pid) {
CategoryExample example = new CategoryExample();
example.or().andPidEqualTo(pid).andIsDeletedEqualTo(false);
......@@ -46,6 +52,12 @@ public class CategoryDaoImpl implements CategoryDao {
return categoryMapper.selectByPrimaryKey(id);
}
public Category findByName(String name) {
CategoryExample example = new CategoryExample();
example.or().andNameEqualTo(name).andIsDeletedEqualTo(false);
return categoryMapper.selectOneByExample(example);
}
public List<Category> querySelective(String id, String name, Integer page, Integer size, String sort,
String order) {
CategoryExample example = new CategoryExample();
......
......@@ -9,4 +9,5 @@ public class CategoryRequestDto implements Entity {
private Integer level;
private Integer page;
private Integer size;
private String name;
}
package com.wwdz.ch.wx.entity.vo;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.List;
@Data
public class CategoryResponseVo implements Entity {
private Integer cid;
private Integer pid;
private String categoryName;
private List<CategoryResponseVo> child;
private Integer isChosen;
}
package com.wwdz.ch.wx.impl;
import com.google.common.collect.Lists;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.wx.entity.request.CategoryRequestDto;
import com.wwdz.ch.wx.entity.vo.CategoryResponseVo;
import com.wwdz.ch.wx.service.CategoryService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class CategoryServiceImpl implements CategoryService {
private static final Logger logger = LoggerFactory.getLogger(CategoryServiceImpl.class);
......@@ -36,4 +44,70 @@ public class CategoryServiceImpl implements CategoryService {
return Result.failed("查询子类目失败");
}
}
@Override
public Result find(CategoryRequestDto dto) {
if (StringUtils.isBlank(dto.getName())) {
return Result.success(new ArrayList<>());
}
try {
Category category = categoryDao.findByName(dto.getName());
if (Objects.isNull(category)) {
return Result.success(new ArrayList<>());
}
List<Category> categoryList = new ArrayList<>();
categoryList.add(category);
int i = category.getLevel() - 1;
while (i > 0) {
categoryList.addAll(categoryDao.listByLevel(i));
i --;
}
List<CategoryResponseVo> responseVoList = categoryList.stream()
.map(this::toCategotyResongseVo).collect(Collectors.toList());
for (CategoryResponseVo vo : responseVoList) {
if (vo.getCid().equals(category.getId())) {
vo.setIsChosen(1);
}
}
return Result.success(convertVoList(responseVoList));
} catch (Exception e) {
return null;
}
}
public List<CategoryResponseVo> convertVoList(List<CategoryResponseVo> voList) {
Map<Integer, CategoryResponseVo> menuMap = new HashMap<>();
CategoryResponseVo root = new CategoryResponseVo();
root.setChild(Lists.newArrayList());
root.setCid(0);
menuMap.put(0, root);
if (CollectionUtils.isNotEmpty(voList)) {
for (CategoryResponseVo vo : voList) {
menuMap.put(vo.getCid(), vo);
}
for (CategoryResponseVo vo : voList) {
if (Objects.isNull(vo)) {
continue;
}
CategoryResponseVo parentVo = menuMap.get(vo.getPid());
if (Objects.isNull(parentVo)) {
continue;
}
if (CollectionUtils.isEmpty(parentVo.getChild())) {
parentVo.setChild(Lists.newArrayList());
}
parentVo.getChild().add(vo);
}
}
return root.getChild();
}
private CategoryResponseVo toCategotyResongseVo(Category category) {
CategoryResponseVo vo = new CategoryResponseVo();
vo.setCid(category.getId());
vo.setPid(category.getPid());
vo.setCategoryName(category.getName());
vo.setIsChosen(0);
return vo;
}
}
......@@ -100,7 +100,7 @@ public class FavoritesServiceImpl implements FavoritesService {
coinRequestDto.setIds(favoritesItemsRelations.stream()
.map(FavoritesItemsRelation::getItemId).collect(Collectors.toList()));
List<Item> items = itemDao.findListWithImages(coinRequestDto);
items = items.stream().filter(s -> StringUtils.isNotBlank(s.getImages())).collect(Collectors.toList());
items = items.stream().filter(s -> !s.getIsDeleted()).filter(s -> StringUtils.isNotBlank(s.getImages())).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(items)) {
List<String> images = new ArrayList<>();
if (items.size() <= 4) {
......@@ -275,10 +275,17 @@ public class FavoritesServiceImpl implements FavoritesService {
}
List<AgentTranceResponseVo> list = new ArrayList<>();
for (FavoritesItemsRelation relation : relationPage.getList()) {
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
agentTranceResponseVo.setAgentTraceInfo_("");
agentTranceResponseVo.setViewType(2);
ItemResponseVo vo = new ItemResponseVo();
Item item = itemDao.findById(relation.getItemId());
if (Objects.isNull(item)) {
vo.setId(relation.getItemId());
vo.setIsDeleted(1);
agentTranceResponseVo.setDetail(vo);
list.add(agentTranceResponseVo);
continue;
}
vo.setIsDeleted(0);
......@@ -330,10 +337,6 @@ public class FavoritesServiceImpl implements FavoritesService {
}
}
vo.setHomePageImage(homePageMap);
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
agentTranceResponseVo.setAgentTraceInfo_("");
agentTranceResponseVo.setViewType(2);
agentTranceResponseVo.setDetail(vo);
list.add(agentTranceResponseVo);
}
......@@ -408,10 +411,10 @@ public class FavoritesServiceImpl implements FavoritesService {
try {
Favorites favorites = favoritesDao.info(dto.getFavoritesId());
if (Objects.isNull(favorites)) {
Result.failed("数据异常,收藏册不存在");
return Result.failed("数据异常,收藏册不存在");
}
if (favoritesItemsRelationDao.isCollected(favorites.getUserId(), dto.getId())) {
Result.failed("您已经收藏过该藏品");
return Result.failed("您已经收藏过该藏品");
}
FavoritesItemsRelation favoritesItemsRelation = new FavoritesItemsRelation();
......
......@@ -73,6 +73,18 @@ public class FootPrintServiceImpl implements FootPrintService {
Item item = itemDao.findById(footprint.getItemId());
if (Objects.isNull(item)) {
itemResponseVo.setIsDeleted(1);
if (footprint.getAddTime().compareTo(today) >= 0) {
todayList.add(itemResponseVo);
}
if (footprint.getAddTime().compareTo(yesterday) >= 0 && footprint.getAddTime().compareTo(today) <= 0) {
yesterdayList.add(itemResponseVo);
}
if (footprint.getAddTime().compareTo(week) >= 0 && footprint.getAddTime().compareTo(yesterday) <= 0) {
weekList.add(itemResponseVo);
}
if (footprint.getAddTime().compareTo(month) >= 0 && footprint.getAddTime().compareTo(week) <= 0) {
monthList.add(itemResponseVo);
}
continue;
}
itemResponseVo.setIsDeleted(0);
......@@ -207,6 +219,18 @@ public class FootPrintServiceImpl implements FootPrintService {
Item item = itemDao.findById(footprint.getItemId());
if (Objects.isNull(item)) {
itemResponseVo.setIsDeleted(1);
if (footprint.getAddTime().compareTo(today) >= 0) {
todayList.add(itemResponseVo);
}
if (footprint.getAddTime().compareTo(yesterday) >= 0 && footprint.getAddTime().compareTo(today) <= 0) {
yesterdayList.add(itemResponseVo);
}
if (footprint.getAddTime().compareTo(week) >= 0 && footprint.getAddTime().compareTo(yesterday) <= 0) {
weekList.add(itemResponseVo);
}
if (footprint.getAddTime().compareTo(month) >= 0 && footprint.getAddTime().compareTo(week) <= 0) {
monthList.add(itemResponseVo);
}
continue;
}
itemResponseVo.setIsDeleted(0);
......
......@@ -6,4 +6,5 @@ import com.wwdz.ch.wx.entity.request.CategoryRequestDto;
public interface CategoryService {
Result top(CategoryRequestDto dto);
Result child(CategoryRequestDto dto);
Result find(CategoryRequestDto dto);
}
......@@ -62,4 +62,10 @@ public class WxCategoryController {
dto.setId(Integer.parseInt(id));
return categoryService.child(dto);
}
@ApiOperation(value = "名称查询")
@PostMapping(value = "/find")
public Result find(@RequestBody CategoryRequestDto dto) {
return categoryService.find(dto);
}
}
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