Bladeren bron

活动中奖数据导出

cup 2 jaren geleden
bovenliggende
commit
5ea5edf668

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

@@ -3,10 +3,13 @@ package com.qs.mp.web.controller.api.admin;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 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.excel.MarketingHitPrizeExcel;
 import com.qs.mp.admin.domain.param.MarketingCreateParam;
+import com.qs.mp.admin.domain.param.MarketingHitPrizeExportParam;
 import com.qs.mp.admin.domain.param.MarketingQueryParam;
 import com.qs.mp.admin.domain.param.MarketingUpdateParam;
 import com.qs.mp.admin.domain.vo.MarketingAwardsVO;
@@ -22,13 +25,17 @@ import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.BusinessType;
 import com.qs.mp.common.enums.MarketingStatusEnum;
 import com.qs.mp.common.enums.UserTypeEnum;
+import com.qs.mp.user.domain.MarketingHitPrize;
 import com.qs.mp.user.domain.MarketingUserCode;
+import com.qs.mp.user.service.IMarketingHitPrizeService;
 import com.qs.mp.user.service.IMarketingUserCodeService;
+import com.qs.mp.utils.ExcelUtil;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -41,6 +48,7 @@ import java.util.stream.Collectors;
 
 /**
  * 营销活动管理相关接口
+ *
  * @author Cup
  * @date 2022/5/16
  */
