From a70d35cd9a672deb0aed272c8209ddde096f917b Mon Sep 17 00:00:00 2001 From: 喻健 <喻健@Admin> Date: 星期三, 12 十二月 2018 10:25:08 +0800 Subject: [PATCH] 动态商品分享接口修改,添加新接口, 画图调整 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java | 156 ++++++--------------------------------------------- 1 files changed, 20 insertions(+), 136 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java index 23bf316..cf4a6de 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java @@ -4,47 +4,27 @@ 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.core.task.TaskExecutor; import org.springframework.stereotype.Service; import org.yeshi.utils.DateUtil; -import org.yeshi.utils.JsonUtil; -import org.yeshi.utils.taobao.TbImgUtil; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; import com.yeshi.fanli.dao.mybatis.share.UserShareGoodsGroupMapper; import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup; -import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.share.UserShareGoodsRecordException; -import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.service.inter.goods.CommonGoodsService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService; 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; @Service public class UserShareGoodsGroupServiceImpl implements UserShareGoodsGroupService { - @Resource(name = "taskExecutor") - private TaskExecutor executor; - @Resource private HongBaoManageService hongBaoManageService; - - @Resource - private RedisManager redisManager; @Resource private CommonGoodsService commonGoodsService; @@ -100,38 +80,44 @@ /** * 鏇存柊娴忚璁板綍鏁版嵁 - * @param uid - * @param auctionId + * @param shareId 鍒嗕韩id + * @param count 娴忚娆℃暟 */ @Override - public void updateBrowseRecord (Long uid, Long auctionId, int count) throws UserShareGoodsRecordException{ - if (uid == null) { - throw new UserShareGoodsRecordException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"); + public void updateBrowseRecord (Long shareId, int count) throws UserShareGoodsRecordException{ + + if (shareId == null) { + throw new UserShareGoodsRecordException(1, "鍒嗕韩id涓虹┖"); } - if (auctionId == null) { - throw new UserShareGoodsRecordException(1, "鍟嗗搧ID涓嶈兘涓虹┖"); + List<UserShareGoodsGroup> list = listByRecordId(shareId); + if (list == null || list.size() == 0) { + throw new UserShareGoodsRecordException(1, "鍒嗕韩鍟嗗搧宸蹭笉瀛樺湪"); } - UserShareGoodsGroup newestRecord = getNewestRecord(uid, auctionId); + List<UserShareGoodsGroup> listUpdate = new ArrayList<UserShareGoodsGroup>(); - if (newestRecord != null) { + for (UserShareGoodsGroup group: list) { // 娉ㄦ剰锛� 淇敼璁板綍鏁版嵁銆佷絾涓嶅彲淇敼鏇存柊璁剧疆 - UserShareGoodsGroup shareGoodsGroup = new UserShareGoodsGroup(newestRecord.getId()); + UserShareGoodsGroup shareGoodsGroup = new UserShareGoodsGroup(group.getId()); - shareGoodsGroup.setTotalBrowse(newestRecord.getTotalBrowse() + count); + shareGoodsGroup.setTotalBrowse(group.getTotalBrowse() + count); - Date browseTime = newestRecord.getBrowseTime(); + Date browseTime = group.getBrowseTime(); if (DateUtil.isSameDay(browseTime, new Date())) { - shareGoodsGroup.setTodayBrowse(newestRecord.getTodayBrowse() + count); + shareGoodsGroup.setTodayBrowse(group.getTodayBrowse() + count); } else { shareGoodsGroup.setTodayBrowse(count); shareGoodsGroup.setBrowseTime(new Date()); } - updateByPrimaryKeySelective(shareGoodsGroup); + listUpdate.add(shareGoodsGroup); } + + userShareGoodsGroupMapper.updateBatchSelective(listUpdate); + } + /** * 鏇存柊璁㈠崟璁板綍鏁版嵁 @@ -168,106 +154,4 @@ updateByPrimaryKeySelective(shareGoodsGroup); } } - - @Override - public JSONObject getGoodsGroup(Long recordId) throws UserShareGoodsRecordException { - - List<CommonGoods> listUpadteCommonGoods = new ArrayList<CommonGoods>(); - - JSONArray array = new JSONArray(); - - List<UserShareGoodsGroup> list = listByRecordId(recordId); - if (list != null && list.size() > 0) { - - Date nowDate = new Date(); - long nh = 1000 * 60 * 60; - long nd = 1000 * 24 * 60 * 60; - - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - - Map<String, String> map = hongBaoManageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); - - for (UserShareGoodsGroup userShareGoodsGroup : list) { - CommonGoods commonGoods = userShareGoodsGroup.getCommonGoods(); - if (commonGoods == null) { - 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 hour = diff % nd / nh; - if (hour > 1) { - try { - if (commonGoods.getGoodsType() == CommonGoods.GOODS_TYPE_TB) { - goodsBrief = redisManager.getTaoBaoGoodsBrief(commonGoods.getGoodsId()); - goodsBrief.setState(0); - goodsState = 0; - } - } catch (TaobaoGoodsDownException e) { - // 宸蹭笅鏋� - goodsState = 1; - commonGoods.setState(1); - e.printStackTrace(); - } - } - } - } - - if (goodsBrief == null) { - goodsBrief = TaoBaoUtil.convert(commonGoods); - } else { - CommonGoods upadeteCommonGoods = CommonGoodsFactory.create(goodsBrief); - upadeteCommonGoods.setState(goodsState); - listUpadteCommonGoods.add(upadeteCommonGoods); - } - - // 鏀瑰彉鍥剧墖灏哄 - String pictUrl = commonGoods.getPicture(); - if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) { - commonGoods.setPicture(TbImgUtil.getTBSize320Img(pictUrl)); - } - - String json = gson - .toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion, fcRate, null)); - - dataObject.put("groupId", userShareGoodsGroup.getId()); - dataObject.put("goods", json); - array.add(dataObject); - } - - } - - JSONObject data = new JSONObject(); - data.put("count", list.size()); - data.put("result_list", array); - - if (listUpadteCommonGoods.size() > 0) { - executor.execute(new Runnable() { - @Override - public void run() { - try { - // 鏇存柊绠�鐗堜俊鎭� - commonGoodsService.updateBatchCommonGoods(listUpadteCommonGoods); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - } - - return data; - } - } -- Gitblit v1.8.0