diff --git a/src/main/java/cn/chjyj/szwh/service/impl/IndexServiceImpl.java b/src/main/java/cn/chjyj/szwh/service/impl/IndexServiceImpl.java index a45f4cd..48a4da0 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/IndexServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/IndexServiceImpl.java @@ -28,219 +28,235 @@ public class IndexServiceImpl implements IndexService { private OrderGoodsDetailMapper orderGoodsDetailMapper; @Override - public Map getCountSys(String leftDate,String rightDate,String saleRankingDate) { + public Map getCountSys(String leftDate, String rightDate, String saleRankingDate) { // 拼装查询结果 - Map result = new HashMap<>(); + Map result = new HashMap<>(); Map gmap = new HashMap(); // 统计商品数量 - gmap.put("is_deleted",0); - int goodsCount= goodsMapper.goodsCount(gmap); - result.put("goods_count",goodsCount); + gmap.put("is_deleted", 0); + int goodsCount = goodsMapper.goodsCount(gmap); + result.put("goods_count", goodsCount); // 待付款数量 - Integer awaitpayCount=orderMapper.countOrderByStatus(1); - result.put("awaitpay_count",awaitpayCount); + Integer awaitpayCount = orderMapper.countOrderByStatus(1); + result.put("awaitpay_count", awaitpayCount); //待交付数量 Integer awaitdeliveryCount = orderMapper.countOrderByStatus(2); - result.put("awaitdelivery_count",awaitdeliveryCount); + result.put("awaitdelivery_count", awaitdeliveryCount); //待结算数量 - Integer awaitcloseCount= orderMapper.countOrderByStatus(3); - result.put("awaitclose_count",awaitcloseCount); + Integer awaitcloseCount = orderMapper.countOrderByStatus(3); + result.put("awaitclose_count", awaitcloseCount); //已完成数量 - Integer completeCount=orderMapper.countOrderByStatus(4); - result.put("complete_count",completeCount); + Integer completeCount = orderMapper.countOrderByStatus(4); + result.put("complete_count", completeCount); //关闭数量 - Integer closeCount=orderMapper.countOrderByStatus(5); - result.put("close_count",closeCount); + Integer closeCount = orderMapper.countOrderByStatus(5); + result.put("close_count", closeCount); // 日历获取到昨天 Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE,-1); - SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); - String yesterday=sdf.format(calendar.getTime()); - String yesterday_start = "'"+yesterday+" 00:00:00'"; - String yesterday_end = "'"+yesterday+" 23:59:59'"; + calendar.add(Calendar.DATE, -1); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String yesterday = sdf.format(calendar.getTime()); + String yesterday_start = "'" + yesterday + " 00:00:00'"; + 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); - result.put("deal_goods_count",dealGoodsCount); + Integer dealGoodsCount = orderGoodsDetailMapper.countOrderGoodsDetailByTimeSection(yesterday_start, yesterday_end); + 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"; - Map xmap =new HashMap(); - xmap.put("field","total_money"); - xmap.put("wherestr",swhere); + Map xmap = new HashMap(); + xmap.put("field", "total_money"); + xmap.put("wherestr", swhere); 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(); - xomap.put("field","total_service_charge"); - xomap.put("wherestr",swhere); + xomap.put("field", "total_service_charge"); + xomap.put("wherestr", swhere); 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(); - xgmap.put("goods_status","1"); - xgmap.put("btwstr","createtime between "+yesterday_start+" and "+yesterday_end); - Integer shelfCount=goodsMapper.goodsCount(xgmap); - result.put("shelf_count",shelfCount==null?0:shelfCount); + xgmap.put("goods_status", "1"); + xgmap.put("btwstr", "createtime between " + yesterday_start + " and " + yesterday_end); + Integer shelfCount = goodsMapper.goodsCount(xgmap); + result.put("shelf_count", shelfCount == null ? 0 : shelfCount); //下架数量 Map ogmap = new HashMap(); - ogmap.put("goods_status","2"); - ogmap.put("btwstr","canceltime between "+yesterday_start+" and "+yesterday_end); - Integer outCount= goodsMapper.goodsCount(ogmap); - result.put("out_count",outCount==null?0:outCount); + ogmap.put("goods_status", "2"); + ogmap.put("btwstr", "canceltime between " + yesterday_start + " and " + yesterday_end); + Integer outCount = goodsMapper.goodsCount(ogmap); + result.put("out_count", outCount == null ? 0 : outCount); //新增订单 - Integer yesterOrderCount = orderMapper.countOrderTimeSection("createtime",yesterday_start,yesterday_end); - result.put("yester_order_count",yesterOrderCount); + Integer yesterOrderCount = orderMapper.countOrderTimeSection("createtime", yesterday_start, yesterday_end); + result.put("yester_order_count", yesterOrderCount); //完成订单 - Integer yesterCompleteCount=orderMapper.countOrderTimeSection("completetime",yesterday_start,yesterday_end); - result.put("yester_complete_count",yesterCompleteCount); + Integer yesterCompleteCount = orderMapper.countOrderTimeSection("completetime", yesterday_start, yesterday_end); + 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年 - calendar.add(Calendar.YEAR,-5); - String last5years=sdf.format(calendar.getTime()); + calendar.add(Calendar.YEAR, -5); + String last5years = sdf.format(calendar.getTime()); // 过去一年 - calendar.add(Calendar.YEAR,-1); + calendar.add(Calendar.YEAR, -1); String lastyear = sdf.format(calendar.getTime()); // 时刻跨度 - String[] dtzone=new String[2]; - switch (rightDate){ - case "year":dtzone[0]=last5years;dtzone[1]=nowtime;break; - case "month":dtzone[0]=lastyear;dtzone[1]=nowtime;break; - default:dtzone[0]=lastMonth;dtzone[1]=nowtime;break; + String[] dtzone = new String[2]; + switch (rightDate) { + case "year": + dtzone[0] = last5years; + 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 tjgoods=goodsMapper.goodsUserIslicodeDtzone(dtzone[0],dtzone[1]); - for(GoodsDetailVo gvo:tjgoods){ - Map fmap =new HashMap<>(); + List tjgoods = goodsMapper.goodsUserIslicodeDtzone(dtzone[0], dtzone[1]); + for (GoodsDetailVo gvo : tjgoods) { + Map fmap = new HashMap<>(); // 查找对应的用户 String uislicode = gvo.getUser_islicode(); - JSONObject userjson =SzwhApiUtils.getApiUser(uislicode); + JSONObject userjson = SzwhApiUtils.getApiUser(uislicode); JSONObject udata = userjson.getJSONObject("data"); - if(udata==null){ - fmap.put("username",gvo.getUser_islicode()); - }else { - fmap.put("username",udata.getString("name")); + if (udata == null) { + fmap.put("username", gvo.getUser_islicode()); + } else { + fmap.put("username", udata.getString("name")); } - fmap.put("count",gvo.getCcount()); + fmap.put("count", gvo.getCcount()); entrustRanking.add(fmap); } - result.put("entrust_ranking",entrustRanking); + result.put("entrust_ranking", entrustRanking); //委托方销售排序 - String[] saleRankDtzone=new String[2]; - if(saleRankingDate=="year"){ - saleRankDtzone[0]=last5years; - }else{ - saleRankDtzone[0]=lastyear; + String[] saleRankDtzone = new String[2]; + if (saleRankingDate == "year") { + saleRankDtzone[0] = last5years; + } else { + saleRankDtzone[0] = lastyear; } - saleRankDtzone[1]=nowtime; - List entrustSaleRankingList=new ArrayList(); - List ogddtolist = orderGoodsDetailMapper.orderGoodsDetailDTOList(saleRankDtzone[0],saleRankDtzone[1]); + saleRankDtzone[1] = nowtime; + List entrustSaleRankingList = new ArrayList(); + List ogddtolist = orderGoodsDetailMapper.orderGoodsDetailDTOList(saleRankDtzone[0], saleRankDtzone[1]); // todo 非空? - for(OrderGoodsDetailDTO ogdt:ogddtolist){ - Map esmap =new HashMap(); - JSONObject userjson =SzwhApiUtils.getApiUser(ogdt.getEntrust_islicode()); + for (OrderGoodsDetailDTO ogdt : ogddtolist) { + Map esmap = new HashMap(); + JSONObject userjson = SzwhApiUtils.getApiUser(ogdt.getEntrust_islicode()); JSONObject udata = userjson.getJSONObject("data"); - if(udata==null){ - esmap.put("username",ogdt.getEntrust_islicode()); - }else { - esmap.put("username",udata.getString("name")); + if (udata == null) { + esmap.put("username", ogdt.getEntrust_islicode()); + } else { + esmap.put("username", udata.getString("name")); } - esmap.put("total_money",ogdt.getTotalMoney()); + esmap.put("total_money", ogdt.getTotalMoney()); entrustSaleRankingList.add(esmap); } - result.put("entrust_sale_ranking",entrustSaleRankingList); + result.put("entrust_sale_ranking", entrustSaleRankingList); //统计图 List treeMapList = new ArrayList(); List labelList = new ArrayList(); //条形图标签名称 - if("year".equals(leftDate)){ //年 - // 重新初始化日历 - Calendar ncal = Calendar.getInstance(); - ncal.getTime(); - // 日历中取到今年的年份 - int year = ncal.get(Calendar.YEAR); - // 订单金额总数 - List ftlist =new ArrayList(); - //标的金额 - List bdlist = new ArrayList(); + + // 重新初始化日历 + Calendar ncal = Calendar.getInstance(); + ncal.getTime(); + // 日历中取到今年的年份 + int year = ncal.get(Calendar.YEAR); + // 订单金额总数 + List ftlist = new ArrayList(); + //标的金额 + List bdlist = new ArrayList(); + + if ("year".equals(leftDate)) { //年 + // 数组索引从0 开始 - for (int i=4;i>=0;i--){ - int nyear=year-i; - String startdt = nyear+"-01-01 00:00:00"; - String enddt = nyear+"-12-31 23:59:59"; + for (int i = 4; i >= 0; i--) { + int nyear = year - i; + String startdt = nyear + "-01-01 00:00:00"; + String enddt = nyear + "-12-31 23:59:59"; //echarts 图标标签 - labelList.add(nyear+"年"); - BigDecimal[] rest = getDateMomeny(startdt,enddt); + labelList.add(nyear + "年"); + 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]); // 标的 bdlist.add(rest[1]); } - // 订单 - 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); + }else{ + // } - 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; } /** * 查询制定日期内的交易额 成交额 - 服务费 =订单额度 + * * @param startdt * @param enddt * @return */ - private BigDecimal[] getDateMomeny(String startdt,String enddt){ - // - SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); - try { - String curyear = sdf.parse(startdt).toString(); + private BigDecimal[] getDateMomeny(String startdt, String enddt) { + BigDecimal dealMoney = orderMapper.sumOderDtZone(startdt, enddt, "total_money");//成交额 + BigDecimal platServiceFee = orderMapper.sumOderDtZone(startdt, enddt, "total_service_charge");//平台服务费 + 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 platServiceFee=orderMapper.sumOderDtZone(startdt,enddt,"total_service_charge");//平台服务费 - - 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 oderMoney = null; + if (dm.compareTo(pfee) == 1) { + oderMoney = dm.subtract(pfee); } - BigDecimal[] dmarr = {dm,oderMoney}; - return dmarr; - }catch (Exception ex){ - log.warn(ex); - } - BigDecimal[] dmarr = {new BigDecimal(0),new BigDecimal(0)}; + BigDecimal[] dmarr = {dm, oderMoney}; return dmarr; } } diff --git a/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java b/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java index 5009831..3fc7e98 100644 --- a/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java +++ b/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java @@ -1,6 +1,7 @@ package cn.chjyj.szwh.mapper; import cn.chjyj.szwh.bean.Order; +import cn.chjyj.szwh.dto.OrderGoodsDetailDTO; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -117,4 +118,14 @@ public class OrderMapperTest { int total = orderMapper.countAllOrder(); System.out.println(total); } + + @Test + public void sumOderDtZone(){ + String startdt = "2022-05-01 00:00:00"; + String enddt = "2022-07-21 23:59:59"; + String filed="total_money"; + BigDecimal bc = orderMapper.sumOderDtZone(startdt,enddt,filed); + System.out.println(bc.toString()); + } + } \ No newline at end of file