【新增】活动

This commit is contained in:
MichaelWin
2026-02-25 18:52:42 +08:00
parent e5e540305d
commit 2ac80ae4d0
12 changed files with 295 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
package com.corewing.app.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.corewing.app.common.base.CommonEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 活动
*/
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("biz_activity")
public class BizActivity extends CommonEntity {
/* id */
@TableId
private String id;
/* 活动图 */
private String thumbnail;
/* 活动标题 */
private String title;
/* 活动描述 */
private String description;
/* 活动分类 */
private String category;
/* 活动平台 */
private String platformCategory;
/* 活动人数 */
private Integer participationCount;
/* 当前参与人数 */
private Integer currentCount;
/* 活动详情 */
private String content;
/* 活动开始时间 */
private Date startTime;
/* 活动结束时间 */
private Date endTime;
/* 活动状态 */
private String status;
/* 是否开启活动参与人员审核 */
private String personnelReview;
/* 活动排序 */
private Integer sortCode;
/* 备注 */
private String remark;
/* 扩展 */
private String extJson;
}

View File

@@ -0,0 +1,53 @@
package com.corewing.app.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.corewing.app.common.base.CommonEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("biz_activity_lottery")
public class BizActivityLottery extends CommonEntity {
/* id */
@TableId
private String id;
/* 活动id */
private String activityId;
/* 分类 */
private String category;
/* 用户名 */
private String userName;
/* 用户id */
private Long userId;
/* 状态 */
private String status;
/* 提交内容 */
private String content;
/* 审核时间 */
private Date reviewTime;
/* 创作平台 */
private String creationPlatform;
/* 备注 */
private String remark;
/* 排序 */
private Integer sortCode;
/* 扩展字段 */
private String extJson;
}

View File

@@ -0,0 +1,9 @@
package com.corewing.app.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.corewing.app.entity.BizActivityLottery;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BizActivityLotteryMapper extends BaseMapper<BizActivityLottery> {
}

View File

@@ -0,0 +1,9 @@
package com.corewing.app.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.corewing.app.entity.BizActivity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BizActivityMapper extends BaseMapper<BizActivity> {
}

View File

@@ -0,0 +1,40 @@
package com.corewing.app.modules.app;
import com.corewing.app.common.Result;
import com.corewing.app.dto.SubmitActivityRequest;
import com.corewing.app.service.BizActivityLotteryService;
import io.swagger.annotations.Api;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Api(tags = "活动控制")
@Controller
@RequestMapping("/api/app/activity")
public class AppActivityController {
@Resource
private BizActivityLotteryService bizActivityLotteryService;
/**
* 活动参与地址
* @param activityId
* @return
*/
@GetMapping("/eventVenue/{activityId}")
public String eventVenue(@PathVariable String activityId) {
return "/activity/eventVenue";
}
/**
* 提交活动
* @return
*/
@PostMapping("/submitActivity")
@ResponseBody
public Result<String> submitActivity(SubmitActivityRequest submitActivityRequest) {
return Result.isBool(bizActivityLotteryService.submitActivity(submitActivityRequest));
}
}

View File

@@ -0,0 +1,11 @@
package com.corewing.app.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.corewing.app.dto.SubmitActivityRequest;
import com.corewing.app.entity.BizActivityLottery;
public interface BizActivityLotteryService extends IService<BizActivityLottery> {
Boolean submitActivity(SubmitActivityRequest submitActivityRequest);
}

View File

@@ -0,0 +1,7 @@
package com.corewing.app.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.corewing.app.entity.BizActivity;
public interface BizActivityService extends IService<BizActivity> {
}

View File

@@ -0,0 +1,62 @@
package com.corewing.app.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.corewing.app.dto.SubmitActivityRequest;
import com.corewing.app.entity.BizActivity;
import com.corewing.app.entity.BizActivityLottery;
import com.corewing.app.mapper.BizActivityLotteryMapper;
import com.corewing.app.service.BizActivityLotteryService;
import com.corewing.app.service.BizActivityService;
import com.corewing.app.util.DateUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.Objects;
@Service
public class BizActivityLotteryServiceImpl extends ServiceImpl<BizActivityLotteryMapper, BizActivityLottery> implements BizActivityLotteryService {
@Resource
private BizActivityService bizActivityService;
@Override
public Boolean submitActivity(SubmitActivityRequest submitActivityRequest) {
Long userid = StpUtil.getLoginIdAsLong();
BizActivity activity = bizActivityService.getById(submitActivityRequest.getActivityId());
if(activity == null) {
throw new RuntimeException("该活动不存在");
}
// 验证活动是否在有效期内
if(activity.getStartTime() != null && activity.getEndTime() != null) {
if(!DateUtils.isBefore(activity.getStartTime())) {
throw new RuntimeException("活动还未开始");
}
if(!DateUtils.isAfter(activity.getEndTime())) {
throw new RuntimeException("活动已过期");
}
}
// 校验是否参与
LambdaQueryWrapper<BizActivityLottery> checkLotteryWrapper = new LambdaQueryWrapper<>();
checkLotteryWrapper.eq(BizActivityLottery::getUserId, userid);
checkLotteryWrapper.eq(BizActivityLottery::getActivityId, submitActivityRequest.getActivityId());
if(count(checkLotteryWrapper) > 0) {
throw new RuntimeException("该活动你已经参与");
}
BizActivityLottery bizActivityLottery = new BizActivityLottery();
bizActivityLottery.setActivityId(submitActivityRequest.getActivityId());
return null;
}
}

View File

@@ -0,0 +1,11 @@
package com.corewing.app.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.corewing.app.entity.BizActivity;
import com.corewing.app.mapper.BizActivityMapper;
import com.corewing.app.service.BizActivityService;
import org.springframework.stereotype.Service;
@Service
public class BizActivityServiceImpl extends ServiceImpl<BizActivityMapper, BizActivity> implements BizActivityService {
}

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.corewing.app.mapper.BizActivityLotteryMapper">
</mapper>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.corewing.app.mapper.BizActivityMapper">
</mapper>

View File

@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
123213
</body>
</html>