From cc271f102dd5c30f5d273374ed630e574ddb41ad Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 12 十二月 2019 14:22:25 +0800
Subject: [PATCH] 订单补贴消息服务
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java | 165 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 134 insertions(+), 31 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
index 55ad6fc..46c8c13 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -21,6 +21,7 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.jd.JDCouponInfo;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.share.ShareGoodsRecordDTO;
@@ -31,14 +32,15 @@
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.goods.ShareGoodsTextTemplate;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
-import com.yeshi.fanli.exception.ShareGoodsException;
import com.yeshi.fanli.exception.goods.ShareGoodsTextTemplateException;
+import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
@@ -49,23 +51,24 @@
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
-import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
+import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
@@ -155,21 +158,35 @@
private UserTaoLiJinRecordService userTaoLiJinRecordService;
/**
- * 鑾峰彇娣樺疂鐨勫垎浜摼鎺�
*
* @param acceptData
* @param uid
* -鐢ㄦ埛ID
- * @param auctionId-鍟嗗搧ID
+ * @param goodsId-鍟嗗搧ID
+ * @param source
+ * @param totalNum
+ * @param goodsType
+ * @param needGoods
+ * -鏄惁闇�瑕佸晢鍝佷俊鎭�
+ * @param request
* @param out
*/
@RequestMapping(value = "createShareInfo")
public void createShareInfo(AcceptData acceptData, Long uid, Long goodsId, String source, Integer totalNum,
- Integer goodsType, HttpServletRequest request, PrintWriter out) {
-
+ Integer goodsType, Boolean needGoods, HttpServletRequest request, PrintWriter out) {
if (uid == null || uid <= 0) {
out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"));
return;
+ }
+
+ if (needGoods == null)
+ needGoods = false;
+ try {
+ // 鏃ュ織璁板綍
+ String info = String.format("type=share&uid=%s&goodsId=%s&source=%s&goodsType=%s", uid, goodsId, source,
+ goodsType);
+ LogHelper.orderInfo(info);
+ } catch (Exception e) {
}
UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
@@ -185,21 +202,36 @@
// 娣樺疂
if (goodsType == null || goodsType == Constant.SOURCE_TYPE_TAOBAO) {
- createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, request, out);
+ createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, needGoods, request, out);
return;
}
// 浜笢
if (goodsType == Constant.SOURCE_TYPE_JD) {
- createJDShare(acceptData, uid, goodsId, source, out);
+ createJDShare(acceptData, uid, goodsId, source, needGoods, out);
return;
}
// 鎷煎澶�
if (goodsType == Constant.SOURCE_TYPE_PDD) {
- createPDDShare(acceptData, uid, goodsId, source, out);
+ createPDDShare(acceptData, uid, goodsId, source, needGoods, out);
return;
}
+ }
+
+ public static String getERCodeContent(TaoBaoGoodsBrief goods, String token) {
+ String content = String.format("銆�%s銆�%s鍏�", goods.getUserType() == 1 ? "T鐚环" : "T瀹濅环",
+ MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
+ content += "\n\r";
+
+ if (!StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
+ content += String.format("銆愬埜鍚庝环銆�%s鍏�", TaoBaoUtil.getAfterUseCouplePrice(goods) + "");
+ content += "\n\r";
+ }
+ content += "------------";
+ content += "\n\r";
+ content += "寰╁埗杩欐潯" + token + "锛岄�插叆Tao瀹濆嵆鍙喘涔�";
+ return content;
}
/**
@@ -214,9 +246,20 @@
* @param out
*/
public void createTaoBaoShare(AcceptData acceptData, Long uid, Long goodsId, Integer totalNum, String source,
- HttpServletRequest request, PrintWriter out) {
+ Boolean needGoods, HttpServletRequest request, PrintWriter out) {
+ if (needGoods == null)
+ needGoods = false;
UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid);
+ UserInfoExtra userExtraInfo = userInfoExtraService.getUserInfoExtra(uid);
+ String inviteCode = null;
+ if (userExtraInfo != null) {
+ if (!StringUtil.isNullOrEmpty(userExtraInfo.getInviteCodeVip())) {
+ inviteCode = userExtraInfo.getInviteCodeVip();
+ } else {
+ inviteCode = userExtraInfo.getInviteCode();
+ }
+ }
String relationId = null;
if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
&& extraInfo.getRelationValid() == true)
@@ -236,7 +279,16 @@
try {
ShareInfoVO shareInfo = new ShareInfoVO();
+ // 娴嬭瘯
+
TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, goodsId, relationId);
+
+ if (taoBaoLink != null && taoBaoLink.getGoods() != null && needGoods) {
+ ConfigParamsDTO dto = new ConfigParamsDTO(hongBaoManageService.getFanLiRate(),
+ hongBaoManageService.getShareRate(), Constant.MAX_REWARD_RATE,hongBaoManageService.getVIPFanLiRate());
+ GoodsDetailVO goodsInfo = GoodsDetailVOFactory.convertTaoBao(taoBaoLink.getGoods(), dto);
+ shareInfo.setGoodsInfo(goodsInfo);
+ }
String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
@@ -248,13 +300,34 @@
}
shareInfo.setClickUrl(url);
- shareInfo.setToken(taoBaoLink.getTaoToken());
+ shareInfo.setToken(TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
shareInfo.setRule(configService.get("share_single_goods_rule"));
shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500));
+ String commentTextStr = configService.get("share_single_goods_comment_text");
+ List<String> commentTexts = new ArrayList<>();
+ if (!StringUtil.isNullOrEmpty(commentTextStr)) {
+ JSONArray array = JSONArray.fromObject(commentTextStr);
+ for (int i = 0; i < array.size(); i++) {
+ if (StringUtil.isNullOrEmpty(inviteCode)) {
+ if (array.optString(i).contains("[閭�璇风爜]")) {
+ continue;
+ }
+ }
+ if (StringUtil.isNullOrEmpty(inviteCode))
+ commentTexts.add(array.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK)
+ .replace("[娣樺彛浠", shareInfo.getToken()));
+ else
+ commentTexts.add(array.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK)
+ .replace("[閭�璇风爜]", inviteCode).replace("[娣樺彛浠", shareInfo.getToken()));
+ }
+ }
+ shareInfo.setCommentTexts(commentTexts);
+
String shareText = "";
// 鏃犲埜
- String shopType = taoBaoLink.getGoods().getUserType() == 0 ? "娣樺疂浠�" : "澶╃尗浠�";
+ String shopType = taoBaoLink.getGoods().getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO
+ : TaoBaoConstant.SHARE_PRICE_TM;
if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) {
String text = shareGoodsTextTemplateService.getCommonTemplate(uid);
@@ -277,7 +350,7 @@
shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType)
.replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day()))
- .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", taoBaoLink.getTaoToken());
+ .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
shareInfo.setShareText(shareText);
@@ -286,6 +359,12 @@
descText = descText.substring(0);
}
shareInfo.setDescText(descText);
+ // 娴嬭瘯
+ // 2.0.2涔嬪墠
+ if (!VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion()))
+ shareInfo.setClickUrl(getERCodeContent(taoBaoLink.getGoods(), shareInfo.getToken()));
+
+ shareInfo.setWxErCode(getERCodeContent(taoBaoLink.getGoods(), shareInfo.getToken()));
// 鎻愮ず鍥炬枃鍐呭
String imgs = configService.get("goods_share_notify_imgs");
@@ -327,7 +406,7 @@
history.setHongbao(shareMoney);
history.setCreateTime(new Date());
history.setGoodsType(UserShareGoodsHistory.TYPE_TAOBAO);
- history.setTkCode(taobaoLink.getTaoToken());
+ history.setTkCode(TaoBaoUtil.filterTaoToken(taobaoLink.getTaoToken()));
history.setLink(taobaoLink.getClickUrl());
history.setQuanLink(taobaoLink.getCouponLink());
history.setGoodsId(taobaoLink.getGoods().getAuctionId());
@@ -370,8 +449,7 @@
try {
TaoBaoGoodsBrief goods = null;
try {
- goods = TaoKeApiUtil.searchGoodsDetail(auctionId, new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY,
- TaoBaoConstant.TAOBAO_AUTH_APPSECRET, TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
+ goods = TaoKeApiUtil.searchGoodsDetail(auctionId);
} catch (TaobaoGoodsDownException e2) {
e2.printStackTrace();
}
@@ -381,10 +459,16 @@
return;
}
+ if (goods.getTkRate() == null || goods.getTkRate().compareTo(new BigDecimal(0)) <= 0) {
+ // TaoKeApiUtil.specialConvertCoupon(auctionId, app);
+
+ }
+
// 璁$畻鎺ㄥ箍绾㈠寘
String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
+ LogHelper.error("鎺ㄥ箍绾㈠寘姣斾緥:" + warningRate);
BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
-
+ LogHelper.error("鎺ㄥ箍绾㈠寘:" + spreadMoney);
// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐绀奸噾涓嶈冻"));
@@ -427,12 +511,13 @@
taoBaoLink.setTaoToken(quanToken);
}
}
- shareInfo.setToken(taoBaoLink.getTaoToken());
+ shareInfo.setToken(TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
shareInfo.setRule(configService.get("share_single_goods_rule"));
shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(goods.getPictUrl(), 500));
// 鏃犲埜
- String shopType = goods.getUserType() == 0 ? "娣樺疂浠�" : "澶╃尗浠�";
+ String shopType = goods.getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO
+ : TaoBaoConstant.SHARE_PRICE_TM;
String shareText = "";
if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
@@ -456,7 +541,7 @@
shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType)
.replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(goods.getBiz30day())).replace("{棰嗗埜鐭摼}", shortLink)
- .replace("{娣樺彛浠", taoBaoLink.getTaoToken());
+ .replace("{娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
shareInfo.setShareText(shareText);
String descText = shareText.replace(goods.getTitle(), "").trim();
@@ -491,7 +576,7 @@
out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo)));
final TaoBaoLink taobaoLink = taoBaoLink;
- final TaoBaoGoodsBrief finalGoods=goods;
+ final TaoBaoGoodsBrief finalGoods = goods;
// 寮傛鎿嶄綔
com.yeshi.fanli.util.ThreadUtil.run(new Runnable() {
@Override
@@ -502,7 +587,7 @@
history.setHongbao(shareMoney);
history.setCreateTime(new Date());
history.setGoodsType(UserShareGoodsHistory.TYPE_TAOBAO);
- history.setTkCode(taobaoLink.getTaoToken());
+ history.setTkCode(TaoBaoUtil.filterTaoToken(taobaoLink.getTaoToken()));
history.setLink(taobaoLink.getClickUrl());
history.setQuanLink(taobaoLink.getCouponLink());
history.setGoodsId(finalGoods.getAuctionId());
@@ -535,10 +620,11 @@
* @param request
* @param out
*/
- public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) {
+ public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods,
+ PrintWriter out) {
JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
if (jdGoods == null) {
- out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐宸蹭笅鏋�"));
+ out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佸凡涓嬫灦"));
return;
}
@@ -549,17 +635,24 @@
// goodsId + "");
String couponUrl = null;
- JDCouponInfo couponInfo = jdGoods.getCouponInfo();
+ JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
if (couponInfo != null) {
couponUrl = couponInfo.getLink();
}
String materialId = "https://item.jd.com/" + goodsId + ".html";
- String jumpLink = JDApiUtil.convertShortLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid + "");
+ String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
+ uid + "");
ShareInfoVO shareInfo = new ShareInfoVO();
shareInfo.setClickUrl(jumpLink);
+ shareInfo.setWxErCode(jumpLink);
shareInfo.setRule(configService.get("share_rule_link_jd"));
shareInfo.setPictUrl(jdGoods.getPicUrl());
+ shareInfo.setCommentTexts(new ArrayList<>());
+
+ if (needGoods)
+ shareInfo.setGoodsInfo(GoodsDetailVOFactory.convertJDGoods(jdGoods, new ConfigParamsDTO(
+ hongBaoManageService.getFanLiRate(), hongBaoManageService.getShareRate(), Constant.MAX_REWARD_RATE,hongBaoManageService.getVIPFanLiRate())));
String shareText = "";
boolean hasCoupon = false;
@@ -651,7 +744,8 @@
* @param source
* @param out
*/
- public void createPDDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) {
+ public void createPDDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods,
+ PrintWriter out) {
PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
if (goods == null) {
out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佸凡涓嬫灦"));
@@ -668,8 +762,14 @@
ShareInfoVO shareInfo = new ShareInfoVO();
shareInfo.setClickUrl(jumpLink);
+ shareInfo.setWxErCode(jumpLink);
+ shareInfo.setCommentTexts(new ArrayList<>());
shareInfo.setRule(configService.get("share_rule_link_pdd"));
shareInfo.setPictUrl(goods.getGoodsImageUrl());
+ if (needGoods) {
+ shareInfo.setGoodsInfo(GoodsDetailVOFactory.convertPDDGoods(goods, new ConfigParamsDTO(
+ hongBaoManageService.getFanLiRate(), hongBaoManageService.getShareRate(), Constant.MAX_REWARD_RATE,hongBaoManageService.getVIPFanLiRate())));
+ }
String template = "";
boolean hasCoupon = false;
@@ -948,12 +1048,13 @@
}
String couponUrl = null;
- JDCouponInfo couponInfo = goods.getCouponInfo();
+ JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods);
if (couponInfo != null) {
couponUrl = couponInfo.getLink();
}
String materialId = "https://item.jd.com/" + goodsId + ".html";
- String shortLink = JDApiUtil.convertShortLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid + "");
+ String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
+ uid + "");
String content = shareGoodsTextTemplateService.createContentByTemplateJD(template, uid, goods, shortLink,
hasCoupon);
@@ -1318,6 +1419,8 @@
BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
BigDecimal shareRate = hongBaoManageService.getShareRate();
+ ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,hongBaoManageService.getVIPFanLiRate());
+
Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
@@ -1356,7 +1459,7 @@
dataObject.put("totalOrder", goodsGroup.getTotalOrder());
dataObject.put("totalMoney", "楼" + goodsGroup.getTotalMoney());
- GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, shareRate);
+ GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO);
detailVO.setId(commonGoods.getId());
dataObject.put("goods", gson.toJson(detailVO));
array.add(dataObject);
--
Gitblit v1.8.0