zjy 3 nedēļas atpakaļ
vecāks
revīzija
1a27a195cd

+ 9 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/LifeCouponPlatformController.java

@@ -229,6 +229,15 @@ public class LifeCouponPlatformController {
         return R.fail("失败");
     }
 
+    /**
+     * 查询代金券、优惠券列表
+     * 根据条件查询列表
+     *
+     * @param lifeCouponPlatformVo 查询条件
+     * @return R 操作结果
+     * @author alien-cloud
+     * @date 2025-11-18
+     */
     @ApiOperation("代金劵/优惠券列表")
     @PostMapping("/getCouponList")
     private R<DiscountCouponPlatformVo> getCouponList(@ApiIgnore @TokenInfo UserLoginInfo userLoginInfo,

+ 61 - 5
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/LifeDiscountCouponPlatformController.java

@@ -13,12 +13,12 @@ import shop.alien.util.common.TokenInfo;
 import springfox.documentation.annotations.ApiIgnore;
 
 /**
- * <p>
- * 优惠券表 前端控制器 - Platform
- * </p>
+ * 优惠券管理控制器(平台端)
+ * 提供优惠券相关的管理接口,包括优惠券的创建、更新、删除、查询、状态切换等功能
+ * 支持优惠券库存管理、状态管理、规则配置等操作
  *
  * @author ssk
- * @since 2025-02-07
+ * @date 2025-02-07
  */
 @Api(tags = {"商家端-优惠券"})
 @Slf4j
@@ -30,6 +30,16 @@ public class LifeDiscountCouponPlatformController {
 
     private final LifeDiscountCouponPlatformService lifeDiscountCouponPlatformService;
 
+    /**
+     * 发布优惠券
+     * 创建新的优惠券,包括基本信息、规则配置、时间段限制等
+     *
+     * @param userLoginInfo 当前登录用户信息
+     * @param lifeDiscountCouponDto 优惠券信息对象
+     * @return R<Boolean> 操作结果
+     * @author ssk
+     * @date 2025-02-07
+     */
     @ApiOperation("发布优惠券")
     @ApiOperationSupport(order = 1)
     @PostMapping("/addDiscountCoupon")
@@ -47,6 +57,15 @@ public class LifeDiscountCouponPlatformController {
         return R.success("发布成功");
     }
 
+    /**
+     * 修改优惠券信息
+     * 更新已存在的优惠券信息,包括基本信息、规则配置、时间段限制等
+     *
+     * @param lifeDiscountCouponDto 优惠券信息对象
+     * @return R<Boolean> 操作结果
+     * @author ssk
+     * @date 2025-02-07
+     */
     @ApiOperation("修改优惠券信息")
     @ApiOperationSupport(order = 2)
     @PostMapping("/editDiscountCoupon")
@@ -64,6 +83,15 @@ public class LifeDiscountCouponPlatformController {
         return R.success("修改成功");
     }
 
+    /**
+     * 删除优惠券信息
+     * 根据优惠券ID删除优惠券及其关联的规则信息
+     *
+     * @param id 优惠券ID
+     * @return R<Boolean> 操作结果
+     * @author ssk
+     * @date 2025-02-07
+     */
     @ApiOperation("删除优惠券信息")
     @ApiOperationSupport(order = 3)
     @GetMapping("/deleteDiscountCoupon")
@@ -81,6 +109,15 @@ public class LifeDiscountCouponPlatformController {
         return R.success("删除成功");
     }
 
+    /**
+     * 切换优惠券进行状态
+     * 切换优惠券的可领取状态(启用/暂停)
+     *
+     * @param counponId 优惠券ID
+     * @return R<Boolean> 操作结果
+     * @author ssk
+     * @date 2025-02-07
+     */
     @ApiOperation("切换优惠券进行状态")
     @ApiOperationSupport(order = 4)
     @GetMapping("/cutDiscountCouponStatus")
@@ -101,6 +138,16 @@ public class LifeDiscountCouponPlatformController {
         return R.success("切换成功");
     }
 
+    /**
+     * 获取该优惠券的明细信息
+     * 根据优惠券ID查询优惠券的详细信息,包括规则配置、时间段限制等
+     *
+     * @param userLoginInfo 当前登录用户信息
+     * @param counponId 优惠券ID
+     * @return R<LifeDiscountCouponVo> 优惠券详情
+     * @author ssk
+     * @date 2025-02-07
+     */
     @ApiOperation("获取该优惠券的明细信息")
     @ApiOperationSupport(order = 5)
     @GetMapping("/getCounponDetailById")
@@ -119,7 +166,16 @@ public class LifeDiscountCouponPlatformController {
         }
     }
 
-
+    /**
+     * 修改优惠券库存
+     * 更新指定优惠券的库存数量
+     *
+     * @param id 优惠券ID
+     * @param singleQty 库存数量
+     * @return R<Boolean> 操作结果
+     * @author ssk
+     * @date 2025-02-07
+     */
     @ApiOperation("修改优惠券库存")
     @ApiOperationSupport(order = 2)
     @GetMapping("/updateCouponSingleQty")

+ 41 - 4
alien-store-platform/src/main/java/shop/alien/storeplatform/service/LifeDiscountCouponPlatformService.java

@@ -14,9 +14,8 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * <p>
- * 优惠券表 服务类 - Platform
- * </p>
+ * 优惠券服务接口(平台端)
+ * 提供优惠券相关的业务逻辑处理,包括优惠券的创建、更新、删除、查询等功能
  *
  * @author ssk
  * @since 2025-02-07
@@ -25,34 +24,72 @@ public interface LifeDiscountCouponPlatformService extends IService<LifeDiscount
 
     /**
      * 发布优惠券
+     * 创建新的优惠券,包括基本信息、规则配置、时间段限制等
+     *
+     * @param lifeDiscountCouponDto 优惠券信息对象
+     * @return boolean 操作结果,true-成功,false-失败
      */
     boolean addDiscountCoupon(LifeDiscountCouponDto lifeDiscountCouponDto);
 
     /**
      * 修改优惠券
+     * 更新已存在的优惠券信息,包括基本信息、规则配置、时间段限制等
+     *
+     * @param lifeDiscountCouponDto 优惠券信息对象
+     * @return boolean 操作结果,true-成功,false-失败
      */
     boolean editDiscountCoupon(LifeDiscountCouponDto lifeDiscountCouponDto);
 
-
+    /**
+     * 修改优惠券库存数量
+     * 更新指定优惠券的库存数量
+     *
+     * @param id 优惠券ID
+     * @param singleQty 库存数量
+     * @return boolean 操作结果,true-成功,false-失败
+     */
     boolean updateCouponSingleQty(Integer id, Integer singleQty);
 
     /**
      * 删除优惠券
+     * 根据优惠券ID删除优惠券及其关联的规则信息
+     *
+     * @param id 优惠券ID
+     * @return boolean 操作结果,true-成功,false-失败
      */
     boolean deleteDiscountCoupon(Integer id);
 
     /**
      * 切换优惠券进行状态
+     * 切换优惠券的可领取状态(启用/暂停)
+     *
+     * @param counponId 优惠券ID
+     * @return boolean 操作结果,true-成功,false-失败
      */
     boolean cutDiscountCouponStatus(String counponId);
 
     /**
      * 获取该优惠券的明细信息
+     * 根据优惠券ID查询优惠券的详细信息,包括规则配置、时间段限制等
+     *
+     * @param counponId 优惠券ID
+     * @param userLoginInfo 当前登录用户信息
+     * @return LifeDiscountCouponVo 优惠券详情对象
      */
     LifeDiscountCouponVo getCounponDetailById(String counponId, UserLoginInfo userLoginInfo);
 
     /**
      * 获取所有优惠券列表(分页)
+     * 根据条件查询店铺的优惠券列表,支持按名称、状态等条件筛选
+     *
+     * @param storeId 店铺ID
+     * @param userLoginInfo 当前登录用户信息
+     * @param page 页码
+     * @param size 每页数量
+     * @param couponName 优惠券名称(模糊查询)
+     * @param couponsFromType 优惠券来源类型
+     * @param couponStatus 优惠券状态(1:进行中, 2:已结束, 3:已暂停)
+     * @return IPage<LifeDiscountCouponVo> 分页优惠券列表
      */
     IPage<LifeDiscountCouponVo> getStoreAllCouponList(String storeId, UserLoginInfo userLoginInfo, int page, int size, String couponName, Integer couponsFromType, Integer couponStatus);
 

+ 0 - 13
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/LifeCouponPlatformServiceImpl.java

@@ -2,29 +2,21 @@ package shop.alien.storeplatform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.*;
-import shop.alien.entity.store.dto.LifeDiscountCouponStoreFriendDto;
-import shop.alien.entity.store.vo.LifeCouponStatusVo;
 import shop.alien.entity.storePlatform.vo.LifeCouponPlatformDto;
 import shop.alien.mapper.*;
 import shop.alien.storeplatform.service.LifeCouponPlatformService;
 import shop.alien.util.common.UniqueRandomNumGenerator;
-import shop.alien.util.common.constant.OrderStatusEnum;
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.SimpleDateFormat;
 import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.time.format.TextStyle;
@@ -47,20 +39,15 @@ public class LifeCouponPlatformServiceImpl extends ServiceImpl<LifeCouponMapper,
 
     private final LifeUserOrderMapper lifeUserOrderMapper;
 
-    private final StoreIncomeDetailsRecordMapper storeIncomeDetailsRecordMapper;
-
     private final StoreDictionaryMapper storeDictionaryMapper;
 
     private final EssentialHolidayComparisonMapper essentialHolidayComparisonMapper;
 
-    private final StoreUserMapper storeUserMapper;
 
     private final OrderCouponMiddleMapper orderCouponMiddleMapper;
 
     private final LifeGroupBuyMainMapper lifeGroupBuyMainMapper;
 
-    private final LifeDiscountCouponMapper lifeDiscountCouponMapper;
-
     /**
      * 新增或更新优惠券
      * 根据优惠券是否存在ID判断是新增还是更新操作

+ 103 - 6
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/LifeDiscountCouponPlatformServiceImpl.java

@@ -27,12 +27,12 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 /**
- * <p>
- * 优惠券表 服务实现类
- * </p>
+ * 优惠券服务实现类(平台端)
+ * 实现优惠券相关的业务逻辑处理,包括优惠券的创建、更新、删除、查询等功能
+ * 支持优惠券规则配置、时间段限制、库存管理等
  *
- * @author ssk
- * @since 2025-02-07
+ * @author zjy
+ * @since 2025-11-19
  */
 @Service
 @RequiredArgsConstructor
@@ -48,6 +48,20 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
 
     private final LifeDiscountCouponUserMapper lifeDiscountCouponUserMapper;
 
+    /**
+     * 发布优惠券
+     * 创建新的优惠券,包括以下功能:
+     * 1. 保存优惠券基本信息
+     * 2. 根据时间判断并设置可领取状态
+     * 3. 计算并设置优惠券有效期
+     * 4. 保存周中不可用规则
+     * 5. 保存节假日不可用规则
+     * 6. 保存领取规则
+     * 7. 保存指定时间段可用/不可用规则
+     *
+     * @param lifeDiscountCouponDto 优惠券信息对象
+     * @return boolean 操作结果,true-成功,false-失败
+     */
     @Override
     public boolean addDiscountCoupon(LifeDiscountCouponDto lifeDiscountCouponDto) {
         try {
@@ -138,6 +152,18 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
         return true;
     }
 
+    /**
+     * 修改优惠券
+     * 更新已存在的优惠券信息,包括以下功能:
+     * 1. 更新优惠券基本信息
+     * 2. 重新计算可领取状态
+     * 3. 重新计算有效期
+     * 4. 删除并重新保存所有规则信息(周中规则、节假日规则、领取规则)
+     * 5. 删除并重新保存时间段规则
+     *
+     * @param lifeDiscountCouponDto 优惠券信息对象
+     * @return boolean 操作结果,true-成功,false-失败
+     */
     @Override
     public boolean editDiscountCoupon(LifeDiscountCouponDto lifeDiscountCouponDto) {
         try {
@@ -237,6 +263,13 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
         return true;
     }
 
+    /**
+     * 删除优惠券
+     * 删除优惠券及其关联的所有规则信息
+     *
+     * @param id 优惠券ID
+     * @return boolean 操作结果,true-成功,false-失败
+     */
     @Override
     public boolean deleteDiscountCoupon(Integer id) {
         //删除优惠券表信息
@@ -246,11 +279,27 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
         return true;
     }
 
+    /**
+     * 修改优惠券库存数量
+     * 直接更新指定优惠券的库存数量
+     *
+     * @param id 优惠券ID
+     * @param singleQty 库存数量
+     * @return boolean 操作结果,true-成功,false-失败
+     */
     @Override
     public boolean updateCouponSingleQty(Integer id, Integer singleQty) {
         return lifeDiscountCouponMapper.updateCouponById(id, singleQty) > 0;
     }
 
+    /**
+     * 切换优惠券进行状态
+     * 切换优惠券的可领取状态(启用/暂停)
+     * 如果当前状态为不可领取,切换为可领取时会设置开始领取时间为当前日期
+     *
+     * @param counponId 优惠券ID
+     * @return boolean 操作结果,true-成功,false-失败
+     */
     @Override
     public boolean cutDiscountCouponStatus(String counponId) {
         LifeDiscountCoupon lifeDiscountCoupon = lifeDiscountCouponMapper.selectById(counponId);
@@ -266,6 +315,20 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
         return true;
     }
 
+    /**
+     * 获取该优惠券的明细信息
+     * 根据优惠券ID查询优惠券的详细信息,包括:
+     * 1. 优惠券基本信息
+     * 2. 周中不可用规则列表
+     * 3. 节假日不可用规则列表
+     * 4. 领取规则
+     * 5. 指定时间段可用规则列表
+     * 6. 自定义时间段不可用规则列表
+     *
+     * @param counponId 优惠券ID
+     * @param userLoginInfo 当前登录用户信息
+     * @return LifeDiscountCouponVo 优惠券详情对象
+     */
     @Override
     public LifeDiscountCouponVo getCounponDetailById(String counponId, UserLoginInfo userLoginInfo) {
         LifeDiscountCoupon lifeDiscountCoupon = lifeDiscountCouponMapper.selectById(counponId);
@@ -314,6 +377,14 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
         return lifeDiscountCouponVo;
     }
 
+    /**
+     * 日期增加天数(Java 8方式)
+     * 使用Java 8的日期API为指定日期增加天数
+     *
+     * @param date 原始日期
+     * @param days 要增加的天数
+     * @return Date 增加后的日期
+     */
     public static Date addDaysToDateJava8(Date date, int days) {
         // 将Date转换为Instant
         Instant instant = date.toInstant();
@@ -326,7 +397,13 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
         return Date.from(newLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
     }
 
-    //获取纯日期
+    /**
+     * 获取纯日期
+     * 将日期时间转换为纯日期(时间部分设置为00:00:00)
+     *
+     * @param date 原始日期时间
+     * @return Date 纯日期(时间为00:00:00)
+     */
     public static Date getPureDate(Date date) {
         Instant instant = date.toInstant();
         LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
@@ -334,6 +411,26 @@ public class LifeDiscountCouponPlatformServiceImpl extends ServiceImpl<LifeDisco
         return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
     }
 
+    /**
+     * 获取所有优惠券列表(分页)
+     * 根据条件查询店铺的优惠券列表,支持按名称、状态等条件筛选
+     * 主要功能:
+     * 1. 按优惠券名称模糊查询
+     * 2. 按状态筛选(进行中/已结束/已暂停)
+     * 3. 计算每个优惠券的当前状态(草稿/进行中/已结束/未开始/已暂停/已售罄)
+     * 4. 查询优惠券的规则配置信息
+     * 5. 统计优惠券已领取数量
+     * 6. 支持分页查询
+     *
+     * @param storeId 店铺ID
+     * @param userLoginInfo 当前登录用户信息
+     * @param page 页码
+     * @param size 每页数量
+     * @param couponName 优惠券名称(模糊查询)
+     * @param couponsFromType 优惠券来源类型
+     * @param couponStatus 优惠券状态(1:进行中, 2:已结束, 3:已暂停)
+     * @return IPage<LifeDiscountCouponVo> 分页优惠券列表
+     */
     @Override
     public IPage<LifeDiscountCouponVo> getStoreAllCouponList(String storeId, UserLoginInfo userLoginInfo, int page, int size, String couponName, Integer couponsFromType, Integer couponStatus) {