From 7156119e51320afd0ffdd0723cd983fd415d61d9 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期四, 26 九月 2024 11:17:34 +0800
Subject: [PATCH] fix : 新增修改车数日志
---
src/main/java/com/boying/mapper/EditParkNumLogMapper.java | 17 +++
src/main/java/com/boying/service/impl/EditParkNumLogServiceImpl.java | 23 ++++
src/main/java/com/boying/util/IpUtil.java | 111 ++++++++++++++++++++++
src/main/java/com/boying/service/EditParkNumLogService.java | 16 +++
src/main/java/com/boying/entity/EditParkNumLog.java | 48 +++++++++
src/main/java/com/boying/controller/BarrierController.java | 33 ++++++
src/main/java/com/boying/controller/ParkController.java | 27 +++++
7 files changed, 273 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/boying/controller/BarrierController.java b/src/main/java/com/boying/controller/BarrierController.java
index a05bf04..92fc67a 100644
--- a/src/main/java/com/boying/controller/BarrierController.java
+++ b/src/main/java/com/boying/controller/BarrierController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.boying.common.R;
import com.boying.entity.Barrier;
@@ -24,7 +25,8 @@
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
@RestController
@RequestMapping("ffzf/barrier")
@@ -199,4 +201,33 @@
}
}
}
+
+ @PostMapping("getDisConnect")
+ @Operation(summary = "璁惧鎺夌嚎閫氱煡" , description = "璁惧鎺夌嚎閫氱煡" )
+ public Object getDisConnect() {
+ List<Map<String,Object>> resultlist = new ArrayList<>();
+ String barrierCodeAll = redisTemplate.opsForValue().get("barrierCode_all");
+ if(StringUtils.isBlank(barrierCodeAll)){
+ QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
+ wrapper.select(" code ");
+ List<Barrier> list = barrierService.list(wrapper);
+ String collect = list.stream().map(Barrier::getCode).collect(Collectors.joining(","));
+ redisTemplate.opsForValue().set("barrierCode_all",collect);
+ barrierCodeAll = collect;
+ }
+ for (String s : barrierCodeAll.split(",")) {
+ Barrier barrier = barrierService.findByCode(s);
+ long between = ChronoUnit.SECONDS.between(barrier.getUpdateTime(), LocalDateTime.now());
+ if(between>121){
+ Map<String,Object> map = new HashMap<>();
+ map.put("parkName",parkService.getOneById(barrier.getParkId()).getName());
+ map.put("type",barrier.getType()==0?"鍑哄彛":"鍏ュ彛");
+ map.put("downTime",barrier.getUpdateTime());
+ resultlist.add(map);
+ }
+ }
+ Collections.sort(resultlist, (m1, m2)-> String.valueOf(m2.get("downTime")).compareTo(String.valueOf(m1.get("downTime")))); // lamuda鎺掑簭
+ return R.ok(resultlist);
+ }
+
}
diff --git a/src/main/java/com/boying/controller/ParkController.java b/src/main/java/com/boying/controller/ParkController.java
index 0a9ec02..655572d 100644
--- a/src/main/java/com/boying/controller/ParkController.java
+++ b/src/main/java/com/boying/controller/ParkController.java
@@ -1,18 +1,24 @@
package com.boying.controller;
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.boying.common.R;
+import com.boying.entity.EditParkNumLog;
import com.boying.entity.EnterPark;
import com.boying.entity.Park;
import com.boying.entity.User;
+import com.boying.service.EditParkNumLogService;
import com.boying.service.EnterParkService;
import com.boying.service.ParkService;
import com.boying.service.UserService;
+import com.boying.util.IpUtil;
import com.boying.util.RedisJsonUtil;
import lombok.RequiredArgsConstructor;
+import org.apache.catalina.security.SecurityUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,7 +26,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
+import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -38,6 +47,7 @@
private final UserService userService;
private final RedisJsonUtil redisJsonUtil;
private final EnterParkService enterParkService;
+ private final EditParkNumLogService editParkNumLogService;
@PostMapping("/findPage")
public Object findPage(Page page) {
@@ -145,7 +155,7 @@
}
}
@PostMapping("/editParkCarNum")
- public Object editParkCarNum(Park park) {
+ public Object editParkCarNum(HttpServletRequest request, Park park) {
Park byId = parkService.getById(park.getId());
if(byId == null){
return R.failed("鏈煡璇㈠埌璇ュ仠杞﹀満");
@@ -154,11 +164,26 @@
redisTemplate.opsForValue().set("car_park_" + byId.getId(),park.getCarNum()+"",30, TimeUnit.DAYS);
redisTemplate.opsForValue().set("park_up_" + byId.getId(),"true",30, TimeUnit.DAYS);
parkService.updateById(byId);
+ String jsonValue = JSON.toJSONString(park);
+ redisTemplate.opsForValue().set("park-"+park.getId(), jsonValue);
+
+ String ipAddr = IpUtil.getIpAddr(request);
+ int num = byId.getNum();
+ int newNum = park.getNum();
+ EditParkNumLog numLog = new EditParkNumLog();
+ numLog.setIp(ipAddr);
+ numLog.setNum(num);
+ numLog.setNewNum(newNum);
+ numLog.setCreateTime(LocalDateTime.now());
+ editParkNumLogService.save(numLog);
+
return R.ok(null,"淇敼鎴愬姛");
}
}
+
+
@PostMapping("/getParkCar")
public Object getParkCar(Page page, Integer parkId,String carNo) {
QueryWrapper<EnterPark> enterParkQueryWrapper = new QueryWrapper<>();
diff --git a/src/main/java/com/boying/entity/EditParkNumLog.java b/src/main/java/com/boying/entity/EditParkNumLog.java
new file mode 100644
index 0000000..8fc3a89
--- /dev/null
+++ b/src/main/java/com/boying/entity/EditParkNumLog.java
@@ -0,0 +1,48 @@
+package com.boying.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.boying.common.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName EditParkNumLog.java
+ * @Description TODO
+ * @createTime 2024骞�09鏈�26鏃� 10:25:00
+ */
+@Data
+@TableName("edit_park_num_log")
+@javax.persistence.Table(name = "edit_park_num_log")
+@Entity
+@org.hibernate.annotations.Table(appliesTo = "edit_park_num_log", comment = "淇敼杞︿綅鏁拌褰曡〃")
+@ApiModel(value = "淇敼杞︿綅鏁拌褰曡〃")
+public class EditParkNumLog extends BaseEntity<EditParkNumLog> {
+
+ @ApiModelProperty(value = "ip鍦板潃")
+ @Column(columnDefinition = "varchar(100) comment 'ip鍦板潃'")
+ private String ip;
+
+ @ApiModelProperty(value = "鐢ㄦ埛鍚嶇О")
+ @Column(columnDefinition = "varchar(100) comment '鐢ㄦ埛鍚嶇О'")
+ private String username;
+
+ @ApiModelProperty(value = "鍘熻溅浣嶆暟")
+ @Column(columnDefinition = "int comment '鍘熻溅浣嶆暟'")
+ private int num;
+
+ @ApiModelProperty(value = "鏂拌溅浣嶆暟")
+ @Column(columnDefinition = "int comment '鏂拌溅浣嶆暟'")
+ private int newNum;
+
+ @ApiModelProperty(value = "鍋滆溅鍦哄悕绉�")
+ @Column(columnDefinition = "varchar(100) comment '鍋滆溅鍦哄悕绉�'")
+ private String parkName;
+
+
+}
diff --git a/src/main/java/com/boying/mapper/EditParkNumLogMapper.java b/src/main/java/com/boying/mapper/EditParkNumLogMapper.java
new file mode 100644
index 0000000..56206b5
--- /dev/null
+++ b/src/main/java/com/boying/mapper/EditParkNumLogMapper.java
@@ -0,0 +1,17 @@
+package com.boying.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.boying.entity.EditParkNumLog;
+import com.boying.entity.Park;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName ParkService.java
+ * @Description TODO
+ * @createTime 2022骞�11鏈�20鏃� 10:33:00
+ */
+@Mapper
+public interface EditParkNumLogMapper extends BaseMapper<EditParkNumLog> {
+}
diff --git a/src/main/java/com/boying/service/EditParkNumLogService.java b/src/main/java/com/boying/service/EditParkNumLogService.java
new file mode 100644
index 0000000..ee9f7a1
--- /dev/null
+++ b/src/main/java/com/boying/service/EditParkNumLogService.java
@@ -0,0 +1,16 @@
+package com.boying.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.boying.entity.EditParkNumLog;
+import com.boying.entity.LedShow;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName LedShowService.java
+ * @Description TODO
+ * @createTime 2022骞�11鏈�21鏃� 08:30:00
+ */
+public interface EditParkNumLogService extends IService<EditParkNumLog> {
+
+}
diff --git a/src/main/java/com/boying/service/impl/EditParkNumLogServiceImpl.java b/src/main/java/com/boying/service/impl/EditParkNumLogServiceImpl.java
new file mode 100644
index 0000000..67489f0
--- /dev/null
+++ b/src/main/java/com/boying/service/impl/EditParkNumLogServiceImpl.java
@@ -0,0 +1,23 @@
+package com.boying.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.boying.entity.EditParkNumLog;
+import com.boying.entity.LedShow;
+import com.boying.mapper.EditParkNumLogMapper;
+import com.boying.mapper.LedShowMapper;
+import com.boying.service.EditParkNumLogService;
+import com.boying.service.LedShowService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName LedShowServiceImpl.java
+ * @Description TODO
+ * @createTime 2022骞�11鏈�21鏃� 08:31:00
+ */
+@Service
+@AllArgsConstructor
+public class EditParkNumLogServiceImpl extends ServiceImpl<EditParkNumLogMapper, EditParkNumLog> implements EditParkNumLogService {
+}
diff --git a/src/main/java/com/boying/util/IpUtil.java b/src/main/java/com/boying/util/IpUtil.java
new file mode 100644
index 0000000..64c56c9
--- /dev/null
+++ b/src/main/java/com/boying/util/IpUtil.java
@@ -0,0 +1,111 @@
+package com.boying.util;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+public class IpUtil {
+ public static String getIpAddr1(HttpServletRequest request) {
+ String ipAddress = null;
+ try {
+ ipAddress = request.getHeader("x-forwarded-for");
+ if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getHeader("Proxy-Client-IP");
+ }
+ if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getHeader("WL-Proxy-Client-IP");
+ }
+ if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getRemoteAddr();
+ if (ipAddress.equals("127.0.0.1")) {
+ // 鏍规嵁缃戝崱鍙栨湰鏈洪厤缃殑IP
+ InetAddress inet = null;
+ try {
+ inet = InetAddress.getLocalHost();
+ } catch (UnknownHostException e) {
+ e.printStackTrace();
+ }
+ ipAddress = inet.getHostAddress();
+ }
+ }
+ // 瀵逛簬閫氳繃澶氫釜浠g悊鐨勬儏鍐碉紝绗竴涓狪P涓哄鎴风鐪熷疄IP,澶氫釜IP鎸夌収','鍒嗗壊
+ if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
+ // = 15
+ if (ipAddress.indexOf(",") > 0) {
+ ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
+ }
+ }
+ } catch (Exception e) {
+ ipAddress = "";
+ }
+ // ipAddress = this.getRequest().getRemoteAddr();
+
+ return "0:0:0:0:0:0:0:1".equals(ipAddress) ? "127.0.0.1" : ipAddress;
+ }
+
+ /**
+ * 鑾峰彇鐪熷疄ip鍦板潃,涓嶈繑鍥炲唴缃戝湴鍧�
+ *
+ * @param request
+ * @return
+ */
+ public static String getIpAddr2(HttpServletRequest request) {
+ //鐩墠鍒欐槸缃戝叧ip
+ String ip = request.getHeader("X-Real-IP");
+ if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
+ return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
+ }
+ ip = request.getHeader("X-Forwarded-For");
+ if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
+ int index = ip.indexOf(',');
+ if (index != -1) {
+ //鍙幏鍙栫涓�涓��
+ return ip.substring(0, index);
+ } else {
+ return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
+ }
+ } else {
+ //鍙栦笉鍒扮湡瀹瀒p鍒欒繑鍥炵┖锛屼笉鑳借繑鍥炲唴缃戝湴鍧�銆�
+ return "";
+ }
+ }
+
+
+ //鍏朵腑ip鐨勮幏鍙栨柟寮�
+ public static String getIpAddr(HttpServletRequest request) {
+
+ String ip = request.getHeader("x-forwarded-for");
+
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("X-Real-IP");
+ //LOGGER.error("X-Real-IP:"+ip);
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("http_client_ip");
+// LOGGER.error("http_client_ip:"+ip);
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getRemoteAddr();
+// LOGGER.error("getRemoteAddr:"+ip);
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("Proxy-Client-IP");
+// LOGGER.error("Proxy-Client-IP:"+ip);
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("WL-Proxy-Client-IP");
+// LOGGER.error("WL-Proxy-Client-IP:"+ip);
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+// LOGGER.error("HTTP_X_FORWARDED_FOR:"+ip);
+ }
+// 濡傛灉鏄绾т唬鐞嗭紝閭d箞鍙栫涓�涓猧p涓哄鎴穒p
+ if (ip != null && ip.indexOf(",") != -1) {
+ ip = ip.substring(ip.lastIndexOf(",") + 1, ip.length()).trim();
+// LOGGER.error("ip:"+ip);
+ }
+ return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
+ }
+
+}
--
Gitblit v1.9.1