From a69ec998d9fe8fa8ea6c40175bebc4e53a227d5b Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 11 六月 2020 09:26:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java | 199 +++++++++++++++++++++++++++----------------------
1 files changed, 109 insertions(+), 90 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java
index 69c2578..5fa8f95 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java
@@ -2,7 +2,6 @@
import java.util.Date;
import java.util.List;
-import java.util.Set;
import javax.annotation.Resource;
@@ -26,6 +25,7 @@
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.user.cloud.UserCloudGoodsService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
@@ -34,48 +34,57 @@
import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
import com.yeshi.fanli.util.suning.SuningApiUtil;
-import com.yeshi.fanli.util.suning.SuningUtil;
import com.yeshi.fanli.util.vipshop.VipShopApiUtil;
-
@Service
public class UserCloudGoodsServiceImpl implements UserCloudGoodsService {
@Resource
private UserCloudGoodsMapper userCloudGoodsMapper;
-
+
@Resource
private RedisManager redisManager;
-
+
@Resource
private JDGoodsCacheUtil jdGoodsCacheUtil;
-
+
@Resource
private PinDuoDuoCacheUtil pinDuoDuoCacheUtil;
-
+
@Resource
private CommonGoodsService commonGoodsService;
-
+
+ @Resource
+ private UserCloudManageService userCloudManageService;
+
@Resource(name = "producer")
private Producer producer;
-
-
+
@Override
public void deleteByPrimaryKeyAndUid(Long id, Long uid) {
userCloudGoodsMapper.deleteByPrimaryKeyAndUid(id, uid);
}
-
+
@Override
public UserCloudGoods selectByPrimaryKey(Long id) {
return userCloudGoodsMapper.selectByPrimaryKey(id);
}
-
+
@Override
public void updateByPrimaryKeySelective(UserCloudGoods record) {
userCloudGoodsMapper.updateByPrimaryKeySelective(record);
}
-
-
+
+ @Override
+ public List<UserCloudGoods> query(int page, int pageSize, String key) {
+ return userCloudGoodsMapper.query((page - 1) * pageSize, pageSize, key);
+ }
+
+ @Override
+ public long count(String key) {
+ return userCloudGoodsMapper.count(key);
+ }
+
@Override
public List<UserCloudGoods> listByUid(long start, int count, Long uid) {
return userCloudGoodsMapper.listByUid(start, count, uid);
@@ -86,99 +95,109 @@
return userCloudGoodsMapper.listByNotShare(uid);
}
-
@Override
public long countByUid(Long uid) {
return userCloudGoodsMapper.countByUid(uid);
}
-
@Override
public UserCloudGoods getByUidAndGoods(Long uid, Long goodsId, Integer goodsType) {
return userCloudGoodsMapper.getByUidAndGoods(uid, goodsId, goodsType);
}
@Override
- public void addGoods(Long uid, Set<String> set, Integer goodsType) throws UserCloudGoodsException {
- if (uid == null) {
+ public UserCloudGoods addGoods(Long uid, Long goodsId, Integer goodsType, Long sellerId) throws UserCloudGoodsException {
+ if (uid == null)
throw new UserCloudGoodsException(1, "鐢ㄦ埛灏氭湭鐧诲綍");
- }
-
- if (set == null || set.size() == 0 || goodsType == null) {
+ if (goodsId == null || goodsType == null)
throw new UserCloudGoodsException(1, "绯荤粺鍙傛暟涓嶆纭�");
+
+ CommonGoods commonGoods = null;
+ if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { // 娣樺疂
+ try {
+ TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+ commonGoods = CommonGoodsFactory.create(goodsBrief);
+ } catch (TaobaoGoodsDownException e) {
+ throw new UserCloudGoodsException(1, goodsId + "鍟嗗搧宸蹭笅鏋�");
+ }
+ } else if (goodsType == Constant.SOURCE_TYPE_JD) { // 浜笢
+ JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+ if (goods == null)
+ throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
+ commonGoods = CommonGoodsFactory.create(goods);
+ } else if (goodsType == Constant.SOURCE_TYPE_PDD) { // 鎷煎澶�
+ PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+ if (goods == null)
+ throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
+ commonGoods = CommonGoodsFactory.create(goods);
+ } else if (goodsType == Constant.SOURCE_TYPE_VIP) { // 鍞搧浼�
+ VIPGoodsInfo goods = VipShopApiUtil.getGoodsDetail(goodsId +"");
+ if (goods == null)
+ throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
+ commonGoods = CommonGoodsFactory.create(goods);
+ } else if (goodsType == Constant.SOURCE_TYPE_SUNING) { // 鑻忓畞
+ SuningGoodsInfo goods = SuningApiUtil.getGoodsDetail(goodsId +"", sellerId + "");
+ if (goods == null)
+ throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
+ commonGoods = CommonGoodsFactory.create(goods);
}
- for (String goodsId : set) {
- CommonGoods commonGoods = null;
- if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { // 娣樺疂
- try {
- TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
- commonGoods = CommonGoodsFactory.create(goodsBrief);
- } catch (TaobaoGoodsDownException e) {
- throw new UserCloudGoodsException(1, goodsId + "鍟嗗搧宸蹭笅鏋�");
- }
- } else if (goodsType == Constant.SOURCE_TYPE_JD) { // 浜笢
- JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
- if (goods == null)
- throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
- commonGoods = CommonGoodsFactory.create(goods);
- } else if (goodsType == Constant.SOURCE_TYPE_PDD) { // 鎷煎澶�
- PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
- if (goods == null)
- throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
- commonGoods = CommonGoodsFactory.create(goods);
- } else if (goodsType == Constant.SOURCE_TYPE_VIP) { // 鍞搧浼�
- VIPGoodsInfo goods = VipShopApiUtil.getGoodsDetail(goodsId);
- if (goods == null)
- throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
- commonGoods = CommonGoodsFactory.create(goods);
- } else if (goodsType == Constant.SOURCE_TYPE_SUNING) { // 鑻忓畞
- String[] ids = SuningUtil.getGoodsIdDetail(goodsId);
- SuningGoodsInfo goods = SuningApiUtil.getGoodsDetail(ids[1], ids[0]);
- if (goods == null)
- throw new UserCloudGoodsException(1, goodsId + "鏈壘鍒板晢鍝佷俊鎭�");
- commonGoods = CommonGoodsFactory.create(goods);
- }
+ if (commonGoods == null) {
+ LogHelper.test("浜戝彂鍗曟湭鎵惧埌鍟嗗搧璇︽儏锛宨d=" + goodsId + "type=" + goodsType);
+ throw new UserCloudGoodsException(1, "鍟嗗搧淇℃伅鑾峰彇澶辫触");
+ }
- if (commonGoods == null) {
- LogHelper.test("浜戝彂鍗曟湭鎵惧埌鍟嗗搧璇︽儏锛宨d=" + goodsId + "type=" + goodsType);
- continue;
- }
-
- try {
- commonGoodsService.addOrUpdateCommonGoods(commonGoods);
- } catch (CommonGoodsException e) {
- LogHelper.errorDetailInfo(e);
- throw new UserCloudGoodsException(1, "鍟嗗搧淇℃伅鏇存柊澶辫触");
- }
+ try {
+ commonGoodsService.addOrUpdateCommonGoods(commonGoods);
+ } catch (CommonGoodsException e) {
+ LogHelper.errorDetailInfo(e);
+ throw new UserCloudGoodsException(1, "鍟嗗搧淇℃伅鏇存柊澶辫触");
+ }
+
+ UserCloudGoods result = null;
+ UserCloudGoods cloudGoods = userCloudGoodsMapper.getByUidAndCommonGoodsId(uid, commonGoods.getId());
+ if (cloudGoods != null) {
+ result = cloudGoods;
+
+ UserCloudGoods update = new UserCloudGoods();
+ update.setId(cloudGoods.getId());
+ update.setState(UserCloudGoods.STATE_NORMAL);
+ update.setUpdateTime(new Date());
+ userCloudGoodsMapper.updateByPrimaryKeySelective(update);
+ } else {
+ cloudGoods = new UserCloudGoods();
+ cloudGoods.setUid(uid);
+ cloudGoods.setState(UserCloudGoods.STATE_NORMAL);
+ cloudGoods.setCommonGoods(commonGoods);
+ cloudGoods.setCreateTime(new Date());
+ cloudGoods.setUpdateTime(new Date());
+ userCloudGoodsMapper.insertSelective(cloudGoods);
+
+ result = cloudGoods;
+ }
+ return result;
+ }
- UserCloudGoods cloudGoods = userCloudGoodsMapper.getByUidAndCommonGoodsId(uid, commonGoods.getId());
- if (cloudGoods != null) {
- UserCloudGoods update = new UserCloudGoods();
- update.setId(cloudGoods.getId());
- update.setState(UserCloudGoods.STATE_NORMAL);
- update.setUpdateTime(new Date());
- userCloudGoodsMapper.updateByPrimaryKeySelective(update);
- } else {
- cloudGoods = new UserCloudGoods();
- cloudGoods.setUid(uid);
- cloudGoods.setState(UserCloudGoods.STATE_NORMAL);
- cloudGoods.setCommonGoods(commonGoods);
- cloudGoods.setCreateTime(new Date());
- cloudGoods.setUpdateTime(new Date());
- userCloudGoodsMapper.insertSelective(cloudGoods);
- }
-
- if (cloudGoods.getId() != null) {
- if (!Constant.IS_TEST) {
- UserCloudMQMsg msg = new UserCloudMQMsg(uid, cloudGoods.getId() +"", UserCloudMQMsg.TYPE_STORE);
- Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userCloud, msg);
- producer.send(message);
- }
- }
-
+ @Override
+ public void sendGoodsMQMsg(Long uid) {
+ if (Constant.IS_TEST) {
+ return;
+ }
+
+ List<UserCloudGoods> list = userCloudGoodsMapper.listByNotShare(uid);
+ if (list == null || list.size() == 0) {
+ return;
+ }
+
+ long deliverTime = java.lang.System.currentTimeMillis();
+ for (UserCloudGoods cloudGoods : list) {
+ UserCloudMQMsg msg = new UserCloudMQMsg(uid, cloudGoods.getId() + "", UserCloudMQMsg.TYPE_STORE);
+ Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userCloud, msg);
+ message.setStartDeliverTime(deliverTime);
+ producer.send(message);
+ // 姣�5鍒嗛挓鏌ヨ涓�娆�
+ deliverTime = deliverTime + 1000 * 60 * 5;
}
}
-
-
+
}
--
Gitblit v1.8.0