Commit a60313be by 张洪旺

coco 订单取消

parent 73439c0b
......@@ -1009,7 +1009,9 @@ public class OrderSdkAdapter {
*/
public QueryOrdersResponse.DataBean.OrderBean convent2NEWOrderInfo(OrderInfoReqs orderInfoReqs) {
QueryOrdersResponse.DataBean.OrderBean data = new QueryOrdersResponse.DataBean.OrderBean();
if(Objects.nonNull(orderInfoReqs.getEstimateDeliveryCompleteTime())){
data.setEstimateDeliveryCompleteTime(Long.parseLong(orderInfoReqs.getEstimateDeliveryCompleteTime()));
}
data.setOrderClient(orderInfoReqs.getOrderClient().toString());
data.setCompanyId(orderInfoReqs.getPartnerId());
data.setShopId(orderInfoReqs.getStoreId());
......
......@@ -383,6 +383,9 @@ public class QueryOrdersResponse {
private List<OrderPayItem> orderPayItem;
private String pickUpGoodsNo;
// 预计到达时间
private Long estimateDeliveryCompleteTime;
@NoArgsConstructor
@Data
public static class AddDeliveryInfo {
......
......@@ -87,8 +87,8 @@
<!-- 商户门店sdk -->
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<version>3.3.5-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
......
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class BookingOrderPayedScene {
/**
* 商户地址
*/
private String merchantAddress;
/**
* 商户名
*/
private String merchantName;
/**
* 取单号
*/
private String orderNo;
/**
* 订单类型
*/
private String orderType;
/**
* 预计取单时间
*/
private String takeOrderTime;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class DeliveryErrorReminder {
/**
* 配送地址
*/
private String address;
/**
* 下单时间
*/
private String createTime;
/**
* 客户电话
*/
private String customerPhone;
/**
* 订单号
*/
private String orderId;
/**
* 备注
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class GroupBuyingStatusReminder {
/**
* 温馨提示
*/
private String friendlyTips;
/**
* 商户地址
*/
private String merchantAddress;
/**
* 商户名
*/
private String merchantName;
/**
* 完成点单人数
*/
private String peopleNumber;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class InstantOrderPayedScene {
/**
* 温馨提示
*/
private String friendlyTips;
/**
* 商户地址
*/
private String merchantAddress;
/**
* 商户名
*/
private String merchantName;
/**
* 订单号
*/
private String orderNo;
/**
* 订单类型
*/
private String orderType;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class OrderDeliveryScene {
/**
* 配送地址
*/
private String address;
/**
* 预计达到时间
*/
private String estimateArrivalTime;
/**
* 商户电话
*/
private String merchantPhone;
/**
* 订单编号
*/
private String orderNo;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneCouponRequest {
/**
* 券名称,
*/
private String couponName;
/**
* 备注
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneInviteGiftRequest {
/**
* 活动id,
*/
private String activityId;
/**
* 被邀请人
*/
private String inviteeName;
/**
* 通过时间,
*/
private String passTime;
/**
* relationId,
*/
private String relationId;
/**
* remark,
*/
private String 备注;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneMemberCardExpiredRequest {
/**
* 到期时间
*/
private Integer expiredAt;
/**
* 备注说明 / 温馨提示
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneMemberLevelChangedRequest {
/**
* 等级变更时间
*/
private Integer changedAt;
/**
* 备注
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneOrderPayedRequest {
/**
* 地址
*/
private String address;
/**
* 金额
*/
private Integer amount;
/**
* 序号 必填
*/
private Integer daySeq;
/**
* 备注
*/
private String formId;
/**
* 创建时间
*/
private Long gmtCreate;
/**
* 预约时间
*/
private Long gmtExpect;
/**
* 订单号
*/
private String orderId;
/**
* 订单类型
*/
private String orderType;
/**
* 取餐码
*/
private String otherCode;
/**
* prepayId
*/
private String prepayId;
/**
* 积分变动
*/
private String scoreChangedNum;
/**
* 积分变动原因
*/
private String scoreChangedReason;
/**
* 门店名称
*/
private String shopName;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SelfDeliveryOrderPayedScene {
/**
* 配送地址
*/
private String address;
/**
* 预计达到时间
*/
private String estimateArrivalTime;
/**
* 商户电话
*/
private String merchantPhone;
/**
* 订单编号
*/
private String orderNo;
/**
* 订单类型
*/
private String orderType;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Setter
@Getter
public class SubscribeMessageRequest {
private BookingOrderPayedScene bookingOrderPayedScene;
private BookingOrderPayedScene bookingOrderTakeReminderScene;
/**
* 渠道
*/
private Integer channel;
private DeliveryErrorReminder deliveryErrorReminder;
private GroupBuyingStatusReminder groupBuyingStatusReminder;
private InstantOrderPayedScene instantOrderPayedScene;
private InstantOrderPayedScene instantOrderTakeReminderScene;
private String messageEventType;
/**
* 小程序id
*/
private String miniAppId;
/**
* 小程序集合
*/
private List<String> openIdList;
private OrderDeliveryScene orderDeliveryScene;
private SceneCouponRequest sceneCouponExpiredRequest;
private SceneCouponRequest sceneCouponReceiveRequest;
private SceneInviteGiftRequest sceneInviteGiftRequest;
private SceneMemberCardExpiredRequest sceneMemberCardExpiredRequest;
private SceneMemberLevelChangedRequest sceneMemberLevelChangedRequest;
private SceneOrderPayedRequest sceneOrderPayedRequest;
private SelfDeliveryOrderPayedScene selfDeliveryOrderPayedScene;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class SubscribeMessageResponse {
private Integer code;
private String message;
private String subMsg;
private String ver;
}
......@@ -162,6 +162,9 @@ public enum ResponseResult {
ORDER_NOT_CREATE_ERROR("45065", "请不要重复创建订单"),
MULTIORDER__ERRORREFUND("45005", "订单申请退款失败"),
ORDER_CANCEL_ERROR_EXPECT_TIME("45067", "预约时间还剩15分钟,无法取消"),
ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"),
/**
* 支付
......
......@@ -110,6 +110,7 @@ import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRe
import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.enums.NewOrderType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
......@@ -172,7 +173,7 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private AssortmentCloudPrinterManager cloudPrinterManager;
// @Autowired
// @Autowired
// private OrderCommonService orderCommonService;
@Autowired
private FMAssistantCloudPrintClient fmAssistantCloudPrintClient;
......@@ -198,7 +199,7 @@ public class OrderServiceImpl implements Orderservice {
private ActivityAdapter activityAdapter;
@Autowired
private CouponAdapter couponAdapter;
// @Autowired
// @Autowired
// private ActivitySdkAdapter activitySdkAdapter;
@Autowired
private MealCacheManager mealCacheManager;
......@@ -237,7 +238,7 @@ public class OrderServiceImpl implements Orderservice {
private AssortmentOpenPlatformWxappAuthorizerManager wxappAuthorizerManager;
@Autowired
private PaymentNewClient paymentNewClient;
// @Autowired
// @Autowired
// private MallOrderServiceImpl mallOrderService;
@Autowired
private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager;
......@@ -266,6 +267,9 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private AssortmentOpenPlatformIappWxappStoreManager assortmentOpenPlatformIappWxappStoreManager;
@Value("${coco.partnerId}")
private String partnerId;
@Override
public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
String trackingNo = LogTreadLocal.getTrackingNo();
......@@ -326,10 +330,10 @@ public class OrderServiceImpl implements Orderservice {
//1.9.2套餐需求同步优化创建订单代码
BaseResponse createOrderOperateDtoResponse = this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
if(createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null ) {
if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto)createOrderOperateDtoResponse.getResult();
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = orderAdapter.convertToCreatePrepayRequestDto(userLoginInfoDto, createOrderVo, createOrderOperateDto, extInfo);
return this.createPrepayOrder(createPrepayRequestDto);
......@@ -377,6 +381,7 @@ public class OrderServiceImpl implements Orderservice {
log.info("paymentQueueService.paymentCallback" + dto + " error" + e);
}
}
/**
* 获取预支付成功,将信息放入死心队列,当支付成功没有回掉的时候处理
*
......@@ -385,7 +390,7 @@ public class OrderServiceImpl implements Orderservice {
* @param fmId
* @param orderId
*/
public void putDelMq(String partnerId, String storeId, String fmId, String orderId,Integer payChanelType) {
public void putDelMq(String partnerId, String storeId, String fmId, String orderId, Integer payChanelType) {
PaymentMqMessageDto dto = new PaymentMqMessageDto();
try {
dto.setFmId(fmId);
......@@ -399,6 +404,7 @@ public class OrderServiceImpl implements Orderservice {
log.info("paymentQueueService.paymentCallback" + dto + " error" + e);
}
}
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) {
OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
......@@ -528,7 +534,7 @@ 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());
log.info("调用券码结束==" + message.getTrans_id());
return sendPaySuccessNoticeMessage();
}
......@@ -554,6 +560,7 @@ public class OrderServiceImpl implements Orderservice {
/**
* 开通会员卡
*
* @param partnerId 商户号
* @param ruleId 会员规则ID
* @param oid 订单号
......@@ -613,11 +620,11 @@ public class OrderServiceImpl implements Orderservice {
return newSendPayFaileMessage();
}
private String verificationCoupon(String transId){
private String verificationCoupon(String transId) {
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(transId));
if (StringUtils.isNotBlank(orderId)) {
log.info("从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}", LogTreadLocal.getTrackingNo(),transId, orderId);
transId=orderId;
log.info("从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}", LogTreadLocal.getTrackingNo(), transId, orderId);
transId = orderId;
}
QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(transId);
if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) {
......@@ -633,7 +640,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
//核销券
BaseResponse baseResponse = couponActivityService.verificationCoupon(orderBean,CouponReqType.WRITEOFF);
BaseResponse baseResponse = couponActivityService.verificationCoupon(orderBean, CouponReqType.WRITEOFF);
return "核销券码返回结果" + baseResponse.getCode() + "," + baseResponse.getMessage();
}
......@@ -641,7 +648,7 @@ public class OrderServiceImpl implements Orderservice {
public String refundNotifyCallback(RefundNotifyCallbackRequestVo requestVo) {
//混合支付需要从换从中获取订单号码,正常支付TransId = orderId
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(requestVo.getTransId()));
if(StringUtils.isNotEmpty(orderId)){
if (StringUtils.isNotEmpty(orderId)) {
requestVo.setTransId(orderId);
}
String trackingNo = LogTreadLocal.getTrackingNo();
......@@ -772,7 +779,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(responseMap);
}
List<QueryOrdersResponse.DataBean.OrderBean> ordersOld = queryOrderResponse.getData().getOrders();
List<QueryOrdersResponse.DataBean.OrderBean> orders =new ArrayList<>();
List<QueryOrdersResponse.DataBean.OrderBean> orders = new ArrayList<>();
Set<String> shopIds = new HashSet<>();
// 过滤待支付订单
if (CollectionUtils.isNotEmpty(ordersOld)) {
......@@ -783,12 +790,12 @@ public class OrderServiceImpl implements Orderservice {
//围餐过滤掉未唤起支付的订单
if (OrderChannelType.IWC.getCode().equals(channelType) && OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus()) && PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
// 如果已经唤起了支付则不再进行促销计算
boolean prePayLock = mealCacheManager.getOrderCreatePreParmentLock(userLoginInfoDto.getPartnerId(),userLoginInfoDto.getStoreId(),userLoginInfoDto.getTableNumber());
if (prePayLock ){
boolean prePayLock = mealCacheManager.getOrderCreatePreParmentLock(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getStoreId(), userLoginInfoDto.getTableNumber());
if (prePayLock) {
//已唤起支付
orders.add(orderBean);
}
}else {
} else {
orders.add(orderBean);
}
}
......@@ -909,7 +916,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "查询订单状态不能为空");
}
if (CollectionUtils.isNotEmpty(queryOrderVo.getQueryOrderType())) {
if (CollectionUtils.isEmpty(OrderType.getByCode(queryOrderVo.getQueryOrderType())) ) {
if (CollectionUtils.isEmpty(OrderType.getByCode(queryOrderVo.getQueryOrderType()))) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "查询订单类型不存在");
}
}
......@@ -930,8 +937,8 @@ public class OrderServiceImpl implements Orderservice {
String userId = userLoginInfoDto.getMemberId();
queryOrderVo.setStartDate(startDateStr);
queryOrderVo.setEndDate(endDateStr);
QueryOrderVo vo =new QueryOrderVo();
BeanUtils.copyProperties(queryOrderVo,vo);
QueryOrderVo vo = new QueryOrderVo();
BeanUtils.copyProperties(queryOrderVo, vo);
String channelType = this.getQueryOrderChannelType(vo, userLoginInfoDto);
QueryOrdersDto queryOrdersDto = orderAdapter.convent2QueryOrdersDtoMcCafe(queryOrderVo, userId, channelType);
QueryOrdersResponse queryOrderResponse;
......@@ -1025,7 +1032,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())){
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
orderBean.setOtherCode("");
}
});
......@@ -1048,7 +1055,7 @@ public class OrderServiceImpl implements Orderservice {
if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
String oid =queryOrderVo.getOid();
String oid = queryOrderVo.getOid();
if (StringUtils.isBlank(oid)) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
}
......@@ -1063,19 +1070,19 @@ public class OrderServiceImpl implements Orderservice {
OrderViewStatusDto orderViewStatusDesc = orderAdapter.getOrderViewStatusDesc(orderBean, userLoginInfoDto.getWxAppId());
Map<String, Object> responseMap = Maps.newTreeMap();
responseMap.put("orderStatus", orderViewStatusDesc.getOrderStatus());
responseMap.put("takeCode","");
responseMap.put("queueIndex","");
responseMap.put("takeCode", "");
responseMap.put("queueIndex", "");
String extInfo = orderBean.getExtInfo();
OrderExtInfoDto orderExtInfoDto = null;
if (StringUtils.isNotBlank(extInfo)) {
orderExtInfoDto = gson.fromJson(extInfo, OrderExtInfoDto.class);
}
responseMap.put("payVoucher",orderExtInfoDto != null ? orderExtInfoDto.getPayTransId() : "");
responseMap.put("payVoucher", orderExtInfoDto != null ? orderExtInfoDto.getPayTransId() : "");
//非外卖单才获取取餐码和排队人数
if (!OrderType.TAKE_OUT.getCode().equals(orderBean.getType()) ){
if (!OrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
if (!(OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus()))){
responseMap.put("takeCode",orderBean.getOtherCode() );
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus()))) {
responseMap.put("takeCode", orderBean.getOtherCode());
}
BaseQueryOrderRequest var1 = new BaseQueryOrderRequest();
var1.setOrderId(orderBean.getOid());
......@@ -1086,7 +1093,7 @@ public class OrderServiceImpl implements Orderservice {
response1.setErrmsg(baseOrderResponse.getErrmsg());
if (RESPONSE_SUCCESS_CODE.equals(response1.getErrcode())) {
String queueIndex = response1.getData() == null ? "" : response1.getData().toString();
responseMap.put("queueIndex",queueIndex);
responseMap.put("queueIndex", queueIndex);
}
}
return ResponseUtil.success(responseMap);
......@@ -1121,7 +1128,7 @@ public class OrderServiceImpl implements Orderservice {
} else {
payGitRequestDto.setPayType(1);//1-微信,2-储值卡
}
if(CollectionUtils.isNotEmpty(queryOrderResponseVo.getProducts())){
if (CollectionUtils.isNotEmpty(queryOrderResponseVo.getProducts())) {
payGitRequestDto.setSkuIds(queryOrderResponseVo.getProducts().stream().map(p -> p.getPid()).collect(Collectors.toList()));
}
if (OrderType.COLLECT_GOODS.getCode().intValue() == queryOrderResponseVo.getOrderType() || OrderType.EAT_IN.getCode().intValue() == queryOrderResponseVo.getOrderType()) {
......@@ -1246,12 +1253,12 @@ public class OrderServiceImpl implements Orderservice {
}
QueryOrderResponseVo queryOrderResponseVo = queryOrderResponseVos.get(0);
//48小时自动退款描述
if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig()!= null
if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig() != null
&& queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund();
if(automaticRefund != null && automaticRefund == 1){
if (automaticRefund != null && automaticRefund == 1) {
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}else {
} else {
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}
}
......@@ -1276,7 +1283,7 @@ public class OrderServiceImpl implements Orderservice {
OrderExtInfoDto orderExtInfoDto = gson.fromJson(extInfo, OrderExtInfoDto.class);
String wxappid = orderExtInfoDto.getAppid();
// 查询门店下有没有 裂变活动
String activityId = isShareActivity(partnerId, storeId, wxappid, response.getData().getGmtCreate(), oid, userId, sessionId,organizationId);
String activityId = isShareActivity(partnerId, storeId, wxappid, response.getData().getGmtCreate(), oid, userId, sessionId, organizationId);
queryOrderResponseVo.setActivityId(activityId);
// 取红包图片
queryOrderResponseVo.setRedpacketsPicture(getRedpacketsPicture(activityId));
......@@ -1298,7 +1305,7 @@ public class OrderServiceImpl implements Orderservice {
if (userInfo == null || StringUtils.isEmpty(userInfo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
String oid =queryOrderVo.getOid();
String oid = queryOrderVo.getOid();
if (StringUtils.isBlank(oid)) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
}
......@@ -1365,7 +1372,7 @@ public class OrderServiceImpl implements Orderservice {
}
if (OrderStatus.TAKE_ORDER.getCode().equals(queryOrderResponseVo.getOrderStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(queryOrderResponseVo.getOrderStatus())){
|| OrderStatus.WAIT_PAY.getCode().equals(queryOrderResponseVo.getOrderStatus())) {
queryOrderResponseVo.setTakeCode("");
}
......@@ -1373,12 +1380,12 @@ public class OrderServiceImpl implements Orderservice {
.map(McCafeOrderTypeGather::getDesc).orElse(""));
//48小时自动退款描述
if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig()!= null
if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig() != null
&& queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund();
if(automaticRefund != null && automaticRefund == 1){
if (automaticRefund != null && automaticRefund == 1) {
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}else {
} else {
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}
}
......@@ -1387,7 +1394,7 @@ public class OrderServiceImpl implements Orderservice {
}
public static String formatSpecialDate(Date date) {
if (date == null ){
if (date == null) {
return null;
}
System.out.println(new DateTime(date).toString("yyyy-MM-dd HH:mm"));
......@@ -1398,12 +1405,12 @@ public class OrderServiceImpl implements Orderservice {
DateTime tomorrow_start = today_start.plusDays(2);
System.out.println(new DateTime(tomorrow_start).toString("yyyy-MM-dd HH:mm"));
if(date.after(today_start.toDate()) && date.before(today_end.toDate())) {
if (date.after(today_start.toDate()) && date.before(today_end.toDate())) {
return String.format("%s", new DateTime(date).toString("HH:mm"));
} else if(date.after(today_end.toDate()) && date.before(tomorrow_start.toDate())) {
} else if (date.after(today_end.toDate()) && date.before(tomorrow_start.toDate())) {
return String.format("明天%s%s", DateUtils.getDayWeek(date), new DateTime(date).toString("HH:mm"));
}
return new DateTime(date).toString("yyyy-MM-dd") + DateUtils.getDayWeek(date) + new DateTime(date).toString("HH:mm") ;
return new DateTime(date).toString("yyyy-MM-dd") + DateUtils.getDayWeek(date) + new DateTime(date).toString("HH:mm");
}
/**
......@@ -1427,7 +1434,7 @@ public class OrderServiceImpl implements Orderservice {
orderBean.setSendTime(result.getSendTime());
orderBean.setCompleteTime(result.getCompleteTime());
}
if(orderBean.getAddInfo()!=null&&StringUtils.isNotEmpty(orderBean.getAddInfo().getRiderPhone())) {
if (orderBean.getAddInfo() != null && StringUtils.isNotEmpty(orderBean.getAddInfo().getRiderPhone())) {
orderBean.setRiderPhone(orderBean.getAddInfo().getRiderPhone());
}
}
......@@ -1441,7 +1448,7 @@ public class OrderServiceImpl implements Orderservice {
* @param orderTime
* @return
*/
private String isShareActivity(String partnerId, String storeId, String wxappid, Long orderTime, String bizId, String userId, String sessionId,String organizationId) {
private String isShareActivity(String partnerId, String storeId, String wxappid, Long orderTime, String bizId, String userId, String sessionId, String organizationId) {
QueryValidShareActivityReq activityReq = new QueryValidShareActivityReq();
activityReq.setAppId(wxappid);
......@@ -1547,12 +1554,13 @@ public class OrderServiceImpl implements Orderservice {
if (StringUtils.isEmpty(orderRefundVo.getReason())) {
orderRefundVo.setReason("退款");
}
AssortmentCustomerInfoVo userInfo = customerInfoManager.getCustomerInfoByObject(orderRefundVo.getSessionId());
AssortmentCustomerInfoVo userInfo = null;
/* AssortmentCustomerInfoVo userInfo = customerInfoManager.getCustomerInfoByObject(orderRefundVo.getSessionId());
if (userInfo == null || StringUtils.isEmpty(userInfo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
String memberId = userInfo.getMemberId();
String partnerId = userInfo.getPartnerId();
}*/
/* String memberId = userInfo.getMemberId();
String partnerId = userInfo.getPartnerId();*/
if (StringUtils.isBlank(orderRefundVo.getOid())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
......@@ -1570,10 +1578,37 @@ public class OrderServiceImpl implements Orderservice {
if (!RESPONSE_SUCCESS_CODE.equals(orderByIdResponseDto.getErrcode()) || orderByIdResponseDto.getData() == null) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "订单信息不存在");
}
if (!memberId.equals(orderByIdResponseDto.getData().getUserId())) {
/* if (!memberId.equals(orderByIdResponseDto.getData().getUserId())) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "不能操作非本人的订单");
}
}*/
OrderBean orderBean = orderByIdResponseDto.getData();
// todo coco 商户校验
if (partnerId.equals(orderByIdResponseDto.getData().getCompanyId())) {
// COCO 即时单不可取消
if ( NewOrderType.GENERAL_SELF_PICKUP.getCode().equals(queryOrderByIdResponse.getData().getNewOrderType())) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR);
}
// 4,6 预约单
List<Integer> expectOrderType = Lists.newArrayList(
NewOrderType.RESERVED_EXPRESS.getCode(),
NewOrderType.RESERVED_SELF_PICKUP.getCode());
long time = DateUtil.addMinutes(new Date(), 15).getTime();
if (expectOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())
&& Objects.nonNull(orderBean.getGmtExpect())
&& time > orderBean.getGmtExpect()) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_EXPECT_TIME);
}
// 外卖单
List<Integer> takeOrderType = Lists.newArrayList(
NewOrderType.RESERVED_EXPRESS.getCode(),
NewOrderType.GENERAL_EXPRESS.getCode());
long taskCancelOrderTime = DateUtil.addMinutes(new Date(), 30).getTime();
if (takeOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())
&& Objects.nonNull(queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime())
&& taskCancelOrderTime > queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime()) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_ESTIMATE_TIME);
}
}
if (PayStatus.NOT_PAY.getCode().equals(orderByIdResponseDto.getData().getPayStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单未支付,无法退款");
......@@ -1585,6 +1620,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单配送中,退款请联系售后!");
}
/**
* 已接单,制作完成,配送中,未接单,用户可申请退款
*
......@@ -1603,34 +1639,34 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "您的申请已被商家拒绝,请联系门店沟通。");
}
}
if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
/*if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
boolean refundButton = orderAdapter.checkRefundButton(queryOrderByIdResponse.getData(), userInfo.getWxAppId());
if (!refundButton) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_ALLOW_REFUND.getCode(), ResponseResult.ORDER_NOT_ALLOW_REFUND.getMessage());
}
}
}*/
List<AssortmentOpenPlatformPartnerWxappConfig> partnerWxappConfigs = cacheOpenPlatformPartnerWxappConfigManager.cacheSelectDefaultPage(userInfo.getWxAppId(), "2");
Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity()));
boolean isRefundDeliveryFee = true;
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue());
LogUtil.info("orderRefund of oid:{}, {}, {}", orderBean.getOid(),orderBean.getStatus(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null));
LogUtil.info("orderRefund of oid:{}, {}, {}", orderBean.getOid(), orderBean.getStatus(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null));
// 0、null表示 关闭 ; 1 表示开启
if (null != refundDeliveryFeeConfig
&& Arrays.asList(OrderStatus.DISTRIBUTION.getCode(),OrderStatus.COMPLETE.getCode()).contains(orderBean.getStatus())
&& Arrays.asList(OrderStatus.DISTRIBUTION.getCode(), OrderStatus.COMPLETE.getCode()).contains(orderBean.getStatus())
&& !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) {
isRefundDeliveryFee = false;
}
// 未接单
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
//商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId,AfterSalesType.USER_CANCEL,isRefundDeliveryFee);
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId, AfterSalesType.USER_CANCEL, isRefundDeliveryFee);
if (baseResponse != null) {
return baseResponse;
}
// 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(),orderBean.getPayStatus());
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(), orderBean.getPayStatus());
} else {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
......@@ -1665,32 +1701,38 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success();
}
/* private BaseResponse checkOrder(OrderBean orderBean){
//orderBean.gettakem
}*/
/**
* 商家未接单,取消订单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
*
* @param orderRefundVo
* @param orderBean
*/
private BaseResponse partnerNoTakeOrder(OrderRefundVo orderRefundVo, OrderBean orderBean, String fatherOrderId,AfterSalesType afterSalesType,Boolean isRefundDeliveryFee) {
private BaseResponse partnerNoTakeOrder(OrderRefundVo orderRefundVo, OrderBean orderBean, String fatherOrderId, AfterSalesType afterSalesType, Boolean isRefundDeliveryFee) {
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = null;
Long refundId = System.currentTimeMillis();
String partnerId = orderBean.getCompanyId();
int state = PayRefundStatus.SUCCESS.getCode();
if (orderBean.getAmount() != 0) {
if(null != orderBean.getOrderPayItem() && orderBean.getOrderPayItem().size()>0){
if (null != orderBean.getOrderPayItem() && orderBean.getOrderPayItem().size() > 0) {
//调用支付退款
MultiOrderRefundRequest multiOrderRefundRequest = orderAdapter.getMultiOrderPayRefundRequest(orderBean, refundId);
MultiOrderRefundResponse multiOrderRefundResponse = mulitiPaymentClient.paymentApplicationRefund(multiOrderRefundRequest,orderBean.getCompanyId());
MultiOrderRefundResponse multiOrderRefundResponse = mulitiPaymentClient.paymentApplicationRefund(multiOrderRefundRequest, orderBean.getCompanyId());
if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) {
return ResponseUtil.error(ResponseResult.MULTIORDER__ERRORREFUND.getCode(), "multiOrderRefund_failed");
}
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList;
if(null != refundPlatformResponseList && refundPlatformResponseList.size()>0){
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS);
if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) {
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS);
}
//获取支付返回退款状态
state = PayRefundStatus.SUCCESS.getCode();
}else {
} else {
//调用支付退款
com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, fatherOrderId);
response = standardPaymentService.orderRefund(orderPayRefundRequest, LogTreadLocal.getTrackingNo());
......@@ -1757,7 +1799,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
public void backOrdersStatusChange(String oid, Integer orderStatus,Integer payStatus) {
public void backOrdersStatusChange(String oid, Integer orderStatus, Integer payStatus) {
if (StringUtils.isEmpty(oid)) {
return;
}
......@@ -2041,7 +2083,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) {
pids.add(productDto.getProductId());
}
Map<String, GetProductsVo> products = itemService.getSpuProducts(pids, fatherSonOrderRequest.getPartnerId(), productOrderInfoList.get(0).getShopId(),fatherSonOrderRequest.getMenuType());
Map<String, GetProductsVo> products = itemService.getSpuProducts(pids, fatherSonOrderRequest.getPartnerId(), productOrderInfoList.get(0).getShopId(), fatherSonOrderRequest.getMenuType());
if (products.isEmpty()) {
return fatherSonOrderRequest;
}
......@@ -2050,21 +2092,21 @@ public class OrderServiceImpl implements Orderservice {
productDto.setCustomerCode(products.get(productDto.getSpecification()).getCustomerCode());
productDto.setProductCode(products.get(productDto.getSpecification()).getProductCode());
productDto.setThirdProductSpecId(products.get(productDto.getSpecification()).getThirdProductSpecId());
productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(),productDto.getAddInfo()));
productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(), productDto.getAddInfo()));
} else {
productDto.setCustomerCode("");
productDto.setProductCode("");
LogUtil.error("getProducts_exception", JSONObject.toJSONString(pids), JSONObject.toJSONString(products));
}
//套餐子商品
if(CollectionUtils.isNotEmpty(productDto.getComboProduct())){
for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()){
if (CollectionUtils.isNotEmpty(productDto.getComboProduct())) {
for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()) {
String comboSkuId = comboProduct.getSpecification();
if (products.get(comboSkuId) != null) {
comboProduct.setCustomerCode(products.get(comboSkuId).getCustomerCode());
comboProduct.setProductCode(products.get(comboSkuId).getProductCode());
comboProduct.setThirdProductSpecId(products.get(comboSkuId).getThirdProductSpecId());
comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(),comboProduct.getAddInfo()));
comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(), comboProduct.getAddInfo()));
} else {
comboProduct.setCustomerCode("");
comboProduct.setProductCode("");
......@@ -2087,7 +2129,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : createOrderDto.getProducts()) {
spuIds.add(productDto.getProductId());
}
Map<String, GetProductsVo> products = itemService.getSpuProducts(spuIds, createOrderDto.getCompanyId(), createOrderDto.getShopId(),createOrderDto.getMenuType());
Map<String, GetProductsVo> products = itemService.getSpuProducts(spuIds, createOrderDto.getCompanyId(), createOrderDto.getShopId(), createOrderDto.getMenuType());
if (products.isEmpty()) {
return createOrderDto;
}
......@@ -2097,7 +2139,7 @@ public class OrderServiceImpl implements Orderservice {
productDto.setCustomerCode(products.get(skuId).getCustomerCode());
productDto.setProductCode(products.get(skuId).getProductCode());
productDto.setThirdProductSpecId(products.get(productDto.getSpecification()).getThirdProductSpecId());
productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(),productDto.getAddInfo()));
productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(), productDto.getAddInfo()));
// todo 商品组信息
setProductGroupInfo(products.get(skuId).getProductGroupList(), productDto);
......@@ -2107,15 +2149,15 @@ public class OrderServiceImpl implements Orderservice {
LogUtil.error("getProducts_exception", JSONObject.toJSONString(skuId), JSONObject.toJSONString(products), null);
}
//套餐子商品
if(CollectionUtils.isNotEmpty(productDto.getComboProduct())){
for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()){
if (CollectionUtils.isNotEmpty(productDto.getComboProduct())) {
for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()) {
String comboSkuId = comboProduct.getSpecification();
System.out.println(comboSkuId);
if (products.get(comboSkuId) != null) {
comboProduct.setCustomerCode(products.get(comboSkuId).getCustomerCode());
comboProduct.setProductCode(products.get(comboSkuId).getProductCode());
comboProduct.setThirdProductSpecId(products.get(comboSkuId).getThirdProductSpecId());
comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(),comboProduct.getAddInfo()));
comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(), comboProduct.getAddInfo()));
comboProduct.setStapleFood(products.get(comboSkuId).getStapleFood());
// todo 套餐商品的商品组信息
setProductGroupInfo(products.get(comboSkuId).getProductGroupList(), comboProduct);
......@@ -2132,6 +2174,7 @@ public class OrderServiceImpl implements Orderservice {
/**
* 设置商品组信息
*
* @param productGroupList
* @param product
*/
......@@ -2154,22 +2197,22 @@ public class OrderServiceImpl implements Orderservice {
private String getThirdPropertyId(List<ProductAttributeGroup> productAttributeGroups, String addInfo) {
String thirdProductPropertyId = "";
if(StringUtils.isBlank(addInfo) || CollectionUtils.isEmpty(productAttributeGroups) ){
if (StringUtils.isBlank(addInfo) || CollectionUtils.isEmpty(productAttributeGroups)) {
return thirdProductPropertyId;
}
JSONObject jsonObject = JSONObject.parseObject(addInfo);
String attributeNames = (String)jsonObject.get("attributeNames");
String attributeNames = (String) jsonObject.get("attributeNames");
List<String> list = new ArrayList<>();
String[] split = attributeNames.split("/");
List<AttributeValue> attributeValues = new ArrayList<>();
for (ProductAttributeGroup attributeGroup : productAttributeGroups){
for (ProductAttributeGroup attributeGroup : productAttributeGroups) {
attributeValues.addAll(attributeGroup.getAttributeValues());
}
for (int i= 0;i<split.length;i++){
for (AttributeValue attributeValue : attributeValues){
if(attributeValue.getAttributeValue().equals(split[i])){
for (int i = 0; i < split.length; i++) {
for (AttributeValue attributeValue : attributeValues) {
if (attributeValue.getAttributeValue().equals(split[i])) {
list.add(attributeValue.getCustomerCode());
break;
}
......@@ -2192,9 +2235,9 @@ public class OrderServiceImpl implements Orderservice {
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
OrderClientType orderClient = OrderClientType.SAAS;
String appId = userLoginInfoDto.getWxAppId();
if("2".equals(userLoginInfoDto.getChannel()) ){
if ("2".equals(userLoginInfoDto.getChannel())) {
orderClient = OrderClientType.ALIPAY;
} else if(UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
} else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
orderClient = OrderClientType.APP;
}
long totalAmount = 0;
......@@ -2206,7 +2249,7 @@ public class OrderServiceImpl implements Orderservice {
int cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() == null ? 0 : shoppingCartGoodsDto.getCardOriginalAmount();
int cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() == null ? 0 : shoppingCartGoodsDto.getCardDiscountAmount();
cardAmount = cardOriginalAmount - cardDiscountAmount;
CreateFatherSonOrderResponse createFatherSonOrderResponse = createFatherSonOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq,appId);
CreateFatherSonOrderResponse createFatherSonOrderResponse = createFatherSonOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, appId);
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createFatherSonOrderResponse.getErrcode())) {
return ResponseUtil.error(createFatherSonOrderResponse.getErrcode().toString(), createFatherSonOrderResponse.getErrmsg());
}
......@@ -2221,7 +2264,7 @@ public class OrderServiceImpl implements Orderservice {
fatherBeanList.get(0).setCompanyId(createOrderVo.getPartnerId());
} else {
//普通订单
CreateOrderResponse createOrderFlowResponse = createOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, orderClient,appId);
CreateOrderResponse createOrderFlowResponse = createOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, orderClient, appId);
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createOrderFlowResponse.getErrcode())) {
return ResponseUtil.error(createOrderFlowResponse.getErrcode().toString(), createOrderFlowResponse.getErrmsg());
}
......@@ -2258,7 +2301,7 @@ public class OrderServiceImpl implements Orderservice {
}
//混合支付+svc卡
else if (totalAmount > 0 && StringUtils.isNotBlank(cardCode)) {
orderPayResponse = switchSvcOrComb(totalAmount,cardCode, createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, createPrepayRequestDto.getChannel(),createPrepayRequestDto.getStoreId(),LogThreadLocal.getTrackingNo());
orderPayResponse = switchSvcOrComb(totalAmount, cardCode, createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, createPrepayRequestDto.getChannel(), createPrepayRequestDto.getStoreId(), LogThreadLocal.getTrackingNo());
} else {
// 0元订单如果不需要支付,自定义支付单号
orderPayResponse = getOrderPayResponse(paymentRequest, createPrepayRequestDto.getFatherOrderBean());
......@@ -2282,14 +2325,11 @@ public class OrderServiceImpl implements Orderservice {
}
if (totalAmount > 0 && StringUtils.isBlank(cardCode) && Objects.isNull(createPrepayRequestDto.getUnionPayCard())) {
createOrderResponse.setPaySuccess(false);
}
else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.COMB.getEbcode().equals(orderPayResponse.getPayMode())){
} else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.COMB.getEbcode().equals(orderPayResponse.getPayMode())) {
createOrderResponse.setPaySuccess(false);
}
else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.SVC.getEbcode().equals(orderPayResponse.getPayMode())){
} else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.SVC.getEbcode().equals(orderPayResponse.getPayMode())) {
createOrderResponse.setPaySuccess(true);
}
else {
} else {
createOrderResponse.setPaySuccess(true);
}
// 推荐优惠插件用户下单数据上报
......@@ -2327,7 +2367,7 @@ public class OrderServiceImpl implements Orderservice {
if (tigger && StringUtils.isNotBlank(channel)) {
log.info("混合支付:");
String partnerPayOvertime = this.getPartnerPayOvertime(orderBean.getCompanyId());
orderPayResponse = comPayOrder(cardCode,orderBean,paymentRequest,partnerPayOvertime,totalAmount.intValue(),channel,storeId,LogThreadLocal.getTrackingNo());
orderPayResponse = comPayOrder(cardCode, orderBean, paymentRequest, partnerPayOvertime, totalAmount.intValue(), channel, storeId, LogThreadLocal.getTrackingNo());
}
//svc 支付
else {
......@@ -2336,8 +2376,10 @@ public class OrderServiceImpl implements Orderservice {
}
return orderPayResponse;
}
/**
* unionPay card pay
*
* @param orderBean
* @param paymentRequest
* @param transId
......@@ -2391,7 +2433,7 @@ public class OrderServiceImpl implements Orderservice {
* 创建普通订单
*/
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
OrderExtendedReq orderExtendedReq, OrderClientType orderClient,String appId) {
OrderExtendedReq orderExtendedReq, OrderClientType orderClient, String appId) {
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
......@@ -2409,13 +2451,14 @@ public class OrderServiceImpl implements Orderservice {
createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
return orderCenterSdkService.createOrderFlow(createOrderRequest);
}
/**
* 创建父子订单
*/
public CreateFatherSonOrderResponse createFatherSonOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto,
ShoppingCartGoodsDto shoppingCartGoodsDto, OrderExtendedReq orderExtendedReq,
String appId) {
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq,storeResponseDto,appId);
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq, storeResponseDto, appId);
//查询第三方商品编号
createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest);
MqMessageRequest mqMessageRequest = new MqMessageRequest();
......@@ -2435,7 +2478,7 @@ public class OrderServiceImpl implements Orderservice {
private BaseResponse failPreOrderPay(String trackingNo, QueryOrdersResponse.DataBean.OrderBean orderBean, String cardCode, OrderClientType orderClient, String msg) {
List<OrderClientType> notCancelOrderClientList = Lists.newArrayList(OrderClientType.APP);
if(!notCancelOrderClientList.contains(orderClient)) {
if (!notCancelOrderClientList.contains(orderClient)) {
//失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, StringUtils.join(new String[]{"获取预支付失败", msg}, '-'), trackingNo, null);
......@@ -2468,7 +2511,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(PayChannelType.WECHAT.getEbcode());
if (orderPayResponse.getPayOrder()!=null && StringUtils.isNotBlank(orderPayResponse.getPayOrder().getAliPayOrder())) {
if (orderPayResponse.getPayOrder() != null && StringUtils.isNotBlank(orderPayResponse.getPayOrder().getAliPayOrder())) {
orderPayResponse.setPayMode(PayChannelType.ALIPAY.getEbcode());
}
}
......@@ -2585,12 +2628,12 @@ public class OrderServiceImpl implements Orderservice {
if (StringUtils.isNotBlank(createOrderVo.getScene())) {
orderExtInfoDto.setScene(createOrderVo.getScene());
}
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getSendPoint()){
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getSendPoint()) {
ShoppingCartGoodsDto.SendPoint sendPoint = shoppingCartGoodsDto.getSendPoint();
orderExtInfoDto.setSendPointValidityDateDays(sendPoint.getValidityDateDays());
orderExtInfoDto.setSendPointMaxNum(sendPoint.getMaxNum());
orderExtInfoDto.setSendPointActivityCode(sendPoint.getActivityCode());
orderExtInfoDto.setSendPointEndTime(sendPoint.getEndTime().getTime()+"");
orderExtInfoDto.setSendPointEndTime(sendPoint.getEndTime().getTime() + "");
orderExtInfoDto.setSendPointSendPoint(sendPoint.getSendPoint());
}
return orderExtInfoDto;
......@@ -2662,7 +2705,7 @@ public class OrderServiceImpl implements Orderservice {
JSONObject.toJSONString(orderExtInfo));
orderEditRequest.setOrderId(orderBean.getOid());
orderEditRequest.setTrackingNo(trackingNo);
if (orderPayResponse.getPayMode()!=null) {
if (orderPayResponse.getPayMode() != null) {
orderEditRequest.setPayChannel(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getEbcode());
orderEditRequest.setPayChannelName(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getName());
orderEditRequest.setPayChannelType(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getIndex());
......@@ -2697,21 +2740,22 @@ public class OrderServiceImpl implements Orderservice {
/**
* 通知小助手发送申请退款公众号订阅消息
*
* @param orderBean
*/
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundVo request) {
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean, OrderRefundVo request) {
LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null);
String partnerId = orderBean.getCompanyId();
String shopId = orderBean.getShopId();
if(orderBean.getExtInfo() == null){
if (orderBean.getExtInfo() == null) {
return;
}
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
if(extInfo == null || extInfo.getAppid() == null){
if (extInfo == null || extInfo.getAppid() == null) {
return;
}
AssortmentOpenPlatformWxappAuthorizer authorizerAppid = wxappAuthorizerManager.findAuthorizerByWxAppId(extInfo.getAppid());
if(authorizerAppid == null){
if (authorizerAppid == null) {
return;
}
String accessToken = authorizerAppid.getAuthorizerAccessToken();
......@@ -2724,7 +2768,7 @@ public class OrderServiceImpl implements Orderservice {
keyword1.setValue(orderId);
MpTemplateMsgDataValue keyword2 = new MpTemplateMsgDataValue();
Double amount = orderBean.getAmount() / 100.0D;
keyword2.setValue(amount.toString()+ " 元");
keyword2.setValue(amount.toString() + " 元");
MpTemplateMsgDataValue keyword3 = new MpTemplateMsgDataValue();
keyword3.setValue(orderBean.getGmtPay() == null ? "" : DateUtil.convert2String(new Date(orderBean.getGmtPay()), "yyyy-MM-dd HH:mm:ss"));
MpTemplateMsgDataValue keyword4 = new MpTemplateMsgDataValue();
......@@ -2732,7 +2776,7 @@ public class OrderServiceImpl implements Orderservice {
MpTemplateMsgDataValue keyword5 = new MpTemplateMsgDataValue();
keyword5.setValue(orderBean.getPhone());
MpTemplateMsgDataValue remark = new MpTemplateMsgDataValue();
remark.setValue(request.getReason()+","+request.getRemarks());
remark.setValue(request.getReason() + "," + request.getRemarks());
data.setFirst(first);
data.setKeyword1(keyword1);
data.setKeyword2(keyword2);
......@@ -2792,16 +2836,16 @@ public class OrderServiceImpl implements Orderservice {
private BaseResponse createOrderAndPay(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
AssortmentCustomerInfoVo userLoginInfoDto, OrderExtInfoDto orderExtInfoDTO) {
//创建订单--包括下单购买会员卡创建父子订单
CreateOrderOperateDto operateDto = createOrderForFace(createOrderVo, storeResponseDto, shoppingCartGoodsDto,userLoginInfoDto.getWxAppId());
CreateOrderOperateDto operateDto = createOrderForFace(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto.getWxAppId());
long totalAmount = operateDto.getTotalAmount();
int cardAmount = operateDto.getCardAmount();
QueryOrdersResponse.DataBean.OrderBean fatherOrderBean = operateDto.getFatherOrderBean();
QueryOrdersResponse.DataBean.OrderBean productOrderBean = operateDto.getProductOrderBean();
//支付-- 包含商品券无需支付、唤起微信支付、储值卡支付直接支付、扫脸支付
OrderPayResponse orderPayResponse = pay(userLoginInfoDto,createOrderVo,totalAmount,cardAmount,fatherOrderBean);
OrderPayResponse orderPayResponse = pay(userLoginInfoDto, createOrderVo, totalAmount, cardAmount, fatherOrderBean);
// 默认支付成功必有非码订单号
if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) {
if(createOrderVo.getFaceCode() != null){
if (createOrderVo.getFaceCode() != null) {
createOrderVo.setCardCode(createOrderVo.getFaceCode());
}
BaseResponse baseResponse = failPreOrderPay(LogThreadLocal.getTrackingNo(), productOrderBean, createOrderVo.getCardCode(), null,
......@@ -2851,12 +2895,12 @@ public class OrderServiceImpl implements Orderservice {
* 创建订单
*/
private CreateOrderOperateDto createOrderForFace(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto,
ShoppingCartGoodsDto shoppingCartGoodsDto,String appId){
ShoppingCartGoodsDto shoppingCartGoodsDto, String appId) {
CreateOrderOperateDto response = new CreateOrderOperateDto();
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
//创建普通订单
Function<Object, CreateOrderResponse> createOrder = (var -> {
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto,storeResponseDto);
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
//保存门店渠道信息
......@@ -2874,7 +2918,7 @@ public class OrderServiceImpl implements Orderservice {
});
//创建父子订单
Function<Object, CreateFatherSonOrderResponse> createFatherSonOrder = (var -> {
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq,storeResponseDto,appId);
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq, storeResponseDto, appId);
//查询第三方商品编号
createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest);
MqMessageRequest mqMessageRequest = new MqMessageRequest();
......@@ -2926,12 +2970,12 @@ public class OrderServiceImpl implements Orderservice {
* 支付
* 包含唤起微信支付、储值卡支付直接支付、扫脸支付、商品券无需支付
*/
private OrderPayResponse pay(AssortmentCustomerInfoVo userLoginInfoDto,CreateOrderVo createOrderVo,long totalAmount,int cardAmount,
QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne){
private OrderPayResponse pay(AssortmentCustomerInfoVo userLoginInfoDto, CreateOrderVo createOrderVo, long totalAmount, int cardAmount,
QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne) {
//<!---创建订单公共方法执行逻辑--->
OrderPayResponse orderPayResponse = null;
String appId = userLoginInfoDto.getWxAppId();
PaymentRequest paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto.getOpenId(), createOrderVo.getPartnerId(),appId, null);
PaymentRequest paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto.getOpenId(), createOrderVo.getPartnerId(), appId, null);
//支付金额异常
if (totalAmount < 0) {
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
......@@ -2959,7 +3003,7 @@ public class OrderServiceImpl implements Orderservice {
return orderPayResponse;
}
//0元订单,商品券订单等等
if (totalAmount == 0){
if (totalAmount == 0) {
// 0元订单如果不需要支付,自定义支付单号
String fmId = "SPAY" + ValidationCode.getRandomUuid();
orderPayResponse = orderAdapter.getOrderPayResponse(fatherBeanListOne.getCompanyId(), paymentRequest, fatherBeanListOne.getOid(), fmId);
......@@ -2990,8 +3034,8 @@ public class OrderServiceImpl implements Orderservice {
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> responseDto = null;
try {
responseDto = paymentNewClient.facePay(request);
LogUtil.info("facePay_response", null,JSONObject.toJSON(responseDto));
}catch (Exception e){
LogUtil.info("facePay_response", null, JSONObject.toJSON(responseDto));
} catch (Exception e) {
LogUtil.error("facePay_error", null, null, e);
}
if (responseDto == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseDto.getCode()) || responseDto.getData() == null) {
......@@ -3017,17 +3061,17 @@ public class OrderServiceImpl implements Orderservice {
*/
private String getQueryOrderChannelType(QueryOrderVo queryOrderVo, AssortmentCustomerInfoVo userLoginInfoDto) {
String channelType = OrderChannelType.SAAS.getCode();
if(IappIdType.WC_XCX.getCode().equals(userLoginInfoDto.getIappId())) {
if (IappIdType.WC_XCX.getCode().equals(userLoginInfoDto.getIappId())) {
channelType = OrderChannelType.IWC.getCode();
} else if(OrderChannelType.SAASMALL.getCode().equals(queryOrderVo.getChannelType())) {
} else if (OrderChannelType.SAASMALL.getCode().equals(queryOrderVo.getChannelType())) {
channelType = OrderChannelType.SAASMALL.getCode();
} else if(UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
} else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
channelType = OrderChannelType.APP.getCode();
}
return channelType;
}
public BaseResponse queryOrderByConditions(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo){
public BaseResponse queryOrderByConditions(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo) {
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(queryOrderByConditionsRequestVo.getSessionId());
if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
......@@ -3039,42 +3083,43 @@ public class OrderServiceImpl implements Orderservice {
BeanUtil.convertBean(queryOrderByConditionsRequestVo, orderConditionsReq);
orderConditionsReq.setUserId(userId);
Date startDate = DateUtil.convert2Date("2020-08-01 00:00:00", DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
orderConditionsReq.setStartTimestamp(startDate.getTime()/1000);
orderConditionsReq.setEndTimestamp(new Date().getTime()/1000);
BaseDownLoadResponse<List<OrderInfoReqs>> orderInfoReqs = orderDownLoadSdkService.queryOrderByConditions(orderConditionsReq,LogTreadLocal.getTrackingNo());
orderConditionsReq.setStartTimestamp(startDate.getTime() / 1000);
orderConditionsReq.setEndTimestamp(new Date().getTime() / 1000);
BaseDownLoadResponse<List<OrderInfoReqs>> orderInfoReqs = orderDownLoadSdkService.queryOrderByConditions(orderConditionsReq, LogTreadLocal.getTrackingNo());
if (!String.valueOf(RESPONSE_SUCCESS_CODE).equals(orderInfoReqs.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode());
}
Map<String, Object> responseMap = Maps.newTreeMap();
//用户无订单数据
if (orderInfoReqs.getResult() == null || orderInfoReqs.getTotalNum()== 0) {
if (orderInfoReqs.getResult() == null || orderInfoReqs.getTotalNum() == 0) {
return ResponseUtil.success();
}
responseVos = orderInfoReqs.getResult().stream().map(
orderBean -> {
QueryOrderByConditionsResponseVo queryOrderByConditionsResponseVo = new QueryOrderByConditionsResponseVo();
BeanUtil.convertBean(orderBean,queryOrderByConditionsResponseVo);
BeanUtil.convertBean(orderBean,queryOrderByConditionsResponseVo);
BeanUtil.convertBean(orderBean, queryOrderByConditionsResponseVo);
BeanUtil.convertBean(orderBean, queryOrderByConditionsResponseVo);
List<String> imgUrl = new ArrayList<>();
String extInfo = orderBean.getExtInfo();
if(!StringUtil.isEmpty(extInfo)){
if (!StringUtil.isEmpty(extInfo)) {
JSONObject jsonObject = JSONObject.parseObject(extInfo);
JSONArray jsonArray = (JSONArray) JSONArray.parse(jsonObject.getString("imgUlr"));
for(int i = 0 ;i< jsonArray.size() ;i++){
for (int i = 0; i < jsonArray.size(); i++) {
imgUrl.add(String.valueOf(jsonArray.get(i)));
}
}
if(null !=orderBean.getOrderSettlementDetailList() && orderBean.getOrderSettlementDetailList().size()>0){
queryOrderByConditionsResponseVo.setSettlementAmount(orderBean.getOrderSettlementDetailList().stream().map(OrderSettlementResp::getSettlementAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
}else{
if (null != orderBean.getOrderSettlementDetailList() && orderBean.getOrderSettlementDetailList().size() > 0) {
queryOrderByConditionsResponseVo.setSettlementAmount(orderBean.getOrderSettlementDetailList().stream().map(OrderSettlementResp::getSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
} else {
queryOrderByConditionsResponseVo.setSettlementAmount(BigDecimal.ZERO);
}
queryOrderByConditionsResponseVo.setImgUrl(imgUrl);
queryOrderByConditionsResponseVo.setOrderStateValue(orderSdkAdapter.getOrderStatusValue(orderBean.getOrderState()));
SimpleDateFormat sdff=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdff = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sd = sdff.format(new Date(Long.valueOf(orderBean.getCreateTime())));
queryOrderByConditionsResponseVo.setCreateTime(sd);
return queryOrderByConditionsResponseVo; }
return queryOrderByConditionsResponseVo;
}
).collect(Collectors.toList());
} catch (Exception e) {
LogUtil.error("queryOrders_error", gson.toJson(queryOrderByConditionsRequestVo), e);
......@@ -3085,6 +3130,7 @@ public class OrderServiceImpl implements Orderservice {
/**
* 获取商户支付超时时间
*
* @param partnerId 商户Id
* @return 超时时间
*/
......@@ -3100,6 +3146,7 @@ public class OrderServiceImpl implements Orderservice {
/**
* 催单
*
* @param reminderVo
* @return
*/
......@@ -3123,19 +3170,19 @@ public class OrderServiceImpl implements Orderservice {
}
//调用配送服务进行催单
OrderRemindRequestDto dto =new OrderRemindRequestDto();
OrderRemindRequestDto dto = new OrderRemindRequestDto();
dto.setOrderKey(reminderVo.getOid());
dto.setStoreId(orderBean.getShopId());
dto.setDeliveryChannel("CanDao");
dto.setDisplayOrderId(orderBean.getDownstreamThirdOrderCode());
if (orderBean.getAddInfo() != null){
if (orderBean.getAddInfo() != null) {
dto.setDeliveryId(orderBean.getAddInfo().getDeliveryId());
}
QueryDeliveryAmountResponseDto responseDto = deliveryFeiginClient.orderRemind(dto);
if(null != responseDto && 120 == responseDto.getCode()) {
if (null != responseDto && 120 == responseDto.getCode()) {
return ResponseUtil.error("120", responseDto.getMsg());
}
if(responseDto == null || RESPONSE_SUCCESS_CODE != responseDto.getCode()) {
if (responseDto == null || RESPONSE_SUCCESS_CODE != responseDto.getCode()) {
return ResponseUtil.error(ResponseResult.DELIVERY_REMINDER_ERROR);
}
return ResponseUtil.success();
......@@ -3143,6 +3190,7 @@ public class OrderServiceImpl implements Orderservice {
/**
* 查询骑手位置
*
* @param vo
* @return
*/
......@@ -3152,23 +3200,23 @@ public class OrderServiceImpl implements Orderservice {
if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
QueryLocusRiderTrackDto dto =new QueryLocusRiderTrackDto();
QueryLocusRiderTrackDto dto = new QueryLocusRiderTrackDto();
dto.setDeliveryChannel("CanDao");
dto.setOrderId(vo.getOid());
MCCafeDeliveryBaseResponse<ResRiderTrackDto> responses = deliveryFeiginClient.listFreeRider(dto);
if(responses == null || RESPONSE_SUCCESS_CODE != Integer.valueOf(responses.getCode()) || responses.getData() ==null ) {
if (responses == null || RESPONSE_SUCCESS_CODE != Integer.valueOf(responses.getCode()) || responses.getData() == null) {
return ResponseUtil.error(ResponseResult.DELIVERY_QUERY_RIDER_ERROR);
}
return ResponseUtil.success(responses.getData());
}
public String getMealCodeRule(String appId){
public String getMealCodeRule(String appId) {
String mealCodeRule = "";
List<AssortmentOpenPlatformPartnerWxappConfig> partnerWxappConfigs = orderAdapter.cacheSelectDefaultPage(appId, "2");
Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity()));
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get("mealCodeRule");
if(null != refundDeliveryFeeConfig) {
if (null != refundDeliveryFeeConfig) {
mealCodeRule = refundDeliveryFeeConfig.getAppValue();
}
return mealCodeRule;
......@@ -3176,6 +3224,7 @@ public class OrderServiceImpl implements Orderservice {
/**
* 创建混合支付
*
* @param orderBean
* @param paymentRequest
* @param partnerPayOvertime
......@@ -3195,7 +3244,8 @@ public class OrderServiceImpl implements Orderservice {
, String trackingNo) {
String ebCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), channel, storeId);
OrderPayResponse orderPayResponse = new OrderPayResponse();;
OrderPayResponse orderPayResponse = new OrderPayResponse();
;
if (StringUtils.isBlank(ebCode)) {
orderPayResponse.setMsg("渠道码没有配置");
return orderPayResponse;
......@@ -3208,22 +3258,23 @@ public class OrderServiceImpl implements Orderservice {
do {
try {
combPayResponse = comPayClient.combPay(combPayRequest, combPayRequest.getPartner_id());
if (combPayResponse!=null) {
if (combPayResponse != null) {
break;
}
} catch (Exception exception) {}
} catch (Exception exception) {
}
i++;
} while (i<4);
} while (i < 4);
if (combPayResponse==null || !ResponseCodeConstant.PAYMENT_RESPONSE_SUCCESS.equals(combPayResponse.getCode())) {
log.info("混合支付返回信息错误,trackingNo:{} request:{} response:{}",trackingNo, JSONObject.toJSONString(combPayRequest), JSONObject.toJSONString(combPayResponse));
if (combPayResponse == null || !ResponseCodeConstant.PAYMENT_RESPONSE_SUCCESS.equals(combPayResponse.getCode())) {
log.info("混合支付返回信息错误,trackingNo:{} request:{} response:{}", trackingNo, JSONObject.toJSONString(combPayRequest), JSONObject.toJSONString(combPayResponse));
orderPayResponse.setMsg(combPayResponse.getMsg());
return orderPayResponse;
}
Integer svcAmount = 0;
Integer svcVAmount = 0;
List<CombPayResponse.PayPlatform> payPlatforms = combPayResponse.getData().getPayPlatformResponseList();
if(payPlatforms.size()==0) {
if (payPlatforms.size() == 0) {
orderPayResponse.setMsg("混合支付:生成预支付失败");
return orderPayResponse;
}
......@@ -3234,21 +3285,21 @@ public class OrderServiceImpl implements Orderservice {
.orElse(null);
//现金+svc 现金
if (payPlatforms.size()==2 || payPlatforms.size()==1 && cashPay!=null) {
orderPayResponse = orderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(),orderBean.getCompanyId(),storeId);
if (payPlatforms.size() == 2 || payPlatforms.size() == 1 && cashPay != null) {
orderPayResponse = orderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(), orderBean.getCompanyId(), storeId);
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(orderPayResponse.getPayMode());
//隐射关系
redisCache.save(RedisUtil.getPaymentTransIdOrderKey(cashPay.getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS);
redisCache.save(RedisUtil.getPaymentTransIdOrderKey(cashPay.getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS);
//加入轮训队列
putDelMq(orderBean.getCompanyId(),storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(cashPay.getEbCode()).getIndex().intValue());
putDelMq(orderBean.getCompanyId(), storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(cashPay.getEbCode()).getIndex().intValue());
return orderPayResponse;
}
//单svc
else{
else {
CombPayResponse.PayPlatform svcPay = payPlatforms
.stream()
.filter(f -> PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
......@@ -3280,12 +3331,13 @@ public class OrderServiceImpl implements Orderservice {
/**
* 通过payCode ->clientCode
*
* @param wxAppid
* @param channel
* @param storeId
* @return
*/
private String getPayCodeByChanel(String wxAppid,String channel,String storeId) {
private String getPayCodeByChanel(String wxAppid, String channel, String storeId) {
if (StringUtils.isBlank(channel)) return "";
PayChannelType byIndex = PayChannelType.getByIndex(Byte.parseByte(channel));
......@@ -3293,7 +3345,7 @@ public class OrderServiceImpl implements Orderservice {
AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(wxAppid
, storeId
, byIndex.getEbcode());
if (wxAppStore!=null && StringUtils.isNotBlank(wxAppStore.getClientCode())) {
if (wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getClientCode())) {
return wxAppStore.getClientCode();
}
return "";
......@@ -3302,22 +3354,23 @@ public class OrderServiceImpl implements Orderservice {
public String cannelComPayOrder(ConfirmOrderDto confirmOrderDto, QueryOrdersResponseDto.DataBean.OrderBean orderBean) {
//失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(confirmOrderDto.getOrderId(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL,"混合支付SVC卡支付失败", LogTreadLocal.getTrackingNo(), null);
AfterSalesType.SYSTEM_CANCEL, "混合支付SVC卡支付失败", LogTreadLocal.getTrackingNo(), null);
//BaseOrderResponse request = orderCenterSdkService.orderCancel(cancelOrderRequest);
BaseOrderResponse request = null;
int i = 1;
do {
try {
request = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (request!=request) {
if (request != request) {
break;
}
} catch (Exception e) {}
} catch (Exception e) {
}
i++;
}while (i<4);
} while (i < 4);
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
if(ResponseCodeConstant.RESPONSE_SUCCESS.equals(request.getErrcode())) {
if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(request.getErrcode())) {
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
return this.newSendPaySuccessNoticeMessage();
} else {
......
package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.ecology.SubscribeMessageRequest;
import cn.freemud.entities.dto.ecology.SubscribeMessageResponse;
import cn.freemud.entities.dto.ecology.VirtualBindStoreResponse;
import cn.freemud.entities.dto.ecology.VirtualStoreRequest;
import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto;
......@@ -28,4 +30,7 @@ public interface EcologyAdminApplicationClient {
@PostMapping(value = "/ecology/api/getAuthorizerAccessToken")
GetTokenResponseDto getAuthorizerAccessToken(@RequestBody GetAuthorizerRequestDto request);
@PostMapping(value = "/ecology/api/subscribeMessage/send")
SubscribeMessageResponse subscribeMessage(SubscribeMessageRequest request);
}
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