Commit d460fb2a by ping.wu

Merge branches 'develop' and 'feature/20220105_无单收银支持储值卡_wuping' of…

Merge branches 'develop' and 'feature/20220105_无单收银支持储值卡_wuping' of http://gitlab.freemud.com/order-group-application/order-group into develop
parents 8b486afb ec7f7737
...@@ -923,6 +923,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -923,6 +923,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setOperator(baseQueryOrderRequest.getOperator()); request.setOperator(baseQueryOrderRequest.getOperator());
request.setDispatchType(baseQueryOrderRequest.getDispatchType()); request.setDispatchType(baseQueryOrderRequest.getDispatchType());
request.setDispatchTimeout(baseQueryOrderRequest.getDispatchTimeout()); request.setDispatchTimeout(baseQueryOrderRequest.getDispatchTimeout());
request.setPartnerId(baseQueryOrderRequest.getPartnerId());
// 引入门店基础服务 查询自动制作完成配置时间 // 引入门店基础服务 查询自动制作完成配置时间
setTimeout(baseQueryOrderRequest,request); setTimeout(baseQueryOrderRequest,request);
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp response = orderSdkService.acceptOrder(request, baseQueryOrderRequest.getTrackingNo()); com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp response = orderSdkService.acceptOrder(request, baseQueryOrderRequest.getTrackingNo());
...@@ -934,6 +935,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -934,6 +935,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
POSOrderOperationBaseReq request = new POSOrderOperationBaseReq(); POSOrderOperationBaseReq request = new POSOrderOperationBaseReq();
request.setOrderCode(baseQueryOrderRequest.getOrderId()); request.setOrderCode(baseQueryOrderRequest.getOrderId());
request.setOperator(baseQueryOrderRequest.getOperator()); request.setOperator(baseQueryOrderRequest.getOperator());
request.setPartnerId(baseQueryOrderRequest.getPartnerId());
// 引入门店基础服务 查询自动制作完成配置时间 // 引入门店基础服务 查询自动制作完成配置时间
setTimeout(baseQueryOrderRequest,request); setTimeout(baseQueryOrderRequest,request);
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp response = orderSdkService.acceptOrderMCCafe(request, baseQueryOrderRequest.getTrackingNo()); com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp response = orderSdkService.acceptOrderMCCafe(request, baseQueryOrderRequest.getTrackingNo());
...@@ -1025,6 +1027,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1025,6 +1027,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
POSOrderOperationBaseReq request = new POSOrderOperationBaseReq(); POSOrderOperationBaseReq request = new POSOrderOperationBaseReq();
request.setOrderCode(baseQueryOrderRequest.getOrderId()); request.setOrderCode(baseQueryOrderRequest.getOrderId());
request.setOperator(baseQueryOrderRequest.getOperator()); request.setOperator(baseQueryOrderRequest.getOperator());
request.setPartnerId(baseQueryOrderRequest.getPartnerId());
Boolean isTakeOut = false; Boolean isTakeOut = false;
Integer timeOut = 0; Integer timeOut = 0;
Integer takeOutTimeOut = (null==baseQueryOrderRequest.getTimeout() || baseQueryOrderRequest.getTimeout()==0) ? 180 : baseQueryOrderRequest.getTimeout(); Integer takeOutTimeOut = (null==baseQueryOrderRequest.getTimeout() || baseQueryOrderRequest.getTimeout()==0) ? 180 : baseQueryOrderRequest.getTimeout();
...@@ -1069,6 +1072,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1069,6 +1072,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setOrderCode(baseQueryOrderRequest.getOrderId()); request.setOrderCode(baseQueryOrderRequest.getOrderId());
request.setOrderState(NewOrderStatus.COMPLETE.getIndex()); request.setOrderState(NewOrderStatus.COMPLETE.getIndex());
request.setOperator(baseQueryOrderRequest.getOperator()); request.setOperator(baseQueryOrderRequest.getOperator());
request.setPartnerId(baseQueryOrderRequest.getPartnerId());
request.setRemark("已完成"); request.setRemark("已完成");
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp response = orderSdkService.updateOrderState(request, baseQueryOrderRequest.getTrackingNo()); com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp response = orderSdkService.updateOrderState(request, baseQueryOrderRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response); return orderSdkAdapter.convent2BaseOrderResponse(response);
...@@ -1146,6 +1150,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1146,6 +1150,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
POSOrderOperationBaseReq request = new POSOrderOperationBaseReq(); POSOrderOperationBaseReq request = new POSOrderOperationBaseReq();
request.setOrderCode(baseQueryOrderRequest.getOrderId()); request.setOrderCode(baseQueryOrderRequest.getOrderId());
request.setOperator(baseQueryOrderRequest.getOperator()); request.setOperator(baseQueryOrderRequest.getOperator());
request.setPartnerId(baseQueryOrderRequest.getPartnerId());
// 调用门店服务查询自动完成配置信息 // 调用门店服务查询自动完成配置信息
StoreResponse.Configuration configuration = getStoreAutoConfiguration(baseQueryOrderRequest.getPartnerId(), baseQueryOrderRequest.getShopId(), baseQueryOrderRequest.getTrackingNo()); StoreResponse.Configuration configuration = getStoreAutoConfiguration(baseQueryOrderRequest.getPartnerId(), baseQueryOrderRequest.getShopId(), baseQueryOrderRequest.getTrackingNo());
if (configuration != null) { if (configuration != null) {
......
...@@ -536,5 +536,16 @@ public class OrderController { ...@@ -536,5 +536,16 @@ public class OrderController {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 无单收银使用储值卡混合支付校验余额
*/
@ApiAnnotation(logMessage = "cashierCheck")
@PostMapping("/cashierCheck")
public BaseResponse<CashierCheckResponseVo> cashierCheck(@Validated @LogParams @RequestBody CashierCheckVo request) {
CreateCashierOrderDto dto = new CreateCashierOrderDto();
BeanUtils.copyProperties(request, dto);
return ResponseUtil.success(orderAdapterService.cashierCheck(dto));
}
} }
package cn.freemud.entities.bo;
import lombok.Data;
@Data
public class CheckSvcAmountBo {
/**
* 商户号
*/
private String partnerId;
/**
* 门店号
*/
private String storeCode;
/**
* 订单金额(单位:分)
*/
private Long orderAmount;
/**
* 储值卡卡号
*/
private String cardCode;
}
package cn.freemud.entities.bo;
import lombok.Data;
@Data
public class CheckSvcAmountResponse {
/**
* 储值卡支付金额(分)
*/
private Long svcPayAmount;
/**
* 微信或支付宝 支付金额(分)
*/
private Long payAmount;
/**
* 错误提示
*/
private String msg;
}
...@@ -31,6 +31,11 @@ public class CreateCashierOrderDto { ...@@ -31,6 +31,11 @@ public class CreateCashierOrderDto {
private Long orderAmount; private Long orderAmount;
/** /**
* 储值卡卡号
*/
private String cardCode;
/**
* 小程序版本号 * 小程序版本号
*/ */
private String version; private String version;
......
package cn.freemud.entities.vo.order;
import lombok.Data;
@Data
public class CashierCheckResponseVo {
/**
* 储值卡支付金额(分)
*/
private Long svcPayAmount;
/**
* 微信或支付宝 支付金额(分)
*/
private Long payAmount;
/**
* 错误提示
*/
private String msg;
}
package cn.freemud.entities.vo.order;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data
public class CashierCheckVo {
/**
* 用户登陆的session
*/
@ApiModelProperty("用户登陆的session")
@NotEmpty(message = "请先授权登陆")
private String sessionId;
/**
* 商户号
*/
@ApiModelProperty("商户号")
@NotEmpty(message = "商户号必填")
private String partnerId;
/**
* 门店号
*/
@ApiModelProperty("门店号")
@NotEmpty(message = "门店号必填")
private String storeCode;
/**
* 订单金额(单位:分)
*/
@ApiModelProperty("订单金额(单位:分)")
@NotNull(message = "请输入订单金额")
@Min(value = 1, message = "请输入有效的订单金额哟")
private Long orderAmount;
/**
* 储值卡卡号
*/
@ApiModelProperty("储值卡卡号")
private String cardCode;
/**
* 小程序版本号
*/
@ApiModelProperty("小程序版本号")
private String version;
}
...@@ -45,6 +45,12 @@ public class CreateCashierOrderVo { ...@@ -45,6 +45,12 @@ public class CreateCashierOrderVo {
private Long orderAmount; private Long orderAmount;
/** /**
* 储值卡卡号
*/
@ApiModelProperty("储值卡卡号")
private String cardCode;
/**
* 小程序版本号 * 小程序版本号
*/ */
@ApiModelProperty("小程序版本号") @ApiModelProperty("小程序版本号")
......
...@@ -4,6 +4,7 @@ import cn.freemud.entities.dto.ConfirmOrderDto; ...@@ -4,6 +4,7 @@ import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.order.CreateCashierOrderDto; import cn.freemud.entities.dto.order.CreateCashierOrderDto;
import cn.freemud.entities.vo.CreateOrderResponseVo; import cn.freemud.entities.vo.CreateOrderResponseVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage; import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.order.CashierCheckResponseVo;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
...@@ -35,4 +36,12 @@ public interface CashierOrderService { ...@@ -35,4 +36,12 @@ public interface CashierOrderService {
* @return 处理结果json字符串 * @return 处理结果json字符串
*/ */
String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, OrderBeanV1> orderBeans); String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, OrderBeanV1> orderBeans);
/**
* 无单收银使用储值卡校验余额
* @param createOrderDto 同创建无单收银订单请求数据
* @param member 会员信息
* @return 储值卡支付金额和现金支付金额
*/
CashierCheckResponseVo cashierCheck(CreateCashierOrderDto createOrderDto, AssortmentCustomerInfoVo member);
} }
...@@ -3,6 +3,8 @@ package cn.freemud.service.impl; ...@@ -3,6 +3,8 @@ package cn.freemud.service.impl;
import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter; import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.bo.CheckSvcAmountBo;
import cn.freemud.entities.bo.CheckSvcAmountResponse;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.StoreResponseDto; import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.order.CreateCashierOrderDto; import cn.freemud.entities.dto.order.CreateCashierOrderDto;
...@@ -10,6 +12,7 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto; ...@@ -10,6 +12,7 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto; import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderResponseVo; import cn.freemud.entities.vo.CreateOrderResponseVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage; import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.order.CashierCheckResponseVo;
import cn.freemud.enums.OrderBeanType; import cn.freemud.enums.OrderBeanType;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.UserLoginChannelEnum; import cn.freemud.enums.UserLoginChannelEnum;
...@@ -31,10 +34,10 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq ...@@ -31,10 +34,10 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp; import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest; import com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -91,6 +94,7 @@ public class CashierOrderServiceImpl implements CashierOrderService { ...@@ -91,6 +94,7 @@ public class CashierOrderServiceImpl implements CashierOrderService {
createPrepayRequestDto.setOpenId(member.getOpenId()); createPrepayRequestDto.setOpenId(member.getOpenId());
createPrepayRequestDto.setTotalAmount(createOrderDto.getOrderAmount()); createPrepayRequestDto.setTotalAmount(createOrderDto.getOrderAmount());
createPrepayRequestDto.setChannel(Objects.requireNonNull(PayChannelType.getByIndex(request.getPayChannelType())).getEbcode()); createPrepayRequestDto.setChannel(Objects.requireNonNull(PayChannelType.getByIndex(request.getPayChannelType())).getEbcode());
createPrepayRequestDto.setCardCode(createOrderDto.getCardCode());
OrderBeanV1 orderBeanV1 = orderCenterSdkAdapter.convent2NEWOrderInfo(response.getResult()); OrderBeanV1 orderBeanV1 = orderCenterSdkAdapter.convent2NEWOrderInfo(response.getResult());
createPrepayRequestDto.setProductOrderBean(orderBeanV1); createPrepayRequestDto.setProductOrderBean(orderBeanV1);
createPrepayRequestDto.setFatherOrderBean(orderBeanV1); createPrepayRequestDto.setFatherOrderBean(orderBeanV1);
...@@ -190,4 +194,18 @@ public class CashierOrderServiceImpl implements CashierOrderService { ...@@ -190,4 +194,18 @@ public class CashierOrderServiceImpl implements CashierOrderService {
map.put("message", "success"); map.put("message", "success");
return JSONObject.toJSONString(map); return JSONObject.toJSONString(map);
} }
/**
* 无单收银使用储值卡混合支付
*/
@Override
public CashierCheckResponseVo cashierCheck(CreateCashierOrderDto createOrderDto, AssortmentCustomerInfoVo member) {
CheckSvcAmountBo bo = new CheckSvcAmountBo();
BeanUtils.copyProperties(createOrderDto, bo);
CheckSvcAmountResponse checkSvcAmountResponse = payService.checkSvcAmount(bo);
CashierCheckResponseVo responseVo = new CashierCheckResponseVo();
BeanUtils.copyProperties(checkSvcAmountResponse, responseVo);
return responseVo;
}
} }
...@@ -58,12 +58,10 @@ import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressR ...@@ -58,12 +58,10 @@ import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressR
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse; import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService; import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum; import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum; import com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
...@@ -594,6 +592,9 @@ public class CheckOrder { ...@@ -594,6 +592,9 @@ public class CheckOrder {
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内 * @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/ */
private void checkTakeOutTime(StoreResponseDto storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) { private void checkTakeOutTime(StoreResponseDto storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) {
//todo 这里紧急先处理太古坊宴会甜品定制2807商户无法下隔日预约单问题,先不校验能下单,后续修复后再去除
if ("2807".equals(storeResponseDto.getPartnerId())) return;
String deliveryStr = storeResponseDto.getDeliveryHoursDay().replace("-", ",") String deliveryStr = storeResponseDto.getDeliveryHoursDay().replace("-", ",")
.replace("_", ","); .replace("_", ",");
String[] deliverys = deliveryStr.split(","); String[] deliverys = deliveryStr.split(",");
......
...@@ -8,6 +8,7 @@ import cn.freemud.entities.bo.CreateOrderBONew; ...@@ -8,6 +8,7 @@ import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.order.CreateCashierOrderDto; import cn.freemud.entities.dto.order.CreateCashierOrderDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.order.CashierCheckResponseVo;
import cn.freemud.entities.vo.order.PaymentConfigVo; import cn.freemud.entities.vo.order.PaymentConfigVo;
import cn.freemud.entities.vo.order.PlugInParameter; import cn.freemud.entities.vo.order.PlugInParameter;
import cn.freemud.enums.*; import cn.freemud.enums.*;
...@@ -393,4 +394,16 @@ public class OrderAdapterServiceImpl { ...@@ -393,4 +394,16 @@ public class OrderAdapterServiceImpl {
} }
/**
* 无单收银使用储值卡混合支付
*/
public CashierCheckResponseVo cashierCheck(CreateCashierOrderDto createOrderDto) {
AssortmentCustomerInfoVo member = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderDto.getSessionId());
if (member == null || StringUtils.isEmpty(member.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//校验储值卡余额
return cashierOrderService.cashierCheck(createOrderDto, member);
}
} }
...@@ -6,6 +6,8 @@ import cn.freemud.base.log.ErrorLog; ...@@ -6,6 +6,8 @@ import cn.freemud.base.log.ErrorLog;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.RedisKeyConstant; import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.bo.CheckSvcAmountBo;
import cn.freemud.entities.bo.CheckSvcAmountResponse;
import cn.freemud.entities.dto.SvcComPayRequestDto; import cn.freemud.entities.dto.SvcComPayRequestDto;
import cn.freemud.entities.dto.SvcComPayResponseDto; import cn.freemud.entities.dto.SvcComPayResponseDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto; import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
...@@ -1341,10 +1343,6 @@ public class PayServiceImpl { ...@@ -1341,10 +1343,6 @@ public class PayServiceImpl {
if (!Objects.equals(checkParam.getCode(), "100")) { if (!Objects.equals(checkParam.getCode(), "100")) {
return checkParam; return checkParam;
} else { } else {
// String receiveJsonStr = this.setPayValueFromSDKByManager(refundRequest.getPartnerId(), refundRequest.getStoreId(), refundRequest.getRefundAmount() + vipAmount, vipAmount, wxAppStore.getIndirectId(), false);
// if (!StringUtils.isEmpty(receiveJsonStr)) {
// request.setAccountDivided(receiveJsonStr);
// }
com.freemud.application.sdk.api.base.BaseResponse<PayRefundData> refundNewResponse = null; com.freemud.application.sdk.api.base.BaseResponse<PayRefundData> refundNewResponse = null;
try { try {
refundNewResponse = omsPaymentClient.payRefund(request); refundNewResponse = omsPaymentClient.payRefund(request);
...@@ -1393,15 +1391,6 @@ public class PayServiceImpl { ...@@ -1393,15 +1391,6 @@ public class PayServiceImpl {
} }
} }
// private String setPayValueFromSDKByManager(String partnerId, String storeId, Long totalAmount, Long vipAmount, Long indirectId, boolean isPay) {
// if (indirectId == null) {
// return null;
// } else {
// AssortmentOpenPlatformPartnerMerchant openPlatformPartnerMerchant = openPlatformPartnerMerchantManager.selectMerchantDetail(indirectId);
// List<ReceiverBiz> dtoReceivers = this.calcReceiverNew(openPlatformPartnerMerchant, partnerId, storeId, totalAmount, vipAmount, isPay);
// return this.convertOrderPayRequestToReceivers(dtoReceivers);
// }
// }
public com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> checkParam(String partnerId, String storeId, Long amount, AssortmentOpenPlatformIappWxappStore wxAppStore) { public com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> checkParam(String partnerId, String storeId, Long amount, AssortmentOpenPlatformIappWxappStore wxAppStore) {
if (StringUtils.isBlank(partnerId)) { if (StringUtils.isBlank(partnerId)) {
...@@ -1415,97 +1404,55 @@ public class PayServiceImpl { ...@@ -1415,97 +1404,55 @@ public class PayServiceImpl {
} }
} }
/** /**
* 新获取分账信息逻辑 * 校验五单收银 储值卡余额,返回储值支付金额与现金支付金额
*
* @param openPlatformPartnerMerchant 收单方
* @param partnerId
* @param storeId
* @param totalAmount
* @return
*/ */
// public List<ReceiverBiz> calcReceiverNew(AssortmentOpenPlatformPartnerMerchant openPlatformPartnerMerchant, String partnerId, String storeId, Long totalAmount, Long vipAmount, boolean isPay) { public CheckSvcAmountResponse checkSvcAmount(CheckSvcAmountBo checkSvcAmountBo) {
// String platform = openPlatformPartnerMerchant != null ? openPlatformPartnerMerchant.getPlatform() : "";
// if (!PlatformType.YI_BAO_PAYMENT.getCode().equals(platform) && !PlatformType.YF_PAYMENT.getCode().equals(platform)) {
// return null;
// }
// AssortmentOpenPlatformPartnerMerchantAccountManager openPlatformPartnerMerchantAccountManager = ApplicationBeanManager.getBean(AssortmentOpenPlatformPartnerMerchantAccountManager.class);
// Long orderAmount;
// List<ReceiverBiz> result = Lists.newArrayList();
// List<AssortmentOpenPlatformPartnerMerchantAccount> openPlatformPartnerMerchantAccounts;
// if (vipAmount == null || vipAmount == 0L) {
// // 不走会员分账
// openPlatformPartnerMerchantAccounts = openPlatformPartnerMerchantAccountManager.selectByRuleId(partnerId, storeId, PayRuleIdEnum.DEFAULT.getCode());
// orderAmount = totalAmount;
// } else {
// // 走会员分账
// openPlatformPartnerMerchantAccounts = vipSubAccount(partnerId, storeId, vipAmount, platform, openPlatformPartnerMerchantAccountManager, result, isPay);
// orderAmount = totalAmount - vipAmount;
// }
// ReceiverService receiverService = ApplicationBeanManager.getBean(platform, ReceiverService.class);
// if (receiverService == null) {
// return null;
// }
// List<ReceiverBiz> list = receiverService.getReceivers(openPlatformPartnerMerchant, openPlatformPartnerMerchantAccounts, orderAmount, isPay);
// result.addAll(list);
// return result;
// }
/** CheckSvcAmountResponse checkSvcAmountResponse = new CheckSvcAmountResponse();
* 易宝会员分账计算
*
* @param partnerId
* @param storeId
* @param vipAmount
* @param platform
* @param openPlatformPartnerMerchantAccountManager
* @param result
* @return
*/
// private List<AssortmentOpenPlatformPartnerMerchantAccount> vipSubAccount(String partnerId, String storeId, Long vipAmount, String platform, AssortmentOpenPlatformPartnerMerchantAccountManager openPlatformPartnerMerchantAccountManager
// , List<ReceiverBiz> result, boolean isPay) {
// // 退款不需要计算会员分账
// if (!PlatformType.YI_BAO_PAYMENT.getCode().equals(platform)) {
// return Collections.emptyList();
// }
// // 查询固定金额得分账记录
// List<AssortmentOpenPlatformPartnerMerchantAccount> openPlatformPartnerMerchantAccounts = null;
// List<AssortmentOpenPlatformPartnerMerchantAccount> payRates = openPlatformPartnerMerchantAccountManager.selectPayRate(partnerId, storeId, vipAmount + "", PayRuleTypeEnum.FIXED_AMOUNT.getCode());
// if (CollectionUtils.isNotEmpty(payRates)) {
// AssortmentOpenPlatformPartnerMerchantAccount account = payRates.get(0);
// if (isPay) {
// ReceiverBiz receiver = new ReceiverBiz();
// receiver.setAccount(account.getAccountCard());
// //传整数,直接去除小数点后面的数字
// receiver.setPrice(vipAmount);
// receiver.setName(account.getAccountName());
// result.add(receiver);
// }
// List<AssortmentOpenPlatformPartnerMerchantAccount> subAccounts = openPlatformPartnerMerchantAccountManager.selectByRuleId(partnerId, storeId, account.getRuleId());
// // 剔除固定金额
// openPlatformPartnerMerchantAccounts = subAccounts.stream().filter(a -> Objects.equals(a.getRuleType(), PayRuleTypeEnum.FIXED_PROPORTION.getCode())).collect(Collectors.toList());
// }
// return openPlatformPartnerMerchantAccounts;
// }
String partnerId = checkSvcAmountBo.getPartnerId();
String storeId = checkSvcAmountBo.getStoreCode();
String cardCode = checkSvcAmountBo.getCardCode();
Long orderAmount = checkSvcAmountBo.getOrderAmount();
// public String convertOrderPayRequestToReceivers(List<ReceiverBiz> receiverBizs) { //混合支付开关
// if (CollectionUtils.isEmpty(receiverBizs)) { boolean combPaySwitch = this.checkSvcComPay(partnerId, storeId);
// return null;
// } SVCCardAmountRequestDto svcRequest = new SVCCardAmountRequestDto();
// //分账 svcRequest.setPartnerId(partnerId);
// List<ReceiverBiz> receivers = receiverBizs; svcRequest.setCardCodes(Arrays.asList(cardCode));
// List<AccountDivideVo> divideVos = new ArrayList<>(); //查询svc卡余额
// for (ReceiverBiz receiver : receivers) { BaseResponse<SVCCardAmountResponseDto> svcCardAmountResponseBaseResponse = svcAppClient.batchQueryCardAmount(svcRequest);
// AccountDivideVo divideVo = new AccountDivideVo(); if (svcCardAmountResponseBaseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(svcCardAmountResponseBaseResponse.getCode())
// divideVo.setLedgerNo(receiver.getAccount()); || svcCardAmountResponseBaseResponse.getResult() == null || CollectionUtils.isEmpty(svcCardAmountResponseBaseResponse.getResult().getCardSimpleInfos())) {
// divideVo.setLedgerName(receiver.getName()); checkSvcAmountResponse.setMsg(Objects.isNull(svcCardAmountResponseBaseResponse) ? "获取卡余额异常" : svcCardAmountResponseBaseResponse.getMessage());
// Double amount = receiver.getPrice() / 100d; return checkSvcAmountResponse;
// divideVo.setAmount(amount + ""); }
// divideVos.add(divideVo); Integer amount = svcCardAmountResponseBaseResponse.getResult().getCardSimpleInfos().get(0).getAmount();
// } Integer vamount = svcCardAmountResponseBaseResponse.getResult().getCardSimpleInfos().get(0).getVamount();
// return JSONObject.toJSONString(divideVos);
// } Integer svcAmount = amount + vamount;
if (!combPaySwitch && svcAmount < orderAmount) {
checkSvcAmountResponse.setMsg("卡余额不足");
return checkSvcAmountResponse;
}
//储值卡支付金额(分)
Long svcPayAmount;
//微信或支付宝 支付金额(分)
Long payAmount;
if (svcAmount < orderAmount) {
svcPayAmount = svcAmount.longValue();
payAmount = orderAmount - svcAmount.longValue();
} else {
svcPayAmount = orderAmount;
payAmount = 0L;
}
checkSvcAmountResponse.setSvcPayAmount(svcPayAmount);
checkSvcAmountResponse.setPayAmount(payAmount);
return checkSvcAmountResponse;
}
} }
...@@ -19,6 +19,8 @@ import java.util.List; ...@@ -19,6 +19,8 @@ import java.util.List;
*/ */
@Data @Data
public class OrderChangeStateReq { public class OrderChangeStateReq {
private String partnerId;
private String orderCode; private String orderCode;
private Integer orderState; private Integer orderState;
private String remark; private String remark;
......
...@@ -19,6 +19,8 @@ public class POSOrderOperationBaseReq { ...@@ -19,6 +19,8 @@ public class POSOrderOperationBaseReq {
private String orderCode; private String orderCode;
private String partnerId;
private String operator; private String operator;
//从接单、制作完成、送出开始计时,超时的时间(单位:分钟) //从接单、制作完成、送出开始计时,超时的时间(单位:分钟)
......
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