@@ -61,6 +69,9 @@ public class MarketingMgrController extends BaseApiController {
     @Autowired
     private IMarketingUserCodeService marketingUserCodeService;
 
+    @Autowired
+    private IMarketingHitPrizeService marketingHitPrizeService;
+
     @Log(title = "营销活动新增", businessType = BusinessType.INSERT)
     @ApiOperation(value = "营销活动新增")
     @PostMapping("/create")
@@ -82,11 +93,11 @@ public class MarketingMgrController extends BaseApiController {
     @PreAuthorize("@ss.hasPermi('business:marketing:list')")
     @ApiOperation("营销活动列表")
     @ApiResponses(
-            @ApiResponse(code = 200, message = "营销活动列表",response = MarketingListVO.class)
+            @ApiResponse(code = 200, message = "营销活动列表", response = MarketingListVO.class)
     )
     public TableDataInfo list(@RequestBody MarketingQueryParam marketingQueryParam) {
         startPage();
-        List<MarketingListVO> list =  marketingService.listMarketing(marketingQueryParam);
+        List<MarketingListVO> list = marketingService.listMarketing(marketingQueryParam);
         return getDataTable(list);
     }
 
@@ -94,7 +105,7 @@ public class MarketingMgrController extends BaseApiController {
     @PreAuthorize("@ss.hasPermi('business:marketing:query')")
     @ApiOperation("活动详情")
     @ApiResponses(
-            @ApiResponse(code = 200, message = "活动详情",response = MarketingVO.class)
+            @ApiResponse(code = 200, message = "活动详情", response = MarketingVO.class)
     )
     public AjaxResult detail(@PathVariable("id") Long id) {
         MarketingVO marketingVO = new MarketingVO();
@@ -188,7 +199,7 @@ public class MarketingMgrController extends BaseApiController {
     @PreAuthorize("@ss.hasPermi('business:marketing:queryData')")
     @ApiOperation("活动数据")
     @ApiResponses(
-            @ApiResponse(code = 200, message = "success",response = MarketingUserCodeListVO.class)
+            @ApiResponse(code = 200, message = "success", response = MarketingUserCodeListVO.class)
     )
     public TableDataInfo dataInfo(@PathVariable("id") Long id) {
         startPage();
@@ -203,4 +214,24 @@ public class MarketingMgrController extends BaseApiController {
         return getDataTable(list);
     }
 
+
+    @PostMapping("/export")
+    @PreAuthorize("@ss.hasPermi('business:marketing:export')")
+    @ApiOperation("活动中奖数据导出")
+    public AjaxResult export(@RequestBody MarketingHitPrizeExportParam marketingHitPrizeExportParam) {
+        QueryWrapper<MarketingHitPrize> queryWrapper = new QueryWrapper<>();
+        if (StringUtils.isNotBlank(marketingHitPrizeExportParam.getTitle())) {
+            queryWrapper.like("t2.title", marketingHitPrizeExportParam.getTitle());
+        }
+
+        List<MarketingHitPrizeExcel> exportList = marketingHitPrizeService.listHitPrizeExportByQueryWrapper(queryWrapper);
+        if (CollectionUtils.isEmpty(exportList)) {
+            return AjaxResult.error("没有符合条件的活动中奖数据");
+        }
+        ExcelUtil<MarketingHitPrizeExcel> util = new ExcelUtil<>(MarketingHitPrizeExcel.class);
+        return util.exportExcel(exportList, "活动中奖数据导出", false);
+
+
+    }
+
 }

+ 42 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/excel/MarketingHitPrizeExcel.java

@@ -0,0 +1,42 @@
+package com.qs.mp.admin.domain.excel;
+
+import com.qs.mp.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 活动中奖数据导出类
+ *
+ * @author Cup
+ * @date 2022/5/19
+ */
+@ApiModel("活动中奖数据导出类")
+@Data
+public class MarketingHitPrizeExcel {
+
+    @Excel(name = "活动名称")
+    private String title;
+
+    @Excel(name = "活动编号")
+    private Long marketingId;
+
+    @Excel(name = "开奖时间")
+    private Date endTime;
+
+    @Excel(name = "奖级")
+    private String awardsName;
+
+    @Excel(name = "奖品")
+    private String prizeTitle;
+
+    @Excel(name = "商品编号")
+    private String refId;
+
+    @Excel(name = "用户昵称")
+    private String nickName;
+
+    @Excel(name = "用户手机号")
+    private String userPhone;
+}

+ 20 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/MarketingHitPrizeExportParam.java

@@ -0,0 +1,20 @@
+package com.qs.mp.admin.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 活动中奖数据导出入参类
+ * @author Cup
+ * @date 2022/5/19
+ */
+@ApiModel("活动中奖数据导出入参类")
+@Data
+public class MarketingHitPrizeExportParam {
+
+
+    @ApiModelProperty("活动名称")
+    private String title;
+
+}

+ 8 - 0
mp-service/src/main/java/com/qs/mp/user/mapper/MarketingHitPrizeMapper.java

@@ -2,6 +2,7 @@ package com.qs.mp.user.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel;
 import com.qs.mp.user.domain.MarketingHitPrize;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qs.mp.user.domain.vo.UserMarketingHitPrizeListVO;
@@ -22,4 +23,11 @@ public interface MarketingHitPrizeMapper extends BaseMapper<MarketingHitPrize> {
      * @return
      */
     List<UserMarketingHitPrizeListVO> listHitPrizeByQueryWrapper(@Param(Constants.WRAPPER) QueryWrapper<MarketingHitPrize> queryWrapper);
+
+    /**
+     * 根据条件获取中奖信息导出列表
+     * @param queryWrapper
+     * @return
+     */
+    List<MarketingHitPrizeExcel> listHitPrizeExportByQueryWrapper(@Param(Constants.WRAPPER) QueryWrapper<MarketingHitPrize> queryWrapper);
 }

+ 8 - 0
mp-service/src/main/java/com/qs/mp/user/service/IMarketingHitPrizeService.java

@@ -1,6 +1,7 @@
 package com.qs.mp.user.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel;
 import com.qs.mp.user.domain.MarketingHitPrize;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qs.mp.user.domain.vo.UserMarketingHitPrizeListVO;
@@ -23,4 +24,11 @@ public interface IMarketingHitPrizeService extends IService<MarketingHitPrize> {
      * @return
      */
     List<UserMarketingHitPrizeListVO> listHitPrizeByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper);
+
+    /**
+     * 根据条件获取中奖信息导出列表
+     * @param queryWrapper
+     * @return
+     */
+    List<MarketingHitPrizeExcel> listHitPrizeExportByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper);
 }

+ 6 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/MarketingHitPrizeServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qs.mp.user.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel;
 import com.qs.mp.user.domain.MarketingHitPrize;
 import com.qs.mp.user.domain.vo.UserMarketingHitPrizeListVO;
 import com.qs.mp.user.mapper.MarketingHitPrizeMapper;
@@ -26,4 +27,9 @@ public class MarketingHitPrizeServiceImpl extends ServiceImpl<MarketingHitPrizeM
     public List<UserMarketingHitPrizeListVO> listHitPrizeByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper) {
         return getBaseMapper().listHitPrizeByQueryWrapper(queryWrapper);
     }
+
+    @Override
+    public List<MarketingHitPrizeExcel> listHitPrizeExportByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper) {
+        return getBaseMapper().listHitPrizeExportByQueryWrapper(queryWrapper);
+    }
 }

+ 17 - 0
mp-service/src/main/resources/mapper/user/MarketingHitPrizeMapper.xml

@@ -34,4 +34,21 @@
              left join mp_marketing_user_code t5 on t1.marketing_user_code_id = t5.id
         ${ew.customSqlSegment}
     </select>
+
+    <select id="listHitPrizeExportByQueryWrapper" resultType="com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel">
+        select t2.title,
+               t2.id marketingId,
+               t2.end_time,
+               t3.name awardsName,
+               t4.title prizeTitle,
+               t4.ref_id,
+               t5.nick_name,
+               t5.phonenumber userPhone
+        from mp_marketing_hit_prize t1
+                 left join mp_marketing t2 on t1.marketing_id = t2.id
+                 left join mp_marketing_awards t3 on t1.awards_id = t3.id
+                 left join mp_marketing_awards_prize t4 on t1.prize_id = t4.id
+                 left join sys_user t5 on t1.user_id = t5.user_id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>