商店商品购买次数信息

master
gaojie 2019-05-17 16:58:39 +08:00
parent 9f3e1d5c58
commit 56150fadba
10 changed files with 383 additions and 8 deletions

View File

@ -3,7 +3,9 @@ package com.jmfy.controller;
import com.jmfy.dao.ItemDao;
import com.jmfy.model.ItemFlow;
import com.jmfy.model.MoneyFlow;
import com.jmfy.model.ShopBuyInfoFlow;
import com.jmfy.model.vo.ItemFlowVo;
import com.jmfy.model.vo.ShopItemInfoVo;
import com.jmfy.utils.JsonUtil;
import com.jmfy.utils.STableManager;
import org.springframework.stereotype.Controller;
@ -17,6 +19,7 @@ import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by huangds on 2017/10/24.
@ -26,7 +29,7 @@ public class FindFlowController {
@Resource
ItemDao itemDao;
@RequestMapping(value = "/findFlow", method = {RequestMethod.POST,RequestMethod.GET})
public String getFamilyInfo(HttpSession session, ModelMap map , HttpServletRequest request) throws Exception {
public String findFlow(HttpSession session, ModelMap map , HttpServletRequest request) throws Exception {
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
String startTime = parameterMap.get("startTime");
String endTime = parameterMap.get("endTime");
@ -58,7 +61,7 @@ public class FindFlowController {
itemFlowVo.setReason(getReason(itemFlow.getReason()));
itemFlowVo.setAfterMoney(itemFlow.getAfterCount());
itemFlowVo.setAddOrReduce(itemFlow.getAddOrReduce());
itemFlowVo.setCount(itemFlow.getiMoney());
itemFlowVo.setCount(itemFlow.getCount());
itemFlowVoList.add(itemFlowVo);
}
map.put("itemFlowVoList", itemFlowVoList);
@ -94,7 +97,7 @@ public class FindFlowController {
if (itemName != null){
return itemName;
}
return "";
return String.valueOf(itemId);
}
private String getMoneyName(int moneyType) {
@ -145,4 +148,34 @@ public class FindFlowController {
}
return name;
}
@RequestMapping(value = "/findShopFlow", method = {RequestMethod.POST,RequestMethod.GET})
public String findShopFlow(HttpSession session, ModelMap map , HttpServletRequest request) throws Exception {
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
String startTime = parameterMap.get("startTime");
String endTime = parameterMap.get("endTime");
String serverId = parameterMap.get("serverId");
String shopId = parameterMap.get("shopId");
List<ShopBuyInfoFlow> itemFlowList = itemDao.findItemFlowInfoBuyShop(serverId,startTime,endTime,shopId);
List<ShopItemInfoVo> shopItemInfoVos = new ArrayList<>();
Map<String,Integer> itemBuyTimes = new HashMap<>();
for (ShopBuyInfoFlow itemFlow:itemFlowList){
String itemName = itemFlow.getBuyItemName();
int itemNum = Integer.parseInt(itemFlow.getBuyItemNum());
if (itemBuyTimes.containsKey(itemName)){
itemNum = itemBuyTimes.get(itemName) + itemNum;
}
itemBuyTimes.put(itemName,itemNum);
}
for ( Map.Entry<String,Integer> entry :itemBuyTimes.entrySet()){
ShopItemInfoVo shopItemInfoVo = new ShopItemInfoVo();
shopItemInfoVo.setBuyNum(entry.getValue());
shopItemInfoVo.setItemName(entry.getKey());
shopItemInfoVos.add(shopItemInfoVo);
}
map.put("shopItemInfoVos",shopItemInfoVos);
return "shopItemInfo";
}
}

View File

@ -68,6 +68,7 @@ public class LoginController {
powersVo.setArenaInfo(0);
powersVo.setTitleGame(0);
powersVo.setAdminList(0);
powersVo.setShopItemFlow(0);
return;
}
for (Integer str : powerList) {
@ -102,6 +103,9 @@ public class LoginController {
case 10:
powersVo.setAdminList(0);
break;
case 11:
powersVo.setShopItemFlow(0);
break;
}
}

View File

@ -2,6 +2,7 @@ package com.jmfy.dao;
import com.jmfy.model.ItemFlow;
import com.jmfy.model.MoneyFlow;
import com.jmfy.model.ShopBuyInfoFlow;
import java.util.List;
@ -12,6 +13,8 @@ public interface ItemDao {
List<ItemFlow> findItemFlowInfo(String serverId, String startTime, String endTime, String userId) throws Exception;
List<ShopBuyInfoFlow> findItemFlowInfoBuyShop(String serverId, String startTime, String endTime, String shopId) throws Exception;
// CFamilyUser getCFamilyUser(int serverId,int uid);

View File

@ -1,10 +1,7 @@
package com.jmfy.dao.impl;
import com.jmfy.dao.ItemDao;
import com.jmfy.model.CFamilyUser;
import com.jmfy.model.CItem;
import com.jmfy.model.ItemFlow;
import com.jmfy.model.MoneyFlow;
import com.jmfy.model.*;
import com.jmfy.utils.Connect;
import com.jmfy.utils.MongoName;
import org.springframework.data.mongodb.core.MongoTemplate;
@ -59,4 +56,15 @@ public class ItemDaoImpl implements ItemDao {
return itemFlows;
}
@Override
public List<ShopBuyInfoFlow> findItemFlowInfoBuyShop(String serverId, String startTime, String endTime, String shopId) throws Exception {
String dbName = MongoName.getTlogMongoDBName(Integer.parseInt(serverId));
MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName);
//{ "serverId": "10212", "uid": "10004584", "time": { $lte: "2019-04-08 13:39:31" }, "time": { $gte: "2019-04-10 13:39:31" } }
String sql = "{ \"serverId\": \""+serverId+"\", \"shopId\": \""+shopId+"\", \"time\": { $gte: \""+startTime+"\" }, \"time\": { $lte: \""+endTime+"\" } }";
BasicQuery basicQuery = new BasicQuery(sql);
List<ShopBuyInfoFlow> itemFlows = mongoTemplate.find(basicQuery, ShopBuyInfoFlow.class);
return itemFlows;
}
}

View File

@ -0,0 +1,72 @@
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;
@Document(collection="shop_buy_info_flow")
public class ShopBuyInfoFlow {
@Id
private String id;
@Field(value = "uid")
private String uid;
@Field(value = "serverId")
private String serverId;
@Field(value = "time")
private String time;
@Field(value = "Level")
private String Level;
@Field(value = "shopId")
private String shopId;
@Field(value = "buyItemId")
private String buyItemId;
@Field(value = "buyItemName")
private String buyItemName;
@Field(value = "buyItemNum")
private String buyItemNum;
public String getId() {
return id;
}
public String getUid() {
return uid;
}
public String getServerId() {
return serverId;
}
public String getTime() {
return time;
}
public String getLevel() {
return Level;
}
public String getShopId() {
return shopId;
}
public String getBuyItemId() {
return buyItemId;
}
public String getBuyItemName() {
return buyItemName;
}
public String getBuyItemNum() {
return buyItemNum;
}
}

View File

@ -13,7 +13,7 @@ public class PowersVo {
public int userInfo=1;
public int familyInfo=1;
public int arenaInfo=1;
public int shopItemFlow =1;
public void setAdminList(int adminList) {
this.adminList = adminList;
}
@ -57,4 +57,7 @@ public class PowersVo {
public void setUserName(String userName) {
this.userName = userName;
}
public void setShopItemFlow(int shopItemFlow) {
this.shopItemFlow = shopItemFlow;
}
}

View File

@ -0,0 +1,23 @@
package com.jmfy.model.vo;
public class ShopItemInfoVo {
public int id;
public String itemName;
public int buyNum;
public void setId(int id) {
this.id = id;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public void setBuyNum(int buyNum) {
this.buyNum = buyNum;
}
}

View File

@ -0,0 +1,146 @@
<!--_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="/findShopFlow" 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 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 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>
服务器id</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" name="serverId" placeholder="服务器serverid" 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>
商店:</label>
<div class="formControls col-xs-8 col-sm-9">
<select name="shopId" class="input-text" id="shopId">
<option value="1" selected = "selected" >通用商店</option>
<option value="2" >靈石商店</option>
<option value="3" >天才戰商店</option>
<option value="10" >心魂商店</option>
<option value="11" >宗門商店</option>
<option value="13" >遠征商店</option>
<option value="14" >心魂兑换所商店</option>
<option value="15" >聚靈商店</option>
<option value="16" >域主商店</option>
</select>
</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 startTime = $("input[name='startTime']").val();
var endTime = $("input[name='endTime']").val();
if (serverId === '' || serverId == null) {
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

@ -114,6 +114,18 @@
</dl>
</div>
</div>
<div th: th:switch="${powersVo.shopItemFlow}">
<div th:case="0">
<dl id="shop-log">
<dt><i class="Hui-iconfont">&#xe66a;</i> 商店商品管理<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i></dt>
<dd>
<ul>
<li><a data-href="/html/findShopItemFlow.html" data-title="商店道具购买次数查询" href="javascript:;">商店商品购买次数查询</a></li>
</ul>
</dd>
</dl>
</div>
</div>
<div th: th:switch="${powersVo.GMinfo}">
<div th:case="0">
<dl id="menu-GM">

View File

@ -0,0 +1,71 @@
<!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(location.href);" 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">商品名称</th>
<th width="200">被购买次数</th>
</tr>
</thead>
<tbody>
<tr th:each="obj:${shopItemInfoVos}">
<!--<td><input type="checkbox" value="" name=""/></td>-->
<td th:text="${obj.itemName}" style="text-align: center;"></td>
<td th:text="${obj.buyNum}" 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/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>