admin
2020-03-10 30228a7caa447384fe7d0dc64c0c0118d8860a9b
Merge remote-tracking branch 'origin/div' into div
4个文件已修改
173 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java
@@ -178,6 +178,9 @@
    shareCommentTextTB("share_comment_text_tb", "淘宝单图多图分享商品文本"),
    shareCommentTextJD("share_comment_text_jd", "京东单图多图分享商品文本"),
    shareCommentTextPDD("share_comment_text_pdd", "拼多多单图多图分享商品文本"),
    evaluateEmojis("evaluate_emojis", "发圈评论Emojis"),
    evaluateText("evaluate_text", "发圈评论文本"),
    ;
    private final String key;
fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java
@@ -25,6 +25,7 @@
import com.yeshi.fanli.service.inter.activity.ActivityUserService;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.dynamic.WXMPDynamicInfoService;
import com.yeshi.fanli.service.inter.goods.jd.NYouHuiService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
@@ -60,6 +61,9 @@
    @Resource
    private JumpDetailV2Service jumpDetailV2Service;
    @Resource
    private GoodsEvaluateService goodsEvaluateService;
    /**
     * 每10分钟  晚上00:00~06:00不下发任何一个商品
@@ -353,4 +357,26 @@
        }
    }
    /**
     * 自动生成发圈
     * 早上6,7,15,16,21,22,23点更新1次
     */
    @Scheduled(cron = "0 0 6,7,15,16,21,22,23 * * ? ")
    public void insetEvaluate() {
        if (!Constant.IS_TASK) {
            return;
        }
        try {
            goodsEvaluateService.addGoodsEvaluateByDaTaoKe();
        } catch (Exception e) {
            try {
                LogHelper.errorDetailInfo(e);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -61,6 +61,7 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.FilePathEnum;
import com.yeshi.fanli.util.FileUtil;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
@@ -111,8 +112,6 @@
    
    @Resource
    private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
    @Override
    public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
@@ -470,9 +469,8 @@
        }
        /*
         * // 无券不能自动 生成评论 CouponInfoVO couponInfo1 =
         * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment
         * = false; }
         * // 无券不能自动 生成评论 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if
         * (couponInfo1 == null) { addComment = false; }
         */
        String commentText = "";
@@ -498,12 +496,12 @@
                commentText = template.replace("[链接]", jumpLink);
            }
            commentText = commentText.replace("[原价]", goodsDetailVO.getZkPrice().toString());
            commentText = commentText.replace("[原价]", MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+"");
            if (!goodsDetailVO.isHasCoupon()) {
                commentText = commentText.replace("领券抢购", "抢购");
                commentText = commentText.replace("【券后价】[券后价]元", "");
            } else {
                commentText = commentText.replace("[券后价]", goodsDetailVO.getCouponPrice().toString());
                commentText = commentText.replace("[券后价]",  MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+"");
            }
            commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
@@ -1519,8 +1517,8 @@
                List<CommentInfo> commentNew = new ArrayList<>();
                for (CommentInfo commentInfo : comments) {
                    if (StringUtil.isNullOrEmpty(commentInfo.getContent()) &&
                            StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
                    if (StringUtil.isNullOrEmpty(commentInfo.getContent())
                            && StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
                        continue;
                    }
                    
@@ -1851,13 +1849,9 @@
        }
    }
    @Override
    public void addGoodsEvaluateByDaTaoKe() {
        try {
            boolean addSuccess = false;
            List<Long> listId = null;
            List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist();
            if (listExist != null && listExist.size() > 0) {
                listId = new ArrayList<Long>();
@@ -1868,8 +1862,6 @@
                    }
                }
            }
            // 热销单品的分类
            List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses;
            int ci = (int) (Math.random() * listClass.size());
@@ -1880,10 +1872,24 @@
                return;
            }
            
            DaTaoKeDetailV2 daTaoKe = list.get(0);
        for (int i = 0; i < list.size(); i++) {
            boolean cerateGoods = cerateGoods(list.get(i));
            if (cerateGoods) {
                break;
            }
        }
    }
    private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) {
        try {
            TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId());
            if (goodsBrief == null) {
                return;
                return false;
            }
            BigDecimal couponAmount = goodsBrief.getCouponAmount();
            if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
                return false;
            }
            
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
@@ -1894,23 +1900,27 @@
            // 发布用户
            ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
            
