From 2ac80ae4d08c52e2d17e2f80475e320e25fa80a1 Mon Sep 17 00:00:00 2001 From: MichaelWin Date: Wed, 25 Feb 2026 18:52:42 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/corewing/app/entity/BizActivity.java | 71 +++++++++++++++++++ .../app/entity/BizActivityLottery.java | 53 ++++++++++++++ .../app/mapper/BizActivityLotteryMapper.java | 9 +++ .../app/mapper/BizActivityMapper.java | 9 +++ .../modules/app/AppActivityController.java | 40 +++++++++++ .../service/BizActivityLotteryService.java | 11 +++ .../app/service/BizActivityService.java | 7 ++ .../impl/BizActivityLotteryServiceImpl.java | 62 ++++++++++++++++ .../service/impl/BizActivityServiceImpl.java | 11 +++ .../mapper/BizActivityLotteryMapper.xml | 6 ++ .../resources/mapper/BizActivityMapper.xml | 6 ++ .../templates/activity/eventVenue.html | 10 +++ 12 files changed, 295 insertions(+) create mode 100644 src/main/java/com/corewing/app/entity/BizActivity.java create mode 100644 src/main/java/com/corewing/app/entity/BizActivityLottery.java create mode 100644 src/main/java/com/corewing/app/mapper/BizActivityLotteryMapper.java create mode 100644 src/main/java/com/corewing/app/mapper/BizActivityMapper.java create mode 100644 src/main/java/com/corewing/app/modules/app/AppActivityController.java create mode 100644 src/main/java/com/corewing/app/service/BizActivityLotteryService.java create mode 100644 src/main/java/com/corewing/app/service/BizActivityService.java create mode 100644 src/main/java/com/corewing/app/service/impl/BizActivityLotteryServiceImpl.java create mode 100644 src/main/java/com/corewing/app/service/impl/BizActivityServiceImpl.java create mode 100644 src/main/resources/mapper/BizActivityLotteryMapper.xml create mode 100644 src/main/resources/mapper/BizActivityMapper.xml create mode 100644 src/main/resources/templates/activity/eventVenue.html diff --git a/src/main/java/com/corewing/app/entity/BizActivity.java b/src/main/java/com/corewing/app/entity/BizActivity.java new file mode 100644 index 0000000..746f839 --- /dev/null +++ b/src/main/java/com/corewing/app/entity/BizActivity.java @@ -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; + + + + +} diff --git a/src/main/java/com/corewing/app/entity/BizActivityLottery.java b/src/main/java/com/corewing/app/entity/BizActivityLottery.java new file mode 100644 index 0000000..aaf7706 --- /dev/null +++ b/src/main/java/com/corewing/app/entity/BizActivityLottery.java @@ -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; + +} diff --git a/src/main/java/com/corewing/app/mapper/BizActivityLotteryMapper.java b/src/main/java/com/corewing/app/mapper/BizActivityLotteryMapper.java new file mode 100644 index 0000000..605ff1f --- /dev/null +++ b/src/main/java/com/corewing/app/mapper/BizActivityLotteryMapper.java @@ -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 { +} diff --git a/src/main/java/com/corewing/app/mapper/BizActivityMapper.java b/src/main/java/com/corewing/app/mapper/BizActivityMapper.java new file mode 100644 index 0000000..0966dcc --- /dev/null +++ b/src/main/java/com/corewing/app/mapper/BizActivityMapper.java @@ -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 { +} diff --git a/src/main/java/com/corewing/app/modules/app/AppActivityController.java b/src/main/java/com/corewing/app/modules/app/AppActivityController.java new file mode 100644 index 0000000..dbc57b9 --- /dev/null +++ b/src/main/java/com/corewing/app/modules/app/AppActivityController.java @@ -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 submitActivity(SubmitActivityRequest submitActivityRequest) { + return Result.isBool(bizActivityLotteryService.submitActivity(submitActivityRequest)); + } + +} diff --git a/src/main/java/com/corewing/app/service/BizActivityLotteryService.java b/src/main/java/com/corewing/app/service/BizActivityLotteryService.java new file mode 100644 index 0000000..993914b --- /dev/null +++ b/src/main/java/com/corewing/app/service/BizActivityLotteryService.java @@ -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 { + + Boolean submitActivity(SubmitActivityRequest submitActivityRequest); + +} diff --git a/src/main/java/com/corewing/app/service/BizActivityService.java b/src/main/java/com/corewing/app/service/BizActivityService.java new file mode 100644 index 0000000..c12be2d --- /dev/null +++ b/src/main/java/com/corewing/app/service/BizActivityService.java @@ -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 { +} diff --git a/src/main/java/com/corewing/app/service/impl/BizActivityLotteryServiceImpl.java b/src/main/java/com/corewing/app/service/impl/BizActivityLotteryServiceImpl.java new file mode 100644 index 0000000..4ea8a13 --- /dev/null +++ b/src/main/java/com/corewing/app/service/impl/BizActivityLotteryServiceImpl.java @@ -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 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 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; + } +} diff --git a/src/main/java/com/corewing/app/service/impl/BizActivityServiceImpl.java b/src/main/java/com/corewing/app/service/impl/BizActivityServiceImpl.java new file mode 100644 index 0000000..92e7944 --- /dev/null +++ b/src/main/java/com/corewing/app/service/impl/BizActivityServiceImpl.java @@ -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 implements BizActivityService { +} diff --git a/src/main/resources/mapper/BizActivityLotteryMapper.xml b/src/main/resources/mapper/BizActivityLotteryMapper.xml new file mode 100644 index 0000000..e7e52d1 --- /dev/null +++ b/src/main/resources/mapper/BizActivityLotteryMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/BizActivityMapper.xml b/src/main/resources/mapper/BizActivityMapper.xml new file mode 100644 index 0000000..4b5a9b3 --- /dev/null +++ b/src/main/resources/mapper/BizActivityMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/activity/eventVenue.html b/src/main/resources/templates/activity/eventVenue.html new file mode 100644 index 0000000..2b19f65 --- /dev/null +++ b/src/main/resources/templates/activity/eventVenue.html @@ -0,0 +1,10 @@ + + + + + Title + + +123213 + + \ No newline at end of file