Commit 503f2623 by zhiheng.zhang

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

parents 831ab577 b512ec99
...@@ -10,8 +10,7 @@ ...@@ -10,8 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-shoppingcart-sdk</artifactId> <artifactId>assortment-shoppingcart-sdk</artifactId>
<version>2.0.14-SNAPSHOT</version> <version>2.0.15-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -144,6 +144,17 @@ public interface ShoppingCartBaseService { ...@@ -144,6 +144,17 @@ public interface ShoppingCartBaseService {
default BaseResponse clearMCCafe(CartParamDto cartParamDto, String trackingNo) { default BaseResponse clearMCCafe(CartParamDto cartParamDto, String trackingNo) {
return null; return null;
} }
/**
* 麦咖啡根据券类型 和用户信息清除指定券缓存
*
* @param cartParamDto
*/
default BaseResponse clearMCCafeCouponByType(CartParamDto cartParamDto,Integer couponType, String trackingNo) {
return null;
}
/** /**
* 获取商品详细信息 * 获取商品详细信息
* *
......
...@@ -225,6 +225,19 @@ public class ShoppingCartBaseServiceImpl implements ShoppingCartBaseService { ...@@ -225,6 +225,19 @@ public class ShoppingCartBaseServiceImpl implements ShoppingCartBaseService {
} }
} }
@Override
public BaseResponse clearMCCafeCouponByType(CartParamDto cartParamDto,Integer couponType,String trackingNo) {
try {
cartParamDto.setCouponType(couponType);
redisTemplate.delete(this.getShoppingCartCouponCodeKey(cartParamDto));
return new BaseResponse(VersionUtils.VER_1, CartResponseConstant.SUCCESS.getCode(), CartResponseConstant.SUCCESS.getMessage());
} catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", trackingNo, e.getMessage(), "clearMoneyCoupon", cartParamDto, e, Level.ERROR);
return null;
}
}
/** /**
* 修正购物车中的spu和sku商品信息 * 修正购物车中的spu和sku商品信息
* *
......
...@@ -3639,6 +3639,7 @@ public class OrderAdapter { ...@@ -3639,6 +3639,7 @@ public class OrderAdapter {
orderPayDto.setAppId(paymentRequest.getWxAppId()); orderPayDto.setAppId(paymentRequest.getWxAppId());
orderPayDto.setPayCode(paymentRequest.getPayCode()); orderPayDto.setPayCode(paymentRequest.getPayCode());
orderPayDto.setVer("V1"); orderPayDto.setVer("V1");
orderPayDto.setStoreName(orderBean.getShopName());
orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30")); orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
List<ProductVO> productVOS = new ArrayList<ProductVO>(); List<ProductVO> productVOS = new ArrayList<ProductVO>();
if (CollectionUtils.isNotEmpty(orderBean.getProductList())) { if (CollectionUtils.isNotEmpty(orderBean.getProductList())) {
......
...@@ -289,7 +289,7 @@ public class CheckOrder { ...@@ -289,7 +289,7 @@ public class CheckOrder {
Date todayEnd = DateUtil.setEndDay(new Date()); Date todayEnd = DateUtil.setEndDay(new Date());
boolean toDay = orderDate.before(todayEnd); boolean toDay = orderDate.before(todayEnd);
BusinessDate businessDate = getStoreBusinessDate(storeResponseDto, toDay); BusinessDate businessDate = getStoreBusinessDate(storeResponseDto, toDay);
boolean businessEndDate = (DateUtils.addMinutes(orderDate, 45).compareTo(businessDate.getEndDate()) <= 0); boolean businessEndDate = (DateUtils.addMinutes(orderDate, 45).compareTo(businessDate.getEndDate()) >= 0);
if (businessEndDate) { if (businessEndDate) {
throw new ServiceException(ResponseResult.STORE_SELF_ERROR); throw new ServiceException(ResponseResult.STORE_SELF_ERROR);
} }
......
...@@ -24,6 +24,7 @@ import cn.freemud.utils.RedisUtil; ...@@ -24,6 +24,7 @@ import cn.freemud.utils.RedisUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter; import com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter;
import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType; import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
...@@ -248,19 +249,24 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -248,19 +249,24 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){ if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
} }
/* //若是app订单超时回调了 订单已取消则做退款处理
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus()) && OrderSourceType.SAAS.getCode().equals(orderBean.getSource())) {
orderService.timeOutRefund(orderBean);
return orderAdapter.sendPaySuccessNoticeMessage();
}
/**
* 围餐处理 * 围餐处理
*/ */
if ("meals".equals(orderBean.getSource())) { if ("meals".equals(orderBean.getSource())) {
return orderCommonService.paySuccessCallback(message, confirmOrderDto, orderBeans); return orderCommonService.paySuccessCallback(message, confirmOrderDto, orderBeans);
} }
/* /**
* 微商城处理 * 微商城处理
*/ */
if(OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) { if(OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) {
return mallOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans); return mallOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
} }
/* /**
* app订单处理 * app订单处理
*/ */
if(OrderSourceType.APP.getCode().equals(orderBean.getSource())) { if(OrderSourceType.APP.getCode().equals(orderBean.getSource())) {
...@@ -274,7 +280,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -274,7 +280,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if(mcCafePartnerId.equals(orderBean.getCompanyId())) { if(mcCafePartnerId.equals(orderBean.getCompanyId())) {
return mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans); return mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
} }
/* /**
* 默认点餐处理 * 默认点餐处理
*/ */
return orderService.paySuccessCallback(message, confirmOrderDto, orderBeans); return orderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
......
...@@ -92,6 +92,7 @@ import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType; ...@@ -92,6 +92,7 @@ import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq; import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState;
import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq; import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp; import com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse; import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
...@@ -1999,23 +2000,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1999,23 +2000,6 @@ public class OrderServiceImpl implements Orderservice {
return null; return null;
} }
// public void backOrdersNotifyActivity(OrderBean orderBean, List<Integer> transType) {
// LogUtil.info("backOrdersNotifyActivity", gson.toJson(orderBean), gson.toJson(transType));
// if (orderBean == null) {
// return;
// }
// // 删除订单 通知活动添加商品库存
// ActivityCancelStockRequestDto activityCancelStockRequestDto = activityAdapter.convert2ActivityCancelStockRequestDto(
// orderBean, transType);
// try {
// Header header = new Header(MQAction.INSERT.getAction(), "backOrdersNotifyActivity", orderBean.getOid(), backOrdersChangeOrderStatusConsumerQueue);
// MQMessage<ActivityCancelStockRequestDto> message = new MQMessage<>(header, activityCancelStockRequestDto);
// mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
// } catch (Exception e) {
// LogUtil.error("ActivityReverse", JSON.toJSONString(activityCancelStockRequestDto), "", e);
// }
// }
public void backOrdersStatusChange(String oid, Integer orderStatus) { public void backOrdersStatusChange(String oid, Integer orderStatus) {
if (StringUtils.isEmpty(oid)) { if (StringUtils.isEmpty(oid)) {
...@@ -3695,4 +3679,34 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3695,4 +3679,34 @@ public class OrderServiceImpl implements Orderservice {
} }
return map; return map;
} }
/**
* 超时回调直接退款
* @param orderBean
*/
public void timeOutRefund(QueryOrdersResponseDto.DataBean.OrderBean orderBean) {
//调用支付退款
log.info("payment timeout callback for refund orderDto={}",JSON.toJSONString(orderBean));
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = null;
Long refundId = System.currentTimeMillis();
OrderExtInfoDto orderExtInfoDTO = gson.fromJson(orderBean.getExtInfo(), OrderExtInfoDto.class);
if (orderExtInfoDTO==null || StringUtils.isBlank(orderExtInfoDTO.getFmId())) {
return;
}
Integer state = PayRefundStatus.SUCCESS.getCode();
orderBean.setPayVoucher(orderExtInfoDTO.getFmId());
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
String desc = "支付未及时回调";
com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, orderBean.getOid());
response = standardPaymentService.orderRefund(orderPayRefundRequest, LogTreadLocal.getTrackingNo());
log.info("payment timeout callback for refund orderId={},request={},resp={}",orderBean.getOid(),JSON.toJSONString(orderPayRefundRequest),JSON.toJSONString(response));
if (response!=null || state.equals(response.getData().getRefundStatus())) {
sdkUpdateAbnormalState.setAbnormalDesc(desc+",退款成功");
} else {
sdkUpdateAbnormalState.setAbnormalDesc(desc+",退款失败");
}
sdkUpdateAbnormalState.setPartnerId(orderBean.getCompanyId());
sdkUpdateAbnormalState.setAbnormalState(4);
sdkUpdateAbnormalState.setOrderCode(orderBean.getOid());
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
} }
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-shoppingcart-sdk</artifactId> <artifactId>assortment-shoppingcart-sdk</artifactId>
<version>2.0.14-SNAPSHOT</version> <version>2.0.15-SNAPSHOT</version>
</dependency> </dependency>
<!-- 再来一单查询订单信息 --> <!-- 再来一单查询订单信息 -->
<dependency> <dependency>
......
...@@ -876,6 +876,10 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -876,6 +876,10 @@ public class ShoppingCartMCoffeeServiceImpl {
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo);
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
}else { }else {
//清除当前用户的代金券缓存,防止切换门店券数据带到不适用门店
com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto cartParamDto = assortmentSdkService.getCartParamDto(partnerId, fromStoreId, userId);
shoppingCartBaseService.clearMCCafeCouponByType(cartParamDto, SaveCouponType.COUPON.getCode(),LogThreadLocal.getTrackingNo());
// 新门店check购物车中所有商品 // 新门店check购物车中所有商品
List<CartGoods> temList = new ArrayList<>(); List<CartGoods> temList = new ArrayList<>();
for (CartGoods goods : cartGoodsList) { for (CartGoods goods : cartGoodsList) {
......
...@@ -293,7 +293,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -293,7 +293,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
if(products == null || products.isEmpty()){ if(products == null || products.isEmpty()){
return; return;
} }
Set<String> halfGoodIds = new HashSet<>();
List<CartGoods> halfProduct = new ArrayList<>(); List<CartGoods> halfProduct = new ArrayList<>();
for(int x = 0 ; x < products.size() ; x ++){ for(int x = 0 ; x < products.size() ; x ++){
...@@ -343,6 +343,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -343,6 +343,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
Long newPrice = originalPrice - discountAmount - halfSmallMaterialOriTotal; Long newPrice = originalPrice - discountAmount - halfSmallMaterialOriTotal;
// 构建半价行 // 构建半价行
CartGoods cartGoods = buildNewLine(product,ActivityTypeEnum.TYPE_53.getCode(),1,newPrice,product.getGoodsId(),originalPrice); CartGoods cartGoods = buildNewLine(product,ActivityTypeEnum.TYPE_53.getCode(),1,newPrice,product.getGoodsId(),originalPrice);
halfGoodIds.add(cartGoods.getGoodsId());
halfProduct.add(cartGoods); halfProduct.add(cartGoods);
} }
} }
...@@ -372,7 +373,9 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -372,7 +373,9 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
// 只要符合条件就需要设置为空 // 只要符合条件就需要设置为空
// 因为前端指挥在半价行、赠品行上打标 // 因为前端指挥在半价行、赠品行上打标
// 前端是从商品活动信息中查找活动,在商品列表中找商品 // 前端是从商品活动信息中查找活动,在商品列表中找商品
if((gifeProductIds.contains(product.getGoodsId()) && product.getActivityType() == null) || !Objects.equals(num,0)){ if((gifeProductIds.contains(product.getGoodsId()) && product.getActivityType() == null) || !Objects.equals(num,0)
|| halfGoodIds.contains(product.getGoodsId())
){
product.setGoodsId(null); product.setGoodsId(null);
} }
......
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