From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java | 163 +++++++++++++++++++++++------------------------------ 1 files changed, 71 insertions(+), 92 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java index 3d9b3fd..fd6eb07 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java @@ -8,24 +8,21 @@ import javax.annotation.Resource; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Service; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.entity.FileUploadResult; -import org.yeshi.utils.taobao.TbImgUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.fanli.dao.mybatis.user.UserGoodsStorageMapper; -import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum; +import com.yeshi.fanli.dto.share.ShareGoodsRecordDTO; import com.yeshi.fanli.entity.bus.user.UserGoodsStorage; import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.goods.CommonGoodsException; import com.yeshi.fanli.exception.share.UserShareGoodsRecordException; +import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.exception.user.UserGoodsStorageException; import com.yeshi.fanli.service.inter.config.ConfigService; @@ -35,9 +32,12 @@ import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; -import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.CommonGoodsFactory; import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; @Service public class UserGoodsStorageServiceImpl implements UserGoodsStorageService { @@ -130,7 +130,7 @@ public long countQueryByUid(Long uid) { return userGoodsStorageMapper.countQueryByUid(uid); } - + @Override public void save(Long uid, Set<Long> auctionIds) throws UserGoodsStorageException { @@ -202,15 +202,31 @@ return array; } - Date nowDate = new Date(); - long nh = 1000 * 60 * 60; - long nd = 1000 * 24 * 60 * 60; - List<CommonGoods> listUpadteCommonGoods = new ArrayList<CommonGoods>(); + + List<Long> listGid = new ArrayList<Long>(); + for (UserGoodsStorage userGoodsStorage : listStorage) { + CommonGoods commonGoods = userGoodsStorage.getCommonGoods(); + if (commonGoods == null) { + continue; + } + listGid.add(commonGoods.getGoodsId()); + } + + // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭 + List<TaoBaoGoodsBrief> listTaoKeGoods = null; + try { + listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid); + } catch (TaoKeApiException e) { + e.printStackTrace(); + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } BigDecimal rate = manageService.getFanLiRate(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - for (UserGoodsStorage userGoodsStorage : listStorage) { CommonGoods commonGoods = userGoodsStorage.getCommonGoods(); @@ -218,83 +234,36 @@ continue; } - TaoBaoGoodsBrief goodsBrief = null; - JSONObject dataObject = new JSONObject(); - - - // 鏇存柊涓�涓皬鏃朵箣鍐呯殑鍟嗗搧涓嶅啀鏇存柊 - Integer goodsState = commonGoods.getState(); - // 鐘舵�佹湭涓嬫灦鏃惰繘琛屾洿鏂� - if (goodsState != null && (goodsState != 1 || !goodsState.equals(1))) { - Date updateTime = commonGoods.getUpdateTime(); - if (updateTime != null) { - // 璁$畻宸灏戝皬鏃� - long diff = nowDate.getTime() - updateTime.getTime(); - long day = diff / nd; - long hour = diff % nd / nh; - if (hour > 1 || day > 0 ) { - try { - if (commonGoods.getGoodsType() == CommonGoods.GOODS_TYPE_TB) { - goodsBrief = redisManager.getTaoBaoGoodsBrief(commonGoods.getGoodsId()); - - goodsState = 0; - goodsBrief.setState(goodsState); - - CommonGoods upadeteCommonGoods = CommonGoodsFactory.create(goodsBrief); - upadeteCommonGoods.setState(goodsState); - upadeteCommonGoods.setId(commonGoods.getId()); - listUpadteCommonGoods.add(upadeteCommonGoods); - } - } catch (TaobaoGoodsDownException e) { - // 宸蹭笅鏋� - goodsState = 1; - commonGoods.setState(goodsState); - listUpadteCommonGoods.add(commonGoods); - e.printStackTrace(); - } - } + if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 ) { + int state = 1; // 榛樿鍋滃敭 + Long goodsId = commonGoods.getGoodsId(); + for (TaoBaoGoodsBrief taoKeGoods: listTaoKeGoods) { + Long auctionId = taoKeGoods.getAuctionId(); + if (goodsId == auctionId || goodsId.equals(auctionId)) { + state = 0; // 鍦ㄥ敭 + break; + } } + commonGoods.setState(state); } - if (goodsBrief == null) { - goodsBrief = TaoBaoUtil.convert(commonGoods); - } + TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods); // 鍒ゆ柇鏄惁宸插垎浜� - Integer state = userGoodsStorage.getState(); - int shared = UserGoodsStorage.STATE_SHARED; - if (state != null && (state == shared || state.equals(shared))) { - if (goodsState != 1 || !goodsState.equals(1)) { - goodsBrief.setState(2); // 宸插垎浜姸鎬� + Integer storageState = userGoodsStorage.getState(); + if (storageState != null && storageState == UserGoodsStorage.STATE_SHARED) { + Integer goodsState = goodsBrief.getState(); + if (goodsState != null && goodsState != 1) { + goodsBrief.setState(2); // 宸插垎浜姸鎬� 浼樺厛鏄剧ず宸蹭笅鏋� } } - - // 鏀瑰彉鍥剧墖灏哄 - String pictUrl = goodsBrief.getPictUrl(); - if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) { - goodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl)); - } + String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, rate.toString(), null)); - + + JSONObject dataObject = new JSONObject(); dataObject.put("storageId", userGoodsStorage.getId()); dataObject.put("goods", json); array.add(dataObject); - } - - - if (listUpadteCommonGoods.size() > 0) { - executor.execute(new Runnable() { - @Override - public void run() { - try { - // 鏇存柊绠�鐗堜俊鎭� - commonGoodsService.updateBatchCommonGoods(listUpadteCommonGoods); - } catch (Exception e) { - e.printStackTrace(); - } - - } - }); } return array; @@ -322,32 +291,42 @@ throw new UserGoodsStorageException(1, "閫夊搧搴撳晢鍝佷笉瀛樺湪"); } + + List<UserGoodsStorage> listResult = new ArrayList<UserGoodsStorage>(); + // 杩樺師椤哄簭 鐢ㄤ簬鍒跺浘 + for (Long sid: listStorageID) { + for (UserGoodsStorage torage: listStorage) { + Long id = torage.getId(); + if (sid == id || sid.equals(id)) { + listResult.add(torage); + break; + } + } + } + + BigDecimal totalMoney = new BigDecimal(0.00); List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>(); - for (UserGoodsStorage userGoodsStorage: listStorage) { + BigDecimal rate = hongBaoManageService.getShareRate(); + for (UserGoodsStorage userGoodsStorage: listResult) { CommonGoods commonGoods = userGoodsStorage.getCommonGoods(); TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods); listGoodsBrief.add(goodsBrief); - // 宸插垎浜� - userGoodsStorage.setState(1); - userGoodsStorage.setUpdateTime(new Date()); - String rateStr = hongBaoManageService.get("hongbao_goods_proportion"); - BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(goodsBrief, new BigDecimal(rateStr)); + BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(goodsBrief, rate); totalMoney = MoneyBigDecimalUtil.add(totalMoney, money); } - String revenue = listGoodsBrief.size() + "涓晢鍝侀浼板垎浜閲戯細楼"+totalMoney; - FileUploadResult loadResult = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.storage, listGoodsBrief); - - // 鏇存柊涓哄凡鍒嗕韩 - userGoodsStorageMapper.updateBatchSelective(listStorage); + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorage(uid, listGoodsBrief, listStorageID); + FileUploadResult uploadResult = new FileUploadResult(); + uploadResult.setUrl(shareRecord.getSharePictureUrl()); JSONObject data = new JSONObject(); - data.put("shareImg", loadResult); - data.put("revenue", revenue); - data.put("notifyDesc", configService.get("goods_share_notify")); + data.put("revenue", listGoodsBrief.size() + "涓晢鍝侀浼板垎浜閲戯細楼"+totalMoney); + data.put("shareId", shareRecord.getRedisKey()); + data.put("shareImg", uploadResult); + data.put("notifyDesc", configService.get("goods_share_multiple_notify")); return data; } -- Gitblit v1.8.0