记得上下班打卡 | git大法好,push需谨慎

Commit 125b0e00 authored by 姜秀龙's avatar 姜秀龙

refactor(order): 简化粉丝俱乐部订单来源打标实现

移除 ReferrerOrderMarkUtil 与列表私有封装,建单处直接 if 赋值;商品 Redis 老数据做空串兜底。
Co-authored-by: 's avatarCursor <cursoragent@cursor.com>
parent be55213a
-- 商品订单:粉丝俱乐部来源标记 -- 商品订单:粉丝俱乐部来源(与 source[app|h5|applet] 语义分离)
ALTER TABLE goblin_store_order ALTER TABLE goblin_store_order
ADD COLUMN order_source varchar(255) NOT NULL DEFAULT '' COMMENT '粉丝俱乐部来源标识' AFTER source, ADD COLUMN order_source varchar(255) NOT NULL DEFAULT '' COMMENT '粉丝俱乐部来源标识' AFTER source,
ADD COLUMN referrer_user_id varchar(64) NOT NULL DEFAULT '' COMMENT '粉丝俱乐部侧用户id' AFTER order_source; ADD COLUMN referrer_user_id varchar(64) NOT NULL DEFAULT '' COMMENT '粉丝俱乐部侧用户id' AFTER order_source;
package com.liquidnet.commons.lang.util;
import org.apache.commons.lang3.StringUtils;
/**
* 粉丝俱乐部订单来源打标:前端传 referrerApp + referrerUserId 则落库,否则写空串。
*/
public final class ReferrerOrderMarkUtil {
private ReferrerOrderMarkUtil() {
}
public static void apply(String referrerApp, String referrerUserId, ReferrerMarkTarget target) {
if (StringUtils.isNotBlank(referrerApp) && StringUtils.isNotBlank(referrerUserId)) {
target.setReferrer(referrerApp, referrerUserId);
} else {
target.setReferrer("", "");
}
}
public interface ReferrerMarkTarget {
void setReferrer(String referrerApp, String referrerUserId);
}
}
...@@ -78,7 +78,12 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService { ...@@ -78,7 +78,12 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
} }
GoblinAppOrderListVo vo = GoblinAppOrderListVo.getNew(); GoblinAppOrderListVo vo = GoblinAppOrderListVo.getNew();
BeanUtils.copyProperties(orderVo, vo); BeanUtils.copyProperties(orderVo, vo);
fillReferrerDefaults(vo, orderVo); if (vo.getReferrerApp() == null) {
vo.setReferrerApp("");
}
if (vo.getReferrerUserId() == null) {
vo.setReferrerUserId("");
}
vo.setRestTime(getRestTime(orderVo)); vo.setRestTime(getRestTime(orderVo));
List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList(); List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList();
for (String orderSkuId : orderVo.getOrderSkuVoIds()) { for (String orderSkuId : orderVo.getOrderSkuVoIds()) {
...@@ -101,7 +106,12 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService { ...@@ -101,7 +106,12 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(orderId); GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(orderId);
GoblinAppOrderListVo vo = GoblinAppOrderListVo.getNew(); GoblinAppOrderListVo vo = GoblinAppOrderListVo.getNew();
BeanUtils.copyProperties(orderVo, vo); BeanUtils.copyProperties(orderVo, vo);
fillReferrerDefaults(vo, orderVo); if (vo.getReferrerApp() == null) {
vo.setReferrerApp("");
}
if (vo.getReferrerUserId() == null) {
vo.setReferrerUserId("");
}
vo.setRestTime(getRestTime(orderVo)); vo.setRestTime(getRestTime(orderVo));
List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList(); List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList();
for (String orderSkuId : orderVo.getOrderSkuVoIds()) { for (String orderSkuId : orderVo.getOrderSkuVoIds()) {
...@@ -121,7 +131,12 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService { ...@@ -121,7 +131,12 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
if (orderVo == null || (!orderVo.getUserId().equals(uid) && uid != null)) { if (orderVo == null || (!orderVo.getUserId().equals(uid) && uid != null)) {
return ResponseDto.failure(ErrorMapping.get("20003")); return ResponseDto.failure(ErrorMapping.get("20003"));
} }
normalizeReferrerFields(orderVo); if (orderVo.getReferrerApp() == null) {
orderVo.setReferrerApp("");
}
if (orderVo.getReferrerUserId() == null) {
orderVo.setReferrerUserId("");
}
GoblinAppOrderDetailsVo vo = GoblinAppOrderDetailsVo.getNew(); GoblinAppOrderDetailsVo vo = GoblinAppOrderDetailsVo.getNew();
vo.setStoreOrderVo(orderVo); vo.setStoreOrderVo(orderVo);
List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList(); List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList();
...@@ -772,19 +787,4 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService { ...@@ -772,19 +787,4 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
private boolean noZhengzaiOrder(String uid) { private boolean noZhengzaiOrder(String uid) {
return !uid.equals("zhengzai"); return !uid.equals("zhengzai");
} }
private void fillReferrerDefaults(GoblinAppOrderListVo vo, GoblinStoreOrderVo orderVo) {
normalizeReferrerFields(orderVo);
vo.setReferrerApp(orderVo.getReferrerApp());
vo.setReferrerUserId(orderVo.getReferrerUserId());
}
private void normalizeReferrerFields(GoblinStoreOrderVo orderVo) {
if (orderVo.getReferrerApp() == null) {
orderVo.setReferrerApp("");
}
if (orderVo.getReferrerUserId() == null) {
orderVo.setReferrerUserId("");
}
}
} }
...@@ -515,7 +515,13 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -515,7 +515,13 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
storeOrder.setPayType(param.getPayType()); storeOrder.setPayType(param.getPayType());
storeOrder.setDeviceFrom(param.getDeviceFrom()); storeOrder.setDeviceFrom(param.getDeviceFrom());
storeOrder.setSource(source); storeOrder.setSource(source);
applyReferrerMark(storeOrder, param); if (StringUtils.isNotBlank(param.getReferrerApp()) && StringUtils.isNotBlank(param.getReferrerUserId())) {
storeOrder.setOrderSource(param.getReferrerApp());
storeOrder.setReferrerUserId(param.getReferrerUserId());
} else {
storeOrder.setOrderSource("");
storeOrder.setReferrerUserId("");
}
storeOrder.setVersion(version); storeOrder.setVersion(version);
storeOrder.setIsMember(isMember ? 1 : 0); storeOrder.setIsMember(isMember ? 1 : 0);
storeOrder.setOrderType(0); storeOrder.setOrderType(0);
...@@ -764,7 +770,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -764,7 +770,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
sqlDataOrder.add(new Object[]{ sqlDataOrder.add(new Object[]{
storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getStoreName(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(), storeOrder.getPayCode(), storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getStoreName(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(), storeOrder.getPayCode(),
storeOrder.getPriceActual(), storeOrder.getPriceRefund(), storeOrder.getPriceExpress(), storeOrder.getPriceCoupon(), storeOrder.getStorePriceCoupon(), storeOrder.getPriceVoucher(), storeOrder.getStatus(), storeOrder.getUcouponId(), storeOrder.getStoreCouponId(), storeOrder.getPayType(), storeOrder.getDeviceFrom(), storeOrder.getPriceActual(), storeOrder.getPriceRefund(), storeOrder.getPriceExpress(), storeOrder.getPriceCoupon(), storeOrder.getStorePriceCoupon(), storeOrder.getPriceVoucher(), storeOrder.getStatus(), storeOrder.getUcouponId(), storeOrder.getStoreCouponId(), storeOrder.getPayType(), storeOrder.getDeviceFrom(),
storeOrder.getSource(), storeOrder.getSource() == null ? "" : storeOrder.getSource(),
storeOrder.getOrderSource() == null ? "" : storeOrder.getOrderSource(), storeOrder.getOrderSource() == null ? "" : storeOrder.getOrderSource(),
storeOrder.getReferrerUserId() == null ? "" : storeOrder.getReferrerUserId(), storeOrder.getReferrerUserId() == null ? "" : storeOrder.getReferrerUserId(),
storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getMarketId(), storeOrder.getMarketType(), storeOrder.getCreatedAt(), "", "" storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getMarketId(), storeOrder.getMarketType(), storeOrder.getCreatedAt(), "", ""
...@@ -1473,11 +1479,4 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -1473,11 +1479,4 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
return ""; return "";
} }
private void applyReferrerMark(GoblinStoreOrder storeOrder, GoblinOrderParam param) {
ReferrerOrderMarkUtil.apply(param.getReferrerApp(), param.getReferrerUserId(),
(referrerApp, referrerUserId) -> {
storeOrder.setOrderSource(referrerApp);
storeOrder.setReferrerUserId(referrerUserId);
});
}
} }
...@@ -498,7 +498,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -498,7 +498,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
orderTickets.setQrCode(""); orderTickets.setQrCode("");
orderTickets.setOrderType(source); orderTickets.setOrderType(source);
orderTickets.setOrderVersion(version); orderTickets.setOrderVersion(version);
applyReferrerMark(orderTickets, payOrderParam); if (StringUtils.isNotBlank(payOrderParam.getReferrerApp()) && StringUtils.isNotBlank(payOrderParam.getReferrerUserId())) {
orderTickets.setOrderSource(payOrderParam.getReferrerApp());
orderTickets.setReferrerUserId(payOrderParam.getReferrerUserId());
} else {
orderTickets.setOrderSource("");
orderTickets.setReferrerUserId("");
}
orderTickets.setNumber(payOrderParam.getNumber()); orderTickets.setNumber(payOrderParam.getNumber());
orderTickets.setPrice(ticketData.getPrice()); orderTickets.setPrice(ticketData.getPrice());
orderTickets.setPriceMember(ticketData.getMemberPrice()); orderTickets.setPriceMember(ticketData.getMemberPrice());
...@@ -1353,11 +1359,4 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -1353,11 +1359,4 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
} }
} }
private void applyReferrerMark(KylinOrderTickets orderTickets, PayOrderParam payOrderParam) {
ReferrerOrderMarkUtil.apply(payOrderParam.getReferrerApp(), payOrderParam.getReferrerUserId(),
(referrerApp, referrerUserId) -> {
orderTickets.setOrderSource(referrerApp);
orderTickets.setReferrerUserId(referrerUserId);
});
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment