|
@@ -1,11 +1,16 @@
|
|
package com.txz.cif.web.mng;
|
|
package com.txz.cif.web.mng;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
+import cn.hutool.poi.excel.ExcelUtil;
|
|
|
|
+import cn.hutool.poi.excel.ExcelWriter;
|
|
import com.txz.cif.core.Result;
|
|
import com.txz.cif.core.Result;
|
|
import com.txz.cif.core.ResultGenerator;
|
|
import com.txz.cif.core.ResultGenerator;
|
|
import com.txz.cif.model.Account;
|
|
import com.txz.cif.model.Account;
|
|
import com.txz.cif.model.BizLog;
|
|
import com.txz.cif.model.BizLog;
|
|
import com.txz.cif.model.RechargeRecord;
|
|
import com.txz.cif.model.RechargeRecord;
|
|
|
|
+import com.txz.cif.model.User;
|
|
import com.txz.cif.service.AccountService;
|
|
import com.txz.cif.service.AccountService;
|
|
import com.txz.cif.service.BizLogService;
|
|
import com.txz.cif.service.BizLogService;
|
|
import com.txz.cif.service.RechargeRecordService;
|
|
import com.txz.cif.service.RechargeRecordService;
|
|
@@ -15,6 +20,7 @@ import com.txz.cif.core.ResultCode;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.txz.cif.web.bo.RechargeRecordBO;
|
|
import com.txz.cif.web.bo.RechargeRecordBO;
|
|
|
|
+import com.txz.cif.web.para.MyUserParam;
|
|
import com.txz.cif.web.para.RecordParam;
|
|
import com.txz.cif.web.para.RecordParam;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -27,6 +33,9 @@ import tk.mybatis.mapper.entity.Condition;
|
|
import tk.mybatis.mapper.entity.Example.Criteria;
|
|
import tk.mybatis.mapper.entity.Example.Criteria;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import javax.servlet.ServletOutputStream;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
|
|
@@ -127,4 +136,83 @@ public class RechargeRecordController {
|
|
}
|
|
}
|
|
return ResultGenerator.genSuccessResult(pageInfo);
|
|
return ResultGenerator.genSuccessResult(pageInfo);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @GetMapping("/report")
|
|
|
|
+ @ApiOperation(value = "导出", httpMethod = "GET")
|
|
|
|
+ public void report(@RequestParam RecordParam param , HttpServletResponse response) {
|
|
|
|
+ Condition condition = new Condition(RechargeRecord.class);
|
|
|
|
+ Criteria criteria = condition.createCriteria();
|
|
|
|
+ if (StrUtil.isNotBlank(param.getChannel())){
|
|
|
|
+ criteria.andEqualTo("channel", param.getChannel());
|
|
|
|
+ }
|
|
|
|
+ if (StrUtil.isNotBlank(param.getUserName())){
|
|
|
|
+ criteria.andEqualTo("userName", param.getUserName());
|
|
|
|
+ }
|
|
|
|
+ if (StrUtil.isNotBlank(param.getUserPhone())){
|
|
|
|
+ criteria.andEqualTo("userPhone", param.getUserPhone());
|
|
|
|
+ }
|
|
|
|
+ if (StrUtil.isNotBlank(param.getOrderNo())){
|
|
|
|
+ criteria.andEqualTo("orderNo", param.getOrderNo());
|
|
|
|
+ }
|
|
|
|
+ if (param.getStatus() != null){
|
|
|
|
+ criteria.andEqualTo("status", param.getStatus());
|
|
|
|
+ }
|
|
|
|
+ if (param.getTimeType() != null){
|
|
|
|
+ if (param.getTimeType() ==1 ){
|
|
|
|
+ if (StrUtil.isNotBlank(param.getStartTime())){
|
|
|
|
+ criteria.andBetween("createTime", param.getStartTime(),param.getEndTime());
|
|
|
|
+ }
|
|
|
|
+ } else if (param.getTimeType() ==2 ){
|
|
|
|
+ if (StrUtil.isNotBlank(param.getStartTime())){
|
|
|
|
+ criteria.andBetween("successTime", param.getStartTime(),param.getEndTime());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ condition.setOrderByClause("create_time desc");
|
|
|
|
+ List<RechargeRecord> list = rechargeRecordService.findByCondition(condition);
|
|
|
|
+ List<String> rowHead = CollUtil.newArrayList("编号", "订单号", "用户id", "交易金额", "折扣金额", "状态 1处理中 2充值成功 3充值失败 4超时取消", "渠道", "币种", "用户名", "手机号", "交易时间", "交易成功时间", "银行", "银行账户", "银行账户姓名");
|
|
|
|
+ ExcelWriter writer = ExcelUtil.getWriter();
|
|
|
|
+ try {
|
|
|
|
+ writer.writeHeadRow(rowHead);
|
|
|
|
+ List<List<Object>> rows = new LinkedList<>();
|
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
|
+ for (RechargeRecord temp : list) {
|
|
|
|
+ List<Object> rowA = CollUtil.newArrayList(temp.getId(),
|
|
|
|
+ temp.getOrderNo(),
|
|
|
|
+ temp.getAmount(),
|
|
|
|
+ temp.getDiscount(),
|
|
|
|
+ temp.getStatus(),
|
|
|
|
+ temp.getChannel(),
|
|
|
|
+ temp.getCurrency(),
|
|
|
|
+ temp.getBankAccountName(),
|
|
|
|
+ temp.getUserName(),
|
|
|
|
+ temp.getUserPhone(),
|
|
|
|
+ temp.getTransTime() == null? "":DateUtil.format(temp.getTransTime(), "yyyy-MM-dd HH:mm:ss"),
|
|
|
|
+ temp.getSuccessTime() == null? "":DateUtil.format(temp.getSuccessTime(), "yyyy-MM-dd HH:mm:ss"),
|
|
|
|
+ temp.getBank(),
|
|
|
|
+ temp.getBankAccount(),
|
|
|
|
+ temp.getBankAccountName());
|
|
|
|
+ rows.add(rowA);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ writer.write(rows);
|
|
|
|
+ //设置宽度自适应
|
|
|
|
+ writer.setColumnWidth(-1, 22);
|
|
|
|
+ //response为HttpServletResponse对象
|
|
|
|
+ response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
|
|
|
+ //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + new String(("数据列表").getBytes("UTF-8"), "ISO-8859-1") + ".xls");
|
|
|
|
+ ServletOutputStream out = response.getOutputStream();
|
|
|
|
+ //out为OutputStream,需要写出到的目标流
|
|
|
|
+ writer.flush(out);
|
|
|
|
+ log.info("导出结束");
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("导出异常", e);
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ } finally {
|
|
|
|
+ // 关闭writer,释放内存
|
|
|
|
+ writer.close();
|
|
|
|
+ log.info("导出结束");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|