From c980c8c2cd9403393db6a3f42705612a0a4d4511 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 16 十二月 2024 15:49:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java |  105 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 103 insertions(+), 2 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 d94fa02..11a35a9 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
@@ -2,12 +2,23 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.other.api.domain.OrderActivityInfo;
 import com.ruoyi.other.service.OrderActivityInfoService;
+import com.ruoyi.other.service.VipSettingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -19,10 +30,13 @@
  */
 @RestController
 @RequestMapping("/order-activity-info")
+@Api("订单优惠活动")
 public class OrderActivityInfoController {
 
 	@Resource
 	private OrderActivityInfoService orderActivityInfoService;
+	@Resource
+	private VipSettingService vipSettingService;
 	
 	
 	/**
@@ -37,7 +51,94 @@
 				.last(" and now() between start_time and end_time and FIND_IN_SET(" + vip + ", vip_ids) limit 0, 1"));
 		return R.ok(one);
 	}
-	
-	
+
+	/**
+	 * 添加活动
+	 */
+	@PostMapping("/save")
+	@ApiOperation(value = "订单优惠活动-添加活动", tags = {"管理后台-活动管理"})
+	public R<Void> saveActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){
+		orderActivityInfo.setIsShelf(0);
+		orderActivityInfoService.save(orderActivityInfo);
+		return R.ok();
+	}
+
+	/**
+	 * 删除活动
+	 */
+	@DeleteMapping("/delete")
+	@ApiOperation(value = "订单优惠活动-删除活动", tags = {"管理后台-活动管理"})
+	public R<Void> deleteActivityConfig(@RequestParam("id") Long id){
+		orderActivityInfoService.removeById(id);
+		return R.ok();
+	}
+
+	/**
+	 * 修改活动
+	 */
+	@PostMapping("/update")
+	@ApiOperation(value = "修改活动", tags = {"管理后台-活动管理"})
+	public R<Void> updateActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){
+		orderActivityInfo.setId(Long.valueOf(orderActivityInfo.getIdStr()));
+		orderActivityInfoService.updateById(orderActivityInfo);
+		return R.ok();
+	}
+
+	/**
+	 * 获取活动列表
+	 */
+	@GetMapping("/list")
+	@ApiOperation(value = "订单优惠活动-获取活动列表", tags = {"管理后台-活动管理"})
+	public R<Page<OrderActivityInfo>> list(@ApiParam("页码") @RequestParam Integer pageNum,
+									 @ApiParam("每一页数据大小") Integer pageSize,
+									 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())
+				.lt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 0, OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime())
+				.ge(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getEndTime, orderActivityInfo.getStartTime())
+				.eq(orderActivityInfo.getIsShelf() != null, OrderActivityInfo::getIsShelf, orderActivityInfo.getIsShelf()));
+		page.getRecords().forEach(item -> {
+			LocalDateTime startTime = item.getStartTime();
+			LocalDateTime now = LocalDateTime.now();
+			LocalDateTime endTime = item.getEndTime();
+			if (endTime.isBefore(now)){
+				item.setStatus(2); //已结束
+			}else if (startTime.isBefore(now)){
+				item.setStatus(1); // 已开始
+			}else {
+				item.setStatus(0); // 未开始
+			}
+
+			String vipIds = item.getVipIds();
+			if (StringUtils.isNotEmpty(vipIds)){
+				String[] vipIdArr = vipIds.split(",");
+				if (vipIdArr.length == 7){
+					item.setVipName("全部");
+				}else {
+					List<String> vipNameList = new ArrayList<>();
+					for (String vipId : vipIdArr) {
+						String vipName = vipSettingService.getById(Long.parseLong(vipId)).getVipName();
+						vipNameList.add(vipName);
+					}
+					item.setVipName(String.join(",", vipNameList));
+				}
+
+			}
+		});
+		return R.ok(page);
+	}
+
+	/**
+	 * 获取活动详情
+	 */
+	@GetMapping("/getDetailById")
+	@ApiOperation(value = "订单优惠活动-获取活动详情", tags = {"管理后台-活动管理"})
+	public R<OrderActivityInfo> getDetailById(@RequestParam("id") String id){
+		return R.ok(orderActivityInfoService.getById(Long.parseLong(id)));
+	}
+
+
 }
 

--
Gitblit v1.7.1