Bladeren bron

导出、用户

linxk 2 weken geleden
bovenliggende
commit
d3ef1218c9

+ 88 - 0
cif-service/src/main/java/com/txz/cif/web/mng/RechargeRecordController.java

@@ -1,11 +1,16 @@
 package com.txz.cif.web.mng;
 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.poi.excel.ExcelUtil;
+import cn.hutool.poi.excel.ExcelWriter;
 import com.txz.cif.core.Result;
 import com.txz.cif.core.ResultGenerator;
 import com.txz.cif.model.Account;
 import com.txz.cif.model.BizLog;
 import com.txz.cif.model.RechargeRecord;
+import com.txz.cif.model.User;
 import com.txz.cif.service.AccountService;
 import com.txz.cif.service.BizLogService;
 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.PageInfo;
 import com.txz.cif.web.bo.RechargeRecordBO;
+import com.txz.cif.web.para.MyUserParam;
 import com.txz.cif.web.para.RecordParam;
 import org.springframework.web.bind.annotation.*;
 import org.slf4j.Logger;
@@ -27,6 +33,9 @@ import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example.Criteria;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.util.LinkedList;
 import java.util.List;
 import org.apache.commons.lang.StringUtils;
 
@@ -127,4 +136,83 @@ public class RechargeRecordController {
 		}
         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("导出结束");
+		}
+	}
 }

+ 83 - 0
cif-service/src/main/java/com/txz/cif/web/mng/RedEnvelopeController.java

@@ -1,14 +1,21 @@
 package com.txz.cif.web.mng;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
 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.ResultGenerator;
+import com.txz.cif.model.RechargeRecord;
 import com.txz.cif.model.RedEnvelope;
+import com.txz.cif.model.WithdrawRecord;
 import com.txz.cif.service.RedEnvelopeService;
 
 import com.txz.cif.core.ResultCode;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.txz.cif.web.para.RecordParam;
 import com.txz.cif.web.para.RedEnvelopeListParam;
 import com.txz.cif.web.para.RedEnvelopeListParam2;
 import com.txz.cif.web.para.RedEnvelopeParam;
@@ -23,6 +30,9 @@ import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example.Criteria;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.util.LinkedList;
 import java.util.List;
 import org.apache.commons.lang.StringUtils;
 
@@ -96,4 +106,77 @@ public class RedEnvelopeController {
 		}
         return ResultGenerator.genSuccessResult(pageInfo);
     }
