feat 充值记录增加导出Excel功能
This commit is contained in:
parent
9ab3d7e624
commit
bc2352b3de
|
|
@ -1,5 +1,6 @@
|
|||
package com.mdd.admin.controller.finance;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mdd.admin.LikeAdminThreadLocal;
|
||||
import com.mdd.admin.service.IFinanceRechargerService;
|
||||
import com.mdd.admin.validate.commons.IdValidate;
|
||||
|
|
@ -9,6 +10,7 @@ import com.mdd.admin.validate.finance.FinanceRefundValidate;
|
|||
import com.mdd.admin.vo.finance.FinanceRechargeListVo;
|
||||
import com.mdd.common.core.AjaxResult;
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.common.util.StringUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -27,10 +29,20 @@ public class FinanceRechargerController {
|
|||
|
||||
@GetMapping("/lists")
|
||||
@ApiOperation("充值记录")
|
||||
public AjaxResult<PageResult<FinanceRechargeListVo>> list(@Validated PageValidate pageValidate,
|
||||
public AjaxResult<Object> list(@Validated PageValidate pageValidate,
|
||||
@Validated FinanceRechargeSearchValidate searchValidate) {
|
||||
PageResult<FinanceRechargeListVo> list = iFinanceRechargerService.list(pageValidate, searchValidate);
|
||||
return AjaxResult.success(list);
|
||||
if (StringUtils.isNotNull(searchValidate.getExport()) && searchValidate.getExport().equals(1)) {
|
||||
JSONObject ret = iFinanceRechargerService.getExportData(pageValidate, searchValidate);
|
||||
return AjaxResult.success(ret);
|
||||
} else if (StringUtils.isNotNull(searchValidate.getExport()) && searchValidate.getExport().equals(2)) {
|
||||
String path = iFinanceRechargerService.export(searchValidate);
|
||||
return AjaxResult.success(new JSONObject() {{
|
||||
put("url", path);
|
||||
}});
|
||||
} else {
|
||||
PageResult<FinanceRechargeListVo> list = iFinanceRechargerService.list(pageValidate, searchValidate);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/refund")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.mdd.admin.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mdd.admin.validate.commons.PageValidate;
|
||||
import com.mdd.admin.validate.finance.FinanceRechargeSearchValidate;
|
||||
import com.mdd.admin.vo.finance.FinanceRechargeListVo;
|
||||
|
|
@ -38,4 +39,14 @@ public interface IFinanceRechargerService {
|
|||
*/
|
||||
void refundAgain(Integer recordId, Integer adminId);
|
||||
|
||||
/**
|
||||
* 返回导出格式
|
||||
* @return
|
||||
*/
|
||||
JSONObject getExportData(PageValidate pageValidate, FinanceRechargeSearchValidate searchValidate);
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*/
|
||||
String export(FinanceRechargeSearchValidate searchValidate);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
package com.mdd.admin.service.impl;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
@ -7,7 +10,10 @@ import com.github.yulichang.query.MPJQueryWrapper;
|
|||
import com.mdd.admin.service.IFinanceRechargerService;
|
||||
import com.mdd.admin.validate.commons.PageValidate;
|
||||
import com.mdd.admin.validate.finance.FinanceRechargeSearchValidate;
|
||||
import com.mdd.admin.vo.finance.FinanceRechargeListExportVo;
|
||||
import com.mdd.admin.vo.finance.FinanceRechargeListVo;
|
||||
import com.mdd.admin.vo.user.UserListExportVo;
|
||||
import com.mdd.admin.vo.user.UserVo;
|
||||
import com.mdd.common.config.GlobalConfig;
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.common.entity.RechargeOrder;
|
||||
|
|
@ -25,10 +31,7 @@ import com.mdd.common.mapper.log.UserAccountLogMapper;
|
|||
import com.mdd.common.mapper.user.UserMapper;
|
||||
import com.mdd.common.plugin.wechat.WxPayDriver;
|
||||
import com.mdd.common.plugin.wechat.request.RefundRequestV3;
|
||||
import com.mdd.common.util.AmountUtil;
|
||||
import com.mdd.common.util.StringUtils;
|
||||
import com.mdd.common.util.TimeUtils;
|
||||
import com.mdd.common.util.UrlUtils;
|
||||
import com.mdd.common.util.*;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.TransactionDefinition;
|
||||
|
|
@ -36,6 +39,9 @@ import org.springframework.transaction.TransactionStatus;
|
|||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 充值记录服务实现类
|
||||
|
|
@ -273,4 +279,91 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getExportData(PageValidate pageValidate, FinanceRechargeSearchValidate searchValidate) {
|
||||
Integer page = pageValidate.getPage_no();
|
||||
Integer limit = pageValidate.getPage_size();
|
||||
PageResult<FinanceRechargeListVo> userVoPageResult = this.list(pageValidate, searchValidate);
|
||||
JSONObject ret = ToolUtils.getExportData(userVoPageResult.getCount(), limit, searchValidate.getPage_start(), searchValidate.getPage_end(),"充值列表");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String export(FinanceRechargeSearchValidate searchValidate) {
|
||||
PageValidate pageValidate = new PageValidate();
|
||||
if (StringUtils.isNotNull(searchValidate.getPage_start())) {
|
||||
pageValidate.setPage_no(searchValidate.getPage_start());
|
||||
} else {
|
||||
pageValidate.setPage_no(1);
|
||||
}
|
||||
|
||||
if (StringUtils.isNotNull(searchValidate.getPage_end()) && StringUtils.isNotNull(searchValidate.getPage_size())) {
|
||||
pageValidate.setPage_size(searchValidate.getPage_end() * searchValidate.getPage_size());
|
||||
} else {
|
||||
pageValidate.setPage_size(20);
|
||||
}
|
||||
Boolean isAll = StringUtils.isNull(searchValidate.getPage_type()) || searchValidate.getPage_type().equals(0) ? true : false;
|
||||
List<FinanceRechargeListExportVo> excellist = this.getExcellist(isAll, pageValidate, searchValidate);
|
||||
String fileName = StringUtils.isNull(searchValidate.getFile_name()) ? ToolUtils.makeUUID() : searchValidate.getFile_name();
|
||||
String folderPath = "/excel/export/"+ TimeUtils.timestampToDay(System.currentTimeMillis() / 1000) +"/" ;
|
||||
String path = folderPath + fileName +".xlsx";
|
||||
String filePath = YmlUtils.get("like.upload-directory") + path;
|
||||
File folder = new File(YmlUtils.get("like.upload-directory") + folderPath);
|
||||
if (!folder.exists()) {
|
||||
if (!folder.mkdirs()) {
|
||||
throw new OperateException("创建文件夹失败");
|
||||
}
|
||||
}
|
||||
EasyExcel.write(filePath)
|
||||
.head(FinanceRechargeListExportVo.class)
|
||||
.excelType(ExcelTypeEnum.XLSX)
|
||||
.sheet("充值记录")
|
||||
.doWrite(excellist);
|
||||
return UrlUtils.toAbsoluteUrl(path);
|
||||
}
|
||||
|
||||
private List<FinanceRechargeListExportVo> getExcellist(boolean isAll, PageValidate pageValidate, FinanceRechargeSearchValidate searchValidate) {
|
||||
Integer pageNo = pageValidate.getPage_no();
|
||||
Integer pageSize = pageValidate.getPage_size();
|
||||
|
||||
MPJQueryWrapper<RechargeOrder> mpjQueryWrapper = new MPJQueryWrapper<>();
|
||||
mpjQueryWrapper.selectAll(RechargeOrder.class)
|
||||
.select("U.id as user_id,U.account ,U.nickname,U.avatar, t.sn AS sn")
|
||||
.leftJoin("?_user U ON U.id=t.user_id".replace("?_", GlobalConfig.tablePrefix))
|
||||
.orderByDesc("id");
|
||||
|
||||
rechargeOrderMapper.setSearch(mpjQueryWrapper, searchValidate, new String[]{
|
||||
"like:sn@t.sn:str",
|
||||
"=:pay_way@t.pay_way:int",
|
||||
"=:pay_status@t.pay_status:int",
|
||||
"datetime:start_time-end_time@create_time:long",
|
||||
});
|
||||
|
||||
if (StringUtils.isNotEmpty(searchValidate.getUser_info())) {
|
||||
String keyword = searchValidate.getUser_info();
|
||||
mpjQueryWrapper.nested(wq->wq
|
||||
.like("U.nickname", keyword).or()
|
||||
.like("U.sn", keyword).or()
|
||||
.like("U.mobile", keyword));
|
||||
}
|
||||
List<FinanceRechargeListExportVo> retList = new ArrayList<>();
|
||||
if (isAll) {
|
||||
retList = rechargeOrderMapper.selectJoinList(FinanceRechargeListExportVo.class, mpjQueryWrapper);
|
||||
} else {
|
||||
IPage<FinanceRechargeListExportVo> iPage = rechargeOrderMapper.selectJoinPage(
|
||||
new Page<>(pageNo, pageSize),
|
||||
FinanceRechargeListExportVo.class,
|
||||
mpjQueryWrapper);
|
||||
retList = iPage.getRecords();
|
||||
}
|
||||
for (FinanceRechargeListExportVo vo : retList) {
|
||||
vo.setCreateTime(TimeUtils.timestampToDate(vo.getCreateTime()));
|
||||
vo.setPayTime(TimeUtils.timestampToDate(vo.getPayTime()));
|
||||
vo.setAvatar(UrlUtils.toAbsoluteUrl(vo.getAvatar()));
|
||||
vo.setPayWay(vo.getPayWay());
|
||||
vo.setPayWayText(PaymentEnum.getPayWayMsg(Integer.parseInt(vo.getPayWay())));
|
||||
vo.setPayStatusText(PaymentEnum.getPayStatusMsg(vo.getPayStatus()));
|
||||
}
|
||||
return retList;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -259,7 +259,7 @@ public class UserServiceImpl implements IUserService {
|
|||
} else {
|
||||
pageValidate.setPage_size(20);
|
||||
}
|
||||
Boolean isAll = StringUtils.isNull(searchValidate.getPage_type()) || searchValidate.getPage_type().equals(0) ? true : false;
|
||||
Boolean isAll = StringUtils.isNull(searchValidate.getPage_type()) || searchValidate.getPage_type().equals(0) ? true : false;
|
||||
List<UserListExportVo> excellist = this.getExcellist(isAll, pageValidate, searchValidate);
|
||||
String fileName = StringUtils.isNull(searchValidate.getFile_name()) ? ToolUtils.makeUUID() : searchValidate.getFile_name();
|
||||
String folderPath = "/excel/export/"+ TimeUtils.timestampToDay(System.currentTimeMillis() / 1000) +"/" ;
|
||||
|
|
@ -274,7 +274,7 @@ public class UserServiceImpl implements IUserService {
|
|||
EasyExcel.write(filePath)
|
||||
.head(UserListExportVo.class)
|
||||
.excelType(ExcelTypeEnum.XLSX)
|
||||
.sheet("兑换记录")
|
||||
.sheet("用户记录")
|
||||
.doWrite(excellist);
|
||||
return UrlUtils.toAbsoluteUrl(path);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,4 +30,21 @@ public class FinanceRechargeSearchValidate implements Serializable {
|
|||
@ApiModelProperty(value = "结束时间")
|
||||
private Integer end_time;
|
||||
|
||||
@ApiModelProperty(value = "导出信息")
|
||||
private Integer export;
|
||||
@ApiModelProperty(value = "file_name")
|
||||
private String file_name;
|
||||
|
||||
@ApiModelProperty(value = "page_start")
|
||||
private Integer page_start;
|
||||
|
||||
@ApiModelProperty(value = "page_end")
|
||||
private Integer page_end;
|
||||
|
||||
@ApiModelProperty(value = "page_size")
|
||||
private Integer page_size;
|
||||
|
||||
@ApiModelProperty(value = "page_type")
|
||||
private Integer page_type;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,83 @@
|
|||
package com.mdd.admin.vo.finance;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@ApiModel("导出充值记录列表Vo")
|
||||
public class FinanceRechargeListExportVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@ExcelProperty("ID")
|
||||
@ColumnWidth(50)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("用户昵称")
|
||||
@ExcelProperty("用户昵称")
|
||||
@ColumnWidth(50)
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty("用户头像")
|
||||
@ExcelProperty("用户头像")
|
||||
@ColumnWidth(50)
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty("账号")
|
||||
@ExcelProperty("账号")
|
||||
@ColumnWidth(50)
|
||||
private String acount;
|
||||
|
||||
@ApiModelProperty("订单编号")
|
||||
@ExcelProperty("订单编号")
|
||||
@ColumnWidth(50)
|
||||
private String sn;
|
||||
|
||||
@ApiModelProperty("支付方式: [2=微信支付, 3=支付宝支付]")
|
||||
@ExcelProperty("支付方式: [2=微信支付, 3=支付宝支付]")
|
||||
@ColumnWidth(50)
|
||||
private String payWay;
|
||||
|
||||
@ApiModelProperty("支付状态: [0=待支付, 1=已支付]")
|
||||
@ExcelProperty("支付状态: [0=待支付, 1=已支付]")
|
||||
@ColumnWidth(50)
|
||||
private Integer payStatus;
|
||||
|
||||
@ApiModelProperty("退款状态: [0=未退款 , 1=已退款]")
|
||||
@ExcelProperty("退款状态: [0=未退款 , 1=已退款]")
|
||||
@ColumnWidth(50)
|
||||
private Integer refundStatus;
|
||||
|
||||
@ApiModelProperty("支付状态: [0=待支付, 1=已支付]")
|
||||
@ExcelProperty("支付状态: [0=待支付, 1=已支付]")
|
||||
@ColumnWidth(50)
|
||||
private String payStatusText;
|
||||
|
||||
@ApiModelProperty("支付方式")
|
||||
@ExcelProperty("支付方式")
|
||||
@ColumnWidth(50)
|
||||
private String payWayText;
|
||||
|
||||
@ApiModelProperty("支付金额")
|
||||
@ExcelProperty("支付金额")
|
||||
@ColumnWidth(50)
|
||||
private BigDecimal orderAmount;
|
||||
|
||||
@ApiModelProperty("支付时间")
|
||||
@ExcelProperty("支付时间")
|
||||
@ColumnWidth(50)
|
||||
private String payTime;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
@ExcelProperty("创建时间")
|
||||
@ColumnWidth(50)
|
||||
private String createTime;
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue