Commit eb0c8102 by hanghang.wang

华莱士

parent 95022bda
...@@ -6,6 +6,7 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto; ...@@ -6,6 +6,7 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.product.ProductInfo; import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto; import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse; import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
...@@ -219,6 +220,19 @@ public class SpellGroupOrderAdapter { ...@@ -219,6 +220,19 @@ public class SpellGroupOrderAdapter {
return activityUpdateStockRequest; return activityUpdateStockRequest;
} }
public GroupWorkQueryRequest groupWorkQueryRequest(CreateSpellGroupOrderDto createSpellGroupOrderDto) {
GroupWorkQueryRequest groupWorkQueryRequest = new GroupWorkQueryRequest();
groupWorkQueryRequest.setActivityCode(createSpellGroupOrderDto.getActivityCode());
groupWorkQueryRequest.setGroupId(createSpellGroupOrderDto.getSpellGroupCode());
groupWorkQueryRequest.setGoodId(createSpellGroupOrderDto.getSpellGroupProductList().get(0).getProductId());
groupWorkQueryRequest.setPartnerId(createSpellGroupOrderDto.getPartnerId());
groupWorkQueryRequest.setUserId(createSpellGroupOrderDto.getUserId());
groupWorkQueryRequest.setUserName(createSpellGroupOrderDto.getNickName());
groupWorkQueryRequest.setOrderId("");
return groupWorkQueryRequest;
}
/*------------------下方转换返回信息------------------------*/ /*------------------下方转换返回信息------------------------*/
/** /**
......
package cn.freemud.entities.dto.promotion;
import lombok.Data;
/**
* @author freemud
* @title: GroupWorkQueryDto
* @projectName order-group
* @description: TODO
* @date 2021/4/19下午2:53
*/
@Data
public class GroupWorkQueryDto {
/**
* 活动名称
*/
private String activityName;
/**
* 活动开始时间如:2021-04-15 00:00:00
*/
private String startTime;
/**
* 活结束时间如:2021-04-20 23:59:59
*/
private String endTime;
/**
* 团状态:0-正常,1-非正常
*/
private Integer status;
/**
* 差多少人成团
*/
private String lessPeople;
}
package cn.freemud.entities.dto.promotion;
import lombok.Data;
/**
* @author wanghanghang
* @title: GroupWorkQueryReqVo
* @projectName order-group
* @description: TODO
* @date 2021/4/19下午2:11
*/
@Data
public class GroupWorkQueryRequest {
/**
* 商户号
*/
private String partnerId;
/**
* 活动号
*/
private String activityCode;
/**
* 团号 创建订单前不用传,创建后必传
*/
private String groupId;
/**
* 商品id
*/
private String goodId;
/**
* 用户id
*/
private String userId;
/**
* 昵称
*/
private String userName;
/**
* 订单
*/
private String orderId;
}
package cn.freemud.entities.dto.promotion;
import lombok.Data;
/**
* @author freemud
* @title: GroupWorkQueryResponse
* @projectName order-group
* @description: TODO
* @date 2021/4/19下午2:48
*/
@Data
public class GroupWorkQueryResponse {
private String code;
private String message;
private String ver;
private GroupWorkQueryDto result;
}
...@@ -245,6 +245,8 @@ public enum ResponseResult { ...@@ -245,6 +245,8 @@ public enum ResponseResult {
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", "获取算价信息异常"),
SPELL_GROUP_QUERY_GROUP_WORK_ERROR("80007", "查询拼团信息异常"),
SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL("80008", "团状态非正常"),
; ;
......
package cn.freemud.manager; package cn.freemud.manager;
import cn.freemud.adapter.SpellGroupOrderAdapter;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto; import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.CreateSpellGroupOrderDto; import cn.freemud.entities.dto.CreateSpellGroupOrderDto;
import cn.freemud.entities.dto.GetProductInfoDto; import cn.freemud.entities.dto.GetProductInfoDto;
import cn.freemud.entities.dto.ProductInfosDto; import cn.freemud.entities.dto.ProductInfosDto;
import cn.freemud.entities.dto.product.ProductInfo; import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto; import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
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.freemud.application.sdk.api.base.BaseResponse; import com.freemud.application.sdk.api.base.BaseResponse;
...@@ -58,7 +57,7 @@ public class SpellGroupOrderDataManager { ...@@ -58,7 +57,7 @@ public class SpellGroupOrderDataManager {
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId, null); StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId, null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo); StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) { if (storeResponse == null || storeResponse.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_ITEM_QUERY_ERROR); return null;
} }
return storeResponse; return storeResponse;
} }
...@@ -76,7 +75,7 @@ public class SpellGroupOrderDataManager { ...@@ -76,7 +75,7 @@ public class SpellGroupOrderDataManager {
QueryReceiveAddressRequest request = new QueryReceiveAddressRequest(receiveId, partnerId); QueryReceiveAddressRequest request = new QueryReceiveAddressRequest(receiveId, partnerId);
BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(request, trackingNo); BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(request, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) { if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
// throw new ServiceException(ResponseResult.SPELL_GROUP_QUERY_ORDER_RECEIVE_ADDRESS_ERROR); return null;
} }
QueryReceiveAddressResponse receiveAddressResult = queryReceiveAddressResponse.getData(); QueryReceiveAddressResponse receiveAddressResult = queryReceiveAddressResponse.getData();
return receiveAddressResult; return receiveAddressResult;
...@@ -100,7 +99,7 @@ public class SpellGroupOrderDataManager { ...@@ -100,7 +99,7 @@ public class SpellGroupOrderDataManager {
getProductInfoReq.setProductInfoType(1); getProductInfoReq.setProductInfoType(1);
ProductInfosDto productInfosReps = storeItemClient.listProductInfos(getProductInfoReq); ProductInfosDto productInfosReps = storeItemClient.listProductInfos(getProductInfoReq);
if (!ResponseResult.SUCCESS.getCode().equals(productInfosReps.getErrcode().toString()) || productInfosReps.getData() == null) { if (!ResponseResult.SUCCESS.getCode().equals(productInfosReps.getErrcode().toString()) || productInfosReps.getData() == null) {
throw new ServiceException(ResponseResult.SPELL_GROUP_QUERY_PRODUCT_INFOS_ERROR); return null;
} }
return productInfosReps.getData().getProducts(); return productInfosReps.getData().getProducts();
} }
...@@ -114,11 +113,24 @@ public class SpellGroupOrderDataManager { ...@@ -114,11 +113,24 @@ public class SpellGroupOrderDataManager {
public ActivityCalculationDiscountResponseDto queryCalculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto) { public ActivityCalculationDiscountResponseDto queryCalculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto) {
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto = promotionDiscountClient.calculationDiscountSharing(calculationDiscountRequestDto); ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto = promotionDiscountClient.calculationDiscountSharing(calculationDiscountRequestDto);
if (!ResponseResult.SUCCESS.getCode().equals(activityCalculationDiscountResponseDto.getStatusCode()) || activityCalculationDiscountResponseDto.getResult() == null) { if (!ResponseResult.SUCCESS.getCode().equals(activityCalculationDiscountResponseDto.getStatusCode()) || activityCalculationDiscountResponseDto.getResult() == null) {
throw new ServiceException(ResponseResult.SPELL_GROUP_QUERY_CALCULATION_DISCOUNT_ERROR); return null;
} }
return activityCalculationDiscountResponseDto; return activityCalculationDiscountResponseDto;
} }
/**
* 查询团信息
*
* @param groupWorkQueryRequest
* @return
*/
public GroupWorkQueryResponse groupWorkQuery(GroupWorkQueryRequest groupWorkQueryRequest) {
GroupWorkQueryResponse groupWorkQueryResponse = promotionDiscountClient.groupWorkQuery(groupWorkQueryRequest);
if (!ResponseResult.SUCCESS.getCode().equals(groupWorkQueryResponse.getCode()) || groupWorkQueryResponse.getResult() == null) {
return null;
}
return groupWorkQueryResponse;
}
} }
...@@ -13,6 +13,8 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto; ...@@ -13,6 +13,8 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.product.ProductInfo; import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto; import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import cn.freemud.entities.vo.CreateSpellGroupOrderReq; import cn.freemud.entities.vo.CreateSpellGroupOrderReq;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
...@@ -113,34 +115,51 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService { ...@@ -113,34 +115,51 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
String sessionId = createSpellGroupOrderReq.getSessionId(); String sessionId = createSpellGroupOrderReq.getSessionId();
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId); AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) { if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN); return ResponseUtil.error(ResponseResult.NOT_LOGIN);
} }
/*初始化service业务DTO类,后续数据转换依据createSpellGroupOrderDto*/ /*初始化service业务DTO类,后续数据转换依据createSpellGroupOrderDto*/
CreateSpellGroupOrderDto createSpellGroupOrderDto = new CreateSpellGroupOrderDto(); CreateSpellGroupOrderDto createSpellGroupOrderDto = new CreateSpellGroupOrderDto();
BeanUtils.copyProperties(createSpellGroupOrderReq, createSpellGroupOrderDto); BeanUtils.copyProperties(createSpellGroupOrderReq, createSpellGroupOrderDto);
createSpellGroupOrderDto.setUserId(userLoginInfoDto.getMemberId()); createSpellGroupOrderDto.setUserId(userLoginInfoDto.getMemberId());
createSpellGroupOrderDto.setNickName(userLoginInfoDto.getNickName()); createSpellGroupOrderDto.setNickName(userLoginInfoDto.getNickName());
/*查询会员接口,获取城市等信息*/ /*团id不为空,调用促销查询团是否关闭,关闭之后给提示不可下单*/
//todo //查询团信息,校验团状态是否正常
if(!StringUtils.isEmpty(createSpellGroupOrderReq.getSpellGroupCode())){
GroupWorkQueryRequest groupWorkQueryRequestBefore = spellGroupOrderAdapter.groupWorkQueryRequest(createSpellGroupOrderDto);
GroupWorkQueryResponse groupWorkQueryResponse = spellGroupOrderDataManager.groupWorkQuery(groupWorkQueryRequestBefore);
if(groupWorkQueryResponse == null || groupWorkQueryResponse.getResult() == null){
return ResponseUtil.error(ResponseResult.SPELL_GROUP_QUERY_GROUP_WORK_ERROR);
}
if(groupWorkQueryResponse.getResult().getStatus() == 1){
return ResponseUtil.error(ResponseResult.SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL);
}
}
/*---------团开启 则继续执行-------*/
/*获取门店信息,拼单虚拟门店,无需校验*/ /*获取门店信息,拼单虚拟门店,无需校验*/
StoreResponse storeResponse = spellGroupOrderDataManager.getStoreInfo(createSpellGroupOrderReq.getPartnerId(), createSpellGroupOrderReq.getStoreId(), trackingNo); StoreResponse storeResponse = spellGroupOrderDataManager.getStoreInfo(createSpellGroupOrderReq.getPartnerId(), createSpellGroupOrderReq.getStoreId(), trackingNo);
//门店信息->转换至DTO if(storeResponse == null || storeResponse.getBizVO() == null){
return ResponseUtil.error(ResponseResult.STORE_ITEM_QUERY_ERROR);
}
//门店信息->转换至DTO
createSpellGroupOrderDto.setStoreResponse(storeResponse); createSpellGroupOrderDto.setStoreResponse(storeResponse);
/*团id不为空,调用促销查询团是否关闭,关闭之后给提示不可下单*/
String getSpellGroupCode = createSpellGroupOrderReq.getSpellGroupCode();
// if (1 == 1) {
// return ResponseUtil.error(ResponseResult.SPELL_GROUP_THE_CLUB_IS_FULL);
// }
/*---------团开启 则继续执行-------*/
/*查询配送地址等信息->转换至DTO*/ /*查询配送地址等信息->转换至DTO*/
QueryReceiveAddressResponse queryReceiveAddressResponse = spellGroupOrderDataManager.queryOrderReceiveAddress(createSpellGroupOrderReq.getReceiveId(), createSpellGroupOrderReq.getPartnerId(), trackingNo); QueryReceiveAddressResponse queryReceiveAddressResponse = spellGroupOrderDataManager.queryOrderReceiveAddress(createSpellGroupOrderReq.getReceiveId(), createSpellGroupOrderReq.getPartnerId(), trackingNo);
if(queryReceiveAddressResponse == null){
return ResponseUtil.error(ResponseResult.SPELL_GROUP_QUERY_ORDER_RECEIVE_ADDRESS_ERROR);
}
spellGroupOrderAdapter.convertToReceiveAddress(queryReceiveAddressResponse, createSpellGroupOrderDto); spellGroupOrderAdapter.convertToReceiveAddress(queryReceiveAddressResponse, createSpellGroupOrderDto);
/*查询商品信息*/ /*查询商品信息*/
List<ProductInfo> productInfosDto = spellGroupOrderDataManager.queryProductInfos(createSpellGroupOrderDto); List<ProductInfo> productInfosDto = spellGroupOrderDataManager.queryProductInfos(createSpellGroupOrderDto);
if(productInfosDto == null){
return ResponseUtil.error(ResponseResult.SPELL_GROUP_QUERY_PRODUCT_INFOS_ERROR);
}
createSpellGroupOrderDto.setProducts(productInfosDto); createSpellGroupOrderDto.setProducts(productInfosDto);
/*商品信息查询促销,获取商品价格等信息 转换结算信息*/ /*商品信息查询促销,获取商品价格等信息 转换结算信息*/
CalculationDiscountRequestDto calculationDiscountRequestDto = spellGroupOrderAdapter.convertToCalculationDiscountRequestDto(createSpellGroupOrderDto, userLoginInfoDto); CalculationDiscountRequestDto calculationDiscountRequestDto = spellGroupOrderAdapter.convertToCalculationDiscountRequestDto(createSpellGroupOrderDto, userLoginInfoDto);
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto = spellGroupOrderDataManager.queryCalculationDiscount(calculationDiscountRequestDto); ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto = spellGroupOrderDataManager.queryCalculationDiscount(calculationDiscountRequestDto);
if(activityCalculationDiscountResponseDto == null){
return ResponseUtil.error(ResponseResult.SPELL_GROUP_QUERY_CALCULATION_DISCOUNT_ERROR);
}
//促销和产品给出规则,如果促销返回的价格是商品原价,则表示库存不足或者活动关闭 == 拼团的商品价格,肯定比商品原价低 //促销和产品给出规则,如果促销返回的价格是商品原价,则表示库存不足或者活动关闭 == 拼团的商品价格,肯定比商品原价低
if (activityCalculationDiscountResponseDto.getResult().getTotalAmount().equals(productInfosDto.get(0).getOriginalPrice())) { if (activityCalculationDiscountResponseDto.getResult().getTotalAmount().equals(productInfosDto.get(0).getOriginalPrice())) {
// todo return ResponseUtil.error(ResponseResult.SPELL_GROUP_ACTIVITE_AMOUNT_ERROR); // todo return ResponseUtil.error(ResponseResult.SPELL_GROUP_ACTIVITE_AMOUNT_ERROR);
......
...@@ -20,6 +20,8 @@ import cn.freemud.entities.dto.ActivityQueryRequestDto; ...@@ -20,6 +20,8 @@ import cn.freemud.entities.dto.ActivityQueryRequestDto;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto; import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -51,4 +53,9 @@ public interface PromotionDiscountClient { ...@@ -51,4 +53,9 @@ public interface PromotionDiscountClient {
@PostMapping("/calculation/discount") @PostMapping("/calculation/discount")
CalculationDiscountResponseDto calculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto); CalculationDiscountResponseDto calculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto);
@PostMapping("/groupWork/query")
GroupWorkQueryResponse groupWorkQuery(GroupWorkQueryRequest groupWorkQueryRequest);
} }
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