package com.yeshi.fanli.util.factory.goods;
|
|
import com.yeshi.common.vo.ClientTextStyleVO;
|
import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
|
import com.yeshi.fanli.dto.jd.JDCouponInfo;
|
import com.yeshi.fanli.dto.jd.JDPingouInfo;
|
import com.yeshi.fanli.dto.jd.JDShopInfo;
|
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
|
import com.yeshi.fanli.dto.suning.SuningGoodsImg;
|
import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
|
import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
|
import com.yeshi.fanli.entity.goods.CommonGoods;
|
import com.yeshi.fanli.entity.jd.JDGoods;
|
import com.yeshi.fanli.log.LogHelper;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.jd.JDUtil;
|
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
|
import com.yeshi.fanli.util.suning.SuningUtil;
|
import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
|
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
import com.yeshi.fanli.util.vipshop.VipShopUtil;
|
import com.yeshi.fanli.vo.goods.CouponInfoVO;
|
import com.yeshi.fanli.vo.goods.MoneyInfoVO;
|
import com.yeshi.fanli.vo.goods.ShopInfoVO;
|
import com.yeshi.fanli.lijin.vo.GoodsDetailVO;
|
import com.yeshi.fanli.lijin.vo.GoodsDetailVO.GoodsInfoVO;
|
import com.yeshi.fanli.lijin.vo.GoodsDetailVO.GoodsRightsVO;
|
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
|
import org.yeshi.utils.MoneyBigDecimalUtil;
|
import org.yeshi.utils.TimeUtil;
|
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* 商品加工
|
*
|
* @author Administrator
|
*/
|
public class GoodsDetailVOLijinFactory {
|
|
|
public static GoodsInfoVO convertTaoBao(TaoBaoGoodsBrief goods, GoodsMoneyConfigParamsDTO params) {
|
GoodsInfoVO goodsInfo = new GoodsInfoVO();
|
goodsInfo.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
|
goodsInfo.setGoodsId(goods.getAuctionId() + "");
|
goodsInfo.setTitle(goods.getTitle());
|
goodsInfo.setSalesType(1); // 默认月销量
|
|
String provcity = goods.getProvcity();
|
if (!StringUtil.isNullOrEmpty(provcity)) {
|
String[] arr = provcity.split("\\s+");
|
goodsInfo.setAddress(StringUtil.concat(Arrays.asList(arr), "·"));
|
}
|
|
List<String> imgList = goods.getImgList();
|
if (imgList != null) {
|
goodsInfo.setImgList(imgList);
|
} else {
|
imgList = new ArrayList<String>();
|
imgList.add(goods.getPictUrl());
|
goodsInfo.setImgList(imgList);
|
}
|
|
Integer state = goods.getState();
|
if (state == null) {
|
goodsInfo.setState(0);
|
} else {
|
goodsInfo.setState(state);
|
}
|
|
goodsInfo.setSalesCount(TaoBaoUtil.getSaleCount(goods.getBiz30day()));
|
|
|
Integer shopType = goods.getUserType();
|
if (shopType != null && shopType == 1) {
|
goodsInfo.setShopType(11); // 天猫
|
} else {
|
goodsInfo.setShopType(10); // 淘宝
|
}
|
|
goodsInfo.setZkPrice(getMoneyDesc(goods.getZkPrice()));
|
goodsInfo.setCouponPrice(TaoBaoUtil.getCouponPrice(goods));
|
|
//-----------资金信息--------------
|
MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
|
moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
|
//非返利商品库商品走分享比例
|
boolean isSpecialGoods = TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType());
|
BigDecimal buyCommission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(), !isSpecialGoods);
|
moneyInfoVO.setFanliMoney("¥" + buyCommission);
|
moneyInfoVO.setFinalMoney(getMoneyDesc(goodsInfo.getCouponPrice().subtract(buyCommission)));
|
goodsInfo.setMoneyInfo(moneyInfoVO);
|
// moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(), true));
|
|
|
// 券信息
|
if (goods.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) {
|
// 计算券后价
|
List<CouponInfoVO> couponInfoVOList = new ArrayList<>();
|
CouponInfoVO coupon = new CouponInfoVO();
|
coupon.setAmount(goods.getCouponAmount());
|
coupon.setLeftCount(goods.getCouponLeftCount());
|
coupon.setTotalCount(goods.getCouponTotalCount());
|
if (goods.getCouponEffectiveEndTime() != null) {
|
coupon.setEndTime(goods.getCouponEffectiveEndTime().replace("-", "."));
|
}
|
|
if (goods.getCouponEffectiveStartTime() != null) {
|
coupon.setStartTime(goods.getCouponEffectiveStartTime().replace("-", "."));
|
}
|
|
if (!StringUtil.isNullOrEmpty(goods.getCouponLink()))
|
coupon.setLink(goods.getCouponLink());
|
else
|
coupon.setLink(
|
TaoBaoCouponUtil.getCoupleUrl(goods.getCouponActivityId(), null, goods.getAuctionId() + ""));
|
coupon.setStartFee(goods.getCouponStartFee());
|
coupon.setShopCoupon(goods.isShopCoupon());
|
goodsInfo.setTempCoupon(coupon);
|
couponInfoVOList.add(coupon);
|
|
goodsInfo.setCouponInfoList(couponInfoVOList);
|
}
|
|
|
// 店铺信息
|
if (!StringUtil.isNullOrEmpty(goods.getShopTitle())) {
|
ShopInfoVO shop = new ShopInfoVO();
|
shop.setShopName(goods.getShopTitle());
|
|
if (goods.getSellerId() != null)
|
shop.setId(goods.getSellerId().toString());
|
|
if (shopType != null && shopType == 1) {
|
shop.setUserType(11);
|
} else {
|
shop.setUserType(10);
|
}
|
goodsInfo.setShopInfo(shop);
|
}
|
|
if (TaoBaoUtil.isYUShou(goods)) {// 预售商品
|
goodsInfo = loadYuShouInfo(goodsInfo, goods, null, params.getFanLiRate(), params.getShareRate());
|
}
|
|
if (Constant.IS_TEST) {
|
// 添加标签
|
List<ClientTextStyleVO> labels = goodsInfo.getLabels();
|
if (labels == null)
|
labels = new ArrayList<>();
|
|
labels.add(new ClientTextStyleVO("预售", "#FF2B4E"));
|
labels.add(new ClientTextStyleVO("爆款", "#FF2B4E"));
|
labels.add(new ClientTextStyleVO("超级划算", "#FF2B4E"));
|
goodsInfo.setLabels(labels);
|
}
|
|
return fillRights(fillFanliPrice(goodsInfo, false));
|
}
|
|
private static GoodsInfoVO loadYuShouInfo(GoodsInfoVO goodsInfo, TaoBaoGoodsBrief goods, String pid,
|
BigDecimal fanLiRate, BigDecimal shareRate) {
|
|
if (goodsInfo != null && goods != null) {
|
// 添加标签
|
if (goodsInfo.getLabels() == null)
|
goodsInfo.setLabels(new ArrayList<>());
|
goodsInfo.getLabels().add(new ClientTextStyleVO("预售", "#FF2B4E"));
|
}
|
return goodsInfo;
|
}
|
|
private static CouponInfoVO convertJDCouponInfo(JDCouponInfo couponInfo) {
|
CouponInfoVO coupon = new CouponInfoVO();
|
coupon.setAmount(couponInfo.getDiscount());
|
coupon.setLink(couponInfo.getLink());
|
coupon.setStartFee(couponInfo.getQuota());
|
|
if (couponInfo.getGetStartTime() != null) {
|
coupon.setStartTime(TimeUtil.getGernalTime(couponInfo.getGetStartTime(), "yyyy.MM.dd"));
|
}
|
|
if (couponInfo.getGetEndTime() != null) {
|
coupon.setEndTime(TimeUtil.getGernalTime(couponInfo.getGetEndTime(), "yyyy.MM.dd"));
|
}
|
|
return coupon;
|
}
|
|
private static List<CouponInfoVO> filterCouponInfo(List<CouponInfoVO> couponList) {
|
if (couponList == null)
|
return null;
|
long currentTime = System.currentTimeMillis();
|
Set<String> sets = new HashSet<>();
|
// 过滤掉过期券
|
for (int i = 0; i < couponList.size(); i++) {
|
if (couponList.get(i).getStartTime() != null && couponList.get(i).getEndTime() != null) {
|
long startTime = TimeUtil.convertToTimeTemp(couponList.get(i).getStartTime(), "yyyy.MM.dd");
|
long endTime = TimeUtil.convertToTimeTemp(couponList.get(i).getEndTime(), "yyyy.MM.dd")
|
+ 1000 * 60 * 60 * 24L;
|
if (currentTime < startTime || currentTime >= endTime) {
|
couponList.remove(i--);
|
continue;
|
}
|
}
|
// 过滤掉面值相同与起始金额相同的
|
String key = couponList.get(i).getStartFee() + "-" + couponList.get(i).getAmount();
|
if (!sets.contains(key))
|
sets.add(key);
|
else {
|
couponList.remove(i--);
|
continue;
|
}
|
}
|
return couponList;
|
}
|
|
|
public static GoodsInfoVO convertJDGoods(JDGoods goods, GoodsMoneyConfigParamsDTO params) {
|
GoodsInfoVO goodsInfo = new GoodsInfoVO();
|
goodsInfo.setGoodsType(Constant.SOURCE_TYPE_JD);
|
goodsInfo.setGoodsId(goods.getItemId() + "");
|
goodsInfo.setTitle(goods.getSkuName());
|
goodsInfo.setSalesType(1); // 默认月销量
|
goodsInfo.setImgList(goods.getImageList());
|
goodsInfo.setState(0);
|
|
String salesCountMidea = null;
|
Long count = goods.getInOrderCount30Days();
|
if (count < 10000) {
|
salesCountMidea = count + "";
|
} else {
|
double sales = count;
|
salesCountMidea = String.format("%.1f", sales / 10000);
|
salesCountMidea = salesCountMidea + "万";
|
}
|
goodsInfo.setSalesCount(salesCountMidea);
|
|
BigDecimal zkPrice = null;
|
JDPingouInfo pinGouInfo = goods.getPinGouInfo();
|
if (pinGouInfo == null) {
|
zkPrice = goods.getPrice();
|
} else {
|
zkPrice = pinGouInfo.getPingouPrice();
|
}
|
goodsInfo.setZkPrice(getMoneyDesc(zkPrice));
|
|
goodsInfo.setCouponPrice(JDUtil.getCouponPrice(goods));
|
|
// 资金信息
|
MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
|
moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
|
BigDecimal commission = JDUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
|
moneyInfoVO.setFanliMoney("¥" + commission);
|
moneyInfoVO.setFinalMoney(getMoneyDesc(JDUtil.getCouponPrice(goods).subtract(commission)));
|
// moneyInfoVO.setShareMoney("¥" + JDUtil.getGoodsFanLiMoney(goods, params.getShareRate()));
|
|
//获取当前商品的最优券
|
JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods);
|
if (couponInfo != null) {
|
BigDecimal discount = couponInfo.getDiscount();
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
|
CouponInfoVO coupon = new CouponInfoVO();
|
coupon.setAmount(discount);
|
coupon.setLink(couponInfo.getLink());
|
coupon.setStartFee(couponInfo.getQuota());
|
|
if (couponInfo.getGetStartTime() != null) {
|
coupon.setStartTime(sdf.format(new Date(couponInfo.getGetStartTime())));
|
}
|
|
if (couponInfo.getGetEndTime() != null) {
|
coupon.setEndTime(sdf.format(new Date(couponInfo.getGetEndTime())));
|
}
|
goodsInfo.setTempCoupon(coupon);
|
}
|
|
goodsInfo.setMoneyInfo(moneyInfoVO);
|
|
if (goods.getCouponInfoList() != null && goods.getCouponInfoList().size() > 0) {
|
List<CouponInfoVO> couponList = new ArrayList<>();
|
for (JDCouponInfo jdCoupon : goods.getCouponInfoList()) {
|
couponList.add(convertJDCouponInfo(jdCoupon));
|
}
|
goodsInfo.setCouponInfoList(filterCouponInfo(couponList));
|
}
|
|
|
List<ClientTextStyleVO> labels = goodsInfo.getLabels();
|
// 京东自营标签
|
String owner = goods.getOwner();
|
if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
|
goodsInfo.setShopType(21); // 京东自营
|
if (labels == null) {
|
labels = new ArrayList<ClientTextStyleVO>();
|
}
|
ClientTextStyleVO textStyleVO = new ClientTextStyleVO();
|
textStyleVO.setContent("京东自营");
|
textStyleVO.setColor("#E42219");
|
labels.add(textStyleVO);
|
} else {
|
goodsInfo.setShopType(20); // 京东
|
}
|
|
if (pinGouInfo != null) {
|
if (labels == null) {
|
labels = new ArrayList<>();
|
}
|
ClientTextStyleVO textStyleVO = new ClientTextStyleVO();
|
textStyleVO.setContent("拼购");
|
textStyleVO.setColor("#E42219");
|
labels.add(textStyleVO);
|
}
|
goodsInfo.setLabels(labels);
|
|
// 店铺信息
|
JDShopInfo shopInfo = goods.getShopInfo();
|
if (shopInfo != null && !StringUtil.isNullOrEmpty(shopInfo.getShopName())) {
|
ShopInfoVO shop = new ShopInfoVO();
|
shop.setShopName(shopInfo.getShopName());
|
shop.setId(shopInfo.getShopId().toString());
|
|
if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
|
shop.setUserType(20);
|
} else {
|
shop.setUserType(21);
|
}
|
goodsInfo.setShopInfo(shop);
|
}
|
return fillFanliPrice(fillRights(goodsInfo), false);
|
}
|
|
|
public static GoodsInfoVO convertPDDGoods(PDDGoodsDetail goods, GoodsMoneyConfigParamsDTO params) {
|
|
boolean bijia = false;
|
|
GoodsInfoVO goodsInfo = new GoodsInfoVO();
|
goodsInfo.setGoodsType(Constant.SOURCE_TYPE_PDD);
|
goodsInfo.setGoodsId(goods.getGoodsId() + "");
|
goodsInfo.setTitle(goods.getGoodsName());
|
goodsInfo.setSalesType(4); // 总销量
|
goodsInfo.setShopType(30); // 拼多多
|
|
String[] goodsGalleryUrls = goods.getGoodsGalleryUrls();
|
if (goodsGalleryUrls != null) {
|
goodsInfo.setImgList(Arrays.asList(goodsGalleryUrls));
|
}
|
|
Integer state = goods.getState();
|
if (state == null) {
|
goodsInfo.setState(0);
|
} else {
|
goodsInfo.setState(goods.getState());
|
}
|
|
// 总销量
|
String salesTip = goods.getSalesTip();
|
if (StringUtil.isNullOrEmpty(salesTip)) {
|
salesTip = "0";
|
}
|
goodsInfo.setSalesCount(salesTip);
|
|
// 资金信息
|
MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
|
moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
|
BigDecimal commission = PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
|
BigDecimal shareCommission = PinDuoDuoUtil.getGoodsShareMoney(goods, params.getFanLiRate());
|
moneyInfoVO.setFanliMoney("¥" + commission);
|
moneyInfoVO.setFinalMoney(getMoneyDesc(PinDuoDuoUtil.getCouponPrice(goods).subtract(commission)));
|
// moneyInfoVO.setShareMoney("¥" + shareCommission);
|
|
BigDecimal zkPrice = MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), new BigDecimal(100)).setScale(2);
|
goodsInfo.setZkPrice(getMoneyDesc(zkPrice));
|
goodsInfo.setCouponPrice(PinDuoDuoUtil.getCouponPrice(goods));
|
Boolean hasCoupon = goods.getHasCoupon();
|
if (hasCoupon != null && hasCoupon) {
|
BigDecimal hundred = new BigDecimal(100);
|
BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred).setScale(2);
|
BigDecimal price = MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), hundred).setScale(2);
|
BigDecimal startFree = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponMinOrderAmount()), hundred)
|
.setScale(2);
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
|
List<CouponInfoVO> couponInfoVOList = new ArrayList<>();
|
CouponInfoVO coupon = new CouponInfoVO();
|
coupon.setAmount(amount);
|
coupon.setStartFee(startFree);
|
|
if (goods.getCouponStartTime() != null) {
|
coupon.setStartTime(sdf.format(new Date(goods.getCouponStartTime() * 1000)));
|
}
|
|
if (goods.getCouponEndTime() != null) {
|
coupon.setEndTime(sdf.format(new Date(goods.getCouponEndTime() * 1000)));
|
}
|
|
if (goods.getCouponTotalQuantity() != null)
|
coupon.setTotalCount(Integer.parseInt(goods.getCouponTotalQuantity().toString()));
|
|
if (goods.getCouponRemainQuantity() != null)
|
coupon.setLeftCount(Integer.parseInt(goods.getCouponRemainQuantity().toString()));
|
goodsInfo.setTempCoupon(coupon);
|
couponInfoVOList.add(coupon);
|
goodsInfo.setCouponInfoList(couponInfoVOList);
|
}
|
|
if (goods.getPromotionRate() > 0 && (goods.getPredictPromotionRate() != null && goods.getPredictPromotionRate().compareTo(new BigDecimal(0)) == 0)) {
|
//TODO 比价
|
bijia = true;
|
}
|
|
goodsInfo.setMoneyInfo(moneyInfoVO);
|
|
// 店铺信息
|
String mallName = goods.getMallName();
|
if (!StringUtil.isMobile(mallName)) {
|
ShopInfoVO shop = new ShopInfoVO();
|
shop.setShopName(mallName);
|
if (goods.getMallId() != null) {
|
shop.setId(goods.getMallId().toString());
|
}
|
shop.setUserType(30);
|
goodsInfo.setShopInfo(shop);
|
}
|
|
return fillFanliPrice(fillRights(goodsInfo), bijia);
|
}
|
|
public static GoodsInfoVO convertVIPGoods(VIPGoodsInfo goods, GoodsMoneyConfigParamsDTO params) {
|
GoodsInfoVO goodsInfo = new GoodsInfoVO();
|
goodsInfo.setGoodsType(Constant.SOURCE_TYPE_VIP);
|
goodsInfo.setGoodsId(Long.parseLong(goods.getGoodsId()) + "");
|
goodsInfo.setTitle(goods.getGoodsName());
|
goodsInfo.setSalesType(5); // 无销量
|
goodsInfo.setShopType(CommonGoods.SHOP_TYPE_VIP);
|
|
goodsInfo.setImgList(goods.getGoodsDetailPictures());
|
|
Integer state = goods.getStatus();
|
if (state == null) {
|
goodsInfo.setState(0);
|
} else {
|
goodsInfo.setState(goods.getStatus() == 1 ? CommonGoods.STATE_OFFLINE : CommonGoods.STATE_NORMAL);
|
}
|
|
goodsInfo.setSalesCount("");
|
goodsInfo.setZkPrice(getMoneyDesc(new BigDecimal(goods.getVipPrice())));
|
goodsInfo.setCouponPrice(new BigDecimal(goods.getVipPrice()));
|
|
// 资金信息
|
MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
|
moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
|
BigDecimal commission = VipShopUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
|
moneyInfoVO.setFanliMoney("¥" + commission);
|
// moneyInfoVO.setShareMoney("¥" + commission);
|
moneyInfoVO.setFinalMoney(getMoneyDesc(VipShopUtil.getCouponPrice(goods).subtract(commission)));
|
|
goodsInfo.setMoneyInfo(moneyInfoVO);
|
|
// 店铺信息
|
String mallName = goods.getBrandName();
|
if (!StringUtil.isNullOrEmpty(mallName)) {
|
ShopInfoVO shop = new ShopInfoVO();
|
shop.setShopName(mallName);
|
if (goods.getBrandId() != null) {
|
shop.setId(goods.getBrandId().toString());
|
}
|
shop.setUserType(30);
|
goodsInfo.setShopInfo(shop);
|
}
|
|
|
// 折扣信息
|
// goodsInfo.setDiscount(MoneyBigDecimalUtil
|
// .getWithNoZera(MoneyBigDecimalUtil.mul(new BigDecimal(goods.getDiscount()), new BigDecimal(10))) + "折");
|
goodsInfo.setShopInfo(null);
|
return fillFanliPrice(fillRights(goodsInfo), false);
|
}
|
|
public static GoodsInfoVO convertSuningGoods(SuningGoodsInfo goods, GoodsMoneyConfigParamsDTO params) {
|
GoodsInfoVO goodsInfo = new GoodsInfoVO();
|
goodsInfo.setGoodsType(Constant.SOURCE_TYPE_SUNING);
|
goodsInfo.setGoodsId(SuningUtil.getConcatGoodsIId(goods.getCommodityInfo().getSupplierCode(),
|
goods.getCommodityInfo().getCommodityCode()));
|
goodsInfo.setTitle(goods.getCommodityInfo().getCommodityName());
|
goodsInfo.setSalesType(1); // 月销
|
String zkPrice = goods.getCommodityInfo().getCommodityPrice();
|
if (StringUtil.isNullOrEmpty(zkPrice)) {
|
zkPrice = goods.getCommodityInfo().getSnPrice();
|
}
|
goodsInfo.setZkPrice(getMoneyDesc(new BigDecimal(zkPrice)));
|
goodsInfo.setCouponPrice(SuningUtil.getCouponPrice(goods));
|
|
goodsInfo.setShopType(CommonGoods.SHOP_TYPE_SUNING);
|
|
List<String> imgList = new ArrayList<>();
|
for (SuningGoodsImg img : goods.getCommodityInfo().getPictureUrl()) {
|
imgList.add(img.getPicUrl());
|
}
|
|
goodsInfo.setImgList(imgList);
|
goodsInfo.setState(0);
|
|
String salesCountMidea = "";
|
Integer count = Integer.parseInt(goods.getCommodityInfo().getMonthSales());
|
if (count < 10000) {
|
salesCountMidea = count + "";
|
} else {
|
double sales = count;
|
salesCountMidea = String.format("%.1f", sales / 10000);
|
salesCountMidea = salesCountMidea + "万";
|
}
|
goodsInfo.setSalesCount(salesCountMidea);
|
|
|
// 券信息
|
if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {// 有券
|
List<CouponInfoVO> couponInfoVOList = new ArrayList<>();
|
CouponInfoVO coupon = new CouponInfoVO();
|
coupon.setAmount(new BigDecimal(goods.getCouponInfo().getCouponValue()));
|
if (StringUtil.isNullOrEmpty(goods.getCouponInfo().getBounsLimit())) {
|
coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getCouponValue()));
|
} else
|
coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getBounsLimit()));
|
|
if (goods.getCouponInfo().getCouponStartTime() != null) {
|
coupon.setStartTime(goods.getCouponInfo().getCouponStartTime());
|
}
|
|
if (goods.getCouponInfo().getCouponEndTime() != null) {
|
coupon.setEndTime(goods.getCouponInfo().getCouponEndTime());
|
}
|
|
if (goods.getCouponInfo().getCouponCount() != null)
|
coupon.setTotalCount(Integer.parseInt(goods.getCouponInfo().getCouponCount()));
|
|
if (goods.getCouponInfo().getCouponCount() != null)
|
coupon.setLeftCount(Integer.parseInt(goods.getCouponInfo().getCouponCount()));
|
goodsInfo.setTempCoupon(coupon);
|
couponInfoVOList.add(coupon);
|
goodsInfo.setCouponInfoList(couponInfoVOList);
|
}
|
|
// 资金信息
|
MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
|
moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
|
BigDecimal commission = SuningUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
|
moneyInfoVO.setFanliMoney("¥" + commission);
|
// moneyInfoVO.setShareMoney("¥" + commission);
|
moneyInfoVO.setFinalMoney(getMoneyDesc(SuningUtil.getCouponPrice(goods).subtract(commission)));
|
goodsInfo.setMoneyInfo(moneyInfoVO);
|
|
// 店铺信息
|
String mallName = goods.getCommodityInfo().getSupplierName();
|
if (!StringUtil.isMobile(mallName)) {
|
ShopInfoVO shop = new ShopInfoVO();
|
shop.setShopName(mallName);
|
if (goods.getCommodityInfo().getSupplierCode() != null) {
|
shop.setId(goods.getCommodityInfo().getSupplierCode());
|
}
|
shop.setUserType(30);
|
goodsInfo.setShopInfo(shop);
|
}
|
|
return fillFanliPrice(fillRights(goodsInfo), false);
|
}
|
|
|
public static GoodsInfoVO fillRights(GoodsInfoVO goodsInfoVO) {
|
List<GoodsRightsVO> rightsVOS = new ArrayList<>();
|
if (goodsInfoVO.getCouponInfoList() != null) {
|
//加载券权益
|
for (CouponInfoVO couponInfoVO : goodsInfoVO.getCouponInfoList()) {
|
String desc = "";
|
if (couponInfoVO.getStartFee() == null || couponInfoVO.getStartFee().compareTo(new BigDecimal(0)) <= 0) {
|
desc = "无门槛领取";
|
} else {
|
desc = String.format("满%s减%s", MoneyBigDecimalUtil.getWithNoZera(couponInfoVO.getStartFee()).toString(), MoneyBigDecimalUtil.getWithNoZera(couponInfoVO.getAmount()).toString());
|
}
|
rightsVOS.add(new GoodsRightsVO(1, "¥" + MoneyBigDecimalUtil.getWithNoZera(couponInfoVO.getAmount()).toString(), desc));
|
}
|
}
|
|
//加载礼金权益
|
if (!StringUtil.isNullOrEmpty(goodsInfoVO.getMoneyInfo().getHongBaoMoney())) {
|
rightsVOS.add(new GoodsRightsVO(2, goodsInfoVO.getMoneyInfo().getHongBaoMoney(), "自动发放"));
|
}
|
goodsInfoVO.setRights(rightsVOS);
|
|
return goodsInfoVO;
|
}
|
|
|
private static GoodsInfoVO fillFanliPrice(GoodsInfoVO goodsInfoVO, boolean bijia) {
|
List<GoodsDetailVO.GoodsHongBaoListVO> priceList = new ArrayList<>();
|
|
GoodsDetailVO.GoodsHongBaoListVO price = new GoodsDetailVO.GoodsHongBaoListVO();
|
price.setType(4);
|
String desc = "";
|
switch (goodsInfoVO.getGoodsType()) {
|
case Constant.SOURCE_TYPE_JD:
|
desc = "注:京东puls会员返利以实际反馈数据为准。";
|
break;
|
|
case Constant.SOURCE_TYPE_TAOBAO:
|
if (bijia) {
|
desc = "注:本次为比价返利,1个小时后购买可提高100%";
|
}
|
break;
|
case Constant.SOURCE_TYPE_PDD:
|
if (bijia) {
|
desc = "注:本次为比价返利,1个小时后购买可提高100%";
|
}
|
break;
|
}
|
price.setDesc(desc);
|
price.setSubMoney(goodsInfoVO.getMoneyInfo().getFanliMoney());
|
price.setSubMoneyDesc("(等待返利)");
|
|
price.setFinalMoney(goodsInfoVO.getMoneyInfo().getFinalMoney());
|
|
List<GoodsDetailVO.GoodsHongBaoListVO.PriceInfo> priceInfos = new ArrayList<>();
|
|
priceInfos.add(new GoodsDetailVO.GoodsHongBaoListVO.PriceInfo("原价", goodsInfoVO.getZkPrice()));
|
|
if (goodsInfoVO.getTempCoupon() != null) {
|
priceInfos.add(new GoodsDetailVO.GoodsHongBaoListVO.PriceInfo("优惠券", "-¥" + MoneyBigDecimalUtil.getWithNoZera(goodsInfoVO.getTempCoupon().getAmount()).toString()));
|
}
|
priceInfos.add(new GoodsDetailVO.GoodsHongBaoListVO.PriceInfo("返利", "-" + goodsInfoVO.getMoneyInfo().getFanliMoney()));
|
price.setPriceDetails(priceInfos);
|
|
priceList.add(price);
|
goodsInfoVO.setPriceList(priceList);
|
return goodsInfoVO;
|
}
|
|
|
private static String getMoneyDesc(BigDecimal money) {
|
return "¥" + MoneyBigDecimalUtil.getWithNoZera(money);
|
}
|
|
}
|