Commit 21b26916 by ping.wu

礼品卡支付调整

parent ba22ef47
......@@ -4123,6 +4123,12 @@ public class OrderAdapter {
payPlatformVO.setAmount(0L);
platforms.add(payPlatformVO);
payPlatformVO = new PayPlatformVO();
payPlatformVO.setClientCode(PayChannelType.GIFTCARD.getEbcode());
payPlatformVO.setEbcode(PayChannelType.GIFTCARD.getEbcode());
payPlatformVO.setAmount(0L);
platforms.add(payPlatformVO);
String ebcode = PayChannelType.getByIndex(Byte.parseByte(channel)).getEbcode();
payPlatformVO = new PayPlatformVO();
payPlatformVO.setAmount(0L);
......
package cn.freemud.entities.dto.pay.svc;
import lombok.Data;
@Data
public class CardSimpleInfo {
private Integer amount;
private String applyId;
private String cardCode;
private String cardName;
private Integer vamount;
//储值卡类型:0一次性卡(礼品卡),3重复使用卡(储值卡),默认3"
private Integer applyType;
}
package cn.freemud.entities.dto.pay.svc;
import lombok.Data;
import java.util.List;
@Data
public class SVCCardAmountRequestDto {
private String partnerId;
private List<String> cardCodes;
}
package cn.freemud.entities.dto.pay.svc;
import lombok.Data;
import java.util.List;
@Data
public class SVCCardAmountResponseDto {
private List<CardSimpleInfo> cardSimpleInfos;
}
package cn.freemud.entities.dto.user;
import lombok.Data;
@Data
public class GetSvcInfoByMemberIdResponseVo {
// private String memberId;
private String cardCode;
private Integer statusFlag;
private String createTime;
}
......@@ -14,4 +14,7 @@ public class StatisticalScoreRequestVo {
// @ApiModelProperty("是否查询即将到期积分{0:否,1:是}")
private Integer status;
//卡类型(-1:查询全部 0:礼品卡,3:储值卡(默认))")
private Integer applyType;
}
......@@ -225,6 +225,8 @@ public class CreateOrderVo {
*/
private String cardCode;
private List<String> cardCodes;
/**
* 扫脸支付使用
*/
......
......@@ -2,6 +2,7 @@ package cn.freemud.entities.vo.encircle;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
......@@ -51,4 +52,6 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
* svc 卡支付使用
*/
private String cardCode;
private List<String> cardCodes;
}
......@@ -26,6 +26,9 @@ import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.*;
import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse;
import cn.freemud.entities.dto.user.GetSvcInfoByMemberIdResponseVo;
import cn.freemud.entities.dto.user.StatisticalScoreRequestVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.GetMemberCouponRequestVo;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
......@@ -36,10 +39,7 @@ import cn.freemud.service.CouponService;
import cn.freemud.service.adapter.OrderCheckAdapter;
import cn.freemud.service.order.OrderRelationFactory;
import cn.freemud.service.order.OrderRelationService;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.StoreBaseApiClient;
import cn.freemud.service.thirdparty.StoreClient;
import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.AppLogUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -108,8 +108,11 @@ public class CheckOrder {
@Autowired
private MemberCenterService memberCenterService;
//会员SDK
// @Autowired
// private MemberPropertyService memberPropertyService;
@Autowired
private MemberPropertyService memberPropertyService;
private CustomerPropertyClient customerPropertyClient;
@Autowired
private ShoppingCartClient shoppingCartClient;
// @Autowired
......@@ -151,8 +154,15 @@ public class CheckOrder {
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
Set<String> cardCodes = new HashSet<>();
if(StringUtils.isNotEmpty(createOrderVo.getCardCode())){
cardCodes.add(createOrderVo.getCardCode());
}
if(CollectionUtils.isNotEmpty(createOrderVo.getCardCodes())){
cardCodes.addAll(createOrderVo.getCardCodes());
}
//校验会员svc卡信息
checkCardCode(createOrderVo.getPartnerId(), userLoginInfoDto.getMemberId(), createOrderVo.getCardCode());
checkCardCode(createOrderVo.getPartnerId(), userLoginInfoDto.getMemberId(), cardCodes);
createOrderVo.setUserId(userLoginInfoDto.getMemberId());
return userLoginInfoDto;
......@@ -166,7 +176,7 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//校验会员svc卡信息
checkCardCode(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), cardCode);
// checkCardCode(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), cardCode);
return userLoginInfoDto;
}
......@@ -1060,23 +1070,30 @@ public class CheckOrder {
}
public void checkCardCode(String partnerId, String memberId, String cardCode) {
if (StringUtils.isBlank(cardCode)) {
/**
* 校验卡是否是该会员的
*/
public void checkCardCode(String partnerId, String memberId, Set<String> cardCodes) {
if (CollectionUtils.isEmpty(cardCodes)) {
return;
}
StatisticalPropertyRequest request = new StatisticalPropertyRequest();
StatisticalScoreRequestVo request = new StatisticalScoreRequestVo();
request.setPartnerId(partnerId);
request.setMemberId(memberId);
BaseResponse<List<GetSvcInfoByMemberIdResponse>> responseDTO = memberPropertyService.getSvcInfoByMemberId(request, LogThreadLocal.getTrackingNo());
request.setApplyType(-1);
CustomerPropertyBaseResponse<List<GetSvcInfoByMemberIdResponseVo>> responseDTO = customerPropertyClient.getMemberCards(request);
if (!ResponseResult.SUCCESS.getCode().equals(responseDTO.getCode()) || responseDTO.getData() == null
|| responseDTO.getData().size() == 0) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
}
//svc卡无效
boolean b = true;
for (GetSvcInfoByMemberIdResponse getSvcInfoByMemberIdResponse : responseDTO.getData()) {
if (cardCode.equals(getSvcInfoByMemberIdResponse.getCardCode()) && getSvcInfoByMemberIdResponse.getStatusFlag() == 0) {
b = false;
for (GetSvcInfoByMemberIdResponseVo getSvcInfoByMemberIdResponse : responseDTO.getData()) {
for (String cardCode : cardCodes){
if (cardCode.equals(getSvcInfoByMemberIdResponse.getCardCode()) && getSvcInfoByMemberIdResponse.getStatusFlag() == 0) {
b = false;
break;
}
}
}
if (b) {
......
......@@ -6,6 +6,8 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.UpdateReserveOrderResponseVo;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto;
import cn.freemud.entities.dto.promotion.CouponPromotionDto;
import cn.freemud.entities.dto.promotion.OrderBeanRequest;
import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse;
......@@ -24,6 +26,7 @@ import cn.freemud.service.EncircleOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.StoreItemClient;
import cn.freemud.service.thirdparty.SvcAppClient;
import cn.freemud.utils.AmountUtils;
import cn.freemud.utils.AppLogUtil;
import cn.freemud.utils.ResponseUtil;
......@@ -103,6 +106,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
@Autowired
private PaymentNewService paymentNewService;
@Autowired
private SvcAppClient svcAppClient;
@Autowired
private OrderCommonService orderCommonService;
@Autowired
private ShoppingCartClient shoppingCartClient;
......@@ -464,25 +469,26 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
}
Integer orderAmount = previewOrderInfoVo.getAmount().intValue();
String trackingNo = LogThreadLocal.getTrackingNo();
SVCCardAmountRequest request = new SVCCardAmountRequest();
SVCCardAmountRequestDto request = new SVCCardAmountRequestDto();
request.setPartnerId(partnerId);
request.setCardCodes(Arrays.asList(cardCode));
//查询svc卡金额
com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> response = paymentNewService.querySVCCardAmount(request, trackingNo);
BaseResponse<SVCCardAmountResponseDto> response = svcAppClient.batchQueryCardAmount(request);
if (response == null) {
throw new ServiceException(ResponseResult.SYSTEM_BUSINESS_ERROR);
}
if (response.getData() == null || response.getData().getData() == null || response.getData().getData().getCardSimpleInfos().size() > 1) {
if (response.getResult() == null || CollectionUtils.isEmpty(response.getResult().getCardSimpleInfos())) {
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();
Integer amount1 = response.getResult().getCardSimpleInfos().get(0).getAmount();
Integer vamount = response.getResult().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);
// TODO: 21-8-30 围餐礼品卡暂不支持
previewOrderInfoVo.setSvcDiscountDesc("储值卡支付¥" + amountStr);
}
......@@ -497,8 +503,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
if(StringUtils.isBlank(orderId)){
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
}
Set<String> cardCodes = new HashSet<>();
if(StringUtils.isNotBlank(createReserveOrderVo.getCardCode())){
cardCodes.add(createReserveOrderVo.getCardCode());
}
// 校验svc卡
checkOrder.checkCardCode(assortmentCustomerInfoVo.getPartnerId(),assortmentCustomerInfoVo.getMemberId(), createReserveOrderVo.getCardCode());
checkOrder.checkCardCode(assortmentCustomerInfoVo.getPartnerId(),assortmentCustomerInfoVo.getMemberId(), cardCodes);
CreateOrderResponseVo orderResponseVo = null;
//拉取订单详细信息
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
......
......@@ -703,48 +703,48 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
}
public OrderPayResponse svcPay(String cardCode, QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String transId, String trackingNo) {
CodePayRequest request = new CodePayRequest();
String partnerId = orderBean.getCompanyId();
request.setBody(orderBean.getShopName());
request.setBusinessDate(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
request.setCode(cardCode);
request.setPartnerId(partnerId);
request.setStoreId(orderBean.getShopId());
request.setAmount(orderBean.getAmount());
request.setTransId(transId);
request.setStationId("1");
request.setOperatorId("1");
request.setVer("2");
SVCCardAmountRequest svcRequest = new SVCCardAmountRequest();
svcRequest.setPartnerId(partnerId);
svcRequest.setCardCodes(Arrays.asList(cardCode));
//查询svc卡余额
com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> svcCardAmountResponseBaseResponse = paymentNewService.querySVCCardAmount(svcRequest, trackingNo);
if (svcCardAmountResponseBaseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(svcCardAmountResponseBaseResponse.getCode())
|| svcCardAmountResponseBaseResponse.getData().getData() == null || CollectionUtils.isEmpty(svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos())) {
return null;
}
Integer amount = svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos().get(0).getAmount();
Integer vamount = svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos().get(0).getVamount();
if (amount + vamount < orderBean.getAmount()) {
return null;
}
//svc卡支付
com.freemud.application.sdk.api.base.BaseResponse<CodePayResponse> responseBase = paymentNewService.codePay(request, trackingNo);
if (responseBase == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode()) || responseBase.getData().getData() == null) {
return null;
}
OrderPayResponse orderPayResponse = new OrderPayResponse();
CodePayResponse.CodePayDate codePayResponse = responseBase.getData().getData();
orderPayResponse.setFmId(codePayResponse.getFmId());
orderPayResponse.setPayTransId(codePayResponse.getPayTransId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
return orderPayResponse;
}
// public OrderPayResponse svcPay(String cardCode, QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String transId, String trackingNo) {
// CodePayRequest request = new CodePayRequest();
// String partnerId = orderBean.getCompanyId();
// request.setBody(orderBean.getShopName());
// request.setBusinessDate(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
// request.setCode(cardCode);
// request.setPartnerId(partnerId);
// request.setStoreId(orderBean.getShopId());
// request.setAmount(orderBean.getAmount());
// request.setTransId(transId);
// request.setStationId("1");
// request.setOperatorId("1");
// request.setVer("2");
// SVCCardAmountRequest svcRequest = new SVCCardAmountRequest();
// svcRequest.setPartnerId(partnerId);
// svcRequest.setCardCodes(Arrays.asList(cardCode));
// //查询svc卡余额
// com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> svcCardAmountResponseBaseResponse = paymentNewService.querySVCCardAmount(svcRequest, trackingNo);
// if (svcCardAmountResponseBaseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(svcCardAmountResponseBaseResponse.getCode())
// || svcCardAmountResponseBaseResponse.getData().getData() == null || CollectionUtils.isEmpty(svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos())) {
// return null;
// }
// Integer amount = svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos().get(0).getAmount();
// Integer vamount = svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos().get(0).getVamount();
// if (amount + vamount < orderBean.getAmount()) {
// return null;
// }
// //svc卡支付
// com.freemud.application.sdk.api.base.BaseResponse<CodePayResponse> responseBase = paymentNewService.codePay(request, trackingNo);
// if (responseBase == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode()) || responseBase.getData().getData() == null) {
// return null;
// }
// OrderPayResponse orderPayResponse = new OrderPayResponse();
// CodePayResponse.CodePayDate codePayResponse = responseBase.getData().getData();
// orderPayResponse.setFmId(codePayResponse.getFmId());
// orderPayResponse.setPayTransId(codePayResponse.getPayTransId());
// orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
// orderPayResponse.setOpenId(paymentRequest.getOpenId());
// orderPayResponse.setPartnerId(orderBean.getCompanyId());
// orderPayResponse.setOrderId(orderBean.getOid());
// return orderPayResponse;
// }
private PaymentRequest orderBodyConvertToPaymentBody(String openId, String partnerId, String appId, String payCode) {
//设置支付信息
......
......@@ -7,6 +7,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@FeignClient(name = "customer-property-service", url = "${customer.property.service.url:}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CustomerPropertyClient {
......@@ -21,4 +23,9 @@ public interface CustomerPropertyClient {
@PostMapping({"/propertyservice/score/statisticalScore"})
CustomerPropertyBaseResponse<StatislScoreResponse> statisticalScore(StatisticalScoreRequestVo request);
//查询用户储值卡或会员卡
@LogIgnoreFeign(logMessage="getMemberCards")
@PostMapping({"/propertyservice/card/getMemberCards"})
CustomerPropertyBaseResponse<List<GetSvcInfoByMemberIdResponseVo>> getMemberCards(StatisticalScoreRequestVo request);
}
package cn.freemud.service.thirdparty;
import cn.freemud.annotations.LogIgnoreFeign;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name="fm-svc-app", url = "${saas.svc.app.feign.url:}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface SvcAppClient {
//批量查询卡余额
@PostMapping(value = "/svc/card/batch-query-card-amount")
@LogIgnoreFeign(logMessage = "batchQueryCardAmount")
BaseResponse<SVCCardAmountResponseDto> batchQueryCardAmount(SVCCardAmountRequestDto svcComPayRequestDto);
}
......@@ -13,7 +13,9 @@ public enum PayChannelType {
COMB((byte)4,"10212","混合支付","comb"),
USVCP((byte)5,"10556", "电子风味卡支付","usvcp"),
ZERO((byte)6,"100000", "0元支付","zero"),
TIKTOKPAY((byte)7,"10066", "抖音支付","tiktokpay");
TIKTOKPAY((byte)7,"10066", "抖音支付","tiktokpay"),
GIFTCARD((byte)8,"10199","礼品卡","giftCard"),
;
private Byte index;
private String ebcode;
......@@ -36,6 +38,6 @@ public enum PayChannelType {
return payType;
}
}
return null;
return WECHAT;
}
}
package cn.freemud.entities.dto.pay;
import lombok.Data;
@Data
public class CardSimpleInfo {
private Integer amount;
private String applyId;
private String cardCode;
private String cardName;
private Integer vamount;
//储值卡类型:0一次性卡(礼品卡),3重复使用卡(储值卡),默认3"
private Integer applyType;
}
package cn.freemud.entities.dto.pay;
import lombok.Data;
import java.util.List;
@Data
public class SVCCardAmountRequest {
private String partnerId;
private List<String> cardCodes;
}
package cn.freemud.entities.dto.pay;
import lombok.Data;
import java.util.List;
@Data
public class SVCCardAmountResponse {
private List<CardSimpleInfo> cardSimpleInfos;
}
......@@ -4,13 +4,14 @@ import cn.freemud.adapter.ActivityAdapter;
import cn.freemud.adapter.CouponAdapter;
import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ApplicationConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.pay.SVCCardAmountRequest;
import cn.freemud.entities.dto.pay.SVCCardAmountResponse;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityChannelEnum;
......@@ -21,6 +22,7 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.*;
import cn.freemud.service.thirdparty.ActivityClient;
import cn.freemud.service.thirdparty.SvcAppClient;
import cn.freemud.service.thirdparty.SvcComPayClient;
import cn.freemud.utils.PropertyConvertUtil;
import cn.freemud.utils.RedisLock;
......@@ -29,9 +31,6 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest;
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.productcenter.domain.ProductBeanDTO;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.domain.CollageMemberState;
......@@ -106,7 +105,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
private CollageOrderBaseServiceImpl collageOrderBaseService;
@Autowired
private PaymentNewService paymentNewService;
private SvcAppClient svcAppClient;
@Autowired
private SvcComPayClient svcComPayClient;
......@@ -1334,28 +1333,30 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
request.setPartnerId(partnerId);
request.setCardCodes(Arrays.asList(cardCode));
//查询svc卡金额
com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> response = paymentNewService.querySVCCardAmount(request, trackingNo);
BaseResponse<SVCCardAmountResponse> response = svcAppClient.batchQueryCardAmount(request);
if (response == null) {
throw new ServiceException(ResponseResult.SYSTEM_BUSINESS_ERROR);
}
if (response.getData() == null || response.getData().getData() == null || response.getData().getData().getCardSimpleInfos().size() > 1) {
if (response.getResult() == null || CollectionUtils.isEmpty(response.getResult().getCardSimpleInfos())) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
}
//获取实际配送费
if (StringUtils.isNotBlank(receiveId) && shoppingCartGoodsResponseVo.getDiscountDeliveryAmount() != null) {
// Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
Integer deliveryAmount = shoppingCartGoodsResponseVo.getDiscountDeliveryAmount().intValue();
orderAmount += deliveryAmount;
}
Integer amount1 = response.getData().getData().getCardSimpleInfos().get(0).getAmount();
Integer vamount = response.getData().getData().getCardSimpleInfos().get(0).getVamount();
Integer amount1 = response.getResult().getCardSimpleInfos().get(0).getAmount();
Integer vamount = response.getResult().getCardSimpleInfos().get(0).getVamount();
Integer applyType = response.getResult().getCardSimpleInfos().get(0).getApplyType();
applyType = applyType == null ? 3 : 0;
String svcDesc = applyType == 3 ? "储值卡支付¥" : "礼品卡支付¥";
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();
shoppingCartGoodsResponseVo.setTotalAmount(0L);
shoppingCartGoodsResponseVo.setSvcDiscountDesc("储值卡支付¥" + amountStr);
shoppingCartGoodsResponseVo.setSvcDiscountDesc(svcDesc + amountStr);
}
/**
......
package cn.freemud.service.thirdparty;
import cn.freemud.annotations.IgnoreFeignLogAnnotation;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ResponseCodeKeyConstant;
import cn.freemud.entities.dto.pay.SVCCardAmountRequest;
import cn.freemud.entities.dto.pay.SVCCardAmountResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name="fm-svc-app", url = "${saas.svc.app.feign.url:}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface SvcAppClient {
//批量查询卡余额
@PostMapping(value = "/svc/card/batch-query-card-amount")
@IgnoreFeignLogAnnotation(logMessage = "batchQueryCardAmount",excludeStatusCodes = {ResponseCodeConstant.RESPONSE_SUCCESS_STR},statusCodeFieldName= ResponseCodeKeyConstant.STATUS_CODE,messageFieldName=ResponseCodeKeyConstant.MSG)
BaseResponse<SVCCardAmountResponse> batchQueryCardAmount(SVCCardAmountRequest svcComPayRequestDto);
}
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