From 9a56c5710eb281afc06e2f3a211b8b595f24bbe1 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 16 八月 2023 09:39:34 +0800
Subject: [PATCH] update
---
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/BlackboardController.java | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 218 insertions(+), 11 deletions(-)
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/BlackboardController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/BlackboardController.java
index 4e8a24a..a32a952 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/BlackboardController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/BlackboardController.java
@@ -3,10 +3,14 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.shiro.ShiroKit;
-import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.SinataUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.controller.resp.TOrderServerResp;
+import com.stylefeng.guns.modular.system.enums.StatusEnum;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.DateUtil;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -17,7 +21,9 @@
import org.springframework.web.bind.annotation.ResponseBody;
import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.stream.Collectors;
/**
* 总览信息
@@ -43,6 +49,18 @@
@Autowired
private ITCompanyService companyService;
+ @Autowired
+ private ITAgentService tAgentService;
+ @Autowired
+ private ITDriverService tDriverService;
+ @Autowired
+ private ITOrderService tOrderService;
+ @Autowired
+ private ITRevenueService tRevenueService;
+ @Autowired
+ private ITDriverWorkService tDriverWorkService;
+ @Autowired
+ private RedisUtil redisUtil;
private ResultUtil resultUtil;
@@ -50,7 +68,7 @@
* 跳转到黑板
*/
@RequestMapping("")
- public String blackboard(Model model,Integer type) {
+ public String blackboard(Model model,Integer type,Integer agentId,String dayDate,String yearDate,String monthDate) {
//查询当前用户是否有"首页"菜单的权限
Integer id = ShiroKit.getUser().getId();
User user = userService.selectById(id);
@@ -59,17 +77,178 @@
return "/home.html";
} else {
//查询登录次数
- int count = loginLogService.selectCount(new EntityWrapper<LoginLog>().eq("userid", ShiroKit.getUser().getId()));
- model.addAttribute("loginNum", count);
+// int count = loginLogService.selectCount(new EntityWrapper<LoginLog>().eq("userid", ShiroKit.getUser().getId()));
+// model.addAttribute("loginNum", count);
+//
+// Role role = roleService.selectById(user.getRoleid());
+// Dept dept = deptService.selectById(user.getDeptid());
+//
+// model.addAttribute("deptName",dept==null?"顶级":dept.getFullname());
+// model.addAttribute("roleName", role.getName());
+// model.addAttribute("userName", user.getName());
+// model.addAttribute("date", DateUtil.getTime(new Date()));
+// model.addAttribute("user", user);
+ if(Objects.isNull(type)){
+ type = 1;
+ }
+ Integer objectId = ShiroKit.getUser().getObjectId();
+ Integer roleType = ShiroKit.getUser().getRoleType();
+ if(roleType != 1){
+ if(roleType == 3 && Objects.nonNull(objectId)){
+ // 查询所有代理商
+ List<TAgent> agentList = tAgentService.selectList(new EntityWrapper<TAgent>()
+ .ne("status", StatusEnum.DELETE.getCode())
+ .ne("principal","")
+ .eq("id",objectId));
+ model.addAttribute("agentList",agentList);
+ agentId = objectId;
+ }
+ }else {
+ // 查询所有代理商
+ List<TAgent> agentList = tAgentService.selectList(new EntityWrapper<TAgent>()
+ .ne("status", StatusEnum.DELETE.getCode())
+ .ne("principal",""));
+ model.addAttribute("agentList",agentList);
+ }
+ model.addAttribute("txt",new SimpleDateFormat("yyyy年MM月dd日").format(new Date()) + DateUtil.getWeekDay(new Date()) + ",欢迎" +
+ Objects.requireNonNull(ShiroKit.getUser()).getName() + "登录");
+ Map<String, Object> map = new HashMap<>();
+ if(Objects.nonNull(agentId)){
+ // 统计代理商
+ tAgentService.getDataStatistics(agentId,model,map);
- Role role = roleService.selectById(user.getRoleid());
- Dept dept = deptService.selectById(user.getDeptid());
+ // 统计司机数
+ tDriverService.getDataStatistics(agentId,model,map);
- model.addAttribute("deptName",dept==null?"顶级":dept.getFullname());
- model.addAttribute("roleName", role.getName());
- model.addAttribute("userName", user.getName());
- model.addAttribute("date", DateUtil.getTime(new Date()));
- model.addAttribute("user", user);
+ // 订单统计本月
+ tOrderService.getStatisticsOrderByMonth(agentId,dayDate,model,map);
+
+ // 订单统计,每年按月份
+ tOrderService.getDataStatisticsByYear(agentId,yearDate,model,map);
+
+ // 业绩排名 performanceTable
+ if (1 == type){
+ // 单量
+ tOrderService.getDataStatisticsOrderCount(agentId,monthDate,model,map);
+ }else {
+ // 收入、佣金
+ tRevenueService.getDataStatisticsIncomeOrCommission(agentId,monthDate,type,model,map);
+ }
+
+ // 查询统计在线司机,待接单,服务中,已完成,已取消
+ List<TDriver> onLineDriver = tDriverService.selectList(new EntityWrapper<TDriver>()
+ .eq("agentId", agentId)
+ .eq("serverStatus", 2));
+ model.addAttribute("onLineDriverCount",onLineDriver.size());
+ tOrderService.getDataStatisticsCount(agentId,model);
+ // 查询服务中的订单列表
+ List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerList(agentId);
+ // 查询司机
+ for (TOrderServerResp tOrderServerResp : orderServerRespList) {
+ TDriver tDriver = tDriverService.selectById(tOrderServerResp.getDriverId());
+ tOrderServerResp.setAvatar(tDriver.getAvatar());
+ tOrderServerResp.setDriverName(tDriver.getName());
+ }
+ model.addAttribute("serverList",orderServerRespList);
+ // 查询今天所有订单
+ List<TOrder> allList = tOrderService.getDataStatisticsAllList(agentId,type);
+ List<List<String>> list = new ArrayList<>(allList.size());
+ for (TOrder tOrder : allList) {
+ List<String> obj = new ArrayList<>(3);
+ obj.add(tOrder.getStartLng());
+ obj.add(tOrder.getStartLat());
+ obj.add(String.valueOf(tOrder.getState()));
+ list.add(obj);
+ }
+ model.addAttribute("allList",list);
+ List<List<String>> list1 = new ArrayList<>(allList.size());
+ for (TDriver tDriver : onLineDriver) {
+ List<String> obj = new ArrayList<>(3);
+ String value = redisUtil.getValue("DRIVER" + tDriver.getId());
+ if(ToolUtil.isEmpty(value)){
+ continue;
+ }
+ obj.add(value.split(",")[0]);// 经度
+ obj.add(value.split(",")[1]);// 纬度
+ obj.add(String.valueOf(tDriver.getServerStatus()));// 服务状态
+ list1.add(obj);
+ }
+ // 拿到所有在线司机地址
+ model.addAttribute("onLineDriver",list1);
+
+ }else {
+ // 查询广东全区域数据 查询广东所有的代理商
+ List<TAgent> tAgentList = tAgentService.selectList(new EntityWrapper<TAgent>()
+ .eq("status", 1));
+ List<Integer> ids = tAgentList.stream().map(TAgent::getId).collect(Collectors.toList());
+ // 统计代理商
+ tAgentService.getDataStatisticsByIds(ids,model,map);
+
+ // 统计司机数
+ tDriverService.getDataStatisticsByIds(ids,model,map);
+
+ // 订单统计本月
+ tOrderService.getStatisticsOrderByMonthIds(ids,dayDate,model,map);
+
+ // 订单统计,每年按月份
+ tOrderService.getDataStatisticsByYearByIds(ids,yearDate,model,map);
+
+ // 业绩排名 performanceTable
+ if (1 == type){
+ // 单量
+ tOrderService.getDataStatisticsOrderCountByIds(ids,monthDate,model,map);
+ }else {
+ // 收入、佣金
+ tRevenueService.getDataStatisticsIncomeOrCommissionByIds(ids,monthDate,type,model,map);
+ }
+
+ // 查询统计在线司机,待接单,服务中,已完成,已取消
+ List<TDriver> onLineDriver = tDriverService.selectList(new EntityWrapper<TDriver>()
+ .in("agentId", ids)
+ .eq("serverStatus", 2));
+
+ model.addAttribute("onLineDriverCount",onLineDriver.size());
+
+ List<TAgent> tAgentAllList = tAgentService.selectList(new EntityWrapper<TAgent>());
+ List<Integer> allIds = tAgentAllList.stream().map(TAgent::getId).collect(Collectors.toList());
+
+ tOrderService.getDataStatisticsCountByIds(allIds,model);
+ // 查询服务中的订单列表 所有
+ List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerListByIds(allIds);
+ // 查询司机
+ for (TOrderServerResp tOrderServerResp : orderServerRespList) {
+ TDriver tDriver = tDriverService.selectById(tOrderServerResp.getDriverId());
+ tOrderServerResp.setAvatar(tDriver.getAvatar());
+ tOrderServerResp.setDriverName(tDriver.getName());
+ }
+ model.addAttribute("serverList",orderServerRespList);
+ // 查询今天所有订单 所有
+ List<TOrder> allList = tOrderService.getDataStatisticsAllListByIds(allIds,type);
+ List<List<String>> list = new ArrayList<>(allList.size());
+ for (TOrder tOrder : allList) {
+ List<String> obj = new ArrayList<>(3);
+ obj.add(tOrder.getStartLng());
+ obj.add(tOrder.getStartLat());
+ obj.add(String.valueOf(tOrder.getState()));
+ list.add(obj);
+ }
+ model.addAttribute("allList",list);
+ List<List<String>> list1 = new ArrayList<>(allList.size());
+ for (TDriver tDriver : onLineDriver) {
+ List<String> obj = new ArrayList<>(3);
+ String value = redisUtil.getValue("DRIVER" + tDriver.getId());
+ if(ToolUtil.isEmpty(value)){
+ continue;
+ }
+ obj.add(value.split(",")[0]);// 经度
+ obj.add(value.split(",")[1]);// 纬度
+ obj.add(String.valueOf(tDriver.getServerStatus()));// 服务状态
+ list1.add(obj);
+ }
+ // 拿到所有在线司机地址
+ model.addAttribute("onLineDriver",list1);
+
+ }
return "/blackboardBlank.html";
}
}
@@ -93,4 +272,32 @@
}
+ /**
+ * 获取语音播报
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping(value = "/queryOrderBroadcast", method = RequestMethod.POST)
+ public Map<String, Object> queryOrderBroadcast(){
+ String newOrder = redisUtil.getValue("newOrder");
+ String cancelOrder = redisUtil.getValue("cancelOrder");
+ String lobbyOrder = redisUtil.getValue("lobbyOrder");
+ Map<String, Object> map = new HashMap<>();
+ boolean n = ToolUtil.isNotEmpty(newOrder) ? Boolean.valueOf(newOrder) : false;
+ boolean c = ToolUtil.isNotEmpty(cancelOrder) ? Boolean.valueOf(cancelOrder) : false;
+ boolean l = ToolUtil.isNotEmpty(lobbyOrder) ? Boolean.valueOf(lobbyOrder) : false;
+ map.put("newOrder", n);
+ map.put("cancelOrder", c);
+ map.put("lobbyOrder", l);
+ if(n){
+ redisUtil.setStrValue("newOrder", "false");
+ }
+ if(c){
+ redisUtil.setStrValue("cancelOrder", "false");
+ }
+ if(l){
+ redisUtil.setStrValue("lobbyOrder", "false");
+ }
+ return map;
+ }
}
\ No newline at end of file
--
Gitblit v1.7.1