Quellcode durchsuchen

签到活动功能代码

zhangchen vor 3 Monaten
Ursprung
Commit
fea54ea382

+ 1 - 1
alien-entity/src/main/java/shop/alien/entity/store/vo/ActivityConfigVO.java

@@ -18,7 +18,7 @@ import java.util.List;
 @EqualsAndHashCode(callSuper = true)
 @Data
 @JsonInclude
-public class ActivityConfigVO extends ActivitySignInConfig {
+public class ActivityConfigVo extends ActivitySignInConfig {
 
     @ApiModelProperty(value = "签到奖励配置列表")
     private List<ActivityPeriod> activityPeriodList;

+ 20 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/ActivityPeriodVo.java

@@ -0,0 +1,20 @@
+package shop.alien.entity.store.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import shop.alien.entity.store.ActivityPeriod;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@JsonInclude
+public class ActivityPeriodVo extends ActivityPeriod {
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    @TableField("activity_name")
+    private String activityName;
+}

+ 8 - 6
alien-entity/src/main/java/shop/alien/mapper/ActivityPeriodMapper.java

@@ -1,13 +1,15 @@
 package shop.alien.mapper;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import shop.alien.entity.store.ActivityPeriod;
-import shop.alien.entity.store.ActivitySignInConfig;
-
-/**
- * 时间段配置mapper
- */
+import shop.alien.entity.store.vo.ActivityPeriodVo;
+import java.util.List;
 @Mapper
 public interface ActivityPeriodMapper extends BaseMapper<ActivityPeriod> {
+    @Select("select asic.id, asic.activity_name, ap.start_time, ap.end_time from activity_period ap " +
+            "left join activity_sign_in_config asic on asic.id = ap.activity_id " +
+            "where asic.delete_flag = 0 and ap.delete_flag = 0 and ap.start_time < #{endTime} and ap.end_time > #{startTime}")
+    List<ActivityPeriodVo> getActivityPeriodList(@Param("startTime") String startTime, @Param("endTime") String endTime);
 }

+ 25 - 8
alien-store/src/main/java/shop/alien/store/controller/ActivityConfigController.java

@@ -8,9 +8,13 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.ActivitySignInConfig;
-import shop.alien.entity.store.vo.ActivityConfigVO;
+import shop.alien.entity.store.vo.ActivityConfigVo;
+import shop.alien.entity.store.vo.ActivityPeriodVo;
 import shop.alien.store.service.ActivityConfigService;
 
+import java.util.Date;
+import java.util.List;
+
 @Api(tags = {"二期-签到活动"})
 @Slf4j
 @CrossOrigin
@@ -27,8 +31,8 @@ public class ActivityConfigController {
     @ApiOperation("创建签到活动")
     @ApiOperationSupport(order = 1)
     @PostMapping("createOrUpdateActivity")
-    public R<ActivityConfigVO> createOrUpdateActivity(@RequestBody ActivityConfigVO configVO) {
-        ActivityConfigVO activity = activityConfigService.createOrUpdateActivity(configVO);
+    public R<ActivityConfigVo> createOrUpdateActivity(@RequestBody ActivityConfigVo configVO) {
+        ActivityConfigVo activity = activityConfigService.createOrUpdateActivity(configVO);
         if(activity == null) {
             return R.fail("插入/更新失败");
         }
@@ -62,23 +66,23 @@ public class ActivityConfigController {
     @ApiOperation("获取签到活动详情")
     @ApiOperationSupport(order = 3)
     @GetMapping("/getActivitySignInConfigById")
-    public R<ActivityConfigVO> getActivitySignInConfigById(@RequestParam(required = true) Long activityId) {
+    public R<ActivityConfigVo> getActivitySignInConfigById(@RequestParam(required = true) Long activityId) {
         log.info("ActivityConfigController.getActivitySignInConfigById={}", activityId);
-        ActivityConfigVO activityConfigVO = activityConfigService.getActivitySignInConfigById(activityId);
+        ActivityConfigVo activityConfigVO = activityConfigService.getActivitySignInConfigById(activityId);
         return R.data(activityConfigVO);
     }
 
     @ApiOperation("获取默认方案签到活动详情")
     @ApiOperationSupport(order = 4)
     @GetMapping("/getDefaultActivitySignInConfigById")
-    public R<ActivityConfigVO> getDefaultActivitySignInConfigById() {
+    public R<ActivityConfigVo> getDefaultActivitySignInConfigById() {
         log.info("ActivityConfigController.getDefaultActivitySignInConfigById");
-        ActivityConfigVO activityConfigVO = activityConfigService.getDefaultActivitySignInConfigById();
+        ActivityConfigVo activityConfigVO = activityConfigService.getDefaultActivitySignInConfigById();
         return R.data(activityConfigVO);
     }
 
     /**
-     * 修改库存数量
+     * 修改签到活动状态
      *
      * @param id     主键
      * @param status 状态
@@ -102,4 +106,17 @@ public class ActivityConfigController {
     public R<Boolean> deleteActivity(Integer id) {
         return R.data(activityConfigService.deleteActivity(id));
     }
+
+    @ApiOperation("校验是否时间重叠")
+    @ApiOperationSupport(order = 5)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "startTime", value = "开始时间", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "endTime", value = "结束时间", dataType = "String", paramType = "query")
+    })
+    @GetMapping("/checkOverlapTime")
+    public R<List<ActivityPeriodVo>> checkOverlapTime(@RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime) {
+        log.info("ActivityConfigController.checkOverlapTime");
+        List<ActivityPeriodVo> activityPeriodVoList = activityConfigService.checkOverlapTime(startTime, endTime);
+        return R.data(activityPeriodVoList);
+    }
 }

+ 11 - 5
alien-store/src/main/java/shop/alien/store/service/ActivityConfigService.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import shop.alien.entity.store.ActivitySignInConfig;
 import shop.alien.entity.store.ActivitySignInReward;
-import shop.alien.entity.store.vo.ActivityConfigVO;
+import shop.alien.entity.store.vo.ActivityConfigVo;
+import shop.alien.entity.store.vo.ActivityPeriodVo;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,17 +19,17 @@ public interface ActivityConfigService extends IService<ActivitySignInConfig> {
     /**
      * 创建签到活动
      */
-    ActivityConfigVO createOrUpdateActivity(ActivityConfigVO configVO);
+    ActivityConfigVo createOrUpdateActivity(ActivityConfigVo configVO);
 
     /**
      * 更新签到活动
      */
-    ActivitySignInConfig updateActivity(Long id, ActivityConfigVO configVO);
+    ActivitySignInConfig updateActivity(Long id, ActivityConfigVo configVO);
 
     /**
      * 获取活动详情
      */
-    ActivityConfigVO getActivitySignInConfigById(Long id);
+    ActivityConfigVo getActivitySignInConfigById(Long id);
 
     /**
      * 获取活动列表
@@ -52,6 +54,10 @@ public interface ActivityConfigService extends IService<ActivitySignInConfig> {
     /**
      * 获取默认方案
      */
-    ActivityConfigVO getDefaultActivitySignInConfigById();
+    ActivityConfigVo getDefaultActivitySignInConfigById();
 
+    /**
+     * 校验时间段重复
+     */
+    List<ActivityPeriodVo> checkOverlapTime(String startTime, String endTime);
 }

+ 21 - 9
alien-store/src/main/java/shop/alien/store/service/impl/ActivityConfigServiceImpl.java

@@ -1,6 +1,5 @@
 package shop.alien.store.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -14,7 +13,8 @@ import org.springframework.util.CollectionUtils;
 import shop.alien.entity.store.ActivityPeriod;
 import shop.alien.entity.store.ActivitySignInConfig;
 import shop.alien.entity.store.ActivitySignInReward;
-import shop.alien.entity.store.vo.ActivityConfigVO;
+import shop.alien.entity.store.vo.ActivityConfigVo;
+import shop.alien.entity.store.vo.ActivityPeriodVo;
 import shop.alien.mapper.ActivityPeriodMapper;
 import shop.alien.mapper.ActivitySignRewardMapper;
 import shop.alien.store.service.ActivityConfigService;
@@ -22,6 +22,7 @@ import shop.alien.mapper.ActivitySignInConfigMapper;
 
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -40,11 +41,11 @@ public class ActivityConfigServiceImpl extends ServiceImpl<ActivitySignInConfigM
     private final ActivityPeriodMapper activityPeriodMapper;
 
     @Override
-    public ActivityConfigVO createOrUpdateActivity(ActivityConfigVO configVO) {
+    public ActivityConfigVo createOrUpdateActivity(ActivityConfigVo configVO) {
         log.info("创建活动开始执行,请求参数: {}", configVO);
         if(configVO == null) {
             log.error("创建活动configVO为空。");
-            configVO = new ActivityConfigVO();
+            configVO = new ActivityConfigVo();
             configVO.setErrorMessage("参数为空");
             return configVO;
         }
@@ -55,6 +56,7 @@ public class ActivityConfigServiceImpl extends ServiceImpl<ActivitySignInConfigM
             return configVO;
         }
 
+        // 校验是否存在重复时间段的方案
         List<ActivityPeriod> activityPeriodList = configVO.getActivityPeriodList();
         if(!CollectionUtils.isEmpty(activityPeriodList)){
             boolean checkPeriodResult= checkPeriodTime(activityPeriodList);
@@ -162,13 +164,13 @@ public class ActivityConfigServiceImpl extends ServiceImpl<ActivitySignInConfigM
     }
 
     @Override
-    public ActivitySignInConfig updateActivity(Long id, ActivityConfigVO configVO) {
+    public ActivitySignInConfig updateActivity(Long id, ActivityConfigVo configVO) {
         return null;
     }
 
     @Override
-    public ActivityConfigVO getActivitySignInConfigById(Long id) {
-        ActivityConfigVO activityConfigVO = new ActivityConfigVO();
+    public ActivityConfigVo getActivitySignInConfigById(Long id) {
+        ActivityConfigVo activityConfigVO = new ActivityConfigVo();
         if(id == null || id == 0){
             //id为空
             return activityConfigVO;
@@ -202,8 +204,8 @@ public class ActivityConfigServiceImpl extends ServiceImpl<ActivitySignInConfigM
     }
 
     @Override
-    public ActivityConfigVO getDefaultActivitySignInConfigById() {
-        ActivityConfigVO activityConfigVO = new ActivityConfigVO();
+    public ActivityConfigVo getDefaultActivitySignInConfigById() {
+        ActivityConfigVo activityConfigVO = new ActivityConfigVo();
 
         // 查询签到活动配置信息
         LambdaQueryWrapper<ActivitySignInConfig> activitySignInConfigLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -236,6 +238,16 @@ public class ActivityConfigServiceImpl extends ServiceImpl<ActivitySignInConfigM
     }
 
     @Override
+    public List<ActivityPeriodVo> checkOverlapTime(String startTime, String endTime) {
+        List<ActivityPeriodVo> activityPeriodVoList = new ArrayList<>();
+        if(startTime != null && endTime != null){
+
+            activityPeriodVoList =  activityPeriodMapper.getActivityPeriodList(startTime, endTime);
+        }
+        return activityPeriodVoList;
+    }
+
+    @Override
     public IPage<ActivitySignInConfig> getActivityList(int pageNum, int pageSize, String activityName, Integer status) {
         IPage<ActivitySignInConfig> iPage = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<ActivitySignInConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();