package com.desheng.bigdata.bigscreen.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.desheng.bigdata.common.DateUtil;
import com.desheng.bigdata.common.HBaseUtil;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import com.desheng.bigdata.constants.HBaseConf;
import java.io.IOException;
import java.util.Comparator;
import java.util.Date;
import java.util.Random;
import java.util.TreeSet;
/**
* 核心业务实现类
*/
public class ShopService {
/**
* 店铺排行
* {[{shop_name:xx,shop_amt_sum:xxx},{}]}
* @return
*/
public static Object getShopRanking() {
TreeSet<JSONObject> ts = new TreeSet<JSONObject>(new Comparator<JSONObject>() {
@Override
public int compare(JSONObject o1, JSONObject o2) {
Double sam1 = o1.getDouble("shop_amt_sum");
Double sam2 = o2.getDouble("shop_amt_sum");
return sam2.compareTo(sam1);
}
});
Connection connection = HBaseUtil.getConnection();
Table table = null;
try {
table = connection.getTable(TableName.valueOf(HBaseConf.TABLE_SHOP_AMT_RANK()));
ResultScanner results = table.getScanner(new Scan());
for(Result result : results) {
double shopAmt = Double.valueOf(new String(result.getValue(HBaseConf.CF_SHOP_AMT_RANK(), HBaseConf.COL_SHOP_AMT_RANK())));
String shopId = new String(result.getRow());
JSONObject json = new JSONObject();
json.put("shop_name", shopId);
json.put("shop_amt_sum", shopAmt);
ts.add(json);
if(ts.size() > 5) {
ts.pollLast();
}
}
//最多就只能留下5个
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(ts);
return jsonArray.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(table != null)
table.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
HBaseUtil.release(connection);
}
}
return null;
}
/**
* 汇总量
*
* @return
*/
public static Object getAllAmt() {
Connection connection = HBaseUtil.getConnection();
Table table = null;
try {
table = connection.getTable(TableName.valueOf(HBaseConf.TABLE_SALE_TOTAL_AMT()));
Result result = table.get(new Get(HBaseConf.RK_SALE_TOTAL_AMT()));
return new String(result.getValue(HBaseConf.CF_SALE_TOTAL_AMT(), HBaseConf.COL_SALE_TOTAL_AMT()));
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(table != null)
table.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
HBaseUtil.release(connection);
}
}
return "0";
}
/**
* 曲线轴汇总量
*
* @return
*/
static Random random = new Random();
public static Object getXTimeAmt() {
Connection connection = HBaseUtil.getConnection();
Table table = null;
try {
table = connection.getTable(TableName.valueOf(HBaseConf.TABLE_TIME_AMT_TREND()));
long curTM = System.currentTimeMillis() - 5 * 1000;
byte[] rk = new StringBuilder(curTM + "").reverse().toString().getBytes();
Result result = table.get(new Get(rk));
double timeAmt = random.nextDouble() * 1000;
if(!result.isEmpty()) {
byte[] amtBytes = result.getValue(HBaseConf.CF_TIME_AMT_TREND(), HBaseConf.COL_TIME_AMT_TREND());
timeAmt = Double.valueOf(new String(amtBytes));
}
JSONObject jsonObj = new JSONObject();
jsonObj.put("x_time", DateUtil.formatTime(new Date(curTM)));
jsonObj.put("time_amtSum", timeAmt);
return jsonObj.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(table != null)
table.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
HBaseUtil.release(connection);
}
}
return null;
}
public static void main(String[] args) {
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
毕设&课设&项目&实训-基于saprk的可视化大屏项目.zip (347个子文件)
bootstrap.css 118KB
font-awesome.css 37KB
font-awesome.min.css 30KB
font-awesome.min.css 30KB
echartsHome.css 8KB
codemirror.css 8KB
cao.css 4KB
carousel.css 4KB
monokai.css 2KB
fontawesome-webfont.eot 162KB
index.html 14KB
bigscreen-calc.iml 22KB
bigscreen-web.iml 7KB
bigscreen-common.iml 7KB
bigscreen-1809.iml 648B
ShopService.java 5KB
HBaseUtil.java 2KB
MockData.java 2KB
ShopRankingSocket.java 1KB
AllAmtSocket.java 1KB
XTimeSocket.java 1KB
DateUtil.java 929B
DateUtil.java 600B
bg2.jpg 6.28MB
4.jpg 296KB
echarts.min.js 478KB
d3.js 462KB
codemirror.js 339KB
jquery-3.2.1.js 262KB
d3.v3.min.js 148KB
echarts-worldcloud.js 125KB
jquery.min.js 91KB
echartsThemeDesigner.js 46KB
bootstrap.min.js 28KB
worldcloud.js 28KB
javascript.js 26KB
echartsHome.js 13KB
cao-center-left.js 10KB
cao-2.js 8KB
cao.js 8KB
cao-center-chart.js 6KB
cao-top-left.js 6KB
cao-bottom-right.js 5KB
cao-bottom-right-1.js 4KB
index-2.js 4KB
cao-center-chart-1.js 3KB
setData-shop-ranking.js 3KB
cao-top-right.js 3KB
cao-center-right.js 3KB
cao-bottom-left.js 2KB
index.js 2KB
setData-all-amt.js 1KB
setData-x-time.js 945B
icons.less 49KB
variables.less 22KB
mixins.less 2KB
path.less 771B
animated.less 713B
rotated-flipped.less 622B
bordered-pulled.less 585B
font-awesome.less 495B
stacked.less 476B
core.less 452B
list.less 377B
larger.less 370B
fixed-width.less 119B
screen-reader.less 118B
taobao-info.log 6.97MB
FontAwesome.otf 132KB
left1.png 1.41MB
4.png 218KB
title-center-right.png 39KB
title-center-left.png 35KB
title-center-left1.png 35KB
title-center.png 29KB
title-center-2.png 26KB
title-left.png 25KB
title-right.png 24KB
title.png 10KB
log4j.properties 2KB
CalcBigscreenApplication.scala 9KB
KafkaManager.scala 5KB
FieldIndex.scala 826B
HBaseConf.scala 814B
_icons.scss 49KB
_variables.scss 22KB
_mixins.scss 2KB
_path.scss 783B
_animated.scss 715B
_rotated-flipped.scss 672B
_bordered-pulled.scss 592B
_stacked.scss 482B
_core.scss 459B
font-awesome.scss 430B
_list.scss 378B
_larger.scss 375B
_screen-reader.scss 134B
_fixed-width.scss 120B
fontawesome-webfont.svg 434KB
fontawesome-webfont.ttf 162KB
共 347 条
- 1
- 2
- 3
- 4
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功