From 803a61d1d89e75f0b5d72785069b3dceb579f3ca Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期三, 27 八月 2025 10:25:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 manager-api/src/main/java/cn/lili/controller/lmk/PrizeGrantRecordController.java                    |   39 ++++
 framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeGrantRecordExportDetailDtO.java |   33 ++++
 framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeRecordServiceImpl.java                |   97 ++++++++++++
 framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeGrantRecordMapper.java                      |    1 
 framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeGrantRecordQuery.java                 |    7 
 framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeGrantRecordServiceImpl.java           |   74 +++++++++
 framework/src/main/resources/mapper/lmk/PrizeGrantRecordMapper.xml                                  |   37 ++++
 framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeRecordVO.java                            |    4 
 framework/src/main/java/cn/lili/modules/lmk/service/PrizeGrantRecordService.java                    |    4 
 framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeRecordExportDetailDTO.java      |   40 +++++
 manager-api/src/main/java/cn/lili/controller/lmk/PrizeRecordController.java                         |   40 +++++
 framework/src/main/java/cn/lili/modules/lmk/service/PrizeRecordService.java                         |    5 
 framework/src/main/resources/mapper/lmk/PrizeRecordMapper.xml                                       |   46 +++++
 framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeRecordQuery.java                      |    8 +
 framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeRecordMapper.java                           |    3 
 15 files changed, 436 insertions(+), 2 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeGrantRecordQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeGrantRecordQuery.java
index 4c4b3d3..9f33d16 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeGrantRecordQuery.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeGrantRecordQuery.java
@@ -18,5 +18,12 @@
 @Data
 @ApiModel(value = "PrizeGrantRecord鏌ヨ鍙傛暟", description = "濂栧搧鍙戞斁璁板綍鏌ヨ鍙傛暟")
 public class PrizeGrantRecordQuery extends AbsQuery {
+    //鐢ㄦ埛鏄电О
+    private String nickName;
+    //娲诲姩鍚�
+    private String activityName;
+    //涓鐘舵��
+    private String grantStatus;
+
 }
 
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeRecordQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeRecordQuery.java
index e05030d..7d73c10 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeRecordQuery.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeRecordQuery.java
@@ -18,5 +18,13 @@
 @Data
 @ApiModel(value = "PrizeRecord鏌ヨ鍙傛暟", description = "鐢ㄦ埛鎶藉璁板綍琛ㄦ煡璇㈠弬鏁�")
 public class PrizeRecordQuery extends AbsQuery {
+    //鐢ㄦ埛鏄电О
+    private String nickName;
+    //娲诲姩鍚�
+    private String activityName;
+    //涓鐘舵��
+    private String prizeStatus;
+
+    private String distributeStatus;
 }
 
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeRecordVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeRecordVO.java
index f7cb1af..7f6c04a 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeRecordVO.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeRecordVO.java
@@ -64,6 +64,10 @@
     @ApiModelProperty("娲诲姩濂栧搧鍏宠仈琛╥d")
     private Long activityPrizeRefId;
 
+    private String prizeActivityCoverUrl;
+
+    private String prizeImgUrl;
+
     /** 濂栧搧鍙戞斁鐘舵�� */
     private String distributeStatus;
 
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeGrantRecordMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeGrantRecordMapper.java
index 5c491e2..d16de98 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeGrantRecordMapper.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeGrantRecordMapper.java
@@ -31,4 +31,5 @@
     */
     IPage getPage(IPage page, @Param("query") PrizeGrantRecordQuery query);
 
+    List<PrizeGrantRecordVO> getExportData(@Param("query") PrizeGrantRecordQuery query);
 }
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeRecordMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeRecordMapper.java
index 4a894f2..43cea81 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeRecordMapper.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/PrizeRecordMapper.java
@@ -1,6 +1,7 @@
 package cn.lili.modules.lmk.mapper;
 
 import cn.lili.modules.lmk.domain.entity.PrizeRecord;
+import cn.lili.modules.lmk.domain.query.PrizeGrantRecordQuery;
 import cn.lili.modules.lmk.domain.query.PrizeRecordTimeQuery;
 import cn.lili.modules.lmk.domain.vo.PrizeRecordTimeVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -34,4 +35,6 @@
     IPage getPage(IPage page, @Param("query") PrizeRecordQuery query);
 
     List<PrizeRecordTimeVO> getPrizeRecordListByTime(@Param("query") PrizeRecordTimeQuery query);
