From 2dc1b8771ac22a91b3e0c061a81dc765e5641344 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Tue, 20 Oct 2020 02:41:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E6=9C=8D=E8=AE=A2=E5=8D=95=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jmfy/controller/OrderInfoController.java | 193 +++++++++++++++++- src/main/java/com/jmfy/model/Corder.java | 4 +- src/main/resources/templates/exporOrder.html | 174 ++++++++++++++++ src/main/resources/templates/index.html | 1 + .../resources/templates/userOrderInfo.html | 3 +- 5 files changed, 362 insertions(+), 13 deletions(-) create mode 100644 src/main/resources/templates/exporOrder.html diff --git a/src/main/java/com/jmfy/controller/OrderInfoController.java b/src/main/java/com/jmfy/controller/OrderInfoController.java index b2972e2..edc5476 100644 --- a/src/main/java/com/jmfy/controller/OrderInfoController.java +++ b/src/main/java/com/jmfy/controller/OrderInfoController.java @@ -13,6 +13,7 @@ import com.jmfy.utils.FileCacheUtils; import com.jmfy.utils.JsonUtil; import com.jmfy.utils.RedisUtil; import config.SRechargeCommodityConfig; +import org.apache.poi.hssf.usermodel.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; @@ -22,11 +23,11 @@ import org.springframework.web.bind.annotation.RequestMethod; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; +import java.io.*; +import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; @@ -39,8 +40,6 @@ import java.util.*; */ @Controller public class OrderInfoController { - @Resource - private MailDao mailDao; @Resource private UserInfoDao userInfoDao; @Resource @@ -78,7 +77,7 @@ public class OrderInfoController { CGPayOrder cgPayOrder = entry.getValue(); String accountid = cgPayOrder.getUserId(); int serverId = cgPayOrder.getServerId(); - GSUser gsUser = gsUserDao.findUserInfo(serverId, Integer.parseInt(cgPayOrder.getUserId())); + // GSUser gsUser = gsUserDao.findUserInfo(serverId, Integer.parseInt(cgPayOrder.getUserId())); if(Integer.valueOf(serverId1)!=0&&!String.valueOf(serverId).equals(serverId1)) { @@ -102,8 +101,11 @@ public class OrderInfoController { corder.setPayTime(payTime); corder.setProductid(cgPayOrder.getGoodsId()); corder.setServerId(String.valueOf(serverId)); - Date registerDate = new Date(gsUser.getPlayerManager().getCreateTime()); - corder.setRegisterTime(simpleDateFormat.format(registerDate)); + // if(gsUser!=null){ + // Date registerDate = new Date(gsUser.getPlayerManager().getCreateTime()); + // corder.setRegisterTime(simpleDateFormat.format(registerDate)); + // } + // SRechargeCommodityConfig config = rechargeMap.get(Integer.parseInt(cgPayOrder.getGoodsId())); SRechargeCommodityConfig config; @@ -140,6 +142,171 @@ public class OrderInfoController { } + @RequestMapping(value = "/exportExcelRequest", method = {RequestMethod.POST, RequestMethod.GET}) + public void exportExcelRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { + HashMap parameterMap = JsonUtil.getInstence().getParameterMap(request); + long startTime = JsonUtil.getAppointTimeInXDay(Long.parseLong(JsonUtil.date3TimeStamp(request.getParameter("startTime"))), 0); + long endTime = JsonUtil.getAppointTimeInXDay(Long.parseLong(JsonUtil.date3TimeStamp(request.getParameter("endTime"))), 0); + String userId = parameterMap.get("userId"); + String startData = JsonUtil.timeStamp2Date(String.valueOf(startTime)); + List days = JsonUtil.getDays(startData,JsonUtil.timeStamp2Date(String.valueOf(endTime))); + // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Map rechargeMap = FileCacheUtils.rechargeMap; + Map itemMap = FileCacheUtils.itemNameMap; + List cgPayOrders = new ArrayList<>(); + + CUserInfo userInfo =null; + if(userId!=null&&!userId.isEmpty()){ + userInfo = userInfoDao.findUserInfoByUserId(Integer.parseInt(userId)); + } + + for (String date :days){ + Map map1 = RedisUtil.getInstence().getMap(RedisUserKey.C_PAYORDER_MAP + ":" + date, CGPayOrder.class, -1); + for (Map.Entry entry: map1.entrySet()){ + CGPayOrder cgPayOrder = entry.getValue(); + String accountid = cgPayOrder.getUserId(); + int serverId = cgPayOrder.getServerId(); + // GSUser gsUser = gsUserDao.findUserInfo(serverId, Integer.parseInt(cgPayOrder.getUserId())); + + if (userInfo!=null &&!accountid.equals(userInfo.getId())){ + continue; + } + String amount = cgPayOrder.getAmount(); + double amountDouble; + if(!amount.contains(".")){ + amountDouble = Integer.parseInt(amount)/100D; + } else{ + amountDouble = Double.parseDouble(amount); + } + Corder corder = new Corder(); + corder.setAccountid(accountid); + corder.setAmount(String.format("%.2f",amountDouble)); + corder.setOrderNo(cgPayOrder.getOrderId()); + String payTime = cgPayOrder.getDelivery_time(); + corder.setPayTime(payTime); + corder.setProductid(cgPayOrder.getGoodsId()); + corder.setServerId(String.valueOf(serverId)); + // Date registerDate = new Date(gsUser.getPlayerManager().getCreateTime()); + // corder.setRegisterTime(simpleDateFormat.format(registerDate)); +// SRechargeCommodityConfig config = rechargeMap.get(Integer.parseInt(cgPayOrder.getGoodsId())); + + SRechargeCommodityConfig config; + int goodsId; + if(isNumeric(cgPayOrder.getGoodsId())){ + goodsId = Integer.parseInt(cgPayOrder.getGoodsId()); + config =rechargeMap.get(goodsId); + }else { + config = SRechargeCommodityConfig.sdkRechargeCommodityConfigMap.get(cgPayOrder.getGoodsId()); + } + + corder.setProductName(config==null?"":config.getName()); + corder.setCurrency_code(cgPayOrder.getCurrency_code()==null?"":cgPayOrder.getCurrency_code()); + corder.setCurrency_price(cgPayOrder.getCurrency_price()==null?"":cgPayOrder.getCurrency_price()); + + int[][] baseReward = config.getBaseReward(); + StringBuilder builder = new StringBuilder(); + if(baseReward!=null&&baseReward.length>0){ + Arrays.stream(baseReward).forEach(n->{ + if(builder.length()!=0){ + builder.append("、"); + } + builder.append(itemMap.getOrDefault(n[0],"")).append("*").append(n[1]); + }); + } + corder.setProductContent(builder.toString()); + + corder.setRecharge_type(cgPayOrder.getRecharge_type()); + cgPayOrders.add(corder); + } + } + + + + HttpSession session = request.getSession(); + session.setAttribute("state", null); + // 生成提示信息, + response.setContentType("application/csv;charset=gbk"); + String codedFileName = null; + OutputStream fOut = null; + try + { + // 进行转码,使其支持中文文件名 + codedFileName = java.net.URLEncoder.encode("中文", "UTF-8"); + // response.setHeader("content-disposition", "attachment;filename=" + codedFileName + ".xls"); + response.addHeader("Content-Disposition", "attachment; filename=" + codedFileName + ".xls"); + // 产生工作簿对象 + HSSFWorkbook workbook = new HSSFWorkbook(); + //产生工作表对象 + HSSFSheet sheet = workbook.createSheet(); + int rowIndex = 1,cellIndex = 0; + Field[] field = cgPayOrders.get(0).getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组 + HSSFRow headerRow = sheet.createRow(0);//创建一行 + while (cellIndex + + + + + + + + + + + + + + + + + + + + 玩家订单查询 + + + +
+
+
+
+ 生成玩家订单 +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+ +
+
+
+ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 69fba05..5e3aee1 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -134,6 +134,7 @@ diff --git a/src/main/resources/templates/userOrderInfo.html b/src/main/resources/templates/userOrderInfo.html index 5d1ecac..86c07d8 100644 --- a/src/main/resources/templates/userOrderInfo.html +++ b/src/main/resources/templates/userOrderInfo.html @@ -53,7 +53,6 @@ 货币类型 货币数量 支付方式 - 注册时间 @@ -72,7 +71,6 @@ - @@ -141,6 +139,7 @@ // alert(parse); for (let item in parse) { str += parse[item]; + str+= "\t" str += ','; } str += '\n';