diff --git a/src/main/java/com/jmfy/WebSecurityConfig.java b/src/main/java/com/jmfy/WebSecurityConfig.java index 0bcc224..4b16611 100644 --- a/src/main/java/com/jmfy/WebSecurityConfig.java +++ b/src/main/java/com/jmfy/WebSecurityConfig.java @@ -54,7 +54,7 @@ public class WebSecurityConfig extends WebMvcConfigurerAdapter{ } HashMap parameterMap = JsonUtil.getInstence().getParameterMap(request); String source = parameterMap.get("source"); - LOGGER.info("source:"+source); +// LOGGER.info("source:"+source); if(source!=null && source.equals("skyeye")){ return true; } diff --git a/src/main/java/com/jmfy/controller/OrderInfoController.java b/src/main/java/com/jmfy/controller/OrderInfoController.java index cb5c34b..91dfd4e 100644 --- a/src/main/java/com/jmfy/controller/OrderInfoController.java +++ b/src/main/java/com/jmfy/controller/OrderInfoController.java @@ -16,6 +16,7 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -53,14 +54,42 @@ public class OrderInfoController { @RequestMapping(value = "/getOrder", method = {RequestMethod.POST, RequestMethod.GET}) public String getOrder(HttpServletRequest request, ModelMap map ) 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); - int serverId1 = Integer.valueOf(parameterMap.get("serverId")); + String startTime = parameterMap.get("startTime"); + String endTime = parameterMap.get("endTime"); + String serverId = parameterMap.get("serverId"); String userId = parameterMap.get("userId"); String packId = parameterMap.get("packId"); - String startData = JsonUtil.timeStamp2Date(String.valueOf(startTime)); - List days = JsonUtil.getDays(startData,JsonUtil.timeStamp2Date(String.valueOf(endTime))); + List cgPayOrders = findOrders(startTime, endTime, userId, packId, serverId); + + map.put("cgPayOrders",cgPayOrders); + return "userOrderInfo"; + } + + + @RequestMapping(value = "/exportExcelRequest", method = {RequestMethod.POST, RequestMethod.GET}) + public void exportExcelRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { + HashMap parameterMap = JsonUtil.getInstence().getParameterMap(request); + String userId = parameterMap.get("userId"); + String startTime = parameterMap.get("startTime"); + String endTime = parameterMap.get("endTime"); + + List cgPayOrders = findOrders(startTime, endTime, userId, "ALLORDER", "0"); + createOrderExcel(request,response,cgPayOrders); + } + + /** + * 查询订单 + * @param startTime + * @param endTime + * @param userId + * @param packId + * @param serverId + * @return + * @throws Exception + */ + private List findOrders(String startTime,String endTime,String userId,String packId,String serverId) throws Exception { + List days = JsonUtil.getDays(startTime,endTime); Map rechargeMap = FileCacheUtils.rechargeMap; Map itemMap = FileCacheUtils.itemNameMap; @@ -75,8 +104,8 @@ public class OrderInfoController { Map map1 = RedisUtil.getInstence().getMap(RedisUserKey.C_PAYORDER_MAP + ":" + date, CGPayOrder.class, -1); for (Map.Entry entry: map1.entrySet()){ CGPayOrder cgPayOrder = entry.getValue(); - int serverId = cgPayOrder.getServerId(); - if(serverId1 != 0 && serverId1 != serverId) { + int server = cgPayOrder.getServerId(); + if(Integer.parseInt(serverId) != 0 && server != Integer.parseInt(serverId)) { continue; } String ccId = Optional.ofNullable(cgPayOrder.getCc_id()).orElse(""); @@ -136,7 +165,7 @@ public class OrderInfoController { } corder.setRecharge_type(cgPayOrder.getRecharge_type()); - GSUser gsUser = gsUserDao.findUserInfo(serverId,Integer.valueOf(accountid)); + GSUser gsUser = gsUserDao.findUserInfo(Integer.parseInt(serverId),Integer.valueOf(accountid)); if (gsUser == null){ corder.setRegisterTime(""); corder.setOpenId(""); @@ -151,107 +180,21 @@ public class OrderInfoController { cgPayOrders.add(corder); } } - map.put("cgPayOrders",cgPayOrders); - return "userOrderInfo"; + return cgPayOrders; } - - @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))); - 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(); - 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)); - corder.setPaySdk(cgPayOrder.getPaySdk()); - corder.setPlatform(cgPayOrder.getPlatform()); - - 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()); - - StringBuilder builder = new StringBuilder(); - if(config!=null&&config.getBaseReward()!=null){ - int[][] baseReward = config.getBaseReward(); - 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.length()<1?"":builder.toString()); - corder.setRecharge_type(cgPayOrder.getRecharge_type()); - - GSUser gsUser = gsUserDao.findUserInfo(serverId,Integer.valueOf(accountid)); - if (gsUser == null){ - corder.setRegisterTime(""); - corder.setOpenId(""); - }else { - corder.setRegisterTime(DateUtil.stampToTime(gsUser.getPlayerManager().getCreateTime())); - corder.setOpenId(gsUser.getPlayerManager().getOpenId()); - } - - ChannelInfo infoById = channelInfoDao.getChannelInfoById(cgPayOrder.getCc_id()); - corder.setCc_id(Optional.ofNullable(infoById).map(ChannelInfo::getName).orElse(cgPayOrder.getCc_id())); - - cgPayOrders.add(corder); - } - } - - if (cgPayOrders == null || cgPayOrders.isEmpty()){ - throw new Exception("There is no order information in this period."); - } - + /** + * 生成订单文件 + * @param request + * @param response + * @param cgPayOrders + */ + private void createOrderExcel(HttpServletRequest request,HttpServletResponse response,List cgPayOrders){ + LOGGER.info("订单信息导出中==============================================="); HttpSession session = request.getSession(); session.setAttribute("state", null); // 生成提示信息, - response.setContentType("application/csv;charset=gbk"); + response.setContentType("application/x-download"); String codedFileName = null; OutputStream fOut = null; try @@ -342,19 +285,26 @@ public class OrderInfoController { fOut = response.getOutputStream(); workbook.write(fOut); } - catch (UnsupportedEncodingException e1) {} - catch (Exception e) {} + catch (Exception e) { + e.printStackTrace(); + } finally { try { - fOut.flush(); - fOut.close(); + if (fOut != null){ + fOut.flush(); + } + if (fOut != null){ + fOut.close(); + } + } + catch (IOException e) { + e.printStackTrace(); } - catch (IOException e) {} session.setAttribute("state", "open"); } - System.out.println("文件生成..."); + LOGGER.info("订单信息导出完成==============================================="); } diff --git a/src/main/java/com/jmfy/controller/UserInfoController.java b/src/main/java/com/jmfy/controller/UserInfoController.java index 5a32019..ae3a2bc 100644 --- a/src/main/java/com/jmfy/controller/UserInfoController.java +++ b/src/main/java/com/jmfy/controller/UserInfoController.java @@ -102,16 +102,14 @@ public class UserInfoController { @RequestMapping(value = "/getUserRoleInfo", method = {RequestMethod.POST, RequestMethod.GET}) - public String getUserInfo(HttpSession session, ModelMap map, HttpServletRequest request) throws Exception { + public String getUserInfo(ModelMap map, HttpServletRequest request) throws Exception { HashMap parameterMap = JsonUtil.getInstence().getParameterMap(request); - // int serverId = Integer.parseInt(parameterMap.get("serverId")); int roleId = Integer.parseInt(parameterMap.get("roleId")); CUserInfo userInfoById = userInfoDao.findUserInfoById(parameterMap.get("roleId")); - - GSUser gsUser = gsUserDao.findUserInfo(userInfoById.getServerid(), roleId); - CUserVo cUserVo = getcUserVo(gsUser); + GSUser gsUser = gsUserDao.findUserInfoQuick(userInfoById.getServerid(), roleId); + CUserVo cUserVo = getcUserVo(gsUser); if(cUserVo.isData==1){ cUserVo.setServerId(String.valueOf(userInfoById.getServerid())); diff --git a/src/main/java/com/jmfy/dao/GSUserDao.java b/src/main/java/com/jmfy/dao/GSUserDao.java index 3f9989f..ca97df2 100644 --- a/src/main/java/com/jmfy/dao/GSUserDao.java +++ b/src/main/java/com/jmfy/dao/GSUserDao.java @@ -10,6 +10,8 @@ public interface GSUserDao { GSUser findUserInfo(int serverId, int userId) throws Exception; + GSUser findUserInfoQuick(int serverId, int userId) throws Exception; + void updateUserInfo(MarkedVo marked, Update update, int id) throws Exception; String getThriftIpPort(MarkedVo marked, int userId); diff --git a/src/main/java/com/jmfy/dao/impl/GSUserDaoImpl.java b/src/main/java/com/jmfy/dao/impl/GSUserDaoImpl.java index db8ef96..d4878e8 100644 --- a/src/main/java/com/jmfy/dao/impl/GSUserDaoImpl.java +++ b/src/main/java/com/jmfy/dao/impl/GSUserDaoImpl.java @@ -26,22 +26,43 @@ public class GSUserDaoImpl implements GSUserDao { private Connect connect; public static final String colon = ":"; + @Override public GSUser findUserInfo(int serverId, int userId) throws Exception { -// GSUser cUser = RedisUtil.getInstence().getObject(marked.getPartition() + colon + RedisUserKey.CUser_Key, -// String.valueOf(userId), GSUser.class, GlobalsDef.REDIS_OVER_TIME); -// if (cUser != null) { -// return cUser; -// } + GSUser cUser = RedisUtil.getInstence().getObject(RedisUserKey.CUser_Key + colon + serverId, + String.valueOf(userId), GSUser.class, GlobalsDef.REDIS_OVER_FOREVER); + if (cUser != null) { + return cUser; + } + // 读库 + String dbName = MongoName.getMongoDBName(serverId); + MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName); + Query query = new Query(Criteria.where("_id").is(userId)); + + GSUser gsUser = mongoTemplate.findOne(query, GSUser.class); + // 写入缓存 + RedisUtil.getInstence().putObject(RedisUserKey.CUser_Key + colon + serverId, + String.valueOf(userId), gsUser, GlobalsDef.HOUT_TIME); + + return gsUser; + } + + /** + * 快速查询,不走缓存 + * @param serverId + * @param userId + * @return + * @throws Exception + */ + @Override + public GSUser findUserInfoQuick(int serverId, int userId) throws Exception { + // 读库 String dbName = MongoName.getMongoDBName(serverId); MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName); Query query = new Query(Criteria.where("_id").is(userId)); return mongoTemplate.findOne(query, GSUser.class); } - - - @Override public void updateUserInfo(MarkedVo marked, Update update, int id) throws Exception { // String dbName = MongoName.getMongoDBName(marked); diff --git a/src/main/java/com/jmfy/redisProperties/GlobalsDef.java b/src/main/java/com/jmfy/redisProperties/GlobalsDef.java index 08e8f55..35f8bae 100644 --- a/src/main/java/com/jmfy/redisProperties/GlobalsDef.java +++ b/src/main/java/com/jmfy/redisProperties/GlobalsDef.java @@ -4,6 +4,7 @@ package com.jmfy.redisProperties; * Created by admin on 2014/11/26. */ public interface GlobalsDef { + int REDIS_OVER_TIME = 3600 * 24 * 7; int REDIS_OVER_FOREVER = -1; @@ -12,8 +13,8 @@ public interface GlobalsDef { int DAY_TIME = 24 * 60 * 60; + int HOUT_TIME = 60 * 60; - - + int MINUTE_TIME = 60; } diff --git a/src/main/resources/templates/exporOrder.html b/src/main/resources/templates/exporOrder.html index 375dc68..86bf83f 100644 --- a/src/main/resources/templates/exporOrder.html +++ b/src/main/resources/templates/exporOrder.html @@ -37,8 +37,7 @@ href="javascript:location.replace(location.href);" title="刷新">
-
+
生成玩家订单 @@ -90,8 +89,8 @@
-
@@ -126,25 +125,39 @@ var intervalFlag = true; //是否执行轮询的标志 function exportExcel() { - var erroCode = $('.SERVERID'); - var startExport = $('.startExport'); - - var serverId = $("#serverId").val(); var userId = $("input[name='userId']").val(); var startTime = $("input[name='startTime']").val(); var endTime = $("input[name='endTime']").val(); if (startTime === '' || startTime == null) { - erroCode = $('.STARTTIME'); - erroCode.html('开始时间不能为空!'); + alert("开始时间不能为空!"); return false; } if (endTime === '' || endTime == null) { - erroCode = $('.ENDTIME'); - erroCode.html('结束时间不能为空!'); + alert("结束时间不能为空!"); return false; } - return true; + $.ajax({ + type: "POST", + data: { + "startTime": startTime, + "endTime": endTime, + "userId": userId + }, + url: "/exportExcelRequest", + success: function (data) { + if (data === 1) { + layer.msg('操作成功,正在导出!', {icon: 6, time: 1000}); + } + if (data === 0) { + layer.msg('操作失败', {icon: 6, time: 1000}); + } + if (data === 2) { + layer.msg('此时间段没有订单信息,导出失败!', {icon: 6, time: 1000}); + } + } + } + ); } diff --git a/src/main/resources/templates/findOrder.html b/src/main/resources/templates/findOrder.html index 12fc26a..ea3442e 100644 --- a/src/main/resources/templates/findOrder.html +++ b/src/main/resources/templates/findOrder.html @@ -1,112 +1,112 @@ - - + - - - - - - - - - - - - - - - + -玩家订单查询 + 玩家订单查询
- -
-
- 玩家订单查询 -
-
-
- -
- - -
-
-
- -
- - -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- - -
-
- - - - - - - - - - -
-
-
-
- -
-
- +
+
+
+ 玩家订单查询 +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+
+
+
+ +
+
+
@@ -132,33 +132,34 @@ index: 0 }); }); -function findFlow() { - var erroCode = $('.SERVERID'); - var serverId = $("#serverId").val(); - if (serverId === '' || serverId == null) { - alert("区服id不能为空!!"); - return false; + function findFlow() { + var erroCode = $('.SERVERID'); + + var serverId = $("#serverId").val(); + if (serverId === '' || serverId == null) { + alert("区服id不能为空!!"); + return false; + } + var startTime = $("input[name='startTime']").val(); + if (startTime === '' || startTime == null) { + erroCode = $('.STARTTIME'); + erroCode.html('开始时间不能为空!'); + return false; + } + var endTime = $("input[name='endTime']").val(); + if (endTime === '' || endTime == null) { + erroCode = $('.ENDTIME'); + erroCode.html('结束时间不能为空!'); + return false; + } + var packId = $("#packId").val(); + if (packId === '' || packId == null) { + alert("游戏名称不能为空!"); + return false; + } + return true; } - var startTime = $("input[name='startTime']").val(); - if (startTime === '' || startTime == null) { - erroCode = $('.STARTTIME'); - erroCode.html('开始时间不能为空!'); - return false; - } - var endTime = $("input[name='endTime']").val(); - if (endTime === '' || endTime == null) { - erroCode = $('.ENDTIME'); - erroCode.html('结束时间不能为空!'); - return false; - } - var packId = $("#packId").val(); - if (packId === '' || packId == null) { - alert("游戏名称不能为空!"); - return false; - } - return true; -} diff --git a/src/main/resources/templates/welcome.html b/src/main/resources/templates/welcome.html index 3ffd340..eb8d1a3 100644 --- a/src/main/resources/templates/welcome.html +++ b/src/main/resources/templates/welcome.html @@ -26,9 +26,11 @@

太初行管理后台

-

更新日志[2021-8-16]

+

更新日志[2021-8-17]

1、自动开服功能添加

2、一些优化,bug修改

+

3、权限层级修改

+

4、订单导出修改