Commit 91698cc6 authored by shiyu's avatar shiyu

Merge remote-tracking branch 'origin/master'

parents 3dc95b53 ad1fa2f3
......@@ -49,7 +49,7 @@ public class FavoritesDaoImpl implements FavoritesDao {
FavoritesExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andDeletedEqualTo(false);
example.orderBy("sort desc,add_time desc");
return favoritesMapper.selectByExampleWithBLOBs(example);
}
......@@ -59,7 +59,7 @@ public class FavoritesDaoImpl implements FavoritesDao {
FavoritesExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andDeletedEqualTo(false);
example.orderBy("add_time desc");
example.orderBy("sort desc,add_time desc");
PageHelper.startPage(page, size);
List<Favorites> list = favoritesMapper.selectByExampleWithBLOBs(example);
return new PageInfo<>(list);
......
......@@ -18,7 +18,7 @@ public class ItemResponseVo implements Entity {
private Integer sourceType;
private Integer isCollected;
private Long favoritesId;
private long collectCount;
private String collectCount;
private Integer isMine;
private String createTime;
private String videos;
......
......@@ -27,10 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
@Service
......@@ -147,7 +144,31 @@ public class FavoritesServiceImpl implements FavoritesService {
vo.setSort(favorites.getSort());
vo.setDeleted(favorites.getDeleted());
vo.setAddTime(favorites.getAddTime());
// vo.setImages(favorites.getImages());
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 -> 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);
}
}
vo.setUpdateTime(favorites.getUpdateTime());
vo.setCount(favoritesItemsRelationDao.countByFavoritesId(favorites.getId()));
result.add(vo);
......@@ -265,7 +286,34 @@ public class FavoritesServiceImpl implements FavoritesService {
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
vo.setCollectCount(count);
if (count < 1000) {
vo.setCollectCount(String.valueOf(count));
} else {
vo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
Map<String, Object> homePageMap = new HashMap<>();
if (StringUtils.isNotBlank(item.getVedios())) {
String[] vedioImage = item.getVedios().split(";");
if (vedioImage[0].contains(",")) {
String[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
homePageMap.put("type", 1);
}
} else {
String[] image = item.getImages().split(";");
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
} else {
homePageMap.put("type", 2);
homePageMap.put("url", image[0]);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
}
}
vo.setHomePageImage(homePageMap);
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
agentTranceResponseVo.setAgentTraceInfo_("");
......@@ -425,4 +473,14 @@ public class FavoritesServiceImpl implements FavoritesService {
return Result.failed("移动藏品失败");
}
}
private Map<String, Object> getImageMap(String image) {
Map<String, Object> map = new HashMap<>();
String[] _image = image.split("_");
String[] infoImage = _image[1].split("\\.");
String[] result = infoImage[0].split("x");
map.put("width", result[0]);
map.put("height", result[1]);
return map;
}
}
package com.wwdz.ch.wx.impl;
import com.wwdz.ch.core.consts.CommonEnum;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.FavoritesItemsRelationDao;
import com.wwdz.ch.db.dao.FootPrintDao;
import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.dao.UserItemsRelationDao;
import com.wwdz.ch.db.domain.Footprint;
import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.wx.entity.request.FootPrintRequestDto;
......@@ -12,6 +14,7 @@ import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.service.FootPrintService;
import com.xxdxxs.utils.DateUtils;
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;
......@@ -31,6 +34,8 @@ public class FootPrintServiceImpl implements FootPrintService {
private ItemDao itemDao;
@Autowired
private FavoritesItemsRelationDao favoritesItemsRelationDao;
@Autowired
private UserItemsRelationDao userItemsRelationDao;
@Override
public Result listAll(FootPrintRequestDto dto) {
......@@ -73,7 +78,39 @@ public class FootPrintServiceImpl implements FootPrintService {
itemResponseVo.setDetail(item.getDetail());
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
itemResponseVo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), footprint.getItemId()) ? 1 : 0);
itemResponseVo.setCollectCount(favoritesItemsRelationDao.countByItemId(footprint.getItemId()));
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");
}
Map<String, Object> homePageMap = new HashMap<>();
if (StringUtils.isNotBlank(item.getVedios())) {
String[] vedioImage = item.getVedios().split(";");
if (vedioImage[0].contains(",")) {
String[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
homePageMap.put("type", 1);
}
} else {
String[] image = item.getImages().split(";");
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
} else {
homePageMap.put("type", 2);
homePageMap.put("url", image[0]);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
}
}
itemResponseVo.setHomePageImage(homePageMap);
if (footprint.getAddTime().compareTo(today) >= 0) {
todayList.add(itemResponseVo);
}
......@@ -158,9 +195,47 @@ public class FootPrintServiceImpl implements FootPrintService {
itemResponseVo.setName(item.getName());
itemResponseVo.setImages(item.getImages());
itemResponseVo.setDetail(item.getDetail());
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
if (item.getPrice() % 100 == 0) {
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
itemResponseVo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
itemResponseVo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), footprint.getItemId()) ? 1 : 0);
itemResponseVo.setCollectCount(favoritesItemsRelationDao.countByItemId(footprint.getItemId()));
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");
}
Map<String, Object> homePageMap = new HashMap<>();
if (StringUtils.isNotBlank(item.getVedios())) {
String[] vedioImage = item.getVedios().split(";");
if (vedioImage[0].contains(",")) {
String[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
homePageMap.put("type", 1);
}
} else {
String[] image = item.getImages().split(";");
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
} else {
homePageMap.put("type", 2);
homePageMap.put("url", image[0]);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
}
}
itemResponseVo.setHomePageImage(homePageMap);
if (footprint.getAddTime().compareTo(today) >= 0) {
todayList.add(itemResponseVo);
}
......@@ -237,4 +312,14 @@ public class FootPrintServiceImpl implements FootPrintService {
return Result.failed();
}
}
private Map<String, Object> getImageMap(String image) {
Map<String, Object> map = new HashMap<>();
String[] _image = image.split("_");
String[] infoImage = _image[1].split("\\.");
String[] result = infoImage[0].split("x");
map.put("width", result[0]);
map.put("height", result[1]);
return map;
}
}
......@@ -93,10 +93,38 @@ public class ItemServiceImpl implements ItemService {
ItemResponseVo vo = new ItemResponseVo();
vo.setId(item.getId());
vo.setName(item.getName());
vo.setPrice(String.valueOf(item.getPrice() * 100));
if (item.getPrice() % 100 == 0) {
vo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
vo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
vo.setDetail(item.getDetail());
vo.setIsCollected(0);
vo.setIsMine(0);
vo.setImages(item.getImages());
Map<String, Object> homePageMap = new HashMap<>();
if (StringUtils.isNotBlank(item.getVedios())) {
String[] vedioImage = item.getVedios().split(";");
if (vedioImage[0].contains(",")) {
String[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
homePageMap.put("type", 1);
}
} else {
String[] image = item.getImages().split(";");
if (image[0].contains("_")) {
homePageMap = getImageMap(image[0]);
homePageMap.put("url", image[0]);
homePageMap.put("type", 2);
} else {
homePageMap.put("type", 2);
homePageMap.put("url", image[0]);
homePageMap.put("width", "0");
homePageMap.put("height", "0");
}
}
vo.setHomePageImage(homePageMap);
if (!dto.getUserId().equals(0L)) {
vo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), item.getId()) ? 1 : 0);
vo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
......@@ -105,7 +133,11 @@ public class ItemServiceImpl implements ItemService {
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
vo.setCollectCount(count);
if (count < 1000) {
vo.setCollectCount(String.valueOf(count));
} else {
vo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
vo.setSourceType(item.getSourceType());
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
......@@ -143,12 +175,13 @@ public class ItemServiceImpl implements ItemService {
if (StringUtils.isNotBlank(dto.getVideos())) {
item.setVedios(getVediosImage(dto.getVideos()));
}
item.setPrice(Long.parseLong(dto.getPrice()) / 100);
item.setPrice(Long.parseLong(dto.getPrice()) * 100);
item.setDetail(dto.getDetail());
Date now = new Date();
item.setCreateTime(now);
item.setUpdateTime(now);
item.setSourceType(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode());
item.setSource(CommonEnum.SourceEnum.USER_UPLOAD.getCode());
item.setIsDeleted(false);
itemDao.insert(item);
......@@ -187,16 +220,33 @@ public class ItemServiceImpl implements ItemService {
itemResponseVo.setId(item.getId());
itemResponseVo.setName(item.getName());
itemResponseVo.setImages(item.getImages());
itemResponseVo.setVideos(item.getVedios());
itemResponseVo.setVideos(null);
if (StringUtils.isNotBlank(item.getVedios())) {
StringBuilder stringBuilder = new StringBuilder();
String[] videos = item.getVedios().split(";");
for (String s : videos) {
if (s.contains(",")) {
String[] video = s.split(",");
stringBuilder.append(video[0]).append(";");
} else {
stringBuilder.append(s);
}
}
itemResponseVo.setVideos(stringBuilder.substring(0, stringBuilder.length() - 1));
}
itemResponseVo.setDetail(item.getDetail());
itemResponseVo.setCid(item.getCid());
Category category = categoryDao.findById(item.getCid());
if (Objects.nonNull(category)) {
itemResponseVo.setCategoryName(category.getName());
}
itemResponseVo.setPrice(String.valueOf(item.getPrice() * 100));
if (item.getPrice() % 100 == 0) {
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
} else {
itemResponseVo.setPrice(String.valueOf(item.getPrice().doubleValue() / 100));
}
itemResponseVo.setSourceType(item.getSourceType());
itemResponseVo.setCreateTime(DateUtils.toString(item.getCreateTime()));
itemResponseVo.setCreateTime(DateUtils.toString(item.getUpdateTime()));
itemResponseVo.setIsCollected(0);
itemResponseVo.setIsMine(0);
if (!dto.getUserId().equals(0L)) {
......@@ -234,6 +284,10 @@ public class ItemServiceImpl implements ItemService {
if (dto.getUserId().equals(0L)) {
return Result.failed("您尚未登录,请先登录");
}
Item item = itemDao.findDetails(dto.getId());
if (Objects.isNull(item)) {
return Result.failed("数据异常,藏品不存在");
}
// 判断是否收藏过
if (favoritesItemsRelationDao.isCollected(dto.getUserId(), dto.getId())) {
return Result.failed("您已经收藏过该藏品");
......@@ -252,8 +306,21 @@ public class ItemServiceImpl implements ItemService {
favoritesItemsRelation.setAddTime(new Date());
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";
}
Map<String, Object> map = new HashMap<>();
map.put("favoritesId", favorites.getId());
map.put("collectCount", collectCount);
return Result.success(map);
} catch (Exception e) {
logger.error("首页收藏失败,原因:" + e.getMessage(), e);
......@@ -268,13 +335,32 @@ public class ItemServiceImpl implements ItemService {
if (dto.getUserId().equals(0L)) {
return Result.failed("您尚未登录,请先登录");
}
Item item = itemDao.findDetails(dto.getId());
if (Objects.isNull(item)) {
return Result.failed("数据异常,藏品不存在");
}
if (userItemsRelationDao.isExisted(dto.getUserId(), dto.getId())) {
return Result.failed("操作失败,无法取消收藏");
return Result.failed("自己发布的藏品不能取消收藏");
}
// 删除藏品和收藏册关联
favoritesItemsRelationDao.deleteByUserIdItemId(dto.getUserId(), dto.getId());
return Result.success();
// 查询收藏数
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";
}
Map<String, Object> map = new HashMap<>();
map.put("collectCount", collectCount);
return Result.success(map);
} catch (Exception e) {
logger.error("首页取消收藏失败,原因:" + e.getMessage(), e);
return Result.failed("首页取消收藏失败");
......@@ -295,8 +381,7 @@ public class ItemServiceImpl implements ItemService {
if (StringUtils.isNotBlank(dto.getVideos())) {
item.setVedios(getVediosImage(dto.getVideos()));
}
item.setVedios(dto.getVideos());
item.setPrice(Long.parseLong(dto.getPrice()) / 100);
item.setPrice(Long.parseLong(dto.getPrice()) * 100);
item.setDetail(dto.getDetail());
Date now = new Date();
item.setUpdateTime(now);
......@@ -456,4 +541,14 @@ public class ItemServiceImpl implements ItemService {
}
return null;
}
private Map<String, Object> getImageMap(String image) {
Map<String, Object> map = new HashMap<>();
String[] _image = image.split("_");
String[] infoImage = _image[1].split("\\.");
String[] result = infoImage[0].split("x");
map.put("width", result[0]);
map.put("height", result[1]);
return map;
}
}
......@@ -145,16 +145,6 @@ public class WxFootprintController {
return Result.failed("页面大小不能为空");
}
if (StringUtils.isBlank(userId)) {
return Result.failed("用户id不能为空");
}
if (StringUtils.isBlank(page)) {
return Result.failed("当前页不能为空");
}
if (StringUtils.isBlank(size)) {
return Result.failed("页面大小不能为空");
}
FootPrintRequestDto dto = new FootPrintRequestDto();
dto.setUserId(Long.parseLong(userId));
dto.setPage(Integer.parseInt(page));
......
......@@ -100,11 +100,8 @@ public class WxItemController {
if (StringUtils.isBlank(name)) {
return Result.failed("标题不能为空");
}
if (StringUtils.isBlank(price)) {
return Result.failed("价格不能为空");
}
if (StringUtils.isBlank(images)) {
return Result.failed("图片不能为空");
return Result.failed("请至少上传一张图片");
}
if (StringUtils.isBlank(favoritesId)) {
return Result.failed("收藏册id不能为空");
......@@ -118,6 +115,9 @@ public class WxItemController {
dto.setFavoritesId(Long.parseLong(favoritesId));
dto.setImages(images);
dto.setVideos(videos);
if (StringUtils.isBlank(price)) {
price = "0";
}
dto.setPrice(price);
return itemService.add(dto);
}
......@@ -148,11 +148,8 @@ public class WxItemController {
if (StringUtils.isBlank(name)) {
return Result.failed("标题不能为空");
}
if (StringUtils.isBlank(price)) {
return Result.failed("价格不能为空");
}
if (StringUtils.isBlank(images)) {
return Result.failed("图片不能为空");
return Result.failed("请至少上传一张图片");
}
if (StringUtils.isBlank(favoritesId)) {
return Result.failed("收藏册id不能为空");
......@@ -167,6 +164,9 @@ public class WxItemController {
dto.setFavoritesId(Long.parseLong(favoritesId));
dto.setImages(images);
dto.setVideos(videos);
if (StringUtils.isBlank(price)) {
price = "0";
}
dto.setPrice(price);
return itemService.update(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