fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -32,9 +32,11 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.fanli.dao.mybatis.help.HelpCenterMapper; import com.yeshi.fanli.dto.jd.JDSearchResult; import com.yeshi.fanli.entity.bus.activity.ActivityShareResult; import com.yeshi.fanli.entity.bus.activity.RecommendActivity; import com.yeshi.fanli.entity.dynamic.InviteMaterial; import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.ActivityException; import com.yeshi.fanli.exception.share.UserShareGoodsRecordException; @@ -45,11 +47,16 @@ import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService; import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.FileUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.db.MongoDBManager; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -84,6 +91,9 @@ @Resource private ConfigService configService; @Resource private HongBaoManageService hongBaoManageService; @Resource @@ -407,4 +417,44 @@ e.printStackTrace(); } } /** * 插入邀请素材 * @param out */ @RequestMapping(value = "getJingFenList") public void getJingFenList(PrintWriter out, int page, int eliteId) { try { JDSearchResult result = JDApiUtil.getJingFenGoods(page, eliteId); long count = 0; JSONObject data = new JSONObject(); JSONArray array = new JSONArray(); if (result != null) { PageEntity pageEntity = result.getPageEntity(); if (pageEntity != null) { count = pageEntity.getTotalCount(); } List<JDGoods> goodsList = result.getGoodsList(); if (goodsList != null && goodsList.size() > 0) { BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); BigDecimal shareRate = hongBaoManageService.getShareRate(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); for (JDGoods goods : goodsList) { GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, null, fanLiRate, shareRate); array.add(gson.toJson(goodsDetailVO)); } } } data.put("count", count); data.put("list", array); out.print(JsonUtil.loadTrueResult(data)); } catch (Exception e) { JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("操作失败")); e.printStackTrace(); } } } fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -560,32 +560,25 @@ shareInfo.setPictUrl(jdGoods.getPicUrl()); String shareText = ""; String shopType = "京东价"; boolean hasCoupon = false; // 分享模板 JDCouponInfo couponInfo = jdGoods.getCouponInfo(); if (couponInfo == null) { String text = shareGoodsTextTemplateService.getCommonTemplate(uid); if (StringUtil.isNullOrEmpty(text)) { text = configService.get("goods_share_text_nocoupon"); } shareText = text.replace("{标题}", jdGoods.getSkuName()).replace("{商品原价}", MoneyBigDecimalUtil.getWithNoZera(jdGoods.getPrice()) + ""); } else// 有券 { String text = shareGoodsTextTemplateService.geteCouponTemplate(uid); if (StringUtil.isNullOrEmpty(text)) text = configService.get("goods_share_text_coupon"); shareText = text.replace("{标题}", jdGoods.getSkuName()) .replace("{商品原价}", MoneyBigDecimalUtil.getWithNoZera(jdGoods.getPrice()) + "") .replace("{优惠券面额}", MoneyBigDecimalUtil.getWithNoZera(couponInfo.getDiscount()) + "") .replace("{优惠券价}", JDUtil.getQuanPrice(jdGoods) + ""); ShareGoodsTextTemplate textTemplate = shareGoodsTextTemplateService.getShareGoodsTextTemplate(uid); if (couponInfo == null) { // 无券模板 if (textTemplate != null) shareText = textTemplate.getShareJDTextTemplate(); if (StringUtil.isNullOrEmpty(shareText)) shareText = configService.get("goods_share_text_nocoupon_jd"); } else { // 有券模板 hasCoupon = true; if (textTemplate != null) shareText = textTemplate.getShareJDTextTemplateCoupon(); if (StringUtil.isNullOrEmpty(shareText)) shareText = configService.get("goods_share_text_coupon_jd"); } shareText = shareText.replace("{店铺类型}", shopType) .replace("{月销量}", JDUtil.getSaleCount(jdGoods.getInOrderCount30Days())).replace("{领券短链}", shortLink) .replace("{淘口令}", null); shareText = shareGoodsTextTemplateService.createContentByTemplateJD(shareText, uid, jdGoods, shortLink, hasCoupon); shareInfo.setShareText(shareText); String descText = shareText.replace(jdGoods.getSkuName(), "").trim(); @@ -594,7 +587,6 @@ } shareInfo.setDescText(descText); // String imgs = configService.get("goods_share_notify_imgs"); JSONArray array = JSONArray.fromObject(imgs); int p = (int) (array.size() * Math.random()); @@ -678,33 +670,30 @@ shareInfo.setRule(configService.get("share_rule_link_pdd")); shareInfo.setPictUrl(goods.getGoodsImageUrl()); String shareText = ""; String shopType = "拼多多价"; // 无券 String template = ""; boolean hasCoupon = false; ShareGoodsTextTemplate textTemplate = shareGoodsTextTemplateService.getShareGoodsTextTemplate(uid); if (goods.getHasCoupon() == null || !goods.getHasCoupon()) { String text = shareGoodsTextTemplateService.getCommonTemplate(uid); if (StringUtil.isNullOrEmpty(text)) text = configService.get("goods_share_text_nocoupon"); shareText = text.replace("{标题}", goods.getGoodsName()).replace("{商品原价}", MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMinNormalPrice())) + ""); } else// 有券 { String text = shareGoodsTextTemplateService.geteCouponTemplate(uid); if (StringUtil.isNullOrEmpty(text)) text = configService.get("goods_share_text_coupon"); if (textTemplate != null) template = textTemplate.getSharePDDTextTemplate(); shareText = text.replace("{标题}", goods.getGoodsName()) .replace("{商品原价}", MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMinNormalPrice())) + "") .replace("{优惠券面额}", MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getCouponDiscount())) + "") .replace("{优惠券价}", PinDuoDuoUtil.getQuanPrice(goods) + ""); if (StringUtil.isNullOrEmpty(template)) template = configService.get("goods_share_text_nocoupon_pdd"); } else { hasCoupon = true; if (textTemplate != null) template = textTemplate.getSharePDDTextTemplateCoupon(); if (StringUtil.isNullOrEmpty(template)) template = configService.get("goods_share_text_coupon_pdd"); } shareText = shareText.replace("{店铺类型}", shopType) .replace("{月销量}", goods.getSalesTip()).replace("{领券短链}", shortLink) .replace("{淘口令}", null); // 创建口令 String token = PinDuoDuoApiUtil.createGenerate(goodsId); // 生成分享内容 String shareText = shareGoodsTextTemplateService.createContentByTemplatePDD(template, uid, goods, shortLink, hasCoupon, token); shareInfo.setShareText(shareText); String descText = shareText.replace(goods.getGoodsName(), "").trim(); fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsTextTemplateServiceImpl.java
@@ -18,6 +18,7 @@ import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService; import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil; @@ -351,14 +352,17 @@ @Override public String createContentByTemplatePDD(String template, Long uid, PDDGoodsDetail goods, String shortLink, boolean hasCoupon, String token) { BigDecimal hundred = new BigDecimal(100); BigDecimal price = MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), hundred); if (!hasCoupon) { template = template.replace("{标题}", goods.getGoodsName()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMinNormalPrice())).toString()) template = template.replace("{标题}", goods.getGoodsName()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(price).toString()) .replace("{总销量}", goods.getSalesTip()).replace("{短链接}", shortLink); } else { template = template.replace("{标题}", goods.getGoodsName()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMinNormalPrice())).toString()) BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred); template = template.replace("{标题}", goods.getGoodsName()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(price).toString()) .replace("{总销量}", goods.getSalesTip()).replace("{短链接}", shortLink) .replace("{优惠券面额}", BigDecimalUtil.getWithNoZera(new BigDecimal(goods.getCouponDiscount())).toString()) .replace("{优惠券价}", BigDecimalUtil.getWithNoZera( PinDuoDuoUtil.getQuanPrice(goods)).toString()); .replace("{优惠券面额}", BigDecimalUtil.getWithNoZera(amount).toString()) .replace("{优惠券价}", BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getQuanPrice(goods)).toString()); } if (StringUtil.isNullOrEmpty(token)) { fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java
@@ -348,7 +348,7 @@ } return state; } @Override public JSONObject shareGoods(Long uid, List<Long> listStorageID) throws UserGoodsStorageException, UserShareGoodsRecordException { fanli/src/main/java/com/yeshi/fanli/util/jd/JDApiUtil.java
@@ -499,6 +499,50 @@ return goods; } public static JDSearchResult getJingFenGoods(int pageIndex, int eliteId) { JDSearchResult searchResult = new JDSearchResult(); List<JDGoods> list = new ArrayList<>(); JSONObject json = new JSONObject(); json.put("pageIndex", pageIndex); json.put("pageSize", 20); json.put("sortName", "inOrderCount30DaysSku"); json.put("sort", "desc"); json.put("eliteId", eliteId); JSONObject jsonDTO = new JSONObject(); jsonDTO.put("goodsReq", json); String result = baseRequest2("jd.union.open.goods.jingfen.query", null, jsonDTO); System.out.println(result); JSONObject resultJson = JSONObject.fromObject(result); resultJson = resultJson.optJSONObject("jd_union_open_goods_jingfen_query_response"); if (resultJson.optInt("code") == 0) { result = resultJson.optString("result"); resultJson = JSONObject.fromObject(result); String message = resultJson.optString("message"); if ("SUCCESS".equalsIgnoreCase(message)) { JSONArray array = resultJson.optJSONArray("data"); if (array != null) { for (int i = 0; i < array.size(); i++) { JDGoods goods = parseJDGoods(array.optJSONObject(i)); if (goods != null) list.add(goods); } } } long totalCount = resultJson.optLong("totalCount"); PageEntity pageEntity = new PageEntity(); pageEntity.setTotalCount(totalCount); searchResult.setPageEntity(pageEntity); } searchResult.setGoodsList(list); return searchResult; } public static JDGoods getGoodsDetail(Long skuId) { List<Long> skuIdList = new ArrayList<>(); fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoApiUtil.java
@@ -118,7 +118,7 @@ map.put("p_id", pid); map.put("multi_group", "true"); map.put("generate_weapp_webview", "true"); map.put("generate_weiboapp_webview", "true"); // map.put("generate_weiboapp_webview", "true"); JSONArray array = new JSONArray(); array.add(goodsId); map.put("goods_id_list", array.toString());