admin
2018-12-22 f066298a11b302e6b19c7b5f589ccc3102dccf46
Merge remote-tracking branch 'origin/master'
3个文件已修改
140 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/UserGoodsStorageController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/share/UserShareGoodsRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserGoodsStorageController.java
@@ -226,6 +226,12 @@
                out.print(JsonUtil.loadFalseResult("分享商品数量不足"));
                return;
            }
            if (listStorageID.size() != 9) {
                out.print(JsonUtil.loadFalseResult("分享商品数量只能是9个"));
                return;
            }
            JSONObject data = userGoodsStorageService.shareGoods(uid, listStorageID);
            out.print(JsonUtil.loadTrueResult(data));
fanli/src/main/java/com/yeshi/fanli/mapping/share/UserShareGoodsRecordMapper.xml
@@ -97,7 +97,7 @@
   
   
   <select id="listCountTodayBrowse" resultMap="CountRecordMap" parameterType="java.util.List">
        SELECT g.`gu_record_id`AS sgr_id,SUM(g.`gu_today_browse`)AS todayBrowse FROM yeshi_ec_share_goods_group g
        SELECT g.`gu_record_id`AS sgr_id, IFNULL(SUM(g.`gu_today_browse`),0)AS todayBrowse FROM yeshi_ec_share_goods_group g
        WHERE TO_DAYS(g.`gu_browse_time`) = TO_DAYS(NOW()) 
              AND g.`gu_record_id` IN <foreach collection="list" item="item" open="(" close=")"
                    separator=",">#{item}</foreach>
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java
@@ -16,6 +16,7 @@
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.QRCodeUtil;
@@ -31,7 +32,6 @@
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;
import com.yeshi.fanli.entity.bus.user.UserGoodsStorage;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -515,8 +515,7 @@
        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");
        BigDecimal shareRate = hongBaoManageService.getShareRate(java.lang.System.currentTimeMillis());
        
        for (UserShareGoodsGroup goodsGroup : list) {
            CommonGoods commonGoods = goodsGroup.getCommonGoods();
@@ -539,12 +538,20 @@
            
            TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
            
            // 今日浏览记录处理
            Date date = new Date();
            Date browseTime = goodsGroup.getBrowseTime();
            if (!DateUtil.isSameDay(browseTime, date)) {
                goodsGroup.setTodayBrowse(0); // 不是同一天浏览记录设置0
            }
            JSONObject dataObject = new JSONObject();
            dataObject.put("todayBrowse",goodsGroup.getTodayBrowse() );
            dataObject.put("totalBrowse",goodsGroup.getTotalBrowse() );
            dataObject.put("totalOrder", goodsGroup.getTotalOrder());
            dataObject.put("totalMoney", "¥"+goodsGroup.getTotalMoney());
            dataObject.put("goods", gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion, null)));
            dataObject.put("goods", gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, shareRate+"", null)));
            array.add(dataObject);
        }
        
@@ -565,83 +572,68 @@
    @Override
    public JSONObject getGoodsGroupDetail(Long recordId) throws UserShareGoodsRecordException {
        
        List<CommonGoods> listUpadteCommonGoods = new ArrayList<CommonGoods>();
        JSONArray array = new JSONArray();
        
        List<UserShareGoodsGroup> list = userShareGoodsGroupService.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");
            for (UserShareGoodsGroup userShareGoodsGroup : list) {
                CommonGoods commonGoods = userShareGoodsGroup.getCommonGoods();
            List<Long> listGid = new ArrayList<Long>();
            for (UserShareGoodsGroup goodsGroup : list) {
                CommonGoods commonGoods = goodsGroup.getCommonGoods();
                if (commonGoods == null) {
                    continue;
                }
                TaoBaoGoodsBrief goodsBrief = null;
                // 更新一个小时之内的商品不再更新
                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();
                            }
                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();
            }
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                    .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            BigDecimal shareRate = hongBaoManageService.getShareRate(java.lang.System.currentTimeMillis());
            for (UserShareGoodsGroup goodsGroup : list) {
                CommonGoods commonGoods = goodsGroup.getCommonGoods();
                if (commonGoods == null) {
                    continue;
                }
                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);
                
                if (goodsBrief.getCouponLeftCount() < 1 || StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo())) {
                    goodsBrief.setState(1); // 已抢光
                }
                
                // 改变图片尺寸
                String pictUrl = goodsBrief.getPictUrl();
                if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                    goodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
                }
                TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion, null);
                TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, shareRate +"", null);
                array.add(gson.toJson(taoBaoGoodsBriefExtra));
            }
        }
        
        String title = "";
@@ -654,20 +646,6 @@
        data.put("title", title);
        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;
    }