Browse Source

11月5日活动管理

huangqizheng/feature-20251104113536-现金管理二期退款修改
sunjiabei 3 weeks ago
parent
commit
37bc49f0be
  1. 118
      src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java
  2. 1
      src/main/java/com/example/demo/domain/vo/coin/Page.java
  3. 9
      src/main/java/com/example/demo/domain/vo/coin/RechargeActivity.java
  4. 4
      src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java
  5. 6
      src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java
  6. 48
      src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java
  7. 50
      src/main/resources/mapper/RechargeActivityCenterMapper.xml

118
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: 202510-28 14:23
* @create: 202511-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());
}
}

1
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; //充值活动
}

9
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; // 创建时间

4
src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java

@ -20,7 +20,7 @@ public interface RechargeActivityCenterMapper {
// 根据ID查询活动
RechargeActivity selectActivityById(RechargeActivity activity);
List<RechargeActivity> 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);
}

6
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<RechargeActivity> 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);
}

48
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<RechargeActivity> queryActivity(Integer pageNum, Integer pageSize, RechargeActivity activity) {
PageHelper.startPage(pageNum, pageSize);
List<RechargeActivity> 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);
}
}

50
src/main/resources/mapper/RechargeActivityCenterMapper.xml

@ -3,29 +3,35 @@
<mapper namespace="com.example.demo.mapper.coin.RechargeActivityCenterMapper">
<!-- 查询活动 -->
<select id="selectActivityById" resultType="com.example.demo.domain.vo.coin.RechargeActivity">
<select id="queryActivity" resultType="com.example.demo.domain.vo.coin.RechargeActivity">
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
<where>
ra.flag = 1
<if test="activityName != null and activityName != ''">
AND activity_name = #{activityName}
AND ra.activity_name = #{activityName}
</if>
<if test="activityTime != null">
AND end_time >= #{activityTime}
AND #{activityTime} >= start_time
AND ra.end_time >= #{activityTime}
AND #{activityTime} >= ra.start_time
</if>
</where>
<trim prefix="ORDER BY" suffixOverrides=",">
create_time DESC
ra.update_time DESC
</trim>
</select>
@ -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 @@
<set>
<if test="activityName != null">activity_name = #{activityName},</if>
<if test="businessBelong != null">business_belong = #{businessBelong},</if>
<if test="area != null">area = #{area},</if>
<if test="startTime != null">start_time = #{startTime},</if>
<if test="endTime != null">end_time = #{endTime},</if>
<if test="status != null">status = #{status},</if>
@ -66,9 +75,14 @@
</update>
<!-- 删除活动 -->
<delete id="deleteActivity">
DELETE FROM recharge_activity
<!-- 删除活动 -->
<update id="deleteActivity" parameterType="com.example.demo.domain.vo.coin.RechargeActivity">
UPDATE recharge_activity
<set>
flag = 0,
update_time = NOW()
</set>
WHERE id = #{id}
</delete>
</update>
</mapper>
Loading…
Cancel
Save