Browse Source

调整优化代码

master
xyiege 4 years ago
parent
commit
ccd1bb9fb8
  1. 250
      src/main/java/cn/chjyj/szwh/service/impl/IndexServiceImpl.java
  2. 11
      src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java

250
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<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();
// 统计商品数量
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<GoodsDetailVo> tjgoods=goodsMapper.goodsUserIslicodeDtzone(dtzone[0],dtzone[1]);
for(GoodsDetailVo gvo:tjgoods){
Map<String,Object> fmap =new HashMap<>();
List<GoodsDetailVo> tjgoods = goodsMapper.goodsUserIslicodeDtzone(dtzone[0], dtzone[1]);
for (GoodsDetailVo gvo : tjgoods) {
Map<String, Object> 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<OrderGoodsDetailDTO> ogddtolist = orderGoodsDetailMapper.orderGoodsDetailDTOList(saleRankDtzone[0],saleRankDtzone[1]);
saleRankDtzone[1] = nowtime;
List entrustSaleRankingList = new ArrayList();
List<OrderGoodsDetailDTO> 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 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]);
}
}else{
//
}
// 订单
Map tmp =new HashMap();
tmp.put("data",ftlist);
tmp.put("label","订单金额总额");
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","标的金额");
Map bdmap = new HashMap();
bdmap.put("data", bdlist);
bdmap.put("label", "标的价格金额");
treeMapList.add(bdmap);
}
result.put("treeMap",treeMapList);
result.put("label",labelList);
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();
BigDecimal dealMoney = orderMapper.sumOderDtZone(startdt,enddt,"total_money");//成交额
BigDecimal platServiceFee=orderMapper.sumOderDtZone(startdt,enddt,"total_service_charge");//平台服务费
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;
log.info(curyear+"订单总额 :"+dm.toString());
BigDecimal pfee=platServiceFee==null?new BigDecimal(0.00):platServiceFee;
BigDecimal dm = (dealMoney == null) ? new BigDecimal(0.00) : dealMoney;
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;
}
}

11
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());
}
}
Loading…
Cancel
Save