From 282374b8b55c4bac38416fa92bc7a2bab140dd30 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期一, 26 五月 2025 13:54:22 +0800
Subject: [PATCH] 小程序端活动列表(取消报名,列表),活动状态定时任务
---
framework/src/main/java/cn/lili/modules/lmk/domain/query/MyActivityQuery.java | 22 +++
framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityReportVO.java | 15 ++
framework/src/main/java/cn/lili/common/enums/ActivityStatusEnum.java | 20 ++
buyer-api/src/main/java/cn/lili/controller/lmk/MyActivityController.java | 35 +++++
framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityVO.java | 2
framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java | 4
framework/src/main/java/cn/lili/modules/lmk/domain/vo/MyActivityVo.java | 57 ++++++++
framework/src/main/java/cn/lili/modules/lmk/service/MyActivityService.java | 13 +
lmk-job/src/main/java/cn/lili/job/ActivityJob.java | 77 +++++++++++
framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java | 19 ++
framework/src/main/java/cn/lili/modules/lmk/service/ActivityService.java | 2
framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java | 64 +++++++++
framework/src/main/resources/mapper/lmk/ActivityMapper.xml | 70 +++++++++
framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityReportQuery.java | 13 +
14 files changed, 408 insertions(+), 5 deletions(-)
diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/MyActivityController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/MyActivityController.java
new file mode 100644
index 0000000..e181ddc
--- /dev/null
+++ b/buyer-api/src/main/java/cn/lili/controller/lmk/MyActivityController.java
@@ -0,0 +1,35 @@
+package cn.lili.controller.lmk;
+
+import cn.lili.base.Result;
+import cn.lili.modules.lmk.domain.query.ActivityReportQuery;
+import cn.lili.modules.lmk.domain.query.MyActivityQuery;
+import cn.lili.modules.lmk.service.ActivityService;
+import cn.lili.modules.lmk.service.MyActivityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@Validated
+@RequiredArgsConstructor
+@Api(value = "鎴戠殑娲诲姩", tags = "鎴戠殑娲诲姩绠$悊")
+@RestController
+@RequestMapping("/buyer/lmk/my-activity")
+public class MyActivityController {
+ private final MyActivityService myActivityService;
+ @GetMapping("/getMyActivityList")
+ @ApiOperation(value = "鑾峰緱鎴戠殑娲诲姩鍒楄〃", notes = "鑾峰緱鎴戠殑娲诲姩鍒楄〃")
+ public Result getMyActivityList(MyActivityQuery query){
+
+ return myActivityService.getMyActivityList(query);
+
+ }
+
+
+ @PutMapping("/cancelActivity")
+ @ApiOperation(value = "鑾峰緱鎴戠殑娲诲姩鍒楄〃", notes = "鑾峰緱鎴戠殑娲诲姩鍒楄〃")
+ public Result cancelActivity(@RequestBody ActivityReportQuery query){
+ return myActivityService.cancelActivity(query);
+ }
+}
diff --git a/framework/src/main/java/cn/lili/common/enums/ActivityStatusEnum.java b/framework/src/main/java/cn/lili/common/enums/ActivityStatusEnum.java
new file mode 100644
index 0000000..35816f1
--- /dev/null
+++ b/framework/src/main/java/cn/lili/common/enums/ActivityStatusEnum.java
@@ -0,0 +1,20 @@
+package cn.lili.common.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum ActivityStatusEnum {
+ NOT_STARTED("鏈紑濮�"),
+ REPORT("鎶ュ悕涓�"),
+ IN_PROGRESS("杩涜涓�"),
+ ENDED("宸茬粨鏉�");
+
+ private String type;
+
+ ActivityStatusEnum(String type) {
+ this.type = type;
+
+ }
+
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityReportQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityReportQuery.java
new file mode 100644
index 0000000..2e0f512
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityReportQuery.java
@@ -0,0 +1,13 @@
+package cn.lili.modules.lmk.domain.query;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ActivityReport鏌ヨ鍙傛暟", description = "娲诲姩鏌ヨ鍙傛暟")
+public class ActivityReportQuery {
+ /** 鐢ㄦ埛id*/
+ private String userId;
+ /** 娲诲姩id*/
+ private String activityId;
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/MyActivityQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/MyActivityQuery.java
new file mode 100644
index 0000000..5da2252
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/MyActivityQuery.java
@@ -0,0 +1,22 @@
+package cn.lili.modules.lmk.domain.query;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+
+@Data
+@ApiModel(value = "灏忕▼搴忕鎴戠殑娲诲姩娲诲姩鏌ヨ鍙傛暟", description = "灏忕▼搴忕鎴戠殑娲诲姩娲诲姩鏌ヨ鍙傛暟")
+public class MyActivityQuery {
+
+ /** 娲诲姩鐘舵��*/
+ private String status;
+
+ /** 鏄惁鍙栨秷*/
+ private Boolean cancel;
+
+ @NotBlank
+ private String id;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityReportVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityReportVO.java
new file mode 100644
index 0000000..a2dfb23
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityReportVO.java
@@ -0,0 +1,15 @@
+package cn.lili.modules.lmk.domain.vo;
+
+import cn.lili.base.AbsVo;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ActivityReport涓棿琛ㄥ搷搴旀暟鎹�", description = "鍝嶅簲鏁版嵁")
+public class ActivityReportVO extends AbsVo {
+ /** 娲诲姩id*/
+ private String activityId;
+
+ /** 鐢ㄦ埛id*/
+ private String userId;
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityVO.java
index ab61c97..1007010 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityVO.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/ActivityVO.java
@@ -16,7 +16,7 @@
import java.util.List;
@Data
-@ApiModel(value = "Activity鏌ヨ鍙傛暟", description = "娲诲姩鏌ヨ〃鍗�")
+@ApiModel(value = "Activity鍝嶅簲鏁版嵁", description = "鍝嶅簲鏁版嵁")
public class ActivityVO extends AbsVo {
/** 娲诲姩鍚嶇О */
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/MyActivityVo.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/MyActivityVo.java
new file mode 100644
index 0000000..4ef91ea
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/MyActivityVo.java
@@ -0,0 +1,57 @@
+package cn.lili.modules.lmk.domain.vo;
+
+import cn.lili.base.AbsVo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value = "MyActivity鍝嶅簲鏁版嵁", description = "MyActivity鍝嶅簲鏁版嵁")
+public class MyActivityVo extends AbsVo {
+ /** 娲诲姩灏侀潰*/
+ private String cover;
+
+ /** 灏侀潰绫诲瀷 */
+ @ApiModelProperty(value = "灏侀潰绫诲瀷锛氳棰戙�佹枃瀛椼�佸浘鐗�", example = "鍥剧墖")
+ private String coverType;
+
+ /** 娲诲姩灏侀潰url*/
+ private String url;
+
+ /** 娲诲姩绫诲瀷 */
+ @ApiModelProperty(value = "娲诲姩绫诲瀷锛氱嚎涓�/绾夸笅锛岀洰鍓嶉粯璁ら兘鏄嚎涓�", example = "绾夸笅")
+ private String activityType;
+
+ /** 娲诲姩鍚�*/
+ private String activityName;
+
+ @ApiModelProperty(value = "娲诲姩寮�濮嬫椂闂�", example = "2025-06-01 08:30:00")
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date startTime;
+
+ /** 娲诲姩缁撴潫鏃堕棿 */
+ @ApiModelProperty(value = "娲诲姩缁撴潫鏃堕棿", example = "2025-06-01 17:00:00")
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+
+ /** 娲诲姩鐘舵�� */
+ @ApiModelProperty(value = "娲诲姩鐘舵��", example = "杩涜涓�/宸茬粨鏉�/宸插彇娑�")
+ private String status;
+
+ /** 娲诲姩鍦扮偣 */
+ @ApiModelProperty(value = "娲诲姩鍦扮偣", example = "鍖椾含甯傛湞闃冲尯濂ユ灄鍖瑰厠鍏洯")
+ private String activityLocation;
+
+ /** 鏄惁鍙栨秷*/
+ private boolean cancel;
+
+ /** 鎶ュ悕涓棿琛╥d*/
+ private String activityReportId;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java
index 7f1b6e5..ac7f14b 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java
@@ -2,11 +2,11 @@
import cn.lili.modules.lmk.domain.entity.Activity;
import cn.lili.modules.lmk.domain.entity.CustomerBlack;
-import cn.lili.modules.lmk.domain.query.ActivityMembersQuery;
-import cn.lili.modules.lmk.domain.query.ActivityQuery;
-import cn.lili.modules.lmk.domain.query.CustomerBlackQuery;
+import cn.lili.modules.lmk.domain.query.*;
+import cn.lili.modules.lmk.domain.vo.ActivityReportVO;
import cn.lili.modules.lmk.domain.vo.ActivityVO;
import cn.lili.modules.lmk.domain.vo.CustomerBlackVO;
+import cn.lili.modules.lmk.domain.vo.MyActivityVo;
import cn.lili.modules.member.entity.vo.MemberVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -38,4 +38,17 @@
IPage getMembers(IPage page, @Param("query") ActivityMembersQuery query);
+
+ List<MyActivityVo> getMyActivityList(@Param("query")MyActivityQuery query);
+
+ int cancelActivity(String id);
+
+ ActivityReportVO getActivityReport(@Param("query")ActivityReportQuery query);
+
+ /**
+ * 鎵归噺鏇存柊娲诲姩
+ * @param activityList 寰呮洿鏂板疄浣撳垪琛紙蹇呴』鍖呭惈ID锛�
+ * @return 鍙楀奖鍝嶇殑琛屾暟
+ */
+ int batchUpdateActivities(@Param("list") List<Activity> activityList);
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/ActivityService.java b/framework/src/main/java/cn/lili/modules/lmk/service/ActivityService.java
index 102a5e2..a2b6106 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/ActivityService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/ActivityService.java
@@ -5,6 +5,7 @@
import cn.lili.modules.lmk.domain.form.ActivityForm;
import cn.lili.modules.lmk.domain.query.ActivityMembersQuery;
import cn.lili.modules.lmk.domain.query.ActivityQuery;
+import cn.lili.modules.lmk.domain.query.MyActivityQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
@@ -71,4 +72,5 @@
Result activityChangeRecommend(ActivityForm form);
Result activityMembersPage(ActivityMembersQuery query);
+
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/MyActivityService.java b/framework/src/main/java/cn/lili/modules/lmk/service/MyActivityService.java
new file mode 100644
index 0000000..a52e75c
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/MyActivityService.java
@@ -0,0 +1,13 @@
+package cn.lili.modules.lmk.service;
+
+import cn.lili.base.Result;
+import cn.lili.modules.lmk.domain.entity.Activity;
+import cn.lili.modules.lmk.domain.query.ActivityReportQuery;
+import cn.lili.modules.lmk.domain.query.MyActivityQuery;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface MyActivityService extends IService<Activity> {
+ public Result getMyActivityList(MyActivityQuery query);
+
+ public Result cancelActivity(ActivityReportQuery query);
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
index f2e2db6..78ec501 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
@@ -71,6 +71,10 @@
return Result.ok("淇敼鎴愬姛");
}
+ public void updateByList(List<Activity> vo){
+
+ }
+
@Override
public Result remove(List<String> ids) {
baseMapper.deleteBatchIds(ids);
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java
new file mode 100644
index 0000000..8193824
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java
@@ -0,0 +1,64 @@
+package cn.lili.modules.lmk.service.impl;
+
+import cn.lili.base.Result;
+import cn.lili.modules.lmk.domain.entity.Activity;
+import cn.lili.modules.lmk.domain.query.ActivityReportQuery;
+import cn.lili.modules.lmk.domain.query.MyActivityQuery;
+import cn.lili.modules.lmk.domain.vo.ActivityReportVO;
+import cn.lili.modules.lmk.domain.vo.ActivityVO;
+import cn.lili.modules.lmk.domain.vo.MyActivityVo;
+import cn.lili.modules.lmk.mapper.ActivityMapper;
+import cn.lili.modules.lmk.service.LmkFileService;
+import cn.lili.modules.lmk.service.MyActivityService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+public class MyActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements MyActivityService {
+ private final ActivityMapper activityMapper;
+ private final LmkFileService lmkFileService;
+
+ @Override
+ public Result getMyActivityList(MyActivityQuery query) {
+ List<MyActivityVo> myActivityList = activityMapper.getMyActivityList(query);
+
+ for (MyActivityVo vo : myActivityList) {
+ System.out.println(vo);
+ if (!"鏂囧瓧".equals(vo.getCoverType())){
+// String url = lmkFileService.getPreviewUrl(vo.getCover());
+// vo.setUrl(url);
+ }
+ }
+ return Result.ok().data(myActivityList);
+ }
+
+ @Override
+ public Result cancelActivity(ActivityReportQuery query) {
+ // TODO 鍒ゆ柇鏄惁鍦ㄦ姤鍚嶆椂闂村唴 鍦ㄧ殑璇濆彲浠ュ彇娑堟姤鍚嶏紝 锛堣嫢鏈夋姤鍚嶈垂闇�瑕侀��娆撅級
+ ActivityReportVO vo = activityMapper.getActivityReport(query);
+
+ Activity activity = activityMapper.selectById(vo.getActivityId());
+
+ Date date = new Date();
+ if(!date.before(activity.getReportStartTime()) && !date.after(activity.getReportEndTime())){
+ int affectedRows = activityMapper.cancelActivity(vo.getId());
+
+ if (affectedRows > 0) {
+ return Result.ok("娲诲姩鍙栨秷鎴愬姛");
+ } else {
+ // 鍙�夛細璁板綍璀﹀憡鏃ュ織
+ throw new RuntimeException("娲诲姩涓嶅瓨鍦ㄦ垨宸插彇娑�");
+ }
+ }else {
+ throw new RuntimeException("娲诲姩宸蹭笉鍦ㄦ姤鍚嶆椂闂村唴鏃犳硶鍙栨秷");
+ }
+
+
+
+ }
+}
diff --git a/framework/src/main/resources/mapper/lmk/ActivityMapper.xml b/framework/src/main/resources/mapper/lmk/ActivityMapper.xml
index 68c6209..0362cd4 100644
--- a/framework/src/main/resources/mapper/lmk/ActivityMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/ActivityMapper.xml
@@ -20,9 +20,50 @@
<result column="activity_content" property="activityContent" />
</resultMap>
+ <resultMap id="MyActivityResultMap" type="cn.lili.modules.lmk.domain.vo.MyActivityVo">
+ <result column="activity_name" property="activityName" />
+ <result column="activity_type" property="activityType"/>
+ <result column="end_time" property="endTime" />
+ <result column="status" property="status" />
+ <result column="cover" property="cover" />
+ <result column="cover_type" property="coverType" />
+ <result column="activity_location" property="activityLocation" />
+ <result column="cancel" property="cancel"/>
+ <result column="activity_report_id" property="activityReportId"/>
+ </resultMap>
+
+ <resultMap id="ActivityReportMap" type="cn.lili.modules.lmk.domain.vo.ActivityReportVO">
+ <result column="activity_id" property="activityId"/>
+ <result column="user_id" property="userId"/>
+ </resultMap>
-
+ <select id="getMyActivityList" resultMap="MyActivityResultMap">
+ SELECT
+ LA.id,
+ LA.activity_name,
+ LA.activity_type,
+ LA.start_time,
+ LA.end_time,
+ LA.status,
+ LA.cover,
+ LA.cover_type,
+ LA.activity_location,
+ LAR.cancel,
+ LA.id as activity_report_id
+ FROM lmk_activity_report LAR
+ LEFT JOIN lmk_activity LA ON LAR.activity_id = LA.id
+ where LA.delete_flag = 0
+ AND LAR.delete_flag = 0
+ AND LAR.user_id = #{query.id}
+ AND LAR.cancel = #{query.cancel}
+ <if test="query.status == null or query.status == ''">
+ AND LA.status != '宸茬粨鏉�'
+ </if>
+ <if test="query.status != null and query.status != ''">
+ AND LA.status = #{query.status}
+ </if>
+ </select>
@@ -107,4 +148,31 @@
WHERE LAR.activity_id = #{query.id}
</select>
+
+ <update id="cancelActivity" >
+ UPDATE
+ lmk_activity_report LAR
+ SET LAR.cancel = true where LAR.id = #{id}
+ </update>
+
+
+ <select id="getActivityReport" resultMap="ActivityReportMap">
+ SELECT LAR.* FROM lmk_activity_report LAR
+ WHERE LAR.user_id = #{query.userId} and LAR.activity_id = #{query.activityId}
+ </select>
+
+ <update id="batchUpdateActivities">
+ UPDATE lmk_activity
+ <trim prefix="SET" suffixOverrides=",">
+ <trim prefix="status = CASE id" suffix="END,">
+ <foreach collection="list" item="item">
+ WHEN #{item.id} THEN #{item.status}
+ </foreach>
+ </trim>
+ </trim>
+ WHERE id IN
+ <foreach collection="list" item="item" open="(" separator="," close=")">
+ #{item.id}
+ </foreach>
+ </update>
</mapper>
diff --git a/lmk-job/src/main/java/cn/lili/job/ActivityJob.java b/lmk-job/src/main/java/cn/lili/job/ActivityJob.java
new file mode 100644
index 0000000..ceb4693
--- /dev/null
+++ b/lmk-job/src/main/java/cn/lili/job/ActivityJob.java
@@ -0,0 +1,77 @@
+package cn.lili.job;
+
+import cn.lili.common.enums.ActivityStatusEnum;
+import cn.lili.modules.lmk.domain.entity.Activity;
+import cn.lili.modules.lmk.domain.entity.CustomerBlack;
+import cn.lili.modules.lmk.domain.vo.ActivityVO;
+import cn.lili.modules.lmk.domain.vo.CollectTypeNumVO;
+import cn.lili.modules.lmk.enums.general.CollectTypeEnum;
+import cn.lili.modules.lmk.mapper.ActivityMapper;
+import cn.lili.modules.lmk.service.ActivityService;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 娲诲姩鐩稿叧浠诲姟
+ * */
+@Component
+@RequiredArgsConstructor
+public class ActivityJob {
+
+ private final ActivityMapper activityMapper;
+
+ /**
+ * 鏇村叿鎶ュ悕鏃堕棿娈典笌娲诲喕鏃堕棿娈碉紝鏀瑰彉娲诲姩鐘舵��
+ *
+ * */
+ @XxlJob("activityStatusJob")
+ public void activityStatusJob() throws Exception {
+ XxlJobHelper.log("寮�濮嬫墽琛岋細娲诲姩鐘舵�佹敼鍙�");
+ //鑾峰緱鎵�鏈� 娲诲姩
+ List<Activity> activeActivities = new LambdaQueryChainWrapper<Activity>(activityMapper)
+ .orderByAsc(Activity::getCreateTime) // 鎸夊垱寤烘椂闂村崌搴�
+ .list();
+ Date now = new Date(); // 鑾峰彇褰撳墠鏃堕棿
+
+
+
+ for (Activity activity : activeActivities) {
+ if (isInProgress(now, activity)) {
+ activity.setStatus(ActivityStatusEnum.IN_PROGRESS.getType());
+ } else if (isRecruiting(now, activity)) {
+ activity.setStatus(ActivityStatusEnum.REPORT.getType());
+ } else if (now.after(activity.getReportStartTime())) {
+ activity.setStatus(ActivityStatusEnum.NOT_STARTED.getType());
+ } else {
+ activity.setStatus(ActivityStatusEnum.ENDED.getType());
+ }
+ }
+ activityMapper.batchUpdateActivities(activeActivities);
+
+ // 淇敼
+ XxlJobHelper.log("鎵ц瀹屾垚锛氭椿鍔ㄧ姸鎬佹敼鍙�");
+
+ }
+
+ private boolean isInProgress(Date now, Activity activity) {
+ System.out.println("杩涜涓�");
+ return !now.before(activity.getReportStartTime()) && !now.after(activity.getReportEndTime());
+ }
+
+
+ private boolean isRecruiting(Date now, Activity activity) {
+ System.out.println("鎶ュ悕涓�");
+ return !now.before(activity.getStartTime()) && !now.after(activity.getEndTime());
+ }
+
+}
--
Gitblit v1.8.0