From 37bc49f0bee2c87245eb7dd7f648f74f30122209 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Wed, 5 Nov 2025 11:53:42 +0800 Subject: [PATCH] =?UTF-8?q?11=E6=9C=885=E6=97=A5=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coin/RechargeActivityCenterController.java | 118 +++++++++++++++++---- .../java/com/example/demo/domain/vo/coin/Page.java | 1 + .../demo/domain/vo/coin/RechargeActivity.java | 9 +- .../mapper/coin/RechargeActivityCenterMapper.java | 4 +- .../coin/RechargeActivityCenterService.java | 6 +- .../coin/RechargeActivityCenterServiceImpl.java | 48 ++++++++- .../mapper/RechargeActivityCenterMapper.xml | 50 +++++---- 7 files changed, 187 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java b/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java index df370d8..2d42566 100644 --- a/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java +++ b/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java @@ -1,12 +1,14 @@ package com.example.demo.controller.coin; import com.example.demo.config.interfac.Log; +import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.RechargeActivity; import com.example.demo.domain.vo.coin.Result; import com.example.demo.service.coin.RechargeActivityCenterService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -16,7 +18,7 @@ import java.util.List; * @ClassName RechargeActivityCenterController * @description: 充值活动中心管理 * @author: Double - * @create: 2025−10-28 14:23 + * @create: 2025−11-04 14:23 * @Version 1.0 **/ @@ -31,26 +33,46 @@ public class RechargeActivityCenterController { private RechargeActivityCenterService rechargeActivityCenterService; - // 查询活动 - @Log("根据ID查询充值活动") - @PostMapping("/selectActivity") - public Result selectActivity(@RequestBody RechargeActivity activity) { + /** + * 导出用户权限数据 + * + * @param page 导出请求参数) + * @return 导出结果(成功返回活动信息,失败返回错误信息) + * @throws NullPointerException 当参数为空时抛出(如activity为null、关键属性为null) + * @throws IllegalArgumentException 当参数无效时抛出(如活动ID非法、参数格式错误) + */ + @Log("条件查询充值活动") + @PostMapping("/queryActivity") + public Result queryActivity(@RequestBody Page page) { try { - RechargeActivity selectResult = rechargeActivityCenterService.selectActivityById(activity); - if (selectResult == null) { - return Result.error("查询失败:未找到该活动"); + //校验参数 + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); } - return Result.success(selectResult); + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } + if (page.getRechargeActivity() == null) { + return Result.error("查询失败:活动信息不能为空"); + } + return Result.success(rechargeActivityCenterService.queryActivity(page.getPageNum(), page.getPageSize(),page.getRechargeActivity())); } catch (NullPointerException e) { - log.error("查询活动失败:空指针异常,ID={}", activity.getId(), e); + log.error("查询活动失败:空指针异常", e); return Result.error("查询失败:数据为空"); } catch (IllegalArgumentException e) { - log.error("查询活动失败:参数异常,ID={}", activity.getId(), e); + log.error("查询活动失败:参数异常", e); return Result.error("查询失败:" + e.getMessage()); } } - // 动 + /** + * 新增充值活动 + * + * @param activity 充值活动请求参数(包含活动名称、活动规则等信息) + * @return 新增结果(成功返回提示信息,失败返回错误原因) + * @throws NullPointerException 当请求参数为空时抛出(如activity为null、活动名称等关键属性为null) + * @throws IllegalArgumentException 当请求参数无效时抛出(如活动名称为空字符串、参数格式不符合要求等) + */ @Log("新增充值活动") @PostMapping("/addActivity") public Result addActivity(@RequestBody RechargeActivity activity) { @@ -61,6 +83,25 @@ public class RechargeActivityCenterController { if (activity.getActivityName() == null || activity.getActivityName().trim().isEmpty()) { return Result.error("添加失败:活动名称不能为空"); } + if (activity.getBusinessBelong() == null || activity.getBusinessBelong().trim().isEmpty()) { + return Result.error("添加失败:业绩归属地不能为空"); + }else if (activity.getBusinessBelong().equals("活动归属地")) { + if (activity.getArea() == null || activity.getArea().trim().isEmpty()) { + return Result.error("添加失败:地区不能为空"); + } + } + if (activity.getStartTime() == null) { + return Result.error("添加失败:活动开始时间不能为空"); + } + if (activity.getEndTime() == null) { + return Result.error("添加失败:活动结束时间不能为空"); + } + if (activity.getEndTime().before(activity.getStartTime())) { + return Result.error("添加失败:活动结束时间必须晚于活动开始时间"); + } + if (activity.getCreator() == null || activity.getCreator().trim().isEmpty()) { + return Result.error("添加失败:添加人不能为空"); + } rechargeActivityCenterService.addActivity(activity); return Result.success("添加活动成功"); } catch (NullPointerException e) { @@ -72,19 +113,45 @@ public class RechargeActivityCenterController { } } - // 更新活动 + /** + * 更新充值活动 + * + * @param activity 充值活动更新参数(包含活动ID、待更新的活动名称等信息) + * @return 更新结果(成功返回提示信息,失败返回错误原因) + * @throws NullPointerException 当请求参数为空时抛出(如activity为null、活动ID、活动名称等关键属性为null) + * @throws IllegalArgumentException 当请求参数无效时抛出(如活动名称为空字符串、活动ID格式错误等) + */ @Log("更新充值活动") @PostMapping("/updateActivity") public Result updateActivity(@RequestBody RechargeActivity activity) { try { if (activity == null) { - return Result.error("更新失败:活动信息不能为空"); + return Result.error("添加失败:活动信息不能为空"); } if (activity.getId() == null) { - return Result.error("更新失败:活动ID不能为空"); + return Result.error("添加失败:活动ID不能为空"); } if (activity.getActivityName() == null || activity.getActivityName().trim().isEmpty()) { - return Result.error("更新失败:活动名称不能为空"); + return Result.error("添加失败:活动名称不能为空"); + } + if (activity.getBusinessBelong() == null || activity.getBusinessBelong().trim().isEmpty()) { + return Result.error("添加失败:业绩归属地不能为空"); + }else if (activity.getBusinessBelong().equals("活动归属地")) { + if (activity.getArea() == null || activity.getArea().trim().isEmpty()) { + return Result.error("添加失败:地区不能为空"); + } + } + if (activity.getStartTime() == null) { + return Result.error("添加失败:活动开始时间不能为空"); + } + if (activity.getEndTime() == null) { + return Result.error("添加失败:活动结束时间不能为空"); + } + if (activity.getEndTime().before(activity.getStartTime())) { + return Result.error("添加失败:活动结束时间必须晚于活动开始时间"); + } + if (activity.getCreator() == null || activity.getCreator().trim().isEmpty()) { + return Result.error("添加失败:添加人不能为空"); } rechargeActivityCenterService.updateActivity(activity); return Result.success("更新活动成功"); @@ -97,21 +164,28 @@ public class RechargeActivityCenterController { } } - // 删除活动 + /** + * 删除充值活动 + * + * @param activity 待删除的充值活动ID + * @return 删除结果(成功返回提示信息,失败返回错误原因) + * @throws NullPointerException 当活动ID为空时抛出(如id为null) + * @throws IllegalArgumentException 当活动ID无效时抛出(如id为负数、非整数格式等不符合业务要求的情况) + */ @Log("删除充值活动") @PostMapping("/deleteActivity") - public Result deleteActivity(@RequestParam Integer id) { + public Result deleteActivity(@RequestBody RechargeActivity activity) { try { - if (id == null) { + if (activity.getId() == null) { return Result.error("删除失败:活动ID不能为空"); } - rechargeActivityCenterService.deleteActivity(id); + rechargeActivityCenterService.deleteActivity(activity); return Result.success("删除活动成功"); } catch (NullPointerException e) { - log.error("删除活动失败:空指针异常,ID={}", id, e); + log.error("删除活动失败:空指针异常", e); return Result.error("删除失败:数据为空"); } catch (IllegalArgumentException e) { - log.error("删除活动失败:参数异常,ID={}", id, e); + log.error("删除活动失败:参数异常", e); return Result.error("删除失败:" + e.getMessage()); } } diff --git a/src/main/java/com/example/demo/domain/vo/coin/Page.java b/src/main/java/com/example/demo/domain/vo/coin/Page.java index ec84775..0f61856 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/Page.java +++ b/src/main/java/com/example/demo/domain/vo/coin/Page.java @@ -44,5 +44,6 @@ public class Page { private HistoryRecord historyRecord; //历史记录 private CashCollection cashCollection; //现金收款 private CashRecordDone cashRecordDone; + private RechargeActivity rechargeActivity; //充值活动 } diff --git a/src/main/java/com/example/demo/domain/vo/coin/RechargeActivity.java b/src/main/java/com/example/demo/domain/vo/coin/RechargeActivity.java index ca7142c..97a2ae3 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/RechargeActivity.java +++ b/src/main/java/com/example/demo/domain/vo/coin/RechargeActivity.java @@ -31,6 +31,11 @@ public class RechargeActivity { @ExcelProperty("业绩归属地") private String businessBelong; // 业绩归属地 + private String area; // 地区 + + @ExcelProperty("地区") + private String areaName; // 地区名 + @ExcelProperty("活动开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date startTime; // 活动开始时间 @@ -42,9 +47,11 @@ public class RechargeActivity { @ExcelProperty("活动状态") private String status; // 活动状态(进行中、已结束、未开始) - @ExcelProperty("添加人") private String creator; // 添加人 + @ExcelProperty("添加人") + private String creatorName; // 添加人名字 + @ExcelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date createTime; // 创建时间 diff --git a/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java b/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java index 6ba2fcb..3049f10 100644 --- a/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java @@ -20,7 +20,7 @@ public interface RechargeActivityCenterMapper { // 根据ID查询活动 - RechargeActivity selectActivityById(RechargeActivity activity); + List queryActivity(RechargeActivity activity); // 新增活动 void addActivity(RechargeActivity activity); @@ -29,5 +29,5 @@ public interface RechargeActivityCenterMapper { void updateActivity(RechargeActivity activity); // 删除活动 - void deleteActivity(@Param("id") Integer id); + void deleteActivity(RechargeActivity activity); } \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java b/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java index fba1cef..7d5b419 100644 --- a/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java +++ b/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java @@ -1,6 +1,7 @@ package com.example.demo.service.coin; import com.example.demo.domain.vo.coin.RechargeActivity; +import com.github.pagehelper.PageInfo; import java.util.List; @@ -17,7 +18,7 @@ public interface RechargeActivityCenterService { // 根据ID查询活动 - RechargeActivity selectActivityById(RechargeActivity activity); + PageInfo queryActivity(Integer pageNum, Integer pageSize, RechargeActivity activity); // 新增活动 void addActivity(RechargeActivity activity); @@ -25,6 +26,7 @@ public interface RechargeActivityCenterService { // 更新活动 void updateActivity(RechargeActivity activity); + // 删除活动 - void deleteActivity(Integer id); + void deleteActivity(RechargeActivity activity); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java index 06c75c7..e2f4484 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java @@ -3,9 +3,13 @@ package com.example.demo.serviceImpl.coin; import com.example.demo.domain.vo.coin.RechargeActivity; import com.example.demo.mapper.coin.RechargeActivityCenterMapper; import com.example.demo.service.coin.RechargeActivityCenterService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; +import java.util.Date; import java.util.List; /** @@ -26,25 +30,61 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter // 根据ID查询活动 @Override - public RechargeActivity selectActivityById(RechargeActivity activity) { - return rechargeActivityCenterMapper.selectActivityById(activity); + public PageInfo queryActivity(Integer pageNum, Integer pageSize, RechargeActivity activity) { + PageHelper.startPage(pageNum, pageSize); + List activityList = rechargeActivityCenterMapper.queryActivity(activity); + return new PageInfo<>(activityList); } // 新增活动 @Override public void addActivity(RechargeActivity activity) { + Date startTime = activity.getStartTime(); + Date endTime = activity.getEndTime(); + + //获取当前系统时间(本地时间,与活动时间时区保持一致) + Date now = new Date(); + + //时间范围判断,设置对应状态 + if (now.before(startTime)) { + // 当前时间 < 开始时间 → 未开始(状态0) + activity.setStatus("0"); + } else if (now.after(endTime)) { + // 当前时间 > 结束时间 → 已结束(状态2) + activity.setStatus("2"); + } else { + // 开始时间 ≤ 当前时间 ≤ 结束时间 → 进行中(状态1) + activity.setStatus("1"); + } rechargeActivityCenterMapper.addActivity(activity); } // 更新活动 @Override public void updateActivity(RechargeActivity activity) { + Date startTime = activity.getStartTime(); + Date endTime = activity.getEndTime(); + + //获取当前系统时间(本地时间,与活动时间时区保持一致) + Date now = new Date(); + + //时间范围判断,设置对应状态 + if (now.before(startTime)) { + // 当前时间 < 开始时间 → 未开始(状态0) + activity.setStatus("0"); + } else if (now.after(endTime)) { + // 当前时间 > 结束时间 → 已结束(状态2) + activity.setStatus("2"); + } else { + // 开始时间 ≤ 当前时间 ≤ 结束时间 → 进行中(状态1) + activity.setStatus("1"); + } rechargeActivityCenterMapper.updateActivity(activity); } // 删除活动 @Override - public void deleteActivity(Integer id) { - rechargeActivityCenterMapper.deleteActivity(id); + public void deleteActivity(RechargeActivity activity) { + rechargeActivityCenterMapper.deleteActivity(activity); } } \ No newline at end of file diff --git a/src/main/resources/mapper/RechargeActivityCenterMapper.xml b/src/main/resources/mapper/RechargeActivityCenterMapper.xml index f500faa..5b7dd95 100644 --- a/src/main/resources/mapper/RechargeActivityCenterMapper.xml +++ b/src/main/resources/mapper/RechargeActivityCenterMapper.xml @@ -3,29 +3,35 @@ - SELECT - id, - activity_name as activityName, - business_belong as businessBelong, - start_time as startTime, - end_time as endTime, - status, - creator, - create_time as createTime, - update_time as updateTime - FROM recharge_activity + ra.id, + ra.activity_name as activityName, + ra.business_belong as businessBelong, + ra.area, + m.name as areaName, + ra.start_time as startTime, + ra.end_time as endTime, + ra.status, + ra.creator, + a.admin_name as creatorName, + ra.create_time as createTime, + ra.update_time as updateTime + FROM recharge_activity ra + LEFT JOIN admin a on a.id = ra.creator + LEFT JOIN market m on m.id = ra.area + ra.flag = 1 - AND activity_name = #{activityName} + AND ra.activity_name = #{activityName} - AND end_time >= #{activityTime} - AND #{activityTime} >= start_time + AND ra.end_time >= #{activityTime} + AND #{activityTime} >= ra.start_time - create_time DESC + ra.update_time DESC @@ -34,6 +40,7 @@ INSERT INTO recharge_activity ( activity_name, business_belong, + area, start_time, end_time, status, @@ -42,6 +49,7 @@ ) VALUES ( #{activityName}, #{businessBelong}, + #{area}, #{startTime}, #{endTime}, #{status}, @@ -56,6 +64,7 @@ activity_name = #{activityName}, business_belong = #{businessBelong}, + area = #{area}, start_time = #{startTime}, end_time = #{endTime}, status = #{status}, @@ -66,9 +75,14 @@ - - DELETE FROM recharge_activity + + + UPDATE recharge_activity + + flag = 0, + update_time = NOW() + WHERE id = #{id} - + \ No newline at end of file