From 5af38b1a42b415553b724f358c98f418701e7851 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 14 十二月 2018 10:16:01 +0800
Subject: [PATCH] 增加分享数据中的订单统计
---
fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java | 258 ++++++++++++++++++++++++++++++++++-----------------
1 files changed, 172 insertions(+), 86 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 803dcc6..8994412 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,6 +1,5 @@
package com.yeshi.fanli.service.impl.activity;
-import java.io.InputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
@@ -8,8 +7,12 @@
import javax.annotation.Resource;
+import net.sf.json.JSONObject;
+
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
+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,33 +26,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 {
@@ -95,6 +96,12 @@
@Resource
private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
+ @Resource
+ private UserShareGoodsRecordService userShareGoodsRecordService;
+
+ @Resource
+ private CommonGoodsService commonGoodsService;
@Override
public List<RecommendActivity> getRecommendActivityList(int page, int pageSize) {
@@ -112,98 +119,134 @@
}
@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);
-
- 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())) {
+
+ activity.getGoodsList().stream().parallel().forEach(goodsActivity -> {
+
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, "鍟嗗搧涓嬫灦");
+ }
+
+ JSONObject resultdata = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title, listGoodsBrief);
+ imgList.add((FileUploadResult) resultdata.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 revenue = "";
+ String totalGetMoney = activity.getTotalGetMoney();
+ if (totalGetMoney != null && totalGetMoney.trim().length() > 0) {
+ revenue = totalGetMoney.replace("棰勮鍒嗕韩濂栭噾", listGoodsBrief.size()+"涓晢鍝侀浼板垎浜閲�");
+ }
+
+ JSONObject data = new JSONObject();
+
+ JSONObject resultdata = userShareGoodsRecordService.save(uid,
+ ShareSourceTypeEnum.activity, title, listGoodsBrief);
+
+ data.put("revenue", revenue);
+ data.put("shareId", resultdata.get("shareId"));
+ data.put("shareImg", resultdata.get("loadResult"));
+ data.put("notifyDesc", configService.get("goods_share_notify"));
+
+ return data;
+
}
@Override
@@ -252,7 +295,9 @@
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) {
TaoBaoGoodsBrief tb = null;
@@ -275,6 +320,17 @@
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();
@@ -591,4 +647,34 @@
return activity;
}
+
+ @Override
+ public int insert(RecommendActivity record) {
+ return recommendActivityMapper.insert(record);
+ }
+
+ @Override
+ public int insertSelective(RecommendActivity record) {
+ return recommendActivityMapper.insertSelective(record);
+ }
+
+ @Override
+ public RecommendActivity selectByPrimaryKey(Long id) {
+ return recommendActivityMapper.selectByPrimaryKey(id);
+ }
+
+ @Override
+ public int updateByPrimaryKeySelective(RecommendActivity record) {
+ return recommendActivityMapper.updateByPrimaryKeySelective(record);
+ }
+
+ @Override
+ public int updateByPrimaryKey(RecommendActivity record) {
+ return recommendActivityMapper.updateByPrimaryKey(record);
+ }
+
+ @Override
+ public ActivityUser selectActivityUserByPrimaryKey(Long id) {
+ return activityUserMapper.selectByPrimaryKey(id);
+ }
}
--
Gitblit v1.8.0