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