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;
public enum CollageOrderStatus {
SHOPPING(0, "拼单中"),
COMPLETE(1, "已完成"),
CANCEL(2, "已取消");
CANCEL(2, "已取消"),
PAYING(3, "支付中");
private Integer value;
......
......@@ -204,6 +204,8 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
expireSeconds = completeDelayMinute * 60L;
} else if (CollageOrderStatus.CANCEL.getValue().equals(collageOrderDto.getStatus())) {
expireSeconds = cancelDelayMinute * 60L;
} else if (CollageOrderStatus.PAYING.getValue().equals(collageOrderDto.getStatus())) {
expireSeconds = 5 * 60L;
}
// 修改拼单主信息失效时间
......
......@@ -13,7 +13,7 @@ import lombok.Data;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class UpdateCollageOrderDto {
public class CollageOrderDto {
/**
* 用户sessionId
*/
......
......@@ -167,6 +167,9 @@ public enum ResponseResult {
ORDER_CANCEL_ERROR_EXPECT_TIME("45067", "预约时间还剩15分钟,无法取消"),
ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"),
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;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
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.vo.CreateOrderResponseVo;
import cn.freemud.entities.vo.QueryOrderVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
......@@ -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.service.OrderCenterSdkService;
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.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@Service
......@@ -71,11 +73,50 @@ public class CollageOrderServiceImpl implements CollageOrderService {
*/
@Override
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 拼单
createOrderVo.setMarketingType(OrderMarketType.COLLAGE.getIndex());
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;
}
......
......@@ -51,7 +51,7 @@ import cn.freemud.entities.dto.product.ProductAttributeGroup;
import cn.freemud.entities.dto.product.ProductGroup;
import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto;
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.enums.*;
import cn.freemud.interceptor.ServiceException;
......@@ -525,14 +525,14 @@ public class OrderServiceImpl implements Orderservice {
shoppingCartClient.clearShoppingCart(newShoppingCartClearDto);
// 清空拼单购物车
UpdateCollageOrderDto updateCollageOrderDto = new UpdateCollageOrderDto();
updateCollageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId);
updateCollageOrderDto.setPartnerId(partnerId);
updateCollageOrderDto.setShopId(storeId);
updateCollageOrderDto.setCreateCollageUserId(userId);
updateCollageOrderDto.setOrderCode(oid);
updateCollageOrderDto.setStatus(1);
shoppingCartClient.updateCollageOrder(updateCollageOrderDto);
CollageOrderDto collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId);
collageOrderDto.setPartnerId(partnerId);
collageOrderDto.setShopId(storeId);
collageOrderDto.setCreateCollageUserId(userId);
collageOrderDto.setOrderCode(oid);
collageOrderDto.setStatus(1);
shoppingCartClient.updateCollageOrder(collageOrderDto);
if (StringUtils.isNotBlank(daySeq) && orderExtInfoDto != null && !OrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
String storeAddress = StringUtils.isNotBlank(orderBean.getAddress()) ? orderBean.getAddress() : "";
......
......@@ -17,7 +17,7 @@ import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto;
import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto;
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -103,9 +103,15 @@ public interface ShoppingCartClient {
BaseResponse clearCollageOrder(@RequestBody NewShoppingCartClearDto newShoppingCartClearDto);
/**
* 更新拼单订单信息
* 更新拼单信息
*/
@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 {
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创建拼单订单信息")
@ApiImplicitParam(value = "请求", required = true, dataType = "CollageOrderRequestVo", name = "CollageOrderRequestVo")
@ApiAnnotation(logMessage = "createOrder")
......
......@@ -24,6 +24,13 @@ public interface CollageOrderService {
BaseResponse queryCollageOrder(CollageOrderRequestVo request);
/**
* 查询拼单状态
* @param request
* @return
*/
BaseResponse queryCollageOrderStatus(CollageOrderRequestVo request);
/**
* 创建拼单订单
* @param request
* @return
......
......@@ -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)
* @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