admin
2020-02-27 be05279bfbc10defc002d7718f46a49f3c96d05e
Merge remote-tracking branch 'origin/div' into div

Conflicts:
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java
4个文件已修改
244 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java 224 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/test/java/org/fanli/TaoKeTest.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -14,6 +14,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.BigDecimalUtil;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
@@ -162,8 +163,8 @@
            BigDecimal fanliMoney) {
        List<ShareGoodsCommentChoiceInfo> list = new ArrayList<>();
        if (!StringUtil.isNullOrEmpty(token))
            list.add(new ShareGoodsCommentChoiceInfo(ShareGoodsCommentChoiceInfo.TYPE_TOKEN, "淘口令",
                    String.format("復製这条%s\n进入【Tao宝】即可抢购", token), true, false));
            list.add(
                    new ShareGoodsCommentChoiceInfo(ShareGoodsCommentChoiceInfo.TYPE_TOKEN, "淘口令", token, true, false));
        if (!StringUtil.isNullOrEmpty(link)) {
            list.add(new ShareGoodsCommentChoiceInfo(ShareGoodsCommentChoiceInfo.TYPE_LINK, "链接", link, true, false));
        }
@@ -244,7 +245,16 @@
    }
    public static String getERCodeContent(String template, TaoBaoGoodsBrief goods, String token) {
        return template.replace("[淘口令]", token);
        // return template.replace("[淘口令]", token);
        String commentText = template.replace("[原价]", goods.getZkPrice().toString());
        commentText = commentText.replace("[口令]", token);
        if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
            commentText = commentText.replace("领券抢购", "抢购");
            commentText = commentText.replace("【券后价】[券后价]元", "");
        } else {
            commentText = commentText.replace("[券后价]", TaoBaoUtil.getAfterUseCouplePrice(goods) + "");
        }
        return commentText;
    }
    /**
@@ -565,7 +575,8 @@
                    taoBaoLink.getGoods(), shareInfo.getToken()));
            // 提示图文内容
            String imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs.getKey());
            String imgs = configService.getByVersion(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), platform,
                    Integer.parseInt(version));
            JSONArray array = JSONArray.fromObject(imgs);
            shareInfo.setNotifyPicture(array.optString(0));
@@ -595,18 +606,42 @@
                }
            }
            // 设置评论文本选项
            shareInfo.setCommentTextChoiceList(getCommentChoiceList(shareInfo.getShareText(), null, inviteCode,
                    TaoBaoUtil.getGoodsHongBaoMoney(taoBaoLink.getGoods(), hongBaoManageService.getFanLiRate())));
            shareInfo.setCommentText(shareInfo.getShareText());
            String commentText = "";
            String recommendText = "";
            if (VersionUtil.greaterThan_2_0_7(platform, version)) {
                String recommend = taoBaoLink.getGoods().getTitle();
                if (!StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getDescription()))
                    recommend += "\n\r" + taoBaoLink.getGoods().getDescription();
                shareInfo.setRecommendText(recommend);
            } else
                shareInfo.setRecommendText(shareInfo.getDescText());
                TaoBaoGoodsBrief goods = taoBaoLink.getGoods();
                String template = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
                recommendText = template.replace("[商品标题]", goods.getTitle()).replace("[销量]",
                        TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day()));
                if (StringUtil.isNullOrEmpty(goods.getDescription())) {
                    recommendText = recommendText.replace("推荐语:[推荐语]", "");
                } else {
                    recommendText = recommendText.replace("[推荐语]", goods.getDescription());
                }
                String quickCommentText = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
                commentText = quickCommentText.replace("[原价]", goods.getZkPrice().toString());
                commentText = commentText.replace("[口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
                if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) {
                    commentText = commentText.replace("领券抢购", "抢购");
                    commentText = commentText.replace("【券后价】[券后价]元", "");
                    recommendText = recommendText.replace("优惠券:[券面额]", "");
                } else {
                    commentText = commentText.replace("[券后价]",
                            TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + "");
                    recommendText = recommendText.replace("[券面额]",
                            MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString());
                }
            } else {
                recommendText = shareInfo.getDescText();
                commentText = shareInfo.getShareText();
            }
            shareInfo.setCommentText(deleteBlankLine(commentText));
            shareInfo.setRecommendText(deleteBlankLine(recommendText));
            // 设置评论文本选项
            shareInfo.setCommentTextChoiceList(getCommentChoiceList(shareInfo.getCommentText(), null, inviteCode,
                    TaoBaoUtil.getGoodsHongBaoMoney(taoBaoLink.getGoods(), hongBaoManageService.getFanLiRate())));
            out.print(JsonUtil.loadTrueResult(
                    JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -748,15 +783,38 @@
        String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
        // 设置评论文本选项
        shareInfo.setCommentTextChoiceList(getCommentChoiceList(null, shareInfo.getShareText(), inviteCode,
                JDUtil.getGoodsFanLiMoney(jdGoods, hongBaoManageService.getFanLiRate())));
        String commentText = "";
        String recommendText = "";
        if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
            String template = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
            recommendText = template.replace("[商品标题]", jdGoods.getSkuName()).replace("[销量]",
                    JDUtil.getSaleCount(jdGoods.getInOrderCount30Days()));
            // 无推荐语
            recommendText = recommendText.replace("推荐语:[推荐语]", "");
        shareInfo.setCommentText(shareInfo.getShareText());
        if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion()))
            shareInfo.setRecommendText(jdGoods.getSkuName());
        else
            shareInfo.setRecommendText(shareInfo.getDescText());
            String quickCommentText = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
            commentText = quickCommentText.replace("[原价]", jdGoods.getPrice().toString());
            commentText = commentText.replace("[链接]", jumpLink);
            if (couponInfo == null) {
                commentText = commentText.replace("领券抢购", "抢购");
                commentText = commentText.replace("【券后价】[券后价]元", "");
                recommendText = recommendText.replace("优惠券:[券面额]", "");
            } else {
                commentText = commentText.replace("[券后价]",
                        BigDecimalUtil.getWithNoZera(JDUtil.getQuanPrice(jdGoods)).toString());
                recommendText = recommendText.replace("[券面额]",
                        BigDecimalUtil.getWithNoZera(JDUtil.getShowCouponInfo(jdGoods).getDiscount()).toString());
            }
        } else {
            commentText = shareInfo.getShareText();
            recommendText = shareInfo.getDescText();
        }
        shareInfo.setCommentText(deleteBlankLine(commentText));
        shareInfo.setRecommendText(deleteBlankLine(recommendText));
        // 设置评论文本选项
        shareInfo.setCommentTextChoiceList(getCommentChoiceList(null, shareInfo.getCommentText(), inviteCode,
                JDUtil.getGoodsFanLiMoney(jdGoods, hongBaoManageService.getFanLiRate())));
        out.print(JsonUtil.loadTrueResult(
                JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -788,6 +846,12 @@
            }
        });
    }
    private String deleteBlankLine(String st){
        return st.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
    }
    /**
     * 拼多多分享
@@ -893,15 +957,46 @@
        String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
        // 设置评论文本选项
        shareInfo.setCommentTextChoiceList(getCommentChoiceList(null, shareInfo.getShareText(), inviteCode,
                PinDuoDuoUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate())));
        String commentText = "";
        String recommendText = "";
        if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
            String qtemplate = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
            recommendText = qtemplate.replace("[商品标题]", goods.getGoodsName());
        shareInfo.setCommentText(shareInfo.getShareText());
        if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion()))
            shareInfo.setRecommendText(goods.getGoodsName());
        else
            shareInfo.setRecommendText(shareInfo.getDescText());
            // 总销量
            String salesTip = goods.getSalesTip();
            if (StringUtil.isNullOrEmpty(salesTip)) {
                salesTip = "0";
            }
            recommendText = recommendText.replace("[销量]", salesTip);
            recommendText = recommendText.replace("推荐语:[推荐语]", "");
            String quickCommentText = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
            commentText = quickCommentText.replace("[原价]", MoneyBigDecimalUtil
                    .div(new BigDecimal(goods.getMinGroupPrice()), new BigDecimal(100)).setScale(2).toString());
            commentText = commentText.replace("[链接]", jumpLink);
            if (!hasCoupon) {
                commentText = commentText.replace("领券抢购", "抢购");
                commentText = commentText.replace("【券后价】[券后价]元", "");
                recommendText = recommendText.replace("优惠券:[券面额]", "");
            } else {
                commentText = commentText.replace("[券后价]",
                        BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getQuanPrice(goods)).toString());
                BigDecimal hundred = new BigDecimal(100);
                BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred);
                recommendText = recommendText.replace("[券面额]", BigDecimalUtil.getWithNoZera(amount).toString());
            }
        } else {
            commentText = shareInfo.getShareText();
            recommendText = shareInfo.getDescText();
        }
        shareInfo.setRecommendText(deleteBlankLine(recommendText));
        shareInfo.setCommentText(deleteBlankLine(commentText));
        // 设置评论文本选项
        shareInfo.setCommentTextChoiceList(getCommentChoiceList(null,shareInfo.getCommentText(), inviteCode,
                PinDuoDuoUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate())));
        out.print(JsonUtil.loadTrueResult(
                JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -1552,4 +1647,71 @@
        out.print(JsonUtil.loadTrueResult(data));
    }
    @RequestMapping(value = "getShareTextQuick", method = RequestMethod.POST)
    public void getShareTextQuick(AcceptData acceptData, Long goodsId, Integer goodsType, Long uid, PrintWriter out) {
        if (uid == null) {
            out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
            return;
        }
        if (goodsType == null || goodsId == null) {
            out.print(JsonUtil.loadFalseResult(1, "请传递正确的商品信息"));
            return;
        }
        GoodsDetailVO goodsDetail = null;
        ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
                acceptData.getVersion());
        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goodsId);
            if (goods == null) {
                try {
                    goods = redisManager.getTaoBaoGoodsBrief(goodsId);
                } catch (TaobaoGoodsDownException e) {
                    goods = null;
                }
            }
            if (goods != null) {
                goodsDetail = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
            }
        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            if (goods != null) {
                goodsDetail = GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO);
            }
        } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
            if (goods != null) {
                goodsDetail = GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO);
            }
        }
        if (goodsDetail == null) {
            out.print(JsonUtil.loadFalseResult(1, "该商品已下架"));
            return;
        }
        String template = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
        template = template.replace("[商品标题]", goodsDetail.getTitle()).replace("[销量]", goodsDetail.getSalesCount());
        if (StringUtil.isNullOrEmpty(goodsDetail.getDescription())) {
            template = template.replace("[推荐语]", goodsDetail.getDescription());
        } else {
            template = template.replace("推荐语:[推荐语]", "");
        }
        if (goodsDetail.isHasCoupon()) {
            template = template.replace("[券面额]",
                    String.format("满%s元减%s元",
                            MoneyBigDecimalUtil.getWithNoZera(goodsDetail.getCouponInfo().getStartFee()).toString(),
                            MoneyBigDecimalUtil.getWithNoZera(goodsDetail.getCouponInfo().getAmount()).toString()));
        } else {
            template = template.replace("优惠券:[券面额]", "");
        }
        JSONObject data = new JSONObject();
        data.put("description", template);
        out.print(JsonUtil.loadTrueResult(data));
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java
@@ -24,8 +24,8 @@
    shareGoodsTemplateRulesJD("share_goods_template_rules_jd", "京东模板规则"),
    shareGoodsTemplateRulesPDD("share_goods_template_rules_pdd", "拼多多模板规则"),
    goodsShareNotifyImgs("goods_share_notify_imgs", "单个商品分享的券提示图片"),
    goodsShareNotifyImgs207("goods_share_notify_imgs_207", "单个商品分享的券提示图片(2.0.7及以后)"),
    goodsShareMultipleNotify("goods_share_multiple_notify", "多个商品分享提醒"),
    goodsShareNotifyImgs207("goods_share_notify_imgs_207", "单个商品分享的券提示图片(2.0.7及以后)"),
    goodsShareNotify("goods_share_notify", "单个商品分享提醒"),
    goodsShareNotifyJD("goods_share_notify_jd", "京东分享提醒"),
    goodsShareNotifyPDD("goods_share_notify_pdd", "拼多多分享提醒"),
@@ -169,7 +169,11 @@
    convertDocHelpLink("convert_doc_help_link","文案转链帮助网页"),
    convertDocTip("convert_doc_tip","文案转链温馨提示"),
    newerGonglue("newer_gonglue_url","新手攻略链接"),
    tearcherLink("tearcher_link","导师链接")
    tearcherLink("tearcher_link","导师链接"),
    quickShareGoodsText("quick_share_goods_text", "快捷分享商品文本"),
    quickShareTBCommentText("quick_share_tb_comment_text", "快捷分享商品文本"),
    quickShareJDCommentText("quick_share_jd_comment_text", "快捷分享商品文本"),
    quickSharePDDCommentText("quick_share_pdd_comment_text", "快捷分享商品文本"),
    ;
    private final String key;
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -2143,6 +2143,7 @@
        for (String st : marks)
            list.add(st);
        list.add("\\(-\\)");
        list.add("(-)");
        return getTokenListFromText(str, list);
    }
fanli/src/test/java/org/fanli/TaoKeTest.java
@@ -8,6 +8,7 @@
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -96,13 +97,11 @@
    @Test
    public void test2() {
        try {
            TaoKeApiUtil.getSimpleGoodsInfo(539432362036L);
        } catch (TaobaoGoodsDownException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String[] marks = new String[] { "\\(-\\)"};
        List<String> textList = TaoBaoUtil.getTokenListFromText("復製这条(VzUl1fzQWMT)进入【Tao宝】即可抢购", Arrays.asList(marks));
        System.out.println(textList);
    }
    @Test