Commit 4d13bcc4 by zhiheng.zhang

Merge branch 'develop' of…

Merge branch 'develop' of http://gitlab.freemud.com/order-group-application/order-group into develop
parents c630185a b0c4d308
...@@ -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.0.0-SNAPSHOT</version> <version>2.0.2-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -265,6 +265,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -265,6 +265,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponseBaseResponse.getCode(), "优惠券核销失败,请重试"); return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponseBaseResponse.getCode(), "优惠券核销失败,请重试");
} }
} }
// 扣减积分,扣减失败冲正积分返回错误
UserScoreRequest userScoreRequest = orderSdkAdapter.convent2UserScoreRequest(orderBean, accounts, true);
if (userScoreRequest != null) {
BaseResponse userScoreResponse = memberScoreService.useScore(userScoreRequest, "");
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, userScoreResponse.getCode())) {
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return BaseOrderResponse.getErrorBaseOrderResponse(userScoreResponse.getCode(), "积分不足");
}
}
return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, ""); return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, "");
} }
...@@ -1206,6 +1217,10 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1206,6 +1217,10 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
} }
if (AssortmentSdkUpdateOrderProductInfoRequest.OpUpdateOrderItemEnum.updatePrePayPrice == updateOrderProductInfoRequest.getOpUpdateOrderItemEnum()) { if (AssortmentSdkUpdateOrderProductInfoRequest.OpUpdateOrderItemEnum.updatePrePayPrice == updateOrderProductInfoRequest.getOpUpdateOrderItemEnum()) {
// 围餐订单的创建不一定是付款人,需要重新赋值
if (OrderClientType.WAI_MEAL.getIndex() == Integer.valueOf(queryOrderByIdResponse.getData().getOrderClient())) {
queryOrderByIdResponse.getData().setUserId(updateOrderProductInfoRequest.getUserId());
}
BaseOrderResponse baseOrderResponse = this.updateWcStockAndScore(queryOrderByIdResponse.getData(), orderItemListByRequest, updateOrderProductInfoRequest.getActivityUpdateStockRequest(), updateOrderProductInfoRequest.getAccounts(), BaseOrderResponse baseOrderResponse = this.updateWcStockAndScore(queryOrderByIdResponse.getData(), orderItemListByRequest, updateOrderProductInfoRequest.getActivityUpdateStockRequest(), updateOrderProductInfoRequest.getAccounts(),
updateOrderProductInfoRequest.getMqMessageRequest(), updateOrderProductInfoRequest.getMenuType()); updateOrderProductInfoRequest.getMqMessageRequest(), updateOrderProductInfoRequest.getMenuType());
if (!Objects.equals(baseOrderResponse.getErrcode(), RESPONSE_SUCCESS)) { if (!Objects.equals(baseOrderResponse.getErrcode(), RESPONSE_SUCCESS)) {
......
...@@ -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.0.0-SNAPSHOT</version> <version>2.0.2-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -148,6 +148,24 @@ public class OrderController { ...@@ -148,6 +148,24 @@ public class OrderController {
} }
/** /**
* 围餐-svc卡支付调用接口-预览订单
* @param queryOrderVo
* @return
*/
@ApiAnnotation(logMessage = "previewOrderInfoSvcCheck")
@PostMapping("/previewOrderInfoSvcCheck")
public BaseResponse previewOrderInfoSvcCheck(@Validated @LogParams @RequestBody QueryOrderVo queryOrderVo){
CreateReserveOrderVo createReserveOrderVo = new CreateReserveOrderVo();
createReserveOrderVo.setSessionId(queryOrderVo.getSessionId());
createReserveOrderVo.setActivityCode(queryOrderVo.getActivityCode());
createReserveOrderVo.setCouponCode(queryOrderVo.getCouponCode());
createReserveOrderVo.setUseCustomerScore(queryOrderVo.getUseCustomerScore());
createReserveOrderVo.setCardCode(queryOrderVo.getCardCode());
createReserveOrderVo.setPartnerId(queryOrderVo.getPartnerId());
return encircleOrderService.previewOrderInfoSvcCheck(createReserveOrderVo);
}
/**
* 获取订单详情 * 获取订单详情
*/ */
@ApiAnnotation(logMessage = "queryOrderById") @ApiAnnotation(logMessage = "queryOrderById")
......
...@@ -76,4 +76,9 @@ public class QueryOrderVo { ...@@ -76,4 +76,9 @@ public class QueryOrderVo {
*/ */
private Integer useCustomerScore; private Integer useCustomerScore;
/**
* svc 卡支付使用
*/
private String cardCode;
} }
...@@ -18,6 +18,11 @@ import javax.validation.constraints.NotNull; ...@@ -18,6 +18,11 @@ import javax.validation.constraints.NotNull;
public class CreateReserveOrderVo extends EncircleReserveBaseVo{ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
/**
* 商户ID
*/
private String partnerId;
private Integer repastNumber; private Integer repastNumber;
private Integer carVer; private Integer carVer;
...@@ -42,4 +47,8 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{ ...@@ -42,4 +47,8 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
* 3=显示积分且扣减 * 3=显示积分且扣减
*/ */
private Integer useCustomerScore; private Integer useCustomerScore;
/**
* svc 卡支付使用
*/
private String cardCode;
} }
...@@ -116,5 +116,9 @@ public class PreviewOrderInfoVo { ...@@ -116,5 +116,9 @@ public class PreviewOrderInfoVo {
* 用户积分抵扣信息 * 用户积分抵扣信息
*/ */
private ShoppingCartCustomerScoreVo customerScoreVo; private ShoppingCartCustomerScoreVo customerScoreVo;
/**
* svc卡支付描述
*/
private String svcDiscountDesc;
} }
...@@ -31,7 +31,7 @@ public enum ResponseResult { ...@@ -31,7 +31,7 @@ public enum ResponseResult {
USER_ADDRECEIVEADDRESS_ERROR("41010", "新增收货地址异常"), USER_ADDRECEIVEADDRESS_ERROR("41010", "新增收货地址异常"),
USER_DELETERECEIVEADDRESS_ERROR("41011", "删除收货地址异常"), USER_DELETERECEIVEADDRESS_ERROR("41011", "删除收货地址异常"),
USER_SVC_CARD_ERROR("41012", "用户卡号异常"), USER_SVC_CARD_ERROR("41012", "用户卡号异常"),
USER_SVC_CARD_AMOUNT_DEFICIENCY("41013", "储值卡余额不足"),
/** /**
* 验证码 状态码 * 验证码 状态码
......
...@@ -61,4 +61,10 @@ public interface EncircleOrderService { ...@@ -61,4 +61,10 @@ public interface EncircleOrderService {
*/ */
BaseResponse emptyTableNumber(EmptyTableNumberVo emptyTableNumberVo); BaseResponse emptyTableNumber(EmptyTableNumberVo emptyTableNumberVo);
/**
* 围餐--svc卡支付预览订单
* @param createReserveOrderVo
* @return
*/
BaseResponse previewOrderInfoSvcCheck(CreateReserveOrderVo createReserveOrderVo);
} }
...@@ -21,8 +21,6 @@ import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; ...@@ -21,8 +21,6 @@ import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -46,8 +44,6 @@ import java.util.Objects; ...@@ -46,8 +44,6 @@ import java.util.Objects;
@Service @Service
public class ActivityCalculationDiscountService { public class ActivityCalculationDiscountService {
private static Logger logger = LoggerFactory.getLogger(ActivityCalculationDiscountService.class);
private final static String RESPONSE_SUCCESS_STR = "100"; private final static String RESPONSE_SUCCESS_STR = "100";
@Autowired @Autowired
...@@ -90,7 +86,6 @@ public class ActivityCalculationDiscountService { ...@@ -90,7 +86,6 @@ public class ActivityCalculationDiscountService {
.build(); .build();
CalculationDiscountResultDto calculationDiscountResultDto = getCalculationResult(request, coupons); CalculationDiscountResultDto calculationDiscountResultDto = getCalculationResult(request, coupons);
logger.info("促销分摊:{}",calculationDiscountResultDto);
// 默认计算 // 默认计算
defaultPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); defaultPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
// 套餐计算 // 套餐计算
...@@ -101,7 +96,6 @@ public class ActivityCalculationDiscountService { ...@@ -101,7 +96,6 @@ public class ActivityCalculationDiscountService {
fullPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); fullPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
// 限时特价 // 限时特价
timeSalePromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); timeSalePromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
logger.info("限时特价shoppingCartGoodsResponse:{}",shoppingCartGoodsResponse);
// 积分抵扣 // 积分抵扣
customerScoreService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); customerScoreService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
return shoppingCartGoodsResponse; return shoppingCartGoodsResponse;
...@@ -135,9 +129,9 @@ public class ActivityCalculationDiscountService { ...@@ -135,9 +129,9 @@ public class ActivityCalculationDiscountService {
// 2.调用促销计算接口,结算促销结果 // 2.调用促销计算接口,结算促销结果
CalculationDiscountResponseDto calculationDiscountResponseDto = null; CalculationDiscountResponseDto calculationDiscountResponseDto = null;
try { try {
calculationDiscountResponseDto = promotionDiscountClient.discountSharing(activityCalculationDiscountRequestDto); calculationDiscountResponseDto = promotionDiscountClient.calculationDiscount(activityCalculationDiscountRequestDto);
} catch (Exception ex) { } catch (Exception ex) {
ErrorLog.printErrorLog("promotionCalculationDiscountError", "/calculation/discount/sharing", activityCalculationDiscountRequestDto, ex); ErrorLog.printErrorLog("promotionCalculationDiscountError", "/calculation/discount", activityCalculationDiscountRequestDto, ex);
return null; return null;
} }
if (calculationDiscountResponseDto == null || !StringUtils.equals(calculationDiscountResponseDto.getStatusCode(), RESPONSE_SUCCESS_STR)) { if (calculationDiscountResponseDto == null || !StringUtils.equals(calculationDiscountResponseDto.getStatusCode(), RESPONSE_SUCCESS_STR)) {
......
...@@ -42,8 +42,10 @@ import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum; ...@@ -42,8 +42,10 @@ import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest; import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest;
import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest; import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest;
import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest;
import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse; import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse;
import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse; import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse;
import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.GetStoreTableRequest; import com.freemud.application.sdk.api.storecenter.request.GetStoreTableRequest;
import com.freemud.application.sdk.api.storecenter.response.GetStoreTableResponse; import com.freemud.application.sdk.api.storecenter.response.GetStoreTableResponse;
...@@ -64,10 +66,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -64,10 +66,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.math.BigDecimal;
import java.util.Collections; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -404,6 +404,56 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -404,6 +404,56 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
} }
@Override @Override
public BaseResponse previewOrderInfoSvcCheck(CreateReserveOrderVo createReserveOrderVo) {
if (StringUtils.isBlank(createReserveOrderVo.getCardCode())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING);
}
BaseResponse<PreviewOrderInfoVo> baseResponse = queryOrderInfo(createReserveOrderVo);
if (baseResponse == null || !ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode())) {
return baseResponse;
}
PreviewOrderInfoVo shoppingCartGoodsResponseVo = baseResponse.getResult();
String partnerId = createReserveOrderVo.getPartnerId();
//SVC卡支付
SVCCardPay(createReserveOrderVo.getCardCode(), partnerId, shoppingCartGoodsResponseVo);
return ResponseUtil.success();
}
/**
* 储值卡支付余额校验
*/
private void SVCCardPay(String cardCode, String partnerId,
PreviewOrderInfoVo previewOrderInfoVo) {
if (StringUtils.isBlank(cardCode)) {
return;
}
Integer orderAmount = previewOrderInfoVo.getAmount().intValue();
String trackingNo = LogThreadLocal.getTrackingNo();
SVCCardAmountRequest request = new SVCCardAmountRequest();
request.setPartnerId(partnerId);
request.setCardCodes(Arrays.asList(cardCode));
//查询svc卡金额
com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> response = paymentNewService.querySVCCardAmount(request, trackingNo);
if (response == null) {
throw new ServiceException(ResponseResult.SYSTEM_BUSINESS_ERROR);
}
if (response.getData() == null || response.getData().getData() == null || response.getData().getData().getCardSimpleInfos().size() > 1) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
}
Integer amount1 = response.getData().getData().getCardSimpleInfos().get(0).getAmount();
Integer vamount = response.getData().getData().getCardSimpleInfos().get(0).getVamount();
if (orderAmount > amount1 + vamount) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_AMOUNT_DEFICIENCY);
}
BigDecimal bigDecimal = new BigDecimal(orderAmount);
String amountStr = bigDecimal.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
previewOrderInfoVo.setAmount(0L);
previewOrderInfoVo.setSvcDiscountDesc("储值卡支付¥" + amountStr);
}
@Override
public BaseResponse createPrepaymentOrder(CreateReserveOrderVo createReserveOrderVo) { public BaseResponse createPrepaymentOrder(CreateReserveOrderVo createReserveOrderVo) {
//获取缓存(用户信息,桌号信息,桌号与订单号信息) //获取缓存(用户信息,桌号信息,桌号与订单号信息)
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createReserveOrderVo.getSessionId()); AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createReserveOrderVo.getSessionId());
...@@ -414,6 +464,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -414,6 +464,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
if(StringUtils.isBlank(orderId)){ if(StringUtils.isBlank(orderId)){
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR); return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
} }
// 校验svc卡
checkOrder.checkCardCode(createReserveOrderVo.getPartnerId(),assortmentCustomerInfoVo.getMemberId(), createReserveOrderVo.getCardCode());
CreateOrderResponseVo orderResponseVo = null; CreateOrderResponseVo orderResponseVo = null;
//拉取订单详细信息 //拉取订单详细信息
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest(); BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
...@@ -503,7 +555,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -503,7 +555,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
//此处使用订单修改金额后的金额数据显示支付 //此处使用订单修改金额后的金额数据显示支付
queryOrderByIdResponse.getData().setAmount(baseOrderResponse.getData().getAmount()); queryOrderByIdResponse.getData().setAmount(baseOrderResponse.getData().getAmount());
//调用预支付 //调用预支付
orderResponseVo = orderCommonService.createPrePaymentOrder(baseOrderResponse.getData(),assortmentCustomerInfoVo,assortmentCustomerInfoVo.getPartnerId(),0); orderResponseVo = orderCommonService.createPrePaymentOrder(baseOrderResponse.getData(),assortmentCustomerInfoVo,assortmentCustomerInfoVo.getPartnerId(),0,createReserveOrderVo.getCardCode());
if(orderResponseVo != null){ if(orderResponseVo != null){
if(orderResponseVo.getPaySuccess()){ if(orderResponseVo.getPaySuccess()){
//如果是商品券支付0元,调用回调接口 //如果是商品券支付0元,调用回调接口
......
...@@ -100,6 +100,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -100,6 +100,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
createReserveOrderVo.setOrderUpdateVer(createOrderVo.getOrderUpdateVer()); createReserveOrderVo.setOrderUpdateVer(createOrderVo.getOrderUpdateVer());
createReserveOrderVo.setCouponCode(createOrderVo.getCouponCode()); createReserveOrderVo.setCouponCode(createOrderVo.getCouponCode());
createReserveOrderVo.setUseCustomerScore(createOrderVo.getUseCustomerScore()); createReserveOrderVo.setUseCustomerScore(createOrderVo.getUseCustomerScore());
createReserveOrderVo.setCardCode(createOrderVo.getCardCode());
if(createOrderVo.getOperation() == null) throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR); if(createOrderVo.getOperation() == null) throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR);
switch (createOrderVo.getOperation()){ switch (createOrderVo.getOperation()){
case 2:// 开台 case 2:// 开台
......
...@@ -53,6 +53,7 @@ import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService; ...@@ -53,6 +53,7 @@ import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -103,12 +104,15 @@ public class OrderCommonService { ...@@ -103,12 +104,15 @@ public class OrderCommonService {
private RedisService redisService; private RedisService redisService;
@Autowired @Autowired
private CouponActivityService couponActivityService; private CouponActivityService couponActivityService;
@Autowired
private OrderServiceImpl orderService;
private final Integer RESPONSE_SUCCESS_CODE = 100; private final Integer RESPONSE_SUCCESS_CODE = 100;
/** /**
* 创建预支付信息 * 创建预支付信息
* cardCode svc卡号
*/ */
public CreateOrderResponseVo createPrePaymentOrder(QueryOrdersResponse.DataBean.OrderBean orderBean,AssortmentCustomerInfoVo assortmentCustomerInfoVo, String partnerId, int cardAmount){ public CreateOrderResponseVo createPrePaymentOrder(QueryOrdersResponse.DataBean.OrderBean orderBean,AssortmentCustomerInfoVo assortmentCustomerInfoVo, String partnerId, int cardAmount, String cardCode){
OrderPayResponse orderPayResponse = null; OrderPayResponse orderPayResponse = null;
String wxAppId = assortmentCustomerInfoVo.getWxAppId(); String wxAppId = assortmentCustomerInfoVo.getWxAppId();
//设置支付信息 //设置支付信息
...@@ -120,17 +124,17 @@ public class OrderCommonService { ...@@ -120,17 +124,17 @@ public class OrderCommonService {
paymentRequest.setReverseNotifyiDcUrl(reverseNotifyiDcUrl); paymentRequest.setReverseNotifyiDcUrl(reverseNotifyiDcUrl);
//修改订单信息 //修改订单信息
OrderExtInfoDto orderExtInfoDto = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class) == null ? new OrderExtInfoDto() : JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class); OrderExtInfoDto orderExtInfoDto = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class) == null ? new OrderExtInfoDto() : JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
if(orderBean.getAmount() > 0){ if(orderBean.getAmount() > 0 && StringUtils.isEmpty(cardCode)) {
try { try {
String transId = orderBean.getOid() + redisService.increment(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()), 1L, TimeUnit.DAYS); String transId = orderBean.getOid() + redisService.increment(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()), 1L, TimeUnit.DAYS);
UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, transId); UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, transId);
if(SDKCommonBaseContextWare.getProfile().equals(SDKCommonBaseContextWare.profiles.DEFAULT.getProfile()) if (SDKCommonBaseContextWare.getProfile().equals(SDKCommonBaseContextWare.profiles.DEFAULT.getProfile())
|| SDKCommonBaseContextWare.getProfile().equals(SDKCommonBaseContextWare.profiles.DEV.getProfile()) || SDKCommonBaseContextWare.getProfile().equals(SDKCommonBaseContextWare.profiles.DEV.getProfile())
|| SDKCommonBaseContextWare.getProfile().equals(SDKCommonBaseContextWare.profiles.TEST.getProfile())){ || SDKCommonBaseContextWare.getProfile().equals(SDKCommonBaseContextWare.profiles.TEST.getProfile())) {
request.setAmount(1L); request.setAmount(1L);
} }
ApiLog.info("支付transId :{},payRequest:{}",request.getTransId(),JSON.toJSONString(request)); ApiLog.info("支付transId :{},payRequest:{}", request.getTransId(), JSON.toJSONString(request));
redisService.savePaymentTransIdOrder(RedisUtil.getPaymentTransIdOrderKey(transId), orderBean.getOid(), 1L, TimeUnit.DAYS); redisService.savePaymentTransIdOrder(RedisUtil.getPaymentTransIdOrderKey(transId), orderBean.getOid(), 1L, TimeUnit.DAYS);
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, LogThreadLocal.getTrackingNo()); com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, LogThreadLocal.getTrackingNo());
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) { if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
...@@ -148,6 +152,9 @@ public class OrderCommonService { ...@@ -148,6 +152,9 @@ public class OrderCommonService {
//给出支付失败提示 //给出支付失败提示
return null; return null;
} }
}else if(orderBean.getAmount() > 0 && StringUtils.isNotEmpty(cardCode)){
//svc卡支付
orderPayResponse = orderService.svcPay(cardCode, orderBean, paymentRequest, orderBean.getOid(), LogThreadLocal.getTrackingNo());
}else if(orderBean.getAmount() < 0){ }else if(orderBean.getAmount() < 0){
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR); throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
}else{ }else{
......
...@@ -69,7 +69,7 @@ public class SetMealPromotionService implements IPromotionService { ...@@ -69,7 +69,7 @@ public class SetMealPromotionService implements IPromotionService {
Long productGroupDiscountAmount = productBean.getComboProduct().stream().filter(t -> !t.getIsFixedProduct()).mapToLong(t -> t.getPrice() * t.getNumber() - t.getSettlementPrice()).sum(); Long productGroupDiscountAmount = productBean.getComboProduct().stream().filter(t -> !t.getIsFixedProduct()).mapToLong(t -> t.getPrice() * t.getNumber() - t.getSettlementPrice()).sum();
totalDiscountAmount += discountAmount - productGroupDiscountAmount; totalDiscountAmount += discountAmount - productGroupDiscountAmount;
// 设置套餐主商品 // 设置套餐主商品
ShoppingCartGoodsResponse.CartGoodsDetailDto cartGoodsDetailDto = PromotionAdapter.convertCartGoods2DetailGoods(productBean, discountAmount.intValue(), apportionGoodsList, duplicateGoodsMap,true); ShoppingCartGoodsResponse.CartGoodsDetailDto cartGoodsDetailDto = PromotionAdapter.convertCartGoods2DetailGoods(productBean, discountAmount.intValue(), apportionGoodsList, duplicateGoodsMap, isApportion);
cartGoodsDetailDto.getActivityDiscountsDtos().add(getActivityDiscountsDto(discountAmount.intValue() - productGroupDiscountAmount.intValue())); cartGoodsDetailDto.getActivityDiscountsDtos().add(getActivityDiscountsDto(discountAmount.intValue() - productGroupDiscountAmount.intValue()));
long apportionAmount = cartGoodsDetailDto.getTotalDiscountAmount() - discountAmount; long apportionAmount = cartGoodsDetailDto.getTotalDiscountAmount() - discountAmount;
Long comboFixedProductTotalDiscountAmount = discountAmount - productGroupDiscountAmount + apportionAmount; Long comboFixedProductTotalDiscountAmount = discountAmount - productGroupDiscountAmount + apportionAmount;
......
...@@ -32,4 +32,10 @@ public interface PromotionDiscountClient { ...@@ -32,4 +32,10 @@ public interface PromotionDiscountClient {
@PostMapping("/activity/query") @PostMapping("/activity/query")
ActivityQueryResponseDto query(ActivityQueryRequestDto activityQueryRequestDto); ActivityQueryResponseDto query(ActivityQueryRequestDto activityQueryRequestDto);
/**
* 优惠金额计算
*/
@PostMapping("/calculation/discount")
CalculationDiscountResponseDto calculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto);
} }
...@@ -406,6 +406,14 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService { ...@@ -406,6 +406,14 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
} }
private void buildActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, ShoppingCartGoodsMealResponseVo shoppingCartGoodsResponseVo) { private void buildActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, ShoppingCartGoodsMealResponseVo shoppingCartGoodsResponseVo) {
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, orderType);
// 封装满减优惠规则信息
FullPromotionService fullPromotionService = (FullPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.FULL_REDUCTION);
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVos =new ShoppingCartGoodsResponseVo();
fullPromotionService.updateShoppingCartGoodsDiscount(null, activityQueryDto, null, null, shoppingCartGoodsResponseVos, null, null);
shoppingCartGoodsResponseVo.setActivityTip(shoppingCartGoodsResponseVos.getActivityTip());
if(CollectionUtils.isEmpty(shoppingCartGoodsResponseVo.getCartList())) { if(CollectionUtils.isEmpty(shoppingCartGoodsResponseVo.getCartList())) {
return; return;
} }
...@@ -419,13 +427,6 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService { ...@@ -419,13 +427,6 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
} }
// 限时特价 // 限时特价
timeSalePromotionForWcService.updateShoppingCartGoodsDiscount(calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo); timeSalePromotionForWcService.updateShoppingCartGoodsDiscount(calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo);
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, orderType);
// 封装满减优惠规则信息
FullPromotionService fullPromotionService = (FullPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.FULL_REDUCTION);
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVos =new ShoppingCartGoodsResponseVo();
fullPromotionService.updateShoppingCartGoodsDiscount(null, activityQueryDto, null, cartGoodsList, shoppingCartGoodsResponseVos, null, null);
shoppingCartGoodsResponseVo.setActivityTip(shoppingCartGoodsResponseVos.getActivityTip());
} }
/** /**
......
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