Преглед на файлове

会员推广记录导出接口调整

codingliang преди 7 месеца
родител
ревизия
b9de92501c

+ 12 - 0
src/main/java/com/sqx/modules/exportExecl/controller/ExportExeclController.java

@@ -16,6 +16,7 @@ import com.sqx.modules.exportExecl.dto.AccountEntry;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.member.query.SpecialFavorStudentQuery;
+import com.sqx.modules.member.query.VipPromoRecordQuery;
 import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.dto.OrderQueryDto;
 import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
@@ -323,4 +324,15 @@ public class ExportExeclController {
 
         return Result.success("特殊照顾学生列表导出成功");
     }
+
+    @GetMapping("exportVipPromoRecord")
+    @ApiOperation("导出会员推广记录列表")
+    public Result exportVipPromoRecord(@RequestAttribute("userId") Long userId, VipPromoRecordQuery queryDTO) {
+        ExportJob exportJob = buildExportJob("会员推广记录列表.xlsx","vipPromoRecord", userId.toString(),
+                queryDTO.buildQueryConditionString(),
+                JSONUtil.toJsonStr(queryDTO));
+        exportJobService.save(exportJob);
+
+        return Result.success("会员推广记录列表导出成功");
+    }
 }

+ 0 - 6
src/main/java/com/sqx/modules/member/controller/VipPromoCodeController.java

@@ -78,10 +78,4 @@ public class VipPromoCodeController{
         PageUtils page = vipPromoRecordService.pages(query);
         return Result.success().put("data", page);
     }
-
-    @GetMapping("record/export")
-    @ApiOperation("导出会员推广记录")
-    public void recordExport(@Valid VipPromoRecordQuery query) {
-        vipPromoRecordService.recordExport(query);
-    }
 }

