订单查询

master
zhangshanxue 2020-09-01 10:23:33 +08:00
parent c9f9f25c86
commit e0669be807
8 changed files with 555 additions and 5 deletions

View File

@ -0,0 +1,113 @@
package com.jmfy.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jmfy.dao.MailDao;
import com.jmfy.dao.UserInfoDao;
import com.jmfy.model.*;
import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.utils.JsonUtil;
import com.jmfy.utils.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Created by huangds on 2017/10/24.
*/
@Controller
public class OrderInfoController {
@Resource
private MailDao mailDao;
@Resource
private UserInfoDao userInfoDao;
private static final Logger LOGGER = LoggerFactory.getLogger(OrderInfoController.class);
@RequestMapping(value = "/getOrder", method = {RequestMethod.POST, RequestMethod.GET})
public String getSendMail(HttpSession session, HttpServletRequest request, ModelMap map ) throws Exception {
HashMap<String, String> 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 serverId1 = parameterMap.get("serverId");
String userId = parameterMap.get("userId");
String startData = JsonUtil.timeStamp2Date(String.valueOf(startTime));
List<String> days = JsonUtil.getDays(startData,JsonUtil.timeStamp2Date(String.valueOf(endTime)));
List<Corder> cgPayOrders = new ArrayList<>();
CUserInfo userInfo =null;
if(userId!=null&&!userId.isEmpty()){
userInfo = userInfoDao.findUserInfoByUserId(Integer.parseInt(userId));
}
for (String date :days){
Map<String, CGPayOrder> map1 = RedisUtil.getInstence().getMap(RedisUserKey.C_PAYORDER_MAP + ":" + date, CGPayOrder.class, -1);
for (Map.Entry<String,CGPayOrder> entry: map1.entrySet()){
CGPayOrder cgPayOrder = entry.getValue();
String accountid = cgPayOrder.getUserId();
int serverId = cgPayOrder.getServerId();
if(!String.valueOf(serverId).equals(serverId1))
{
continue;
}
if (userInfo!=null &&!accountid.equals(userInfo.getOpenId())){
continue;
}
Corder corder = new Corder();
corder.setAccountid(accountid);
corder.setAmount(cgPayOrder.getAmount());
corder.setOrderNo(cgPayOrder.getOrderNo());
String payTime = cgPayOrder.getDelivery_time();
corder.setPayTime(payTime);
corder.setProductid(cgPayOrder.getGoodsId());
corder.setServerId(String.valueOf(serverId));
corder.setRecharge_type(cgPayOrder.getRecharge_type());
cgPayOrders.add(corder);
}
}
map.put("cgPayOrders",cgPayOrders);
return "userOrderInfo";
}
private static JSONObject sendGet(String params) throws IOException {
StringBuilder sb = new StringBuilder();
// URL url = new URL(URL);
URL url = new URL("http://60.1.1.212:9991/delivery/callback");
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setDoOutput(true);
urlCon.setDoInput(true);
urlCon.setRequestMethod("POST");
urlCon.setRequestProperty("Cookie","lhuj1i5hcu80edg3fjhesj4ak3");
OutputStreamWriter out = new OutputStreamWriter(urlCon.getOutputStream(), "UTF-8");
out.write(params);
out.flush();
out.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlCon.getInputStream(), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return JSON.parseObject(sb.toString());
}
}

View File

