From c642ca1d5aad271b22155fce6bd553533343501c Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 24 七月 2025 09:10:10 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang into 2.0 --- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java | 14 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSOrderUtil.java | 7 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSVerifyUtil.java | 12 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/douyin/VerifyUtil.java | 11 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java | 69 ++-- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSWebHookController.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 724 ++++++++++++++++++++++++++++------------------- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSClientTokenUtil.java | 4 8 files changed, 498 insertions(+), 345 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java index db4e83d..06014e6 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java @@ -318,10 +318,16 @@ /** * 抖音门店id */ - @TableField("poi_id") - private String poiId; - - + @TableField("dy_poi_id") + private String dyPoiId; + + /** + * 抖音门店id + */ + @TableField("ks_poi_id") + private String ksPoiId; + + @Override protected Serializable pkVal() { return this.shopId; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java index dec5930..97b9812 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java @@ -42,28 +42,44 @@ Long userId = SecurityUtils.getUserId(); merVerifyCodeDto.setUserId(userId); String verifyCode = merVerifyCodeDto.getVerifyCode(); - String[] verifyCodeArr = verifyCode.split("-"); MerVerifyCodeVo merVerifyCodeVo = new MerVerifyCodeVo(); - Integer type = Integer.valueOf(verifyCodeArr[0]); - verifyCode = verifyCodeArr[1]; - merVerifyCodeVo.setVerifyType(type); - switch(type){ - case 1: - MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrder(verifyCode,merVerifyCodeDto.getShopId()); + if(!verifyCode.contains("https")){ + String[] verifyCodeArr = verifyCode.split("-"); + Integer type = Integer.valueOf(verifyCodeArr[0]); + verifyCode = verifyCodeArr[1]; + merVerifyCodeVo.setVerifyType(type); + switch(type){ + case 1: + MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrder(verifyCode,merVerifyCodeDto.getShopId()); + merVerifyCodeVo.setMerVerifyOrderVo(merVerifyOrderVo); + break; + case 2: + MerVerifyCouponVo merVerifyCouponVo = orderService.verifyCoupon(verifyCode,merVerifyCodeDto.getShopId()); + merVerifyCouponVo.setCouponId(merVerifyCouponVo.getMemberCouponId().toString()); + merVerifyCodeVo.setMerVerifyCouponVo(merVerifyCouponVo); + break; + case 3: + MerVerifyAwardVo merVerifyAwardVo = orderService.verifyPrize(verifyCode,merVerifyCodeDto.getShopId()); + merVerifyCodeVo.setMerVerifyAwardVo(merVerifyAwardVo); + break; + default: + throw new ServiceException(AppErrorConstant.VERIFY_TYPE_MISS); + } + }else{ + merVerifyCodeVo.setVerifyType(1); + //三方订单 + //抖音 + if (verifyCode.contains("douyin")) { + MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrderDouYin(verifyCode, merVerifyCodeDto.getShopId()); merVerifyCodeVo.setMerVerifyOrderVo(merVerifyOrderVo); - break; - case 2: - MerVerifyCouponVo merVerifyCouponVo = orderService.verifyCoupon(verifyCode,merVerifyCodeDto.getShopId()); - merVerifyCouponVo.setCouponId(merVerifyCouponVo.getMemberCouponId().toString()); - merVerifyCodeVo.setMerVerifyCouponVo(merVerifyCouponVo); - break; - case 3: - MerVerifyAwardVo merVerifyAwardVo = orderService.verifyPrize(verifyCode,merVerifyCodeDto.getShopId()); - merVerifyCodeVo.setMerVerifyAwardVo(merVerifyAwardVo); - break; - default: - throw new ServiceException(AppErrorConstant.VERIFY_TYPE_MISS); + } + //快手 + if (verifyCode.contains("ksurl")) { + MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrderKuaiShou(verifyCode, merVerifyCodeDto.getShopId()); + merVerifyCodeVo.setMerVerifyOrderVo(merVerifyOrderVo); + } } + return R.ok(merVerifyCodeVo); } @@ -73,20 +89,7 @@ Long userId = SecurityUtils.getUserId(); merVerifyCodeDto.setUserId(userId); String verifyCode = merVerifyCodeDto.getVerifyCode(); - MerVerifyOrderVo merVerifyOrderVo = null; - if (!verifyCode.contains("https")) { - merVerifyOrderVo = orderService.verifyOrder(verifyCode, merVerifyCodeDto.getShopId()); - } else { - //三方订单 - //抖音 - if (verifyCode.contains("douyin")) { - merVerifyOrderVo = orderService.verifyOrderDouYin(verifyCode, merVerifyCodeDto.getShopId()); - } - //快手 - if (verifyCode.contains("ksurl")) { - merVerifyOrderVo = orderService.verifyOrderKuaiShou(verifyCode, merVerifyCodeDto.getShopId()); - } - } + MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrder(verifyCode, merVerifyCodeDto.getShopId()); return R.ok(merVerifyOrderVo); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 7e10468..2bb8ae2 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -58,6 +58,8 @@ import com.ruoyi.order.util.HuiFuTianXiaUtil; import com.ruoyi.order.util.douyin.OrderUtil; import com.ruoyi.order.util.douyin.VerifyUtil; +import com.ruoyi.order.util.kuaishou.KSOrderUtil; +import com.ruoyi.order.util.kuaishou.KSVerifyUtil; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.constant.DelayTaskEnum; import com.ruoyi.system.api.constant.SecurityConstant; @@ -1876,13 +1878,17 @@ // 设置返回对象的属性值 merVerifyOrderVo.setOrderId(orderId); merVerifyOrderVo.setOrderFrom(6); - merVerifyOrderVo.setOrderStatus(status.intValue() == 1 ? 2 : 3); + merVerifyOrderVo.setOrderStatus((null == status || status.intValue() == 1) ? 2 : 3); List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = new ArrayList<>(); AppUserOrderGoodsPageVo orderGoodsPageVo = new AppUserOrderGoodsPageVo(); orderGoodsPageVo.setGoodsName(sku.getTitle()); appUserOrderGoodsPageVoList.add(orderGoodsPageVo); merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); - merVerifyOrderVo.setLaveTime(timeCard.getTimesCount() - timeCard.getTimesUsed()); + if(null != timeCard){ + merVerifyOrderVo.setLaveTime(timeCard.getTimesCount() - timeCard.getTimesUsed()); + }else{ + merVerifyOrderVo.setLaveTime(-1); + } // 返回结果 return merVerifyOrderVo; } @@ -1890,7 +1896,7 @@ @Override public MerVerifyOrderVo verifyOrderKuaiShou(String orderId, Long shopId) { - VerifyPrepareDataNew data = com.ruoyi.order.util.kuaishou.VerifyUtil.certificatePrepare(redisService, orderId); + VerifyPrepareDataNew data = KSVerifyUtil.certificatePrepare(redisService, orderId); if (null == data) { throw new ServiceException("查询券信息失败"); } @@ -1916,7 +1922,11 @@ orderGoodsPageVo.setGoodsName(sku.getTitle()); appUserOrderGoodsPageVoList.add(orderGoodsPageVo); merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); - merVerifyOrderVo.setLaveTime(sku.getTimes_count()); + if(null != sku.getTimes_count()){ + merVerifyOrderVo.setLaveTime(sku.getTimes_count()); + }else{ + merVerifyOrderVo.setLaveTime(-1); + } // 返回结果 return merVerifyOrderVo; } @@ -2183,27 +2193,43 @@ throw new ServiceException("查询券信息失败"); } List<CertificatePrepareResponseDataCertificatesItem> itemList = data.getCertificates(); - if (null == itemList || itemList.isEmpty()) { + if (null == itemList && itemList.isEmpty()) { throw new ServiceException("查询券信息失败"); } CertificatePrepareResponseDataCertificatesItem certificatesItem = itemList.get(0); + //商品信息 + CertificatePrepareResponseDataCertificatesItemSku sku = certificatesItem.getSku(); + //次卡信息 + CertificatePrepareResponseDataCertificatesItemTimeCard timeCard = certificatesItem.getTimeCard(); Number status = certificatesItem.getStatus(); - if (status.intValue() == 2) { + if (null != status && status.intValue() == 2) { throw new ServiceException("该抖音券不能重复核销"); } - if (status.intValue() != 1) { + if (null != status && status.intValue() != 1) { throw new ServiceException("抖音券核销失败"); } + Member member = remoteMemberService.getMemberByMobile(phone).getData();//绑定用户判断核销商户 + if(null == member){ + throw new ServiceException("手机号还未注册账户,请先进行注册"); + } + if (member.getBindingFlag() == 1) { + if (!member.getRelationShopId().equals(shopId)) { + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + } + //不是次卡才校验是否重复核销 + if(null == timeCard){ + Order one = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getTripartiteOrderId, data.getOrderId())); + if (null != one) { + throw new ServiceException("该抖音券不能重复核销"); + } + } String encryptedCode = certificatesItem.getEncryptedCode(); - List<CertificateVerifyResponseDataVerifyResultsItem> items = VerifyUtil.certificateVerify(data.getVerifyToken(), shop.getPoiId(), new ArrayList<String>() {{ + List<CertificateVerifyResponseDataVerifyResultsItem> items = VerifyUtil.certificateVerify(data.getVerifyToken(), shop.getDyPoiId(), new ArrayList<String>() {{ add(encryptedCode); }}); if (null == items || items.isEmpty()) { throw new ServiceException("抖音券核销失败"); - } - Order one = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getTripartiteOrderId, data.getOrderId())); - if (null != one) { - throw new ServiceException("该抖音券不能重复核销"); } TradeOrderQueryResponseData tradeOrderQueryResponseData = OrderUtil.queryOrderList(1, 10, data.getOrderId()); @@ -2215,156 +2241,204 @@ BigDecimal payDiscountAmount = BigDecimal.ZERO; if (null != tradeOrderQueryResponseData) { TradeOrderQueryResponseDataOrdersItem ordersItem = tradeOrderQueryResponseData.getOrders().get(0); - TradeOrderQueryResponseDataOrdersItemAmountInfo amountInfo = ordersItem.getAmountInfo(); - originAmount = BigDecimal.valueOf(amountInfo.getOriginAmount()).divide(new BigDecimal(100)); - payAmount = BigDecimal.valueOf(amountInfo.getPayAmount()).divide(new BigDecimal(100)); - payDiscountAmount = BigDecimal.valueOf(amountInfo.getPayDiscountAmount()).divide(new BigDecimal(100)); + originAmount = BigDecimal.valueOf(ordersItem.getOriginalAmount()).divide(new BigDecimal(100)); + payAmount = BigDecimal.valueOf(ordersItem.getPayAmount()).divide(new BigDecimal(100)); + payDiscountAmount = BigDecimal.valueOf(ordersItem.getDiscountAmount()).divide(new BigDecimal(100)); } Date nowTime = new Date(); - Member member = remoteMemberService.getMemberByMobile(phone).getData(); //开始添加订单数据 - Order order = new Order(); - order.setOrderId(IdUtils.fastSimpleUUID()); - order.setDelFlag(0); - order.setOrderStatus(3); - order.setOrderNo(CodeFactoryUtil.getShopOrderNo()); - order.setOrderFrom(6); - order.setShopId(shopId); - order.setUserId(member.getUserId()); - order.setOrderMoney(originAmount); - order.setDiscountMoney(payDiscountAmount); - order.setReceivableMoney(payAmount); - order.setPayType(1); - order.setPayMoney(payAmount); - order.setOnlinePayMoney(payAmount); - order.setOrderRemark("抖音订单"); - order.setCreateTime(nowTime); - order.setPayTime(nowTime); - order.setTripartiteOrderId(data.getOrderId()); - - //绑定用户判断核销商户 - if (member.getBindingFlag() == 1) { - if (!member.getRelationShopId().equals(shopId)) { - throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getTripartiteOrderId, data.getOrderId())); + if(null == order){ + order = new Order(); + order.setOrderId(IdUtils.fastSimpleUUID()); + order.setDelFlag(0); + order.setOrderStatus(3); + order.setOrderNo(CodeFactoryUtil.getShopOrderNo()); + order.setOrderFrom(6); + order.setShopId(shopId); + order.setUserId(member.getUserId()); + order.setOrderMoney(originAmount); + order.setDiscountMoney(payDiscountAmount); + order.setReceivableMoney(payAmount); + order.setPayType(1); + order.setPayMoney(payAmount); + order.setOnlinePayMoney(payAmount); + order.setOrderRemark("抖音订单"); + order.setCreateTime(nowTime); + order.setPayTime(nowTime); + order.setTripartiteOrderId(data.getOrderId()); + order.setUseTime(nowTime); + order.setUseUserId(merVerifyOrderDto.getUserId()); + order.setCloseFlag(1); + this.save(order); + //创建服务商品 + //获取商品信息(商品简介,调理问题) + + OrderGoods orderGoods = new OrderGoods(); + orderGoods.setOrderGoodsId(IdUtils.simpleUUID()); + orderGoods.setDelFlag(0); + orderGoods.setOrderId(order.getOrderId()); + + ConsumerGoods consumerGoods = new ConsumerGoods(); + if(null != timeCard){ + orderGoods.setBuyNum(timeCard.getTimesCount()); + orderGoods.setServiceNum(timeCard.getTimesCount()); + consumerGoods.setServiceNum(timeCard.getTimesCount()); + consumerGoods.setUsedNum(1); + consumerGoods.setUseTime(new Date()); } - } - order.setUseTime(nowTime); - order.setUseUserId(merVerifyOrderDto.getUserId()); - order.setCloseFlag(1); - this.save(order); - //创建服务商品 - //获取商品信息(商品简介,调理问题) - //商品信息 - CertificatePrepareResponseDataCertificatesItemSku sku = certificatesItem.getSku(); - //次卡信息 - CertificatePrepareResponseDataCertificatesItemTimeCard timeCard = certificatesItem.getTimeCard(); - - OrderGoods orderGoods = new OrderGoods(); - orderGoods.setOrderGoodsId(IdUtils.simpleUUID()); - orderGoods.setDelFlag(0); - orderGoods.setOrderId(order.getOrderId()); - orderGoods.setBuyNum(timeCard.getTimesCount()); - orderGoods.setCycleNumFlag(1); - orderGoods.setServiceNum(timeCard.getTimesCount()); - orderGoods.setGoodsType(2); - orderGoods.setGoodsName(sku.getTitle()); - orderGoodsService.save(orderGoods); - - ConsumerGoods consumerGoods = new ConsumerGoods(); - consumerGoods.setConsumerGoodsId(IdUtils.simpleUUID()); - consumerGoods.setDelFlag(0); - consumerGoods.setServiceStatus(1); - consumerGoods.setShopId(order.getShopId()); - consumerGoods.setUserId(order.getUserId()); - consumerGoods.setOrderId(orderId); - consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId()); - consumerGoods.setGoodsName(sku.getTitle()); - consumerGoods.setCycleNumFlag(1); - consumerGoods.setServiceNum(timeCard.getTimesCount()); - consumerGoods.setCreateTime(nowTime); - consumerGoods.setGoodsType(2); - consumerGoods.setSourceFrom(1); - consumerGoodsService.save(consumerGoods); - //生成返回 - MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); - merVerifyOrderVo.setOrderId(orderId); - merVerifyOrderVo.setOrderNo(order.getOrderNo()); - merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); - merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); - merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); - merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); - merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); - merVerifyOrderVo.setPayMoney(order.getPayMoney()); - merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); - merVerifyOrderVo.setAppUserOrderGoodsPageVoList(new ArrayList<AppUserOrderGoodsPageVo>() {{ - add(new AppUserOrderGoodsPageVo() {{ - setOrderGoodsId(orderGoods.getOrderGoodsId()); - setGoodsName(orderGoods.getGoodsName()); - setGoodsType(orderGoods.getGoodsType()); - setBuyNum(orderGoods.getBuyNum()); + orderGoods.setCycleNumFlag(1); + orderGoods.setGoodsType(2); + orderGoods.setGoodsName(sku.getTitle()); + orderGoodsService.save(orderGoods); + + consumerGoods.setConsumerGoodsId(IdUtils.simpleUUID()); + consumerGoods.setDelFlag(0); + consumerGoods.setServiceStatus(1); + consumerGoods.setShopId(order.getShopId()); + consumerGoods.setUserId(order.getUserId()); + consumerGoods.setOrderId(orderId); + consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId()); + consumerGoods.setGoodsName(sku.getTitle()); + consumerGoods.setCycleNumFlag(1); + consumerGoods.setCreateTime(nowTime); + consumerGoods.setGoodsType(2); + consumerGoods.setSourceFrom(1); + consumerGoodsService.save(consumerGoods); + + //生成返回 + MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + merVerifyOrderVo.setOrderId(orderId); + merVerifyOrderVo.setOrderNo(order.getOrderNo()); + merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); + merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); + merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); + merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); + merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); + merVerifyOrderVo.setPayMoney(order.getPayMoney()); + merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); + merVerifyOrderVo.setAppUserOrderGoodsPageVoList(new ArrayList<AppUserOrderGoodsPageVo>() {{ + add(new AppUserOrderGoodsPageVo() {{ + setOrderGoodsId(orderGoods.getOrderGoodsId()); + setGoodsName(orderGoods.getGoodsName()); + setGoodsType(orderGoods.getGoodsType()); + setBuyNum(orderGoods.getBuyNum()); + }}); }}); - }}); - merVerifyOrderVo.setCreateTime(order.getCreateTime()); - merVerifyOrderVo.setPayTime(order.getPayTime()); - merVerifyOrderVo.setUseTime(order.getUseTime()); - merVerifyOrderVo.setPayType(order.getPayType()); - merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); - //根据支付方式返回应收金额和已收金额 - if (order.getPayType() == 1) { - merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney())); - merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); - } else { - merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit())); - if (order.getOfflinePayMoney() != null) { - merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); + merVerifyOrderVo.setPayType(order.getPayType()); + merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); + //根据支付方式返回应收金额和已收金额 + if (order.getPayType() == 1) { + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney())); + merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); } else { - merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit())); + if (order.getOfflinePayMoney() != null) { + merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + } else { + merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + } } - } - merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(merVerifyOrderVo.getReceiveMoney())); - merVerifyOrderVo.setUserId(order.getUserId()); - merVerifyOrderVo.setUserName(member.getRealName()); - merVerifyOrderVo.setUserMobile(member.getMobile()); - merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); - //判断用户是否绑定 2023-09-05需求改变核销时绑定用户 - if (member.getBindingFlag() != 1) { - //绑定商户 - AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); - appMemberBindingDto.setShopId(order.getShopId()); - appMemberBindingDto.setUserId(order.getUserId()); - appMemberBindingDto.setBindingFlag(1); - if (order.getOrderFrom() == 1) { - appMemberBindingDto.setBindingType(1); - } else if (order.getOrderFrom() == 2) { - appMemberBindingDto.setBindingType(2); + merVerifyOrderVo.setUnReceiveMoney(BigDecimal.ZERO); + merVerifyOrderVo.setUserId(order.getUserId()); + merVerifyOrderVo.setUserName(member.getRealName()); + merVerifyOrderVo.setUserMobile(member.getMobile()); + merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); + //判断用户是否绑定 2023-09-05需求改变核销时绑定用户 + if (member.getBindingFlag() != 1) { + //绑定商户 + AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); + appMemberBindingDto.setShopId(order.getShopId()); + appMemberBindingDto.setUserId(order.getUserId()); + appMemberBindingDto.setBindingFlag(1); + if (order.getOrderFrom() == 1) { + appMemberBindingDto.setBindingType(1); + } else if (order.getOrderFrom() == 2) { + appMemberBindingDto.setBindingType(2); + } + remoteMemberService.updateMemberBinding(appMemberBindingDto); + order.setNewMemberFlag(1); + } else { + order.setNewMemberFlag(0); } - remoteMemberService.updateMemberBinding(appMemberBindingDto); - order.setNewMemberFlag(1); - } else { - order.setNewMemberFlag(0); - } - this.saveOrUpdate(order); - //更新用户积分和消费统计 - MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); - memberTotalChangeDto.setUserId(order.getUserId()); - // 如果存在积分兑换比例,则计算积分 - if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { - Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL); - BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue); - BigDecimal integralBig = moneyValueBig.multiply(order.getOnlinePayMoney()).setScale(0, BigDecimal.ROUND_HALF_UP); - Integer integral = Integer.valueOf(integralBig.toString()); - if (integral > 0) { - memberTotalChangeDto.setChangeIntegral(integral); - memberTotalChangeDto.setTypeIntegral(1); - memberTotalChangeDto.setOrderId(orderId); - memberTotalChangeDto.setOrderNo(order.getOrderNo()); + this.saveOrUpdate(order); + //更新用户积分和消费统计 + MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); + memberTotalChangeDto.setUserId(order.getUserId()); + // 如果存在积分兑换比例,则计算积分 + if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { + Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL); + BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue); + BigDecimal integralBig = moneyValueBig.multiply(order.getOnlinePayMoney()).setScale(0, BigDecimal.ROUND_HALF_UP); + Integer integral = Integer.valueOf(integralBig.toString()); + if (integral > 0) { + memberTotalChangeDto.setChangeIntegral(integral); + memberTotalChangeDto.setTypeIntegral(1); + memberTotalChangeDto.setOrderId(orderId); + memberTotalChangeDto.setOrderNo(order.getOrderNo()); + } } + //更新消费时间 + memberTotalChangeDto.setConsumeTime(nowTime); + remoteMemberService.changeMemberTotal(memberTotalChangeDto); + return merVerifyOrderVo; + }else{ + //扣减剩余次数 + OrderGoods orderGoods = orderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, order.getOrderId())); + ConsumerGoods consumerGoods = consumerGoodsService.getOne(new LambdaQueryWrapper<ConsumerGoods>().eq(ConsumerGoods::getOrderId, order.getOrderId()).eq(ConsumerGoods::getOrderGoodsId, orderGoods.getOrderGoodsId())); + consumerGoods.setUsedNum(consumerGoods.getUsedNum() + 1); + consumerGoods.setUseTime(new Date()); + if(consumerGoods.getUsedNum() == consumerGoods.getServiceNum()){ + consumerGoods.setCompleteTime(new Date()); + } + consumerGoodsService.updateById(consumerGoods); + //生成返回 + MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + merVerifyOrderVo.setOrderId(orderId); + merVerifyOrderVo.setOrderNo(order.getOrderNo()); + merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); + merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); + merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); + merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); + merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); + merVerifyOrderVo.setPayMoney(order.getPayMoney()); + merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); + merVerifyOrderVo.setAppUserOrderGoodsPageVoList(new ArrayList<AppUserOrderGoodsPageVo>() {{ + add(new AppUserOrderGoodsPageVo() {{ + setOrderGoodsId(orderGoods.getOrderGoodsId()); + setGoodsName(orderGoods.getGoodsName()); + setGoodsType(orderGoods.getGoodsType()); + setBuyNum(orderGoods.getBuyNum()); + }}); + }}); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); + merVerifyOrderVo.setPayType(order.getPayType()); + merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); + //根据支付方式返回应收金额和已收金额 + if (order.getPayType() == 1) { + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney())); + merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); + } else { + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit())); + if (order.getOfflinePayMoney() != null) { + merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + } else { + merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + } + } + merVerifyOrderVo.setUnReceiveMoney(BigDecimal.ZERO); + merVerifyOrderVo.setUserId(order.getUserId()); + merVerifyOrderVo.setUserName(member.getRealName()); + merVerifyOrderVo.setUserMobile(member.getMobile()); + merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); + return merVerifyOrderVo; } - //更新消费时间 - memberTotalChangeDto.setConsumeTime(nowTime); - remoteMemberService.changeMemberTotal(memberTotalChangeDto); - return merVerifyOrderVo; } @@ -2382,7 +2456,7 @@ Long shopId = merVerifyOrderDto.getShopId(); //获取核销商户 Shop shop = remoteShopService.getShop(shopId).getData(); - VerifyPrepareDataNew data = com.ruoyi.order.util.kuaishou.VerifyUtil.certificatePrepare(redisService, orderId); + VerifyPrepareDataNew data = KSVerifyUtil.certificatePrepare(redisService, orderId); if (null == data) { throw new ServiceException("查询券信息失败"); } @@ -2395,20 +2469,32 @@ if(LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) > expire_time){ throw new ServiceException("优惠券已过期"); } + //商品信息 + SkuTImesCard sku = certificatesItem.getSku(); + if(null == sku.getTimes_count()){ + Order one = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getTripartiteOrderId, data.getOrder_id())); + if (null != one) { + throw new ServiceException("该快手券不能重复核销"); + } + } + + Member member = remoteMemberService.getMemberByMobile(phone).getData(); + //绑定用户判断核销商户 + if (member.getBindingFlag() == 1) { + if (!member.getRelationShopId().equals(shopId)) { + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + } String encryptedCode = certificatesItem.getEncrypted_code(); - List<VerifyResult> items = com.ruoyi.order.util.kuaishou.VerifyUtil.certificateVerify(redisService, data.getVerify_token(), shop.getPoiId(), new ArrayList<String>() {{ + List<VerifyResult> items = KSVerifyUtil.certificateVerify(redisService, data.getVerify_token(), shop.getKsPoiId(), new ArrayList<String>() {{ add(encryptedCode); }}, data.getOrder_id()); if (null == items || items.isEmpty()) { throw new ServiceException("快手券核销失败"); } - Order one = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getTripartiteOrderId, data.getOrder_id())); - if (null != one) { - throw new ServiceException("该快手券不能重复核销"); - } - OpenApiQueryOrderDetailInfoV1 orderDetailInfoV1 = com.ruoyi.order.util.kuaishou.OrderUtil.queryOrderInfo(redisService, data.getOrder_id()); + OpenApiQueryOrderDetailInfoV1 orderDetailInfoV1 = KSOrderUtil.queryOrderInfo(redisService, data.getOrder_id()); //原始金额 BigDecimal originAmount = BigDecimal.ZERO; //支付金额 @@ -2423,149 +2509,197 @@ } Date nowTime = new Date(); - Member member = remoteMemberService.getMemberByMobile(phone).getData(); - //开始添加订单数据 - Order order = new Order(); - order.setOrderId(IdUtils.fastSimpleUUID()); - order.setDelFlag(0); - order.setOrderStatus(3); - order.setOrderNo(CodeFactoryUtil.getShopOrderNo()); - order.setOrderFrom(7); - order.setShopId(shopId); - order.setUserId(member.getUserId()); - order.setOrderMoney(originAmount); - order.setDiscountMoney(payDiscountAmount); - order.setReceivableMoney(payAmount); - order.setPayType(1); - order.setPayMoney(payAmount); - order.setOnlinePayMoney(payAmount); - order.setOrderRemark("快手订单"); - order.setCreateTime(nowTime); - order.setPayTime(nowTime); - order.setTripartiteOrderId(data.getOrder_id()); - - //绑定用户判断核销商户 - if (member.getBindingFlag() == 1) { - if (!member.getRelationShopId().equals(shopId)) { - throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); - } - } - order.setUseTime(nowTime); - order.setUseUserId(merVerifyOrderDto.getUserId()); - order.setCloseFlag(1); - this.save(order); - //创建服务商品 - //获取商品信息(商品简介,调理问题) - //商品信息 - SkuTImesCard sku = certificatesItem.getSku(); - - OrderGoods orderGoods = new OrderGoods(); - orderGoods.setOrderGoodsId(IdUtils.simpleUUID()); - orderGoods.setDelFlag(0); - orderGoods.setOrderId(order.getOrderId()); - orderGoods.setGoodsId(sku.getSku_id()); - orderGoods.setBuyNum(sku.getTimes_count()); - orderGoods.setCycleNumFlag(1); - orderGoods.setServiceNum(sku.getTimes_count()); - orderGoods.setGoodsType(2); - orderGoods.setGoodsName(sku.getTitle()); - orderGoodsService.save(orderGoods); - - ConsumerGoods consumerGoods = new ConsumerGoods(); - consumerGoods.setConsumerGoodsId(IdUtils.simpleUUID()); - consumerGoods.setDelFlag(0); - consumerGoods.setServiceStatus(1); - consumerGoods.setShopId(order.getShopId()); - consumerGoods.setUserId(order.getUserId()); - consumerGoods.setOrderId(orderId); - consumerGoods.setGoodsId(sku.getSku_id()); - consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId()); - consumerGoods.setGoodsName(sku.getTitle()); - consumerGoods.setCycleNumFlag(1); - consumerGoods.setServiceNum(sku.getTimes_count()); - consumerGoods.setCreateTime(nowTime); - consumerGoods.setGoodsType(2); - consumerGoods.setSourceFrom(1); - consumerGoodsService.save(consumerGoods); - //生成返回 - MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); - merVerifyOrderVo.setOrderId(orderId); - merVerifyOrderVo.setOrderNo(order.getOrderNo()); - merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); - merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); - merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); - merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); - merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); - merVerifyOrderVo.setPayMoney(order.getPayMoney()); - merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); - merVerifyOrderVo.setAppUserOrderGoodsPageVoList(new ArrayList<AppUserOrderGoodsPageVo>() {{ - add(new AppUserOrderGoodsPageVo() {{ - setOrderGoodsId(orderGoods.getOrderGoodsId()); - setGoodsName(orderGoods.getGoodsName()); - setGoodsType(orderGoods.getGoodsType()); - setBuyNum(orderGoods.getBuyNum()); + Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getTripartiteOrderId, data.getOrder_id())); + if(null == order){ + //开始添加订单数据 + order = new Order(); + order.setOrderId(IdUtils.fastSimpleUUID()); + order.setDelFlag(0); + order.setOrderStatus(3); + order.setOrderNo(CodeFactoryUtil.getShopOrderNo()); + order.setOrderFrom(7); + order.setShopId(shopId); + order.setUserId(member.getUserId()); + order.setOrderMoney(originAmount); + order.setDiscountMoney(payDiscountAmount); + order.setReceivableMoney(payAmount); + order.setPayType(1); + order.setPayMoney(payAmount); + order.setOnlinePayMoney(payAmount); + order.setOrderRemark("快手订单"); + order.setCreateTime(nowTime); + order.setPayTime(nowTime); + order.setTripartiteOrderId(data.getOrder_id()); + order.setUseTime(nowTime); + order.setUseUserId(merVerifyOrderDto.getUserId()); + order.setCloseFlag(1); + this.save(order); + //创建服务商品 + //获取商品信息(商品简介,调理问题) + + OrderGoods orderGoods = new OrderGoods(); + orderGoods.setOrderGoodsId(IdUtils.simpleUUID()); + orderGoods.setDelFlag(0); + orderGoods.setOrderId(order.getOrderId()); + orderGoods.setGoodsId(sku.getSku_id()); + orderGoods.setBuyNum(sku.getTimes_count()); + orderGoods.setCycleNumFlag(1); + orderGoods.setServiceNum(sku.getTimes_count()); + orderGoods.setGoodsType(2); + orderGoods.setGoodsName(sku.getTitle()); + orderGoodsService.save(orderGoods); + + ConsumerGoods consumerGoods = new ConsumerGoods(); + consumerGoods.setConsumerGoodsId(IdUtils.simpleUUID()); + consumerGoods.setDelFlag(0); + consumerGoods.setServiceStatus(1); + consumerGoods.setShopId(order.getShopId()); + consumerGoods.setUserId(order.getUserId()); + consumerGoods.setOrderId(orderId); + consumerGoods.setGoodsId(sku.getSku_id()); + consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId()); + consumerGoods.setGoodsName(sku.getTitle()); + consumerGoods.setCycleNumFlag(1); + consumerGoods.setServiceNum(sku.getTimes_count()); + consumerGoods.setUsedNum(1); + consumerGoods.setUseTime(new Date()); + consumerGoods.setCreateTime(nowTime); + consumerGoods.setGoodsType(2); + consumerGoods.setSourceFrom(1); + consumerGoodsService.save(consumerGoods); + //生成返回 + MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + merVerifyOrderVo.setOrderId(orderId); + merVerifyOrderVo.setOrderNo(order.getOrderNo()); + merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); + merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); + merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); + merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); + merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); + merVerifyOrderVo.setPayMoney(order.getPayMoney()); + merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); + merVerifyOrderVo.setAppUserOrderGoodsPageVoList(new ArrayList<AppUserOrderGoodsPageVo>() {{ + add(new AppUserOrderGoodsPageVo() {{ + setOrderGoodsId(orderGoods.getOrderGoodsId()); + setGoodsName(orderGoods.getGoodsName()); + setGoodsType(orderGoods.getGoodsType()); + setBuyNum(orderGoods.getBuyNum()); + }}); }}); - }}); - merVerifyOrderVo.setCreateTime(order.getCreateTime()); - merVerifyOrderVo.setPayTime(order.getPayTime()); - merVerifyOrderVo.setUseTime(order.getUseTime()); - merVerifyOrderVo.setPayType(order.getPayType()); - merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); - //根据支付方式返回应收金额和已收金额 - if (order.getPayType() == 1) { - merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney())); - merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); - } else { - merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit())); - if (order.getOfflinePayMoney() != null) { - merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); + merVerifyOrderVo.setPayType(order.getPayType()); + merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); + //根据支付方式返回应收金额和已收金额 + if (order.getPayType() == 1) { + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney())); + merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); } else { - merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit())); + if (order.getOfflinePayMoney() != null) { + merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + } else { + merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + } } - } - merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(merVerifyOrderVo.getReceiveMoney())); - merVerifyOrderVo.setUserId(order.getUserId()); - merVerifyOrderVo.setUserName(member.getRealName()); - merVerifyOrderVo.setUserMobile(member.getMobile()); - merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); - //判断用户是否绑定 2023-09-05需求改变核销时绑定用户 - if (member.getBindingFlag() != 1) { - //绑定商户 - AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); - appMemberBindingDto.setShopId(order.getShopId()); - appMemberBindingDto.setUserId(order.getUserId()); - appMemberBindingDto.setBindingFlag(1); - if (order.getOrderFrom() == 1) { - appMemberBindingDto.setBindingType(1); - } else if (order.getOrderFrom() == 2) { - appMemberBindingDto.setBindingType(2); + merVerifyOrderVo.setUnReceiveMoney(BigDecimal.ZERO); + merVerifyOrderVo.setUserId(order.getUserId()); + merVerifyOrderVo.setUserName(member.getRealName()); + merVerifyOrderVo.setUserMobile(member.getMobile()); + merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); + //判断用户是否绑定 2023-09-05需求改变核销时绑定用户 + if (member.getBindingFlag() != 1) { + //绑定商户 + AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); + appMemberBindingDto.setShopId(order.getShopId()); + appMemberBindingDto.setUserId(order.getUserId()); + appMemberBindingDto.setBindingFlag(1); + if (order.getOrderFrom() == 1) { + appMemberBindingDto.setBindingType(1); + } else if (order.getOrderFrom() == 2) { + appMemberBindingDto.setBindingType(2); + } + remoteMemberService.updateMemberBinding(appMemberBindingDto); + order.setNewMemberFlag(1); + } else { + order.setNewMemberFlag(0); } - remoteMemberService.updateMemberBinding(appMemberBindingDto); - order.setNewMemberFlag(1); - } else { - order.setNewMemberFlag(0); - } - this.saveOrUpdate(order); - //更新用户积分和消费统计 - MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); - memberTotalChangeDto.setUserId(order.getUserId()); - // 如果存在积分兑换比例,则计算积分 - if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { - Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL); - BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue); - BigDecimal integralBig = moneyValueBig.multiply(order.getOnlinePayMoney()).setScale(0, BigDecimal.ROUND_HALF_UP); - Integer integral = Integer.valueOf(integralBig.toString()); - if (integral > 0) { - memberTotalChangeDto.setChangeIntegral(integral); - memberTotalChangeDto.setTypeIntegral(1); - memberTotalChangeDto.setOrderId(orderId); - memberTotalChangeDto.setOrderNo(order.getOrderNo()); + this.saveOrUpdate(order); + //更新用户积分和消费统计 + MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); + memberTotalChangeDto.setUserId(order.getUserId()); + // 如果存在积分兑换比例,则计算积分 + if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { + Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL); + BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue); + BigDecimal integralBig = moneyValueBig.multiply(order.getOnlinePayMoney()).setScale(0, BigDecimal.ROUND_HALF_UP); + Integer integral = Integer.valueOf(integralBig.toString()); + if (integral > 0) { + memberTotalChangeDto.setChangeIntegral(integral); + memberTotalChangeDto.setTypeIntegral(1); + memberTotalChangeDto.setOrderId(orderId); + memberTotalChangeDto.setOrderNo(order.getOrderNo()); + } } + //更新消费时间 + memberTotalChangeDto.setConsumeTime(nowTime); + remoteMemberService.changeMemberTotal(memberTotalChangeDto); + return merVerifyOrderVo; + }else{ + //扣减剩余次数 + OrderGoods orderGoods = orderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, order.getOrderId())); + ConsumerGoods consumerGoods = consumerGoodsService.getOne(new LambdaQueryWrapper<ConsumerGoods>().eq(ConsumerGoods::getOrderId, order.getOrderId()).eq(ConsumerGoods::getOrderGoodsId, orderGoods.getOrderGoodsId())); + consumerGoods.setUsedNum(consumerGoods.getUsedNum() + 1); + consumerGoods.setUseTime(new Date()); + if(consumerGoods.getUsedNum() == consumerGoods.getServiceNum()){ + consumerGoods.setCompleteTime(new Date()); + } + consumerGoodsService.updateById(consumerGoods); + //生成返回 + MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + merVerifyOrderVo.setOrderId(orderId); + merVerifyOrderVo.setOrderNo(order.getOrderNo()); + merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); + merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); + merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); + merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); + merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); + merVerifyOrderVo.setPayMoney(order.getPayMoney()); + merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); + merVerifyOrderVo.setAppUserOrderGoodsPageVoList(new ArrayList<AppUserOrderGoodsPageVo>() {{ + add(new AppUserOrderGoodsPageVo() {{ + setOrderGoodsId(orderGoods.getOrderGoodsId()); + setGoodsName(orderGoods.getGoodsName()); + setGoodsType(orderGoods.getGoodsType()); + setBuyNum(orderGoods.getBuyNum()); + }}); + }}); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); + merVerifyOrderVo.setPayType(order.getPayType()); + merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); + //根据支付方式返回应收金额和已收金额 + if (order.getPayType() == 1) { + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney())); + merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); + } else { + merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit())); + if (order.getOfflinePayMoney() != null) { + merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + } else { + merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + } + } + merVerifyOrderVo.setUnReceiveMoney(BigDecimal.ZERO); + merVerifyOrderVo.setUserId(order.getUserId()); + merVerifyOrderVo.setUserName(member.getRealName()); + merVerifyOrderVo.setUserMobile(member.getMobile()); + merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); + return merVerifyOrderVo; } - //更新消费时间 - memberTotalChangeDto.setConsumeTime(nowTime); - remoteMemberService.changeMemberTotal(memberTotalChangeDto); - return merVerifyOrderVo; + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/douyin/VerifyUtil.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/douyin/VerifyUtil.java index d051b03..9ae2dff 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/douyin/VerifyUtil.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/douyin/VerifyUtil.java @@ -37,9 +37,14 @@ String encryptedData = ""; if(302 == status){ String location = execute.header("Location"); - location = location.substring(location.indexOf("object_id=") + 1); - location = location.substring(0, location.indexOf("&")); - encryptedData = location; + location = location.substring(location.indexOf("?") + 1); + String[] split = location.split("&"); + for (String s : split) { + if(s.contains("object_id")){ + encryptedData = s.split("=")[1]; + break; + } + } } Config config = new Config().setClientKey(DouyinConfig.CLIENT_KEY).setClientSecret(DouyinConfig.CLIENT_SECRET); // 改成自己的app_id跟secret diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/ClientTokenUtil.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSClientTokenUtil.java similarity index 96% rename from ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/ClientTokenUtil.java rename to ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSClientTokenUtil.java index aaf9801..cd2bfda 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/ClientTokenUtil.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSClientTokenUtil.java @@ -17,7 +17,7 @@ */ @Slf4j @Component -public class ClientTokenUtil { +public class KSClientTokenUtil { /** @@ -38,8 +38,10 @@ throw new RuntimeException(e); } } catch (TeaException e) { + e.printStackTrace(); System.out.println(e.getMessage()); } catch (Exception e) { + e.printStackTrace(); System.out.println(e.getMessage()); } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/OrderUtil.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSOrderUtil.java similarity index 82% rename from ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/OrderUtil.java rename to ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSOrderUtil.java index 50d4a7a..e864494 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/OrderUtil.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSOrderUtil.java @@ -15,7 +15,7 @@ * @Date 2025/6/11 18:58 */ @Slf4j -public class OrderUtil { +public class KSOrderUtil { /** @@ -25,10 +25,11 @@ */ public static OpenApiQueryOrderDetailInfoV1 queryOrderInfo(RedisService redisService, String order_id) { //判断token是否过期 - Object ks_access_token = redisService.getCacheObject("ks_access_token"); +// Object ks_access_token = redisService.getCacheObject("ks_access_token"); + Object ks_access_token = "ChFvYXV0aC5hY2Nlc3NUb2tlbhIw2wStpH_xKVvdiMW3FC-K5jaDZuWrAE-s_Snu40VKs7D-Syd_cVWqZO_y9APvkvVUGhLOP4f6O_NIH5dNtHtm_4-XE8QiIFE-h8UpEf22Wbcrj4qUb_zFeGnZHgwa6rj1h6QVbrQFKAUwAQ"; if(null == ks_access_token){ //刷新token - com.ruoyi.order.util.kuaishou.ClientTokenUtil.refreshToken(redisService); + com.ruoyi.order.util.kuaishou.KSClientTokenUtil.refreshToken(redisService); ks_access_token = redisService.getCacheObject("ks_access_token"); } String access_token = ks_access_token.toString(); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/VerifyUtil.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSVerifyUtil.java similarity index 86% rename from ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/VerifyUtil.java rename to ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSVerifyUtil.java index f353c07..653ea9c 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/VerifyUtil.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSVerifyUtil.java @@ -19,7 +19,7 @@ * @Date 2025/6/16 10:28 */ @Slf4j -public class VerifyUtil { +public class KSVerifyUtil { /** @@ -29,10 +29,11 @@ */ public static VerifyPrepareDataNew certificatePrepare(RedisService redisService, String code){ //判断token是否过期 - Object ks_access_token = redisService.getCacheObject("ks_access_token"); +// Object ks_access_token = redisService.getCacheObject("ks_access_token"); + Object ks_access_token = "ChFvYXV0aC5hY2Nlc3NUb2tlbhIw2wStpH_xKVvdiMW3FC-K5jaDZuWrAE-s_Snu40VKs7D-Syd_cVWqZO_y9APvkvVUGhLOP4f6O_NIH5dNtHtm_4-XE8QiIFE-h8UpEf22Wbcrj4qUb_zFeGnZHgwa6rj1h6QVbrQFKAUwAQ"; if(null == ks_access_token){ //刷新token - ClientTokenUtil.refreshToken(redisService); + KSClientTokenUtil.refreshToken(redisService); ks_access_token = redisService.getCacheObject("ks_access_token"); } String access_token = ks_access_token.toString(); @@ -71,10 +72,11 @@ */ public static List<VerifyResult> certificateVerify(RedisService redisService, String verify_token, String poiId, List<String> encryptedCodes, String order_id){ //判断token是否过期 - Object ks_access_token = redisService.getCacheObject("ks_access_token"); +// Object ks_access_token = redisService.getCacheObject("ks_access_token"); + Object ks_access_token = "ChFvYXV0aC5hY2Nlc3NUb2tlbhIw2wStpH_xKVvdiMW3FC-K5jaDZuWrAE-s_Snu40VKs7D-Syd_cVWqZO_y9APvkvVUGhLOP4f6O_NIH5dNtHtm_4-XE8QiIFE-h8UpEf22Wbcrj4qUb_zFeGnZHgwa6rj1h6QVbrQFKAUwAQ"; if(null == ks_access_token){ //刷新token - ClientTokenUtil.refreshToken(redisService); + KSClientTokenUtil.refreshToken(redisService); ks_access_token = redisService.getCacheObject("ks_access_token"); } String access_token = ks_access_token.toString(); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSWebHookController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSWebHookController.java index 592cdf2..9dbe599 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSWebHookController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/kuaishou/KSWebHookController.java @@ -30,7 +30,7 @@ @GetMapping("/webhook") public void orderWebHook(String code, String state) { log.info("快手webhook回调,code:{},state:{}", code, state); - ClientTokenUtil.getClientToken(redisService, code); + KSClientTokenUtil.getClientToken(redisService, code); } -- Gitblit v1.7.1