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 @@ ...@@ -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.38-SNAPSHOT</version> <version>1.5.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
<dependency> <dependency>
<artifactId>promotioncenter-sdk</artifactId> <artifactId>promotioncenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<version>2.3.RELEASE</version> <version>2.6.5.SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -1604,6 +1604,9 @@ public class OrderSdkAdapter { ...@@ -1604,6 +1604,9 @@ public class OrderSdkAdapter {
activityUpdateStockRequest.setPartnerCode(orderBean.getCompanyId()); activityUpdateStockRequest.setPartnerCode(orderBean.getCompanyId());
activityUpdateStockRequest.setStoreId(orderBean.getShopId()); activityUpdateStockRequest.setStoreId(orderBean.getShopId());
activityUpdateStockRequest.setVer("1"); activityUpdateStockRequest.setVer("1");
// add by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
activityUpdateStockRequest.setUserId(orderBean.getUserId());
activityUpdateStockRequest.setOrderCreateTime(DateUtil.getCurrentDate(DateUtil.FORMAT_yyyyMMdd_date));
return activityUpdateStockRequest; return activityUpdateStockRequest;
} }
......
...@@ -95,6 +95,7 @@ public enum ResponseResult { ...@@ -95,6 +95,7 @@ public enum ResponseResult {
ORDER_CREATE_FORMID_ISNULL("45018", "0元购formId不能为空"), ORDER_CREATE_FORMID_ISNULL("45018", "0元购formId不能为空"),
ORDER_GET_PAY_EB_CODE_ERROR("45019", "没有配置支付payEbCode"), ORDER_GET_PAY_EB_CODE_ERROR("45019", "没有配置支付payEbCode"),
ORDER_WXAPP_NOT_ENABLE_COLLECT_GOODS("45020","小程序未开通到店自取"), 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 { ...@@ -344,4 +344,11 @@ public interface OrderCenterSdkService {
*/ */
BaseOrderResponse updatePickUpGoodNo(OrderModifyRelatingCodeReq orderModifyRelatingCodeReq, String trackingNo); BaseOrderResponse updatePickUpGoodNo(OrderModifyRelatingCodeReq orderModifyRelatingCodeReq, String trackingNo);
/**
* 查询商户每个门店未退款的订单数量<br/>
* @param request
* @return
*/
QueryPartnerRefundCountResponse queryRefundCount(QueryStoreRefundCountRequest request);
} }
...@@ -5,7 +5,6 @@ import cn.freemud.amqp.MQAction; ...@@ -5,7 +5,6 @@ import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage; import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService; import cn.freemud.amqp.MQService;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.base.util.JsonUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
...@@ -30,11 +29,13 @@ import com.freemud.application.sdk.api.membercenter.response.GetMemberExtendInfo ...@@ -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.MemberCenterService;
import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService; import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService;
import com.freemud.application.sdk.api.membercenter.service.MemberScoreService; 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.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.create.*; 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.*;
import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp; 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.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
...@@ -59,7 +60,6 @@ import com.freemud.application.sdk.api.structure.MessageCenterType; ...@@ -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.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient; import com.freemud.application.sdk.api.structure.service.MessageCenterClient;
import com.freemud.sdk.api.assortment.order.adapter.*; 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.entities.OrderEditInfo;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.CreateOrderRequest; import com.freemud.sdk.api.assortment.order.request.order.CreateOrderRequest;
...@@ -71,17 +71,19 @@ import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse; ...@@ -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.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.vo.AssortmentOrderProductVo; import com.freemud.sdk.api.assortment.order.vo.AssortmentOrderProductVo;
import com.google.gson.Gson; 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.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
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.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.freemud.application.sdk.api.membercenter.constant.InterfaceAddressConstant.MEMBER_EXTEND_INFO; import static com.freemud.application.sdk.api.membercenter.constant.InterfaceAddressConstant.MEMBER_EXTEND_INFO;
...@@ -195,7 +197,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -195,7 +197,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
} }
//TODO 扣减活动库存 //TODO 扣减活动库存
ActivityUpdateStockRequest activityUpdateStockRequest = orderSdkAdapter.convert2ActivityUpdateStockRequest(orderBean, updateStockRequest); 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, ""); BaseResponse activityResponse = promotionSdkService.subtractStock(activityUpdateStockRequest, "");
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(), ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
"subtractStock", JSONObject.toJSONString(activityUpdateStockRequest), JSONObject.toJSONString(activityResponse)); "subtractStock", JSONObject.toJSONString(activityUpdateStockRequest), JSONObject.toJSONString(activityResponse));
...@@ -266,7 +270,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -266,7 +270,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest,String menuType) { List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest,String menuType) {
//扣减活动库存 //扣减活动库存
ActivityUpdateStockRequest activityUpdateStockRequest = orderSdkAdapter.convert2ActivityUpdateStockRequest(orderBean, updateStockRequest); 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, ""); BaseResponse activityResponse = promotionSdkService.subtractStock(activityUpdateStockRequest, "");
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(), ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
"subtractStock", JSONObject.toJSONString(activityUpdateStockRequest), JSONObject.toJSONString(activityResponse)); "subtractStock", JSONObject.toJSONString(activityUpdateStockRequest), JSONObject.toJSONString(activityResponse));
...@@ -1722,6 +1728,130 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1722,6 +1728,130 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return orderSdkAdapter.convent2UpdatePickUpGoodNo(orderSdkService.updatePickUpGoodNo(orderModifyRelatingCodeReq, trackingNo)); 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){ private void setTimeout(BaseQueryOrderRequest baseQueryOrderRequest,POSOrderOperationBaseReq request){
String partnerId = baseQueryOrderRequest.getPartnerId(); String partnerId = baseQueryOrderRequest.getPartnerId();
String storeCode = baseQueryOrderRequest.getShopId(); String storeCode = baseQueryOrderRequest.getShopId();
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.20-SNAPSHOT</version> <version>2.0.21-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
<dependency> <dependency>
<artifactId>promotioncenter-sdk</artifactId> <artifactId>promotioncenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<version>2.3.RELEASE</version> <version>2.6.5.SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
......
...@@ -275,6 +275,9 @@ public class OrderAdapter { ...@@ -275,6 +275,9 @@ public class OrderAdapter {
} }
createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList()); 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())) { if (CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getStocks())) {
List<ActivityUpdateStockRequest.StockBeanDto> stocks = new ArrayList<>(); List<ActivityUpdateStockRequest.StockBeanDto> stocks = new ArrayList<>();
...@@ -296,10 +299,10 @@ public class OrderAdapter { ...@@ -296,10 +299,10 @@ public class OrderAdapter {
} }
stocks.add(stockBeanDto); stocks.add(stockBeanDto);
} }
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
activityUpdateStockRequest.setStock(stocks); activityUpdateStockRequest.setStock(stocks);
createOrderDto.setActivityUpdateStockRequest(activityUpdateStockRequest);
} }
createOrderDto.setActivityUpdateStockRequest(activityUpdateStockRequest);
createOrderDto.setPayChannelType(createOrderVo.getPayChannelType()); createOrderDto.setPayChannelType(createOrderVo.getPayChannelType());
// createOrderDto.setOtherInfo(getOrderOtherInfo(shoppingCartGoodsDto)); // createOrderDto.setOtherInfo(getOrderOtherInfo(shoppingCartGoodsDto));
...@@ -758,6 +761,10 @@ public class OrderAdapter { ...@@ -758,6 +761,10 @@ public class OrderAdapter {
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
productOrderInfo.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList()); 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())) { if (CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getStocks())) {
List<ActivityUpdateStockRequest.StockBeanDto> stocks = new ArrayList<>(); List<ActivityUpdateStockRequest.StockBeanDto> stocks = new ArrayList<>();
...@@ -779,10 +786,9 @@ public class OrderAdapter { ...@@ -779,10 +786,9 @@ public class OrderAdapter {
} }
stocks.add(stockBeanDto); stocks.add(stockBeanDto);
} }
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
activityUpdateStockRequest.setStock(stocks); activityUpdateStockRequest.setStock(stocks);
productOrderInfo.setActivityUpdateStockRequest(activityUpdateStockRequest);
} }
productOrderInfo.setActivityUpdateStockRequest(activityUpdateStockRequest);
return productOrderInfo; return productOrderInfo;
} }
...@@ -3068,6 +3074,8 @@ public class OrderAdapter { ...@@ -3068,6 +3074,8 @@ public class OrderAdapter {
// } // }
// createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList()); // 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())) { if (shoppingCartGoodsResponse != null && CollectionUtils.isNotEmpty(shoppingCartGoodsResponse.getStocks())) {
...@@ -3090,10 +3098,9 @@ public class OrderAdapter { ...@@ -3090,10 +3098,9 @@ public class OrderAdapter {
} }
stocks.add(stockBeanDto); stocks.add(stockBeanDto);
} }
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
activityUpdateStockRequest.setStock(stocks); activityUpdateStockRequest.setStock(stocks);
sdkUpdateOrderProductInfoRequest.setActivityUpdateStockRequest(activityUpdateStockRequest);
} }
sdkUpdateOrderProductInfoRequest.setActivityUpdateStockRequest(activityUpdateStockRequest);
return sdkUpdateOrderProductInfoRequest; return sdkUpdateOrderProductInfoRequest;
} }
...@@ -3450,4 +3457,22 @@ public class OrderAdapter { ...@@ -3450,4 +3457,22 @@ public class OrderAdapter {
deleteOrderDto.setOrderId(oId); deleteOrderDto.setOrderId(oId);
return deleteOrderDto; 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 { ...@@ -1615,10 +1615,6 @@ public class OrderServiceImpl implements Orderservice {
&& !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) { && !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) {
isRefundDeliveryFee = false; isRefundDeliveryFee = false;
} }
if(PayChannel.SVC.getCode().equals(orderBean.getPayChannel())){
isRefundDeliveryFee = true;
}
// 未接单 // 未接单
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) { if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
//商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口 //商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
......
...@@ -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.38-SNAPSHOT</version> <version>1.5.0-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -78,4 +78,9 @@ public class AfterSalesOrderResp { ...@@ -78,4 +78,9 @@ public class AfterSalesOrderResp {
private Integer weight; private Integer weight;
//售后单阶段类型 1:售前 2:售中 3:售后 //售后单阶段类型 1:售前 2:售中 3:售后
private Byte afterSalesStageType; private Byte afterSalesStageType;
/**
* 门店ID
*/
private String storeId;
} }
...@@ -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>1.9.12-SNAPSHOT</version> <version>2.0.1-SNAPSHOT</version>
</dependency> </dependency>
<!-- 再来一单查询订单信息 --> <!-- 再来一单查询订单信息 -->
<dependency> <dependency>
......
...@@ -172,7 +172,12 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -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); CartGoods addCartGoods = convent2CartGoods(addShoppingCartGoodsRequestVo, goodsId ,vo);
setClassificationAndPrice(addCartGoods, productBeanListSpuClass); setClassificationAndPrice(addCartGoods, productBeanListSpuClass);
if(StringUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getGroupName())) { if(StringUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getGroupName())) {
...@@ -201,6 +206,19 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -201,6 +206,19 @@ public class ShoppingCartMCoffeeServiceImpl {
return ResponseUtil.success(shoppingCartGoodsResponseVo); 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) { 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); CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, spuId.substring(CommonsConstant.COUPON_PREFIX.length()), menuType);
CouponService couponService = SDKCommonBaseContextWare.getBean(CouponService.class); CouponService couponService = SDKCommonBaseContextWare.getBean(CouponService.class);
...@@ -218,7 +236,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -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)) { if (operationType != null && operationType == 1 && StringUtils.isBlank(couponCode)) {
throw new ServiceException(ResponseResult.PARAMETER_MISSING, "商品券券号为空"); throw new ServiceException(ResponseResult.PARAMETER_MISSING, "商品券券号为空");
} }
...@@ -238,7 +256,10 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -238,7 +256,10 @@ public class ShoppingCartMCoffeeServiceImpl {
//使用券的是,如果购物车已经存在这个券,先清除,再添加 //使用券的是,如果购物车已经存在这个券,先清除,再添加
cartGoods.setQty(0); 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 ){ if (cartGoods.getQty() > 1 ){
cartGoods.setQty(cartGoods.getQty() - 1); cartGoods.setQty(cartGoods.getQty() - 1);
}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