|
|
@@ -0,0 +1,76 @@
|
|
|
+package org.dromara.system.controller;
|
|
|
+
|
|
|
+import cn.hutool.core.date.DateField;
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import okhttp3.OkHttpClient;
|
|
|
+import org.dromara.common.core.domain.R;
|
|
|
+import org.dromara.common.redis.utils.RedisUtils;
|
|
|
+import org.dromara.common.web.core.BaseController;
|
|
|
+import org.dromara.system.domain.CountData;
|
|
|
+import org.dromara.system.domain.vo.CountDataVo;
|
|
|
+import org.dromara.system.service.ITblCountDataService;
|
|
|
+import org.dromara.system.service.ITblGoodsOrderService;
|
|
|
+import org.dromara.util.MessageUtils;
|
|
|
+import org.dromara.util.YingshiHttp;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import java.time.Duration;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+@Validated
|
|
|
+@RequiredArgsConstructor
|
|
|
+@RestController
|
|
|
+@Slf4j
|
|
|
+@RequestMapping("/statistic")
|
|
|
+public class StatisticController extends BaseController {
|
|
|
+ private final ITblCountDataService countDataService;
|
|
|
+
|
|
|
+ private final ITblGoodsOrderService goodsOrderService;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @GetMapping("/passenger/flow")
|
|
|
+ public Object sitesFlow(@RequestBody(required = false) Map<String,Object> data) {
|
|
|
+ if(data==null) data=new HashMap<>();
|
|
|
+ if(data.get("start")==null){
|
|
|
+ data.put("start", DateUtil.format(DateUtil.offsetDay(DateUtil.yesterday(), -7),"yyyy-MM-dd"));
|
|
|
+ }
|
|
|
+ if(data.get("end")==null){
|
|
|
+ data.put("end", DateUtil.format(DateUtil.yesterday(),"yyyy-MM-dd"));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<DateTime> dateList= DateUtil.rangeToList(DateUtil.parse(data.get("start").toString()), DateUtil.parse(data.get("end").toString()), DateField.DAY_OF_YEAR);
|
|
|
+
|
|
|
+ List<Object> qs = new ArrayList<>();
|
|
|
+ dateList.forEach(date->{
|
|
|
+ Map<String,Object> temp = new HashMap<>();
|
|
|
+ temp.put("start",DateUtil.format(date,"yyyy-MM-dd"));
|
|
|
+ temp.put("end",DateUtil.format(DateUtil.offsetDay(date,1),"yyyy-MM-dd"));
|
|
|
+
|
|
|
+
|
|
|
+ Map<String,Object> d = goodsOrderService.queryByDate(temp);
|
|
|
+ if(d==null){
|
|
|
+ d=new HashMap<>();
|
|
|
+ d.put("ordercount",0);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ CountDataVo countDataVo = countDataService.queryByDate(temp);
|
|
|
+ if(countDataVo==null){
|
|
|
+ countDataVo = new CountDataVo();countDataVo.setOutcount(0);countDataVo.setIncount(0);
|
|
|
+ }
|
|
|
+ temp.put("flowCount",countDataVo);
|
|
|
+ temp.put("goodsOrderCount",d);
|
|
|
+ qs.add(temp);
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return R.ok(qs);
|
|
|
+ }
|
|
|
+}
|