yujian
2019-05-15 403ed72427bf91a8cdd5dcbd188dd417ec8b7623
动态商品更新优化
4个文件已修改
110 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/BrandController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/dynamic/DynamicInfo.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/src/main/java/org/yeshi/utils/DateUtil.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/BrandController.java
@@ -85,26 +85,6 @@
        }
    }
    /**
     * 添加足迹
     *
     * @param acceptData
     * @param out
     */
    @RequestMapping(value = "addHistory", method = RequestMethod.POST)
    public void addHistory(AcceptData acceptData, Long sid, Long uid, PrintWriter out) {
        try {
            if (sid == null || sid == 0) {
                out.print(JsonUtil.loadFalseResult("店铺id为空"));
                return;
            }
            out.print(JsonUtil.loadTrueResult("记录成功"));
        } catch (Exception e) {
            out.print(JsonUtil.loadFalseResult("记录失败"));
            e.printStackTrace();
        }
    }
    /**
fanli/src/main/java/com/yeshi/fanli/entity/dynamic/DynamicInfo.java
@@ -70,6 +70,10 @@
    @Expose
    @Field("createTime")
    private Date createTime;
    // 更新时间
    @Field("updateTime")
    private Date updateTime;
    // 所属类型 1热销 2好货 3好店 4邀请
    @Field("classId")
@@ -208,4 +212,12 @@
        this.activityId = activityId;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -10,6 +10,7 @@
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import com.yeshi.fanli.dao.dynamic.DynamicInfoDao;
@@ -279,8 +280,8 @@
        dynamicInfo.setClassId(classId);
        dynamicInfo.setSubclassId(subclassId);
        dynamicInfo.setDaTaoKeId(daTaoKe.getId());
        dynamicInfo.setCreateTime(new Date());
        dynamicInfo.setCreateTime(DateUtil.reduceRandomMinute(new Date()));
        dynamicInfo.setUpdateTime(new Date());
        // 随机分享次数
        dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000));
        // 随机分布用户
@@ -375,14 +376,15 @@
        dynamicVO.setClassId(4L);
        dynamicVO.setSubclassId(0L);
        dynamicVO.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
        dynamicVO.setUpdateTime(new Date());
        if (existInfo != null) {
            dynamicVO.setCreateTime(existInfo.getCreateTime());
            dynamicVO.setShareCount(existInfo.getShareCount());
        } else {
            dynamicVO.setCreateTime(new Date());
            dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date()));
            dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000));
        }
        
        if (activityUser == null) {
            dynamicVO.setUser(activityUserService.listRand(1).get(0));
@@ -487,7 +489,8 @@
        dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_TWO);
        dynamicVO.setShop(taoBaoShop);
        dynamicVO.setUser(activityUserService.listRand(1).get(0));
        dynamicVO.setCreateTime(new Date());
        dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date()));
        dynamicVO.setUpdateTime(new Date());
        
        // 介绍内容
        ClientTextStyleVO row1 = new ClientTextStyleVO();
@@ -546,13 +549,33 @@
        
        BigDecimal proportion = hongBaoManageService.getFanLiRate();
        for (DynamicInfo dynamicInfo: list) {
            // 邀请数据不做更新
            long classId = dynamicInfo.getClassId();
            if (classId == 4) {
                break;
            }
            // 更新商品信息
            List<GoodsPicture> imgs = dynamicInfo.getImgs();
            if (imgs == null || imgs.size() == 0) {
                continue;
            }
            
            boolean isupdate = false;
            BigDecimal shareMoney = null;
            // 是否一个小时之内已更新
            Date updateTime = dynamicInfo.getUpdateTime();
            if (updateTime != null) {
                long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
                long nh = 1000 * 60 * 60;// 一小时的毫秒数
                long diff = System.currentTimeMillis() - updateTime.getTime();
                long day = diff / nd;// 计算差多少天
                long hour = diff % nd / nh + day * 24;// 计算差多少小时
                if (hour < 1) {
                    continue;
                }
            }
            // 更新
            BigDecimal shareMoney = new BigDecimal(0);
            for (GoodsPicture goodsPicture: imgs) {
                TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods();
                if (oldExtra == null) {
@@ -564,16 +587,6 @@
                    continue;
                }
                
                long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
                long nh = 1000 * 60 * 60;// 一小时的毫秒数
                long diff = System.currentTimeMillis() - oldExtra.getUpdatetime().getTime();
                long day = diff / nd;// 计算差多少天
                long hour = diff % nd / nh + day * 24;// 计算差多少小时
                if (hour < 1) {
                    continue;
                }
                isupdate = true;
                try {
                    TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId());
                    TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null);
@@ -584,8 +597,12 @@
                    newExtra.setUpdatetime(new Date());
                    goodsPicture.setGoods(newExtra);
                    
                    BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief);
                    shareMoney = MoneyBigDecimalUtil.add(shareMoney, money);
                    // 更新热销单品的分享奖金  ,其余不做更新
                    if (classId == 1) {
                        BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief);
                        shareMoney = MoneyBigDecimalUtil.add(shareMoney, money);
                    }
                    
                } catch (TaobaoGoodsDownException e) {
                    oldExtra.setState(1);
@@ -596,7 +613,8 @@
                }
            }
            
            if (shareMoney != null) {
            // 更新热销单品的分享奖金  ,其余不做更新
            if (classId == 1) {
                ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
                shareMoneyDesc.setColor("#FFFFFF");
                shareMoneyDesc.setBottomColor("#E8AE48");
@@ -604,9 +622,9 @@
                dynamicInfo.setDesc(shareMoneyDesc);
            }
            
            if (isupdate) {
                dynamicInfoDao.updateGoodInfo(dynamicInfo);
            }
            dynamicInfo.setImgs(imgs);
            dynamicInfo.setUpdateTime(new Date());
            dynamicInfoDao.updateGoodInfo(dynamicInfo);
        }
    }
    
@@ -653,6 +671,7 @@
                dynamicInfo.setShareCount(existInfo.getShareCount());
            } else {
                dynamicInfo.setCreateTime(new Date());
                dynamicInfo.setUpdateTime(new Date());
                dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000));
            }
@@ -727,5 +746,4 @@
            e.printStackTrace();
        }
    }
}
utils/src/main/java/org/yeshi/utils/DateUtil.java
@@ -251,6 +251,18 @@
    }
    /**
     * 随机减去几分钟
     * @param date
     * @return
     */
    public static Date reduceRandomMinute(Date date) {
        long rand = (long) (Math.random() * 60 * 8);
        long time = date.getTime() - rand;
        return new Date(time);
    }
    /**
     * @param args
     * @throws ParseException format() 对日期进行格式化处理 parse() 将日期设置为date类型
     */