+
+
+	@GetMapping("/report")
+	@ApiOperation(value = "导出", httpMethod = "GET")
+	public void report(@RequestParam RedEnvelopeListParam2 param , HttpServletResponse response) {
+		Condition condition = new Condition(RedEnvelope.class);
+		Criteria criteria = condition.createCriteria();
+		if (param.getType() != null){
+			criteria.andEqualTo("type", param.getType());
+		}
+		if (StrUtil.isNotBlank(param.getName()) ){
+			criteria.andEqualTo("name", param.getName());
+		}
+		if (StrUtil.isNotBlank(param.getPhoneNo()) ){
+			criteria.andEqualTo("phoneNo", param.getPhoneNo());
+		}
+		if (StrUtil.isNotBlank(param.getOrderNo()) ){
+			criteria.andEqualTo("orderNo", param.getOrderNo());
+		}
+		if (param.getStatus() != null){
+			criteria.andEqualTo("status", param.getStatus());
+		}
+		if (StrUtil.isNotBlank(param.getStartTime()) &&  StrUtil.isNotBlank(param.getEndTime())){
+			criteria.andBetween("createTime", param.getStartTime(),param.getEndTime());
+		}
+		condition.setOrderByClause("create_time desc");
+		List<RedEnvelope> list = redEnvelopeService.findByCondition(condition);
+		List<String> rowHead = CollUtil.newArrayList("编号", "订单号", "交易号", "用户id", "交易金额", "余额",
+				"状态 1未结算 2已结算", "类型 1001充值 2001提现  3001开团支付 3002参团支付  4001未成团退款 4002成团退款 5001开团红包收益 5002参团红包收益 5003签到红包收益 5004一级红包佣金 5005二级红包佣金 6001充值返点 7001提现手续费 8001冻结 9001解冻",
+				"交易时间", "待结算时间", "用户名", "手机号", "备注");
+		ExcelWriter writer = ExcelUtil.getWriter();
+		try {
+			writer.writeHeadRow(rowHead);
+			List<List<Object>> rows = new LinkedList<>();
+			if (CollUtil.isNotEmpty(list)) {
+				for (RedEnvelope temp : list) {
+					List<Object> rowA = CollUtil.newArrayList(temp.getId(),
+							temp.getOrderNo(),
+							temp.getTranNo(),
+							temp.getUserId(),
+							temp.getStatus(),
+							temp.getAmount(),
+							temp.getBalance(),
+							temp.getStatus(),
+							temp.getBizType(),
+							temp.getTransTime() == null? "": DateUtil.format(temp.getTransTime(), "yyyy-MM-dd HH:mm:ss"),
+							temp.getSettleTime() == null? "":DateUtil.format(temp.getSettleTime(), "yyyy-MM-dd HH:mm:ss"),
+							temp.getName(),
+							temp.getPhoneNo(),
+							temp.getMemo());
+					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("导出结束");
+		}
+	}
 }

+ 25 - 1
cif-service/src/main/java/com/txz/cif/web/mng/UserController.java

@@ -94,6 +94,18 @@ public class UserController extends AbstractApiController {
         if (param.getType() == null){
             param.setType(0);
         }
+        if (param.getHasWithdraw() != null){
+            criteria.andEqualTo("hasWithdraw",param.getHasWithdraw());
+            criteria2.andEqualTo("hasWithdraw",param.getHasWithdraw());
+        }
+        if (param.getHasLogin() != null){
+            criteria.andEqualTo("hasLogin",param.getHasLogin());
+            criteria2.andEqualTo("hasLogin",param.getHasLogin());
+        }
+        if (param.getHasOrder() != null){
+            criteria.andEqualTo("hasOrder",param.getHasOrder());
+            criteria2.andEqualTo("hasOrder",param.getHasOrder());
+        }
         if (param.getType() == 1){
             criteria.andEqualTo("pid",param.getUserId());
             criteria2.andEqualTo("pid",param.getUserId());
@@ -246,7 +258,7 @@ public class UserController extends AbstractApiController {
     }
 
     @GetMapping("/report")
-    @ApiOperation(value = "导出维度", httpMethod = "GET")
+    @ApiOperation(value = "导出", httpMethod = "GET")
     public void report(@RequestParam  MyUserParam param , HttpServletResponse response) {
         Condition condition = new Condition(User.class);
         Example.Criteria criteria = condition.createCriteria();
@@ -254,6 +266,18 @@ public class UserController extends AbstractApiController {
         if (param.getType() == null){
             param.setType(0);
         }
+        if (param.getHasWithdraw() != null){
+            criteria.andEqualTo("hasWithdraw",param.getHasWithdraw());
+            criteria2.andEqualTo("hasWithdraw",param.getHasWithdraw());
+        }
+        if (param.getHasLogin() != null){
+            criteria.andEqualTo("hasLogin",param.getHasLogin());
+            criteria2.andEqualTo("hasLogin",param.getHasLogin());
+        }
+        if (param.getHasOrder() != null){
+            criteria.andEqualTo("hasOrder",param.getHasOrder());
+            criteria2.andEqualTo("hasOrder",param.getHasOrder());
+        }
         if (param.getType() == 1){
             criteria.andEqualTo("pid",param.getUserId());
             criteria2.andEqualTo("pid",param.getUserId());

+ 86 - 0
cif-service/src/main/java/com/txz/cif/web/mng/WithdrawRecordController.java

@@ -1,6 +1,10 @@
 package com.txz.cif.web.mng;
 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.poi.excel.ExcelUtil;
+import cn.hutool.poi.excel.ExcelWriter;
 import com.txz.cif.core.Result;
 import com.txz.cif.core.ResultGenerator;
 import com.txz.cif.model.Account;
@@ -30,6 +34,9 @@ import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example.Criteria;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.util.LinkedList;
 import java.util.List;
 import org.apache.commons.lang.StringUtils;
 
@@ -162,4 +169,83 @@ public class WithdrawRecordController {
 		}
 		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<WithdrawRecord> list = withdrawRecordService.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 (WithdrawRecord temp : list) {
+					List<Object> rowA = CollUtil.newArrayList(temp.getId(),
+							temp.getOrderNo(),
+							temp.getAmount(),
+							temp.getFee(),
+							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("导出结束");
+		}
+	}
 }

+ 7 - 0
cif-service/src/main/java/com/txz/cif/web/para/MyUserParam.java

@@ -44,6 +44,13 @@ public class MyUserParam {
     @ApiModelProperty("名称")
     private String name;
 
+    @ApiModelProperty(value="是否有提现权限 1是 2否")
+    private Integer hasWithdraw;
 
+    @ApiModelProperty(value="是否有登录权限 1是 2否")
+    private Integer hasLogin;
+
+    @ApiModelProperty(value="是否有下单权限 1是 2否")
+    private Integer hasOrder;
 
 }

+ 2 - 0
cif-service/src/main/java/com/txz/cif/web/para/UserUpdateParam.java

@@ -78,4 +78,6 @@ public class UserUpdateParam {
     @ApiModelProperty(value="是否有下单权限 1是 2否")
     private Integer hasOrder;
 
+
+
 }