Commit b1fa3c20 authored by muhong's avatar muhong

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

parent 90bff1e4
......@@ -30,6 +30,6 @@ public class WxWebMvcConfiguration implements WebMvcConfigurer {
registry.addInterceptor(loginInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/wx/user/loginByWx"
, "/wx/user/loginByMobile", "/wx/user/loginRegCaptcha", "/wx/user/updateRegCaptcha", "/wx/item/page", "/wx/item/info");
, "/wx/user/loginByMobile", "/wx/user/loginRegCaptcha", "/wx/user/updateRegCaptcha", "/wx/item/page", "/wx/item/info", "/wx/favorites/info", "/wx/favorites/itemList");
}
}
......@@ -153,7 +153,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) {
......@@ -252,6 +252,31 @@ public class FavoritesServiceImpl implements FavoritesService {
vo.setAddTime(favorites.getAddTime());
vo.setUpdateTime(favorites.getUpdateTime());
vo.setCount(favoritesItemsRelationDao.countByFavoritesId(favorites.getId()));
vo.setImages(new ArrayList<>());
// 获取藏品的图片
List<FavoritesItemsRelation> favoritesItemsRelations = favoritesItemsRelationDao.listByFavoritesId(favorites.getId(), null);
if (CollectionUtils.isNotEmpty(favoritesItemsRelations)) {
CoinRequestDto coinRequestDto = new CoinRequestDto();
coinRequestDto.setIds(favoritesItemsRelations.stream()
.map(FavoritesItemsRelation::getItemId).collect(Collectors.toList()));
List<Item> items = itemDao.findListWithImages(coinRequestDto);
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) {
for (Item item : items) {
String[] image = item.getImages().split(";");
images.add(image[0]);
}
} else {
for (int i = 0; i < 4; i ++) {
String[] image = items.get(i).getImages().split(";");
images.add(image[0]);
}
}
vo.setImages(images);
}
}
logger.info("【请求结束】查看收藏册详情成功");
return Result.success(vo);
} catch (Exception e) {
......@@ -283,6 +308,7 @@ public class FavoritesServiceImpl implements FavoritesService {
Item item = itemDao.findById(relation.getItemId());
if (Objects.isNull(item)) {
vo.setId(relation.getItemId());
vo.setHomePageImage(getImage(item));
vo.setIsDeleted(1);
agentTranceResponseVo.setDetail(vo);
list.add(agentTranceResponseVo);
......@@ -295,48 +321,19 @@ public class FavoritesServiceImpl implements FavoritesService {
vo.setImages(item.getImages());
vo.setDetail(item.getDetail());
// 设置价格
if (item.getPrice() % 100 == 0) {
vo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
vo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
vo.setPrice(StringUtil.formatAmount(vo.getPrice()));
vo.setPrice(getPrice(item.getPrice()));
// 设置是否收藏或是否是自己发布的
vo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), relation.getItemId()) ? 1 : 0);
vo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(item.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
if (count < 1000) {
vo.setCollectCount(String.valueOf(count));
} else {
vo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
vo.setIsCollected(0);
vo.setIsMine(0);
if (dto.getUserId() != 0L) {
vo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), relation.getItemId()) ? 1 : 0);
vo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
}
// 设置收藏数
vo.setCollectCount(getCollectCount(item.getId(), item.getSourceType()));
// 设置图片或视频
Map<String, Object> homePageMap = new HashMap<>();
String[] image = item.getImages().split(";");
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
if (StringUtils.isNotBlank(item.getVideos())) {
String[] vedioImage = item.getVideos().split(";");
if (vedioImage[0].contains(",")) {
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[1]);
homePageMap.put("type", 1);
}
} else {
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
}
}
vo.setHomePageImage(homePageMap);
vo.setHomePageImage(getImage(item));
agentTranceResponseVo.setDetail(vo);
list.add(agentTranceResponseVo);
}
......@@ -495,6 +492,31 @@ public class FavoritesServiceImpl implements FavoritesService {
}
}
private Map<String, Object> getImage(Item item) {
Map<String, Object> homePageMap = new HashMap<>();
String[] image = item.getImages().split(";");
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
if (StringUtils.isNotBlank(item.getVideos())) {
String[] vedioImage = item.getVideos().split(";");
if (vedioImage[0].contains(",")) {
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[1]);
homePageMap.put("type", 1);
}
} else {
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
}
}
return homePageMap;
}
private Map<String, Object> getImageMap(String image) {
Map<String, Object> map = new HashMap<>();
String[] _image = image.split("_");
......@@ -504,4 +526,29 @@ public class FavoritesServiceImpl implements FavoritesService {
map.put("height", result[1]);
return map;
}
private String getCollectCount(Long itemId, Integer sourceType) {
String countString = "";
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(itemId);
if (sourceType.equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
if (count < 1000) {
countString = String.valueOf(count);
} else {
countString = String.format("%.1f", (double) count / 1000) + "k";
}
return countString;
}
private String getPrice(Long price) {
String priceString = "";
if (price % 100 == 0) {
priceString = String.valueOf(price / 100);
} else {
priceString = String.valueOf(price.doubleValue() / 100);
}
return StringUtil.formatAmount(priceString);
}
}
......@@ -95,48 +95,14 @@ public class FootPrintServiceImpl implements FootPrintService {
itemResponseVo.setImages(item.getImages());
itemResponseVo.setDetail(item.getDetail());
// 设置价格
if (item.getPrice() % 100 == 0) {
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
itemResponseVo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
itemResponseVo.setPrice(StringUtil.formatAmount(itemResponseVo.getPrice()));
itemResponseVo.setPrice(getPrice(item.getPrice()));
// 设置是否收藏或是否是自己发布的
itemResponseVo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), footprint.getItemId()) ? 1 : 0);
itemResponseVo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(item.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
if (count < 1000) {
itemResponseVo.setCollectCount(String.valueOf(count));
} else {
itemResponseVo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
itemResponseVo.setCollectCount(getCollectCount(item.getId(), item.getSourceType()));
// 设置图片或视频
Map<String, Object> homePageMap = new HashMap<>();
String[] image = item.getImages().split(";");
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
if (StringUtils.isNotBlank(item.getVideos())) {
String[] vedioImage = item.getVideos().split(";");
if (vedioImage[0].contains(",")) {
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[1]);
homePageMap.put("type", 1);
}
} else {
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
}
}
itemResponseVo.setHomePageImage(homePageMap);
itemResponseVo.setHomePageImage(getImage(item));
if (footprint.getAddTime().compareTo(today) >= 0) {
todayList.add(itemResponseVo);
......@@ -241,48 +207,14 @@ public class FootPrintServiceImpl implements FootPrintService {
itemResponseVo.setImages(item.getImages());
itemResponseVo.setDetail(item.getDetail());
// 设置价格
if (item.getPrice() % 100 == 0) {
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
itemResponseVo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
itemResponseVo.setPrice(StringUtil.formatAmount(itemResponseVo.getPrice()));
itemResponseVo.setPrice(getPrice(item.getPrice()));
// 设置是否收藏或是否是自己发布的
itemResponseVo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), footprint.getItemId()) ? 1 : 0);
itemResponseVo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(item.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
if (count < 1000) {
itemResponseVo.setCollectCount(String.valueOf(count));
} else {
itemResponseVo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
itemResponseVo.setCollectCount(getCollectCount(item.getId(), item.getSourceType()));
// 设置图片或视频
Map<String, Object> homePageMap = new HashMap<>();
String[] image = item.getImages().split(";");
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
if (StringUtils.isNotBlank(item.getVideos())) {
String[] vedioImage = item.getVideos().split(";");
if (vedioImage[0].contains(",")) {
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[1]);
homePageMap.put("type", 1);
}
} else {
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
}
}
itemResponseVo.setHomePageImage(homePageMap);
itemResponseVo.setHomePageImage(getImage(item));
if (footprint.getAddTime().compareTo(today) >= 0) {
......@@ -336,6 +268,31 @@ public class FootPrintServiceImpl implements FootPrintService {
}
}
private Map<String, Object> getImage(Item item) {
Map<String, Object> homePageMap = new HashMap<>();
String[] image = item.getImages().split(";");
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
if (StringUtils.isNotBlank(item.getVideos())) {
String[] vedioImage = item.getVideos().split(";");
if (vedioImage[0].contains(",")) {
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[1]);
homePageMap.put("type", 1);
}
} else {
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
}
}
return homePageMap;
}
private Map<String, Object> getImageMap(String image) {
Map<String, Object> map = new HashMap<>();
String[] _image = image.split("_");
......@@ -345,4 +302,29 @@ public class FootPrintServiceImpl implements FootPrintService {
map.put("height", result[1]);
return map;
}
private String getCollectCount(Long itemId, Integer sourceType) {
String countString = "";
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(itemId);
if (sourceType.equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
if (count < 1000) {
countString = String.valueOf(count);
} else {
countString = String.format("%.1f", (double) count / 1000) + "k";
}
return countString;
}
private String getPrice(Long price) {
String priceString = "";
if (price % 100 == 0) {
priceString = String.valueOf(price / 100);
} else {
priceString = String.valueOf(price.doubleValue() / 100);
}
return StringUtil.formatAmount(priceString);
}
}
......@@ -5,6 +5,7 @@ import com.qiniu.storage.model.FileInfo;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.CommonEnum;
import com.wwdz.ch.core.consts.MediaTypeEnum;
import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.storage.QiniuStorage;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.MediaUtil;
......@@ -72,6 +73,19 @@ public class ItemServiceImpl implements ItemService {
}
}
@Override
public Result recommend() {
try {
CoinRequestDto coinRequestDto = new CoinRequestDto();
coinRequestDto.setName("");
List<String> names = itemDao.findNames(coinRequestDto);
return Result.success(names);
} catch (Exception e) {
logger.error("搜索推荐失败", e);
return Result.failed("搜索推荐失败");
}
}
@Override
public Result page(ItemRequestDto dto) {
......@@ -103,35 +117,9 @@ public class ItemServiceImpl implements ItemService {
vo.setImages(item.getImages());
vo.setSourceType(item.getSourceType());
// 设置价格
if (item.getPrice() % 100 == 0) {
vo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
vo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
vo.setPrice(StringUtil.formatAmount(vo.getPrice()));
vo.setPrice(getPrice(item.getPrice()));
// 设置图片或视频
Map<String, Object> homePageMap = new HashMap<>();
String[] image = item.getImages().split(";");
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
if (StringUtils.isNotBlank(item.getVideos())) {
String[] vedioImage = item.getVideos().split(";");
if (vedioImage[0].contains(",")) {
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[1]);
homePageMap.put("type", 1);
}
} else {
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
}
}
vo.setHomePageImage(homePageMap);
vo.setHomePageImage(getImage(item));
// 设置是否收藏和是否是自己发布的
vo.setIsCollected(0);
vo.setIsMine(0);
......@@ -140,15 +128,7 @@ public class ItemServiceImpl implements ItemService {
vo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
}
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(item.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
if (count < 1000) {
vo.setCollectCount(String.valueOf(count));
} else {
vo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
vo.setCollectCount(getCollectCount(item.getId(), item.getSourceType()));
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
agentTranceResponseVo.setAgentTraceInfo_("");
......@@ -224,7 +204,11 @@ public class ItemServiceImpl implements ItemService {
try {
Item item = itemDao.findById(dto.getId());
if (Objects.isNull(item)) {
return Result.failed("该藏品已经被移除");
if (!dto.getUserId().equals(0L)) {
// 如果当前用户已收藏该藏品,则删除收藏关联
favoritesItemsRelationDao.deleteByUserIdItemId(dto.getUserId(), dto.getId());
}
return Result.failed(ResultCode.INVALID_DATA.getCode(), "该藏品已经被移除");
}
ItemResponseVo itemResponseVo = new ItemResponseVo();
// 设置基本信息
......@@ -256,12 +240,7 @@ public class ItemServiceImpl implements ItemService {
itemResponseVo.setCategoryName(category.getName());
}
// 设置价格
if (item.getPrice() % 100 == 0) {
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
itemResponseVo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
itemResponseVo.setPrice(StringUtil.formatAmount(itemResponseVo.getPrice()));
itemResponseVo.setPrice(getPrice(item.getPrice()));
// 设置是否收藏或是否是自己发布的
itemResponseVo.setIsCollected(0);
itemResponseVo.setIsMine(0);
......@@ -329,16 +308,7 @@ public class ItemServiceImpl implements ItemService {
favoritesItemsRelationDao.insert(favoritesItemsRelation);
// 查询收藏数
long count = favoritesItemsRelationDao.countByItemId(dto.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
String collectCount = "0";
if (count < 1000) {
collectCount = String.valueOf(count);
} else {
collectCount = String.format("%.1f", (double) count / 1000) + "k";
}
String collectCount = getCollectCount(item.getId(), item.getSourceType());
Map<String, Object> map = new HashMap<>();
map.put("favoritesId", favorites.getId());
......@@ -369,16 +339,7 @@ public class ItemServiceImpl implements ItemService {
favoritesItemsRelationDao.deleteByUserIdItemId(dto.getUserId(), dto.getId());
// 查询收藏数
long count = favoritesItemsRelationDao.countByItemId(dto.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
String collectCount = "0";
if (count < 1000) {
collectCount = String.valueOf(count);
} else {
collectCount = String.format("%.1f", (double) count / 1000) + "k";
}
String collectCount = getCollectCount(item.getId(), item.getSourceType());
Map<String, Object> map = new HashMap<>();
map.put("collectCount", collectCount);
......@@ -557,6 +518,31 @@ public class ItemServiceImpl implements ItemService {
return null;
}
private Map<String, Object> getImage(Item item) {
Map<String, Object> homePageMap = new HashMap<>();
String[] image = item.getImages().split(";");
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
if (StringUtils.isNotBlank(item.getVideos())) {
String[] vedioImage = item.getVideos().split(";");
if (vedioImage[0].contains(",")) {
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[1]);
homePageMap.put("type", 1);
}
} else {
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
}
}
return homePageMap;
}
private Map<String, Object> getImageMap(String image) {
Map<String, Object> map = new HashMap<>();
String[] _image = image.split("_");
......@@ -566,4 +552,29 @@ public class ItemServiceImpl implements ItemService {
map.put("height", result[1]);
return map;
}
private String getCollectCount(Long itemId, Integer sourceType) {
String countString = "";
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(itemId);
if (sourceType.equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
if (count < 1000) {
countString = String.valueOf(count);
} else {
countString = String.format("%.1f", (double) count / 1000) + "k";
}
return countString;
}
private String getPrice(Long price) {
String priceString = "";
if (price % 100 == 0) {
priceString = String.valueOf(price / 100);
} else {
priceString = String.valueOf(price.doubleValue() / 100);
}
return StringUtil.formatAmount(priceString);
}
}
......@@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletResponse;
public interface ItemService {
Result nameList(ItemRequestDto dto);
Result recommend();
Result page(ItemRequestDto dto);
Result list(ItemRequestDto dto);
......
......@@ -167,7 +167,10 @@ public class WxFavoritesController {
FavoritesRequestDto dto = new FavoritesRequestDto();
dto.setId(Long.parseLong(id));
dto.setUserId(Long.parseLong(userId));
dto.setUserId(0L);
if (StringUtils.isNotBlank(userId)) {
dto.setUserId(Long.parseLong(userId));
}
dto.setPage(Integer.parseInt(page));
dto.setSize(Integer.parseInt(size));
return favoritesService.itemList(dto);
......
......@@ -45,6 +45,12 @@ public class WxItemController {
return itemService.nameList(dto);
}
@ApiOperation(value = "推荐词汇")
@PostMapping("/recommend")
public Result recommend() {
return itemService.recommend();
}
@ApiOperation(value = "分页查询")
@PostMapping("/page")
public Result page(@RequestBody KlDataRequestDto klDataRequestDto) {
......
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