Commit c1276daf by zhiheng.zhang

Merge remote-tracking branch 'origin/develop' into develop

parents 8bcae7ff 61617f9d
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.4-SNAPSHOT</version> <version>2.2.8-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<version>1.6.5-SNAPSHOT</version> <version>1.6.7-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -95,4 +95,6 @@ ...@@ -95,4 +95,6 @@
| 2.1.7-SNAPSHOT| 混合支付退款 | lixixoaer | 2020-11-11 | | 2.1.7-SNAPSHOT| 混合支付退款 | lixixoaer | 2020-11-11 |
| 2.1.8-SNAPSHOT| 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 | | 2.1.8-SNAPSHOT| 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 |
| 2.1.9-SNAPSHOT| 麦咖啡买三赠一 | 徐康 | 2020-11-16 | | 2.1.9-SNAPSHOT| 麦咖啡买三赠一 | 徐康 | 2020-11-16 |
| 2.2.0-SNAPSHOT| 混合支付 | 徐康 | 2020-11-16 | | 2.2.0-SNAPSHOT| 混合支付 | 徐康 | 2020-11-16 |
\ No newline at end of file | 2.2.7-SNAPSHOT| 权益卡金额入机 | 徐康 | 2020-11-23 |
| 2.2.8-SNAPSHOT| 添加美团点评渠道 | 梁崇福 | 2020-11-24 |
\ No newline at end of file
...@@ -502,6 +502,7 @@ public class OrderSdkAdapter { ...@@ -502,6 +502,7 @@ public class OrderSdkAdapter {
if(StringUtils.isNotBlank(accountRequest.getAddInfo())) { if(StringUtils.isNotBlank(accountRequest.getAddInfo())) {
orderCostCreateReq.setExtInfo(accountRequest.getAddInfo()); orderCostCreateReq.setExtInfo(accountRequest.getAddInfo());
} }
orderCostCreateReq.setNote(accountRequest.getNote());
orderCostCreateReqs.add(orderCostCreateReq); orderCostCreateReqs.add(orderCostCreateReq);
} else { } else {
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq(); OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
......
...@@ -41,6 +41,7 @@ public enum OrderSourceType { ...@@ -41,6 +41,7 @@ public enum OrderSourceType {
DPZHCT("dpzhct", "美团点评智慧餐厅", 24), DPZHCT("dpzhct", "美团点评智慧餐厅", 24),
FMWD("fmwd", "非码微店", 25), FMWD("fmwd", "非码微店", 25),
Y_POS("ypos", "非码云POS", 26), Y_POS("ypos", "非码云POS", 26),
MTDP("mtdp", "美团点评", 27),
parkingmanual("parkingmanual", "农工商停车手工录单", 98), parkingmanual("parkingmanual", "农工商停车手工录单", 98),
PARKING("parking", "农工商停车", 99), PARKING("parking", "农工商停车", 99),
SDG("sdg", "闪电购", 1000); SDG("sdg", "闪电购", 1000);
......
...@@ -40,6 +40,8 @@ public class CreateOrderAccountRequest extends BaseConfig { ...@@ -40,6 +40,8 @@ public class CreateOrderAccountRequest extends BaseConfig {
*/ */
private String addInfo; private String addInfo;
private String note;
private String productId; private String productId;
private Integer discountQty; private Integer discountQty;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-shoppingcart-sdk</artifactId> <artifactId>assortment-shoppingcart-sdk</artifactId>
<version>2.0.3-SNAPSHOT</version> <version>2.0.4-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
......
...@@ -8,4 +8,5 @@ ...@@ -8,4 +8,5 @@
| 1.1.5-SNAPSHOT| 增加统计分类编号:classificationId,classificationName | | 2020-06-12 | | 1.1.5-SNAPSHOT| 增加统计分类编号:classificationId,classificationName | | 2020-06-12 |
| 2.0.0-SNAPSHOT| 商品加料 | 李小二 | 2020-08-17 | | 2.0.0-SNAPSHOT| 商品加料 | 李小二 | 2020-08-17 |
| 2.0.1-SNAPSHOT| 拼单 | miaohhui | 2020-08-17 | | 2.0.1-SNAPSHOT| 拼单 | miaohhui | 2020-08-17 |
| 2.0.3-SNAPSHOT| 拼单 | 刘鹏飞 | 2020-11-20 | | 2.0.3-SNAPSHOT| 拼单 | 刘鹏飞 | 2020-11-20 |
\ No newline at end of file | 2.0.4-SNAPSHOT| 套餐 | 刘鹏飞 | 2020-11-20 |
\ No newline at end of file
...@@ -315,6 +315,10 @@ public class ShoppingCartAdapter { ...@@ -315,6 +315,10 @@ public class ShoppingCartAdapter {
updateComboxGoodsInfoNew(productGroup, spuProduct, false); updateComboxGoodsInfoNew(productGroup, spuProduct, false);
} }
} }
//0元套餐 必须选可选或是可选
if (CollectionUtils.isEmpty(cartGoods.getProductComboList()) && CollectionUtils.isEmpty(cartGoods.getProductGroupList())) {
cartGoods.setCartGoodsUid("");
}
} }
//更新当前商品行价格 //更新当前商品行价格
Long newOrigOriginalPrice = 0L; Long newOrigOriginalPrice = 0L;
......
...@@ -151,7 +151,7 @@ public class OrderCallBackMQService { ...@@ -151,7 +151,7 @@ public class OrderCallBackMQService {
private OrderInfoReqs getOrderInfoReqs(OrderCallBackRequestVo body) { private OrderInfoReqs getOrderInfoReqs(OrderCallBackRequestVo body) {
// 订单所有状态正常变化通知通知开放平台 // 订单所有状态正常变化通知通知开放平台
if (!ObjectUtils.equals("1", body.getMsgType()) || body.getOperateType() == null || body.getOperateType() == 0) { if ((!ObjectUtils.equals("1", body.getMsgType()) && !ObjectUtils.equals("3", body.getMsgType())) || body.getOperateType() == null || body.getOperateType() == 0) {
return null; return null;
} }
OrderInfoReqs orderInfoReqs = null; OrderInfoReqs orderInfoReqs = null;
......
...@@ -28,7 +28,7 @@ public class OrderCallBackRequestVo { ...@@ -28,7 +28,7 @@ public class OrderCallBackRequestVo {
* 2 未支付超时关单 * 2 未支付超时关单
*/ */
private Integer delayMsgEventType; private Integer delayMsgEventType;
//操作类型 0= 其他信息修改,1=订单正向操作,2=订单逆向操作 //操作类型 0= 其他信息修改,1=订单正向操作,2=订单逆向操作,3=通知消息
private Integer operateType; private Integer operateType;
//渠道编号 //渠道编号
private Integer orderClient; private Integer orderClient;
...@@ -47,6 +47,7 @@ public class OrderCallBackRequestVo { ...@@ -47,6 +47,7 @@ public class OrderCallBackRequestVo {
* 消息类型 * 消息类型
1. 1订单所有状态正常变化通知 1. 1订单所有状态正常变化通知
2. 2超时订单 2. 2超时订单
3. 3通知
*/ */
private String msgType; private String msgType;
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.4-SNAPSHOT</version> <version>2.2.7-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -190,6 +190,7 @@ public class OrderAdapter { ...@@ -190,6 +190,7 @@ public class OrderAdapter {
} }
} }
createOrderDto.setProducts(products); createOrderDto.setProducts(products);
boolean hasDeliveryMonthCard = false;
for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) { for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId(activityDiscountsDto.getActivityCode()) .accountId(activityDiscountsDto.getActivityCode())
...@@ -206,6 +207,9 @@ public class OrderAdapter { ...@@ -206,6 +207,9 @@ public class OrderAdapter {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId()); jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
} else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) { } else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("customerCode", activityDiscountsDto.getTenderId()); jsonObject.put("customerCode", activityDiscountsDto.getTenderId());
if(null != activityDiscountsDto.getExtendType() && activityDiscountsDto.getExtendType() == 2) {
hasDeliveryMonthCard = true;
}
} }
if(null != activityDiscountsDto.getExtendType()) { if(null != activityDiscountsDto.getExtendType()) {
jsonObject.put("extendType", activityDiscountsDto.getExtendType()); jsonObject.put("extendType", activityDiscountsDto.getExtendType());
...@@ -224,6 +228,9 @@ public class OrderAdapter { ...@@ -224,6 +228,9 @@ public class OrderAdapter {
.sequence(orderAccountIndex++) .sequence(orderAccountIndex++)
.actualPrice(discountDeliveryAmount) .actualPrice(discountDeliveryAmount)
.build(); .build();
if(hasDeliveryMonthCard && StringUtils.isNotBlank(storeResponseDto.getBenefitCardDiscountAmount())) {
createOrderAccountDto.setNote((Integer.parseInt(storeResponseDto.getBenefitCardDiscountAmount())*100)+"");
}
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
if (packageAmount > 0) { if (packageAmount > 0) {
...@@ -1124,6 +1131,10 @@ public class OrderAdapter { ...@@ -1124,6 +1131,10 @@ public class OrderAdapter {
responseVo.setPayStatusDesc(Optional.ofNullable(PayStatus.getByCode(ordersBean.getPayStatus())) responseVo.setPayStatusDesc(Optional.ofNullable(PayStatus.getByCode(ordersBean.getPayStatus()))
.map(PayStatus::getDesc).orElse("")); .map(PayStatus::getDesc).orElse(""));
responseVo.setPayVoucher(orderExtInfoDto != null ? orderExtInfoDto.getPayTransId() : ""); responseVo.setPayVoucher(orderExtInfoDto != null ? orderExtInfoDto.getPayTransId() : "");
if(mcCafePartnerId.equals(ordersBean.getCompanyId())) {
responseVo.setPayVoucherBarCode(Base64.getEncoder().encodeToString(
BarcodeUtil.generateBarCode128(responseVo.getPayVoucher(),null,null, true, true)));
}
responseVo.setPayCreateTime(orderExtInfoDto != null ? orderExtInfoDto.getPayDate() : ""); responseVo.setPayCreateTime(orderExtInfoDto != null ? orderExtInfoDto.getPayDate() : "");
responseVo.setPayChannel(ordersBean.getPayChannel()); responseVo.setPayChannel(ordersBean.getPayChannel());
if (StringUtils.isNotBlank(ordersBean.getPayChannel())) { if (StringUtils.isNotBlank(ordersBean.getPayChannel())) {
...@@ -1171,6 +1182,9 @@ public class OrderAdapter { ...@@ -1171,6 +1182,9 @@ public class OrderAdapter {
if (CollectionUtils.isNotEmpty(ordersBean.getRefundList())) { if (CollectionUtils.isNotEmpty(ordersBean.getRefundList())) {
responseVo.setRefundTips(orderViewStatusDto.getRefundStatusText()); responseVo.setRefundTips(orderViewStatusDto.getRefundStatusText());
} }
if(OrderStatus.COMPLETE.getCode().equals(ordersBean.getStatus()) && null != ordersBean.getGmtCompleteTime() && 0l != ordersBean.getGmtCompleteTime()) {
responseVo.setCompleteTime(DateUtil.convert2String(new Date(ordersBean.getGmtCompleteTime()), "yyyy-MM-dd HH:mm:ss"));
}
responseVo.setTakeMealFlows(getTakeMealFlows(ordersBean)); responseVo.setTakeMealFlows(getTakeMealFlows(ordersBean));
responseVo.setRiderName(orderViewStatusDto.getRiderName()); responseVo.setRiderName(orderViewStatusDto.getRiderName());
responseVo.setRiderText(orderViewStatusDto.getRiderText()); responseVo.setRiderText(orderViewStatusDto.getRiderText());
......
...@@ -181,6 +181,21 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -181,6 +181,21 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){ if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
return baseResponse; return baseResponse;
} }
// 添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
// 锁定秒数从apollo获取,如果apollo没有设置,默认5秒
// String createOrderKey = CREATE_ORDER_KEY + assortmentCustomerInfoVo.getMemberId();
// try {
// Long expire = Long.valueOf(createOrderKeyExpire);
// if(!LockUtils.lock(redisCache.getRedisTemplate(),createOrderKey,expire)){
// return ResponseUtil.error(ResponseResult.ORDER_NOT_CREATE_ERROR);
// }
// return mcCafeOrderService.createMCCafeOrder(createOrderVo);
// } catch (Exception e) {
// throw e;
// } finally {
// //LockUtils.unlock(redisCache.getRedisTemplate(),createOrderKey);
// }
return mcCafeOrderService.createMCCafeOrder(createOrderVo); return mcCafeOrderService.createMCCafeOrder(createOrderVo);
} }
......
...@@ -465,16 +465,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -465,16 +465,7 @@ public class OrderServiceImpl implements Orderservice {
if (orderBean.getGmtExpect() != null && orderBean.getGmtExpect() != 0) { if (orderBean.getGmtExpect() != null && orderBean.getGmtExpect() != 0) {
var1.setExpectTime(DateUtil.convert2String(new Date(orderBean.getGmtExpect()), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)); var1.setExpectTime(DateUtil.convert2String(new Date(orderBean.getGmtExpect()), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
} }
/*
ShoppingCartGoodsDto.SendPoint value = (ShoppingCartGoodsDto.SendPoint)redisCache.getValue(RedisKeyConstant.KGD_SENDPOINT_ORDERID + var1.getOrderId());
if (value != null){
var1.setSendPointActivityCode(value.getActivityCode());
var1.setSendPointEndTime(value.getEndTime());
var1.setSendPointMaxNum(value.getMaxNum());
var1.setSendPointSendPoint(value.getSendPoint());
var1.setSendPointValidityDateDays(value.getValidityDateDays());
}
*/
// 订单支付成功 // 订单支付成功
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccess(var1); com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccess(var1);
String string2 = JSONObject.toJSONString(payAccessRes); String string2 = JSONObject.toJSONString(payAccessRes);
...@@ -545,6 +536,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -545,6 +536,9 @@ public class OrderServiceImpl implements Orderservice {
} }
//支付回掉成功标记 //支付回掉成功标记
redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES); redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES);
log.info("调用券码核销==" + message.getTrans_id());
verificationCoupon(message.getTrans_id());
log.info("调用券码结束=="+ message.getTrans_id());
return sendPaySuccessNoticeMessage(); return sendPaySuccessNoticeMessage();
} }
...@@ -621,9 +615,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -621,9 +615,6 @@ public class OrderServiceImpl implements Orderservice {
if (jsonObject.containsKey("code")) { if (jsonObject.containsKey("code")) {
Integer code = (Integer) jsonObject.get("code"); Integer code = (Integer) jsonObject.get("code");
if (Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_0, code) || Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, code)) { if (Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_0, code) || Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, code)) {
log.info("调用券码核销=="+newMessage.getTransId());
verificationCoupon(newMessage.getTransId());
log.info("调用券码结束=="+newMessage.getTransId());
return newSendPaySuccessNoticeMessage(); return newSendPaySuccessNoticeMessage();
} else { } else {
return newSendPayFaileMessage(); return newSendPayFaileMessage();
......
...@@ -558,12 +558,12 @@ public class SellCouponOrderServiceImpl { ...@@ -558,12 +558,12 @@ public class SellCouponOrderServiceImpl {
orderItemCreateReq.setSettlementPrice(active.getSalePrice().longValue()); orderItemCreateReq.setSettlementPrice(active.getSalePrice().longValue());
orderItemCreateReq.setPartnerId(partnerId); orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setProductId(ngsCouponProductId); orderItemCreateReq.setProductId(activityCode);
orderItemCreateReq.setProductSpec(ngsCouponProductId); orderItemCreateReq.setProductSpec(activityCode);
orderItemCreateReq.setProductName("卖券虚拟商品"); orderItemCreateReq.setProductName(active.getActiveName());
orderItemCreateReq.setProductSpecName("卖券虚拟商品"); orderItemCreateReq.setProductSpecName(active.getActiveName());
orderItemCreateReq.setProductSeq(1); orderItemCreateReq.setProductSeq(1);
orderItemCreateReq.setProductCode(ngsCouponProductId); orderItemCreateReq.setProductCode(activityCode);
orderItemCreateReq.setThirdProductId(""); orderItemCreateReq.setThirdProductId("");
orderItemCreateReq.setProductQuantity(1); orderItemCreateReq.setProductQuantity(1);
......
...@@ -14,7 +14,7 @@ public class DateUtils { ...@@ -14,7 +14,7 @@ public class DateUtils {
if (date == null ){ if (date == null ){
return null; return null;
} }
String[] week={"(周一)","(周二)","(周三)","(周四)","(周五)","(周六)","(周日)"}; String[] week={"(周日)","(周一)","(周二)","(周三)","(周四)","(周五)","(周六)"};
Calendar calendar =Calendar.getInstance(); Calendar calendar =Calendar.getInstance();
calendar.setTime(date); calendar.setTime(date);
int w = calendar.get(Calendar.DAY_OF_WEEK) -1 ; int w = calendar.get(Calendar.DAY_OF_WEEK) -1 ;
......
...@@ -10,7 +10,8 @@ public enum OrderSource { ...@@ -10,7 +10,8 @@ public enum OrderSource {
MALL("mall", "非码Mall"), MALL("mall", "非码Mall"),
SAAS("saas", "saas点餐"), SAAS("saas", "saas点餐"),
ALIPAY("alipay", "支付宝"), ALIPAY("alipay", "支付宝"),
EBAI("ebwm", "饿百外卖"); EBAI("ebwm", "饿百外卖"),
MTDP("mtdp", "美团点评");
private String source; private String source;
private String sourceName; private String sourceName;
......
...@@ -30,7 +30,8 @@ public class OrderBeanFactory { ...@@ -30,7 +30,8 @@ public class OrderBeanFactory {
return applicationContext.getBean(McCafeMangerServiceImpl.class); return applicationContext.getBean(McCafeMangerServiceImpl.class);
} }
if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source) if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source)
|| OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source) || OrderSource.FMWD.getSource().equals(source) || OrderSource.EBAI.getSource().equals(source)){ || OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source) || OrderSource.FMWD.getSource().equals(source) || OrderSource.EBAI.getSource().equals(source)
|| OrderSource.MTDP.getSource().equals(source)){
return applicationContext.getBean(WaimaiOrderMangerServiceImpl.class); return applicationContext.getBean(WaimaiOrderMangerServiceImpl.class);
} }
return applicationContext.getBean(SaasOrderMangerServiceImpl.class); return applicationContext.getBean(SaasOrderMangerServiceImpl.class);
......
...@@ -122,7 +122,12 @@ public class OrderManagerAdapter { ...@@ -122,7 +122,12 @@ public class OrderManagerAdapter {
//查询订单 //查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId()); QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验 //订单接单参数校验
BaseResponse verifyResponse = orderVerifyHandle.orderRejectVerify(orderBean, request); BaseResponse verifyResponse;
if (!macCafePartnerId.equals(orderBean.getCompanyId())) {
verifyResponse = orderVerifyHandle.orderRejectVerify(orderBean, request);
} else {
verifyResponse = orderVerifyHandle.mcCafeOrderRejectVerify(orderBean, request);
}
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) { if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse); return handleResponse(request,orderBean,verifyResponse);
} }
......
...@@ -208,6 +208,40 @@ public class OrderVerifyHandle { ...@@ -208,6 +208,40 @@ public class OrderVerifyHandle {
if (OrderStatus.COMPLETE.getCode().equals(status)) { if (OrderStatus.COMPLETE.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_COMPLETE, getOrderManagerResponse(orderBean)); return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_COMPLETE, getOrderManagerResponse(orderBean));
} }
if (!OrderStatus.TAKE_ORDER.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_NOT_NEW, getOrderManagerResponse(orderBean));
}
return ResponseUtil.success();
}
/**
* 拒单
*
* @param orderBean
* @param request
* @return
*/
public BaseResponse mcCafeOrderRejectVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
Integer status = orderBean.getStatus();
//判断订单是否已经被拒单
if (OrderStatus.REFUSE.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_REPETITION, getOrderManagerResponse(orderBean));
}
//判断订单是否已经取消
if (OrderStatus.CANCEL.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED, getOrderManagerResponse(orderBean));
}
//判断订单是否在配送中
if (OrderStatus.DISTRIBUTION.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_DELIVERY, getOrderManagerResponse(orderBean));
}
//判断订单是否已送达
if (OrderStatus.COMPLETE.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_COMPLETE, getOrderManagerResponse(orderBean));
}
if (!OrderStatus.TAKE_ORDER.getCode().equals(status) && !OldOrderType.TAKE_OUT.getCode().equals(orderBean.getOrderType())) { if (!OrderStatus.TAKE_ORDER.getCode().equals(status) && !OldOrderType.TAKE_OUT.getCode().equals(orderBean.getOrderType())) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_NOT_NEW, getOrderManagerResponse(orderBean)); return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_NOT_NEW, getOrderManagerResponse(orderBean));
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<version>1.0.0</version> <version>1.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.6.5-SNAPSHOT</version> <version>1.6.7-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -34,5 +34,6 @@ ...@@ -34,5 +34,6 @@
| 1.6.3-SNAPSHOT | Add#PayChannelType | lixiaoer | 2020-11-09 | | 1.6.3-SNAPSHOT | Add#PayChannelType | lixiaoer | 2020-11-09 |
| 1.6.4-SNAPSHOT | 麦咖啡买三赠一 | 徐康 | 2020-11-16 | | 1.6.4-SNAPSHOT | 麦咖啡买三赠一 | 徐康 | 2020-11-16 |
| 1.6.5-SNAPSHOT | 混合支付 | 徐康 | 2020-11-16 | | 1.6.5-SNAPSHOT | 混合支付 | 徐康 | 2020-11-16 |
| 1.6.6-SNAPSHOT | 权益卡金额入机 | 徐康 | 2020-11-23 |
| 1.6.7-SNAPSHOT | 添加美团点评渠道 | 梁崇福 | 2020-11-24 |
...@@ -35,6 +35,7 @@ public enum OrderClientType { ...@@ -35,6 +35,7 @@ public enum OrderClientType {
KOUBEI(22, "口碑"), KOUBEI(22, "口碑"),
SAASMALL(23, "微商城"), SAASMALL(23, "微商城"),
FMWD(25, "非码微店"), FMWD(25, "非码微店"),
MTDP(27, "美团点评"),
PARKING(99 , "农工商停车"), PARKING(99 , "农工商停车"),
FU_YOU(100 , "富有"), FU_YOU(100 , "富有"),
; ;
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-shoppingcart-sdk</artifactId> <artifactId>assortment-shoppingcart-sdk</artifactId>
<version>2.0.3-SNAPSHOT</version> <version>2.0.4-SNAPSHOT</version>
</dependency> </dependency>
<!-- 再来一单查询订单信息 --> <!-- 再来一单查询订单信息 -->
<dependency> <dependency>
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
*/ */
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -150,4 +151,8 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -150,4 +151,8 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/ */
private Integer svcPayAmount; private Integer svcPayAmount;
/**
* 总的优惠信息集合
*/
private List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts;
} }
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CouponService
* @Package cn.freemud.service
* @Description:
* @author: pengfei.liu
* @date: 2020/11/23
* @version V1.0
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.delivery;
public interface DeliveryFactory {
/**
* 获取运费计算类
* @param orderType
* @param receiveId
* @return
*/
DeliveryService getCalculateDeliveryAmount(Integer orderType,String receiveId);
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CouponService
* @Package cn.freemud.service
* @Description:
* @author: pengfei.liu
* @date: 2020/11/23
* @version V1.0
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.delivery;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
public interface DeliveryService {
/**
* 计算运费
* @param receiveId
* @param partnerId
* @param storeId
* @param shoppingCartGoodsResponseVo
* @return
*/
Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo);
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CouponService
* @Package cn.freemud.service
* @Description:
* @author: pengfei.liu
* @date: 2020/11/23
* @version V1.0
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.delivery.impl;
import cn.freemud.service.delivery.DeliveryService;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public abstract class AbstractDeliveryServiceImpl implements DeliveryService {
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CouponService
* @Package cn.freemud.service
* @Description:
* @author: pengfei.liu
* @date: 2020/11/23
* @version V1.0
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.delivery.impl;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.delivery.DeliveryFactory;
import cn.freemud.service.delivery.DeliveryService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.util.Objects;
@Service
public class DeliveryFactoryImpl implements DeliveryFactory {
/**
* 梯度运费
*/
@Autowired
@Qualifier("gradDeliveryService")
DeliveryService gradDeliveryService;
/**
* 固定运费
*/
@Autowired
@Qualifier("fixDeliveryService")
DeliveryService fixDeliveryServiceImpl;
@Override
public DeliveryService getCalculateDeliveryAmount(Integer orderType,String receiveId) {
// 如果订单的收获地址为空,且订单是外卖单,使用固定运费
if (StringUtils.isBlank(receiveId) && Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode())) {
return fixDeliveryServiceImpl;
}else if(StringUtils.isNotBlank(receiveId)){
return gradDeliveryService;
}
throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
}
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CouponService
* @Package cn.freemud.service
* @Description:
* @author: pengfei.liu
* @date: 2020/11/23
* @version V1.0
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.delivery.impl;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.delivery.DeliveryService;
import cn.freemud.utils.ResponseUtil;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
@Service("fixDeliveryService")
public class FixDeliveryServiceImpl extends AbstractDeliveryServiceImpl implements DeliveryService {
@Autowired
private StoreCenterService storeCenterService;
@Override
public Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
String trackingNo = LogThreadLocal.getTrackingNo();
// 获取门店信息,查询基础配送费用
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, storeId,null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
throw new ServiceException (ResponseResult.STORE_NOT_FOUND);
}
shoppingCartGoodsResponseVo.setDeliveryFeeZeroReason(0);
return new Double(storeResponse.getBizVO().getDeliveryPrice()).longValue() * 100;
}
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CouponService
* @Package cn.freemud.service
* @Description:
* @author: pengfei.liu
* @date: 2020/11/23
* @version V1.0
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.delivery.impl;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.delivery.DeliveryService;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("gradDeliveryService")
public class GradDeliveryServiceImpl extends AbstractDeliveryServiceImpl implements DeliveryService {
@Autowired
private MemberCenterService memberCenterService;
@Autowired
private StoreCenterService storeCenterService;
@Override
public Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
String trackingNo = LogThreadLocal.getTrackingNo();
QueryReceiveAddressRequest queryReceive = new QueryReceiveAddressRequest(receiveId, partnerId);
//查询会员收获地址经纬度
com.freemud.application.sdk.api.base.BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(queryReceive, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
throw new ServiceException(ResponseResult.USER_GETRECEIVEADDRESS_ERROR);
}
// 查询运费详情
QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest();
queryDeliveryRequest.setPartnerId(partnerId);
queryDeliveryRequest.setStoreCode(storeId);
queryDeliveryRequest.setUserLatitude(queryReceiveAddressResponse.getData().getLatitude());
queryDeliveryRequest.setUserLongitude(queryReceiveAddressResponse.getData().getLongitude());
com.freemud.application.sdk.api.base.BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
if(queryDeliverDetailResponse.getData().getDeliveryAmount() == null) {
throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
}
shoppingCartGoodsResponseVo.setDeliveryFeeZeroReason(queryDeliverDetailResponse.getData().getDeliveryFeeZeroReason() != null ? queryDeliverDetailResponse.getData().getDeliveryFeeZeroReason() : 0);
return queryDeliverDetailResponse.getData().getDeliveryAmount();
}
}
...@@ -35,6 +35,8 @@ import cn.freemud.interceptor.ServiceException; ...@@ -35,6 +35,8 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.interceptor.BizServiceException; import cn.freemud.interceptor.BizServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.*; import cn.freemud.service.*;
import cn.freemud.service.delivery.DeliveryFactory;
import cn.freemud.service.delivery.DeliveryService;
import cn.freemud.service.impl.calculate.CalculateCenter; import cn.freemud.service.impl.calculate.CalculateCenter;
import cn.freemud.service.impl.calculate.CalculationSharingCartService; import cn.freemud.service.impl.calculate.CalculationSharingCartService;
import cn.freemud.service.impl.calculate.CalculationSharingDiscountService; import cn.freemud.service.impl.calculate.CalculationSharingDiscountService;
...@@ -152,6 +154,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -152,6 +154,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
@Autowired
private DeliveryFactory deliveryFactory;
private static final String limitCartKey = "ecology:kgd:wxappconfig:open_platform_partner_wxapp_config:appkey_"; private static final String limitCartKey = "ecology:kgd:wxappconfig:open_platform_partner_wxapp_config:appkey_";
...@@ -299,7 +304,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -299,7 +304,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
this.addProductGoods(addShoppingCartGoodsRequestVo, cartGoods, spuId2, userId, shoppingCartGoodsResponseVo, this.addProductGoods(addShoppingCartGoodsRequestVo, cartGoods, spuId2, userId, shoppingCartGoodsResponseVo,
spuId, allCartGoodsList, productBeanListSpuClass, StringUtils.isNotBlank(skuId) ? true : false); spuId, allCartGoodsList, productBeanListSpuClass, StringUtils.isNotBlank(skuId) ? true : false);
} }
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo,addShoppingCartGoodsRequestVo.getOrderType());
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType());
if (grayPush(partnerId,storeId,"2")) { if (grayPush(partnerId,storeId,"2")) {
...@@ -344,6 +349,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -344,6 +349,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
clearMsg(shoppingCartGoodsResponseVo, cartGoods.getCartGoodsUid()); clearMsg(shoppingCartGoodsResponseVo, cartGoods.getCartGoodsUid());
//设置更新响应信息 //设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, allCartGoodsList, null, partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, allCartGoodsList, null, partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null);
// 将促销返回的总的活动信息返回给前端
shoppingCartGoodsResponseVo.setDiscounts(calculationDiscountResult == null ? null : calculationDiscountResult.getDiscounts());
} }
//埋点添加购物车行为 //埋点添加购物车行为
this.buriedPointShoppingCart(addShoppingCartGoodsRequestVo, spuId, productName); this.buriedPointShoppingCart(addShoppingCartGoodsRequestVo, spuId, productName);
...@@ -420,7 +428,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -420,7 +428,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 重新存储最新购物车 // 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, updateShoppingCartGoodsQtyRequestVo.getSessionId(), "", shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, updateShoppingCartGoodsQtyRequestVo.getSessionId(), "", shoppingCartBaseService);
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo,updateShoppingCartGoodsQtyRequestVo.getOrderType());
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType());
if (grayPush(partnerId,storeId,"2")) { if (grayPush(partnerId,storeId,"2")) {
...@@ -463,6 +471,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -463,6 +471,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
clearMsg(shoppingCartGoodsResponseVo, cartGoodsUid); clearMsg(shoppingCartGoodsResponseVo, cartGoodsUid);
//设置更新响应信息 //设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null);
// 将促销返回的总的活动信息返回给前端
shoppingCartGoodsResponseVo.setDiscounts(calculationDiscountResult == null ? null : calculationDiscountResult.getDiscounts());
} }
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
...@@ -552,7 +563,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -552,7 +563,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), "", this.shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), "", this.shoppingCartBaseService);
} }
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo,shoppingCartInfoRequestVo.getOrderType());
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType());
CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto); CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto);
...@@ -619,6 +630,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -619,6 +630,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo);
// 在原价、现价、折扣价上增加第一次使用会员卡的费用 // 在原价、现价、折扣价上增加第一次使用会员卡的费用
this.addNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsResponseVo); this.addNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsResponseVo);
// 将促销返回的总的活动信息返回给前端
shoppingCartGoodsResponseVo.setDiscounts(calculationDiscountResult == null ? null : calculationDiscountResult.getDiscounts());
} }
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
} }
...@@ -768,7 +783,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -768,7 +783,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType());
CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto); CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto);
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo,shoppingCartInfoRequestVo.getOrderType());
if (grayPush(partnerId,storeId,"2")) { if (grayPush(partnerId,storeId,"2")) {
List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
// 当couponCode不为空时,需参与价格计算 // 当couponCode不为空时,需参与价格计算
...@@ -1741,33 +1756,19 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1741,33 +1756,19 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return amount; return amount;
} }
private Long getNewDeliveryAmount(String receiveId, String partnerId, String storeId, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) { private Long getNewDeliveryAmount(String receiveId, String partnerId, String storeId, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,Integer orderType) {
String trackingNo = LogThreadLocal.getTrackingNo(); //String trackingNo = LogThreadLocal.getTrackingNo();
Long amount = 0L; Long amount = 0L;
if (StringUtils.isBlank(receiveId)) { // 如果订单的收获地址为空,且订单是外卖单,返回运费
// 主要是为了兼容coco不传收获地址,需要获取固定运费的情况
if (StringUtils.isBlank(receiveId) && !Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode())) {
return amount; return amount;
} }
QueryReceiveAddressRequest queryReceive = new QueryReceiveAddressRequest(receiveId, partnerId);
//查询会员后货地址经纬度
com.freemud.application.sdk.api.base.BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(queryReceive, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
throw new ServiceException(ResponseResult.USER_GETRECEIVEADDRESS_ERROR);
}
QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest(); DeliveryService deliveryService = deliveryFactory.getCalculateDeliveryAmount(orderType,receiveId);
queryDeliveryRequest.setPartnerId(partnerId); amount = deliveryService.calculateDeliveryAmount(receiveId,partnerId,storeId,shoppingCartGoodsResponseVo);
queryDeliveryRequest.setStoreCode(storeId);
queryDeliveryRequest.setUserLatitude(queryReceiveAddressResponse.getData().getLatitude()); return amount;
queryDeliveryRequest.setUserLongitude(queryReceiveAddressResponse.getData().getLongitude());
com.freemud.application.sdk.api.base.BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
if(queryDeliverDetailResponse.getData().getDeliveryAmount() == null) {
throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
}
shoppingCartGoodsResponseVo.setDeliveryFeeZeroReason(queryDeliverDetailResponse.getData().getDeliveryFeeZeroReason() != null ? queryDeliverDetailResponse.getData().getDeliveryFeeZeroReason() : 0);
return queryDeliverDetailResponse.getData().getDeliveryAmount();
} }
/** /**
...@@ -1814,9 +1815,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1814,9 +1815,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return calculationDiscountResult; return calculationDiscountResult;
} }
private Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, String wxappid, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) { private Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, String wxappid, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,Integer orderType) {
Long deliveryAmount = 0L; Long deliveryAmount = 0L;
if (StringUtils.isBlank(receiveId)) { // 如果订单的收获地址为空,且订单是外卖单,返回运费
// 主要是为了兼容coco不传收获地址,需要获取固定运费的情况
if (StringUtils.isBlank(receiveId) && !Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode())) {
return deliveryAmount; return deliveryAmount;
} }
log.info("获取配送配逻辑 tackingNo:{},storeDeliveryUseOld:{},receiveId:{},partnerId:{},storeId:{}", LogThreadLocal.getTrackingNo(), storeDeliveryUseOld, receiveId, partnerId, storeId); log.info("获取配送配逻辑 tackingNo:{},storeDeliveryUseOld:{},receiveId:{},partnerId:{},storeId:{}", LogThreadLocal.getTrackingNo(), storeDeliveryUseOld, receiveId, partnerId, storeId);
...@@ -1824,7 +1827,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1824,7 +1827,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
deliveryAmount = Long.parseLong(getDeliveryAmount(receiveId, partnerId, storeId).toString()); deliveryAmount = Long.parseLong(getDeliveryAmount(receiveId, partnerId, storeId).toString());
shoppingCartGoodsResponseVo.setDeliveryFeeZeroReason(0); shoppingCartGoodsResponseVo.setDeliveryFeeZeroReason(0);
} else { } else {
deliveryAmount = getNewDeliveryAmount(receiveId, partnerId, storeId, shoppingCartGoodsResponseVo); deliveryAmount = getNewDeliveryAmount(receiveId, partnerId, storeId, shoppingCartGoodsResponseVo,orderType);
} }
return deliveryAmount; return deliveryAmount;
...@@ -1884,7 +1887,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1884,7 +1887,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
public boolean grayPush(String partnerId, String storeId, String version) { public boolean grayPush(String partnerId, String storeId, String version) {
if (StringUtils.isBlank(sharing)) return false; if (StringUtils.isBlank(sharing)) return false;
CalculateCenter center = JSON.parseObject(sharing, CalculateCenter.class); CalculateCenter center = JSON.parseObject(sharing, CalculateCenter.class);
Boolean enable = false; Boolean enable = false;
if (!center.getEnable()) return false; if (!center.getEnable()) return false;
...@@ -1893,21 +1895,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1893,21 +1895,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
enable = true; enable = true;
break; break;
case 1: { case 1: {
if (StringUtils.isBlank(center.getPartnerId())) { //商户+门店级别
enable = false; String real = partnerId.concat(storeId);
} else { if (Arrays.asList(center.getGrayList().split(",")).contains(real)) {
if (Arrays.asList(center.getPartnerId().split(",")).contains(partnerId)) { enable = true;
enable = true; }
} else { //商户级别
enable = false; else if (Arrays.asList(center.getGrayList().split(",")).contains(partnerId)) {
} enable = true;
if (Arrays.asList(center.getStoreId().split(",")).contains(storeId)) {
enable = true;
} else {
enable = false;
}
} }
break;
} }
} }
if (center.getEnable() && enable) { if (center.getEnable() && enable) {
......
...@@ -22,12 +22,7 @@ public class CalculateCenter { ...@@ -22,12 +22,7 @@ public class CalculateCenter {
/** /**
* 商户 * 商户
*/ */
private String partnerId; private String grayList;
/**
* 门店
*/
private String storeId;
/** /**
* 是否启用新的算价中心 * 是否启用新的算价中心
......
...@@ -202,6 +202,7 @@ public class CalculationSharingDiscountService { ...@@ -202,6 +202,7 @@ public class CalculationSharingDiscountService {
} }
} }
/** /**
* 实物商品 * 实物商品
* @param calculationDiscountGoodsList * @param calculationDiscountGoodsList
...@@ -209,11 +210,18 @@ public class CalculationSharingDiscountService { ...@@ -209,11 +210,18 @@ public class CalculationSharingDiscountService {
*/ */
private void setCommonDiscountGoods(List<CalculationSharingDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList private void setCommonDiscountGoods(List<CalculationSharingDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList
, CartGoods cartGoods) { , CartGoods cartGoods) {
CalculationSharingDiscountRequestDto.CalculationDiscountGoods calculationDiscountGoods = new CalculationSharingDiscountRequestDto.CalculationDiscountGoods(); CalculationSharingDiscountRequestDto.CalculationDiscountGoods calculationDiscountGoods = new CalculationSharingDiscountRequestDto.CalculationDiscountGoods();
calculationDiscountGoods.setGoodsId(cartGoods.getGoodsId()); calculationDiscountGoods.setGoodsId(cartGoods.getGoodsId());
calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid()); calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid());
calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty()); calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty());
calculationDiscountGoods.setOriginalPrice(cartGoods.getOriginalPrice()); //if (cartGoods.getGoodsType().equals(GoodsTypeEnum.SET_MEAL_GOODS))
if (CollectionUtils.isNotEmpty(cartGoods.getProductGroupList()) || CollectionUtils.isNotEmpty(cartGoods.getProductComboList())) {
calculationDiscountGoods.setOriginalPrice(cartGoods.getFinalPrice()!=null ? cartGoods.getFinalPrice() : cartGoods.getOriginalPrice());
}
else {
calculationDiscountGoods.setOriginalPrice(cartGoods.getOriginalPrice());
}
calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount()); calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount());
calculationDiscountGoods.setSpuId(cartGoods.getSpuId()); calculationDiscountGoods.setSpuId(cartGoods.getSpuId());
//商品加料 //商品加料
......
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