Commit c1276daf by zhiheng.zhang

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

parents 8bcae7ff 61617f9d
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.4-SNAPSHOT</version>
<version>2.2.8-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.6.5-SNAPSHOT</version>
<version>1.6.7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -95,4 +95,6 @@
| 2.1.7-SNAPSHOT| 混合支付退款 | lixixoaer | 2020-11-11 |
| 2.1.8-SNAPSHOT| 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 |
| 2.1.9-SNAPSHOT| 麦咖啡买三赠一 | 徐康 | 2020-11-16 |
| 2.2.0-SNAPSHOT| 混合支付 | 徐康 | 2020-11-16 |
\ No newline at end of file
| 2.2.0-SNAPSHOT| 混合支付 | 徐康 | 2020-11-16 |
| 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 {
if(StringUtils.isNotBlank(accountRequest.getAddInfo())) {
orderCostCreateReq.setExtInfo(accountRequest.getAddInfo());
}
orderCostCreateReq.setNote(accountRequest.getNote());
orderCostCreateReqs.add(orderCostCreateReq);
} else {
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
......
......@@ -41,6 +41,7 @@ public enum OrderSourceType {
DPZHCT("dpzhct", "美团点评智慧餐厅", 24),
FMWD("fmwd", "非码微店", 25),
Y_POS("ypos", "非码云POS", 26),
MTDP("mtdp", "美团点评", 27),
parkingmanual("parkingmanual", "农工商停车手工录单", 98),
PARKING("parking", "农工商停车", 99),
SDG("sdg", "闪电购", 1000);
......
......@@ -40,6 +40,8 @@ public class CreateOrderAccountRequest extends BaseConfig {
*/
private String addInfo;
private String note;
private String productId;
private Integer discountQty;
......
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-shoppingcart-sdk</artifactId>
<version>2.0.3-SNAPSHOT</version>
<version>2.0.4-SNAPSHOT</version>
<dependencies>
<dependency>
......
......@@ -8,4 +8,5 @@
| 1.1.5-SNAPSHOT| 增加统计分类编号:classificationId,classificationName | | 2020-06-12 |
| 2.0.0-SNAPSHOT| 商品加料 | 李小二 | 2020-08-17 |
| 2.0.1-SNAPSHOT| 拼单 | miaohhui | 2020-08-17 |
| 2.0.3-SNAPSHOT| 拼单 | 刘鹏飞 | 2020-11-20 |
\ No newline at end of file
| 2.0.3-SNAPSHOT| 拼单 | 刘鹏飞 | 2020-11-20 |
| 2.0.4-SNAPSHOT| 套餐 | 刘鹏飞 | 2020-11-20 |
\ No newline at end of file
......@@ -315,6 +315,10 @@ public class ShoppingCartAdapter {
updateComboxGoodsInfoNew(productGroup, spuProduct, false);
}
}
//0元套餐 必须选可选或是可选
if (CollectionUtils.isEmpty(cartGoods.getProductComboList()) && CollectionUtils.isEmpty(cartGoods.getProductGroupList())) {
cartGoods.setCartGoodsUid("");
}
}
//更新当前商品行价格
Long newOrigOriginalPrice = 0L;
......
......@@ -151,7 +151,7 @@ public class OrderCallBackMQService {
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;
}
OrderInfoReqs orderInfoReqs = null;
......
......@@ -28,7 +28,7 @@ public class OrderCallBackRequestVo {
* 2 未支付超时关单
*/
private Integer delayMsgEventType;
//操作类型 0= 其他信息修改,1=订单正向操作,2=订单逆向操作
//操作类型 0= 其他信息修改,1=订单正向操作,2=订单逆向操作,3=通知消息
private Integer operateType;
//渠道编号
private Integer orderClient;
......@@ -47,6 +47,7 @@ public class OrderCallBackRequestVo {
* 消息类型
1. 1订单所有状态正常变化通知
2. 2超时订单
3. 3通知
*/
private String msgType;
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.4-SNAPSHOT</version>
<version>2.2.7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -190,6 +190,7 @@ public class OrderAdapter {
}
}
createOrderDto.setProducts(products);
boolean hasDeliveryMonthCard = false;
for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId(activityDiscountsDto.getActivityCode())
......@@ -206,6 +207,9 @@ public class OrderAdapter {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
} else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("customerCode", activityDiscountsDto.getTenderId());
if(null != activityDiscountsDto.getExtendType() && activityDiscountsDto.getExtendType() == 2) {
hasDeliveryMonthCard = true;
}
}
if(null != activityDiscountsDto.getExtendType()) {
jsonObject.put("extendType", activityDiscountsDto.getExtendType());
......@@ -224,6 +228,9 @@ public class OrderAdapter {
.sequence(orderAccountIndex++)
.actualPrice(discountDeliveryAmount)
.build();
if(hasDeliveryMonthCard && StringUtils.isNotBlank(storeResponseDto.getBenefitCardDiscountAmount())) {
createOrderAccountDto.setNote((Integer.parseInt(storeResponseDto.getBenefitCardDiscountAmount())*100)+"");
}
orderAccountDtos.add(createOrderAccountDto);
}
if (packageAmount > 0) {
......@@ -1124,6 +1131,10 @@ public class OrderAdapter {
responseVo.setPayStatusDesc(Optional.ofNullable(PayStatus.getByCode(ordersBean.getPayStatus()))
.map(PayStatus::getDesc).orElse(""));
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.setPayChannel(ordersBean.getPayChannel());
if (StringUtils.isNotBlank(ordersBean.getPayChannel())) {
......@@ -1171,6 +1182,9 @@ public class OrderAdapter {
if (CollectionUtils.isNotEmpty(ordersBean.getRefundList())) {
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.setRiderName(orderViewStatusDto.getRiderName());
responseVo.setRiderText(orderViewStatusDto.getRiderText());
......
......@@ -181,6 +181,21 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
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);
}
......
......@@ -465,16 +465,7 @@ public class OrderServiceImpl implements Orderservice {
if (orderBean.getGmtExpect() != null && orderBean.getGmtExpect() != 0) {
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);
String string2 = JSONObject.toJSONString(payAccessRes);
......@@ -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);
log.info("调用券码核销==" + message.getTrans_id());
verificationCoupon(message.getTrans_id());
log.info("调用券码结束=="+ message.getTrans_id());
return sendPaySuccessNoticeMessage();
}
......@@ -621,9 +615,6 @@ public class OrderServiceImpl implements Orderservice {
if (jsonObject.containsKey("code")) {
Integer code = (Integer) jsonObject.get("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();
} else {
return newSendPayFaileMessage();
......
......@@ -558,12 +558,12 @@ public class SellCouponOrderServiceImpl {
orderItemCreateReq.setSettlementPrice(active.getSalePrice().longValue());
orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setProductId(ngsCouponProductId);
orderItemCreateReq.setProductSpec(ngsCouponProductId);
orderItemCreateReq.setProductName("卖券虚拟商品");
orderItemCreateReq.setProductSpecName("卖券虚拟商品");
orderItemCreateReq.setProductId(activityCode);
orderItemCreateReq.setProductSpec(activityCode);
orderItemCreateReq.setProductName(active.getActiveName());
orderItemCreateReq.setProductSpecName(active.getActiveName());
orderItemCreateReq.setProductSeq(1);
orderItemCreateReq.setProductCode(ngsCouponProductId);
orderItemCreateReq.setProductCode(activityCode);
orderItemCreateReq.setThirdProductId("");
orderItemCreateReq.setProductQuantity(1);
......
......@@ -14,7 +14,7 @@ public class DateUtils {
if (date == null ){
return null;
}
String[] week={"(周一)","(周二)","(周三)","(周四)","(周五)","(周六)","(周日)"};
String[] week={"(周日)","(周一)","(周二)","(周三)","(周四)","(周五)","(周六)"};
Calendar calendar =Calendar.getInstance();
calendar.setTime(date);
int w = calendar.get(Calendar.DAY_OF_WEEK) -1 ;
......
......@@ -10,7 +10,8 @@ public enum OrderSource {
MALL("mall", "非码Mall"),
SAAS("saas", "saas点餐"),
ALIPAY("alipay", "支付宝"),
EBAI("ebwm", "饿百外卖");
EBAI("ebwm", "饿百外卖"),
MTDP("mtdp", "美团点评");
private String source;
private String sourceName;
......
......@@ -30,7 +30,8 @@ public class OrderBeanFactory {
return applicationContext.getBean(McCafeMangerServiceImpl.class);
}
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(SaasOrderMangerServiceImpl.class);
......
......@@ -122,7 +122,12 @@ public class OrderManagerAdapter {
//查询订单
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())) {
return handleResponse(request,orderBean,verifyResponse);
}
......
......@@ -208,6 +208,40 @@ public class OrderVerifyHandle {
if (OrderStatus.COMPLETE.getCode().equals(status)) {
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())) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_NOT_NEW, getOrderManagerResponse(orderBean));
}
......
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.6.5-SNAPSHOT</version>
<version>1.6.7-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -34,5 +34,6 @@
| 1.6.3-SNAPSHOT | Add#PayChannelType | lixiaoer | 2020-11-09 |
| 1.6.4-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 {
KOUBEI(22, "口碑"),
SAASMALL(23, "微商城"),
FMWD(25, "非码微店"),
MTDP(27, "美团点评"),
PARKING(99 , "农工商停车"),
FU_YOU(100 , "富有"),
;
......
......@@ -45,7 +45,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-shoppingcart-sdk</artifactId>
<version>2.0.3-SNAPSHOT</version>
<version>2.0.4-SNAPSHOT</version>
</dependency>
<!-- 再来一单查询订单信息 -->
<dependency>
......
......@@ -12,6 +12,7 @@
*/
package cn.freemud.entities.vo;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import lombok.Builder;
import lombok.Data;
......@@ -150,4 +151,8 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/
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();
}
}
......@@ -22,12 +22,7 @@ public class CalculateCenter {
/**
* 商户
*/
private String partnerId;
/**
* 门店
*/
private String storeId;
private String grayList;
/**
* 是否启用新的算价中心
......
......@@ -202,6 +202,7 @@ public class CalculationSharingDiscountService {
}
}
/**
* 实物商品
* @param calculationDiscountGoodsList
......@@ -209,11 +210,18 @@ public class CalculationSharingDiscountService {
*/
private void setCommonDiscountGoods(List<CalculationSharingDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList
, CartGoods cartGoods) {
CalculationSharingDiscountRequestDto.CalculationDiscountGoods calculationDiscountGoods = new CalculationSharingDiscountRequestDto.CalculationDiscountGoods();
calculationDiscountGoods.setGoodsId(cartGoods.getGoodsId());
calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid());
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.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