|
|
@ -28,219 +28,235 @@ public class IndexServiceImpl implements IndexService { |
|
|
private OrderGoodsDetailMapper orderGoodsDetailMapper; |
|
|
private OrderGoodsDetailMapper orderGoodsDetailMapper; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Map<String, Object> getCountSys(String leftDate,String rightDate,String saleRankingDate) { |
|
|
public Map<String, Object> getCountSys(String leftDate, String rightDate, String saleRankingDate) { |
|
|
// 拼装查询结果
|
|
|
// 拼装查询结果
|
|
|
Map<String,Object> result = new HashMap<>(); |
|
|
Map<String, Object> result = new HashMap<>(); |
|
|
|
|
|
|
|
|
Map gmap = new HashMap(); |
|
|
Map gmap = new HashMap(); |
|
|
// 统计商品数量
|
|
|
// 统计商品数量
|
|
|
gmap.put("is_deleted",0); |
|
|
gmap.put("is_deleted", 0); |
|
|
int goodsCount= goodsMapper.goodsCount(gmap); |
|
|
int goodsCount = goodsMapper.goodsCount(gmap); |
|
|
result.put("goods_count",goodsCount); |
|
|
result.put("goods_count", goodsCount); |
|
|
|
|
|
|
|
|
// 待付款数量
|
|
|
// 待付款数量
|
|
|
Integer awaitpayCount=orderMapper.countOrderByStatus(1); |
|
|
Integer awaitpayCount = orderMapper.countOrderByStatus(1); |
|
|
result.put("awaitpay_count",awaitpayCount); |
|
|
result.put("awaitpay_count", awaitpayCount); |
|
|
//待交付数量
|
|
|
//待交付数量
|
|
|
Integer awaitdeliveryCount = orderMapper.countOrderByStatus(2); |
|
|
Integer awaitdeliveryCount = orderMapper.countOrderByStatus(2); |
|
|
result.put("awaitdelivery_count",awaitdeliveryCount); |
|
|
result.put("awaitdelivery_count", awaitdeliveryCount); |
|
|
//待结算数量
|
|
|
//待结算数量
|
|
|
Integer awaitcloseCount= orderMapper.countOrderByStatus(3); |
|
|
Integer awaitcloseCount = orderMapper.countOrderByStatus(3); |
|
|
result.put("awaitclose_count",awaitcloseCount); |
|
|
result.put("awaitclose_count", awaitcloseCount); |
|
|
//已完成数量
|
|
|
//已完成数量
|
|
|
Integer completeCount=orderMapper.countOrderByStatus(4); |
|
|
Integer completeCount = orderMapper.countOrderByStatus(4); |
|
|
result.put("complete_count",completeCount); |
|
|
result.put("complete_count", completeCount); |
|
|
//关闭数量
|
|
|
//关闭数量
|
|
|
Integer closeCount=orderMapper.countOrderByStatus(5); |
|
|
Integer closeCount = orderMapper.countOrderByStatus(5); |
|
|
result.put("close_count",closeCount); |
|
|
result.put("close_count", closeCount); |
|
|
|
|
|
|
|
|
// 日历获取到昨天
|
|
|
// 日历获取到昨天
|
|
|
Calendar calendar = Calendar.getInstance(); |
|
|
Calendar calendar = Calendar.getInstance(); |
|
|
calendar.add(Calendar.DATE,-1); |
|
|
calendar.add(Calendar.DATE, -1); |
|
|
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); |
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
String yesterday=sdf.format(calendar.getTime()); |
|
|
String yesterday = sdf.format(calendar.getTime()); |
|
|
String yesterday_start = "'"+yesterday+" 00:00:00'"; |
|
|
String yesterday_start = "'" + yesterday + " 00:00:00'"; |
|
|
String yesterday_end = "'"+yesterday+" 23:59:59'"; |
|
|
String yesterday_end = "'" + yesterday + " 23:59:59'"; |
|
|
// 现在时刻
|
|
|
// 现在时刻
|
|
|
String nowtime=sdf.format(System.currentTimeMillis()); |
|
|
String nowtime = sdf.format(System.currentTimeMillis()); |
|
|
|
|
|
|
|
|
//交易数量
|
|
|
//交易数量
|
|
|
Integer dealGoodsCount=orderGoodsDetailMapper.countOrderGoodsDetailByTimeSection(yesterday_start,yesterday_end); |
|
|
Integer dealGoodsCount = orderGoodsDetailMapper.countOrderGoodsDetailByTimeSection(yesterday_start, yesterday_end); |
|
|
result.put("deal_goods_count",dealGoodsCount); |
|
|
result.put("deal_goods_count", dealGoodsCount); |
|
|
|
|
|
|
|
|
//交易总额
|
|
|
//交易总额
|
|
|
String swhere ="(paymenttime between "+yesterday_start+" and "+yesterday_end+") " + |
|
|
String swhere = "(paymenttime between " + yesterday_start + " and " + yesterday_end + ") " + |
|
|
"and pay_status=2"; |
|
|
"and pay_status=2"; |
|
|
Map xmap =new HashMap(); |
|
|
Map xmap = new HashMap(); |
|
|
xmap.put("field","total_money"); |
|
|
xmap.put("field", "total_money"); |
|
|
xmap.put("wherestr",swhere); |
|
|
xmap.put("wherestr", swhere); |
|
|
BigDecimal dealMoney = orderMapper.sumOrderByMap(xmap); |
|
|
BigDecimal dealMoney = orderMapper.sumOrderByMap(xmap); |
|
|
result.put("deal_money",dealMoney==null?"0.00":dealMoney); |
|
|
result.put("deal_money", dealMoney == null ? "0.00" : dealMoney); |
|
|
|
|
|
|
|
|
//订单总额
|
|
|
//订单总额
|
|
|
Map xomap = new HashMap(); |
|
|
Map xomap = new HashMap(); |
|
|
xomap.put("field","total_service_charge"); |
|
|
xomap.put("field", "total_service_charge"); |
|
|
xomap.put("wherestr",swhere); |
|
|
xomap.put("wherestr", swhere); |
|
|
BigDecimal orderMoney = orderMapper.sumOrderByMap(xomap); |
|
|
BigDecimal orderMoney = orderMapper.sumOrderByMap(xomap); |
|
|
result.put("order_money",orderMoney==null?"0.00":orderMoney); |
|
|
result.put("order_money", orderMoney == null ? "0.00" : orderMoney); |
|
|
|
|
|
|
|
|
//上架数量
|
|
|
//上架数量
|
|
|
Map xgmap = new HashMap(); |
|
|
Map xgmap = new HashMap(); |
|
|
xgmap.put("goods_status","1"); |
|
|
xgmap.put("goods_status", "1"); |
|
|
xgmap.put("btwstr","createtime between "+yesterday_start+" and "+yesterday_end); |
|
|
xgmap.put("btwstr", "createtime between " + yesterday_start + " and " + yesterday_end); |
|
|
Integer shelfCount=goodsMapper.goodsCount(xgmap); |
|
|
Integer shelfCount = goodsMapper.goodsCount(xgmap); |
|
|
result.put("shelf_count",shelfCount==null?0:shelfCount); |
|
|
result.put("shelf_count", shelfCount == null ? 0 : shelfCount); |
|
|
|
|
|
|
|
|
//下架数量
|
|
|
//下架数量
|
|
|
Map ogmap = new HashMap(); |
|
|
Map ogmap = new HashMap(); |
|
|
ogmap.put("goods_status","2"); |
|
|
ogmap.put("goods_status", "2"); |
|
|
ogmap.put("btwstr","canceltime between "+yesterday_start+" and "+yesterday_end); |
|
|
ogmap.put("btwstr", "canceltime between " + yesterday_start + " and " + yesterday_end); |
|
|
Integer outCount= goodsMapper.goodsCount(ogmap); |
|
|
Integer outCount = goodsMapper.goodsCount(ogmap); |
|
|
result.put("out_count",outCount==null?0:outCount); |
|
|
result.put("out_count", outCount == null ? 0 : outCount); |
|
|
|
|
|
|
|
|
//新增订单
|
|
|
//新增订单
|
|
|
Integer yesterOrderCount = orderMapper.countOrderTimeSection("createtime",yesterday_start,yesterday_end); |
|
|
Integer yesterOrderCount = orderMapper.countOrderTimeSection("createtime", yesterday_start, yesterday_end); |
|
|
result.put("yester_order_count",yesterOrderCount); |
|
|
result.put("yester_order_count", yesterOrderCount); |
|
|
|
|
|
|
|
|
//完成订单
|
|
|
//完成订单
|
|
|
Integer yesterCompleteCount=orderMapper.countOrderTimeSection("completetime",yesterday_start,yesterday_end); |
|
|
Integer yesterCompleteCount = orderMapper.countOrderTimeSection("completetime", yesterday_start, yesterday_end); |
|
|
result.put("yester_complete_count",yesterCompleteCount); |
|
|
result.put("yester_complete_count", yesterCompleteCount); |
|
|
|
|
|
|
|
|
calendar.add(Calendar.MONTH,-1); |
|
|
calendar.add(Calendar.MONTH, -1); |
|
|
// 上个月
|
|
|
// 上个月
|
|
|
String lastMonth=sdf.format(calendar.getTime()); |
|
|
String lastMonth = sdf.format(calendar.getTime()); |
|
|
// 过去5年
|
|
|
// 过去5年
|
|
|
calendar.add(Calendar.YEAR,-5); |
|
|
calendar.add(Calendar.YEAR, -5); |
|
|
String last5years=sdf.format(calendar.getTime()); |
|
|
String last5years = sdf.format(calendar.getTime()); |
|
|
// 过去一年
|
|
|
// 过去一年
|
|
|
calendar.add(Calendar.YEAR,-1); |
|
|
calendar.add(Calendar.YEAR, -1); |
|
|
String lastyear = sdf.format(calendar.getTime()); |
|
|
String lastyear = sdf.format(calendar.getTime()); |
|
|
// 时刻跨度
|
|
|
// 时刻跨度
|
|
|
String[] dtzone=new String[2]; |
|
|
String[] dtzone = new String[2]; |
|
|
switch (rightDate){ |
|
|
switch (rightDate) { |
|
|
case "year":dtzone[0]=last5years;dtzone[1]=nowtime;break; |
|
|
case "year": |
|
|
case "month":dtzone[0]=lastyear;dtzone[1]=nowtime;break; |
|
|
dtzone[0] = last5years; |
|
|
default:dtzone[0]=lastMonth;dtzone[1]=nowtime;break; |
|
|
dtzone[1] = nowtime; |
|
|
|
|
|
break; |
|
|
|
|
|
case "month": |
|
|
|
|
|
dtzone[0] = lastyear; |
|
|
|
|
|
dtzone[1] = nowtime; |
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
dtzone[0] = lastMonth; |
|
|
|
|
|
dtzone[1] = nowtime; |
|
|
|
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//委托方排名
|
|
|
//委托方排名
|
|
|
List entrustRanking = new ArrayList(); |
|
|
List entrustRanking = new ArrayList(); |
|
|
List<GoodsDetailVo> tjgoods=goodsMapper.goodsUserIslicodeDtzone(dtzone[0],dtzone[1]); |
|
|
List<GoodsDetailVo> tjgoods = goodsMapper.goodsUserIslicodeDtzone(dtzone[0], dtzone[1]); |
|
|
for(GoodsDetailVo gvo:tjgoods){ |
|
|
for (GoodsDetailVo gvo : tjgoods) { |
|
|
Map<String,Object> fmap =new HashMap<>(); |
|
|
Map<String, Object> fmap = new HashMap<>(); |
|
|
// 查找对应的用户
|
|
|
// 查找对应的用户
|
|
|
String uislicode = gvo.getUser_islicode(); |
|
|
String uislicode = gvo.getUser_islicode(); |
|
|
JSONObject userjson =SzwhApiUtils.getApiUser(uislicode); |
|
|
JSONObject userjson = SzwhApiUtils.getApiUser(uislicode); |
|
|
JSONObject udata = userjson.getJSONObject("data"); |
|
|
JSONObject udata = userjson.getJSONObject("data"); |
|
|
if(udata==null){ |
|
|
if (udata == null) { |
|
|
fmap.put("username",gvo.getUser_islicode()); |
|
|
fmap.put("username", gvo.getUser_islicode()); |
|
|
}else { |
|
|
} else { |
|
|
fmap.put("username",udata.getString("name")); |
|
|
fmap.put("username", udata.getString("name")); |
|
|
} |
|
|
} |
|
|
fmap.put("count",gvo.getCcount()); |
|
|
fmap.put("count", gvo.getCcount()); |
|
|
entrustRanking.add(fmap); |
|
|
entrustRanking.add(fmap); |
|
|
} |
|
|
} |
|
|
result.put("entrust_ranking",entrustRanking); |
|
|
result.put("entrust_ranking", entrustRanking); |
|
|
|
|
|
|
|
|
//委托方销售排序
|
|
|
//委托方销售排序
|
|
|
String[] saleRankDtzone=new String[2]; |
|
|
String[] saleRankDtzone = new String[2]; |
|
|
if(saleRankingDate=="year"){ |
|
|
if (saleRankingDate == "year") { |
|
|
saleRankDtzone[0]=last5years; |
|
|
saleRankDtzone[0] = last5years; |
|
|
}else{ |
|
|
} else { |
|
|
saleRankDtzone[0]=lastyear; |
|
|
saleRankDtzone[0] = lastyear; |
|
|
} |
|
|
} |
|
|
saleRankDtzone[1]=nowtime; |
|
|
saleRankDtzone[1] = nowtime; |
|
|
List entrustSaleRankingList=new ArrayList(); |
|
|
List entrustSaleRankingList = new ArrayList(); |
|
|
List<OrderGoodsDetailDTO> ogddtolist = orderGoodsDetailMapper.orderGoodsDetailDTOList(saleRankDtzone[0],saleRankDtzone[1]); |
|
|
List<OrderGoodsDetailDTO> ogddtolist = orderGoodsDetailMapper.orderGoodsDetailDTOList(saleRankDtzone[0], saleRankDtzone[1]); |
|
|
// todo 非空?
|
|
|
// todo 非空?
|
|
|
for(OrderGoodsDetailDTO ogdt:ogddtolist){ |
|
|
for (OrderGoodsDetailDTO ogdt : ogddtolist) { |
|
|
Map esmap =new HashMap(); |
|
|
Map esmap = new HashMap(); |
|
|
JSONObject userjson =SzwhApiUtils.getApiUser(ogdt.getEntrust_islicode()); |
|
|
JSONObject userjson = SzwhApiUtils.getApiUser(ogdt.getEntrust_islicode()); |
|
|
JSONObject udata = userjson.getJSONObject("data"); |
|
|
JSONObject udata = userjson.getJSONObject("data"); |
|
|
if(udata==null){ |
|
|
if (udata == null) { |
|
|
esmap.put("username",ogdt.getEntrust_islicode()); |
|
|
esmap.put("username", ogdt.getEntrust_islicode()); |
|
|
}else { |
|
|
} else { |
|
|
esmap.put("username",udata.getString("name")); |
|
|
esmap.put("username", udata.getString("name")); |
|
|
} |
|
|
} |
|
|
esmap.put("total_money",ogdt.getTotalMoney()); |
|
|
esmap.put("total_money", ogdt.getTotalMoney()); |
|
|
entrustSaleRankingList.add(esmap); |
|
|
entrustSaleRankingList.add(esmap); |
|
|
} |
|
|
} |
|
|
result.put("entrust_sale_ranking",entrustSaleRankingList); |
|
|
result.put("entrust_sale_ranking", entrustSaleRankingList); |
|
|
|
|
|
|
|
|
//统计图
|
|
|
//统计图
|
|
|
List treeMapList = new ArrayList(); |
|
|
List treeMapList = new ArrayList(); |
|
|
List labelList = new ArrayList(); //条形图标签名称
|
|
|
List labelList = new ArrayList(); //条形图标签名称
|
|
|
if("year".equals(leftDate)){ //年
|
|
|
|
|
|
// 重新初始化日历
|
|
|
// 重新初始化日历
|
|
|
Calendar ncal = Calendar.getInstance(); |
|
|
Calendar ncal = Calendar.getInstance(); |
|
|
ncal.getTime(); |
|
|
ncal.getTime(); |
|
|
// 日历中取到今年的年份
|
|
|
// 日历中取到今年的年份
|
|
|
int year = ncal.get(Calendar.YEAR); |
|
|
int year = ncal.get(Calendar.YEAR); |
|
|
// 订单金额总数
|
|
|
// 订单金额总数
|
|
|
List ftlist =new ArrayList(); |
|
|
List ftlist = new ArrayList(); |
|
|
//标的金额
|
|
|
//标的金额
|
|
|
List bdlist = new ArrayList(); |
|
|
List bdlist = new ArrayList(); |
|
|
|
|
|
|
|
|
|
|
|
if ("year".equals(leftDate)) { //年
|
|
|
|
|
|
|
|
|
// 数组索引从0 开始
|
|
|
// 数组索引从0 开始
|
|
|
for (int i=4;i>=0;i--){ |
|
|
for (int i = 4; i >= 0; i--) { |
|
|
int nyear=year-i; |
|
|
int nyear = year - i; |
|
|
String startdt = nyear+"-01-01 00:00:00"; |
|
|
String startdt = nyear + "-01-01 00:00:00"; |
|
|
String enddt = nyear+"-12-31 23:59:59"; |
|
|
String enddt = nyear + "-12-31 23:59:59"; |
|
|
//echarts 图标标签
|
|
|
//echarts 图标标签
|
|
|
labelList.add(nyear+"年"); |
|
|
labelList.add(nyear + "年"); |
|
|
BigDecimal[] rest = getDateMomeny(startdt,enddt); |
|
|
BigDecimal[] rest = getDateMomeny(startdt, enddt); |
|
|
|
|
|
// 订单金额
|
|
|
|
|
|
ftlist.add(rest[0]); |
|
|
|
|
|
// 标的
|
|
|
|
|
|
bdlist.add(rest[1]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}else if ("month".equals(leftDate)) {//按照月份
|
|
|
|
|
|
for (int i = 1; i <= 12; i++) { |
|
|
|
|
|
labelList.add(i + "月"); |
|
|
|
|
|
String startdt = year +"-"+i+ "-01 00:00:00"; |
|
|
|
|
|
String enddt = year +"-"+i+ "-31 23:59:59"; |
|
|
|
|
|
BigDecimal[] rest = getDateMomeny(startdt, enddt); |
|
|
// 订单金额
|
|
|
// 订单金额
|
|
|
ftlist.add(rest[0]); |
|
|
ftlist.add(rest[0]); |
|
|
// 标的
|
|
|
// 标的
|
|
|
bdlist.add(rest[1]); |
|
|
bdlist.add(rest[1]); |
|
|
} |
|
|
} |
|
|
// 订单
|
|
|
}else{ |
|
|
Map tmp =new HashMap(); |
|
|
//
|
|
|
tmp.put("data",ftlist); |
|
|
|
|
|
tmp.put("label","订单金额总额"); |
|
|
|
|
|
treeMapList.add(tmp); |
|
|
|
|
|
// 标的
|
|
|
|
|
|
Map bdmap =new HashMap(); |
|
|
|
|
|
bdmap.put("data",bdlist); |
|
|
|
|
|
bdmap.put("label","标的金额"); |
|
|
|
|
|
treeMapList.add(bdmap); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
result.put("treeMap",treeMapList); |
|
|
// 订单
|
|
|
result.put("label",labelList); |
|
|
Map tmp = new HashMap(); |
|
|
|
|
|
tmp.put("data", ftlist); |
|
|
|
|
|
tmp.put("label", "订单金额总额"); |
|
|
|
|
|
treeMapList.add(tmp); |
|
|
|
|
|
// 标的
|
|
|
|
|
|
Map bdmap = new HashMap(); |
|
|
|
|
|
bdmap.put("data", bdlist); |
|
|
|
|
|
bdmap.put("label", "标的价格金额"); |
|
|
|
|
|
treeMapList.add(bdmap); |
|
|
|
|
|
|
|
|
|
|
|
result.put("treeMap", treeMapList); |
|
|
|
|
|
result.put("label", labelList); |
|
|
return result; |
|
|
return result; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 查询制定日期内的交易额 成交额 - 服务费 =订单额度 |
|
|
* 查询制定日期内的交易额 成交额 - 服务费 =订单额度 |
|
|
|
|
|
* |
|
|
* @param startdt |
|
|
* @param startdt |
|
|
* @param enddt |
|
|
* @param enddt |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
private BigDecimal[] getDateMomeny(String startdt,String enddt){ |
|
|
private BigDecimal[] getDateMomeny(String startdt, String enddt) { |
|
|
//
|
|
|
BigDecimal dealMoney = orderMapper.sumOderDtZone(startdt, enddt, "total_money");//成交额
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); |
|
|
BigDecimal platServiceFee = orderMapper.sumOderDtZone(startdt, enddt, "total_service_charge");//平台服务费
|
|
|
try { |
|
|
|
|
|
String curyear = sdf.parse(startdt).toString(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BigDecimal dm = (dealMoney == null) ? new BigDecimal(0.00) : dealMoney; |
|
|
|
|
|
BigDecimal pfee = platServiceFee == null ? new BigDecimal(0.00) : platServiceFee; |
|
|
|
|
|
|
|
|
BigDecimal dealMoney = orderMapper.sumOderDtZone(startdt,enddt,"total_money");//成交额
|
|
|
BigDecimal oderMoney = null; |
|
|
BigDecimal platServiceFee=orderMapper.sumOderDtZone(startdt,enddt,"total_service_charge");//平台服务费
|
|
|
if (dm.compareTo(pfee) == 1) { |
|
|
|
|
|
oderMoney = dm.subtract(pfee); |
|
|
BigDecimal dm=(dealMoney==null)?new BigDecimal(0.00):dealMoney; |
|
|
|
|
|
log.info(curyear+"订单总额 :"+dm.toString()); |
|
|
|
|
|
BigDecimal pfee=platServiceFee==null?new BigDecimal(0.00):platServiceFee; |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal oderMoney=null; |
|
|
|
|
|
if(dm.compareTo(pfee)==1) { |
|
|
|
|
|
oderMoney= dm.subtract(pfee); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
BigDecimal[] dmarr = {dm,oderMoney}; |
|
|
BigDecimal[] dmarr = {dm, oderMoney}; |
|
|
return dmarr; |
|
|
|
|
|
}catch (Exception ex){ |
|
|
|
|
|
log.warn(ex); |
|
|
|
|
|
} |
|
|
|
|
|
BigDecimal[] dmarr = {new BigDecimal(0),new BigDecimal(0)}; |
|
|
|
|
|
return dmarr; |
|
|
return dmarr; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|