From b59fef5c00b15fdfdfa9d4be26e5bf6b41c75458 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期日, 23 二月 2020 00:16:52 +0800 Subject: [PATCH] 2.0.7相关服务端功能添加 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 77 insertions(+), 20 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java index 0bab96c..6308999 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java @@ -1,10 +1,14 @@ package com.yeshi.fanli.service.impl.dynamic; +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; import javax.annotation.Resource; @@ -15,9 +19,11 @@ import org.springframework.stereotype.Service; import org.yeshi.utils.DateLunarUtil; import org.yeshi.utils.DateUtil; +import org.yeshi.utils.HttpUtil; import org.yeshi.utils.taobao.TbImgUtil; import com.yeshi.fanli.dao.dynamic.DynamicInfoDao; +import com.yeshi.fanli.dto.ConfigParamsDTO; import com.yeshi.fanli.dto.taobao.TaoBaoShopDTO; import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser; import com.yeshi.fanli.entity.bus.activity.ActivityUser; @@ -32,7 +38,7 @@ import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra; import com.yeshi.fanli.entity.taobao.TaoBaoShop; -import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail; +import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.activity.ActivityUserService; @@ -40,10 +46,10 @@ import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService; import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; +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.service.inter.taobao.dataoke.DaTaoKeGoodsService; +import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service; import com.yeshi.fanli.service.inter.user.QrCodeService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; @@ -72,7 +78,7 @@ private RedisManager redisManager; @Resource - private DaTaoKeGoodsService daTaoKeGoodsService; + private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; @Resource private JumpDetailV2Service jumpDetailV2Service; @@ -145,7 +151,7 @@ buffer.append(" "); buffer.append("鏃╁畨锝瀄n"); buffer.append("鎴戠殑閭�璇风爜锛氥�愰個璇风爜銆慭n"); - buffer.append("璐墿鐪侀挶杩斿埄鍒窤pp锛氥�愰個璇烽摼鎺ャ��"); + buffer.append("璐墿鐪侀挶鏉挎牀蹇渷App锛氥�愰個璇烽摼鎺ャ��"); content = content.replaceAll("\\,", "\\锛�").replaceAll("\\.", "\\銆�").replaceAll("\\;", "\\锛�") .replaceAll("\\!", "\\锛�").replaceAll("\\?", "\\锛�").replaceAll("\\:", "\\锛�"); @@ -269,6 +275,9 @@ if (StringUtil.isNullOrEmpty(shopLink)) { taoBaoShop.setShopLink(TaoBaoUtil.getShopLink(taoBaoShop.getId())); } + + if(StringUtil.isNullOrEmpty(taoBaoShop.getShopIcon())) + taoBaoShop.setShopIcon(dynamicShopInfo.getShopIcon()); DynamicInfo dynamicVO = new DynamicInfo(); dynamicVO.setId(brandId); @@ -338,9 +347,9 @@ count = 4; } - List<DaTaoKeDetail> listDaTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, null, count); + List<DaTaoKeDetailV2> listDaTaoKe = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subclassId, null, count); - DaTaoKeDetail daTaoKeDetail = null; + DaTaoKeDetailV2 daTaoKeDetail = null; // 鍟嗗搧鍒楄〃 List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>(); // 鍟嗗搧鍒楄〃 @@ -349,7 +358,7 @@ BigDecimal shareMoney = new BigDecimal(0); BigDecimal proportion = hongBaoManageService.getFanLiRate(); - for (DaTaoKeDetail daTaoKe : listDaTaoKe) { + for (DaTaoKeDetailV2 daTaoKe : listDaTaoKe) { if (daTaoKeDetail == null) { daTaoKeDetail = daTaoKe; } @@ -469,7 +478,7 @@ } } // 澶ф窐瀹㈡暟鎹� - DaTaoKeDetail daTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, listId, 1).get(0); + DaTaoKeDetailV2 daTaoKe = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subclassId, listId, 1).get(0); if (daTaoKe == null) { return addSuccess; } @@ -506,7 +515,7 @@ TaoBaoGoodsBrief taoBaoGoodsBrief2 = TaoKeApiUtil.getSimpleGoodsInfo(daTaoKe.getGoodsId()); List<String> imgList = taoBaoGoodsBrief2.getImgList(); List<String> listimgs = new ArrayList<String>(); - String pic = daTaoKe.getPic(); + String pic = daTaoKe.getMainPic(); listimgs.add(TbImgUtil.getTBSize320Img(pic)); if (imgList != null && imgList.size() > 0) { for (String img : imgList) { @@ -569,7 +578,7 @@ * @param subclassId * @throws TaobaoGoodsDownException */ - public DynamicInfo getDynamicInfo(DaTaoKeDetail daTaoKe, Long classId, Long subclassId) { + public DynamicInfo getDynamicInfo(DaTaoKeDetailV2 daTaoKe, Long classId, Long subclassId) { DynamicInfo dynamicInfo = new DynamicInfo(); dynamicInfo.setId(UUID.randomUUID().toString().replace("-", "")); dynamicInfo.setClassId(classId); @@ -604,11 +613,11 @@ * @param daTaoKe * @return */ - public GoodsPicture getGoodsPicture(DaTaoKeDetail daTaoKe) { + public GoodsPicture getGoodsPicture(DaTaoKeDetailV2 daTaoKe) { GoodsPicture goodsPicture = new GoodsPicture(); goodsPicture.setH(100); goodsPicture.setW(100); - goodsPicture.setUrl(TbImgUtil.getTBSize320Img(daTaoKe.getPic())); + goodsPicture.setUrl(TbImgUtil.getTBSize320Img(daTaoKe.getMainPic())); goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail")); String goodsId = daTaoKe.getGoodsId().toString(); @@ -708,8 +717,14 @@ size = inviteInfo.getSize(); } + InputStream asInputStream = HttpUtil.getAsInputStream(picUrl); + + int index = picUrl.lastIndexOf("/"); + String newUrl = picUrl.substring(index + 1); + String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf(".")); + // 鍥剧墖 - String imgLink = qrCodeService.drawInviteQrCodeNew(picUrl, null, null, pX, pY, size, null); + String imgLink = qrCodeService.drawInviteQrCodeNew(asInputStream, urlMd5, null, null, pX, pY, size, null); GoodsPicture p2 = new GoodsPicture(); p2.setW(100); p2.setH(100); @@ -916,6 +931,37 @@ return list; } + private Map<Long, TaoBaoGoodsBrief> getFilterGoodsMap(List<DynamicInfo> list) { + // 鎻愬彇杩囨护鍟嗗搧 + List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); + for (DynamicInfo dynamicInfo : list) { + List<GoodsPicture> gpList = dynamicInfo.getImgs(); + if (gpList != null) + for (GoodsPicture gp : gpList) { + if (gp != null && gp.getGoods() != null) { + TaoBaoGoodsBriefExtra newGoods = new TaoBaoGoodsBriefExtra(); + try { + PropertyUtils.copyProperties(newGoods, gp.getGoods()); + goodsList.add(newGoods); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } + + } + } + } + goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList); + Map<Long, TaoBaoGoodsBrief> map = new HashMap<>(); + if (goodsList != null) + for (TaoBaoGoodsBrief goods : goodsList) + map.put(goods.getAuctionId(), goods); + return map; + } + @Override @Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId") public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) { @@ -924,8 +970,13 @@ // 闇�瑕佹洿鏂扮殑鍟嗗搧 List<TaoBaoGoodsBrief> taoBaoGoodsUpdateList = new ArrayList<>(); if (list != null && list.size() > 0) { + // 鎻愬彇鍟嗗搧 + Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterGoodsMap(list); + BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); BigDecimal shareRate = hongBaoManageService.getShareRate(); + ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,hongBaoManageService.getVIPFanLiRate()); + for (DynamicInfo dynamicInfo : list) { DynamicInfo dynamicNew = new DynamicInfo(); try { @@ -974,8 +1025,14 @@ continue; } - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate, - shareRate); + // 杩囨护鍒镐俊鎭笌璧勯噾淇℃伅 + goods.setCouponAmount(goodsMap.get(goods.getAuctionId()).getCouponAmount()); + goods.setZkPrice(goodsMap.get(goods.getAuctionId()).getZkPrice()); + goods.setCouponStartFee(goodsMap.get(goods.getAuctionId()).getCouponStartFee()); + goods.setTkRate(goodsMap.get(goods.getAuctionId()).getTkRate()); + + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, paramsDTO); + goodsNew.setGoodsVO(detailVO); goodsNew.setGoods(null); @@ -1060,10 +1117,10 @@ continue; } - Integer state = oldExtra.getState(); - if (state != null && state == 1) { - continue; - } + /* + * Integer state = oldExtra.getState(); if (state != null && state == 1) { + * continue; } + */ TaoBaoGoodsBrief goodsBrief = null; try { -- Gitblit v1.8.0