|
@@ -3,15 +3,23 @@ package com.qs.mp.web.controller.api.user;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.qs.mp.admin.domain.Marketing;
|
|
import com.qs.mp.admin.domain.Marketing;
|
|
|
|
+import com.qs.mp.admin.domain.MarketingAwards;
|
|
|
|
+import com.qs.mp.admin.domain.MarketingAwardsPrize;
|
|
|
|
+import com.qs.mp.admin.domain.vo.MarketingAwardsVO;
|
|
|
|
+import com.qs.mp.admin.service.IMarketingAwardsPrizeService;
|
|
|
|
+import com.qs.mp.admin.service.IMarketingAwardsService;
|
|
import com.qs.mp.admin.service.IMarketingService;
|
|
import com.qs.mp.admin.service.IMarketingService;
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
import com.qs.mp.common.enums.MarketingStatusEnum;
|
|
import com.qs.mp.common.enums.MarketingStatusEnum;
|
|
import com.qs.mp.common.utils.DateUtils;
|
|
import com.qs.mp.common.utils.DateUtils;
|
|
import com.qs.mp.user.domain.MarketingHitPrize;
|
|
import com.qs.mp.user.domain.MarketingHitPrize;
|
|
|
|
+import com.qs.mp.user.domain.MarketingUserCode;
|
|
import com.qs.mp.user.domain.param.UserMarketingQueryParam;
|
|
import com.qs.mp.user.domain.param.UserMarketingQueryParam;
|
|
|
|
+import com.qs.mp.user.domain.vo.UserMarketingDetailVO;
|
|
import com.qs.mp.user.domain.vo.UserMarketingListVO;
|
|
import com.qs.mp.user.domain.vo.UserMarketingListVO;
|
|
import com.qs.mp.user.service.IMarketingHitPrizeService;
|
|
import com.qs.mp.user.service.IMarketingHitPrizeService;
|
|
|
|
+import com.qs.mp.user.service.IMarketingUserCodeService;
|
|
import com.qs.mp.utils.SecurityUtils;
|
|
import com.qs.mp.utils.SecurityUtils;
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
@@ -44,6 +52,15 @@ public class MarketingController extends BaseApiController {
|
|
@Autowired
|
|
@Autowired
|
|
private IMarketingHitPrizeService marketingHitPrizeService;
|
|
private IMarketingHitPrizeService marketingHitPrizeService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IMarketingAwardsService marketingAwardsService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IMarketingAwardsPrizeService marketingAwardsPrizeService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IMarketingUserCodeService marketingUserCodeService;
|
|
|
|
+
|
|
@PostMapping("list")
|
|
@PostMapping("list")
|
|
@ApiOperation("获取营销活动列表")
|
|
@ApiOperation("获取营销活动列表")
|
|
@ApiResponses(
|
|
@ApiResponses(
|
|
@@ -86,6 +103,52 @@ public class MarketingController extends BaseApiController {
|
|
return getDataTable(userMarketingListVOList);
|
|
return getDataTable(userMarketingListVOList);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @PostMapping("/detail/{id}")
|
|
|
|
+ @ApiOperation("活动详情")
|
|
|
|
+ @ApiResponses(
|
|
|
|
+ @ApiResponse(code = 200, message = "成功", response = UserMarketingDetailVO.class)
|
|
|
|
+ )
|
|
|
|
+ public AjaxResult detail(@PathVariable("id") Long id) {
|
|
|
|
+ Long userId = SecurityUtils.getLoginUser().getUserId();
|
|
|
|
+
|
|
|
|
+ Marketing marketing = marketingService.getById(id);
|
|
|
|
+ if (Objects.isNull(marketing)) {
|
|
|
|
+ return AjaxResult.error("活动不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ UserMarketingDetailVO userMarketingDetailVO = new UserMarketingDetailVO();
|
|
|
|
+ BeanUtils.copyProperties(marketing, userMarketingDetailVO);
|
|
|
|
+
|
|
|
|
+ List<MarketingAwards> awardsList = marketingAwardsService.list(new LambdaQueryWrapper<MarketingAwards>().eq(MarketingAwards::getMarketingId, id));
|
|
|
|
+ if (CollectionUtils.isNotEmpty(awardsList)) {
|
|
|
|
+ List<MarketingAwardsVO> list = awardsList.stream().map(marketingAwards -> {
|
|
|
|
+ MarketingAwardsVO marketingAwardsVO = new MarketingAwardsVO();
|
|
|
|
+ BeanUtils.copyProperties(marketingAwards, marketingAwardsVO);
|
|
|
|
+
|
|
|
|
+ // 获取奖品信息
|
|
|
|
+ List<MarketingAwardsPrize> prizeList = marketingAwardsPrizeService.list(new LambdaQueryWrapper<MarketingAwardsPrize>()
|
|
|
|
+ .eq(MarketingAwardsPrize::getMarketingId, id)
|
|
|
|
+ .eq(MarketingAwardsPrize::getAwardsId, marketingAwards.getId()));
|
|
|
|
+ marketingAwardsVO.setPrizeList(prizeList);
|
|
|
|
+ return marketingAwardsVO;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ userMarketingDetailVO.setAwardsList(list);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 设置抽奖码列表
|
|
|
|
+ List<MarketingUserCode> codeList = marketingUserCodeService.list(new LambdaQueryWrapper<MarketingUserCode>()
|
|
|
|
+ .select(MarketingUserCode::getCode)
|
|
|
|
+ .eq(MarketingUserCode::getMarketingId, id)
|
|
|
|
+ .eq(MarketingUserCode::getUserId, userId));
|
|
|
|
+
|
|
|
|
+ if (CollectionUtils.isNotEmpty(codeList)) {
|
|
|
|
+ userMarketingDetailVO.setCodeList(codeList.stream().map(MarketingUserCode::getCode).collect(Collectors.toList()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return AjaxResult.success(userMarketingDetailVO);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|