Commit 3705efd8 by hanghang.wang

华莱士

parent dc76cee6
......@@ -52,5 +52,8 @@ public class GroupWorkJoinRequest {
*/
private String goodName;
private String partnerCode;
private String mobile;
}
......@@ -2,6 +2,8 @@ package cn.freemud.entities.dto.promotion;
import lombok.Data;
import java.util.List;
/**
* @author freemud
* @title: GroupWorkJoinResponse
......@@ -36,7 +38,7 @@ public class GroupWorkJoinResponse {
/**
* 订单号
*/
private String orderId;
private List<String> orderIds;
}
......
......@@ -246,7 +246,7 @@ public enum ResponseResult {
*/
SPELL_GROUP_THE_CLUB_IS_FULL("80001", "拼团已满员"),
SPELL_GROUP_CREAT_ORDER_ERROR("80002", "创建拼团订单失败"),
SPELL_GROUP_ACTIVITE_AMOUNT_ERROR("80003", "返回的价格是商品原价,则表示库存不足或者活动关闭"),
SPELL_GROUP_ACTIVITE_AMOUNT_ERROR("80003", "库存不足或者活动关闭"),
SPELL_GROUP_QUERY_ORDER_RECEIVE_ADDRESS_ERROR("80004", "获取地址信息异常"),
SPELL_GROUP_QUERY_PRODUCT_INFOS_ERROR("80005", "获取商品信息异常"),
SPELL_GROUP_QUERY_CALCULATION_DISCOUNT_ERROR("80006", "获取算价信息异常"),
......
......@@ -7,9 +7,11 @@ import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.*;
import cn.freemud.entities.vo.QuerySpellGroupRequest;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.thirdparty.CustomerClient;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.service.thirdparty.PromotionDiscountClient;
import cn.freemud.service.thirdparty.StoreItemClient;
import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.base.BaseResponse;
......@@ -19,6 +21,7 @@ import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -33,6 +36,7 @@ import java.util.List;
* @date 2021/4/15下午3:45
*/
@Component
@Slf4j
public class SpellGroupOrderDataManager {
@Autowired
......@@ -55,8 +59,8 @@ public class SpellGroupOrderDataManager {
@Autowired
private AssortmentCustomerInfoManager customerInfoManager;
@Autowired
private CustomerClient customerClient;
/**
* 查询门店信息
*/
......@@ -149,24 +153,43 @@ public class SpellGroupOrderDataManager {
*/
public QueryDeliveryTemplateResponse queryDeliveryTemplate(QueryDeliveryTemplateRequest queryDeliveryTemplateRequest) {
QueryDeliveryTemplateResponse queryDeliveryTemplateResponse = deliveryFeiginClient.queryDeliveryTemplate(queryDeliveryTemplateRequest);
if (!ResponseResult.SUCCESS.getCode().equals(queryDeliveryTemplateResponse.getCode()) || queryDeliveryTemplateResponse.getData() == null) {
if (!ResponseResult.SUCCESS.getCode().equals(queryDeliveryTemplateResponse.getCode().toString()) || queryDeliveryTemplateResponse.getData() == null) {
return null;
}
return queryDeliveryTemplateResponse;
}
public GroupWorkJoinResponse groupWorkJoin(QueryOrdersResponseDto.DataBean.OrderBean orderBean,String sessionId){
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
/**
* 通过用户id查询用户信息
* @param userId
* @param partnerId
* @return
*/
public GetMemberInfoByIdResponseDto getMemberInfoById(String userId,String partnerId) {
GetMemberInfoByIdRequestDto getMemberInfoByIdRequestDto = new GetMemberInfoByIdRequestDto();
getMemberInfoByIdRequestDto.setMemberId(userId);
getMemberInfoByIdRequestDto.setPartnerId(partnerId);
GetMemberInfoByIdResponseDto memberInfoResp = customerClient.getMemberInfoById(getMemberInfoByIdRequestDto);
if (!ResponseResult.SUCCESS.getCode().equals(memberInfoResp.getCode().toString()) || memberInfoResp.getData() == null) {
return null;
}
return memberInfoResp;
}
public GroupWorkJoinResponse groupWorkJoin(QueryOrdersResponseDto.DataBean.OrderBean orderBean,GetMemberInfoByChannelResponseDto.ResultBean memberInfo){
GroupWorkJoinRequest groupWorkJoinRequest = new GroupWorkJoinRequest();
QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(0);
groupWorkJoinRequest.setActivityCode(orderBean.getOrderSettlementDetailList().get(0).getExternalObjectId());
groupWorkJoinRequest.setGoodId(productBean.getProductId());
groupWorkJoinRequest.setGoodName(productBean.getProductName());
groupWorkJoinRequest.setGroupId(orderBean.getSpellGroupCode());
groupWorkJoinRequest.setHeadUrl(userLoginInfoDto.getPhotoUrl());
groupWorkJoinRequest.setHeadUrl(memberInfo.getPhotoUrl());
groupWorkJoinRequest.setOrderId(orderBean.getOid());
groupWorkJoinRequest.setUserId(orderBean.getUserId());
groupWorkJoinRequest.setUserName(orderBean.getUserName());
groupWorkJoinRequest.setPartnerCode(orderBean.getCompanyId());
groupWorkJoinRequest.setMobile(memberInfo.getMobile());
log.info(JSON.toJSONString(groupWorkJoinRequest));
GroupWorkJoinResponse groupWorkJoinResponse = promotionDiscountClient.groupWorkJoin(groupWorkJoinRequest);
if(!ResponseResult.SUCCESS.getCode().equals(groupWorkJoinResponse.getStatusCode()) || groupWorkJoinResponse.getResult() == null){
return null;
......
......@@ -437,9 +437,15 @@ public class MallOrderServiceImpl implements MallOrderService {
confirmOrderRequest.setOrderType(orderBean.getType());
confirmOrderRequest.setProductOrderCode(orderBean.getOid());
List<String> orderIds = new ArrayList<>();
//拼单调促销开团
if(OrderMarketType.GROUPB.getIndex() == orderBean.getMarketingType()){
GroupWorkJoinResponse groupWorkJoinResponse = spellGroupOrderDataManager.groupWorkJoin(orderBean,sessionId);
GetMemberInfoByIdResponseDto responseDto = spellGroupOrderDataManager.getMemberInfoById(orderBean.getUserId(),orderBean.getCompanyId());
if(responseDto == null){
orderRefund(orderBean, "查询用户信息异常,退款流程");
return gson.toJson(message);
}
GroupWorkJoinResponse groupWorkJoinResponse = spellGroupOrderDataManager.groupWorkJoin(orderBean,responseDto.getData());
if(groupWorkJoinResponse == null){
orderRefund(orderBean, "促销开团异常,退款流程");
return gson.toJson(message);
......@@ -451,6 +457,11 @@ public class MallOrderServiceImpl implements MallOrderService {
if(StringUtils.isEmpty(orderBean.getSpellGroupCode())){
confirmOrderRequest.setSpellGroupCode(groupWorkJoinResponse.getResult().getGroupId());
}
//表示已成团,团下面订单全部接单
if("1".equals(groupWorkJoinResponse.getResult().getGroupStatus())){
orderIds = groupWorkJoinResponse.getResult().getOrderIds();
}
}
// 订单支付成功
......@@ -502,24 +513,24 @@ public class MallOrderServiceImpl implements MallOrderService {
redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES);
orderIds.add(orderBean.getOid());
orderIds = orderIds.stream().distinct().collect(Collectors.toList());
//接单
POSOrderOperationBaseReq acceptOrderReq = new POSOrderOperationBaseReq();
acceptOrderReq.setOrderCode(orderBean.getOid());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse baseResponse = orderSdkService.acceptOrder(acceptOrderReq, LogTreadLocal.getTrackingNo());
if(baseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(baseResponse.getCode())) {
orderRefund(orderBean, "接单失败");
return gson.toJson(message);
}
// 创建配送单
boolean createSuccess = this.createDelivery(orderBean, LogTreadLocal.getTrackingNo());
if(!createSuccess) {
// 创建配送单发送失败 则进行取消订单并退款
orderRefund(orderBean, "运单不足,配送失败");
return gson.toJson(message);
if(orderIds.size() > 1 || orderBean.getMarketingType() != OrderMarketType.GROUPB.getIndex()){
POSOrderOperationBaseReq acceptOrderReq = new POSOrderOperationBaseReq();
for(String orderId : orderIds){
acceptOrderReq.setOrderCode(orderId);
try {
com.freemud.application.sdk.api.ordercenter.response.BaseResponse baseResponse = orderSdkService.acceptOrder(acceptOrderReq, LogTreadLocal.getTrackingNo());
if(baseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(baseResponse.getCode())) {
LogUtil.error("paySuccessCallback_acceptOrder_faild", gson.toJson(confirmOrderDto), gson.toJson(payAccessResponse));
}
}catch (Exception e){
LogUtil.error("paySuccessCallback_acceptOrder_error",orderId,e);
}
}
}
return sendPaySuccessNoticeMessage();
}
......
......@@ -1657,7 +1657,7 @@ public class OrderServiceImpl implements Orderservice {
}
//拼团订单
if(queryOrderResponseVo.getMarketingType() == 2 && StringUtils.isNotEmpty(queryOrderResponseVo.getSpellGroupCode())
if(OrderMarketType.GROUPB.getIndex() == queryOrderResponseVo.getMarketingType() && StringUtils.isNotEmpty(queryOrderResponseVo.getSpellGroupCode())
&& orderBean.getApportionDetails()!=null){
QuerySpellGroupVo querySpellGroupVo = spellGroupOrderDataManager.queryByGroupId(queryOrderResponseVo.getSpellGroupCode(),
"",orderBean.getApportionDetails().get(0).getExternalObjectId(),partnerId);
......
......@@ -139,7 +139,6 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
StoreResponse storeResponse = spellGroupOrderDataManager.getStoreInfo(createSpellGroupOrderReq.getPartnerId(), createSpellGroupOrderReq.getStoreId(), trackingNo);
if(storeResponse == null || storeResponse.getBizVO() == null){
return ResponseUtil.error(ResponseResult.STORE_ITEM_QUERY_ERROR);
// storeResponse = new StoreResponse();
}
//门店信息->转换至DTO
createSpellGroupOrderDto.setStoreResponse(storeResponse);
......
......@@ -74,7 +74,7 @@ public interface PromotionDiscountClient {
* @param groupWorkJoinRequest
* @return
*/
@PostMapping("/activity/groupwork/join")
@PostMapping("/activity/groupWork/join")
GroupWorkJoinResponse groupWorkJoin(GroupWorkJoinRequest groupWorkJoinRequest);
/**
......
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