From f18a802137a7642473891f6886d44cf0c229efed Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 11 一月 2025 18:09:10 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java | 99 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 96 insertions(+), 3 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java index 3779fe3..16009ad 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java @@ -52,6 +52,8 @@ return R.ok(one); } + + /** * 添加活动 */ @@ -59,7 +61,52 @@ @ApiOperation(value = "订单优惠活动-添加活动", tags = {"管理后台-活动管理"}) public R<Void> saveActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){ orderActivityInfo.setIsShelf(0); + if (org.springframework.util.StringUtils.hasLength(orderActivityInfo.getVipIds())){ + List<String> vipIds = Arrays.asList(orderActivityInfo.getVipIds().split(",")); + List<OrderActivityInfo> list = orderActivityInfoService.lambdaQuery() + .le(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime()) + .or() + .ge(OrderActivityInfo::getEndTime, orderActivityInfo.getEndTime()).list(); + if (!list.isEmpty()){ + for (OrderActivityInfo activityInfo : list) { + List<String> vips = Arrays.asList(activityInfo.getVipIds().split(",")); + vipIds.retainAll(vips); + if (!vipIds.isEmpty()){ + StringBuilder message = new StringBuilder(); + List<String> collect = vips.stream().sorted().collect(Collectors.toList()); + for (String s : collect) { + switch (s){ + case "1": + message.append("普通会员,"); + break; + case "2": + message.append("黄金会员,"); + break; + case "3": + message.append("钻石会员,"); + break; + case "4": + message.append("准代理,"); + break; + case "5": + message.append("代理,"); + break; + case "6": + message.append("总代,"); + break; + case "7": + message.append("合伙人,"); + break; + } + } + StringBuilder res = message.deleteCharAt(message.length() - 1); + return R.fail(res+"在当前活动时间已有订单优惠"); + } + } + } + } orderActivityInfoService.save(orderActivityInfo); + return R.ok(); } @@ -80,6 +127,50 @@ @ApiOperation(value = "修改活动", tags = {"管理后台-活动管理"}) public R<Void> updateActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){ orderActivityInfo.setId(Long.valueOf(orderActivityInfo.getIdStr())); + if (org.springframework.util.StringUtils.hasLength(orderActivityInfo.getVipIds())){ + List<String> vipIds = Arrays.asList(orderActivityInfo.getVipIds().split(",")); + List<OrderActivityInfo> list = orderActivityInfoService.lambdaQuery() + .le(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime()) + .or() + .ge(OrderActivityInfo::getEndTime, orderActivityInfo.getEndTime()).list(); + if (!list.isEmpty()){ + for (OrderActivityInfo activityInfo : list) { + List<String> vips = Arrays.asList(activityInfo.getVipIds().split(",")); + vipIds.retainAll(vips); + if (!vipIds.isEmpty()){ + StringBuilder message = new StringBuilder(); + List<String> collect = vips.stream().sorted().collect(Collectors.toList()); + for (String s : collect) { + switch (s){ + case "1": + message.append("普通会员,"); + break; + case "2": + message.append("黄金会员,"); + break; + case "3": + message.append("钻石会员,"); + break; + case "4": + message.append("准代理,"); + break; + case "5": + message.append("代理,"); + break; + case "6": + message.append("总代,"); + break; + case "7": + message.append("合伙人,"); + break; + } + } + StringBuilder res = message.deleteCharAt(message.length() - 1); + return R.fail(res+"在当前活动时间已有订单优惠"); + } + } + } + } orderActivityInfoService.updateById(orderActivityInfo); return R.ok(); } @@ -94,12 +185,14 @@ OrderActivityInfo orderActivityInfo){ Page<OrderActivityInfo> page = orderActivityInfoService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<OrderActivityInfo>() - .eq(orderActivityInfo.getId() != null, OrderActivityInfo::getId, orderActivityInfo.getId()) - .eq(StringUtils.isNotEmpty(orderActivityInfo.getActivityName()), OrderActivityInfo::getActivityName, orderActivityInfo.getActivityName()) + .like(orderActivityInfo.getId() != null, OrderActivityInfo::getId, orderActivityInfo.getId()) + .like(StringUtils.isNotEmpty(orderActivityInfo.getActivityName()), OrderActivityInfo::getActivityName, orderActivityInfo.getActivityName()) .gt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 0, OrderActivityInfo::getStartTime, LocalDateTime.now()) .ge(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getEndTime, LocalDateTime.now()) .lt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getStartTime, LocalDateTime.now()) - .eq(orderActivityInfo.getIsShelf() != null, OrderActivityInfo::getIsShelf, orderActivityInfo.getIsShelf()).orderByDesc(OrderActivityInfo::getCreateTime)); + .eq(orderActivityInfo.getIsShelf() != null, OrderActivityInfo::getIsShelf, orderActivityInfo.getIsShelf()).orderByDesc(OrderActivityInfo::getCreateTime) + .orderByDesc(OrderActivityInfo::getCreateTime)) + ; page.getRecords().forEach(item -> { LocalDateTime startTime = item.getStartTime(); LocalDateTime now = LocalDateTime.now(); -- Gitblit v1.7.1