From faabdba4cdfc442d3dc5f06bd9ae9cc90d8161c3 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 17 五月 2019 09:32:34 +0800 Subject: [PATCH] bug修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 156 insertions(+), 5 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java index 5f23df9..0cf36cb 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java @@ -26,6 +26,7 @@ import com.google.gson.GsonBuilder; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.share.UserShareGoodsRecordMapper; +import com.yeshi.fanli.dto.share.ShareInfoDTO; import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup; import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord; import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum; @@ -230,6 +231,35 @@ singleGoodsShare(userShareGoodsRecord, goodsBrief); } + + @Override + public Long saveSingleShareRecord(Long uid, Long auctionId) throws UserShareGoodsRecordException { + + if (auctionId == null) { + throw new UserShareGoodsRecordException(1, "鍒嗕韩鍟嗗搧涓嶈兘涓虹┖"); + } + + if (uid == null) { + throw new UserShareGoodsRecordException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"); + } + + TaoBaoGoodsBrief goodsBrief = null; + try { + goodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId); + } catch (TaobaoGoodsDownException e) { + throw new UserShareGoodsRecordException(1, "鍟嗗搧宸蹭笅鏋�"); + } + + UserShareGoodsRecord userShareGoodsRecord = new UserShareGoodsRecord(); + userShareGoodsRecord.setUid(uid); + userShareGoodsRecord.setSource(ShareSourceTypeEnum.goodsDetail); + userShareGoodsRecord.setShareState(0); + // 鍗曚釜鍟嗗搧鍒嗕韩 + singleGoodsShare(userShareGoodsRecord, goodsBrief); + + return userShareGoodsRecord.getId(); + } + @Override public void save(Long uid, ShareSourceTypeEnum source, String title, TaoBaoGoodsBrief taoBaoGoodsBrief) throws UserShareGoodsRecordException { @@ -298,6 +328,56 @@ return map; } + + + + + /** + * 淇濆瓨鍒嗕韩璁板綍 + * + * @param userShareGoodsRecord + * 鍒嗕韩璁板綍锛� uid銆乸icture銆乻ource 涓哄繀杈撳叆 + * @throws UserShareGoodsRecordException + */ + @Override + public ShareInfoDTO saveShareRecord(Long uid, ShareSourceTypeEnum source, String title, + List<TaoBaoGoodsBrief> listGoods) throws UserShareGoodsRecordException { + + if (listGoods == null || listGoods.size() == 0) { + throw new UserShareGoodsRecordException(1, "鍒嗕韩鍟嗗搧鏁伴噺涓嶈冻"); + } + + if (uid == null) { + throw new UserShareGoodsRecordException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"); + } + + if (source == null) { + throw new UserShareGoodsRecordException(1, "鍒嗕韩鏉ユ簮涓嶈兘涓虹┖"); + } + + UserShareGoodsRecord userShareGoodsRecord = new UserShareGoodsRecord(); + userShareGoodsRecord.setUid(uid); + userShareGoodsRecord.setSource(source); + userShareGoodsRecord.setTitle(title); + // 鍙栦竴涓晢鍝佸浘鐗囦綔涓轰富鍥� + userShareGoodsRecord.setPicture(listGoods.get(0).getPictUrl()); + + Date date = new Date(); + userShareGoodsRecord.setShareState(0); // 鍒濆鏈垎浜� + userShareGoodsRecord.setCreateTime(date); + userShareGoodsRecord.setUpdateTime(date); + userShareGoodsRecordMapper.insertSelective(userShareGoodsRecord); + + // 澶氫釜鍟嗗搧鍒嗕韩 + multipleGoodsShareRecord(userShareGoodsRecord, listGoods); + + ShareInfoDTO shareInfo = new ShareInfoDTO(); + shareInfo.setShareId(userShareGoodsRecord.getId()); + shareInfo.setShareUrl(getShareUrl(userShareGoodsRecord)); + + return shareInfo; + } + /** * 鍗曚釜鍟嗗搧鍒嗕韩鐢熸垚璁板綍 @@ -358,6 +438,57 @@ } + + /** + * 澶氫釜鍟嗗搧鍒嗕韩鐢熸垚璁板綍 + * + * @param userShareGoodsRecord + * @param listGoods + */ + @Transactional + public void multipleGoodsShareRecord(UserShareGoodsRecord userShareGoodsRecord, + List<TaoBaoGoodsBrief> listGoods) throws UserShareGoodsRecordException { + + // 鍒嗕韩璁板綍 + Date date = new Date(); + + List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>(); + List<UserShareGoodsGroup> listGroup = new ArrayList<UserShareGoodsGroup>(); + + for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoods) { + CommonGoods commonGoods = CommonGoodsFactory.create(taoBaoGoodsBrief); + commonGoods.setState(taoBaoGoodsBrief.getState()); + try { + CommonGoods resultCommonGoods = commonGoodsService.addOrUpdateCommonGoods(commonGoods); + + if (resultCommonGoods != null) { + TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(resultCommonGoods); + listGoodsBrief.add(goodsBrief); + } + + UserShareGoodsGroup shareGoodsGroup = new UserShareGoodsGroup(); + shareGoodsGroup.setTotalOrder(0); + shareGoodsGroup.setTotalBrowse(0); + shareGoodsGroup.setTodayBrowse(0); + shareGoodsGroup.setTotalMoney(new BigDecimal(0)); + shareGoodsGroup.setCreateTime(date); + shareGoodsGroup.setUpdateTime(date); + shareGoodsGroup.setCommonGoods(resultCommonGoods); + shareGoodsGroup.setRecordId(userShareGoodsRecord.getId()); + + listGroup.add(shareGoodsGroup); + + } catch (CommonGoodsException e) { + e.printStackTrace(); + continue; + } + } + + if (listGroup.size() > 0) { + userShareGoodsGroupService.insertBatch(listGroup); + } + } + /** * 澶氫釜鍟嗗搧鍒嗕韩鐢熸垚璁板綍 * @@ -412,6 +543,22 @@ return shareImg; } + public String getShareUrl (UserShareGoodsRecord shareRecord) { + Long uid = shareRecord.getUid(); + Long shareId = shareRecord.getId(); + String source = shareRecord.getSource().name(); + + String url = String.format("http://%s/share_mushGoods.html?uid=%s&shareId=%s&source=%s", + configService.getH5Host(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), shareId + "", + source + ""); + + String shortLink = HttpUtil.getShortLink(url); + if (!StringUtil.isNullOrEmpty(shortLink)) { + url = shortLink; + } + return url; + } + /** * 鐢熸垚鍒嗕韩鍥� * @@ -655,15 +802,19 @@ } shareRecord.setShareState(1);// 鍒嗕韩鐢熸晥 - updateByPrimaryKeySelective(shareRecord); - // 鏇存柊鍟嗗搧涓哄凡鍒嗕韩 - userGoodsStorageService.updateShareState(shareId); + updateByPrimaryKeySelective(shareRecord);// 鏇存柊鍟嗗搧涓哄凡鍒嗕韩 + + // 鏇存柊閫夊搧搴撳晢鍝佷负宸插垎浜� + executor.execute(new Runnable() { + @Override + public void run() { + userGoodsStorageService.updateShareState(shareId); + } + }); } @Override public long countShareRecordByUid(Long uid) { - return userShareGoodsRecordMapper.countQueryByUid(uid, null); - } } -- Gitblit v1.8.0