提交 f735dbef authored 作者: liupengfei's avatar liupengfei

--no commit message

上级 98acf920
package com.zrqx.order.fg.service.order.impl;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.zrqx.core.enums.GoodsTypeEnum;
import com.zrqx.core.enums.interfaces.GoodsTypeInterface;
import com.zrqx.core.enums.interfaces.LoggerFactory;
import com.zrqx.core.form.order.fg.order.CreateOrderContext;
import com.zrqx.core.form.order.fg.order.CreateOrderInfoForm;
import com.zrqx.order.commons.enums.BuyTypeEnum;
import com.zrqx.order.commons.enums.OrderTypeEnum;
import com.zrqx.order.commons.enums.interfaces.buytype.BuyTypeInterface;
import com.zrqx.order.commons.utils.SpringContextUtils;
import com.zrqx.order.fg.service.order.OrderInfoProcessor;
......@@ -41,6 +49,28 @@ public class BuildGoodsList implements OrderInfoProcessor,LoggerFactory{
log.debug("不同的购买类型来查询商品购买信息:context:{}", context);
BuyTypeInterface buyTypeService = springContext.getEnumsBindBean(BuyTypeEnum.class, context.getForm().getBuyType(), BuyTypeInterface.class);
context.setGoodsList(buyTypeService.getGoodsList(context));
log.debug("确认订单类型:context:{}",context);
List<CreateOrderInfoForm> list = context.getGoodsList();
Map<Boolean, List<CreateOrderInfoForm>> map = list.stream().collect(Collectors.groupingBy(v -> {
GoodsTypeInterface goodsTypeService = springContext.getEnumsBindBean(GoodsTypeEnum.class, v.getGoodsType(), GoodsTypeInterface.class);
return goodsTypeService.haveStock();
}));
context.setGoodsMap(map);
if (map.keySet().size() == 2) {
// 混合订单
context.getOrder().setOrderType(OrderTypeEnum.MIXED.getCode());
} else if (map.keySet().size() == 1) {
map.keySet().forEach(v -> {
if (v) {
context.getOrder().setOrderType(OrderTypeEnum.ENTITY.getCode());
} else {
context.getOrder().setOrderType(OrderTypeEnum.ELECTRONIC.getCode());
}
});
} else {
log.error("无法确定订单类型map.keySet:{}", map.keySet());
}
}
......
package com.zrqx.order.fg.service.order.impl;
import java.util.List;
import org.springframework.stereotype.Component;
import com.zrqx.core.form.order.fg.order.CreateOrderContext;
import com.zrqx.core.form.order.fg.order.CreateOrderInfoForm;
import com.zrqx.order.fg.service.order.OrderInfoProcessor;
/**
* 拥有实体库存商品,在生成订单之前进行 库存验证
* @author lpf
* @date 2019年1月8日上午10:55:24
*/
@Component
public class StockGoodsProcessor implements OrderInfoProcessor{
@Override
public int getOrder() {
return 3;
}
@Override
public void before(CreateOrderContext context) {
List<CreateOrderInfoForm> list = context.getGoodsMap().get(true);
// TODO 库存调用
}
@Override
public void after(CreateOrderContext context) {
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论