+
+    List<PrizeRecordVO> getExportData(@Param("query")PrizeRecordQuery query);
 }
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/PrizeGrantRecordService.java b/framework/src/main/java/cn/lili/modules/lmk/service/PrizeGrantRecordService.java
index a1760c6..7ed9071 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/PrizeGrantRecordService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/PrizeGrantRecordService.java
@@ -5,6 +5,8 @@
 import cn.lili.base.Result;
 import cn.lili.modules.lmk.domain.form.PrizeGrantRecordForm;
 import cn.lili.modules.lmk.domain.query.PrizeGrantRecordQuery;
+
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -15,6 +17,8 @@
  */
 public interface PrizeGrantRecordService extends IService<PrizeGrantRecord> {
 
+    void queryExportStock(HttpServletResponse response, PrizeGrantRecordQuery query);
+
     /**
      * 娣诲姞
      * @param form
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/PrizeRecordService.java b/framework/src/main/java/cn/lili/modules/lmk/service/PrizeRecordService.java
index 34c9027..de3cdb6 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/PrizeRecordService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/PrizeRecordService.java
@@ -1,12 +1,15 @@
 package cn.lili.modules.lmk.service;
 
 import cn.lili.modules.lmk.domain.entity.PrizeRecord;
+import cn.lili.modules.lmk.domain.query.PrizeGrantRecordQuery;
 import cn.lili.modules.lmk.domain.query.PrizeRecordTimeQuery;
 import cn.lili.modules.lmk.domain.vo.PrizeRecordTimeVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import cn.lili.base.Result;
 import cn.lili.modules.lmk.domain.form.PrizeRecordForm;
 import cn.lili.modules.lmk.domain.query.PrizeRecordQuery;
+
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -17,6 +20,8 @@
  */
 public interface PrizeRecordService extends IService<PrizeRecord> {
 
+    void queryExportStock(HttpServletResponse response, PrizeRecordQuery query);
+
     /**
      * 娣诲姞
      * @param form
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeGrantRecordServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeGrantRecordServiceImpl.java
index 78f34d3..8868c61 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeGrantRecordServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeGrantRecordServiceImpl.java
@@ -1,5 +1,7 @@
 package cn.lili.modules.lmk.service.impl;
 
+import cn.lili.modules.lmk.enums.general.PrizeGrantStatusEnums;
+import cn.lili.modules.order.order.entity.dto.PrizeGrantRecordExportDetailDtO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import cn.lili.modules.lmk.domain.entity.PrizeGrantRecord;
 import cn.lili.modules.lmk.mapper.PrizeGrantRecordMapper;
@@ -9,12 +11,20 @@
 import cn.lili.modules.lmk.domain.form.PrizeGrantRecordForm;
 import cn.lili.modules.lmk.domain.vo.PrizeGrantRecordVO;
 import cn.lili.modules.lmk.domain.query.PrizeGrantRecordQuery;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 import cn.lili.utils.PageUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.Assert;
 
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -30,6 +40,70 @@
 
     private final PrizeGrantRecordMapper prizeGrantRecordMapper;
 
+    @Override
+    public void queryExportStock(HttpServletResponse response, PrizeGrantRecordQuery query){
+        List<PrizeGrantRecordVO> list = baseMapper.getExportData(query);
+        XSSFWorkbook workbook = initExportData(list);
+        try {
+            // 璁剧疆鍝嶅簲澶�
+            String fileName = URLEncoder.encode("濂栧搧鍙戞斁璁板綍", "UTF-8");
+            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
+
+            ServletOutputStream out = response.getOutputStream();
+            workbook.write(out);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                workbook.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+    private XSSFWorkbook initExportData(List<PrizeGrantRecordVO> list){
+        List<PrizeGrantRecordExportDetailDtO> exportDetailDtOS = new ArrayList<>();
+        for (PrizeGrantRecordVO vo : list){
+            PrizeGrantRecordExportDetailDtO detailDtO = new PrizeGrantRecordExportDetailDtO();
+            BeanUtils.copyProperties(vo,detailDtO);
+            exportDetailDtOS.add(detailDtO);
+        }
+
+        XSSFWorkbook workbook = new XSSFWorkbook();
+
+        Sheet sheet = workbook.createSheet("濂栧搧鍙戞斁璁板綍");
+        // 鍒涘缓琛ㄥご
+        Row header = sheet.createRow(0);
+        String[] headers = {
+        "鐢ㄦ埛鏄电О", "娲诲姩鍚�","鍟嗗搧鍚�",
+        "鍟嗗搧鍐呭","鍙戞斁鐘舵��"
+        ,"鎻忚堪"
+        };
+        for(int i= 0 ;i< headers.length;i++){
+            Cell cell = header.createCell(i);
+            cell.setCellValue(headers[i]);
+        }
+        for (int i=0;i< exportDetailDtOS.size();i++){
+            PrizeGrantRecordExportDetailDtO dto = exportDetailDtOS.get(i);
+            Row row = sheet.createRow(i+1);
+            row.createCell(0).setCellValue(dto.getNickName());
+            row.createCell(1).setCellValue(dto.getActivityName());
+            row.createCell(2).setCellValue(dto.getPrizeName());
+            row.createCell(3).setCellValue(dto.getPrizeContent());
+            if (PrizeGrantStatusEnums.SUCCESS.name().equals(dto.getGrantStatus())){
+                row.createCell(4).setCellValue(PrizeGrantStatusEnums.SUCCESS.getDescription());
+            }else {
+                row.createCell(4).setCellValue(PrizeGrantStatusEnums.FAILED.getDescription());
+
+            }
+
+            row.createCell(5).setCellValue(dto.getDes());
+        }
+
+        return workbook;
+    }
+
     /**
      * 娣诲姞
      * @param form
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeRecordServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeRecordServiceImpl.java
index dedeb91..b8cdd6e 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeRecordServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeRecordServiceImpl.java
@@ -1,7 +1,14 @@
 package cn.lili.modules.lmk.service.impl;
 
+import cn.lili.common.utils.StringUtils;
+import cn.lili.modules.lmk.domain.query.PrizeGrantRecordQuery;
 import cn.lili.modules.lmk.domain.query.PrizeRecordTimeQuery;
 import cn.lili.modules.lmk.domain.vo.PrizeRecordTimeVO;
+import cn.lili.modules.lmk.enums.general.PrizeDistributeStatusEnum;
+import cn.lili.modules.lmk.enums.general.PrizeGrantStatusEnums;
+import cn.lili.modules.lmk.enums.general.PrizeStatusEnum;
+import cn.lili.modules.order.order.entity.dto.PrizeRecordExportDetailDTO;
+import cn.lili.utils.COSUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import cn.lili.modules.lmk.domain.entity.PrizeRecord;
 import cn.lili.modules.lmk.mapper.PrizeRecordMapper;
@@ -11,17 +18,25 @@
 import cn.lili.modules.lmk.domain.form.PrizeRecordForm;
 import cn.lili.modules.lmk.domain.vo.PrizeRecordVO;
 import cn.lili.modules.lmk.domain.query.PrizeRecordQuery;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 import cn.lili.utils.PageUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.Assert;
 
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
 /**
- * 鐢ㄦ埛鎶藉璁板綍琛� 鏈嶅姟瀹炵幇绫�
+ * 鐢ㄦ埛鎶藉璁板綍 鏈嶅姟瀹炵幇绫�
  *
  * @author peng
  * @since 2025-08-14
@@ -32,6 +47,78 @@
 
     private final PrizeRecordMapper prizeRecordMapper;
 
+    private final COSUtil cosUtil;
+
+    @Override
+    public void queryExportStock(HttpServletResponse response, PrizeRecordQuery query){
+        List<PrizeRecordVO> list = baseMapper.getExportData(query);
+        XSSFWorkbook workbook = initExportData(list);
+        try {
+            // 璁剧疆鍝嶅簲澶�
+            String fileName = URLEncoder.encode("鐢ㄦ埛鎶藉璁板綍", "UTF-8");
+            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
+
+            ServletOutputStream out = response.getOutputStream();
+            workbook.write(out);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                workbook.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+    public XSSFWorkbook initExportData(List<PrizeRecordVO> list){
+        List<PrizeRecordExportDetailDTO> exportDetailDTOS = new ArrayList<>();
+        for (PrizeRecordVO vo : list){
+            PrizeRecordExportDetailDTO detailDtO = new PrizeRecordExportDetailDTO();
+            BeanUtils.copyProperties(vo,detailDtO);
+            exportDetailDTOS.add(detailDtO);
+        }
+        XSSFWorkbook workbook = new XSSFWorkbook();
+
+        Sheet sheet = workbook.createSheet("鐢ㄦ埛鎶藉璁板綍");
+        // 鍒涘缓琛ㄥご
+        Row header = sheet.createRow(0);
+        String[] headers = {
+                "鐢ㄦ埛鏄电О", "娲诲姩鍚�","涓鐘舵��",
+                "涓鍐呭","濂栧搧鍙戞斁鐘舵��"
+        };
+        for(int i= 0 ;i< headers.length;i++){
+            Cell cell = header.createCell(i);
+            cell.setCellValue(headers[i]);
+        }
+        for (int i=0;i< exportDetailDTOS.size();i++){
+            PrizeRecordExportDetailDTO dto = exportDetailDTOS.get(i);
+            Row row = sheet.createRow(i+1);
+            row.createCell(0).setCellValue(dto.getNickName());
+            row.createCell(1).setCellValue(dto.getPrizeActivityName());
+            if (PrizeStatusEnum.WIN.name().equals(dto.getPrizeStatus())){
+                row.createCell(2).setCellValue(PrizeStatusEnum.WIN.getDescription());
+            }else{
+                row.createCell(2).setCellValue(PrizeStatusEnum.NOT_WIN.getDescription());
+            }
+
+            row.createCell(3).setCellValue(dto.getPrizeContent());
+            if (PrizeDistributeStatusEnum.SUCCESS.name().equals(dto.getDistributeStatus())){
+                row.createCell(4).setCellValue(PrizeGrantStatusEnums.SUCCESS.getDescription());
+            }else if(PrizeDistributeStatusEnum.FAILED.name().equals(dto.getDistributeStatus())){
+                row.createCell(4).setCellValue(PrizeDistributeStatusEnum.FAILED.getDescription());
+            }else if(PrizeDistributeStatusEnum.NOT_WAIT.name().equals(dto.getDistributeStatus())){
+                row.createCell(4).setCellValue(PrizeDistributeStatusEnum.NOT_WAIT.getDescription());
+
+            }else {
+                row.createCell(4).setCellValue(PrizeDistributeStatusEnum.WAIT.getDescription());
+            }
+
+        }
+
+        return workbook;
+
+    }
     /**
      * 娣诲姞
      * @param form
@@ -91,6 +178,14 @@
     public Result page(PrizeRecordQuery query) {
         IPage<PrizeRecordVO> page = PageUtil.getPage(query, PrizeRecordVO.class);
         baseMapper.getPage(page, query);
+        for (PrizeRecordVO vo :page.getRecords()){
+            if (StringUtils.isNotBlank(vo.getPrizeActivityCover())){
+                vo.setPrizeActivityCoverUrl(cosUtil.getPreviewUrl(vo.getPrizeActivityCover()));
+            }
+            if (StringUtils.isNotBlank(vo.getPrizeImg())){
+                vo.setPrizeImgUrl(cosUtil.getPreviewUrl(vo.getPrizeImg()));
+            }
+        }
         return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeGrantRecordExportDetailDtO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeGrantRecordExportDetailDtO.java
new file mode 100644
index 0000000..14360bc
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeGrantRecordExportDetailDtO.java
@@ -0,0 +1,33 @@
+package cn.lili.modules.order.order.entity.dto;
+
+
+import lombok.Data;
+
+/**
+ * lmk-shop-java
+ *
+ * @author : zxl
+ * @date : 2025-08-26 18:07
+ **/
+@Data
+public class PrizeGrantRecordExportDetailDtO {
+
+    //鐢ㄦ埛鏄电О
+    private String nickName;
+
+    //娲诲姩鍚�
+    private String activityName;
+
+    //鍟嗗搧鍚�
+    private String prizeName;
+
+    //鍟嗗搧鍐呭
+    private String prizeContent;
+
+    //鍙戞斁鐘舵��
+    private String grantStatus;
+
+    //鎻忚堪
+    private String des;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeRecordExportDetailDTO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeRecordExportDetailDTO.java
new file mode 100644
index 0000000..7fe71dd
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PrizeRecordExportDetailDTO.java
@@ -0,0 +1,40 @@
+package cn.lili.modules.order.order.entity.dto;
+
+
+import cn.lili.modules.lmk.enums.general.PrizeDistributeStatusEnum;
+import cn.lili.modules.lmk.enums.general.PrizeStatusEnum;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * lmk-shop-java
+ *
+ * @author : zxl
+ * @date : 2025-08-26 18:11
+ **/
+@Data
+public class PrizeRecordExportDetailDTO {
+
+    /** 鐢ㄦ埛鏄电О */
+    private String nickName;
+
+    /** 娲诲姩鍚嶇О */
+    private String prizeActivityName;
+
+    /** 涓鐘舵��
+     * @see PrizeStatusEnum
+     * */
+    private String prizeStatus;
+
+    /** 涓鍐呭 */
+    private String prizeContent;
+
+    /** 濂栧搧鍚嶇О */
+    public String prizeName;
+
+    /** 濂栧搧鍙戞斁鐘舵��
+     * @see PrizeDistributeStatusEnum
+     * */
+    private String distributeStatus;
+}
diff --git a/framework/src/main/resources/mapper/lmk/PrizeGrantRecordMapper.xml b/framework/src/main/resources/mapper/lmk/PrizeGrantRecordMapper.xml
index b1a97a7..e9e8ace 100644
--- a/framework/src/main/resources/mapper/lmk/PrizeGrantRecordMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/PrizeGrantRecordMapper.xml
@@ -60,6 +60,41 @@
             lmk_prize_grant_record LPGR
         WHERE
             LPGR.delete_flag = 0
+        <if test="query.nickName != null and query.nickName !=''">
+            AND LPGR.nick_name like CONCAT('%',#{query.nickName},'%')
+        </if>
+        <if test="query.activityName != null and query.activityName !=''">
+            AND LPGR.activity_name like CONCAT('%',#{query.activityName},'%')
+        </if>
+        <if test="query.grantStatus != null and query.grantStatus !=''">
+            AND LPGR.grant_status  = #{query.grantStatus}
+        </if>
     </select>
-
+    <select id="getExportData" resultMap="BaseResultMap">
+        SELECT
+        LPGR.user_id,
+        LPGR.nick_name,
+        LPGR.activity_id,
+        LPGR.activity_name,
+        LPGR.prize_id,
+        LPGR.prize_name,
+        LPGR.prize_content,
+        LPGR.grant_status,
+        LPGR.prize_num_id,
+        LPGR.des,
+        LPGR.id
+        FROM
+        lmk_prize_grant_record LPGR
+        WHERE
+        LPGR.delete_flag = 0
+        <if test="query.nickName != null and query.nickName !=''">
+            AND LPGR.nick_name like CONCAT('%',#{query.nickName},'%')
+        </if>
+        <if test="query.activityName != null and query.activityName !=''">
+            AND LPGR.activity_name like CONCAT('%',#{query.activityName},'%')
+        </if>
+        <if test="query.grantStatus != null and query.grantStatus !=''">
+            AND LPGR.grant_status  = #{query.grantStatus}
+        </if>
+    </select>
 </mapper>
diff --git a/framework/src/main/resources/mapper/lmk/PrizeRecordMapper.xml b/framework/src/main/resources/mapper/lmk/PrizeRecordMapper.xml
index bfc4500..9dda94e 100644
--- a/framework/src/main/resources/mapper/lmk/PrizeRecordMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/PrizeRecordMapper.xml
@@ -17,6 +17,7 @@
         <result column="prize_num_id" property="prizeNumId" />
         <result column="activity_prize_ref_id" property="activityPrizeRefId" />
         <result column="distribute_status" property="distributeStatus" />
+        <result column="distribute_status" property="distributeStatus"/>
     </resultMap>
 
 
@@ -60,11 +61,56 @@
             LPR.prize_img,
             LPR.prize_num_id,
             LPR.activity_prize_ref_id,
+            LPR.distribute_status,
             LPR.id
         FROM
             lmk_prize_record LPR
         WHERE
             LPR.delete_flag = 0
+        <if test="query.nickName != null and query.nickName !=''">
+            AND LPR.nick_name like CONCAT('%',#{query.nickName},'%')
+        </if>
+        <if test="query.activityName != null and query.activityName !=''">
+            AND LPR.prize_activity_name like CONCAT('%',#{query.activityName},'%')
+        </if>
+        <if test="query.prizeStatus != null and query.prizeStatus !=''">
+            AND LPR.prize_status  = #{query.prizeStatus}
+        </if>
+        <if test="query.distributeStatus != null and query.distributeStatus !=''">
+            AND LPR.distribute_status  = #{query.distributeStatus}
+        </if>
+    </select>
+    <select id="getExportData" resultMap="BaseResultMap">
+        SELECT
+        LPR.user_id,
+        LPR.nick_name,
+        LPR.prize_activity_id,
+        LPR.prize_activity_name,
+        LPR.prize_activity_cover,
+        LPR.prize_status,
+        LPR.prize_content,
+        LPR.prize_id,
+        LPR.prize_img,
+        LPR.prize_num_id,
+        LPR.activity_prize_ref_id,
+        LPR.distribute_status,
+        LPR.id
+        FROM
+        lmk_prize_record LPR
+        WHERE
+        LPR.delete_flag = 0
+        <if test="query.nickName != null and query.nickName !=''">
+            AND LPR.nick_name like CONCAT('%',#{query.nickName},'%')
+        </if>
+        <if test="query.activityName != null and query.activityName !=''">
+            AND LPR.prize_activity_name like CONCAT('%',#{query.activityName},'%')
+        </if>
+        <if test="query.prizeStatus != null and query.prizeStatus !=''">
+            AND LPR.prize_status  = #{query.prizeStatus}
+        </if>
+        <if test="query.distributeStatus != null and query.distributeStatus !=''">
+            AND LPR.distribute_status  = #{query.distributeStatus}
+        </if>
     </select>
     <resultMap id="getPrizeRecordListByTimeMap" type="cn.lili.modules.lmk.domain.vo.PrizeRecordTimeVO">
         <result property="activityPrizeRefId" column="activity_prize_ref_id"/>
diff --git a/manager-api/src/main/java/cn/lili/controller/lmk/PrizeGrantRecordController.java b/manager-api/src/main/java/cn/lili/controller/lmk/PrizeGrantRecordController.java
new file mode 100644
index 0000000..c128c12
--- /dev/null
+++ b/manager-api/src/main/java/cn/lili/controller/lmk/PrizeGrantRecordController.java
@@ -0,0 +1,39 @@
+package cn.lili.controller.lmk;
+
+
+import cn.lili.base.Result;
+import cn.lili.common.context.ThreadContextHolder;
+import cn.lili.modules.lmk.domain.query.PrizeGrantRecordQuery;
+import cn.lili.modules.lmk.domain.query.PrizeRecordQuery;
+import cn.lili.modules.lmk.service.PrizeGrantRecordService;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * lmk-shop-java
+ * 濂栧搧鍙戞斁璁板綍
+ *
+ * @author : zxl
+ * @date : 2025-08-25 16:45
+ **/
+@RestController
+@AllArgsConstructor
+@RequestMapping("/manager/lmk/prizeGrantRecord")
+public class PrizeGrantRecordController {
+    private final PrizeGrantRecordService prizeGrantRecordService;
+
+    @GetMapping
+    public Result getPage(PrizeGrantRecordQuery query){
+        return prizeGrantRecordService.page(query);
+    }
+    @ApiOperation(value = "瀵煎嚭")
+    @GetMapping("/queryExport")
+    public void queryExport(PrizeGrantRecordQuery searchParams) {
+        HttpServletResponse response = ThreadContextHolder.getHttpResponse();
+        prizeGrantRecordService.queryExportStock(response,searchParams);}
+}
diff --git a/manager-api/src/main/java/cn/lili/controller/lmk/PrizeRecordController.java b/manager-api/src/main/java/cn/lili/controller/lmk/PrizeRecordController.java
new file mode 100644
index 0000000..59d3457
--- /dev/null
+++ b/manager-api/src/main/java/cn/lili/controller/lmk/PrizeRecordController.java
@@ -0,0 +1,40 @@
+package cn.lili.controller.lmk;
+
+
+import cn.lili.base.Result;
+import cn.lili.common.context.ThreadContextHolder;
+import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
+import cn.lili.modules.lmk.domain.query.PrizeRecordQuery;
+import cn.lili.modules.lmk.service.PrizeRecordService;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * lmk-shop-java
+ * 鐢ㄦ埛鎶藉璁板綍
+ * @author : zxl
+ * @date : 2025-08-25 16:52
+ **/
+
+@AllArgsConstructor
+@RestController
+@RequestMapping("/manager/lmk/prizeRecord")
+public class PrizeRecordController {
+    private final PrizeRecordService prizeRecordService;
+
+    @GetMapping
+    public Result getPage(PrizeRecordQuery query){
+        return prizeRecordService.page(query);
+    }
+
+    @ApiOperation(value = "瀵煎嚭")
+    @GetMapping("/queryExport")
+    public void queryExport(PrizeRecordQuery searchParams) {
+        HttpServletResponse response = ThreadContextHolder.getHttpResponse();
+        prizeRecordService.queryExportStock(response,searchParams);}
+}

--
Gitblit v1.8.0