Commit 241f3997 by 徐康

Merge branch 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa

 Conflicts:
	assortment-ordercenter-sdk/pom.xml
	order-application-service/pom.xml
parents 671d2a12 fc02c8d3
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.4.38-SNAPSHOT</version>
<version>1.5.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......@@ -61,7 +61,7 @@
<dependency>
<artifactId>promotioncenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId>
<version>2.3.RELEASE</version>
<version>2.6.5.SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
......
......@@ -1604,6 +1604,9 @@ public class OrderSdkAdapter {
activityUpdateStockRequest.setPartnerCode(orderBean.getCompanyId());
activityUpdateStockRequest.setStoreId(orderBean.getShopId());
activityUpdateStockRequest.setVer("1");
// add by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
activityUpdateStockRequest.setUserId(orderBean.getUserId());
activityUpdateStockRequest.setOrderCreateTime(DateUtil.getCurrentDate(DateUtil.FORMAT_yyyyMMdd_date));
return activityUpdateStockRequest;
}
......
......@@ -95,6 +95,7 @@ public enum ResponseResult {
ORDER_CREATE_FORMID_ISNULL("45018", "0元购formId不能为空"),
ORDER_GET_PAY_EB_CODE_ERROR("45019", "没有配置支付payEbCode"),
ORDER_WXAPP_NOT_ENABLE_COLLECT_GOODS("45020","小程序未开通到店自取"),
ORDER_PARTNER_REFUND_COUNT_ERR("45021","商户退款数量查询失败"),
/**
* 优惠券活动
......
package com.freemud.sdk.api.assortment.order.request.order;
import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: QueryPartnerRefundCountRequest
* @Package com.freemud.sdk.api.assortment.order.request.order
* @Description:
* @author: pengfei.liu
* @date: 2020/10/26
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目的
*/
@Data
public class QueryStoreRefundCountRequest extends BaseConfig {
/**
* 商户编号
*/
private String partnerId;
/**
* 开始时间戳(单位:秒)
*/
private Long startTimestamp;
/**
* 结束时间戳(单位:秒)
*/
private Long endTimestamp;
/**
* 门店id
*/
List<String> storeIds;
}
package com.freemud.sdk.api.assortment.order.response.order;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: QueryPartnerRefundCountResponse
* @Package com.freemud.sdk.api.assortment.order.response.order
* @Description:
* @author: pegnfei.liu
* @date: 2020/10/27
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目的
*/
@Data
public class QueryPartnerRefundCountResponse {
private String errcode;
private String errmsg;
private PartnerRefundCount data;
@NoArgsConstructor
@Data
public static class PartnerRefundCount {
/**
* 商户编号
*/
private String partnerId;
/**
* 门店退款数量
*/
List<StoreRefundCount> storeRefundCount;
}
@NoArgsConstructor
@Data
public static class StoreRefundCount {
/**
* 门店编号
*/
private String storeId;
/**
* 退款订单数量
*/
private Long count;
}
}
......@@ -344,4 +344,11 @@ public interface OrderCenterSdkService {
*/
BaseOrderResponse updatePickUpGoodNo(OrderModifyRelatingCodeReq orderModifyRelatingCodeReq, String trackingNo);
/**
* 查询商户每个门店未退款的订单数量<br/>
* @param request
* @return
*/
QueryPartnerRefundCountResponse queryRefundCount(QueryStoreRefundCountRequest request);
}
......@@ -5,7 +5,6 @@ import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService;
import cn.freemud.base.util.DateUtil;
import cn.freemud.base.util.JsonUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
......@@ -30,11 +29,13 @@ import com.freemud.application.sdk.api.membercenter.response.GetMemberExtendInfo
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService;
import com.freemud.application.sdk.api.membercenter.service.MemberScoreService;
import com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.create.*;
import com.freemud.application.sdk.api.ordercenter.response.*;
import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
......@@ -59,7 +60,6 @@ import com.freemud.application.sdk.api.structure.MessageCenterType;
import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient;
import com.freemud.sdk.api.assortment.order.adapter.*;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.order.entities.OrderEditInfo;
import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.CreateOrderRequest;
......@@ -71,17 +71,19 @@ import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.vo.AssortmentOrderProductVo;
import com.google.gson.Gson;
import com.mysql.jdbc.log.LogUtils;
import lombok.extern.log4j.Log4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.freemud.application.sdk.api.membercenter.constant.InterfaceAddressConstant.MEMBER_EXTEND_INFO;
......@@ -195,7 +197,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
}
//TODO 扣减活动库存
ActivityUpdateStockRequest activityUpdateStockRequest = orderSdkAdapter.convert2ActivityUpdateStockRequest(orderBean, updateStockRequest);
if (activityUpdateStockRequest != null && CollectionUtils.isNotEmpty(activityUpdateStockRequest.getStock())) {
// update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
// 原逻辑只检测扣减库存不为空时调用,现改为扣减库存不为空或参加活动不为空时调用
if (activityUpdateStockRequest != null && (CollectionUtils.isNotEmpty(activityUpdateStockRequest.getStock()) || CollectionUtils.isNotEmpty(activityUpdateStockRequest.getActivityList()))) {
BaseResponse activityResponse = promotionSdkService.subtractStock(activityUpdateStockRequest, "");
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
"subtractStock", JSONObject.toJSONString(activityUpdateStockRequest), JSONObject.toJSONString(activityResponse));
......@@ -266,7 +270,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest,String menuType) {
//扣减活动库存
ActivityUpdateStockRequest activityUpdateStockRequest = orderSdkAdapter.convert2ActivityUpdateStockRequest(orderBean, updateStockRequest);
if (activityUpdateStockRequest != null && CollectionUtils.isNotEmpty(activityUpdateStockRequest.getStock())) {
// update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
// 原逻辑只检测扣减库存不为空时调用,现改为扣减库存不为空或参加活动不为空时调用
if (activityUpdateStockRequest != null && (CollectionUtils.isNotEmpty(activityUpdateStockRequest.getStock()) || CollectionUtils.isNotEmpty(activityUpdateStockRequest.getActivityList()))) {
BaseResponse activityResponse = promotionSdkService.subtractStock(activityUpdateStockRequest, "");
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
"subtractStock", JSONObject.toJSONString(activityUpdateStockRequest), JSONObject.toJSONString(activityResponse));
......@@ -1722,6 +1728,130 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return orderSdkAdapter.convent2UpdatePickUpGoodNo(orderSdkService.updatePickUpGoodNo(orderModifyRelatingCodeReq, trackingNo));
}
@Override
public QueryPartnerRefundCountResponse queryRefundCount(QueryStoreRefundCountRequest request) {
QueryPartnerRefundCountResponse queryPartnerRefundCountResponse = new QueryPartnerRefundCountResponse();
String trackingNo = LogThreadLocal.getTrackingNo();
// 分页查询es的服务-待处理的退款单
QueryAfterSalesOrderConditionsReq orderQueryRequestDto = new QueryAfterSalesOrderConditionsReq();
orderQueryRequestDto.setPartnerId(request.getPartnerId());
orderQueryRequestDto.setStoreIds(request.getStoreIds());
// 订单的创建时间使用传过来的时间前推2天
orderQueryRequestDto.setStartTimestamp(request.getStartTimestamp() - 172800);
orderQueryRequestDto.setEndTimestamp(request.getEndTimestamp());
orderQueryRequestDto.setStartAfterCreateTimestamp(request.getStartTimestamp());
orderQueryRequestDto.setEndAfterCreateTimestamp(request.getEndTimestamp());
List<Byte> afterSalesStatusList = new ArrayList<>();
afterSalesStatusList.add(new Byte("1"));
orderQueryRequestDto.setAfterSalesStatusList(afterSalesStatusList);
orderQueryRequestDto.setPageNum(null); // pageNum 不传表示滚动查询
orderQueryRequestDto.setPageSize(500);
AfterSalesListResp pageResponse = null;
try {
pageResponse = orderDownLoadSdkService.queryAfterSalesOrderConditions(orderQueryRequestDto, trackingNo);
} catch (Exception e) {
ErrorLog.printErrorLog("查询ES服务商户门店退款订单数量ERR", InterfaceAddressConstant.QUERY_AFT_SALE_ORDER_LIST,request,e);
queryPartnerRefundCountResponse.setErrcode(pageResponse.getCode());
queryPartnerRefundCountResponse.setErrmsg(pageResponse.getMessage());
return queryPartnerRefundCountResponse;
}
if (null == pageResponse || !Objects.equals(RESPONSE_SUCCESS_STR, pageResponse.getCode())) {
ApiLog.info("查询ES服务商户门店退款订单数量ERR", pageResponse.getCode(), pageResponse.getMessage());
queryPartnerRefundCountResponse.setErrcode(pageResponse.getCode());
queryPartnerRefundCountResponse.setErrmsg(pageResponse.getMessage());
return queryPartnerRefundCountResponse;
}
List<Map<String,Long>> storeCountList = new ArrayList<>();
if(CollectionUtils.isEmpty(pageResponse.getResult())){
ApiLog.info("未查询到ES服务商户门店退款订单数量", "", "");
queryPartnerRefundCountResponse.setErrcode(pageResponse.getCode());
queryPartnerRefundCountResponse.setErrmsg(pageResponse.getMessage());
return buildQueryPartnerRefundCountResponse(request,storeCountList);
}
// 统计门店退款单数量
statisticsCount(pageResponse.getResult(),storeCountList);
QueryOrderByScrollRequest scrollRequest = new QueryOrderByScrollRequest();
scrollRequest.setScrollId(pageResponse.getScrollId());
scrollRequest.setVer(1);
try {
while (true) {
BaseDownLoadResponse<List<AfterSalesOrderResp>> scrollResponse = orderDownLoadSdkService.queryAfterSalesOrderByScrollId(scrollRequest, LogThreadLocal.getTrackingNo());
if (!Objects.equals(RESPONSE_SUCCESS_STR, scrollResponse.getCode())) {
break;
}
if (CollectionUtils.isEmpty(scrollResponse.getResult())) {
break;
}
statisticsCount(pageResponse.getResult(),storeCountList);
scrollRequest.setScrollId( scrollResponse.getScrollId());
}
} catch (Exception e) {
ErrorLog.printErrorLog("查询ES服务商户门店退款订单数量ERR", InterfaceAddressConstant.QUERY_AFT_SALE_ORDER_LIST,request,e);
queryPartnerRefundCountResponse = new QueryPartnerRefundCountResponse();
queryPartnerRefundCountResponse.setErrcode(pageResponse.getCode());
queryPartnerRefundCountResponse.setErrmsg(pageResponse.getMessage());
return queryPartnerRefundCountResponse;
}
return buildQueryPartnerRefundCountResponse(request,storeCountList);
}
/**
* 统计每个门店的退款订单数量
* @param afterSalesOrderResp
* @param storeCountList
*/
private void statisticsCount(List<AfterSalesOrderResp> afterSalesOrderResp,List<Map<String,Long>> storeCountList){
Map<String,Long> coutnMap = afterSalesOrderResp.stream().collect(Collectors.groupingBy(AfterSalesOrderResp::getStoreId,Collectors.counting()));
storeCountList.add(coutnMap);
}
/**
* 求和每个门店的退款订单数量
* @param storeId
* @param storeCountList
*/
private Long sumCount(String storeId,List<Map<String,Long>> storeCountList){
Long sumCount = 0L;
for(Map<String,Long> map :storeCountList){
Long count = map.get(storeId);
if(null != count){
sumCount +=count;
}
}
return sumCount;
}
/**
* 构建查询商户退款数量返回值
* @param request
* @param storeCountList
*/
private QueryPartnerRefundCountResponse buildQueryPartnerRefundCountResponse(QueryStoreRefundCountRequest request,List<Map<String,Long>> storeCountList){
QueryPartnerRefundCountResponse queryPartnerRefundCountResponse = new QueryPartnerRefundCountResponse();
QueryPartnerRefundCountResponse.PartnerRefundCount data = new QueryPartnerRefundCountResponse.PartnerRefundCount();
data.setPartnerId(request.getPartnerId());
List<QueryPartnerRefundCountResponse.StoreRefundCount> storeRefundCount = new ArrayList<>();
for(String storeId : request.getStoreIds()){
QueryPartnerRefundCountResponse.StoreRefundCount store = new QueryPartnerRefundCountResponse.StoreRefundCount();
store.setStoreId(storeId);
store.setCount(sumCount(storeId,storeCountList));
storeRefundCount.add(store);
}
data.setStoreRefundCount(storeRefundCount);
queryPartnerRefundCountResponse.setData(data);
queryPartnerRefundCountResponse.setErrcode(RESPONSE_SUCCESS_STR);
queryPartnerRefundCountResponse.setErrmsg("");
return queryPartnerRefundCountResponse;
}
private void setTimeout(BaseQueryOrderRequest baseQueryOrderRequest,POSOrderOperationBaseReq request){
String partnerId = baseQueryOrderRequest.getPartnerId();
String storeCode = baseQueryOrderRequest.getShopId();
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.20-SNAPSHOT</version>
<version>2.0.21-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......@@ -60,7 +60,7 @@
<dependency>
<artifactId>promotioncenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId>
<version>2.3.RELEASE</version>
<version>2.6.5.SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
......
......@@ -275,6 +275,9 @@ public class OrderAdapter {
}
createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList());
// update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
ActivityUpdateStockRequest activityUpdateStockRequest = this.initActivityUpdateStockRequest(activityDiscountsDtos);
//设置库存扣减
if (CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getStocks())) {
List<ActivityUpdateStockRequest.StockBeanDto> stocks = new ArrayList<>();
......@@ -296,10 +299,10 @@ public class OrderAdapter {
}
stocks.add(stockBeanDto);
}
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
activityUpdateStockRequest.setStock(stocks);
createOrderDto.setActivityUpdateStockRequest(activityUpdateStockRequest);
}
createOrderDto.setActivityUpdateStockRequest(activityUpdateStockRequest);
createOrderDto.setPayChannelType(createOrderVo.getPayChannelType());
// createOrderDto.setOtherInfo(getOrderOtherInfo(shoppingCartGoodsDto));
......@@ -758,6 +761,10 @@ public class OrderAdapter {
orderAccountDtos.add(createOrderAccountDto);
}
productOrderInfo.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList());
// update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
ActivityUpdateStockRequest activityUpdateStockRequest = this.initActivityUpdateStockRequest(activityDiscountsDtos);
//设置库存扣减
if (CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getStocks())) {
List<ActivityUpdateStockRequest.StockBeanDto> stocks = new ArrayList<>();
......@@ -779,10 +786,9 @@ public class OrderAdapter {
}
stocks.add(stockBeanDto);
}
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
activityUpdateStockRequest.setStock(stocks);
productOrderInfo.setActivityUpdateStockRequest(activityUpdateStockRequest);
}
productOrderInfo.setActivityUpdateStockRequest(activityUpdateStockRequest);
return productOrderInfo;
}
......@@ -3068,6 +3074,8 @@ public class OrderAdapter {
// }
// createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList());
// update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
ActivityUpdateStockRequest activityUpdateStockRequest = this.initActivityUpdateStockRequest(activityDiscountsDtos);
//设置库存扣减
if (shoppingCartGoodsResponse != null && CollectionUtils.isNotEmpty(shoppingCartGoodsResponse.getStocks())) {
......@@ -3090,10 +3098,9 @@ public class OrderAdapter {
}
stocks.add(stockBeanDto);
}
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
activityUpdateStockRequest.setStock(stocks);
sdkUpdateOrderProductInfoRequest.setActivityUpdateStockRequest(activityUpdateStockRequest);
}
sdkUpdateOrderProductInfoRequest.setActivityUpdateStockRequest(activityUpdateStockRequest);
return sdkUpdateOrderProductInfoRequest;
}
......@@ -3450,4 +3457,22 @@ public class OrderAdapter {
deleteOrderDto.setOrderId(oId);
return deleteOrderDto;
}
/**
* 初始化扣减活动库存请求对象
* add by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
* @return
*/
private ActivityUpdateStockRequest initActivityUpdateStockRequest(List<ActivityDiscountsDto> activityDiscountsDtos) {
// 原逻辑只检测扣减库存不为空时调用,现改为扣减库存不为空或参加活动不为空时调用
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
List<String> activityList = new ArrayList<>();
// 只记录订单级别的活动ID
if (CollectionUtils.isNotEmpty(activityDiscountsDtos)) {
activityList.addAll(activityDiscountsDtos.stream().filter(ad -> StringUtils.isNotBlank(ad.getActivityCode())).map(ActivityDiscountsDto::getActivityCode).distinct().collect(Collectors.toList()));
}
//设置活动编号
activityUpdateStockRequest.setActivityList(CollectionUtils.isNotEmpty(activityList) ? activityList : null);
return activityUpdateStockRequest;
}
}
......@@ -1615,10 +1615,6 @@ public class OrderServiceImpl implements Orderservice {
&& !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) {
isRefundDeliveryFee = false;
}
if(PayChannel.SVC.getCode().equals(orderBean.getPayChannel())){
isRefundDeliveryFee = true;
}
// 未接单
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
//商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
......
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.4.38-SNAPSHOT</version>
<version>1.5.0-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -78,4 +78,9 @@ public class AfterSalesOrderResp {
private Integer weight;
//售后单阶段类型 1:售前 2:售中 3:售后
private Byte afterSalesStageType;
/**
* 门店ID
*/
private String storeId;
}
......@@ -45,7 +45,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-shoppingcart-sdk</artifactId>
<version>1.9.12-SNAPSHOT</version>
<version>2.0.1-SNAPSHOT</version>
</dependency>
<!-- 再来一单查询订单信息 -->
<dependency>
......
......@@ -172,7 +172,12 @@ public class ShoppingCartMCoffeeServiceImpl {
}
//商品券已添加情况校验
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode,goodsId);
List<CartGoods.MaterialGoods> productMaterialList =new ArrayList<>();
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = checkGoodsCoupon(oldCartGoodsList, operationType, couponCode,goodsId, productMaterialList);
if (CollectionUtils.isNotEmpty(productMaterialList)){
// 复制加料信息
addShoppingCartGoodsRequestVo.setProductMaterialList(adapterProductMateria(productMaterialList));
}
CartGoods addCartGoods = convent2CartGoods(addShoppingCartGoodsRequestVo, goodsId ,vo);
setClassificationAndPrice(addCartGoods, productBeanListSpuClass);
if(StringUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getGroupName())) {
......@@ -201,6 +206,19 @@ public class ShoppingCartMCoffeeServiceImpl {
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
private List<MaterialRequestVo> adapterProductMateria(List<CartGoods.MaterialGoods> productMaterialList){
List<MaterialRequestVo> materialRequestVos = new ArrayList<>();
for (CartGoods.MaterialGoods materialGoods: productMaterialList) {
MaterialRequestVo vo =new MaterialRequestVo();
vo.setSpuId(materialGoods.getSpuId());
vo.setCustomerCode(materialGoods.getCustomerCode());
vo.setGroupId(materialGoods.getGroupId());
materialRequestVos.add(vo);
}
return materialRequestVos;
}
private MCoffeeProductIdsVo validCoupon(String partnerId, String storeId, String spuId, List<Long> productIds, String menuType) {
CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, spuId.substring(CommonsConstant.COUPON_PREFIX.length()), menuType);
CouponService couponService = SDKCommonBaseContextWare.getBean(CouponService.class);
......@@ -218,7 +236,7 @@ public class ShoppingCartMCoffeeServiceImpl {
}
private List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> checkGoodsCoupon(List<CartGoods> oldCartGoodsList, Integer operationType, String couponCode,String goodsId) {
private List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> checkGoodsCoupon(List<CartGoods> oldCartGoodsList, Integer operationType, String couponCode,String goodsId, List<CartGoods.MaterialGoods> productMaterialList) {
if (operationType != null && operationType == 1 && StringUtils.isBlank(couponCode)) {
throw new ServiceException(ResponseResult.PARAMETER_MISSING, "商品券券号为空");
}
......@@ -238,7 +256,10 @@ public class ShoppingCartMCoffeeServiceImpl {
//使用券的是,如果购物车已经存在这个券,先清除,再添加
cartGoods.setQty(0);
}
if (StringUtils.isNotEmpty(goodsId) && StringUtils.isBlank(couponCode) && goodsId.equals(cartGoods.getSkuId())) {
if (StringUtils.isNotEmpty(goodsId) && StringUtils.isNotEmpty(couponCode) && goodsId.equals(cartGoods.getSkuId()) && StringUtils.isBlank(cartGoods.getCouponCode())) {
if (CollectionUtils.isNotEmpty(cartGoods.getProductMaterialList())) {
productMaterialList.addAll(cartGoods.getProductMaterialList());
}
if (cartGoods.getQty() > 1 ){
cartGoods.setQty(cartGoods.getQty() - 1);
}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