//            String desc = getDesc(daTaoKe.getDesc());
            String desc = daTaoKe.getDesc().replace(",", ",");
            System.out.println(desc);
            String[] split = desc.split(",");
            System.out.println(split.length);
            int max = 1;
            if (Math.random() > 0.5) {
                max = 2;
            }
            int e = 0;
            String emojis = "";
            String descNew = "";
            if (split.length > 0) {
                for (int i = 0; i < split.length; i ++ ) {
                    if (Math.random() > 0.5 && e < max) {
                        for (int j = 0; j < 10; j++) {
                            String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
                            if (!emojis.equals(emojisTemp)) {
                                emojis = emojisTemp;
                                break;
                            }
                        }
                        e++;
                        descNew += split[i] +  DaTaoKeUtil.getRandomCommonEmoji();
                        descNew += split[i] + emojis;
                    } else {
                        descNew += split[i] + ",";
                    }
@@ -1922,7 +1932,6 @@
            if(descNew.endsWith(",")) {
                descNew = descNew.substring(0, descNew.length()-1);
            }
            
            GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
            goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
@@ -1941,8 +1950,15 @@
            goodsEvaluate.setCreateTime(new Date());
            goodsEvaluate.setUpdateTime(new Date());
            
            List<String> goodsimgs = goodsBrief.getImgList();
            List<String> imgs = new ArrayList<>();
            if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
                imgs.add(goodsBrief.getPictUrlWhite());
            }
            imgs.addAll(goodsimgs);
            int lineNum = 0;
            List<String> imgs = goodsBrief.getImgList();
            if (imgs.size() > 0) {
                if (imgs.size() == 1) {
                    lineNum = 1;
@@ -1981,20 +1997,23 @@
                        simpleGoods.setAmount(couponInfo.getAmount());
                    }
                    imgInfo.setGoods(simpleGoods);
                    imgInfo.setGoodsVO(goodsVO);
                    //TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsVO.getGoodsId(), null);
                    // TaoBaoLink taoBaoLink =
                    // shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID,
                    // goodsVO.getGoodsId(), null);
                    String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
                    
                    String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
                    String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token));
                    commentText = commentText.replace("[原价]", goodsVO.getZkPrice().toString());
                    commentText = commentText.replace("[原价]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice())+"");
                    if (!goodsVO.isHasCoupon()) {
                        commentText = commentText.replace("领券抢购", "抢购");
                        commentText = commentText.replace("【券后价】[券后价]元", "");
                    } else {
                        commentText = commentText.replace("[券后价]", goodsVO.getCouponPrice().toString());
                        commentText = commentText.replace("[券后价]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice())+"");
                    }
                    commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n")
                            .replace("\r\n\r\n", "\r\n");
@@ -2005,13 +2024,39 @@
                    commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
                    commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
                    String text2 = "";
                    String evaluateEmojis = configService.get(ConfigKeyEnum.evaluateEmojis.getKey());
                    if (!StringUtil.isNullOrEmpty(evaluateEmojis)) {
                        text2 = evaluateEmojis + "\n";
                    }
                    String evaluateText = configService.get(ConfigKeyEnum.evaluateText.getKey());
                    if (!StringUtil.isNullOrEmpty(evaluateText)) {
                        text2 += evaluateText;
                    }
                    String dtitle = daTaoKe.getDtitle();
                    if (!StringUtil.isNullOrEmpty(dtitle)) {
                        text2 = text2 + dtitle +"\n";
                    } else if (!StringUtil.isNullOrEmpty(evaluateText)) {
                        text2 += "\n";
                    }
                    text2 += "先领【"+ couponAmount +"元优惠券】下单";
                    CommentInfo commentInfo2 = new CommentInfo();
                    commentInfo2.setId(UUID.randomUUID().toString().replace("-", ""));
                    commentInfo2.setContent(text2);
                    commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon);
                    commentInfo2.setType("");
                    List<CommentInfo> commentsNew = new ArrayList<>();
                    commentsNew.add(commentInfo);
                    commentsNew.add(commentInfo2);
                    goodsEvaluate.setComments(commentsNew);
                    goodsEvaluate.setGoods(goodsVO);
                }
                imgList.add(imgInfo);
                i ++;
            }
@@ -2020,9 +2065,10 @@
        } catch (Exception e) {
            e.printStackTrace();
            LogHelper.errorDetailInfo(e);
            return false;
        }
        return true;
    }
    
    private String getDesc(String desc) {
        System.out.println(desc);
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java
@@ -131,6 +131,41 @@
            "🕦",// 十一点半
    };
    static final String[] evaluateEmojis = new String[] {
        "💟",
        "🌸",
        "🍸",
        "🍺",
        "📢",
        "❤",
        "💝",
        "💋",
        "👛",
        "🐾",
        "🌹",
        "🔥",
        "🎉",
        "🎁",
        "🍥",
        "🍭",
        "🌺",
        "👑",
        "✨",
        "💫",
        "🍻",
        "🎈",
        "💥",
        "💕",
        "💞",
        "💰",
        "💌",
        "💭",
        "🌼",
        "🍀",
    };
    public static List<GoodsClass> goodsClasses;
    static {
        goodsClasses = new ArrayList<>();
@@ -520,6 +555,11 @@
        return commonEmojis[(int) (Math.random() * commonEmojis.length)];
    }
    public static String getEvaluateEmojis() {
        return evaluateEmojis[(int) (Math.random() * evaluateEmojis.length)];
    }
    public static String getDesc(DaTaoKeDetailV2 detail) {
        // 标题+券后价+包邮+描述