Commit 28ee4100 by 王世昌

Merge branch 'feature/20210420-华莱士公用分支-张志恒' of…

Merge branch 'feature/20210420-华莱士公用分支-张志恒' of gitlab.freemud.com:order-group-application/order-group into feature/20210420-华莱士公用分支-张志恒

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/Orderservice.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents 74a2885b 0ce53e51
...@@ -169,21 +169,21 @@ public class OrderAdapter { ...@@ -169,21 +169,21 @@ public class OrderAdapter {
@Autowired @Autowired
private AssortmentOpenPlatformPartnerConfigManager assortmentOpenPlatformPartnerConfigManager; private AssortmentOpenPlatformPartnerConfigManager assortmentOpenPlatformPartnerConfigManager;
/** /**
* @param createOrderVo * @param createOrderVo
* @param shoppingCartGoodsDto * @param shoppingCartGoodsDto
* @return * @return
*/ */
public BaseCreateOrderRequest convent2CreateOrderDto(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto,StoreResponse.BizVO storeResponseDto) { public BaseCreateOrderRequest convent2CreateOrderDto(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, StoreResponse.BizVO storeResponseDto) {
// UserDeliveryInfoDto deliveryInfoDto = createOrderVo.getUserDeliveryInfoDto(); // UserDeliveryInfoDto deliveryInfoDto = createOrderVo.getUserDeliveryInfoDto();
BaseCreateOrderRequest createOrderDto = getCreateOrderDto(createOrderVo); BaseCreateOrderRequest createOrderDto = getCreateOrderDto(createOrderVo);
ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>(); ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
long deliveryAmount = 0; long deliveryAmount = 0;
long discountDeliveryAmount = 0; long discountDeliveryAmount = 0;
if (createOrderVo.getMenuType().equals(BusinessTypeEnum.SAAS_DELIVERY.getCode())) { if (createOrderVo.getMenuType().equals(BusinessTypeEnum.SAAS_DELIVERY.getCode())) {
deliveryAmount = shoppingCartGoodsDto.getDeliveryAmount()==null?9l:shoppingCartGoodsDto.getDeliveryAmount(); deliveryAmount = shoppingCartGoodsDto.getDeliveryAmount() == null ? 9l : shoppingCartGoodsDto.getDeliveryAmount();
discountDeliveryAmount = shoppingCartGoodsDto.getDeliveryAmount()==null?9l:shoppingCartGoodsDto.getDeliveryAmount(); discountDeliveryAmount = shoppingCartGoodsDto.getDeliveryAmount() == null ? 9l : shoppingCartGoodsDto.getDeliveryAmount();
if(shoppingCartGoodsDto.getIsDiscountDelivery() && deliveryAmount>shoppingCartGoodsDto.getDiscountDeliveryAmount()){ if (shoppingCartGoodsDto.getIsDiscountDelivery() && deliveryAmount > shoppingCartGoodsDto.getDiscountDeliveryAmount()) {
discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount(); discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount();
} }
} }
...@@ -209,7 +209,7 @@ public class OrderAdapter { ...@@ -209,7 +209,7 @@ public class OrderAdapter {
Integer qty = cartGoodsDetailDto.getQty(); Integer qty = cartGoodsDetailDto.getQty();
if (qty > 0) { if (qty > 0) {
CreateOrderProductRequest createOrderProductDto = null; CreateOrderProductRequest createOrderProductDto = null;
if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) { if (mcCafePartnerId.equals(createOrderDto.getCompanyId())) {
createOrderProductDto = convent2MCCafeOrderProduct(cartGoodsDetailDto); createOrderProductDto = convent2MCCafeOrderProduct(cartGoodsDetailDto);
} else { } else {
createOrderProductDto = convent2OrderProduct(cartGoodsDetailDto); createOrderProductDto = convent2OrderProduct(cartGoodsDetailDto);
...@@ -217,7 +217,7 @@ public class OrderAdapter { ...@@ -217,7 +217,7 @@ public class OrderAdapter {
createOrderProductDto.setIgnoreProductPrice(1); createOrderProductDto.setIgnoreProductPrice(1);
products.add(createOrderProductDto); products.add(createOrderProductDto);
if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getActivityDiscountsDtos())) { if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getActivityDiscountsDtos())) {
if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) { if (mcCafePartnerId.equals(createOrderDto.getCompanyId())) {
createOrderProductDto.setAccounts(getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos())); createOrderProductDto.setAccounts(getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos()));
}else if(cocoPartnerId.contains(createOrderDto.getCompanyId())){ }else if(cocoPartnerId.contains(createOrderDto.getCompanyId())){
createOrderProductDto.setAccounts(getCocoAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos())); createOrderProductDto.setAccounts(getCocoAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos()));
......
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateSpellGroupOrderReq;
import cn.freemud.service.Orderservice;
import cn.freemud.service.SpellGroupOrderService;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wanghanghang
* @title: SpellGroupOrderController
* @projectName order-group
* @description: 拼团订单Controller
* @date 2021/4/16上午9:50
*/
@RequestMapping("/order")
@RestController
public class SpellGroupOrderController {
@Autowired
private SpellGroupOrderService spellGroupOrderService;
@ApiOperation(value = "创建拼团订单", notes = "创建拼团订单", produces = "application/json")
@ApiAnnotation(logMessage = "createSpellGroupOrder")
@PostMapping("/createSpellGroupOrder")
public BaseResponse createSpellGroupOrder(@Validated @LogParams @RequestBody CreateSpellGroupOrderReq request) {
return spellGroupOrderService.createSpellGroupOrder(request);
}
}
package cn.freemud.entities.dto; package cn.freemud.entities.dto;
import com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -60,8 +62,6 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -60,8 +62,6 @@ public class ActivityCalculationDiscountResponseDto {
* 使用到的优惠券及优惠金额 * 使用到的优惠券及优惠金额
*/ */
private List<CouponResults> couponDiscounts; private List<CouponResults> couponDiscounts;
/** /**
* 多种优惠方案计算出的优惠集合,并按优惠力度倒序排列 * 多种优惠方案计算出的优惠集合,并按优惠力度倒序排列
*/ */
...@@ -73,6 +73,11 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -73,6 +73,11 @@ public class ActivityCalculationDiscountResponseDto {
*/ */
List<ActivityPrompt> activityPrompts; List<ActivityPrompt> activityPrompts;
/**
* 活动集合
*/
List<ActivityUpdateStockRequest.StockBeanDto> stocks;
@Data @Data
public static class ActivityPrompt { public static class ActivityPrompt {
......
package cn.freemud.entities.dto;
import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountResultDto;
import cn.freemud.entities.vo.CreateSpellGroupOrderReq;
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import lombok.Data;
import java.util.List;
/**
* @author freemud
* @title: CreateSpellGroupOrderDto
* @projectName order-group
* @description: TODO
* @date 2021/4/14下午2:36
*/
@Data
public class CreateSpellGroupOrderDto extends CreateSpellGroupOrderReq {
/**
* 用户收货地址信息 ,入参不需要传,通过校验receiveId获取
*/
// public UserDeliveryInfoDto userDeliveryInfoDto;
/**
*当前用户id
*/
private String userId;
/**
*当前用户昵称
*/
private String nickName;
/**
*存储送货地址信息
*/
List<DeliveryContactInfoCreateReq> deliveryContactInfoCreateReqList;
/**
* 存储商品信息
*/
private List<ProductInfo> products;
/**
* 存储促销返回商品算价信息
*/
private ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto;
/**
* 门店信息
*/
private StoreResponse storeResponse;
}
...@@ -87,4 +87,9 @@ public class CalculationDiscountRequestDto { ...@@ -87,4 +87,9 @@ public class CalculationDiscountRequestDto {
* saas-自提 saasdelivery-外卖 saasmall-微商城 .... * saas-自提 saasdelivery-外卖 saasmall-微商城 ....
*/ */
private String productChannel; private String productChannel;
/**
* 拼团活动是,必传活动号
*/
private String groupActivityCode;
} }
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;
}
package cn.freemud.entities.vo;
import lombok.Builder;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author wanghanghang
* @title: CreateSpellGroupOrderReq
* @projectName order-group
* @description: 创建拼团订单request
* @date 2021/4/14上午9:52
*/
@Data
public class CreateSpellGroupOrderReq {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
/**
* 参与拼团编号->团编号
*/
private String spellGroupCode;
@NotEmpty(message = "门店ID 不能为空")
private String storeId;
@NotEmpty(message = "商户号 不能为空")
private String partnerId;
@Builder.Default
private String menuType = "saasmall";
/**
* 渠道类型 OrderChannelType
*/
private String channelType = "saasmall";
/*下单渠道必填,根据此字段的值判断是自营或第三方,来走不同的状态机 详细见 orderClientType枚举*/
private Integer orderClient;
/**
* 下单支付渠道类型
*/
@NotNull(message = "下单支付渠道类型不能为空")
private Byte payChannelType;
/**
* 订单类型 1 到店自取 2 外卖 枚举CreateOrderType
*/
@Builder.Default
private Integer orderType = 3;
/**
* 订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
*/
@Builder.Default
private Integer marketingType = 2;
/**
* 收货地址ID
*/
@NotEmpty(message = "收货地址ID不能为空")
private String receiveId;
/**
* 拼团活动号
*/
@NotEmpty(message = "拼团活动号不能为空")
private String activityCode;
/**
* 拼团商品集合,本次只会传入一条
*/
@NotNull(message = "拼团商品信息不能为空")
private List<SpellGroupProduct> spellGroupProductList;
/**
* 订单备注,预留字段
*/
private String orderRemark;
/**
* 城市编号。用于查询配送费
*/
private String province;
/**
* 拼团商品
*/
@Data
public static class SpellGroupProduct {
private String productId;
private Integer productQuantity;
}
}
...@@ -236,9 +236,22 @@ public enum ResponseResult { ...@@ -236,9 +236,22 @@ public enum ResponseResult {
* coco券验证失败 * coco券验证失败
*/ */
COCO_COUPON_VALIDATOR_FAIL("70000", "优惠券验证错误"), COCO_COUPON_VALIDATOR_FAIL("70000", "优惠券验证错误"),
;
/**
* 拼团订单状态码 80001 - 80101
*/
SPELL_GROUP_THE_CLUB_IS_FULL("80001", "拼团已满员"),
SPELL_GROUP_CREAT_ORDER_ERROR("80002", "创建拼团订单失败"),
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", "获取算价信息异常"),
SPELL_GROUP_QUERY_GROUP_WORK_ERROR("80007", "查询拼团信息异常"),
SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL("80008", "团状态非正常"),
;
private String code; private String code;
......
package cn.freemud.manager;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.CreateSpellGroupOrderDto;
import cn.freemud.entities.dto.GetProductInfoDto;
import cn.freemud.entities.dto.ProductInfosDto;
import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.thirdparty.PromotionDiscountClient;
import cn.freemud.service.thirdparty.StoreItemClient;
import com.freemud.application.sdk.api.base.BaseResponse;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* @author wanghanghang
* @title: SpellGroupOrderDataManager
* @projectName order-group
* @description: TODO
* @date 2021/4/15下午3:45
*/
@Component
public class SpellGroupOrderDataManager {
@Autowired
private StoreItemClient storeItemClient;
@Autowired
private PromotionDiscountClient promotionDiscountClient;
//会员SDK
@Autowired
private MemberCenterService memberCenterService;
//门店SDK
@Autowired
private StoreCenterService storeCenterService;
/**
* 查询门店信息
*/
public StoreResponse getStoreInfo(String partnerId, String shopId, String trackingNo) {
// 获取门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId, null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
return null;
}
return storeResponse;
}
/**
* 查询地址信息
*
* @param receiveId
* @param partnerId
* @param trackingNo
* @return
*/
public QueryReceiveAddressResponse queryOrderReceiveAddress(String receiveId, String partnerId, String trackingNo) {
QueryReceiveAddressRequest request = new QueryReceiveAddressRequest(receiveId, partnerId);
BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(request, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
return null;
}
QueryReceiveAddressResponse receiveAddressResult = queryReceiveAddressResponse.getData();
return receiveAddressResult;
}
/**
* 查询商品信息
*
* @param createSpellGroupOrderDto
* @return
*/
public List<ProductInfo> queryProductInfos(CreateSpellGroupOrderDto createSpellGroupOrderDto) {
GetProductInfoDto getProductInfoReq = new GetProductInfoDto();
List<String> proIds = new ArrayList<>();
createSpellGroupOrderDto.getSpellGroupProductList().forEach(proInfo -> {
proIds.add(proInfo.getProductId());
});
getProductInfoReq.setProductIds(proIds);
getProductInfoReq.setPartnerId(createSpellGroupOrderDto.getPartnerId());
getProductInfoReq.setShopId(createSpellGroupOrderDto.getStoreId());
getProductInfoReq.setProductInfoType(1);
ProductInfosDto productInfosReps = storeItemClient.listProductInfos(getProductInfoReq);
if (!ResponseResult.SUCCESS.getCode().equals(productInfosReps.getErrcode().toString()) || productInfosReps.getData() == null) {
return null;
}
return productInfosReps.getData().getProducts();
}
/**
* 查询算价信息
*
* @param calculationDiscountRequestDto
* @return
*/
public ActivityCalculationDiscountResponseDto queryCalculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto) {
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto = promotionDiscountClient.calculationDiscountSharing(calculationDiscountRequestDto);
if (!ResponseResult.SUCCESS.getCode().equals(activityCalculationDiscountResponseDto.getStatusCode()) || activityCalculationDiscountResponseDto.getResult() == null) {
return null;
}
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;
}
}
...@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse; ...@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import com.freemud.sdk.api.assortment.order.enums.OrderSdkType;
import java.util.Map; import java.util.Map;
...@@ -154,6 +155,7 @@ public interface Orderservice { ...@@ -154,6 +155,7 @@ public interface Orderservice {
BaseResponse queryTodayOrders(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo); BaseResponse queryTodayOrders(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo);
/** /**
* 拼团失败退款 * 拼团失败退款
* @param refundVo * @param refundVo
......
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateSpellGroupOrderReq;
/**
* @author wanghanghang
* @title: SpellGroupOrderService
* @projectName order-group
* @description: TODO
* @date 2021/4/15下午9:01
*/
public interface SpellGroupOrderService {
/**
* 创建拼团订单
* @param createSpellGroupOrderReq
* @return
*/
public BaseResponse createSpellGroupOrder(CreateSpellGroupOrderReq createSpellGroupOrderReq);
}
...@@ -562,4 +562,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -562,4 +562,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
log.error("调用生态返回参数失败,订单编号:{},失败原因:{}",orderId,e.getMessage()); log.error("调用生态返回参数失败,订单编号:{},失败原因:{}",orderId,e.getMessage());
} }
} }
} }
...@@ -52,6 +52,7 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress ...@@ -52,6 +52,7 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress
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.ordercenter.enums.PayChannelType; import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest; import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest;
import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse; import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
...@@ -917,6 +918,8 @@ public class CheckOrder { ...@@ -917,6 +918,8 @@ public class CheckOrder {
} }
public void checkCardCode(String partnerId, String memberId, String cardCode) { public void checkCardCode(String partnerId, String memberId, String cardCode) {
if (StringUtils.isBlank(cardCode)) { if (StringUtils.isBlank(cardCode)) {
return; return;
......
...@@ -44,18 +44,25 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto; ...@@ -44,18 +44,25 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.order.FacePayRequestDto; import cn.freemud.entities.dto.order.FacePayRequestDto;
import cn.freemud.entities.dto.order.FacePayResponseDto; import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.pay.CombPayResponse; import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.product.AttributeValue; import cn.freemud.entities.dto.product.*;
import cn.freemud.entities.dto.product.GroupDetail; import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.product.ProductAttributeGroup; import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto;
import cn.freemud.entities.dto.product.ProductGroup;
import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto; import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.shoppingCart.CollageOrderDto; import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.enums.AfterSalesOrderCreateEventEnum;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.PayRefundStatus;
import cn.freemud.enums.PayStatus;
import cn.freemud.enums.QueryOrderStatus;
import cn.freemud.enums.RefundStatus;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.OrderType; import cn.freemud.enums.OrderType;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.thirdparty.MulitiPaymentClient; import cn.freemud.management.thirdparty.MulitiPaymentClient;
import cn.freemud.manager.SpellGroupOrderDataManager;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.*; import cn.freemud.service.*;
import cn.freemud.service.coupon.CouponRelationFactory; import cn.freemud.service.coupon.CouponRelationFactory;
...@@ -67,6 +74,16 @@ import cn.freemud.utils.*; ...@@ -67,6 +74,16 @@ import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.couponcenter.offline.request.CouponLockRequest;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponLockResponse;
import com.freemud.application.sdk.api.log.ThirdPartyLog;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.request.UserScoreRequest;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.application.sdk.api.stockapi.request.UpdateStocksRequest;
import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import jdk.nashorn.internal.runtime.ECMAException; import jdk.nashorn.internal.runtime.ECMAException;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
...@@ -91,6 +108,10 @@ import com.freemud.application.sdk.api.log.ApiLog; ...@@ -91,6 +108,10 @@ import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.entities.PayItem; import com.freemud.application.sdk.api.ordercenter.entities.PayItem;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq; import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
...@@ -175,6 +196,8 @@ import java.util.function.Function; ...@@ -175,6 +196,8 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND; import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS;
import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR;
@Service @Service
@Slf4j @Slf4j
...@@ -382,6 +405,16 @@ public class OrderServiceImpl implements Orderservice { ...@@ -382,6 +405,16 @@ public class OrderServiceImpl implements Orderservice {
return this.createPrepayOrder(createPrepayRequestDto); return this.createPrepayOrder(createPrepayRequestDto);
} }
public CreateOrderResponse getCreateOrderResponse(String code, String message, QueryOrdersResponse.DataBean.OrderBean data) {
CreateOrderResponse baseOrderResponse = new CreateOrderResponse();
baseOrderResponse.setErrcode(Integer.valueOf(code));
baseOrderResponse.setErrmsg(message);
baseOrderResponse.setData(data);
return baseOrderResponse;
}
/** /**
* 扫脸支付下单 * 扫脸支付下单
*/ */
...@@ -743,7 +776,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -743,7 +776,7 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
//订单状态
Integer status = orderBean.getRefundList().get(0).getStatus(); Integer status = orderBean.getRefundList().get(0).getStatus();
if (!Objects.equals(RefundStatus.ALREADY_REFUND.getCode(), status)) { if (!Objects.equals(RefundStatus.ALREADY_REFUND.getCode(), status)) {
//不是退款中处理不处理 //不是退款中处理不处理
......
...@@ -12,10 +12,16 @@ ...@@ -12,10 +12,16 @@
*/ */
package cn.freemud.service.thirdparty; package cn.freemud.service.thirdparty;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ResponseCodeKeyConstant;
import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.ActivityQueryRequestDto; 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.*;
...@@ -23,8 +29,17 @@ import org.springframework.web.bind.annotation.*; ...@@ -23,8 +29,17 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping(produces = {"application/json;charset=UTF-8"}) @RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface PromotionDiscountClient { public interface PromotionDiscountClient {
/**无人使用,注释掉。**/
// @PostMapping("/calculation/discount/sharing")
// CalculationDiscountResponseDto discountSharing(@RequestBody CalculationDiscountRequestDto calculationDiscountRequestDto);
/**
* 新版优惠均摊计算
* @param calculationDiscountRequestDto
* @return
*/
@PostMapping("/calculation/discount/sharing") @PostMapping("/calculation/discount/sharing")
CalculationDiscountResponseDto discountSharing(@RequestBody CalculationDiscountRequestDto calculationDiscountRequestDto); ActivityCalculationDiscountResponseDto calculationDiscountSharing(CalculationDiscountRequestDto calculationDiscountRequestDto);
/** /**
* 统一活动查询接口 * 统一活动查询接口
...@@ -38,4 +53,14 @@ public interface PromotionDiscountClient { ...@@ -38,4 +53,14 @@ public interface PromotionDiscountClient {
@PostMapping("/calculation/discount") @PostMapping("/calculation/discount")
CalculationDiscountResponseDto calculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto); CalculationDiscountResponseDto calculationDiscount(CalculationDiscountRequestDto calculationDiscountRequestDto);
/**
* 查询团信息
* @param groupWorkQueryRequest
* @return
*/
@PostMapping("/groupWork/query")
GroupWorkQueryResponse groupWorkQuery(GroupWorkQueryRequest groupWorkQueryRequest);
} }
package cn.freemud.controller;
import cn.freemud.OrderApplication;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreateSpellGroupOrderReq;
import com.alibaba.fastjson.JSONObject;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
/**
* @author freemud
* @title: SpellGroupOrderControllerTest
* @projectName order-group
* @description: TODO
* @date 2021/4/16下午3:58
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = OrderApplication.class)
public class SpellGroupOrderControllerTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
/**
* 创建订单
*/
@Test
public void createOrder() {
CreateSpellGroupOrderReq createSpellGroupOrderReq = new CreateSpellGroupOrderReq();
// createSpellGroupOrderReq.setSessionId();
// createSpellGroupOrderReq.setSpellGroupCode();
// createSpellGroupOrderReq.setStoreId("3536");
// createSpellGroupOrderReq.setPartnerId("1864");
// createSpellGroupOrderReq.setMenuType();
// createSpellGroupOrderReq.setChannelType();
// createSpellGroupOrderReq.setOrderClient();
// createSpellGroupOrderReq.setPayChannelType();
// createSpellGroupOrderReq.setOrderType();
// createSpellGroupOrderReq.setMarketingType();
// createSpellGroupOrderReq.setReceiveId();
// createSpellGroupOrderReq.setActivityCode();
// createSpellGroupOrderReq.setSpellGroupProductList();
// createSpellGroupOrderReq.setOrderRemark();
String str = JSONObject.toJSONString(createSpellGroupOrderReq);
try {
mockMvc.perform(post("/order/createSpellGroupOrder").content(str).
contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()).
andExpect(jsonPath("$.code").value("100"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
...@@ -31,6 +31,7 @@ public enum OrderSettlementType { ...@@ -31,6 +31,7 @@ public enum OrderSettlementType {
FULL_DELIVERY_FEE(16, "满免配送费"), FULL_DELIVERY_FEE(16, "满免配送费"),
ITEM_DISCOUNT(20, "单品折扣"), ITEM_DISCOUNT(20, "单品折扣"),
BUY_GIFT(23,"买赠"), BUY_GIFT(23,"买赠"),
SPELL_GROUP(25,"拼团"),
TAKEAWAY_ADD_PRICE(46, "外卖加价购"), TAKEAWAY_ADD_PRICE(46, "外卖加价购"),
SUPER_PURCHASE(47, "超值加购"), SUPER_PURCHASE(47, "超值加购"),
PRODUCT_COUPON(118, "商品券"), PRODUCT_COUPON(118, "商品券"),
......
...@@ -25,4 +25,6 @@ public class OrderExtendedReq { ...@@ -25,4 +25,6 @@ public class OrderExtendedReq {
//订单门店英文名称 //订单门店英文名称
private String storeNameEn; private String storeNameEn;
private String spellGroupCode;
} }
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