From 3df7c3cec0630eb3a208d9e9d2049b56a48e16a4 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期五, 22 三月 2019 15:23:21 +0800
Subject: [PATCH] 专题编辑bug
---
fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java | 292 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 204 insertions(+), 88 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
index 3ec4a55..43b8ea0 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
@@ -1,15 +1,21 @@
package com.yeshi.fanli.service.impl.activity;
-import java.io.InputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Map;
import javax.annotation.Resource;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.yeshi.utils.entity.FileUploadResult;
+import org.yeshi.utils.taobao.TbImgUtil;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.dao.mybatis.activity.ActivityUserMapper;
@@ -23,34 +29,31 @@
import com.yeshi.fanli.entity.bus.activity.RecommendActivityImg;
import com.yeshi.fanli.entity.bus.activity.RecommendActivityInviteInfo;
import com.yeshi.fanli.entity.bus.activity.RecommendActivityTaoBaoGoods;
-import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.entity.taobao.PidUser;
+import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum;
+import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.ActivityException;
+import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
+import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.activity.ActivityService;
import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
-import com.yeshi.fanli.util.AESUtil;
-import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.util.ImageUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.activity.ActivityUtil;
+import com.yeshi.fanli.util.factory.CommonGoodsFactory;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-
-import org.yeshi.utils.HttpUtil;
-import org.yeshi.utils.QRCodeUtil;
-import org.yeshi.utils.entity.FileUploadResult;
-import org.yeshi.utils.exception.HttpException;
-import org.yeshi.utils.taobao.TbImgUtil;
-import org.yeshi.utils.tencentcloud.COSManager;
@Service
public class ActivityServiceImpl implements ActivityService {
@@ -97,6 +100,12 @@
@Resource
private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+ @Resource
+ private UserShareGoodsRecordService userShareGoodsRecordService;
+
+ @Resource
+ private CommonGoodsService commonGoodsService;
+
@Override
public List<RecommendActivity> getRecommendActivityList(int page, int pageSize) {
return recommendActivityMapper.getRecommendActivityList((page - 1) * pageSize, pageSize);
@@ -113,98 +122,160 @@
}
@Override
- public ActivityShareResult shareActivityGoods(Long uid, Long activityId) throws ActivityException {
+ public ActivityShareResult shareActivityGoods(Long uid, Long activityId)
+ throws ActivityException, UserShareGoodsRecordException {
+
RecommendActivity activity = recommendActivityMapper.selectByPrimaryKey(activityId);
+
if (activity == null)
throw new ActivityException(2, "鍔ㄦ�佷笉瀛樺湪");
+
if (activity.getType() != RecommendActivity.TYPE_SHARE_GOODS)
throw new ActivityException(3, "涓嶅睘浜庡垎浜晢鍝佸姩鎬�");
+
ActivityShareResult result = new ActivityShareResult();
+
String title = activity.getTitle().replace("<br>", "/n").replace("<p>", "").replace("</p>", "");
if (title != null && title.trim().endsWith("/n"))
title = title.trim().substring(0, title.trim().length() - 2);
result.setTitle(title);
List<FileUploadResult> imgList = new ArrayList<>();
+
+ List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
+
if (activity.getGoodsList() != null) {
- // 鎻愬墠鍒嗛厤濂絇ID
- tbPidService.getTBPid(uid, PidUser.TYPE_SHARE_GOODS);
- // activity.getGoodsList().stream().parallel().forEach(goodsActivity
- // -> {
- // try {
- // TaoBaoGoodsBrief goods = taoBaoGoodsBriefService
- // .getTaoBaoGoodsDetailForShare(Long.parseLong(goodsActivity.getAuctionId()),
- // uid);
- // if (goods != null &&
- // !StringUtil.isNullOrEmpty(goods.getCouponActivityId())
- // && goods.getCouponLeftCount() != null &&
- // goods.getCouponLeftCount() > 0) {
- // UserShareGoodsHistory userShareGoodsHistory =
- // shareGoodsService.addShareGoodsHistory(uid,
- // goods.getAuctionId());
- // if (userShareGoodsHistory != null)
- // imgList.add(new
- // FileUploadResult(userShareGoodsHistory.getShareImg(),
- // userShareGoodsHistory.getShareImgMD5()));
- // } else if (goods != null) {
- // LogHelper.error("娌℃湁娣诲姞鍒板垎浜�:" + goods.getAuctionId());
- // }
- // } catch (ShareGoodsException e) {
- // try {
- // LogHelper.errorDetailInfo(e, "鍒嗕韩鍟嗗搧鍑洪敊-鍟嗗搧ID:" +
- // goodsActivity.getAuctionId(), "--");
- // } catch (Exception e1) {
- // e1.printStackTrace();
- // }
- // }
- // });
- // 鐢诲浘
- activity = getRecommendActivityDetail(activityId);
+ activity.getGoodsList().stream().parallel().forEach(goodsActivity -> {
- String url = String.format("http://%s/shareMuchImg.html?uid=%s&activityId=%s", configService.getH5Host(),
- AESUtil.encrypt(uid + "", Constant.UIDAESKEY), activity.getId() + "");
-
- String shortLink = HttpUtil.getShortLink(url);
- if (!StringUtil.isNullOrEmpty(shortLink)) {
- url = shortLink;
- }
- InputStream erCodeInputStream = null;
-
- // 鐢熸垚閾炬帴浜岀淮鐮�
-
- try {
- erCodeInputStream = QRCodeUtil.getInstance(500).encode(url);
- } catch (Exception e) {
- e.printStackTrace();
- }
- // 鑾峰彇鍒扮敤鎴风殑澶村儚
- UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
- InputStream portrait = null;
- if (!StringUtil.isNullOrEmpty(user.getPortrait())) {
try {
- portrait = HttpUtil.downLoadImg(user.getPortrait());
- } catch (HttpException e) {
- String portraitUrl = userAccountService.repairPortrait(uid);
- if (StringUtil.isNullOrEmpty(portraitUrl))
- throw new ActivityException(11, "鑾峰彇澶村儚鍑洪敊");
- else {
- // 鍐嶆鑾峰彇澶村儚
- try {
- portrait = HttpUtil.downLoadImg(portraitUrl);
- } catch (HttpException e1) {
- throw new ActivityException(11, "鑾峰彇澶村儚鍑洪敊");
- }
+ TaoBaoGoodsBrief goodsBrief = redisManager
+ .getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
+ listGoodsBrief.add(goodsBrief);
+ } catch (TaobaoGoodsDownException e) {
+
+ CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(
+ Long.parseLong(goodsActivity.getAuctionId()), CommonGoods.GOODS_TYPE_TB);
+ if (commonGoods != null) {
+ TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
+ goodsBrief.setState(1);
+ listGoodsBrief.add(goodsBrief);
+ }
+
+ try {
+ LogHelper.errorDetailInfo(e, "鍒嗕韩鍟嗗搧鍑洪敊-鍟嗗搧ID:" + goodsActivity.getAuctionId(), "--");
+ } catch (Exception e1) {
+ e1.printStackTrace();
}
}
- }
- InputStream shareImgInputStream = ImageUtil.drawActivityGoodsShareBigImg(erCodeInputStream, portrait,
- activity.getGoodsList());
- FileUploadResult shareImgResult = COSManager.getInstance().uploadInputStream(shareImgInputStream,
- "sharegoods/activity/share_" + uid + "_" + activityId + "_" + System.currentTimeMillis() + ".png");
- imgList.add(shareImgResult);
+ });
}
+
+ if (listGoodsBrief.size() < 1) {
+ throw new ActivityException(1, "鍟嗗搧涓嬫灦");
+ }
+
+ Map<String, Object> map = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title,
+ listGoodsBrief);
+ imgList.add((FileUploadResult) map.get("loadResult"));
result.setImgList(imgList);
+
return result;
+ }
+
+ @Override
+ public JSONObject shareGoodsV2(Long uid, Long activityId) throws ActivityException, UserShareGoodsRecordException {
+
+ RecommendActivity activity = recommendActivityMapper.selectByPrimaryKey(activityId);
+
+ if (activity == null)
+ throw new ActivityException(2, "鍔ㄦ�佷笉瀛樺湪");
+
+ if (activity.getType() != RecommendActivity.TYPE_SHARE_GOODS)
+ throw new ActivityException(3, "涓嶅睘浜庡垎浜晢鍝佸姩鎬�");
+
+ ActivityShareResult result = new ActivityShareResult();
+
+ String title = activity.getTitle().replace("<br>", "/n").replace("<p>", "").replace("</p>", "");
+ if (title != null && title.trim().endsWith("/n"))
+ title = title.trim().substring(0, title.trim().length() - 2);
+
+ result.setTitle(title);
+
+ List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
+
+ if (activity.getGoodsList() != null) {
+ activity.getGoodsList().stream().parallel().forEach(goodsActivity -> {
+ try {
+ TaoBaoGoodsBrief goodsBrief = redisManager
+ .getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
+ listGoodsBrief.add(goodsBrief);
+
+ } catch (TaobaoGoodsDownException e) {
+
+ CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(
+ Long.parseLong(goodsActivity.getAuctionId()), CommonGoods.GOODS_TYPE_TB);
+ if (commonGoods != null) {
+ TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
+ goodsBrief.setState(1);
+ listGoodsBrief.add(goodsBrief);
+ }
+
+ try {
+ LogHelper.errorDetailInfo(e, "鍒嗕韩鍟嗗搧鍑洪敊-鍟嗗搧ID:" + goodsActivity.getAuctionId(), "--");
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ });
+ }
+
+ if (listGoodsBrief.size() < 1) {
+ throw new ActivityException(1, "鍟嗗搧涓嬫灦");
+ }
+
+ String fontColor1 = "#000000";
+ String fontColor2 = "#E5005C";
+ JSONArray array = new JSONArray();
+
+ JSONObject contentJson1 = new JSONObject();
+ contentJson1.put("color", fontColor1);
+ contentJson1.put("content", "棰勪及鍒嗕韩濂栭噾:");
+ String shareMoney = "0";
+ String revenue = "楼0";
+ String totalGetMoney = activity.getTotalGetMoney();
+ if (totalGetMoney != null && totalGetMoney.trim().length() > 0) {
+ String[] split = totalGetMoney.split("锛�");
+ if (split != null) {
+ revenue = split[1];
+ }
+
+ String[] splitMoney = totalGetMoney.split("楼");
+ if (splitMoney != null) {
+ shareMoney = splitMoney[1];
+ }
+ }
+
+ JSONObject contentJson2 = new JSONObject();
+ contentJson2.put("color", fontColor2);
+ contentJson2.put("content", revenue);
+
+ array.add(contentJson1);
+ array.add(contentJson2);
+
+ JSONObject data = new JSONObject();
+
+ Map<String, Object> map = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title,
+ listGoodsBrief);
+
+ data.put("title", title);
+ data.put("revenue", array);
+ data.put("fanMoney", shareMoney);
+ data.put("shareId", map.get("shareId"));
+ data.put("shareImg", map.get("loadResult"));
+ data.put("notifyDesc", configService.get("goods_share_multiple_notify"));
+
+ return data;
+
}
@Override
@@ -236,6 +307,7 @@
return activityUserMapper.selectList();
}
+ @Transactional
@Override
public RecommendActivity addShareGoodsRecommendActivity(Long activityUid, String title, List<Long> goodsList,
boolean top, int shareCount) throws ActivityException {
@@ -253,6 +325,8 @@
activity.setTop(top);
activity.setType(RecommendActivity.TYPE_SHARE_GOODS);
recommendActivityMapper.insertSelective(activity);
+
+ List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
BigDecimal taotaoMoney = new BigDecimal(0);
for (long auctionId : goodsList) {
@@ -276,19 +350,33 @@
recommendActivityTaoBaoGoodsMapper.insertSelective(goods);
BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
taotaoMoney = taotaoMoney.add(money);
+
+ // 杞崲绠�鐗堝晢鍝佷俊鎭�
+ CommonGoods commonGoods = CommonGoodsFactory.create(tb);
+ listCommonGoods.add(commonGoods);
+ }
+
+ try {
+ // 鏇存柊绠�鐗堜俊鎭�
+ commonGoodsService.addBatchCommonGoods(listCommonGoods);
+ } catch (Exception e) {
+ e.printStackTrace();
}
RecommendActivity updateActivity = new RecommendActivity();
updateActivity.setId(activity.getId());
- updateActivity.setTotalGetMoney("棰勮鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
+ updateActivity.setTotalGetMoney("棰勪及鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
recommendActivityMapper.updateByPrimaryKeySelective(updateActivity);
return activity;
}
+ @Transactional
@Override
public RecommendActivity addInviteImgRecommendActivity(Long activityUid, String title, String url, boolean top,
int shareCount, int px, int py, int erCodeSize) throws ActivityException {
+ if (StringUtil.isNullOrEmpty(url))
+ throw new ActivityException(1, "鍥剧墖涓虹┖");
RecommendActivity activity = new RecommendActivity();
activity.setActivityUser(new ActivityUser(activityUid));
activity.setCreateTime(new Date());
@@ -318,11 +406,11 @@
recommendActivityInviteInfo.setRecommendActivity(activity);
recommendActivityInviteInfo.setSize(erCodeSize);
recommendActivityInviteInfoMapper.insertSelective(recommendActivityInviteInfo);
-
recommendActivityImgMapper.insertSelective(img);
return activity;
}
+ @Transactional
@Override
public RecommendActivity addTextAndImgRecommendActivity(Long activityUid, String title, List<String> imgList,
boolean top, int shareCount) throws ActivityException {
@@ -353,6 +441,7 @@
return activity;
}
+ @Transactional
@Override
public void deleteRecommendActivity(long[] ids) {
recommendActivityMapper.batchDeleteByPrimaryKey(ids);
@@ -366,6 +455,7 @@
return recommendActivityMapper.selectByPrimaryKey(id);
}
+ @Transactional
@Override
public RecommendActivity updateShareGoodsRecommendActivity(Long id, Long activityUid, String title,
List<Long> goodsList, boolean top, int shareCount) throws ActivityException {
@@ -414,12 +504,13 @@
RecommendActivity updateActivity = new RecommendActivity();
updateActivity.setId(activity.getId());
- updateActivity.setTotalGetMoney("棰勮鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
+ updateActivity.setTotalGetMoney("棰勪及鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
recommendActivityMapper.updateByPrimaryKeySelective(updateActivity);
return activity;
}
+ @Transactional
@Override
public RecommendActivity updateInviteImgRecommendActivity(Long id, Long activityUid, String title, String url,
boolean top, int shareCount, int px, int py, int erCodeSize) throws ActivityException {
@@ -462,6 +553,7 @@
return activity;
}
+ @Transactional
@Override
public RecommendActivity updateTextAndImgRecommendActivity(Long id, Long activityUid, String title,
List<String> imgList, boolean top, int shareCount) throws ActivityException {
@@ -518,6 +610,7 @@
return getRecommendActivityCount();
}
+ @Transactional
@Override
public void upgradeShareGoodsRecommendActivity(Long id) throws ActivityException {
// 鑾峰彇鍟嗗搧
@@ -553,7 +646,7 @@
update.setId(goods.getId());
update.setState(RecommendActivityTaoBaoGoods.STATE_UNSHELVE);
recommendActivityTaoBaoGoodsMapper.updateByPrimaryKeySelective(update);
- taoBaoGoodsUpdateService.downTaoBaoGoods(Long.parseLong(goods.getAuctionId()));
+ taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(goods.getAuctionId()));
}
}
}
@@ -622,4 +715,27 @@
public ActivityUser selectActivityUserByPrimaryKey(Long id) {
return activityUserMapper.selectByPrimaryKey(id);
}
+
+ @Transactional
+ @Override
+ public void updateRecommendActivityGoods(TaoBaoGoodsBrief goods) {
+ List<RecommendActivityTaoBaoGoods> list = recommendActivityTaoBaoGoodsMapper
+ .selectByAuctionId(goods.getAuctionId());
+
+ BigDecimal d = TaoBaoUtil.getAfterUseCouplePrice(goods);
+
+ RecommendActivityTaoBaoGoods updateGoods = new RecommendActivityTaoBaoGoods();
+ if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
+ updateGoods.setDesc("鍒稿悗浠凤細楼" + d);
+ updateGoods.setState(RecommendActivityTaoBaoGoods.STATE_NORMAL);
+ } else {
+ updateGoods.setState(RecommendActivityTaoBaoGoods.STATE_UNSHELVE);
+ }
+
+ if (list != null)
+ for (RecommendActivityTaoBaoGoods tbGoods : list) {
+ updateGoods.setId(tbGoods.getId());
+ recommendActivityTaoBaoGoodsMapper.updateByPrimaryKeySelective(updateGoods);
+ }
+ }
}
--
Gitblit v1.8.0