From 33db78e8f7908d696149deaac7b1118e121bc9bf Mon Sep 17 00:00:00 2001 From: wyq Date: Tue, 6 May 2025 14:45:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderTaskServiceImpl.java | 152 +++++++++--------- .../service/impl/RetryServiceImpl.java | 6 +- 2 files changed, 81 insertions(+), 77 deletions(-) diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java index 678522e..3928447 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java @@ -19,6 +19,7 @@ import com.zbkj.common.model.product.StoreProductAttrValue; import com.zbkj.common.model.product.StoreProductReply; import com.zbkj.common.model.user.User; import com.zbkj.common.model.user.UserAddress; +import com.zbkj.common.model.wechat.WechatPayInfo; import com.zbkj.common.model.wechat.video.PayComponentOrder; import com.zbkj.common.utils.CrmebDateUtil; import com.zbkj.common.utils.RedisUtil; @@ -27,6 +28,7 @@ import com.zbkj.common.vo.StoreOrderInfoOldVo; import com.zbkj.service.dao.StoreOrderDao; import com.zbkj.service.dao.StoreProductAttrValueDao; import com.zbkj.service.dao.UserAddressDao; +import com.zbkj.service.dao.WechatPayInfoDao; import com.zbkj.service.pojo.TradeOrderItemCreateReqDTO; import com.zbkj.service.service.*; import com.zbkj.service.util.RedisLockUtil; @@ -108,6 +110,8 @@ public class OrderTaskServiceImpl implements OrderTaskService { @Autowired private SystemConfigService systemConfigService; + @Autowired + private WechatPayInfoDao wechatPayInfoDao; /** * 用户取消订单 * @author Mr.Zhang @@ -452,42 +456,42 @@ public class OrderTaskServiceImpl implements OrderTaskService { @Override public void autoSync() { -// // 查询未同步的订单; -// List list = storeOrderDao.selectList(new LambdaQueryWrapper() -// .eq(StoreOrder::getIsSystemDel, 0) -// .eq(StoreOrder::getPaid, 1) -// .eq(StoreOrder::getIsDel, 0) -// .eq(StoreOrder::getHasSync, 0) -// .eq(StoreOrder::getRefundStatus, 0)); -// if (CollUtil.isEmpty(list)){ -// return; -// } -// -// for (StoreOrder order : list) { -// boolean lock = -// redisLock.lock(Constants.ORDER_LOCK + order.getOrderId(),5); -// if (!lock) { -// logger.error("订单未获取到锁orderNo = " + order.getOrderId()); -// continue; -// } -// try { -// QueryWrapper queryWrapper=new QueryWrapper<>(); -// queryWrapper.eq("platform_code",order.getOrderId()); -// MdbPayResultPO mdbPayResultPO=mdbPayResultDao.selectOne(queryWrapper); -// List skuList = storeOrderInfoService.getListByOrderNo(order.getOrderId()); -// List skuIds = skuList.stream().map(StoreOrderInfo::getAttrValueId).collect(Collectors.toList()); -// List attrValues = storeProductAttrValueDao.selectList(new LambdaQueryWrapper().in(StoreProductAttrValue::getId, skuIds).eq(StoreProductAttrValue::getIsDel,0)); -// List detailList = new ArrayList<>(); -// BigDecimal hbdkje=BigDecimal.ZERO; -// BigDecimal hdyhje=BigDecimal.ZERO; -// BigDecimal jfdkje=BigDecimal.ZERO; -// if(StringUtils.isNotEmpty(mdbPayResultPO.getRpktRducAmt())){ -// try { -// hbdkje=BigDecimal.valueOf(Double.parseDouble(mdbPayResultPO.getRpktRducAmt())); -// }catch (Exception e){ -// logger.info("红包抵扣金额不是数字格式"); -// } -// } + // 查询未同步的订单; + List list = storeOrderDao.selectList(new LambdaQueryWrapper() + .eq(StoreOrder::getIsSystemDel, 0) + .eq(StoreOrder::getPaid, 1) + .eq(StoreOrder::getIsDel, 0) + .eq(StoreOrder::getHasSync, 0) + .eq(StoreOrder::getRefundStatus, 0)); + if (CollUtil.isEmpty(list)){ + return; + } + + for (StoreOrder order : list) { + boolean lock = + redisLock.lock(Constants.ORDER_LOCK + order.getOrderId(),5); + if (!lock) { + logger.error("订单未获取到锁orderNo = " + order.getOrderId()); + continue; + } + try { + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq("out_trade_no",order.getOutTradeNo()); + WechatPayInfo mdbPayResultPO=wechatPayInfoDao.selectOne(queryWrapper); + List skuList = storeOrderInfoService.getListByOrderNo(order.getOrderId()); + List skuIds = skuList.stream().map(StoreOrderInfo::getAttrValueId).collect(Collectors.toList()); + List attrValues = storeProductAttrValueDao.selectList(new LambdaQueryWrapper().in(StoreProductAttrValue::getId, skuIds).eq(StoreProductAttrValue::getIsDel,0)); + List detailList = new ArrayList<>(); + BigDecimal hbdkje=BigDecimal.ZERO; + BigDecimal hdyhje=BigDecimal.ZERO; + BigDecimal jfdkje=BigDecimal.ZERO; + if(mdbPayResultPO.getCouponFee()!=null){ + try { + hbdkje=BigDecimal.valueOf(mdbPayResultPO.getCouponFee()*0.01); + }catch (Exception e){ + logger.info("红包抵扣金额不是数字格式"); + } + } // if(StringUtils.isNotEmpty(mdbPayResultPO.getActDsctAmt())){ // try { // hdyhje=BigDecimal.valueOf(Double.parseDouble(mdbPayResultPO.getActDsctAmt())); @@ -502,44 +506,44 @@ public class OrderTaskServiceImpl implements OrderTaskService { // logger.info("积分抵扣金额不是数字格式"); // } // } -// -// for (StoreProductAttrValue attrValue : attrValues) { -// TradeOrderItemCreateReqDTO item = new TradeOrderItemCreateReqDTO(); -// item.setSkuNo(attrValue.getBarCode()); -// item.setSkuName(skuList.get(0).getProductName()); -// StoreOrderInfo storeOrderInfo = skuList.stream().filter(o -> o.getAttrValueId().equals(attrValue.getId())).collect(Collectors.toList()).get(0); -// item.setSellQty(storeOrderInfo.getPayNum()); -// item.setSellPrice(attrValue.getPrice()); -// String productName = trim(skuList.get(0).getProductName()); -// String sku = trim(skuList.get(0).getSku()); -// String note = productName+sku; -// if (note.length()>40){ -// productName= productName.length()>20?productName.substring(0,20):productName; -// note= productName+" "+sku; -// } -// item.setNote(note); -// item.setTotalPrice(order.getPayPrice()); -// item.setPayPrice(order.getPayPrice().subtract(hdyhje).subtract(hbdkje).subtract(jfdkje)); -// item.setOrderPrice(order.getPayPrice()); -// item.setOid(order.getOrderId()+"_1"); -// //价格随意全渠道会自动更新 -// item.setCost(BigDecimal.ZERO); -// item.setBrandType(" "); -// item.setRebate(BigDecimal.ZERO); -// item.setPriceNote(" "); -// detailList.add(item); -// } -// UserAddress userAddress = userAddressDao.selectDistinct(order); -// retryService.createOrder(order, userAddress, detailList); -// order.setHasSync(1); -// storeOrderDao.updateById(order); -// }catch (Exception e){ -// logger.error("订单同步失败:订单号:{},异常信息={}", order.getOrderId(), e); -// retryService.systemErrNc("订单同步失败:订单号:"+order.getOrderId()); -// }finally { -// redisLock.unLock(Constants.ORDER_LOCK + order.getOrderId()); -// } -// } + + for (StoreProductAttrValue attrValue : attrValues) { + TradeOrderItemCreateReqDTO item = new TradeOrderItemCreateReqDTO(); + item.setSkuNo(attrValue.getBarCode()); + item.setSkuName(skuList.get(0).getProductName()); + StoreOrderInfo storeOrderInfo = skuList.stream().filter(o -> o.getAttrValueId().equals(attrValue.getId())).collect(Collectors.toList()).get(0); + item.setSellQty(storeOrderInfo.getPayNum()); + item.setSellPrice(attrValue.getPrice()); + String productName = trim(skuList.get(0).getProductName()); + String sku = trim(skuList.get(0).getSku()); + String note = productName+sku; + if (note.length()>40){ + productName= productName.length()>20?productName.substring(0,20):productName; + note= productName+" "+sku; + } + item.setNote(note); + item.setTotalPrice(order.getPayPrice()); + item.setPayPrice(order.getPayPrice().subtract(hdyhje).subtract(hbdkje).subtract(jfdkje)); + item.setOrderPrice(order.getPayPrice()); + item.setOid(order.getOrderId()+"_1"); + //价格随意全渠道会自动更新 + item.setCost(BigDecimal.ZERO); + item.setBrandType(" "); + item.setRebate(BigDecimal.ZERO); + item.setPriceNote(" "); + detailList.add(item); + } + UserAddress userAddress = userAddressDao.selectDistinct(order); + retryService.createOrder(order, userAddress, detailList); + order.setHasSync(1); + storeOrderDao.updateById(order); + }catch (Exception e){ + logger.error("订单同步失败:订单号:{},异常信息={}", order.getOrderId(), e); + retryService.systemErrNc("订单同步失败:订单号:"+order.getOrderId()); + }finally { + redisLock.unLock(Constants.ORDER_LOCK + order.getOrderId()); + } + } } @Override diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/RetryServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/RetryServiceImpl.java index 5432f16..64a6251 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/RetryServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/RetryServiceImpl.java @@ -87,15 +87,15 @@ public class RetryServiceImpl implements RetryService { params.put("platformCode", order.getOrderId()); params.put("erpCode", System.currentTimeMillis()); - params.put("channelCode", "COMM1"); - params.put("channelName", "交通银行"); + params.put("channelCode", "054"); + params.put("channelName", "渠道-微信"); params.put("deptCode", ""); params.put("deptName", ""); params.put("businessMan", "16638693690"); params.put("businessManName", "王玉祺"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); params.put("orderTime", sdf.format(order.getPayTime())); - params.put("buyVip", "交通银行用户"); + params.put("buyVip", "微信用户"); params.put("payType", "FIRST_MONEY"); params.put("perPayTime", ""); params.put("proofName", "");