Jelajahi Sumber

feat(activity): 完善活动报名功能并优化数据删除逻辑

- 新增活动报名实体和映射器依赖注入
- 在删除活动时同步删除相关报名记录(逻辑删除)
- 为报名详情VO添加报名人姓名和手机号字段
- 在查询报名详情时设置报名人姓名和手机号信息
- 记录活动报名数据删除数量的日志信息
fcw 2 bulan lalu
induk
melakukan
a17cf2bf70

+ 6 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/vo/StoreOperationalActivitySignupVO.java

@@ -46,6 +46,12 @@ public class StoreOperationalActivitySignupVO {
     @ApiModelProperty(value = "手机号")
     private String phone;
 
+    @ApiModelProperty(value = "报名人姓名(signupname)")
+    private String signupName;
+
+    @ApiModelProperty(value = "报名人手机号(signupphone)")
+    private String signupPhone;
+
     @ApiModelProperty(value = "所属活动")
     private String activityName;
 

+ 13 - 1
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/OperationalActivityServiceImpl.java

@@ -19,11 +19,13 @@ import org.springframework.util.MultiValueMap;
 import shop.alien.entity.store.LifeDiscountCoupon;
 import shop.alien.entity.store.StoreImg;
 import shop.alien.entity.storePlatform.StoreOperationalActivity;
+import shop.alien.entity.storePlatform.StoreOperationalActivitySignup;
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityDTO;
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityVO;
 import shop.alien.mapper.LifeDiscountCouponMapper;
 import shop.alien.mapper.StoreImgMapper;
 import shop.alien.mapper.storePlantform.StoreOperationalActivityMapper;
+import shop.alien.mapper.storePlantform.StoreOperationalActivitySignupMapper;
 import shop.alien.storeplatform.feign.AlienAIFeign;
 import shop.alien.storeplatform.service.OperationalActivityService;
 import shop.alien.storeplatform.util.AiContentModerationUtil;
@@ -61,6 +63,8 @@ public class OperationalActivityServiceImpl implements OperationalActivityServic
 
     private final LifeDiscountCouponMapper lifeDiscountCouponMapper;
 
+    private final StoreOperationalActivitySignupMapper signupMapper;
+
     private final AlienAIFeign alienAIFeign;
 
     private final RedissonClient redissonClient;
@@ -411,7 +415,15 @@ public class OperationalActivityServiceImpl implements OperationalActivityServic
             throw new IllegalArgumentException("活动ID不能为空");
         }
 
-        // 逻辑删除
+        // 先删除相关的报名人员(逻辑删除)
+        LambdaUpdateWrapper<StoreOperationalActivitySignup> signupWrapper = new LambdaUpdateWrapper<>();
+        signupWrapper.eq(StoreOperationalActivitySignup::getActivityId, id)
+                .eq(StoreOperationalActivitySignup::getDeleteFlag, 0)
+                .set(StoreOperationalActivitySignup::getDeleteFlag, 1);
+        int signupDeleteCount = signupMapper.update(null, signupWrapper);
+        log.info("删除活动相关报名人员数量: {}", signupDeleteCount);
+
+        // 逻辑删除活动
         return activityMapper.deleteById(id);
     }
 

+ 8 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/OperationalActivitySignupServiceImpl.java

@@ -93,6 +93,10 @@ public class OperationalActivitySignupServiceImpl implements OperationalActivity
             StoreOperationalActivitySignupVO vo = new StoreOperationalActivitySignupVO();
             BeanUtils.copyProperties(signup, vo);
 
+            // 设置报名人姓名和手机号(signupname 和 signupphone)
+            vo.setSignupName(signup.getUserName());
+            vo.setSignupPhone(signup.getPhone());
+
             // 查询活动名称和活动类型
             LambdaQueryWrapper<StoreOperationalActivity> activityWrapper = new LambdaQueryWrapper<>();
             activityWrapper.eq(StoreOperationalActivity::getId, signup.getActivityId())
@@ -140,6 +144,10 @@ public class OperationalActivitySignupServiceImpl implements OperationalActivity
         StoreOperationalActivitySignupVO vo = new StoreOperationalActivitySignupVO();
         BeanUtils.copyProperties(signup, vo);
 
+        // 设置报名人姓名和手机号(signupname 和 signupphone)
+        vo.setSignupName(signup.getUserName());
+        vo.setSignupPhone(signup.getPhone());
+
         // 查询活动名称和活动类型
         LambdaQueryWrapper<StoreOperationalActivity> activityWrapper = new LambdaQueryWrapper<>();
         activityWrapper.eq(StoreOperationalActivity::getId, signup.getActivityId())