package com.stylefeng.guns.modular.system.controller.general; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.common.constant.factory.PageFactory; import com.stylefeng.guns.core.util.ExcelUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.PaymentRecord; import com.stylefeng.guns.modular.system.model.TBalanceModifyRecord; import com.stylefeng.guns.modular.system.model.TUser; import com.stylefeng.guns.modular.system.service.IPaymentRecordService; import com.stylefeng.guns.modular.system.service.ITBalanceModifyRecordService; import com.stylefeng.guns.modular.system.service.ITUserService; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Controller @RequestMapping("/paymentRecord") public class PaymentRecordController extends BaseController { private String PREFIX = "/system/paymentRecord/"; @Autowired private IPaymentRecordService paymentRecordService; @Autowired private ITUserService tUserService; @Autowired private ITBalanceModifyRecordService balanceModifyRecordService; /** * 跳转列表 * * @return */ @RequestMapping("") public String index() { return PREFIX + "paymentRecord.html"; } /** * 跳转余额修改记录列表 * * @return */ @RequestMapping("/balanceModify") public String balanceModifyIndex() { return PREFIX + "balanceModify.html"; } /** * @return */ @RequestMapping("/balanceModifylist") @ResponseBody public Object balanceModifylist(String userName, String phone, String userId, String startTime, String endTime) { Page> page = new PageFactory>().defaultPage(); Wrapper wrapper = new EntityWrapper(); if (ToolUtil.isNotEmpty(userName)){ wrapper.like("userName",userName); } if (ToolUtil.isNotEmpty(phone)){ wrapper.like("phone",phone); } if (ToolUtil.isNotEmpty(userId)){ wrapper.like("userId",userId); } if (ToolUtil.isNotEmpty(startTime) && ToolUtil.isNotEmpty(endTime)){ wrapper.between("createTime",startTime + " 00:00:00",endTime + " 23:59:59"); } page.setRecords(balanceModifyRecordService.selectMapsPage(page,wrapper).getRecords()); return super.packForBT(page); } /** * @return */ @RequestMapping("/list") @ResponseBody public Object list(String userName, String phone, String code, String startTime, String endTime) { Page> page = new PageFactory>().defaultPage(); Wrapper wrapper = new EntityWrapper().eq("type",1).eq("category",2).orderBy("id",false); if (ToolUtil.isNotEmpty(code)){ wrapper.like("code",code); } if (ToolUtil.isNotEmpty(startTime) && ToolUtil.isNotEmpty(endTime)){ wrapper.between("insertTime",startTime + " 00:00:00",endTime + " 23:59:59"); } Wrapper wrapper1 = new EntityWrapper(); if (ToolUtil.isNotEmpty(userName)){ wrapper1.like("nickName",userName); } if (ToolUtil.isNotEmpty(phone)){ wrapper1.like("phone",phone); } List listUser = tUserService.selectList(wrapper1); List integerList = new ArrayList<>(); for (TUser tUser : listUser) { integerList.add(tUser.getId()); } if (integerList.size() == 0){ integerList.add(-1); } if (ToolUtil.isNotEmpty(userName) || ToolUtil.isNotEmpty(phone)){ wrapper.in("userId",integerList); } List> list = paymentRecordService.selectMapsPage(page,wrapper).getRecords(); for (Map map : list) { TUser user = tUserService.selectById(map.get("userId").toString()); if (ToolUtil.isNotEmpty(user) && ToolUtil.isNotEmpty(user.getNickName())){ map.put("userName",user.getNickName()); } if (ToolUtil.isNotEmpty(user) && ToolUtil.isNotEmpty(user.getPhone())){ map.put("phone",user.getPhone()); } } page.setRecords(list); return super.packForBT(page); } @RequestMapping("/delete") @ResponseBody public Object delete(Integer paymentRecordId){ paymentRecordService.deleteById(paymentRecordId); return SUCCESS_TIP; } @RequestMapping("/deleteBalanceModify") @ResponseBody public Object deleteBalanceModify(Integer balanceModifyId){ balanceModifyRecordService.deleteById(balanceModifyId); return SUCCESS_TIP; } @RequestMapping("/exportRecord") @ResponseBody public Object exportRecord(HttpServletResponse response, @RequestParam String userName, @RequestParam String phone, @RequestParam String code, @RequestParam String startTime, @RequestParam String endTime){ try { Date date = new Date(); DateFormat format = new SimpleDateFormat("yyyyMMdd"); String time = format.format(date); String fileName = "用户充值记录"+time+".xls"; String[] title = new String[] {"充值时间","流水ID","用户ID","用户名称","用户手机号","充值金额","充值方式","状态"}; List> mapList = paymentRecordService.exportRecord(userName, phone, code, startTime, endTime); String[][] values = new String[mapList.size()][]; for (int i = 0; i < mapList.size(); i++) { Map d=mapList.get(i); values[i] = new String[title.length]; values[i][0]=d.get("insertTimeStr").toString(); values[i][1]=d.get("code").toString(); values[i][2]=d.get("userId").toString(); if (ToolUtil.isNotEmpty(d.get("nickName"))){ values[i][3]=d.get("nickName").toString(); }else { values[i][3]=""; } if (ToolUtil.isNotEmpty(d.get("phone"))){ values[i][4]=d.get("phone").toString(); }else { values[i][4]=""; } values[i][5]=d.get("amount").toString(); values[i][6]=d.get("payTypeStr").toString(); values[i][7]=d.get("stateStr").toString(); } String fileNameTitle="用户充值记录"; HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(fileNameTitle+time, title, values, null); this.setResponseHeader(response, fileName); OutputStream os = response.getOutputStream(); wb.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); /*return ApiUtil.putFailObj("导出失败");*/ } return SUCCESS_TIP; } @RequestMapping("/exportRecordBalanceModify") @ResponseBody public Object exportRecordBalanceModify(HttpServletResponse response, @RequestParam String userName, @RequestParam String phone, @RequestParam String userId, @RequestParam String startTime, @RequestParam String endTime){ try { Date date = new Date(); DateFormat format = new SimpleDateFormat("yyyyMMdd"); String time = format.format(date); String fileName = "余额修改记录"+time+".xls"; String[] title = new String[] {"修改时间","流水ID","用户ID","用户名称","用户手机号","金额","类型"}; Wrapper wrapper = new EntityWrapper(); if (ToolUtil.isNotEmpty(userName)){ wrapper.like("userName",userName); } if (ToolUtil.isNotEmpty(phone)){ wrapper.like("phone",phone); } if (ToolUtil.isNotEmpty(userId)){ wrapper.like("userId",userId); } if (ToolUtil.isNotEmpty(startTime) && ToolUtil.isNotEmpty(endTime)){ wrapper.between("createTime",startTime + " 00:00:00",endTime + " 23:59:59"); } List> mapList = balanceModifyRecordService.selectMaps(wrapper); for (Map map : mapList) { if (map.get("type").toString().equals("1")){ map.put("typeStr","增加"); }else if (map.get("type").toString().equals("2")){ map.put("typeStr","减少"); } } String[][] values = new String[mapList.size()][]; for (int i = 0; i < mapList.size(); i++) { Map d=mapList.get(i); values[i] = new String[title.length]; values[i][0]=d.get("createTime").toString(); values[i][1]=d.get("recordID").toString(); values[i][2]=d.get("userId").toString(); if (ToolUtil.isNotEmpty(d.get("userName"))){ values[i][3]=d.get("userName").toString(); }else { values[i][3]=""; } if (ToolUtil.isNotEmpty(d.get("phone"))){ values[i][4]=d.get("phone").toString(); }else { values[i][4]=""; } values[i][5]=d.get("money").toString(); values[i][6]=d.get("typeStr").toString(); } String fileNameTitle="余额修改记录"; HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(fileNameTitle+time, title, values, null); this.setResponseHeader(response, fileName); OutputStream os = response.getOutputStream(); wb.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); /*return ApiUtil.putFailObj("导出失败");*/ } return SUCCESS_TIP; } /** * 设置文件响应头 * @param response * @param fileName */ private void setResponseHeader(HttpServletResponse response, String fileName) { try { response.setContentType("application/octet-stream;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1")); response.addHeader("Pargam", "no-cache"); response.addHeader("Cache-Control", "no-cache"); } catch (Exception ex) { ex.printStackTrace(); } } }