From 087cd794187727bf9a34fcef3027cd56f6dec436 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 10 Mar 2021 15:20:54 +0800 Subject: [PATCH] Merge branch 'api' of http://120.27.238.55:7000/r/beauty-erp into api --- zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java | 265 +++++++++++++++++++++++++++------------------------- 1 files changed, 138 insertions(+), 127 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java index 88aab2e..2c9ff6d 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java @@ -26,7 +26,6 @@ import org.springframework.transaction.annotation.Transactional; import java.io.IOException; -import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -82,134 +81,146 @@ @Transactional(rollbackFor = Exception.class) public void createOrder(ShopOrder orderDto) { - BizUser bizUser = bizUserService.findByOpenId(orderDto.getUserId()); - SysOrder order = new SysOrder(); - SysVipInfo vipInfo = vipDao.selectByPhone(bizUser.getPhoneNumber()); - if(SysVipInfo.UNDEAL_VIP==vipInfo.getIsDeal()){ - //非成交客户下单更新客户为成交客户 - vipInfo.setIsDeal(SysVipInfo.DEAL_VIP); - vipDao.update(vipInfo); - } - - //获取订单归属门店 - order.setCompanyId(vipInfo.getCompanyId()); - order.setShopId(Long.parseLong(orderDto.getStoreId()+"")); - //同步的订单订单编号保持一致 - order.setOrderNo(orderDto.getOrderNo()); - order.setVipId(vipInfo.getId()); - order.setOrderTime(new Date()); - order.setRemark(AppConstance.WX_ORDER_FLAG); - order.setStaffId(vipInfo.getStaffId()); - order.setIsCross(2 + ""); - order.setStatu(Dictionary.ORDER_STATU_YFK); - order.setCardPay(0.00); - order.setCashPay(orderDto.getOrderMoney().doubleValue()); - order.setTotal(orderDto.getOrderMoney().doubleValue()); - order.setZkTotal(orderDto.getOrderMoney().doubleValue()); - order.setPayTime(new Date()); - order.setArrears(0); - int i = sysOrderDao.insert(order); - // 创建订单明细,并计算总价与折扣总价 - // 总价 - double total = 0; - double zkTotal = 0; - int count = 0; - // 设置订单条目 + //判断是否存在需要同步的产品,只有绑定了erp中产品的才同步 + boolean needTb=false; for (ShopOrderDetails orderItemDto : orderDto.getDetails()) { - - ShopSku shopSku = shopSkuDao.selectById(orderItemDto.getsId()); - - if (StringUtils.isBlank(shopSku.getStockCode())) { - LogUtil.warn("销售产品未绑定erp中的产品,无法进行同步"); - } - - String goodsCode =shopSku.getStockCode(); - ShoppingGoods shoppingGoods = shoppingGoodsService.findById(Long.parseLong(goodsCode)); - - if (shoppingGoods == null) { - LogUtil.warn("无效的商品id{}", shopSku.getAtrid()); - } - SysOrderItem orderItem = new SysOrderItem(); - orderItem.setOrderId(order.getId()); - orderItem.setCount(orderItemDto.getCount()); - orderItem.setIsFree(orderItemDto.getPrice().doubleValue() > 0 ? "否" : "是"); - orderItem.setType(shoppingGoods.getGoodType()); - orderItem.setStatus(Dictionary.ORDER_STATU_YFK); - orderItem.setPrice(orderItemDto.getPrice().doubleValue()); - orderItem.setZkPrice(orderItemDto.getPrice().doubleValue()); - orderItem.setGoodsId(shoppingGoods.getId()); - - // 设置对应产品的id - switch (shoppingGoods.getGoodType()) { - case Dictionary.SHOPPING_GOODS_TYPE_JJCP: - orderItemDao.insert(orderItem); - break; - // 购买的是单个项目 - case Dictionary.SHOPPING_GOODS_TYPE_XM: - orderItemDao.insert(orderItem); - break; - case Dictionary.SHOPPING_GOODS_TYPE_TC: - // 每一个套餐都看成一个单独的订单条目 - count = orderItem.getCount(); - for (int j = 0; j < count; j++) { - orderItem.setCount(1); - orderItem.setId(null); - orderItemDao.insert(orderItem); - } - break; - case Dictionary.SHOPPING_GOODS_TYPE_CZK: - // 新增明细 - orderItem.setGoodsId(shoppingGoods.getId()); - // 每一个充值卡都看成一个单独的订单条目 - count = orderItem.getCount(); - for (int j = 0; j < count; j++) { - orderItem.setCount(1); - orderItem.setId(null); - orderItemDao.insert(orderItem); - } - break; - case Dictionary.SHOPPING_GOODS_TYPE_ZHK: - // 新增明细 - orderItem.setGoodsId(shoppingGoods.getId()); - // 每一个充值卡都看成一个单独的订单条目 - count = orderItem.getCount(); - for (int j = 0; j < count; j++) { - orderItem.setCount(1); - orderItem.setId(null); - orderItemDao.insert(orderItem); - } - break; + if (StringUtils.isNotBlank(shopSku.getStockCode())) { + needTb=true; } } - // 处理收款逻辑 - SysOrder sourceOrder = sysOrderDao.selectById(order.getId()); - sourceOrder.setItems(orderItemDao.selectByOrderId(order.getId())); - // 设置会员充值卡使用情况 - orderService.addMoneyCardUse(sourceOrder); + if(needTb){ - // 改变客户项目套餐使用情况 - orderService.addTaocanProj(sourceOrder); + BizUser bizUser = bizUserService.findByOpenId(orderDto.getUserId()); + SysOrder order = new SysOrder(); + //TODO 根据公司id区分 + SysVipInfo vipInfo = vipDao.selectByPhone(bizUser.getPhoneNumber()); + if(SysVipInfo.UNDEAL_VIP==vipInfo.getIsDeal()){ + //非成交客户下单更新客户为成交客户 + vipInfo.setIsDeal(SysVipInfo.DEAL_VIP); + vipDao.update(vipInfo); + } - // 设置销量 - orderService.setShopSelCount(sourceOrder); + //获取订单归属门店 + order.setCompanyId(orderDto.getCompanyId()); + order.setShopId(Long.parseLong(orderDto.getStoreId()+"")); + //同步的订单订单编号保持一致 + order.setOrderNo(orderDto.getOrderNo()); + order.setVipId(vipInfo.getId()); + order.setOrderTime(new Date()); + order.setRemark(AppConstance.WX_ORDER_FLAG); + order.setStaffId(vipInfo.getStaffId()); + order.setIsCross(2 + ""); + order.setStatu(Dictionary.ORDER_STATU_YFK); + order.setCardPay(0.00); + order.setCashPay(orderDto.getOrderMoney().doubleValue()); + order.setTotal(orderDto.getOrderMoney().doubleValue()); + order.setZkTotal(orderDto.getOrderMoney().doubleValue()); + order.setPayTime(new Date()); + order.setArrears(0); + int i = sysOrderDao.insert(order); + // 创建订单明细,并计算总价与折扣总价 + int count = 0; + // 设置订单条目 + for (ShopOrderDetails orderItemDto : orderDto.getDetails()) { - SysOrderFlow flow = new SysOrderFlow(); - flow.setFlowNo(codeService.getFlowCode() + "-" + i); - Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); - ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); - flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); - flow.setOrderId(sourceOrder.getId()); - flow.setVipId(sourceOrder.getVipId()); - flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); + ShopSku shopSku = shopSkuDao.selectById(orderItemDto.getsId()); - flow.setAmount(orderDto.getOrderMoney()); - flow.setPayMethod("微信"); + if (StringUtils.isBlank(shopSku.getStockCode())) { + LogUtil.warn("销售产品未绑定erp中的产品,无法进行同步"); + } - flow.setShopId(sourceOrder.getShopId()); - flow.setCompanyId(sourceOrder.getCompanyId()); - sysOrderFlowDao.insert(flow); + String goodsCode =shopSku.getStockCode(); + ShoppingGoods shoppingGoods = shoppingGoodsService.findById(Long.parseLong(goodsCode)); + + if (shoppingGoods == null) { + LogUtil.warn("无效的商品id{}", shopSku.getAtrid()); + } + SysOrderItem orderItem = new SysOrderItem(); + orderItem.setOrderId(order.getId()); + orderItem.setCount(orderItemDto.getCount()); + orderItem.setIsFree(orderItemDto.getPrice().doubleValue() > 0 ? "否" : "是"); + orderItem.setType(shoppingGoods.getGoodType()); + orderItem.setStatus(Dictionary.ORDER_STATU_YFK); + orderItem.setPrice(orderItemDto.getPrice().doubleValue()); + orderItem.setZkPrice(orderItemDto.getPrice().doubleValue()); + orderItem.setGoodsId(shoppingGoods.getId()); + + // 设置对应产品的id + switch (shoppingGoods.getGoodType()) { + case Dictionary.SHOPPING_GOODS_TYPE_JJCP: + orderItemDao.insert(orderItem); + break; + // 购买的是单个项目 + case Dictionary.SHOPPING_GOODS_TYPE_XM: + orderItemDao.insert(orderItem); + break; + case Dictionary.SHOPPING_GOODS_TYPE_TC: + // 每一个套餐都看成一个单独的订单条目 + count = orderItem.getCount(); + for (int j = 0; j < count; j++) { + orderItem.setCount(1); + orderItem.setId(null); + orderItemDao.insert(orderItem); + } + break; + case Dictionary.SHOPPING_GOODS_TYPE_CZK: + // 新增明细 + orderItem.setGoodsId(shoppingGoods.getId()); + // 每一个充值卡都看成一个单独的订单条目 + count = orderItem.getCount(); + for (int j = 0; j < count; j++) { + orderItem.setCount(1); + orderItem.setId(null); + orderItemDao.insert(orderItem); + } + break; + case Dictionary.SHOPPING_GOODS_TYPE_ZHK: + // 新增明细 + orderItem.setGoodsId(shoppingGoods.getId()); + // 每一个充值卡都看成一个单独的订单条目 + count = orderItem.getCount(); + for (int j = 0; j < count; j++) { + orderItem.setCount(1); + orderItem.setId(null); + orderItemDao.insert(orderItem); + } + break; + } + } + // 处理收款逻辑 + SysOrder sourceOrder = sysOrderDao.selectById(order.getId()); + sourceOrder.setItems(orderItemDao.selectByOrderId(order.getId())); + // 设置会员充值卡使用情况 + orderService.addMoneyCardUse(sourceOrder); + + // 改变客户项目套餐使用情况 + orderService.addTaocanProj(sourceOrder); + + // 设置销量 + orderService.setShopSelCount(sourceOrder); + + SysOrderFlow flow = new SysOrderFlow(); + flow.setFlowNo(codeService.getFlowCode() + "-" + i); + Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); + ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); + flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); + + flow.setOrderId(sourceOrder.getId()); + flow.setVipId(sourceOrder.getVipId()); + flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); + + flow.setAmount(orderDto.getOrderMoney()); + flow.setPayMethod("微信"); + + flow.setShopId(sourceOrder.getShopId()); + flow.setCompanyId(sourceOrder.getCompanyId()); + sysOrderFlowDao.insert(flow); + }else{ + LogUtil.info("不存在需要同步的产品"); + } + } @@ -219,14 +230,14 @@ @Override public void handle(String consumerTag, Delivery message) throws IOException { - String orderId = new String(message.getBody(), "UTF-8"); - LogUtil.debug("收到创建订单任务orderId={}", orderId); - //获取订单信息 - ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId)); - //获取订单详情 - List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); - order.setDetails(orderDetails); - createOrder(order); + String orderId = new String(message.getBody(), "UTF-8"); + LogUtil.debug("收到创建订单任务orderId={}", orderId); + //获取订单信息 + ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId)); + //获取订单详情 + List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); + order.setDetails(orderDetails); + createOrder(order); } } -- Gitblit v1.9.1