|
@@ -0,0 +1,318 @@
|
|
|
+package com.huimv.wine.ws.su;
|
|
|
+
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
+import com.huimv.wine.common.EventWsErrUtil;
|
|
|
+import com.huimv.wine.entity.Change;
|
|
|
+import com.huimv.wine.entity.Manager;
|
|
|
+import com.huimv.wine.entity.Trade;
|
|
|
+import com.huimv.wine.entity.vo.QueryAdminVo;
|
|
|
+import com.huimv.wine.entity.vo.RankAdminsVo;
|
|
|
+import com.huimv.wine.entity.vo.RankDevicesVo;
|
|
|
+import com.huimv.wine.entity.vo.WsEvent;
|
|
|
+import com.huimv.wine.mapper.ChangeMapper;
|
|
|
+import com.huimv.wine.mapper.TradeMapper;
|
|
|
+import com.huimv.wine.mapper.WorkerMapper;
|
|
|
+import com.huimv.wine.utils.Result;
|
|
|
+import com.huimv.wine.utils.WebsocketManagerUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import javax.websocket.Session;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+@Component
|
|
|
+public class SuperDashboard {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TradeMapper tradeMapper;
|
|
|
+ @Autowired
|
|
|
+ private WorkerMapper workerMapper;
|
|
|
+ @Autowired
|
|
|
+ private ChangeMapper changeMapper;
|
|
|
+
|
|
|
+ public void handle(String event, JSONObject data, Session session, Manager manager) {
|
|
|
+ switch (event) {
|
|
|
+ case "superDashboardRankAdmins":
|
|
|
+ rankAdmins(session, manager, data);
|
|
|
+ break;
|
|
|
+ case "superDashboardRankDevices":
|
|
|
+ rankDevices(session, manager, data);
|
|
|
+ break;
|
|
|
+ case "superDashboardRankWines":
|
|
|
+ rankWines(session, manager, data);
|
|
|
+ break;
|
|
|
+ case "superDashboardRankWorkers":
|
|
|
+ rankWorkers(session, manager, data);
|
|
|
+ break;
|
|
|
+ case "superDashboardQueryAdmin":
|
|
|
+ queryAdmin(session, manager, data);
|
|
|
+ break;
|
|
|
+ case "superDashboardQueryDevice":
|
|
|
+ queryDevice(session, manager, data);
|
|
|
+ break;
|
|
|
+ case "superDashboardQueryWine":
|
|
|
+ queryWine(session, manager, data);
|
|
|
+ break;
|
|
|
+ case "superDashboardQueryWorker":
|
|
|
+ queryWorker(session, manager, data);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ WsEvent wsEvent = EventWsErrUtil.getWsErr("unrecognized event");
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void rankAdmins(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankAdminsRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("start")) || StringUtils.isBlank(data.getString("end"))) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankAdminsRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<RankAdminsVo> rankAdminsVos = tradeMapper.rankAdmins(data.getString("start"), data.getString("end"));
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankAdminsRes", Result.success(rankAdminsVos));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void rankDevices(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankDevicesRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("start")) || StringUtils.isBlank(data.getString("end"))) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankDevicesRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<RankDevicesVo> devicesVos = tradeMapper.rankDevices(data.getString("start"), data.getString("end"));
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankDevicesRes", Result.success(devicesVos));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void rankWines(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankWinesRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("start")) || StringUtils.isBlank(data.getString("end"))) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankWinesRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<RankAdminsVo> devicesVos = tradeMapper.rankWines(data.getString("start"), data.getString("end"));
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankWinesRes", Result.success(devicesVos));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void rankWorkers(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankWorkersRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("start")) || StringUtils.isBlank(data.getString("end"))) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankWorkersRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<RankAdminsVo> changeRankWorkers = workerMapper.changeRankWorkers(data.getString("start"), data.getString("end"));
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardRankWorkersRes", Result.success(changeRankWorkers));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void queryAdmin(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryAdminRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("id")) || data.getInteger("type") == null) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryAdminRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Integer type = data.getInteger("type");
|
|
|
+ if (0 == type) {
|
|
|
+ QueryWrapper<Trade> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("manager", data.getString("id"));
|
|
|
+ List<QueryAdminVo> queryAdmins = tradeMapper.queryAdmins(queryWrapper);
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryAdminRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ } else {
|
|
|
+ List<QueryAdminVo> queryAdmins = new ArrayList<>();
|
|
|
+ switch (type) {
|
|
|
+ case 1:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins2(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins2(data.getString("id"), 30, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins2(data.getString("id"), 120, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins2(data.getString("id"), 180, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins2(data.getString("id"), 360, "%Y-%m");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins2(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryAdminRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void queryDevice(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryDeviceRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("id")) || data.getInteger("type") == null) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryDeviceRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Integer type = data.getInteger("type");
|
|
|
+ if (0 == type) {
|
|
|
+ QueryWrapper<Trade> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("device", data.getString("id"));
|
|
|
+ List<QueryAdminVo> queryAdmins = tradeMapper.queryAdmins(queryWrapper);
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryDeviceRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ } else {
|
|
|
+ List<QueryAdminVo> queryAdmins = new ArrayList<>();
|
|
|
+ switch (type) {
|
|
|
+ case 1:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins3(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins3(data.getString("id"), 30, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins3(data.getString("id"), 120, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins3(data.getString("id"), 180, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins3(data.getString("id"), 360, "%Y-%m");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins3(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryDeviceRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void queryWine(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryWineRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("id")) || data.getInteger("type") == null) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryWineRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Integer type = data.getInteger("type");
|
|
|
+ if (0 == type) {
|
|
|
+ QueryWrapper<Trade> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("wine", data.getString("id"));
|
|
|
+ List<QueryAdminVo> queryAdmins = tradeMapper.queryAdmins(queryWrapper);
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryWineRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ } else {
|
|
|
+ List<QueryAdminVo> queryAdmins = new ArrayList<>();
|
|
|
+ switch (type) {
|
|
|
+ case 1:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins4(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins4(data.getString("id"), 30, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins4(data.getString("id"), 120, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins4(data.getString("id"), 180, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins4(data.getString("id"), 360, "%Y-%m");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ queryAdmins = tradeMapper.queryAdmins4(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryWineRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void queryWorker(Session session, Manager manager, JSONObject data) {
|
|
|
+ if (!manager.getIsSuper()) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryWorkerRes", Result.fail("权限不足"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(data.getString("id")) || data.getInteger("type") == null) {
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryWorkerRes", Result.fail("参数错误"));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Integer type = data.getInteger("type");
|
|
|
+ if (0 == type) {
|
|
|
+ List<QueryAdminVo> queryAdmins = changeMapper.changeQueryWorker(data.getString("id"));
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryAdminRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ } else {
|
|
|
+ List<QueryAdminVo> queryAdmins = new ArrayList<>();
|
|
|
+ switch (type) {
|
|
|
+ case 1:
|
|
|
+ queryAdmins = changeMapper.changeQueryWorker2(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ queryAdmins = changeMapper.changeQueryWorker2(data.getString("id"), 30, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ queryAdmins = changeMapper.changeQueryWorker2(data.getString("id"), 120, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ queryAdmins = changeMapper.changeQueryWorker2(data.getString("id"), 180, "%Y-%m");
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ queryAdmins = changeMapper.changeQueryWorker2(data.getString("id"), 360, "%Y-%m");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ queryAdmins = changeMapper.changeQueryWorker2(data.getString("id"), 7, "%Y-%m-%d");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ WsEvent wsEvent = new WsEvent("superDashboardQueryWorkerRes", Result.success(queryAdmins));
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|