diff --git a/src/main/java/com/ruoyi/project/hit/controller/PupuEquipmentController.java b/src/main/java/com/ruoyi/project/hit/controller/PupuEquipmentController.java index bc451f1..414bbdd 100644 --- a/src/main/java/com/ruoyi/project/hit/controller/PupuEquipmentController.java +++ b/src/main/java/com/ruoyi/project/hit/controller/PupuEquipmentController.java @@ -7,6 +7,8 @@ import com.ruoyi.project.hit.service.PupuEquipmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/hit/equipment") public class PupuEquipmentController extends BaseController { @@ -23,4 +25,10 @@ public class PupuEquipmentController extends BaseController { return toAjax(pupuEquipmentService.del(equipmentId)); } + @GetMapping("/selectByStoreId/{storeId}") + public AjaxResult selectByStoreId(@PathVariable(value = "storeId") Integer storeId){ + List pupuEquipments = pupuEquipmentService.selectByStoreId(storeId); + return AjaxResult.success(pupuEquipments); + } + } diff --git a/src/main/java/com/ruoyi/project/hit/controller/PupuStoreController.java b/src/main/java/com/ruoyi/project/hit/controller/PupuStoreController.java index 07c8229..270a9cc 100644 --- a/src/main/java/com/ruoyi/project/hit/controller/PupuStoreController.java +++ b/src/main/java/com/ruoyi/project/hit/controller/PupuStoreController.java @@ -2,6 +2,7 @@ package com.ruoyi.project.hit.controller; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.project.hit.domain.PupuStore; import com.ruoyi.project.hit.service.PupuStoreService; import com.ruoyi.project.hit.service.PupuUserService; @@ -9,6 +10,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Map; + @RestController @RequestMapping("/hit/store") public class PupuStoreController extends BaseController { @@ -33,6 +37,17 @@ public class PupuStoreController extends BaseController { @DeleteMapping("/del/{storeId}") public AjaxResult del(@PathVariable(value = "storeId")Integer storeId){ return toAjax(pupuStoreService.del(storeId)); + + } + + /** + * 查询全部门店信息 + * @return + */ + @GetMapping("/select") + public TableDataInfo select(){ + List> select = pupuStoreService.select(); + return getDataTable(select); } } diff --git a/src/main/java/com/ruoyi/project/hit/controller/PupuUpsHistoryController.java b/src/main/java/com/ruoyi/project/hit/controller/PupuUpsHistoryController.java index c767d1e..84d3681 100644 --- a/src/main/java/com/ruoyi/project/hit/controller/PupuUpsHistoryController.java +++ b/src/main/java/com/ruoyi/project/hit/controller/PupuUpsHistoryController.java @@ -71,5 +71,17 @@ public class PupuUpsHistoryController extends BaseController { return getDataTable(select); } + /** + * 查看当前设备最新历史记录 + * @param upsId + * @return + */ + @GetMapping("/selectLatestHistory/{upsId}") + public AjaxResult selectLatestHistory(@PathVariable(value = "upsId")Integer upsId){ + return AjaxResult.success(pupuUpsHistoryService.selectLatestHistory(upsId)); + } + + + } diff --git a/src/main/java/com/ruoyi/project/hit/controller/PupuUserController.java b/src/main/java/com/ruoyi/project/hit/controller/PupuUserController.java index 771fb2d..1267bda 100644 --- a/src/main/java/com/ruoyi/project/hit/controller/PupuUserController.java +++ b/src/main/java/com/ruoyi/project/hit/controller/PupuUserController.java @@ -5,12 +5,15 @@ import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.project.hit.domain.PupuUser; import com.ruoyi.project.hit.domain.vo.UserLoginVO; import com.ruoyi.project.hit.service.PupuUserService; +import com.ruoyi.project.hit.util.JwtUtil; import com.ruoyi.project.hit.util.webSocket.WsServerEndpoint; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.concurrent.TimeUnit; @RestController @RequestMapping("/hit/user") @@ -19,12 +22,16 @@ public class PupuUserController extends BaseController { private PupuUserService pupuUserService; @Autowired - private WsServerEndpoint wsServerEndpoint; + private RedisTemplate redisTemplate; + @PostMapping("/login") public AjaxResult login(@RequestBody UserLoginVO userLoginVO){ PupuUser loginer = pupuUserService.login(userLoginVO); if(loginer!=null){ - return AjaxResult.success(loginer); + String token = JwtUtil.generateToken(userLoginVO.getUserName()); + System.out.println("token:"+token); + redisTemplate.opsForValue().set(token,loginer,60, TimeUnit.MILLISECONDS); + return AjaxResult.success(token); }else { return AjaxResult.error("账号或密码错误"); } @@ -33,9 +40,5 @@ public class PupuUserController extends BaseController { public AjaxResult register(@Validated @RequestBody PupuUser pupuUser){ return toAjax(pupuUserService.register(pupuUser)); } - @GetMapping("/aa") - public void aa() throws Exception { - wsServerEndpoint.sendAllUser("67"); - } } diff --git a/src/main/java/com/ruoyi/project/hit/domain/PupuStore.java b/src/main/java/com/ruoyi/project/hit/domain/PupuStore.java index 5fe8a35..213d7db 100644 --- a/src/main/java/com/ruoyi/project/hit/domain/PupuStore.java +++ b/src/main/java/com/ruoyi/project/hit/domain/PupuStore.java @@ -27,6 +27,15 @@ public class PupuStore implements Serializable { @NotBlank(message = "纬度不能为空") private String latitude; + @NotBlank(message = "省不能为空") + private String province; + + @NotBlank(message = "市不能为空") + private String city; + + @NotBlank(message = "县/区不能为空") + private String district; + private Integer status; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/hit/domain/vo/SelectStoreVO.java b/src/main/java/com/ruoyi/project/hit/domain/vo/SelectStoreVO.java new file mode 100644 index 0000000..2f72f76 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/domain/vo/SelectStoreVO.java @@ -0,0 +1,3 @@ +package com.ruoyi.project.hit.domain.vo; + +import lombok.Data; diff --git a/src/main/java/com/ruoyi/project/hit/mapper/PupuUpsHistoryMapper.java b/src/main/java/com/ruoyi/project/hit/mapper/PupuUpsHistoryMapper.java index fabb8ff..37f3431 100644 --- a/src/main/java/com/ruoyi/project/hit/mapper/PupuUpsHistoryMapper.java +++ b/src/main/java/com/ruoyi/project/hit/mapper/PupuUpsHistoryMapper.java @@ -16,6 +16,8 @@ import java.util.List; public interface PupuUpsHistoryMapper extends BaseMapper { List select(UpsHistoryVO upsHistoryVO); + + List selectLatestHistory(Integer upsId); } diff --git a/src/main/java/com/ruoyi/project/hit/service/PupuEquipmentService.java b/src/main/java/com/ruoyi/project/hit/service/PupuEquipmentService.java index 2fe5db4..37862a4 100644 --- a/src/main/java/com/ruoyi/project/hit/service/PupuEquipmentService.java +++ b/src/main/java/com/ruoyi/project/hit/service/PupuEquipmentService.java @@ -3,6 +3,8 @@ package com.ruoyi.project.hit.service; import com.ruoyi.project.hit.domain.PupuEquipment; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * @author HP * @description 针对表【pupu_equipment】的数据库操作Service @@ -13,4 +15,6 @@ public interface PupuEquipmentService extends IService { int add(PupuEquipment pupuEquipment); int del(Integer equipmentId); + + List selectByStoreId(Integer storeId); } diff --git a/src/main/java/com/ruoyi/project/hit/service/PupuStoreService.java b/src/main/java/com/ruoyi/project/hit/service/PupuStoreService.java index 9e3083c..ca26b64 100644 --- a/src/main/java/com/ruoyi/project/hit/service/PupuStoreService.java +++ b/src/main/java/com/ruoyi/project/hit/service/PupuStoreService.java @@ -3,6 +3,9 @@ package com.ruoyi.project.hit.service; import com.ruoyi.project.hit.domain.PupuStore; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** * @author HP * @description 针对表【pupu_store】的数据库操作Service @@ -13,4 +16,6 @@ public interface PupuStoreService extends IService { int add(PupuStore pupuStore); int del(Integer storeId); + + List> select(); } diff --git a/src/main/java/com/ruoyi/project/hit/service/PupuUpsHistoryService.java b/src/main/java/com/ruoyi/project/hit/service/PupuUpsHistoryService.java index 6fe7474..b70fea9 100644 --- a/src/main/java/com/ruoyi/project/hit/service/PupuUpsHistoryService.java +++ b/src/main/java/com/ruoyi/project/hit/service/PupuUpsHistoryService.java @@ -6,6 +6,7 @@ import com.ruoyi.project.hit.domain.vo.UpsHistoryVO; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author HP @@ -15,4 +16,8 @@ import java.util.List; public interface PupuUpsHistoryService extends IService { List select(UpsHistoryVO upsHistoryVO); + + Map selectLatestHistory(Integer upsId); + + } diff --git a/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java b/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java index 070bab8..9065e27 100644 --- a/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java +++ b/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; +import java.util.List; /** * @author HP @@ -54,6 +55,13 @@ public class PupuEquipmentServiceImpl extends ServiceImpl selectByStoreId(Integer storeId) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(PupuEquipment::getStoreId,storeId); + return pupuEquipmentMapper.selectList(wrapper); + } } diff --git a/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java b/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java index b43bfc9..741f939 100644 --- a/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java +++ b/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.project.hit.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.project.hit.domain.PupuLog; import com.ruoyi.project.hit.domain.PupuStore; @@ -9,7 +10,7 @@ import com.ruoyi.project.hit.mapper.PupuStoreMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; +import java.util.*; /** * @author HP @@ -36,6 +37,29 @@ public class PupuStoreServiceImpl extends ServiceImpl> select() { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + List pupuStores = pupuStoreMapper.selectList(wrapper); + + List> list=new ArrayList<>(); + for (PupuStore pupuStore : pupuStores) { + Map map=new HashMap<>(); + map.put("storeId",pupuStore.getStoreId()); + String[] arr={pupuStore.getLongitude(),pupuStore.getLatitude()}; + map.put("lnglat",arr); + map.put("province",pupuStore.getProvince()); + map.put("city",pupuStore.getCity()); + map.put("district",pupuStore.getDistrict()); + map.put("name",pupuStore.getStoreName()); + map.put("state",pupuStore.getStatus()); + list.add(map); + } + + + return list; + } } diff --git a/src/main/java/com/ruoyi/project/hit/service/impl/PupuUpsHistoryServiceImpl.java b/src/main/java/com/ruoyi/project/hit/service/impl/PupuUpsHistoryServiceImpl.java index 10331e5..07181f7 100644 --- a/src/main/java/com/ruoyi/project/hit/service/impl/PupuUpsHistoryServiceImpl.java +++ b/src/main/java/com/ruoyi/project/hit/service/impl/PupuUpsHistoryServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author HP @@ -25,6 +26,16 @@ public class PupuUpsHistoryServiceImpl extends ServiceImpl select(UpsHistoryVO upsHistoryVO) { return pupuUpsHistoryMapper.select(upsHistoryVO); } + + @Override + public Map selectLatestHistory(Integer upsId) { + List list = pupuUpsHistoryMapper.selectLatestHistory(upsId); + Map objectMap=new HashMap<>(); + for (HashMap map : list) { + objectMap.put((String) map.get("identifier"),map.get("value")); + } + return objectMap; + } } diff --git a/src/main/java/com/ruoyi/project/hit/util/JwtUtil.java b/src/main/java/com/ruoyi/project/hit/util/JwtUtil.java new file mode 100644 index 0000000..1715225 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/util/JwtUtil.java @@ -0,0 +1,41 @@ +package com.ruoyi.project.hit.util; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import java.util.Date; + +public class JwtUtil { + + private static final String SECRET_KEY = "your_secret_key"; // 用于签名的密钥 + + // 生成JWT + public static String generateToken(String username) { + Date now = new Date(); + Date expiryDate = new Date(now.getTime() + 1000 * 60 * 60 * 1); // 有效期1小时 + + return Jwts.builder() + .setSubject(username) + .setIssuedAt(now) + .setExpiration(expiryDate) + .signWith(SignatureAlgorithm.HS512, SECRET_KEY) + .compact(); + } + + // 解析JWT + public static Claims parseToken(String token) { + return Jwts.parser() + .setSigningKey(SECRET_KEY) + .parseClaimsJws(token) + .getBody(); + } + + // 验证JWT + public static boolean isTokenValid(String token) { + try { + Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token); + return true; + } catch (Exception e) { + return false; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/project/hit/util/ScheduledTasks.java b/src/main/java/com/ruoyi/project/hit/util/ScheduledTasks.java deleted file mode 100644 index fa90743..0000000 --- a/src/main/java/com/ruoyi/project/hit/util/ScheduledTasks.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.ruoyi.project.hit.util; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.data.redis.core.Cursor; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.ScanOptions; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.io.IOException; -import java.util.Date; -import java.util.Map; - -@Component -public class ScheduledTasks { - - // 定时任务,每30秒执行一次 -// @Scheduled(fixedRate = 3000) - public void reportCurrentTime1() { - System.out.println(11); - long l = System.currentTimeMillis(); - Map upsMap = Util1.upsMap; - for (Map.Entry entry : upsMap.entrySet()) { - if(l-entry.getValue()>=30000){ - System.out.println(entry.getKey()); - } - } - - } - - - -} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/project/hit/util/interceptor/HitInterceptor.java b/src/main/java/com/ruoyi/project/hit/util/interceptor/HitInterceptor.java new file mode 100644 index 0000000..fc30d82 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/util/interceptor/HitInterceptor.java @@ -0,0 +1,43 @@ +package com.ruoyi.project.hit.util.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +@Component +public class HitInterceptor implements HandlerInterceptor { + @Autowired + private RedisTemplate redisTemplate; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("Authorization"); + System.out.println("token:" +token); + String path = request.getRequestURI(); + if (path.startsWith("/hit") && !"/hit/user/register".equals(path) && !"/hit/user/login".equals(path) && token != null) { + // 拦截除了/hit/user之外的所有/hit开头的请求 + // 这里可以添加你的处理逻辑,比如重定向、返回错误信息等 + if(redisTemplate.hasKey(token)){ + return true; + } + return false; // 返回false表示拦截器链中断,不再继续执行后续的Controller + } + // 放行/hit/user请求 + return true; + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + // 可以在这里处理请求处理之后、视图渲染之前的逻辑 + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + // 可以在这里处理视图渲染之后的逻辑 + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/project/hit/util/interceptor/WebConfig.java b/src/main/java/com/ruoyi/project/hit/util/interceptor/WebConfig.java new file mode 100644 index 0000000..40f1080 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/util/interceptor/WebConfig.java @@ -0,0 +1,21 @@ +package com.ruoyi.project.hit.util.interceptor; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + /*@Autowired + private HitInterceptor hitInterceptor; + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(hitInterceptor) + .addPathPatterns("/hit/**") // 拦截所有/hit开头的请求 + .excludePathPatterns("/hit/user/register") + .excludePathPatterns("/hit/user/login"); // 但不拦截/hit/user + }*/ +} \ No newline at end of file diff --git a/src/main/resources/mybatis/hit/PupuStoreMapper.xml b/src/main/resources/mybatis/hit/PupuStoreMapper.xml index af38f59..cddca56 100644 --- a/src/main/resources/mybatis/hit/PupuStoreMapper.xml +++ b/src/main/resources/mybatis/hit/PupuStoreMapper.xml @@ -8,7 +8,10 @@ - + + + + diff --git a/src/main/resources/mybatis/hit/PupuUpsHistoryMapper.xml b/src/main/resources/mybatis/hit/PupuUpsHistoryMapper.xml index 4b8fbe9..afcc1ef 100644 --- a/src/main/resources/mybatis/hit/PupuUpsHistoryMapper.xml +++ b/src/main/resources/mybatis/hit/PupuUpsHistoryMapper.xml @@ -54,4 +54,30 @@ + + +