Commit 8f1af77a by 缪晖

Merge branch 'feature/20201208_collageOrder_miaohui' into 'develop'

混合支付判断拼单状态

See merge request !64
parents f272821e a1bc6d26
...@@ -3,7 +3,8 @@ package com.freemud.sdk.api.assortment.shoppingcart.constant; ...@@ -3,7 +3,8 @@ package com.freemud.sdk.api.assortment.shoppingcart.constant;
public enum CollageOrderStatus { public enum CollageOrderStatus {
SHOPPING(0, "拼单中"), SHOPPING(0, "拼单中"),
COMPLETE(1, "已完成"), COMPLETE(1, "已完成"),
CANCEL(2, "已取消"); CANCEL(2, "已取消"),
PAYING(3, "支付中");
private Integer value; private Integer value;
......
...@@ -204,6 +204,8 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -204,6 +204,8 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
expireSeconds = completeDelayMinute * 60L; expireSeconds = completeDelayMinute * 60L;
} else if (CollageOrderStatus.CANCEL.getValue().equals(collageOrderDto.getStatus())) { } else if (CollageOrderStatus.CANCEL.getValue().equals(collageOrderDto.getStatus())) {
expireSeconds = cancelDelayMinute * 60L; expireSeconds = cancelDelayMinute * 60L;
} else if (CollageOrderStatus.PAYING.getValue().equals(collageOrderDto.getStatus())) {
expireSeconds = 5 * 60L;
} }
// 修改拼单主信息失效时间 // 修改拼单主信息失效时间
......
...@@ -13,7 +13,7 @@ import lombok.Data; ...@@ -13,7 +13,7 @@ import lombok.Data;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ */
@Data @Data
public class UpdateCollageOrderDto { public class CollageOrderDto {
/** /**
* 用户sessionId * 用户sessionId
*/ */
......
...@@ -167,6 +167,9 @@ public enum ResponseResult { ...@@ -167,6 +167,9 @@ public enum ResponseResult {
ORDER_CANCEL_ERROR_EXPECT_TIME("45067", "预约时间还剩15分钟,无法取消"), ORDER_CANCEL_ERROR_EXPECT_TIME("45067", "预约时间还剩15分钟,无法取消"),
ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"), ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"),
ORDER_GROUP_BUY_LIST_EMPTY("45069", "付款人列表为空,无法发起群收款"), ORDER_GROUP_BUY_LIST_EMPTY("45069", "付款人列表为空,无法发起群收款"),
COLLAGE_ORDER_CREATE_ERROR_NOT_EXIST("45070", "拼单信息不存在,无法创建订单"),
COLLAGE_ORDER_CREATE_ERROR_PAYING("45071", "拼单正在支付,请勿重复提交"),
COLLAGE_ORDER_CREATE_ERROR_PAYED("45072", "拼单已支付完成,请返回订单列表查看"),
/** /**
......
...@@ -16,7 +16,10 @@ package cn.freemud.service.impl; ...@@ -16,7 +16,10 @@ package cn.freemud.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
import cn.freemud.entities.dto.wechat.*; import cn.freemud.entities.dto.wechat.*;
import cn.freemud.entities.vo.CreateOrderResponseVo;
import cn.freemud.entities.vo.QueryOrderVo; import cn.freemud.entities.vo.QueryOrderVo;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient; import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
...@@ -40,14 +43,13 @@ import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdRespons ...@@ -40,14 +43,13 @@ import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdRespons
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -71,11 +73,50 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -71,11 +73,50 @@ public class CollageOrderServiceImpl implements CollageOrderService {
*/ */
@Override @Override
public BaseResponse create(CreateOrderVo createOrderVo) { public BaseResponse create(CreateOrderVo createOrderVo) {
// 校验当前拼单缓存状态 若不为0-拼单中直接返回错误提示
CollageOrderDto collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(createOrderVo.getSessionId());
collageOrderDto.setPartnerId(createOrderVo.getPartnerId());
collageOrderDto.setShopId(createOrderVo.getShopId());
collageOrderDto.setCreateCollageUserId(createOrderVo.getUserId());
BaseResponse<Integer> collageOrderResponse = shoppingCartClient.getCollageOrderStatus(collageOrderDto);
if (null == collageOrderResponse || null == collageOrderResponse.getResult()) {
return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_NOT_EXIST);
} else if (1 == collageOrderResponse.getResult()) {
return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_PAYED);
} else if (2 == collageOrderResponse.getResult()) {
return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_NOT_EXIST);
} else if (3 == collageOrderResponse.getResult()) {
return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_PAYING);
}
// 标记订单类型-4 拼单 // 标记订单类型-4 拼单
createOrderVo.setMarketingType(OrderMarketType.COLLAGE.getIndex()); createOrderVo.setMarketingType(OrderMarketType.COLLAGE.getIndex());
BaseResponse orderCreateResponse = this.orderService.createOrderNew(createOrderVo); BaseResponse orderCreateResponse = this.orderService.createOrderNew(createOrderVo);
if (null != orderCreateResponse && null != orderCreateResponse.getResult()) {
Object result = orderCreateResponse.getResult();
String oid = null;
if (result instanceof CreateOrderOperateDto) {
oid = ((CreateOrderOperateDto) result).getFatherOrderBean().getOid();
} else if (result instanceof CreateOrderResponseVo) {
oid = ((CreateOrderResponseVo) result).getOid();
}
// 清空拼单购物车
collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(StringUtils.isBlank(createOrderVo.getSessionId()) ? oid : createOrderVo.getSessionId());
collageOrderDto.setPartnerId(createOrderVo.getPartnerId());
collageOrderDto.setShopId(createOrderVo.getShopId());
collageOrderDto.setCreateCollageUserId(createOrderVo.getUserId());
collageOrderDto.setOrderCode(oid);
collageOrderDto.setStatus(3);//支付中
shoppingCartClient.updateCollageOrder(collageOrderDto);
}
return orderCreateResponse; return orderCreateResponse;
} }
......
...@@ -51,7 +51,7 @@ import cn.freemud.entities.dto.product.ProductAttributeGroup; ...@@ -51,7 +51,7 @@ import cn.freemud.entities.dto.product.ProductAttributeGroup;
import cn.freemud.entities.dto.product.ProductGroup; 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.UpdateCollageOrderDto; 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.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
...@@ -525,14 +525,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -525,14 +525,14 @@ public class OrderServiceImpl implements Orderservice {
shoppingCartClient.clearShoppingCart(newShoppingCartClearDto); shoppingCartClient.clearShoppingCart(newShoppingCartClearDto);
// 清空拼单购物车 // 清空拼单购物车
UpdateCollageOrderDto updateCollageOrderDto = new UpdateCollageOrderDto(); CollageOrderDto collageOrderDto = new CollageOrderDto();
updateCollageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId); collageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId);
updateCollageOrderDto.setPartnerId(partnerId); collageOrderDto.setPartnerId(partnerId);
updateCollageOrderDto.setShopId(storeId); collageOrderDto.setShopId(storeId);
updateCollageOrderDto.setCreateCollageUserId(userId); collageOrderDto.setCreateCollageUserId(userId);
updateCollageOrderDto.setOrderCode(oid); collageOrderDto.setOrderCode(oid);
updateCollageOrderDto.setStatus(1); collageOrderDto.setStatus(1);
shoppingCartClient.updateCollageOrder(updateCollageOrderDto); shoppingCartClient.updateCollageOrder(collageOrderDto);
if (StringUtils.isNotBlank(daySeq) && orderExtInfoDto != null && !OrderType.TAKE_OUT.getCode().equals(orderBean.getType())) { if (StringUtils.isNotBlank(daySeq) && orderExtInfoDto != null && !OrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
String storeAddress = StringUtils.isNotBlank(orderBean.getAddress()) ? orderBean.getAddress() : ""; String storeAddress = StringUtils.isNotBlank(orderBean.getAddress()) ? orderBean.getAddress() : "";
......
...@@ -17,7 +17,7 @@ import cn.freemud.entities.dto.*; ...@@ -17,7 +17,7 @@ import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto; import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto;
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.UpdateCollageOrderDto; import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -103,9 +103,15 @@ public interface ShoppingCartClient { ...@@ -103,9 +103,15 @@ public interface ShoppingCartClient {
BaseResponse clearCollageOrder(@RequestBody NewShoppingCartClearDto newShoppingCartClearDto); BaseResponse clearCollageOrder(@RequestBody NewShoppingCartClearDto newShoppingCartClearDto);
/** /**
* 更新拼单订单信息 * 更新拼单信息
*/ */
@PostMapping(value = "/collage/updateOrder?lang=zh_CN") @PostMapping(value = "/collage/updateOrder?lang=zh_CN")
BaseResponse updateCollageOrder(@RequestBody UpdateCollageOrderDto updateCollageOrderDto); BaseResponse updateCollageOrder(@RequestBody CollageOrderDto collageOrderDto);
/**
* 获取拼单状态信息
*/
@PostMapping(value = "/collage/getOrderStatus?lang=zh_CN")
BaseResponse<Integer> getCollageOrderStatus(@RequestBody CollageOrderDto collageOrderDto);
} }
...@@ -50,6 +50,14 @@ public class CollageOrderController { ...@@ -50,6 +50,14 @@ public class CollageOrderController {
return collageOrderService.queryCollageOrder(request); return collageOrderService.queryCollageOrder(request);
} }
@ApiOperation(value = "查询拼单状态", notes = "根据商户ID、门店ID、拼单邀请人用户ID或者当前登录用户sessionId查询拼单状态")
@ApiImplicitParam(value = "请求", required = true, dataType = "CollageOrderRequestVo", name = "CollageOrderRequestVo")
@ApiAnnotation(logMessage = "getOrder")
@PostMapping(value = "/getOrder")
public BaseResponse queryCollageOrderStatus(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderService.queryCollageOrderStatus(request);
}
@ApiOperation(value = "创建拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId创建拼单订单信息") @ApiOperation(value = "创建拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId创建拼单订单信息")
@ApiImplicitParam(value = "请求", required = true, dataType = "CollageOrderRequestVo", name = "CollageOrderRequestVo") @ApiImplicitParam(value = "请求", required = true, dataType = "CollageOrderRequestVo", name = "CollageOrderRequestVo")
@ApiAnnotation(logMessage = "createOrder") @ApiAnnotation(logMessage = "createOrder")
......
...@@ -24,6 +24,13 @@ public interface CollageOrderService { ...@@ -24,6 +24,13 @@ public interface CollageOrderService {
BaseResponse queryCollageOrder(CollageOrderRequestVo request); BaseResponse queryCollageOrder(CollageOrderRequestVo request);
/** /**
* 查询拼单状态
* @param request
* @return
*/
BaseResponse queryCollageOrderStatus(CollageOrderRequestVo request);
/**
* 创建拼单订单 * 创建拼单订单
* @param request * @param request
* @return * @return
......
...@@ -96,6 +96,19 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -96,6 +96,19 @@ public class CollageOrderServiceImpl implements CollageOrderService {
} }
/** /**
* 查询拼单订单状态
* @param request(partnerId shopId userId)
* @return
*/
@Override
public BaseResponse queryCollageOrderStatus(CollageOrderRequestVo request) {
CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request);
BaseResponse<CollageOrder> queryCollageOrderResponse = this.collageOrderBaseService.queryCollageOrder(collageOrderDto);
CollageOrder collageOrder = queryCollageOrderResponse.getResult();
return ResponseUtil.success(null == collageOrder ? -1 : collageOrder.getStatus());
}
/**
* 创建拼单订单基础信息 * 创建拼单订单基础信息
* @param request(partnerId shopId sessionId) * @param request(partnerId shopId sessionId)
* @return * @return
......
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