From a4e4101f3e68aaaeea3e280ad89b20818f40f534 Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期六, 14 三月 2020 15:15:26 +0800
Subject: [PATCH] 分享订单奖励 计算说明
---
fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java | 259 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 248 insertions(+), 11 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java
index 597b7df..0cce77d 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java
@@ -3,7 +3,9 @@
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.annotation.Resource;
@@ -14,6 +16,7 @@
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.dao.mybatis.brand.BrandClassShopMapper;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.entity.brand.BrandClass;
import com.yeshi.fanli.entity.brand.BrandClassShop;
import com.yeshi.fanli.entity.goods.CommonGoods;
@@ -27,14 +30,17 @@
import com.yeshi.fanli.service.inter.brand.TaoBaoShopHistoryService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.brand.TaoBaoShopVO;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import net.sf.json.JSONObject;
@@ -54,7 +60,7 @@
private TaoBaoShopHistoryService taoBaoShopHistoryService;
@Resource
- private HongBaoManageService manageService;
+ private HongBaoManageService hongBaoManageService;
@Resource
private QualityGoodsService qualityGoodsService;
@@ -62,13 +68,16 @@
@Resource
private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
+ @Resource
+ private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
@Override
public List<BrandClassShop> getExistByShopIds(List<Long> list) {
return brandClassShopMapper.getExistByShopIds(list);
}
@Override
- @Transactional
+ @Transactional(rollbackFor=Exception.class)
public String saveShopInfo(Long cid, List<Long> list) throws BrandClassShopException {
if (list == null || list.size() == 0) {
throw new BrandClassShopException(1, "璇烽�夋嫨搴楅摵");
@@ -82,7 +91,7 @@
BrandClass brandClass = new BrandClass(cid);
for (Long shopId : list) {
- List<CommonGoods> listGoods = commonGoodsService.listBySellerId(shopId);
+ List<CommonGoods> listGoods = commonGoodsService.listBySellerId(shopId, Constant.SOURCE_TYPE_TAOBAO);
TaoBaoShop taoBaoShop = null;
for (CommonGoods commonGoods : listGoods) {
@@ -125,9 +134,9 @@
}
@Override
- @Transactional
- public void changeShopInfo(MultipartFile file, Long id, Long cid, String shopName, Integer state, Integer top)
- throws BrandClassShopException {
+ @Transactional(rollbackFor=Exception.class)
+ public void changeShopInfo(MultipartFile file, Long id, Long cid, String shopName, Integer state, Integer top,
+ String key) throws BrandClassShopException {
if (id == null) {
throw new BrandClassShopException(1, "鏁版嵁涓虹┖锛氳閫夋嫨搴楅摵");
@@ -148,7 +157,7 @@
}
// 鑷畾涔夊浘鐗�
- taoBaoShopService.changeInfo(file, shop.getId(), shopName);
+ taoBaoShopService.changeInfo(file, shop.getId(), shopName, key);
BrandClassShop updateshop = new BrandClassShop();
updateshop.setState(state);
@@ -168,7 +177,8 @@
for (BrandClassShop brandClassShop : listQuery) {
TaoBaoShop shop = brandClassShop.getShop();
if (shop != null) {
- long couponNum = commonGoodsService.countBySellerIdAndHasCoupon(shop.getId());
+ long couponNum = commonGoodsService.countBySellerIdAndHasCoupon(shop.getId(),
+ Constant.SOURCE_TYPE_TAOBAO);
brandClassShop.setCouponNum(couponNum);
String shopLink = shop.getShopLink();
@@ -304,7 +314,10 @@
count = taoBaoShopService.countBrandShopinfo(cid);
}
- BigDecimal proportion = manageService.getFanLiRate();
+ // 娣樺疂鍟嗗搧淇℃伅杩囨护
+ Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
+
+ BigDecimal proportion = hongBaoManageService.getFanLiRate();
for (TaoBaoShopVO taoBaoShopVO : listInfo) {
String shopLink = taoBaoShopVO.getShopLink();
@@ -325,9 +338,139 @@
List<TaoBaoGoodsBriefExtra> listGoods = new ArrayList<TaoBaoGoodsBriefExtra>();
List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
- listGoods.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
+ listGoods.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsMap.get(taoBaoGoodsBrief.getAuctionId()),
+ proportion.toString(), null));
}
taoBaoShopVO.setListGoods(listGoods);
+ }
+ data.put("count", count);
+ data.put("list", JsonUtil.getApiCommonGson().toJson(listInfo));
+
+ return data;
+ }
+
+ /**
+ * 鑾峰彇杩囨护鍟嗗搧
+ *
+ * @param listInfo
+ * @return
+ */
+ private Map<Long, TaoBaoGoodsBrief> getFilterTaoBaoGoods(List<TaoBaoShopVO> listInfo) {
+ // 杩囨护鍟嗗搧
+ List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+ for (TaoBaoShopVO taoBaoShopVO : listInfo) {
+ goodsList.addAll(taoBaoShopVO.getListGoodsBrief());
+ }
+ goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
+ Map<Long, TaoBaoGoodsBrief> goodsMap = new HashMap<>();
+ for (TaoBaoGoodsBrief goods : goodsList)
+ goodsMap.put(goods.getAuctionId(), goods);
+ return goodsMap;
+ }
+
+ @Override
+ @Cacheable(value = "brandCache", key = "'listEffectiveCacheV2-'+#page+'-'+#cid+'-'+#platform+'-'+#version")
+ public JSONObject listEffectiveCacheV2(int page, Long cid,String platform,String version) {
+ long countShop = 0;
+
+ if (cid != null && cid <= 0) {
+ cid = null;
+ }
+
+ List<TaoBaoShop> listShop = new ArrayList<TaoBaoShop>();
+ // 绗竴椤� 鏌ヨ鍏ㄩ儴鍒嗙被涓嬪簵閾�
+ if (page == 1 && cid != null) {
+ List<BrandClassShop> list = brandClassShopMapper.listEffective(cid);
+ if (list == null) {
+ list = new ArrayList<BrandClassShop>();
+ } else if (list.size() > 0) {
+ countShop = brandClassShopMapper.countEffective(cid);
+ }
+
+ for (BrandClassShop brandClassShop : list) {
+ TaoBaoShop shop = brandClassShop.getShop();
+ if (shop != null) {
+
+ Integer userType = shop.getUserType();
+ if (userType == null || userType == 0) {
+ shop.setUserType(10);
+ } else {
+ shop.setUserType(11);
+ }
+
+ String shopLink = shop.getShopLink();
+ if (StringUtil.isNullOrEmpty(shopLink)) {
+ shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
+ }
+
+ String shopNameCustom = shop.getShopNameCustom();
+ if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+ shop.setShopName(shopNameCustom);
+ }
+
+ String shopIconCustom = shop.getShopIconCustom();
+ if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+ shop.setShopIcon(shopIconCustom);
+ }
+
+ listShop.add(shop);
+ }
+ }
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("countShop", countShop);
+ data.put("listShop", JsonUtil.getApiCommonGson().toJson(listShop));
+
+ long count = 0;
+ List<TaoBaoShopVO> listInfo = taoBaoShopService.listBrandShopinfo((page - 1) * Constant.PAGE_SIZE,
+ Constant.PAGE_SIZE, cid);
+ if (listInfo == null) {
+ listInfo = new ArrayList<TaoBaoShopVO>();
+ } else if (listInfo.size() > 0) {
+ count = taoBaoShopService.countBrandShopinfo(cid);
+ }
+
+ ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(platform, version);
+
+ // 娣樺疂鍟嗗搧淇℃伅杩囨护
+ Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
+
+ for (TaoBaoShopVO taoBaoShopVO : listInfo) {
+
+ Integer userType = taoBaoShopVO.getUserType();
+ if (userType == null || userType == 0) {
+ taoBaoShopVO.setUserType(10);
+ } else {
+ taoBaoShopVO.setUserType(11);
+ }
+
+ String shopLink = taoBaoShopVO.getShopLink();
+ if (StringUtil.isNullOrEmpty(shopLink)) {
+ taoBaoShopVO.setShopLink(TaoBaoUtil.getShopLink(taoBaoShopVO.getId()));
+ }
+
+ String shopNameCustom = taoBaoShopVO.getShopNameCustom();
+ if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+ taoBaoShopVO.setShopName(shopNameCustom);
+ }
+
+ String shopIconCustom = taoBaoShopVO.getShopIconCustom();
+ if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+ taoBaoShopVO.setShopIcon(shopIconCustom);
+ }
+
+ List<GoodsDetailVO> listGoods = new ArrayList<GoodsDetailVO>();
+ List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
+
+ // 鍟嗗搧娣诲姞鍒版洿鏂伴槦鍒�
+ taoBaoGoodsUpdateService.addUpdateQueueAsync(listGoodsBrief);
+ for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
+ GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory
+ .convertTaoBao(goodsMap.get(taoBaoGoodsBrief.getAuctionId()),paramsDTO);
+ listGoods.add(goodsDetailVO);
+ }
+ taoBaoShopVO.setListGoodsVO(listGoods);
}
data.put("count", count);
data.put("list", JsonUtil.getApiCommonGson().toJson(listInfo));
@@ -381,4 +524,98 @@
}
+
+ @Override
+ public List<TaoBaoShopVO> listEffectiveShop(long start, int count, Long cid,String platform,String version) {
+ if (cid != null && cid <= 0) {
+ cid = null;
+ }
+
+ List<TaoBaoShopVO> listInfo = taoBaoShopService.listBrandShopinfo(start, count, cid);
+ if (listInfo == null || listInfo.size() == 0)
+ return listInfo;
+
+
+ ConfigParamsDTO paramsDTO =
+ hongBaoManageService.getShowComputeRate(platform, version);
+ // 娣樺疂鍟嗗搧淇℃伅杩囨护
+ Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
+
+ for (TaoBaoShopVO taoBaoShopVO : listInfo) {
+ String shopNameCustom = taoBaoShopVO.getShopNameCustom();
+ if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+ taoBaoShopVO.setShopName(shopNameCustom);
+ }
+
+ String shopIconCustom = taoBaoShopVO.getShopIconCustom();
+ if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+ taoBaoShopVO.setShopIcon(shopIconCustom);
+ }
+
+ List<GoodsDetailVO> listGoods = new ArrayList<GoodsDetailVO>();
+ List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
+ // 鍟嗗搧娣诲姞鍒版洿鏂伴槦鍒�
+ taoBaoGoodsUpdateService.addUpdateQueueAsync(listGoodsBrief);
+ for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
+ GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory
+ .convertTaoBao(goodsMap.get(taoBaoGoodsBrief.getAuctionId()), paramsDTO);
+ listGoods.add(goodsDetailVO);
+ }
+ taoBaoShopVO.setListGoodsVO(listGoods);
+ }
+ return listInfo;
+ }
+
+
+ @Override
+ public long countBrandShopinfo(Long cid) {
+ if (cid != null && cid <= 0) {
+ cid = null;
+ }
+ return taoBaoShopService.countBrandShopinfo(cid);
+ }
+
+
+
+ @Override
+ public List<TaoBaoShop> listEffectiveClassShop(Long cid) {
+ if (cid == null)
+ return null;
+
+ List<BrandClassShop> list = brandClassShopMapper.listEffective(cid);
+ if (list == null || list.size() == 0)
+ return null;
+
+ List<TaoBaoShop> listShop = new ArrayList<TaoBaoShop>();
+ for (BrandClassShop brandClassShop : list) {
+ TaoBaoShop shop = brandClassShop.getShop();
+ if (shop != null) {
+ Integer userType = shop.getUserType();
+ if (userType == null || userType == 0) {
+ shop.setUserType(10);
+ } else {
+ shop.setUserType(11);
+ }
+
+ String shopLink = shop.getShopLink();
+ if (StringUtil.isNullOrEmpty(shopLink)) {
+ shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
+ }
+
+ String shopNameCustom = shop.getShopNameCustom();
+ if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+ shop.setShopName(shopNameCustom);
+ }
+
+ String shopIconCustom = shop.getShopIconCustom();
+ if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+ shop.setShopIcon(shopIconCustom);
+ }
+
+ listShop.add(shop);
+ }
+ }
+ return listShop;
+ }
+
}
--
Gitblit v1.8.0