cup 2 anni fa
parent
commit
102a889f69

+ 52 - 4
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/MarketingMgrController.java

@@ -1,9 +1,18 @@
 package com.qs.mp.web.controller.api.admin;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.TicketAwards;
 import com.qs.mp.admin.domain.param.MarketingCreateParam;
 import com.qs.mp.admin.domain.param.MarketingQueryParam;
 import com.qs.mp.admin.domain.param.MarketingUpdateParam;
+import com.qs.mp.admin.domain.vo.MarketingAwardsVO;
 import com.qs.mp.admin.domain.vo.MarketingListVO;
+import com.qs.mp.admin.domain.vo.MarketingVO;
+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.common.annotation.Log;
 import com.qs.mp.common.core.domain.AjaxResult;
@@ -14,15 +23,15 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 营销活动管理相关接口
@@ -37,6 +46,12 @@ public class MarketingMgrController extends BaseApiController {
     @Autowired
     private IMarketingService marketingService;
 
+    @Autowired
+    private IMarketingAwardsService marketingAwardsService;
+
+    @Autowired
+    private IMarketingAwardsPrizeService marketingAwardsPrizeService;
+
     @Log(title = "营销活动新增", businessType = BusinessType.INSERT)
     @ApiOperation(value = "营销活动新增")
     @PostMapping("/create")
@@ -66,4 +81,37 @@ public class MarketingMgrController extends BaseApiController {
         return getDataTable(list);
     }
 
+    @PostMapping("/detail/{id}")
+    @PreAuthorize("@ss.hasPermi('business:marketing:query')")
+    @ApiOperation("活动详情")
+    @ApiResponses(
+            @ApiResponse(code = 200, message = "活动详情",response = MarketingVO.class)
+    )
+    public AjaxResult detail(@PathVariable("id") Long id) {
+        MarketingVO marketingVO = new MarketingVO();
+        Marketing marketing = marketingService.getById(id);
+        if (Objects.isNull(marketing)) {
+            return AjaxResult.error("活动信息不存在");
+        }
+        BeanUtils.copyProperties(marketing, marketingVO);
+
+        // 获取奖级信息
+        List<MarketingAwards> marketingAwardsList = marketingAwardsService.list(new LambdaQueryWrapper<MarketingAwards>()
+                .eq(MarketingAwards::getMarketingId, id)
+                .orderByAsc(MarketingAwards::getSort));
+
+        List<MarketingAwardsVO> marketingAwardsVOS = marketingAwardsList.stream().map(marketingAwards -> {
+            MarketingAwardsVO marketingAwardsVO = new MarketingAwardsVO();
+            BeanUtils.copyProperties(marketingAwards, marketingAwardsVO);
+            List<MarketingAwardsPrize> marketingAwardsPrizeList = marketingAwardsPrizeService.list(new LambdaQueryWrapper<MarketingAwardsPrize>()
+                    .eq(MarketingAwardsPrize::getAwardsId, marketingAwards.getId()));
+            marketingAwardsVO.setPrizeList(marketingAwardsPrizeList);
+            return marketingAwardsVO;
+        }).collect(Collectors.toList());
+
+        marketingVO.setAwardsList(marketingAwardsVOS);
+
+        return AjaxResult.success(marketingVO);
+    }
+
 }

+ 23 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/MarketingAwardsVO.java

@@ -0,0 +1,23 @@
+package com.qs.mp.admin.domain.vo;
+
+import com.qs.mp.admin.domain.MarketingAwards;
+import com.qs.mp.admin.domain.MarketingAwardsPrize;
+import com.qs.mp.admin.domain.TicketAwardsPrize;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 营销活动奖项出参类
+ * @author Cup
+ * @date 2022/5/16
+ */
+@ApiModel("营销活动奖项出参类")
+@Data
+public class MarketingAwardsVO extends MarketingAwards {
+
+    @ApiModelProperty("奖品列表")
+    List<MarketingAwardsPrize> prizeList;
+}

+ 23 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/MarketingVO.java

@@ -0,0 +1,23 @@
+package com.qs.mp.admin.domain.vo;
+
+import com.qs.mp.admin.domain.Marketing;
+import com.qs.mp.admin.domain.MarketingAwards;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 营销活动详情出参类
+ * @author Cup
+ * @date 2022/5/16
+ */
+@ApiModel("营销活动详情出参类")
+@Data
+public class MarketingVO extends Marketing {
+
+    @ApiModelProperty("奖级列表(后台显示)")
+    List<MarketingAwardsVO> awardsList;
+
+}