Merge pull request '拼团和秒杀次数整合到get-detail接口' (#41) from cxw into master
All checks were successful
continuous-integration/drone/push Build is passing

Reviewed-on: #41
This commit is contained in:
root 2024-10-12 14:50:00 +08:00
commit ad20ae2c4b
5 changed files with 34 additions and 23 deletions

View File

@ -60,7 +60,7 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行
port: 22 # 远程连接端口
command_timeout: 10m # 远程执行命令超时时间
command_timeout: 30m # 远程执行命令超时时间
script:
# - ls

View File

@ -41,6 +41,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.cache.CacheUtils.buildAsyncReloadingCache;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@Tag(name = "用户 APP - 拼团活动")
@RestController
@ -134,16 +135,15 @@ public class AppCombinationActivityController {
// 2. 获取活动商品
List<CombinationProductDO> products = activityService.getCombinationProductsByActivityId(activity.getId());
return success(CombinationActivityConvert.INSTANCE.convert3(activity, products));
AppCombinationActivityDetailRespVO appCombinationActivityDetailRespVO = CombinationActivityConvert.INSTANCE.convert3(activity, products);
// 3.获取已购买数量
if (getLoginUserId() != null) {
int seckillProductCount = tradeOrderApi.getCombinationProductCount(getLoginUserId(), id);
// 总次数减去下单过的次数 得到剩余次数
appCombinationActivityDetailRespVO.setRemainingPurchases(Math.max(activity.getTotalLimitCount() - seckillProductCount, 0));
} else {
appCombinationActivityDetailRespVO.setRemainingPurchases(0);
}
@GetMapping("/getPurchaseTimes")
@Operation(summary = "获得剩余拼团购买次数")
public CommonResult<Integer> getSeckillActivityPage(AppCombinationActivityPurchasesTimesReqVO reqVO) {
// 1. 获取总限购数量
CombinationActivityDO combinationActivity = activityService.getCombinationActivity(reqVO.getActivityId());
// 2. 获取已购买数量
int seckillProductCount = tradeOrderApi.getCombinationProductCount(reqVO.getUserId(), reqVO.getActivityId());
// 3. 总次数减去下单过的次数 得到剩余次数
return success(Math.max(combinationActivity.getTotalLimitCount() - seckillProductCount, 0));
return success(appCombinationActivityDetailRespVO);
}
}

View File

@ -43,6 +43,9 @@ public class AppCombinationActivityDetailRespVO {
@Schema(description = "商品信息数组", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Product> products;
@Schema(description = "剩余购买次数", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer remainingPurchases;
@Schema(description = "商品信息")
@Data
public static class Product {

View File

@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;
import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
@ -49,6 +50,7 @@ import static cn.iocoder.yudao.framework.common.util.cache.CacheUtils.buildAsync
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.findFirst;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.isBetween;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.TIME_FORMAT_ERROR;
@Tag(name = "用户 App - 秒杀活动")
@ -85,6 +87,9 @@ public class AppSeckillActivityController {
@Resource
private TradeOrderApi tradeOrderApi;
@Resource
private MemberUserApi memberUserApi;
@GetMapping("/get-now")
@Operation(summary = "获得当前秒杀活动", description = "获取当前正在进行的活动,提供给首页使用")
public CommonResult<AppSeckillActivityNowRespVO> getNowSeckillActivity() {
@ -216,17 +221,17 @@ public class AppSeckillActivityController {
// 4. 拼接数据
List<SeckillProductDO> productList = activityService.getSeckillProductListByActivityId(activity.getId());
return success(SeckillActivityConvert.INSTANCE.convert3(activity, productList, startTime, endTime));
AppSeckillActivityDetailRespVO appSeckillActivityDetailRespVO = SeckillActivityConvert.INSTANCE.convert3(activity, productList, startTime, endTime);
// 5.获取已购买数量
if (getLoginUserId() != null) {
int seckillProductCount = tradeOrderApi.getSeckillProductCount(getLoginUserId(), id);
// 总次数减去下单过的次数 得到剩余次数
appSeckillActivityDetailRespVO.setRemainingPurchases(Math.max(activity.getTotalLimitCount() - seckillProductCount, 0));
} else {
appSeckillActivityDetailRespVO.setRemainingPurchases(0);
}
@GetMapping("/getPurchaseTimes")
@Operation(summary = "获得剩余秒杀购买次数")
public CommonResult<Integer> getSeckillActivityPage(AppSeckillPurchasesTimesReqVO reqVO) {
// 1. 获取总限购数量
SeckillActivityDO seckillActivity = activityService.getSeckillActivity(reqVO.getActivityId());
// 2. 获取已购买数量
int seckillProductCount = tradeOrderApi.getSeckillProductCount(reqVO.getUserId(), reqVO.getActivityId());
// 3. 总次数减去下单过的次数 得到剩余次数
return success(Math.max(seckillActivity.getTotalLimitCount() - seckillProductCount, 0));
return success(appSeckillActivityDetailRespVO);
}
}

View File

@ -43,6 +43,9 @@ public class AppSeckillActivityDetailRespVO {
@Schema(description = "商品信息数组", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Product> products;
@Schema(description = "剩余购买次数", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer remainingPurchases;
@Schema(description = "商品信息")
@Data
public static class Product {