|
@@ -16,6 +16,7 @@ import org.dromara.external.api.zhongche.domain.bo.OrderDetailBo;
|
|
|
import org.dromara.external.api.zhongche.domain.vo.AreaVo;
|
|
import org.dromara.external.api.zhongche.domain.vo.AreaVo;
|
|
|
import org.dromara.external.api.zhongche.domain.vo.GoodsUpdateVo;
|
|
import org.dromara.external.api.zhongche.domain.vo.GoodsUpdateVo;
|
|
|
import org.dromara.external.api.zhongche.domain.vo.MessageVo;
|
|
import org.dromara.external.api.zhongche.domain.vo.MessageVo;
|
|
|
|
|
+import org.dromara.external.controller.tongji.TongJiPullController;
|
|
|
import org.dromara.external.controller.zhongche.ZhongChePullController;
|
|
import org.dromara.external.controller.zhongche.ZhongChePullController;
|
|
|
import org.dromara.external.handler.MallMessageHandler;
|
|
import org.dromara.external.handler.MallMessageHandler;
|
|
|
import org.dromara.external.domain.ExternalItem;
|
|
import org.dromara.external.domain.ExternalItem;
|
|
@@ -43,6 +44,7 @@ public class OrderCreateMessageHandler implements MallMessageHandler {
|
|
|
|
|
|
|
|
private final ZhongChePullController zhongChePullController;
|
|
private final ZhongChePullController zhongChePullController;
|
|
|
|
|
|
|
|
|
|
+ private final TongJiPullController tongJiPullController;
|
|
|
private final IExternalProductService externalProductService;
|
|
private final IExternalProductService externalProductService;
|
|
|
|
|
|
|
|
private final IExternalItemService externalItemService;
|
|
private final IExternalItemService externalItemService;
|
|
@@ -80,121 +82,115 @@ public class OrderCreateMessageHandler implements MallMessageHandler {
|
|
|
String orderNo = (String) messageBo.getContent().get("orderNo");
|
|
String orderNo = (String) messageBo.getContent().get("orderNo");
|
|
|
OrderDetailBo orderDetailBo = new OrderDetailBo();
|
|
OrderDetailBo orderDetailBo = new OrderDetailBo();
|
|
|
orderDetailBo.setOrderNo(orderNo);
|
|
orderDetailBo.setOrderNo(orderNo);
|
|
|
- OrderDetailVo orderDetailVo = zhongChePullController.mallOrderDetail(orderDetailBo);
|
|
|
|
|
- orderDetailVo.setDataSource(messageBo.getItemKey());
|
|
|
|
|
-// OrderDetailVo orderDetailVo = new OrderDetailVo();
|
|
|
|
|
-//
|
|
|
|
|
-//// ===== 基本信息 =====
|
|
|
|
|
-// orderDetailVo.setOrderNo("20260210110174145");
|
|
|
|
|
-// orderDetailVo.setPurchaserOrderNo("2026021010452505");
|
|
|
|
|
-// orderDetailVo.setPreOrder(0);
|
|
|
|
|
-// orderDetailVo.setMallOrderNo(null);
|
|
|
|
|
-// orderDetailVo.setOrderStatus("1");
|
|
|
|
|
-// orderDetailVo.setOrderAmount(new BigDecimal("205.24"));
|
|
|
|
|
-// orderDetailVo.setFreight(new BigDecimal("0.00"));
|
|
|
|
|
-//
|
|
|
|
|
-//// ===== 收货信息 =====
|
|
|
|
|
-// orderDetailVo.setName("111");
|
|
|
|
|
-// orderDetailVo.setProvinceId("1");
|
|
|
|
|
-// orderDetailVo.setCityId("2800");
|
|
|
|
|
-// orderDetailVo.setCountyId("55835");
|
|
|
|
|
-// orderDetailVo.setTownId("0");
|
|
|
|
|
-// orderDetailVo.setAddress("中车智程");
|
|
|
|
|
-// orderDetailVo.setZip(null);
|
|
|
|
|
-// orderDetailVo.setMobile("13381115928");
|
|
|
|
|
-// orderDetailVo.setPhone(null);
|
|
|
|
|
-// orderDetailVo.setEmail("service_yg@bosssoft.com.cn");
|
|
|
|
|
-//
|
|
|
|
|
-//// ===== 下单信息 =====
|
|
|
|
|
-// orderDetailVo.setMemo("");
|
|
|
|
|
-// orderDetailVo.setOrderTime("2026-02-10 17:25:18");
|
|
|
|
|
-// orderDetailVo.setBuyer("常恒瑀");
|
|
|
|
|
-// orderDetailVo.setBuyerMobile("18801195315");
|
|
|
|
|
-// orderDetailVo.setPurchaserName("中国中车");
|
|
|
|
|
-// orderDetailVo.setPurchaserDeptName("中国中车-中车科技园发展有限公司-中车智程文化科技(北京)有限公司");
|
|
|
|
|
-//
|
|
|
|
|
-//// ===== 支付信息 =====
|
|
|
|
|
-// orderDetailVo.setPaymentType("01");
|
|
|
|
|
-// orderDetailVo.setVoucher("0");
|
|
|
|
|
-// orderDetailVo.setPayClient("0");
|
|
|
|
|
-// orderDetailVo.setPaySerialNum(null);
|
|
|
|
|
-// orderDetailVo.setPayAccount(null);
|
|
|
|
|
-// orderDetailVo.setPayMoney(null);
|
|
|
|
|
-// orderDetailVo.setPayPrestore(null);
|
|
|
|
|
-//
|
|
|
|
|
-// OrderGoodsItem goodsItem = new OrderGoodsItem();
|
|
|
|
|
-// goodsItem.setGoodsId("362032");
|
|
|
|
|
-// goodsItem.setNum(new BigDecimal("7.0000"));
|
|
|
|
|
-// goodsItem.setPrice(new BigDecimal("29.3200"));
|
|
|
|
|
-// goodsItem.setSubAmount(new BigDecimal("205.24"));
|
|
|
|
|
-// goodsItem.setWishDeliveryDate(null);
|
|
|
|
|
-//
|
|
|
|
|
-// orderDetailVo.setOrderGoods(Collections.singletonList(goodsItem));
|
|
|
|
|
-// ZhongCheOrderInvoice invoice = new ZhongCheOrderInvoice();
|
|
|
|
|
-// invoice.setInvoiceType("2");
|
|
|
|
|
-// invoice.setSelectedInvoiceTitle("5");
|
|
|
|
|
-// invoice.setCompanyName("中车智程文化科技(北京)");
|
|
|
|
|
-// invoice.setInvoiceContent("1");
|
|
|
|
|
-// invoice.setInvoiceName("王琳");
|
|
|
|
|
-// invoice.setInvoicePhone("15249101907");
|
|
|
|
|
-// invoice.setInvoiceFullAddress("北京海淀区羊坊店街道北京市海淀区羊坊店路11号");
|
|
|
|
|
-// invoice.setRegCompanyName("中车智程文化科技(北京)");
|
|
|
|
|
-// invoice.setRegCode("91110108MAC4385K6J");
|
|
|
|
|
-// invoice.setRegAddr("北京市海淀区羊坊店路11号四层428室测试");
|
|
|
|
|
-// invoice.setRegPhone("010-51891021");
|
|
|
|
|
-// invoice.setRegBank("中国工商银行股份有限公司北京玉渊潭支行测试");
|
|
|
|
|
-// invoice.setRegBankAccount("111111111");
|
|
|
|
|
-// orderDetailVo.setOrderInvoice(invoice);
|
|
|
|
|
- //获取省市区乡的名称
|
|
|
|
|
- //省
|
|
|
|
|
- AreaQueryBo provinceNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
- provinceNameAreaQueryBo.setLevel(1);
|
|
|
|
|
- provinceNameAreaQueryBo.setPid("0");
|
|
|
|
|
- AreaVo provinceNameAreaVo = zhongChePullController.areaQuery(provinceNameAreaQueryBo);
|
|
|
|
|
- Map<String, String> provinceNameMap = provinceNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
- //市
|
|
|
|
|
- AreaQueryBo cityNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
- cityNameAreaQueryBo.setLevel(2);
|
|
|
|
|
- cityNameAreaQueryBo.setPid(orderDetailVo.getProvinceId());
|
|
|
|
|
- AreaVo cityNameAreaVo = zhongChePullController.areaQuery(cityNameAreaQueryBo);
|
|
|
|
|
- Map<String, String> cityNameMap = cityNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
- //区
|
|
|
|
|
- AreaQueryBo countyNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
- countyNameAreaQueryBo.setLevel(3);
|
|
|
|
|
- countyNameAreaQueryBo.setPid(orderDetailVo.getCityId());
|
|
|
|
|
- AreaVo countyNameAreaVo = zhongChePullController.areaQuery(countyNameAreaQueryBo);
|
|
|
|
|
- Map<String, String> countyNameMap = countyNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
- //乡
|
|
|
|
|
- AreaQueryBo townNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
- townNameAreaQueryBo.setLevel(4);
|
|
|
|
|
- townNameAreaQueryBo.setPid(orderDetailVo.getCountyId());
|
|
|
|
|
- AreaVo townNameAreaVo = zhongChePullController.areaQuery(townNameAreaQueryBo);
|
|
|
|
|
- Map<String, String> townNameMap = townNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
-
|
|
|
|
|
- orderDetailVo.setProvinceName(provinceNameMap.get(orderDetailVo.getProvinceId()));
|
|
|
|
|
- orderDetailVo.setCityName(cityNameMap.get(orderDetailVo.getCityId()));
|
|
|
|
|
- orderDetailVo.setCountyName(countyNameMap.get(orderDetailVo.getCountyId()));
|
|
|
|
|
- orderDetailVo.setTownName(townNameMap.get(orderDetailVo.getTownId()));
|
|
|
|
|
- OrderNoDto orderNoDto = remoteExternalOrderService.createZhongCheOrder(orderDetailVo);
|
|
|
|
|
- log.info("新订单执行结果,orderNoDto={}", JSONUtil.toJsonStr(orderNoDto));
|
|
|
|
|
- if (orderNoDto.getSuccess()){
|
|
|
|
|
- List<OrderGoodsItem> orderGoods = orderDetailVo.getOrderGoods();
|
|
|
|
|
- ExternalItem externalItem = externalItemService.getOne(Wrappers.lambdaQuery(ExternalItem.class).eq(ExternalItem::getItemKey, messageBo.getItemKey()));
|
|
|
|
|
- //更新商品库存
|
|
|
|
|
- for (OrderGoodsItem orderGoodsItem : orderGoods) {
|
|
|
|
|
- ExternalProduct one = externalProductService.getOne(Wrappers.<ExternalProduct>lambdaQuery().
|
|
|
|
|
- eq(ExternalProduct::getProductNo, orderGoodsItem.getGoodsId())
|
|
|
|
|
- .eq(ExternalProduct::getItemId, ObjectUtil.isNotEmpty(externalItem)?externalItem.getId():"2028409445955592193")
|
|
|
|
|
- );
|
|
|
|
|
- one.setAvailableInventory(one.getAvailableInventory()-orderGoodsItem.getNum().intValue());
|
|
|
|
|
- externalProductService.updateById(one);
|
|
|
|
|
|
|
+ //获取项目id
|
|
|
|
|
+ ExternalItem externalItem = externalItemService.getOne(Wrappers.<ExternalItem>lambdaQuery()
|
|
|
|
|
+ .eq(ExternalItem::getItemKey, messageBo.getItemKey())
|
|
|
|
|
+ .last("limit 1")
|
|
|
|
|
+ );
|
|
|
|
|
+ if (ObjectUtil.equals(messageBo.getItemKey(), "zhongche")){
|
|
|
|
|
+ OrderDetailVo orderDetailVo = zhongChePullController.mallOrderDetail(orderDetailBo);
|
|
|
|
|
+ orderDetailVo.setDataSource(messageBo.getItemKey());
|
|
|
|
|
+ //获取省市区乡的名称
|
|
|
|
|
+ //省
|
|
|
|
|
+ AreaQueryBo provinceNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ provinceNameAreaQueryBo.setLevel(1);
|
|
|
|
|
+ provinceNameAreaQueryBo.setPid("0");
|
|
|
|
|
+ AreaVo provinceNameAreaVo = zhongChePullController.areaQuery(provinceNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> provinceNameMap = provinceNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+ //市
|
|
|
|
|
+ AreaQueryBo cityNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ cityNameAreaQueryBo.setLevel(2);
|
|
|
|
|
+ cityNameAreaQueryBo.setPid(orderDetailVo.getProvinceId());
|
|
|
|
|
+ AreaVo cityNameAreaVo = zhongChePullController.areaQuery(cityNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> cityNameMap = cityNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+ //区
|
|
|
|
|
+ AreaQueryBo countyNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ countyNameAreaQueryBo.setLevel(3);
|
|
|
|
|
+ countyNameAreaQueryBo.setPid(orderDetailVo.getCityId());
|
|
|
|
|
+ AreaVo countyNameAreaVo = zhongChePullController.areaQuery(countyNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> countyNameMap = countyNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+ //乡
|
|
|
|
|
+ AreaQueryBo townNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ townNameAreaQueryBo.setLevel(4);
|
|
|
|
|
+ townNameAreaQueryBo.setPid(orderDetailVo.getCountyId());
|
|
|
|
|
+ AreaVo townNameAreaVo = zhongChePullController.areaQuery(townNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> townNameMap = townNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+
|
|
|
|
|
+ orderDetailVo.setProvinceName(provinceNameMap.get(orderDetailVo.getProvinceId()));
|
|
|
|
|
+ orderDetailVo.setCityName(cityNameMap.get(orderDetailVo.getCityId()));
|
|
|
|
|
+ orderDetailVo.setCountyName(countyNameMap.get(orderDetailVo.getCountyId()));
|
|
|
|
|
+ orderDetailVo.setTownName(townNameMap.get(orderDetailVo.getTownId()));
|
|
|
|
|
+ OrderNoDto orderNoDto = remoteExternalOrderService.createZhongCheOrder(orderDetailVo);
|
|
|
|
|
+ log.info("新订单执行结果,orderNoDto={}", JSONUtil.toJsonStr(orderNoDto));
|
|
|
|
|
+ if (orderNoDto.getSuccess()){
|
|
|
|
|
+ List<OrderGoodsItem> orderGoods = orderDetailVo.getOrderGoods();
|
|
|
|
|
+ //更新商品库存
|
|
|
|
|
+ for (OrderGoodsItem orderGoodsItem : orderGoods) {
|
|
|
|
|
+ ExternalProduct one = externalProductService.getOne(Wrappers.<ExternalProduct>lambdaQuery().
|
|
|
|
|
+ eq(ExternalProduct::getProductNo, orderGoodsItem.getGoodsId())
|
|
|
|
|
+ .eq(ExternalProduct::getItemId, ObjectUtil.isNotEmpty(externalItem)?externalItem.getId():"2028409445955592193")
|
|
|
|
|
+ );
|
|
|
|
|
+ one.setAvailableInventory(one.getAvailableInventory()-orderGoodsItem.getNum().intValue());
|
|
|
|
|
+ externalProductService.updateById(one);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return new MessageVo("1");
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return new MessageVo("0","获取订单详情失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if (ObjectUtil.equals(messageBo.getItemKey(), "tongji")){
|
|
|
|
|
+ OrderDetailVo orderDetailVo = tongJiPullController.mallOrderDetail(orderDetailBo);
|
|
|
|
|
+ orderDetailVo.setDataSource(messageBo.getItemKey());
|
|
|
|
|
+ //获取省市区乡的名称
|
|
|
|
|
+ //省
|
|
|
|
|
+ AreaQueryBo provinceNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ provinceNameAreaQueryBo.setLevel(1);
|
|
|
|
|
+ provinceNameAreaQueryBo.setPid("0");
|
|
|
|
|
+ AreaVo provinceNameAreaVo = tongJiPullController.areaQuery(provinceNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> provinceNameMap = provinceNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+ //市
|
|
|
|
|
+ AreaQueryBo cityNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ cityNameAreaQueryBo.setLevel(2);
|
|
|
|
|
+ cityNameAreaQueryBo.setPid(orderDetailVo.getProvinceId());
|
|
|
|
|
+ AreaVo cityNameAreaVo = tongJiPullController.areaQuery(cityNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> cityNameMap = cityNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+ //区
|
|
|
|
|
+ AreaQueryBo countyNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ countyNameAreaQueryBo.setLevel(3);
|
|
|
|
|
+ countyNameAreaQueryBo.setPid(orderDetailVo.getCityId());
|
|
|
|
|
+ AreaVo countyNameAreaVo = tongJiPullController.areaQuery(countyNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> countyNameMap = countyNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+ //乡
|
|
|
|
|
+ AreaQueryBo townNameAreaQueryBo = new AreaQueryBo();
|
|
|
|
|
+ townNameAreaQueryBo.setLevel(4);
|
|
|
|
|
+ townNameAreaQueryBo.setPid(orderDetailVo.getCountyId());
|
|
|
|
|
+ AreaVo townNameAreaVo = tongJiPullController.areaQuery(townNameAreaQueryBo);
|
|
|
|
|
+ Map<String, String> townNameMap = townNameAreaVo.getAreas().stream().collect(Collectors.toMap(Area::getId, Area::getName));
|
|
|
|
|
+
|
|
|
|
|
+ orderDetailVo.setProvinceName(provinceNameMap.get(orderDetailVo.getProvinceId()));
|
|
|
|
|
+ orderDetailVo.setCityName(cityNameMap.get(orderDetailVo.getCityId()));
|
|
|
|
|
+ orderDetailVo.setCountyName(countyNameMap.get(orderDetailVo.getCountyId()));
|
|
|
|
|
+ orderDetailVo.setTownName(townNameMap.get(orderDetailVo.getTownId()));
|
|
|
|
|
+ OrderNoDto orderNoDto = remoteExternalOrderService.createZhongCheOrder(orderDetailVo);
|
|
|
|
|
+ log.info("新订单执行结果,orderNoDto={}", JSONUtil.toJsonStr(orderNoDto));
|
|
|
|
|
+ if (orderNoDto.getSuccess()){
|
|
|
|
|
+ List<OrderGoodsItem> orderGoods = orderDetailVo.getOrderGoods();
|
|
|
|
|
+ //更新商品库存
|
|
|
|
|
+ for (OrderGoodsItem orderGoodsItem : orderGoods) {
|
|
|
|
|
+ ExternalProduct one = externalProductService.getOne(Wrappers.<ExternalProduct>lambdaQuery().
|
|
|
|
|
+ eq(ExternalProduct::getProductNo, orderGoodsItem.getGoodsId())
|
|
|
|
|
+ .eq(ExternalProduct::getItemId, ObjectUtil.isNotEmpty(externalItem)?externalItem.getId():"2059520469390647298")
|
|
|
|
|
+ );
|
|
|
|
|
+ one.setAvailableInventory(one.getAvailableInventory()-orderGoodsItem.getNum().intValue());
|
|
|
|
|
+ externalProductService.updateById(one);
|
|
|
|
|
+ }
|
|
|
|
|
+ return new MessageVo("1");
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return new MessageVo("0","获取订单详情失败");
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- return new MessageVo("1");
|
|
|
|
|
- }else {
|
|
|
|
|
- return new MessageVo("0","获取订单详情失败");
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ return new MessageVo("0","获取订单详情失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|