@ -0,0 +1,112 @@
package com.jmfy.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
/**
* Created by Administrator on 2016/3/22.
*/
@Document(collection = "c_pay_order")
public class CGPayOrder {
@Id
private String orderId;//充值回调中的pOrderId
@Field(value = "serverId")
private int serverId;//
@Field(value = "userId")
private String userId;//充值回调中的userId
@Field(value = "roleId")
private String roleId;
@Field(value = "goodsId")
private String goodsId;
@Field(value = "orderNo")
private String orderNo; //平台订单好
@Field(value = "delivery_time")
private String delivery_time; //支付时间
@Field(value = "recharge_type")
private String recharge_type ; // 货币类型
@Field(value = "amount")
private String amount ; //充值金额
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public int getServerId() {
return serverId;
}
public void setServerId(int serverId) {
this.serverId = serverId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getDelivery_time() {
return delivery_time;
}
public void setDelivery_time(String delivery_time) {
this.delivery_time = delivery_time;
}
public String getRecharge_type() {
return recharge_type;
}
public void setRecharge_type(String recharge_type) {
this.recharge_type = recharge_type;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getRoleId() {
return roleId;
}
public void setRoleId(String roleId) {
this.roleId = roleId;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
}

View File

@ -0,0 +1,74 @@
package com.jmfy.model;
public class Corder {
private String accountid; //玩家id
private String orderNo; //平台订单好
private String payTime; //支付时间
private String productid; //礼包id
private String recharge_type ; // qucik--quick uc-- 九游 sujie--速接
private String amount ; //充值金额
private String serverId;
public String getAccountid() {
return accountid;
}
public void setAccountid(String accountid) {
this.accountid = accountid;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getPayTime() {
return payTime;
}
public void setPayTime(String payTime) {
this.payTime = payTime;
}
public String getProductid() {
return productid;
}
public void setProductid(String productid) {
this.productid = productid;
}
public String getRecharge_type() {
return recharge_type;
}
public void setRecharge_type(String recharge_type) {
this.recharge_type = recharge_type;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getServerId() {
return serverId;
}
public void setServerId(String serverId) {
this.serverId = serverId;
}
}

View File

@ -26,7 +26,8 @@ public class RedisUserKey {
public static final String AUTOOPENTIME = "AUTOOPENTIME";
public static final String CHAT_INFO_CACHE = "CHAT_INFO_CACHE";//聊天信息缓存gm后台使用
public static final String MAIL_RED_POINT = "MAIL_RED_POINT";
public final static String C_PAYORDER = "C_PAYORDER";
public final static String C_PAYORDER_MAP = "C_PAYORDER_MAP";
/**
* 线 updata/min
*/

View File

@ -5,12 +5,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.*;
public class JsonUtil {
@ -139,4 +137,31 @@ public class JsonUtil {
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTimeInMillis();
}
public static List<String> getDays(String startTime, String endTime) {
// 返回的日期集合
List<String> days = new ArrayList<String>();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date start = dateFormat.parse(startTime);
Date end = dateFormat.parse(endTime);
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
tempEnd.add(Calendar.DATE, +1);// 日期加1(包含结束)
while (tempStart.before(tempEnd)) {
days.add(dateFormat.format(tempStart.getTime()));
tempStart.add(Calendar.DAY_OF_YEAR, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
return days;
}
}

View File

@ -0,0 +1,140 @@
<!--_meta 作为公共模版分离出去-->
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="../favicon.ico" />
<link rel="Shortcut Icon" href="../favicon.ico" />
<!--[if lt IE 9]>
<script type="text/javascript" src="../lib/html5shiv.js"></script>
<script type="text/javascript" src="../lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="../h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="../lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="../h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="../h-ui.admin/css/style.css" />
<!--[if IE 6]>
<script type="text/javascript" src="../lib/DD_belatedPNG_0.0.8a-min.js" ></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<!--/meta 作为公共模版分离出去-->
<title>玩家订单查询</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
<span class="c-gray en">&gt;</span>
個人信息管理
<span class="c-gray en">&gt;</span>
玩家订单查询
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
</nav>
<div class="page-container">
<form class="form form-horizontal" id="form-article-add" action="/getOrder" method="get" onsubmit="return findFlow()">
<div id="tab-system" class="HuiTab">
<div class="tabBar cl">
<span>玩家订单查询</span>
</div>
<div class="tabCon">
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span>
开始时间:</label>
<div class="formControls col-xs-8 col-sm-9">
<input autocomplete="off" type="text" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'datemin\')}' })" id="datemin" class="input-text Wdate" style="width:180px;" name="startTime">
<span class="STARTTIME"></span>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span>
结束时间:</label>
<div class="formControls col-xs-8 col-sm-9">
<input autocomplete="off" type="text" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'datemin\')}' })" id="datemax" class="input-text Wdate" style="width:180px;" name="endTime">
<span class="ENDTIME"></span>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span>
ServerID</label>
<div class="formControls col-xs-8 col-sm-9">
<input autocomplete="off" type="text" name="serverId" placeholder="服务器id" value="" class="input-text"/>
<span class="SERVERId"></span>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red"></span>
用户ID</label>
<div class="formControls col-xs-8 col-sm-9">
<input autocomplete="off" type="text" name="userId" placeholder="游戏中的玩家id" value="" class="input-text"/>
<span class="USERID"></span>
</div>
</div>
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
<button class="btn btn-primary radius" type="submit" ><i class="Hui-iconfont">&#xe632;</i> 查询</button>
</div>
</div>
</form>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="../lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="../lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="../h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="../h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="../lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="../lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="../lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="../lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript">
$(function () {
$('.skin-minimal input').iCheck({
checkboxClass: 'icheckbox-blue',
radioClass: 'iradio-blue',
increaseArea: '20%'
});
$("#tab-system").Huitab({
index: 0
});
});
function findFlow() {
var erroCode = $('.SERVERID');
var serverId = $("input[name='serverId']").val();
var userId = $("input[name='userId']").val();
var startTime = $("input[name='startTime']").val();
var endTime = $("input[name='endTime']").val();
if (serverId === '' || serverId == null) {
erroCode = $('.SERVERId');
erroCode.html('<span style="color: red; ">区服id不能为空!</span>');
return false;
}
if (startTime === '' || startTime == null) {
erroCode = $('.STARTTIME');
erroCode.html('<span style="color: red; ">开始时间不能为空!</span>');
return false;
}
if (endTime === '' || endTime == null) {
erroCode = $('.ENDTIME');
erroCode.html('<span style="color: red; ">结束时间不能为空!</span>');
return false;
}
return true;
}
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>

View File

@ -108,6 +108,8 @@
<li><a data-href="/html/sendSysCmd.html" data-title="发送gm" href="javascript:;">发送gm</a></li>
<li><a data-href="noticeInfos" data-title="公告信息" href="javascript:void(0)">公告信息</a></li>
<li><a data-href="/html/add_white_list.html" data-title="添加白名单账号" href="javascript:;">添加白名单账号</a></li>
<!--<li><a data-href="/html/recoverItem.html" data-title="回收道具" href="javascript:;">回收道具</a></li>-->
</ul>
</dd>
@ -131,6 +133,7 @@
<dd>
<ul>
<li><a data-href="/html/findFlow.html" data-title="流水日誌查询" href="javascript:;">流水日誌查询</a></li>
<li><a data-href="/html/findOrder.html" data-title="玩家订单列表" href="javascript:;">查询充值</a></li>
</ul>
</dd>
</dl>

View File

@ -0,0 +1,82 @@
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta http-equiv="Cache-Control" content="no-siteapp"/>
<script type="text/javascript" src="lib/html5shiv.js"></script>
<script type="text/javascript" src="lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="h-ui/css/H-ui.min.css"/>
<link rel="stylesheet" type="text/css" href="h-ui.admin/css/H-ui.admin.css"/>
<link rel="stylesheet" type="text/css" href="lib/Hui-iconfont/1.0.8/iconfont.css"/>
<link rel="stylesheet" type="text/css" href="h-ui.admin/skin/default/skin.css" id="skin"/>
<link rel="stylesheet" type="text/css" href="h-ui.admin/css/style.css"/>
<script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js"></script>
<script>DD_belatedPNG.fix('*');</script>
<title>玩家充值订单信息</title>
</head>
<body>
<nav class="breadcrumb">
<i class="Hui-iconfont">&#xe67f;</i> 首页
<span class="c-gray en">&gt;</span> 個人信息管理
<span class="c-gray en">&gt;</span> 玩家充值订单信息
<!--<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace('/getOrder');" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>-->
</nav>
<div class="page-container" style="text-align: center">
<h2><span style="color:red;">玩家充值订单信息</span></h2>
<div class="text-c">
<div class="mt-20">
<table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
<thead>
<tr class="text-c">
<!--<th width="25"><input type="checkbox" name="" value=""/></th>-->
<th width="200">订单id</th>
<th width="200">充值时间</th>
<th width="200">服务器id</th>
<th width="200">用户id</th>
<th width="200">礼包id</th>
<th width="200">充值金额</th>
<th width="200">支付方式</th>
<!--<th width="240">操作</th>-->
</tr>
</thead>
<tbody>
<tr th:each="obj:${cgPayOrders}">
<td th:text="${obj.orderNo}" style="text-align: center;"></td>
<td th:text="${obj.payTime}" style="text-align: center;"></td>
<td th:text="${obj.serverId}" style="text-align: center;"></td>
<td th:text="${obj.accountid}" style="text-align: center;"></td>
<td th:text="${obj.productid}" style="text-align: center;"></td>
<td th:text="${obj.amount}" style="text-align: center;"></td>
<td th:text="${obj.recharge_type}" style="text-align: center;"></td>
</tr>
</tbody>
</table>
</div>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
<script type="text/javascript">
$('.table-sort').dataTable({
"aaSorting": [[ 1, "desc" ]],//默认第几个排序
"bStateSave": true,//状态保存
"pading":false,
"aoColumnDefs": [
//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
// {"orderable":false,"aTargets":[0,0]}// 不参与排序的列
]
});
</script>
</body>
</html>