Commit 3705efd8 by hanghang.wang

华莱士

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