+ 54 - 0
src/main/java/com/sqx/modules/member/query/VipPromoRecordQuery.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 @Data
@@ -29,4 +30,57 @@ public class VipPromoRecordQuery extends PageQuery {
     @ApiModelProperty(value = "查询结束时间")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
+
+    /**
+     * 拼接查询条件字符串
+     * @return 拼接后的查询条件字符串
+     */
+    public String buildQueryConditionString() {
+        StringBuilder sb = new StringBuilder();
+
+        // 推广码id
+        if (getPromoCodeId() != null) {
+            sb.append("推广码id:").append(getPromoCodeId()).append(", ");
+        }
+
+        // 用户手机号
+        if (getUserPhone() != null && !getUserPhone().trim().isEmpty()) {
+            sb.append("用户手机号:").append(getUserPhone()).append(", ");
+        }
+
+        // 支付类型
+        if (getPayType() != null && !getPayType().trim().isEmpty()) {
+            String payTypeText = "";
+            switch (getPayType()) {
+                case "1":
+                    payTypeText = "微信支付";
+                    break;
+                case "2":
+                    payTypeText = "余额支付";
+                    break;
+                case "3":
+                    payTypeText = "暖心照顾";
+                    break;
+                default:
+                    payTypeText = getPayType();
+            }
+            sb.append("支付类型:").append(payTypeText).append(", ");
+        }
+
+        // 开始时间
+        if (getStartTime() != null) {
+            sb.append("开始时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(getStartTime())).append(", ");
+        }
+
+        // 结束时间
+        if (getEndTime() != null) {
+            sb.append("结束时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(getEndTime())).append(", ");
+        }
+
+        // 分页信息
+        sb.append("页码:").append(getPage()).append(", ");
+        sb.append("每页条数:").append(getLimit());
+
+        return sb.toString();
+    }
 }

+ 0 - 2
src/main/java/com/sqx/modules/member/service/VipPromoRecordService.java

@@ -10,8 +10,6 @@ public interface VipPromoRecordService extends IService<VipPromoRecord> {
 
     PageUtils pages(VipPromoRecordQuery query);
 
-    void recordExport(VipPromoRecordQuery query);
-
     /**
      * 新增会员推广记录
      * @param recordDTO 会员推广记录dto

+ 0 - 12
src/main/java/com/sqx/modules/member/service/impl/VipPromoRecordServiceImpl.java

@@ -15,13 +15,11 @@ import com.sqx.modules.member.query.VipPromoRecordQuery;
 import com.sqx.modules.member.service.VipPromoCodeService;
 import com.sqx.modules.member.service.VipPromoRecordService;
 import com.sqx.modules.member.vo.VipPromoRecordVO;
-import com.sqx.modules.utils.excel.EasyExcelUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
-import java.util.List;
 
 @Service
 @RequiredArgsConstructor
@@ -37,16 +35,6 @@ public class VipPromoRecordServiceImpl extends ServiceImpl<VipPromoRecordDao, Vi
     }
 
     @Override
-    public void recordExport(VipPromoRecordQuery query) {
-        IPage<VipPromoRecordVO> page = baseMapper.pages(new Page<>(query.getPage(), query.getLimit()), query);
-
-        List<VipPromoRecordVO> records = page.getRecords();
-        records.forEach(e -> e.setPayType(e.getPayType() == "1" ? "微信支付" : (e.getPayType() == "2" ? "余额支付" : "暖心照顾")));
-
-        EasyExcelUtil.exportExcel(records, VipPromoRecordVO.class, "会员推广记录列表", "sheet1");
-    }
-
-    @Override
     @Transactional
     public void add(VipPromoRecordDTO recordDTO) {
         VipPromoRecord record = new VipPromoRecord();

+ 32 - 0
src/main/java/com/sqx/scheduler/export/ExportScheduler.java

@@ -20,8 +20,11 @@ import com.sqx.modules.exportExecl.dto.AccountEntry;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.member.query.SpecialFavorStudentQuery;
+import com.sqx.modules.member.query.VipPromoRecordQuery;
 import com.sqx.modules.member.service.SpecialFavorStudentService;
+import com.sqx.modules.member.service.VipPromoRecordService;
 import com.sqx.modules.member.vo.SpecialFavorStudentVO;
+import com.sqx.modules.member.vo.VipPromoRecordVO;
 import com.sqx.modules.order.dto.OrderQueryDto;
 import com.sqx.modules.order.service.AppOrderService;
 import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
@@ -83,6 +86,7 @@ public class ExportScheduler {
     private final PlatformBillService platformBillService;
     private final InsideAddressService insideAddressService;
     private final SpecialFavorStudentService specialFavorStudentService;
+    private final VipPromoRecordService vipPromoRecordService;
 
     DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
@@ -154,6 +158,8 @@ public class ExportScheduler {
                         excelData=getShippingAddressExcelData(exportJob);
                     } else if("specialFavorStudent".equals(fileType)){
                         excelData = getSpecialFavorStudentExcelData(exportJob);
+                    }else if("vipPromoRecord".equals(fileType)){
+                        excelData = getVipPromoRecordExcelData(exportJob);
                     }else{
                         continue;
                     }
@@ -198,6 +204,32 @@ public class ExportScheduler {
         }
     }
 
+    private ExcelData getVipPromoRecordExcelData(ExportJob exportJob) {
+        VipPromoRecordQuery query = JSONUtil.toBean(exportJob.getConditions(), VipPromoRecordQuery.class);
+
+        ExcelData data = new ExcelData();
+        data.setName("特殊照顾学生列表");
+        data.setTitles(Arrays.asList("推广码id", "用户id", "用户名称", "用户手机号", "创建时间", "支付类型", "支付金额", "会员过期时间"));
+
+        PageUtils pages = vipPromoRecordService.pages(query);
+        List<List<Object>> rows = pages.getList().stream().map(e -> {
+            VipPromoRecordVO vo = (VipPromoRecordVO) e;
+            List<Object> row = new ArrayList<>();
+            row.add(vo.getPromoCodeId());
+            row.add(vo.getUserId());
+            row.add(vo.getUserName());
+            row.add(vo.getUserPhone());
+            row.add(vo.getCreateTime());
+            row.add(StrUtil.equals(vo.getPayType(), "1") ? "微信支付" : (StrUtil.equals(vo.getPayType(), "2") ? "余额支付" : "暖心照顾"));
+            row.add(vo.getPayAmount());
+            row.add(vo.getExpireTime());
+            return row;
+        }).collect(Collectors.toList());
+        data.setRows(rows);
+
+        return data;
+    }
+
     private ExcelData getSpecialFavorStudentExcelData(ExportJob exportJob) {
         SpecialFavorStudentQuery query = JSONUtil.toBean(exportJob.getConditions(), SpecialFavorStudentQuery.class);
         ExcelData data = new ExcelData();