Commit fa31ab87 by 徐康

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

parents b4641bc1 89add2f7
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.14-SNAPSHOT</version> <version>2.0.15-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<version>1.4.35-SNAPSHOT</version> <version>1.4.36-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -82,4 +82,5 @@ ...@@ -82,4 +82,5 @@
| 2.0.11-SNAPSHOT| 麦咖啡| 谌会阳 |2020-08-08 | 2.0.11-SNAPSHOT| 麦咖啡| 谌会阳 |2020-08-08
| 2.0.12-SNAPSHOT| OrderSourceType 调整 | 谌会阳 |2020-08-10 | 2.0.12-SNAPSHOT| OrderSourceType 调整 | 谌会阳 |2020-08-10
| 2.0.13-SNAPSHOT| 加料商品 | 谌会阳 |2020-08-14 | 2.0.13-SNAPSHOT| 加料商品 | 谌会阳 |2020-08-14
| 2.0.14-SNAPSHOT| 商品统计分类名称保存 | wuping | 2020-08-20 | | 2.0.14-SNAPSHOT| 商品统计分类名称保存 | wuping | 2020-08-20 |
\ No newline at end of file | 2.0.15-SNAPSHOT| 升级ordercenter-sdk | 肖家炜 | 2020-08-25 |
\ No newline at end of file
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>sdk-common-base</artifactId> <artifactId>sdk-common-base</artifactId>
<version>1.3.9-SNAPSHOT</version> <version>1.5.2.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
...@@ -35,12 +35,12 @@ ...@@ -35,12 +35,12 @@
<dependency> <dependency>
<artifactId>couponcenter-sdk</artifactId> <artifactId>couponcenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<version>1.11.0-SNAPSHOT</version> <version>1.10.2.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.14-SNAPSHOT</version> <version>2.0.15-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import lombok.Data; import lombok.Data;
import lombok.ToString;
@Data @Data
@ToString
public class RefundNotifyCallbackRequestVo { public class RefundNotifyCallbackRequestVo {
/** /**
* 第三方交易单号 * 第三方交易单号
......
package cn.freemud.enums;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.enums OrderTypeGather
* @Description: TDO 描述....
* @author: family
* @date: 2020/5/7
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public enum McCafeOrderTypeGather {
TAKE_OUT(1, "外卖"),
PRE_ORDER(2, "预订单"),
COLLECT_GOODS(4, "打包"),
EAT_IN(5, "堂食");
private Integer code;
private String desc;
//订单服务订单类型 1=外卖 4=自提,5=堂食
//外卖平台订单类型 1=常规堂食,2=预约堂食,3=常规外送,4=预约外送,5=常规自取,6=预约自取
McCafeOrderTypeGather(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static McCafeOrderTypeGather getByCode(Integer code) {
if (code==null) {
return null;
}
for (McCafeOrderTypeGather orderTypeGather : values()) {
if (orderTypeGather.getCode().equals(code)) {
return orderTypeGather;
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -585,6 +585,11 @@ public class OrderServiceImpl implements Orderservice { ...@@ -585,6 +585,11 @@ public class OrderServiceImpl implements Orderservice {
} }
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;
}
QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(transId); QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(transId);
if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) { if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) {
return refundFaileMessage("order query fail" + queryOrderByIdResponseDto); return refundFaileMessage("order query fail" + queryOrderByIdResponseDto);
...@@ -611,10 +616,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -611,10 +616,14 @@ public class OrderServiceImpl implements Orderservice {
//只有退款成功更新状态.其他情况不处理 //只有退款成功更新状态.其他情况不处理
return refundFaileMessage("pay refundStatus is not 100,refundStatus=" + refundStatus); return refundFaileMessage("pay refundStatus is not 100,refundStatus=" + refundStatus);
} }
// 如果transId为空,返回失败
if (StringUtils.isBlank(requestVo.getTransId())) {
return refundFaileMessage("transId is empty " + requestVo);
}
//查询订单详情 //查询订单详情
QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(requestVo.getTransId()); QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(requestVo.getTransId());
if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) { if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) {
return refundFaileMessage("order query fail" + queryOrderByIdResponseDto); return refundFaileMessage("order query fail " + queryOrderByIdResponseDto);
} }
OrderBean orderBean = new OrderBean(); OrderBean orderBean = new OrderBean();
...@@ -977,6 +986,10 @@ public class OrderServiceImpl implements Orderservice { ...@@ -977,6 +986,10 @@ public class OrderServiceImpl implements Orderservice {
orderStatusTracking(orderBean, orderStatusTrackingInfoByOid); orderStatusTracking(orderBean, orderStatusTrackingInfoByOid);
} }
} }
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())){
orderBean.setOtherCode("");
}
}); });
} }
...@@ -1014,10 +1027,18 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1014,10 +1027,18 @@ public class OrderServiceImpl implements Orderservice {
responseMap.put("orderStatus", orderViewStatusDesc.getOrderStatus()); responseMap.put("orderStatus", orderViewStatusDesc.getOrderStatus());
responseMap.put("takeCode",""); responseMap.put("takeCode","");
responseMap.put("queueIndex",""); 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() : "");
//非外卖单才获取取餐码和排队人数 //非外卖单才获取取餐码和排队人数
if (!OrderType.TAKE_OUT.getCode().equals(orderBean.getType()) ){ if (!OrderType.TAKE_OUT.getCode().equals(orderBean.getType()) ){
responseMap.put("takeCode",orderBean.getOtherCode() ); if (!(OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus()))){
responseMap.put("takeCode",orderBean.getOtherCode() );
}
BaseQueryOrderRequest var1 = new BaseQueryOrderRequest(); BaseQueryOrderRequest var1 = new BaseQueryOrderRequest();
var1.setOrderId(orderBean.getOid()); var1.setOrderId(orderBean.getOid());
var1.setTrackingNo(LogTreadLocal.getTrackingNo()); var1.setTrackingNo(LogTreadLocal.getTrackingNo());
...@@ -1305,6 +1326,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1305,6 +1326,14 @@ public class OrderServiceImpl implements Orderservice {
queryOrderResponseVo.setReserveDeliveryTime(formatSpecialDate(reserveDeliveryTime)); queryOrderResponseVo.setReserveDeliveryTime(formatSpecialDate(reserveDeliveryTime));
} }
if (OrderStatus.TAKE_ORDER.getCode().equals(queryOrderResponseVo.getOrderStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(queryOrderResponseVo.getOrderStatus())){
queryOrderResponseVo.setTakeCode("");
}
queryOrderResponseVo.setOrderTypeDesc(Optional.ofNullable(McCafeOrderTypeGather.getByCode(queryOrderResponseVo.getOrderType()))
.map(McCafeOrderTypeGather::getDesc).orElse(""));
//48小时自动退款描述 //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) { && queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
......
...@@ -173,6 +173,24 @@ public class OrderControllerTest { ...@@ -173,6 +173,24 @@ public class OrderControllerTest {
} }
/** /**
* 退款回调
*/
@Test
public void refundNotifyCallback() {
RefundNotifyCallbackRequestVo request = new RefundNotifyCallbackRequestVo();
request.setRefundStatus(100);
request.setTransId("null");
String str = JSONObject.toJSONString(request);
try {
mockMvc.perform(post("/order/refundNotifyCallback").content(str).
contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()).
andExpect(jsonPath("$.code").value("500"));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 再来一单 * 再来一单
*/ */
@Test @Test
......
...@@ -460,10 +460,4 @@ public class OrderServiceTest { ...@@ -460,10 +460,4 @@ public class OrderServiceTest {
System.out.println("param:"+JSON.toJSONString(createOrderResponse)); System.out.println("param:"+JSON.toJSONString(createOrderResponse));
} }
// @Test
// public void testGetPartnerPayOvertime() {
// String partnerPayOvertime = orderService.getPartnerPayOvertime("1864");
// System.out.println("partnerPayOvertime:" + partnerPayOvertime);
// }
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<version>1.0.0</version> <version>1.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.4.35-SNAPSHOT</version> <version>1.4.36-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -7,15 +7,6 @@ ...@@ -7,15 +7,6 @@
| 1.1.6-SNAPSHOT | OrderExtInfo新增formId | wuping | 2020-02-27 | | 1.1.6-SNAPSHOT | OrderExtInfo新增formId | wuping | 2020-02-27 |
| 1.1.7-SNAPSHOT | 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 | | 1.1.7-SNAPSHOT | 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 |
| 1.1.8-SNAPSHOT | 预约单接单接口增加预约任务 | wuping | 2020-03-17 | | 1.1.8-SNAPSHOT | 预约单接单接口增加预约任务 | wuping | 2020-03-17 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.4.12-SNAPSHOT | 增加新接口:新增结算信息 | wuping | 2020-05-28 |
| 1.4.13-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 |
| 1.4.14-SNAPSHOT | 增加非码微店类型 | 梁崇福 | 2020-06-05 |
| 1.3.13-SNAPSHOT | 预约单任务删除 | wuping | 2020-06-05 |
| 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 | | 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 | | 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 | | 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
...@@ -23,7 +14,8 @@ ...@@ -23,7 +14,8 @@
| 1.4.13-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 | | 1.4.13-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 |
| 1.3.13-SNAPSHOT | 预约单任务删除 | wuping | 2020-06-05 | | 1.3.13-SNAPSHOT | 预约单任务删除 | wuping | 2020-06-05 |
| 1.3.14-SNAPSHOT | es综合查询新增appId查询条件 | wuping | 2020-06-30 | | 1.3.14-SNAPSHOT | es综合查询新增appId查询条件 | wuping | 2020-06-30 |
|1.4.31-SNAPSHOT | 增加手动录单,和完成订单接口 |张虹旺| 2020-07-18 | 1.4.31-SNAPSHOT | 增加手动录单,和完成订单接口 |张虹旺| 2020-07-18
|1.4.32-SNAPSHOT | 最新快照版本| 李小二 |2020-08-05 | 1.4.32-SNAPSHOT | 最新快照版本| 李小二 |2020-08-05
|1.4.33-SNAPSHOT | 新增修改取餐码接口| 谌会阳 |2020-08-08 | 1.4.33-SNAPSHOT | 新增修改取餐码接口| 谌会阳 |2020-08-08
|1.4.35-SNAPSHOT | 麦咖啡| 谌会阳 |2020-08-08 | 1.4.35-SNAPSHOT | 麦咖啡| 谌会阳 |2020-08-08
\ No newline at end of file | 1.4.36-SNAPSHOT | 修复queryRelatedOrderByCode反序列化报错| 肖家炜 |2020-08-25
\ No newline at end of file
...@@ -24,6 +24,7 @@ public enum ResponseResultEnum { ...@@ -24,6 +24,7 @@ public enum ResponseResultEnum {
ORDER_DATA_NOT_FOUND("54001", "查询订单数据失败"), ORDER_DATA_NOT_FOUND("54001", "查询订单数据失败"),
ORDER_DATA_NOT_EXIST("54002", "没有相关数据"), ORDER_DATA_NOT_EXIST("54002", "没有相关数据"),
ORDER_STORE_NOT_FOUND("54003", "门店ID或门店名称不存在"), ORDER_STORE_NOT_FOUND("54003", "门店ID或门店名称不存在"),
ORDER_TRANS_ID_IS_NULL("54004", "transId为null"),
; ;
private String code; private String code;
......
package com.freemud.application.sdk.api.ordercenter.service; package com.freemud.application.sdk.api.ordercenter.service;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.base.BaseRequest; import com.freemud.application.sdk.api.base.BaseRequest;
import com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties; import com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties;
import com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant; import com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant;
import com.freemud.application.sdk.api.ordercenter.constant.ResponseConstant;
import com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum; import com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderAffirmReq; import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderAffirmReq;
...@@ -20,12 +22,14 @@ import com.freemud.application.sdk.api.ordercenter.util.ResponseUtil; ...@@ -20,12 +22,14 @@ import com.freemud.application.sdk.api.ordercenter.util.ResponseUtil;
import com.freemud.application.sdk.api.util.RequestThirdPartyUtils; import com.freemud.application.sdk.api.util.RequestThirdPartyUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ParameterizedTypeReference;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -602,12 +606,28 @@ public class OrderSdkService { ...@@ -602,12 +606,28 @@ public class OrderSdkService {
* @return * @return
*/ */
public BaseResponse<List<OrderInfoReqs>> queryRelatedOrderByCode(QueryRelatedOrderByCodeReq request, String trackingNo) { public BaseResponse<List<OrderInfoReqs>> queryRelatedOrderByCode(QueryRelatedOrderByCodeReq request, String trackingNo) {
StringBuilder urlString = new StringBuilder(InterfaceAddressConstant.QUERY_RELATED_ORDER_BY_CODE) if (StringUtils.isBlank(request.getOrderCode())) {
.append("?orderCode=").append(request.getOrderCode()); return ResponseUtil.error(ResponseResultEnum.ORDER_TRANS_ID_IS_NULL);
OrderBaseResp<List<OrderInfoReqs>> responseDTO = RequestThirdPartyUtils.httpGetReqComplex(restTemplate, urlString.toString(), }
createBaseRequest(null, trackingNo), new ParameterizedTypeReference<OrderBaseResp<List<OrderInfoReqs>>>() { String urlString = InterfaceAddressConstant.QUERY_RELATED_ORDER_BY_CODE + "?orderCode=" + request.getOrderCode();
}); OrderBaseResp responseDTO = RequestThirdPartyUtils.httpGetReqComplex(restTemplate, urlString,
return responseHandle(responseDTO); createBaseRequest(null, trackingNo), new ParameterizedTypeReference<OrderBaseResp>() {});
// 1.9.37 fix 原本使用自带序列化成list时如果基础服务查询失败返回object会抛异常,所以改成手动操作
OrderBaseResp<List<OrderInfoReqs>> resp;
if (Objects.isNull(responseDTO)) {
resp = null;
} else {
List<OrderInfoReqs> result;
if (Objects.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, responseDTO.getCode())) {
result = JSON.parseArray(Objects.toString(responseDTO.getResult(), "[]"), OrderInfoReqs.class);
} else {
result = Collections.emptyList();
}
resp = new OrderBaseResp<>();
BeanUtils.copyProperties(responseDTO, resp, "result");
resp.setResult(result);
}
return responseHandle(resp);
} }
private <T> BaseRequest<T> createBaseRequest(T req, String trackingNo) { private <T> BaseRequest<T> createBaseRequest(T req, String trackingNo) {
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>sdk-common-base</artifactId> <artifactId>sdk-common-base</artifactId>
<version>1.4.4-SNAPSHOT</version> <version>1.5.2.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -116,6 +116,7 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -116,6 +116,7 @@ public class ActivityCalculationDiscountRequestDto {
* 加料 * 加料
*/ */
private List<Material> smallMaterial; private List<Material> smallMaterial;
private String spuId;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
......
...@@ -322,6 +322,7 @@ public class CartGoods { ...@@ -322,6 +322,7 @@ public class CartGoods {
// 原始字符串 // 原始字符串
StringBuilder originalString = new StringBuilder(); StringBuilder originalString = new StringBuilder();
originalString.append(goodsId); originalString.append(goodsId);
originalString.append(couponCode);
if (CollectionUtils.isNotEmpty(extra)) { if (CollectionUtils.isNotEmpty(extra)) {
extra.stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> originalString.append(e.getAttributeId())); extra.stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> originalString.append(e.getAttributeId()));
} }
...@@ -343,6 +344,7 @@ public class CartGoods { ...@@ -343,6 +344,7 @@ public class CartGoods {
StringBuilder currentString = new StringBuilder(); StringBuilder currentString = new StringBuilder();
currentString.append(cartGoods.getGoodsId()); currentString.append(cartGoods.getGoodsId());
currentString.append(cartGoods.getCouponCode());
if (CollectionUtils.isNotEmpty(cartGoods.getExtra())) { if (CollectionUtils.isNotEmpty(cartGoods.getExtra())) {
cartGoods.getExtra().stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> currentString.append(e.getAttributeId())); cartGoods.getExtra().stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> currentString.append(e.getAttributeId()));
} }
......
...@@ -849,6 +849,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -849,6 +849,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty()); calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty());
calculationDiscountGoods.setOriginalPrice(cartGoods.getFinalPrice()); calculationDiscountGoods.setOriginalPrice(cartGoods.getFinalPrice());
calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount()); calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount());
calculationDiscountGoods.setSpuId(cartGoods.getSpuId());
//加料 //加料
if (CollectionUtils.isNotEmpty(cartGoods.getProductMaterialList())) { if (CollectionUtils.isNotEmpty(cartGoods.getProductMaterialList())) {
......
...@@ -133,7 +133,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -133,7 +133,7 @@ public class ShoppingCartMCoffeeServiceImpl {
//商品券已添加情况校验 //商品券已添加情况校验
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode); List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode);
CartGoods addCartGoods = convent2CartGoods(addShoppingCartGoodsRequestVo); CartGoods addCartGoods = convent2CartGoods(addShoppingCartGoodsRequestVo,goodsId);
setClassificationAndPrice(addCartGoods, productBeanListSpuClass); setClassificationAndPrice(addCartGoods, productBeanListSpuClass);
//查询多个商品库存信息 //查询多个商品库存信息
// Integer checkQty = this.checkSkuQty(oldCartGoodsList, addCartGoods); // Integer checkQty = this.checkSkuQty(oldCartGoodsList, addCartGoods);
...@@ -186,7 +186,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -186,7 +186,7 @@ public class ShoppingCartMCoffeeServiceImpl {
//购物车已存在商品券 //购物车已存在商品券
if (StringUtils.isNotBlank(cartGoods.getCouponCode())) { if (StringUtils.isNotBlank(cartGoods.getCouponCode())) {
ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon calculationDiscountCoupon = new ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon(); ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon calculationDiscountCoupon = new ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon();
calculationDiscountCoupon.setCode(couponCode); calculationDiscountCoupon.setCode(cartGoods.getCouponCode());
coupons.add(calculationDiscountCoupon); coupons.add(calculationDiscountCoupon);
} }
if (couponCode != null && couponCode.equals(cartGoods.getCouponCode())) { if (couponCode != null && couponCode.equals(cartGoods.getCouponCode())) {
...@@ -659,15 +659,15 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -659,15 +659,15 @@ public class ShoppingCartMCoffeeServiceImpl {
List<CartGoods> allCartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, newCartGoods); List<CartGoods> allCartGoodsList = checkCartGoods(partnerId, storeId, orderType, menuType, shoppingCartGoodsResponseVo, newCartGoods);
//添加商品为商品券时,商品校验接口券号未设置,设置商品券号 //添加商品为商品券时,商品校验接口券号未设置,设置商品券号
if (StringUtils.isNotBlank(addCartGoods.getCouponCode())) { // if (StringUtils.isNotBlank(addCartGoods.getCouponCode())) {
for (CartGoods cartGoods : allCartGoodsList) { // for (CartGoods cartGoods : allCartGoodsList) {
if (cartGoods.getGoodsId().equals(addCartGoods.getGoodsId())) { // if (cartGoods.getGoodsId().equals(addCartGoods.getGoodsId()) && cartGoods.getCouponCode() == null) {
cartGoods.setCouponCode(addCartGoods.getCouponCode()); // cartGoods.setCouponCode(addCartGoods.getCouponCode());
cartGoods.setGoodsType(2); // cartGoods.setGoodsType(2);
break; // break;
} // }
} // }
} // }
List<CartGoods> nowCartGoodsList = new ArrayList<>(); List<CartGoods> nowCartGoodsList = new ArrayList<>();
...@@ -843,7 +843,8 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -843,7 +843,8 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
//超值加购商品赋值 //超值加购商品赋值
if (ObjectUtils.equals(GoodsTypeEnum.REDUCE_PRICE_GOODS.getGoodsType(), cartGoods.getGoodsType())) { if (ObjectUtils.equals(GoodsTypeEnum.REDUCE_PRICE_GOODS.getGoodsType(), cartGoods.getGoodsType())
|| ObjectUtils.equals(GoodsTypeEnum.COUPON_GOODS.getGoodsType(), cartGoods.getGoodsType())) {
cartGoods.setOriginalPrice(productBeanListSpuClass.get(0).getOriginalPrice()); cartGoods.setOriginalPrice(productBeanListSpuClass.get(0).getOriginalPrice());
cartGoods.setFinalPrice(productBeanListSpuClass.get(0).getFinalPrice()); cartGoods.setFinalPrice(productBeanListSpuClass.get(0).getFinalPrice());
cartGoods.setPackPrice(productBeanListSpuClass.get(0).getPackPrice()); cartGoods.setPackPrice(productBeanListSpuClass.get(0).getPackPrice());
...@@ -861,10 +862,10 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -861,10 +862,10 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
public static CartGoods convent2CartGoods(MCoffeeAddGoodsRequestVo addShoppingCartGoodsRequestVo) { public static CartGoods convent2CartGoods(MCoffeeAddGoodsRequestVo addShoppingCartGoodsRequestVo,String goodsId) {
String spuId = addShoppingCartGoodsRequestVo.getSpuId(); String spuId = addShoppingCartGoodsRequestVo.getSpuId();
String skuId = addShoppingCartGoodsRequestVo.getSkuId(); String skuId = addShoppingCartGoodsRequestVo.getSkuId();
String goodsId = StringUtils.isEmpty(skuId) ? spuId : skuId; // String goodsId = StringUtils.isEmpty(skuId) ? spuId : skuId;
Integer qty = addShoppingCartGoodsRequestVo.getQty() == null ? 1 : addShoppingCartGoodsRequestVo.getQty(); Integer qty = addShoppingCartGoodsRequestVo.getQty() == null ? 1 : addShoppingCartGoodsRequestVo.getQty();
CartGoods cartGoods = new CartGoods(); CartGoods cartGoods = new CartGoods();
cartGoods.setGoodsId(goodsId); cartGoods.setGoodsId(goodsId);
...@@ -875,6 +876,10 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -875,6 +876,10 @@ public class ShoppingCartMCoffeeServiceImpl {
Integer goodsType = StringUtils.isEmpty(skuId) || ObjectUtils.equals(spuId, skuId) ? GoodsTypeEnum.SPU_GOODS.getGoodsType() : GoodsTypeEnum.SKU_GOODS.getGoodsType(); Integer goodsType = StringUtils.isEmpty(skuId) || ObjectUtils.equals(spuId, skuId) ? GoodsTypeEnum.SPU_GOODS.getGoodsType() : GoodsTypeEnum.SKU_GOODS.getGoodsType();
if (spuId.startsWith(CommonsConstant.COUPON_PREFIX)) { if (spuId.startsWith(CommonsConstant.COUPON_PREFIX)) {
goodsType = GoodsTypeEnum.COUPON_GOODS.getGoodsType(); goodsType = GoodsTypeEnum.COUPON_GOODS.getGoodsType();
cartGoods.setSpuId(goodsId);
cartGoods.setSkuId(goodsId);
cartGoods.setCouponCode(spuId.substring(CommonsConstant.COUPON_PREFIX.length()));
// cartGoods.setCartGoodsUid(spuId);
} else if (CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductComboList()) || CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductGroupList())) { } else if (CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductComboList()) || CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductGroupList())) {
goodsType = GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(); goodsType = GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType();
} }
......
...@@ -11,6 +11,7 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; ...@@ -11,6 +11,7 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityChannelEnum; import cn.freemud.enums.ActivityChannelEnum;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.GoodsTypeEnum;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.CommonService; import cn.freemud.service.CommonService;
...@@ -383,7 +384,7 @@ public class CalculationServiceImpl { ...@@ -383,7 +384,7 @@ public class CalculationServiceImpl {
//累加需加入计算的商品 //累加需加入计算的商品
int index; int index;
// 当商品已存在时,需累加数量 // 当商品已存在时,需累加数量
if ((index = calculationDiscountGoodsList.indexOf(calculationDiscountGoods)) >= 0) { if ((index = calculationDiscountGoodsList.indexOf(calculationDiscountGoods)) >= 0 && !GoodsTypeEnum.COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
ActivityCalculationDiscountRequestDto.CalculationDiscountGoods oldCalculationDiscountGoods = calculationDiscountGoodsList.get(index); ActivityCalculationDiscountRequestDto.CalculationDiscountGoods oldCalculationDiscountGoods = calculationDiscountGoodsList.get(index);
oldCalculationDiscountGoods.setGoodsQuantity(oldCalculationDiscountGoods.getGoodsQuantity() + calculationDiscountGoods.getGoodsQuantity()); oldCalculationDiscountGoods.setGoodsQuantity(oldCalculationDiscountGoods.getGoodsQuantity() + calculationDiscountGoods.getGoodsQuantity());
} else { } else {
......
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