|
@@ -1,15 +1,27 @@
|
|
|
package cn.iocoder.yudao.module.promotion.controller.app.bargain;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;
|
|
|
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
|
|
|
+import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
|
|
|
+import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
|
|
|
+import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
|
|
|
+import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
|
|
|
import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordCreateReqVO;
|
|
|
import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordDetailRespVO;
|
|
|
import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordRespVO;
|
|
|
import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordSummaryRespVO;
|
|
|
+import cn.iocoder.yudao.module.promotion.convert.bargain.BargainRecordConvert;
|
|
|
+import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
|
|
|
+import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainRecordDO;
|
|
|
+import cn.iocoder.yudao.module.promotion.enums.bargain.BargainRecordStatusEnum;
|
|
|
+import cn.iocoder.yudao.module.promotion.service.bargain.BargainActivityService;
|
|
|
import cn.iocoder.yudao.module.promotion.service.bargain.BargainRecordService;
|
|
|
+import cn.iocoder.yudao.module.trade.api.order.TradeOrderApi;
|
|
|
+import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
@@ -17,9 +29,12 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.Duration;
|
|
|
-import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
|
|
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
|
|
|
@Tag(name = "用户 App - 砍价记录")
|
|
@@ -30,25 +45,35 @@ public class AppBargainRecordController {
|
|
|
|
|
|
@Resource
|
|
|
private BargainRecordService bargainRecordService;
|
|
|
+ @Resource
|
|
|
+ private BargainActivityService bargainActivityService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private MemberUserApi memberUserApi;
|
|
|
+ @Resource
|
|
|
+ private ProductSpuApi productSpuApi;
|
|
|
+ @Resource
|
|
|
+ private TradeOrderApi tradeOrderApi;
|
|
|
|
|
|
@GetMapping("/get-summary")
|
|
|
@Operation(summary = "获得砍价记录的概要信息", description = "用于小程序首页")
|
|
|
- // TODO 芋艿:增加 @Cache 缓存,1 分钟过期
|
|
|
public CommonResult<AppBargainRecordSummaryRespVO> getBargainRecordSummary() {
|
|
|
- AppBargainRecordSummaryRespVO summary = new AppBargainRecordSummaryRespVO();
|
|
|
- summary.setUserCount(1024);
|
|
|
- summary.setSuccessRecords(new ArrayList<>());
|
|
|
- AppBargainRecordSummaryRespVO.Record record1 = new AppBargainRecordSummaryRespVO.Record();
|
|
|
- record1.setNickname("王**");
|
|
|
- record1.setAvatar("https://www.iocoder.cn/xxx.jpg");
|
|
|
- record1.setActivityName("天蚕土豆");
|
|
|
- AppBargainRecordSummaryRespVO.Record record2 = new AppBargainRecordSummaryRespVO.Record();
|
|
|
- record2.setNickname("张**");
|
|
|
- record2.setAvatar("https://www.iocoder.cn/yyy.jpg");
|
|
|
- record2.setActivityName("斗罗大陆");
|
|
|
- summary.getSuccessRecords().add(record1);
|
|
|
- summary.getSuccessRecords().add(record2);
|
|
|
- return success(summary);
|
|
|
+ // 砍价成功的用户数量
|
|
|
+ Integer successUserCount = bargainRecordService.getBargainRecordUserCount(
|
|
|
+ BargainRecordStatusEnum.SUCCESS.getStatus());
|
|
|
+ if (successUserCount == 0) {
|
|
|
+ return success(new AppBargainRecordSummaryRespVO().setSuccessUserCount(0)
|
|
|
+ .setSuccessList(Collections.emptyList()));
|
|
|
+ }
|
|
|
+ // 砍价成功的用户列表
|
|
|
+ List<BargainRecordDO> successList = bargainRecordService.getBargainRecordList(
|
|
|
+ BargainRecordStatusEnum.SUCCESS.getStatus(), 7);
|
|
|
+ List<BargainActivityDO> activityList = bargainActivityService.getBargainActivityList(
|
|
|
+ convertSet(successList, BargainRecordDO::getActivityId));
|
|
|
+ Map<Long, MemberUserRespDTO> userMap = memberUserApi.getUserMap(
|
|
|
+ convertSet(successList, BargainRecordDO::getUserId));
|
|
|
+ // 拼接返回
|
|
|
+ return success(BargainRecordConvert.INSTANCE.convert(successUserCount, successList, activityList, userMap));
|
|
|
}
|
|
|
|
|
|
@GetMapping("/get-detail")
|
|
@@ -75,72 +100,19 @@ public class AppBargainRecordController {
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得砍价记录的分页")
|
|
|
public CommonResult<PageResult<AppBargainRecordRespVO>> getBargainRecordPage(PageParam pageParam) {
|
|
|
- PageResult<AppBargainRecordRespVO> page = new PageResult<>();
|
|
|
- page.setList(new ArrayList<>());
|
|
|
- AppBargainRecordRespVO record1 = new AppBargainRecordRespVO();
|
|
|
- record1.setId(1L);
|
|
|
- record1.setUserId(1L);
|
|
|
- record1.setSpuId(1L);
|
|
|
- record1.setSkuId(1L);
|
|
|
- record1.setPrice(500);
|
|
|
- record1.setActivityId(1L);
|
|
|
- record1.setBargainPrice(150);
|
|
|
- record1.setPrice(200);
|
|
|
- record1.setPayPrice(180);
|
|
|
- record1.setStatus(1);
|
|
|
- record1.setPicUrl("https://static.iocoder.cn/mall/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg");
|
|
|
- record1.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2)));
|
|
|
- page.getList().add(record1);
|
|
|
-
|
|
|
- AppBargainRecordRespVO record2 = new AppBargainRecordRespVO();
|
|
|
- record2.setId(1L);
|
|
|
- record2.setUserId(1L);
|
|
|
- record2.setSpuId(1L);
|
|
|
- record2.setSkuId(1L);
|
|
|
- record2.setPrice(500);
|
|
|
- record2.setActivityId(1L);
|
|
|
- record2.setBargainPrice(150);
|
|
|
- record2.setPrice(200);
|
|
|
- record2.setPayPrice(280);
|
|
|
- record2.setStatus(2);
|
|
|
- record2.setPicUrl("https://static.iocoder.cn/mall/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg");
|
|
|
- record2.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2)));
|
|
|
- page.getList().add(record2);
|
|
|
-
|
|
|
- AppBargainRecordRespVO record3 = new AppBargainRecordRespVO();
|
|
|
- record3.setId(1L);
|
|
|
- record3.setUserId(1L);
|
|
|
- record3.setSpuId(1L);
|
|
|
- record3.setSkuId(1L);
|
|
|
- record3.setPrice(500);
|
|
|
- record3.setActivityId(1L);
|
|
|
- record3.setBargainPrice(150);
|
|
|
- record3.setPrice(200);
|
|
|
- record3.setPayPrice(380);
|
|
|
- record3.setStatus(2);
|
|
|
- record3.setPicUrl("https://static.iocoder.cn/mall/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg");
|
|
|
- record3.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2)));
|
|
|
- record3.setOrderId(100L);
|
|
|
- page.getList().add(record3);
|
|
|
-
|
|
|
- AppBargainRecordRespVO record4 = new AppBargainRecordRespVO();
|
|
|
- record4.setId(1L);
|
|
|
- record4.setUserId(1L);
|
|
|
- record4.setSpuId(1L);
|
|
|
- record4.setSkuId(1L);
|
|
|
- record4.setPrice(500);
|
|
|
- record4.setActivityId(1L);
|
|
|
- record4.setBargainPrice(150);
|
|
|
- record4.setPrice(200);
|
|
|
- record4.setPayPrice(380);
|
|
|
- record4.setStatus(3);
|
|
|
- record4.setPicUrl("https://static.iocoder.cn/mall/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg");
|
|
|
- record4.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2)));
|
|
|
- record4.setOrderId(100L);
|
|
|
- page.getList().add(record4);
|
|
|
+ PageResult<BargainRecordDO> pageResult = bargainRecordService.getBargainRecordPage(getLoginUserId(), pageParam);
|
|
|
+ if (CollUtil.isEmpty(pageResult.getList())) {
|
|
|
+ return success(PageResult.empty(pageResult.getTotal()));
|
|
|
+ }
|
|
|
|
|
|
- page.setTotal(1L);
|
|
|
- return success(page);
|
|
|
+ // 拼接数据
|
|
|
+ List<BargainActivityDO> activityList = bargainActivityService.getBargainActivityList(
|
|
|
+ convertSet(pageResult.getList(), BargainRecordDO::getActivityId));
|
|
|
+ List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(
|
|
|
+ convertSet(pageResult.getList(), BargainRecordDO::getSpuId));
|
|
|
+ List<TradeOrderRespDTO> orderList = tradeOrderApi.getOrderList(
|
|
|
+ convertSet(pageResult.getList(), BargainRecordDO::getOrderId));
|
|
|
+ return success(BargainRecordConvert.INSTANCE.convertPage02(pageResult, activityList, spuList, orderList));
|
|
|
}
|
|
|
|
|
|
@PostMapping("/create")
|