diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index 58664dfa..8bd7ccd0 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -257,6 +257,7 @@ public class BuyOrderController { return R.error(500, "信息中不能含有“+”、“&”符号!"); } } + buyOrder.setOrderStatus("0"); buyOrderService.save(buyOrder); //解决购物车相关问题 @@ -904,9 +905,9 @@ public class BuyOrderController { LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); wrapper2.eq(UserCourseBuyEntity::getUserId,orderEntity.getUserId()); wrapper2.eq(UserCourseBuyEntity::getCatalogueId,s.getCatalogueId()); - wrapper2.lt(UserCourseBuyEntity::getEndTime,new Date()); + wrapper2.gt(UserCourseBuyEntity::getEndTime,new Date()); List userCourseBuyEntities = userCourseBuyDao.selectList(wrapper2); - if(userCourseBuyEntities.size()>0){ + if(userCourseBuyEntities.size()>0){//延长有效期 UserCourseBuyEntity userCourseBuyEntity = userCourseBuyEntities.get(0); Calendar calendar = Calendar.getInstance(); calendar.setTime(userCourseBuyEntity.getEndTime()); @@ -917,6 +918,7 @@ public class BuyOrderController { UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity(); userCourseBuyEntity.setUserId(orderEntity.getUserId()); userCourseBuyEntity.setCourseId(s.getCourseId()); + userCourseBuyEntity.setCatalogueId(s.getCatalogueId()); userCourseBuyEntity.setDays(s.getDays()); userCourseBuyEntity.setCreateTime(new Date()); userCourseBuyEntity.setStartTime(new Date()); diff --git a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java index 3944fbb5..aa7380dd 100644 --- a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java +++ b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java @@ -226,7 +226,7 @@ public class AliPayServiceImpl implements AliPayService { LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); wrapper2.eq(UserCourseBuyEntity::getUserId,orderEntity.getUserId()); wrapper2.eq(UserCourseBuyEntity::getCatalogueId,s.getCatalogueId()); - wrapper2.lt(UserCourseBuyEntity::getEndTime,new Date()); + wrapper2.gt(UserCourseBuyEntity::getEndTime,new Date()); List userCourseBuyEntities = userCourseBuyDao.selectList(wrapper2); if(userCourseBuyEntities.size()>0){ UserCourseBuyEntity userCourseBuyEntity = userCourseBuyEntities.get(0); @@ -239,6 +239,7 @@ public class AliPayServiceImpl implements AliPayService { UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity(); userCourseBuyEntity.setUserId(orderEntity.getUserId()); userCourseBuyEntity.setCourseId(s.getCourseId()); + userCourseBuyEntity.setCatalogueId(s.getCatalogueId()); userCourseBuyEntity.setDays(s.getDays()); userCourseBuyEntity.setCreateTime(new Date()); userCourseBuyEntity.setStartTime(new Date()); diff --git a/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java b/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java index bae1cca9..b45f9798 100644 --- a/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java +++ b/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java @@ -168,6 +168,7 @@ public class WxpayServiceImpl extends ServiceImpl courseEntities = shopProductCourseDao.selectJoinList(CourseEntity.class, shopProductCourseEntityMPJLambdaWrapper); flag.put("courses",courseEntities); - + //查询包含此商品的所有商品的列表 + List book_product_ids = new ArrayList<>(); + if(bookEntities.size()>0){ + List collect = bookEntities.stream().map(BookEntity::getId).collect(Collectors.toList()); + LambdaQueryWrapper shopProductBookEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + shopProductBookEntityLambdaQueryWrapper.in(ShopProductBookEntity::getBookId,collect); + shopProductBookEntityLambdaQueryWrapper.groupBy(ShopProductBookEntity::getProductId); + shopProductBookEntityLambdaQueryWrapper.having("count(product_id)>="+collect.size()); + List shopProductBookEntities = shopProductBookDao.selectList(shopProductBookEntityLambdaQueryWrapper); + book_product_ids = shopProductBookEntities.stream().map(ShopProductBookEntity::getProductId).collect(Collectors.toList()); + } + List course_product_ids = new ArrayList<>(); + if(courseEntities.size()>0){ + List collect = courseEntities.stream().map(CourseEntity::getId).collect(Collectors.toList()); + LambdaQueryWrapper shopProductCourseEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + shopProductCourseEntityLambdaQueryWrapper.in(ShopProductCourseEntity::getCourseId,collect); + shopProductCourseEntityLambdaQueryWrapper.groupBy(ShopProductCourseEntity::getProductId); + shopProductCourseEntityLambdaQueryWrapper.having("count(product_id)>="+collect.size()); + List shopProductCourseEntities = shopProductCourseDao.selectList(shopProductCourseEntityLambdaQueryWrapper); + course_product_ids = shopProductCourseEntities.stream().map(ShopProductCourseEntity::getProductId).collect(Collectors.toList()); + } + if(book_product_ids.size()==0&&course_product_ids.size()==0){ + List shopProducts = new ArrayList<>(); + shopProducts.add(product); + flag.put("GLProducts",shopProducts); + } else if (book_product_ids.size()>0&&course_product_ids.size()>0) { + List intersection = new ArrayList<>(book_product_ids); + intersection.retainAll(course_product_ids); + List shopProducts = this.getBaseMapper().selectList(new LambdaQueryWrapper().in(ShopProduct::getProductId, intersection)); + flag.put("GLProducts",shopProducts); + } else { + List is = new ArrayList<>(CollectionUtils.union(book_product_ids, course_product_ids)); + List shopProducts = this.getBaseMapper().selectList(new LambdaQueryWrapper().in(ShopProduct::getProductId, is)); + flag.put("GLProducts",shopProducts); + } return flag; } }