Commit 669a137c authored by muhong's avatar muhong

修改 价格和足迹

parent b4d6a366
......@@ -18,6 +18,7 @@ import com.wwdz.ch.wx.entity.vo.AgentTranceResponseVo;
import com.wwdz.ch.wx.entity.vo.FavoritesResponseVo;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.service.FavoritesService;
import com.wwdz.ch.wx.util.StringUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -276,12 +277,22 @@ public class FavoritesServiceImpl implements FavoritesService {
for (FavoritesItemsRelation relation : relationPage.getList()) {
ItemResponseVo vo = new ItemResponseVo();
Item item = itemDao.findDetails(relation.getItemId());
// 设置基本信息
vo.setId(relation.getItemId());
vo.setName(item.getName());
vo.setImages(item.getImages());
vo.setPrice(String.valueOf(item.getPrice() * 100));
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.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 --;
......@@ -291,26 +302,26 @@ public class FavoritesServiceImpl implements FavoritesService {
} else {
vo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
// 设置图片或视频
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[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[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);
......
......@@ -12,6 +12,7 @@ import com.wwdz.ch.wx.entity.request.FootPrintRequestDto;
import com.wwdz.ch.wx.entity.vo.FootPrintResponseVo;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.service.FootPrintService;
import com.wwdz.ch.wx.util.StringUtil;
import com.xxdxxs.utils.DateUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -20,7 +21,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -71,13 +71,23 @@ public class FootPrintServiceImpl implements FootPrintService {
for (Footprint footprint : list) {
Item item = itemDao.findDetails(footprint.getItemId());
ItemResponseVo itemResponseVo = new ItemResponseVo();
// 设置基本信息
itemResponseVo.setId(footprint.getId());
itemResponseVo.setItemId(item.getId());
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.setPrice(StringUtil.formatAmount(itemResponseVo.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 --;
......@@ -87,26 +97,26 @@ public class FootPrintServiceImpl implements FootPrintService {
} else {
itemResponseVo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
// 设置图片或视频
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[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[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);
......@@ -190,18 +200,23 @@ public class FootPrintServiceImpl implements FootPrintService {
for (Footprint footprint : list) {
Item item = itemDao.findDetails(footprint.getItemId());
ItemResponseVo itemResponseVo = new ItemResponseVo();
// 设置基本信息
itemResponseVo.setId(footprint.getId());
itemResponseVo.setItemId(item.getId());
itemResponseVo.setName(item.getName());
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.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 --;
......@@ -211,26 +226,26 @@ public class FootPrintServiceImpl implements FootPrintService {
} else {
itemResponseVo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
// 设置图片或视频
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[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[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);
......@@ -287,32 +302,6 @@ public class FootPrintServiceImpl implements FootPrintService {
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result add(FootPrintRequestDto dto) {
try {
Footprint footprint = footPrintDao.selectByUserIdItem(dto.getUserId(), dto.getItemId());
Date now = new Date();
if (Objects.isNull(footprint)) {
Footprint newVo = new Footprint();
newVo.setUserId(dto.getUserId());
newVo.setItemId(dto.getItemId());
newVo.setDeleted(false);
newVo.setAddTime(now);
newVo.setUpdateTime(now);
footPrintDao.insert(newVo);
} else {
footprint.setUpdateTime(now);
footPrintDao.upateTime(footprint);
}
return Result.success();
} catch (Exception e) {
logger.error("用户浏览藏品后添加或更新足迹失败", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return Result.failed();
}
}
private Map<String, Object> getImageMap(String image) {
Map<String, Object> map = new HashMap<>();
String[] _image = image.split("_");
......
......@@ -16,6 +16,7 @@ import com.wwdz.ch.wx.entity.vo.AgentTranceResponseVo;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.service.ItemService;
import com.wwdz.ch.wx.service.WxLoginService;
import com.wwdz.ch.wx.util.StringUtil;
import com.xxdxxs.utils.CommonUtils;
import com.xxdxxs.utils.DateUtils;
import org.apache.commons.collections.CollectionUtils;
......@@ -95,44 +96,50 @@ public class ItemServiceImpl implements ItemService {
List<AgentTranceResponseVo> resultList = new ArrayList<>();
for (Item item : page.getList()) {
ItemResponseVo vo = new ItemResponseVo();
// 设置基本信息
vo.setId(item.getId());
vo.setName(item.getName());
vo.setDetail(item.getDetail());
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.setDetail(item.getDetail());
vo.setIsCollected(0);
vo.setIsMine(0);
vo.setImages(item.getImages());
vo.setPrice(StringUtil.formatAmount(vo.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[] image = vedioImage[0].split(",");
homePageMap = getImageMap(image[1]);
homePageMap.put("url", image[1]);
String[] video = vedioImage[0].split(",");
homePageMap = getImageMap(video[1]);
homePageMap.put("url", video[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);
// 设置是否收藏和是否是自己发布的
vo.setIsCollected(0);
vo.setIsMine(0);
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);
}
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(item.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
......@@ -142,7 +149,6 @@ public class ItemServiceImpl implements ItemService {
} else {
vo.setCollectCount(String.format("%.1f", (double) count / 1000) + "k");
}
vo.setSourceType(item.getSourceType());
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
agentTranceResponseVo.setAgentTraceInfo_("");
......@@ -221,9 +227,14 @@ public class ItemServiceImpl implements ItemService {
return Result.failed("数据异常,该藏品不存在");
}
ItemResponseVo itemResponseVo = new ItemResponseVo();
// 设置基本信息
itemResponseVo.setId(item.getId());
itemResponseVo.setName(item.getName());
itemResponseVo.setImages(item.getImages());
itemResponseVo.setDetail(item.getDetail());
itemResponseVo.setSourceType(item.getSourceType());
itemResponseVo.setCreateTime(DateUtils.toString(item.getUpdateTime()));
// 设置视频
itemResponseVo.setVideos(null);
if (StringUtils.isNotBlank(item.getVideos())) {
StringBuilder stringBuilder = new StringBuilder();
......@@ -238,19 +249,20 @@ public class ItemServiceImpl implements ItemService {
}
itemResponseVo.setVideos(stringBuilder.substring(0, stringBuilder.length() - 1));
}
itemResponseVo.setDetail(item.getDetail());
// 设置分类id和名称
itemResponseVo.setCid(item.getCid());
Category category = categoryDao.findById(item.getCid());
if (Objects.nonNull(category)) {
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.setSourceType(item.getSourceType());
itemResponseVo.setCreateTime(DateUtils.toString(item.getUpdateTime()));
itemResponseVo.setPrice(StringUtil.formatAmount(itemResponseVo.getPrice()));
// 设置是否收藏或是否是自己发布的
itemResponseVo.setIsCollected(0);
itemResponseVo.setIsMine(0);
if (!dto.getUserId().equals(0L)) {
......@@ -263,15 +275,21 @@ public class ItemServiceImpl implements ItemService {
}
itemResponseVo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
// 添加用户足迹
Footprint footprint = new Footprint();
footprint.setUserId(dto.getUserId());
footprint.setItemId(item.getId());
// 添加或更新用户足迹
Footprint footprint = footPrintDao.selectByUserIdItem(dto.getUserId(), item.getId());
Date now = new Date();
footprint.setAddTime(now);
footprint.setUpdateTime(now);
footprint.setDeleted(false);
footPrintDao.insert(footprint);
if (Objects.isNull(footprint)) {
Footprint newVo = new Footprint();
newVo.setUserId(dto.getUserId());
newVo.setItemId(item.getId());
newVo.setDeleted(false);
newVo.setAddTime(now);
newVo.setUpdateTime(now);
footPrintDao.insert(newVo);
} else {
footprint.setUpdateTime(now);
footPrintDao.upateTime(footprint);
}
}
logger.info("【请求结束】查看藏品详情成功");
return Result.success(itemResponseVo);
......
......@@ -7,5 +7,4 @@ public interface FootPrintService {
Result listAll(FootPrintRequestDto dto);
Result page(FootPrintRequestDto dto);
Result delete(FootPrintRequestDto dto);
Result add(FootPrintRequestDto dto);
}
......@@ -5,6 +5,12 @@ import java.util.Random;
public class StringUtil {
private static final String ALLOWED_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
/**
* 获取随机任意长度的字符串
*
* @param length
* @return
*/
public static String generateRandomString(int length) {
Random random = new Random();
StringBuilder sb = new StringBuilder(length);
......@@ -13,4 +19,34 @@ public class StringUtil {
}
return sb.toString();
}
/**
* 格式化金额
*
* @param amount
* @return
*/
public static String formatAmount(String amount) {
String minMoney = null;
String intMoney = null;
if (amount.contains(".")) {
minMoney = amount.substring(amount.indexOf("."));
intMoney = amount.substring(0, amount.indexOf("."));
} else {
intMoney = amount;
}
StringBuilder sb = new StringBuilder();
int j = 1;
for (int i = intMoney.length() - 1; i >= 0; i--) {
sb.insert(0, intMoney.charAt(i));
if (j % 3 == 0 && i != 0) {
sb.insert(0, ",");
}
j++;
}
if (amount.contains(".")) {
return sb + minMoney;
}
return sb.toString();
}
}
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