Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2f62eebfc1 |
@ -0,0 +1,23 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.assetLoginLog;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.assetLoginLog.vo.LoginBody;
|
||||||
|
import cn.iocoder.yudao.module.ticket.enums.ApiConstants;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@FeignClient(name = ApiConstants.NAME)
|
||||||
|
@Tag(name = "登陆日志")
|
||||||
|
public interface AssetLoginLogApi {
|
||||||
|
String PREFIX = ApiConstants.PREFIX + "/assetLoginLog";
|
||||||
|
@PostMapping(PREFIX + "/login")
|
||||||
|
@Operation(summary = "设备登陆")
|
||||||
|
public CommonResult login(@RequestBody LoginBody loginBody);
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.assetLoginLog.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class LoginBody {
|
||||||
|
//设备id
|
||||||
|
private String deviceId;
|
||||||
|
//识别码
|
||||||
|
private String identificationCode;
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.heartbeat;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.Heartbeat;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.PassengerInformation;
|
||||||
|
import cn.iocoder.yudao.module.ticket.enums.ApiConstants;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
@FeignClient(name = ApiConstants.NAME)
|
||||||
|
@Tag(name = "设备状态")
|
||||||
|
public interface HeartBeatApi {
|
||||||
|
String PREFIX = ApiConstants.PREFIX + "/heartbeat";
|
||||||
|
@PostMapping(PREFIX)
|
||||||
|
@Operation(summary = "设备状态上报")
|
||||||
|
public CommonResult<String> receiveHeartbeat(@RequestBody Heartbeat heartbeat);
|
||||||
|
|
||||||
|
@PostMapping(PREFIX + "/doPassengerInformation")
|
||||||
|
@Operation(summary = "旅客信息上报")
|
||||||
|
public CommonResult<String> doPassengerInformation(@RequestBody PassengerInformation passengerInformation);
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.heartbeat.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Heartbeat {
|
||||||
|
//设备ID
|
||||||
|
private String deviceId;
|
||||||
|
//事件类型(1.设备上线 -1.故障发生 0.设备离线)
|
||||||
|
private String eventType;
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.heartbeat.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PassengerInformation {
|
||||||
|
//编号
|
||||||
|
private String id;
|
||||||
|
//设备id
|
||||||
|
private String deviceId;
|
||||||
|
//旅客姓名
|
||||||
|
private String name;
|
||||||
|
//旅客身份证
|
||||||
|
private String idCard;
|
||||||
|
//提交时间
|
||||||
|
private String commitTime;
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.assetLoginLog;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.assetLoginLog.vo.LoginBody;
|
||||||
|
import cn.iocoder.yudao.module.ticket.service.login.LoginService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
@RestController // 提供 RESTful API 接口,给 Feign 调用
|
||||||
|
@Validated
|
||||||
|
public class AssetLoginLogApiImpl implements AssetLoginLogApi {
|
||||||
|
@Resource
|
||||||
|
private LoginService loginService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult login(LoginBody loginBody) {
|
||||||
|
System.out.println("loginBody======" + loginBody);
|
||||||
|
cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginBody loginBody1 = new cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginBody();
|
||||||
|
loginBody1.setDeviceId(loginBody.getDeviceId());
|
||||||
|
loginBody1.setIdentificationCode(loginBody.getIdentificationCode());
|
||||||
|
return loginService.login(loginBody1);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.assetLoginLog.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import org.springframework.data.mongodb.core.mapping.Document;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备登录日志 DO
|
||||||
|
*
|
||||||
|
* @author 管理员
|
||||||
|
*/
|
||||||
|
@Document("loginLog")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AssetLoginLogVO{
|
||||||
|
//编号
|
||||||
|
private String id;
|
||||||
|
//登录时间
|
||||||
|
private String loginTime;
|
||||||
|
//设备id
|
||||||
|
private String deviceId;
|
||||||
|
//设备类型
|
||||||
|
private String assetType;
|
||||||
|
//设备名称
|
||||||
|
private String assetName;
|
||||||
|
//识别码
|
||||||
|
private String identificationCode;
|
||||||
|
//登录状态
|
||||||
|
private String status;
|
||||||
|
//登录状态备注
|
||||||
|
private String loginRemark;
|
||||||
|
//登录参数
|
||||||
|
private String loginParameter;
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.heartbeat;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.Heartbeat;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.PassengerInformation;
|
||||||
|
import cn.iocoder.yudao.module.ticket.service.heartbeat.HeartbeatService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@RestController // 提供 RESTful API 接口,给 Feign 调用
|
||||||
|
@Validated
|
||||||
|
public class HeartBeatApiImpl implements HeartBeatApi{
|
||||||
|
@Resource
|
||||||
|
private HeartbeatService heartBeatService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult<String> receiveHeartbeat(Heartbeat heartbeat) {
|
||||||
|
cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.Heartbeat heartbeat1 = new cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.Heartbeat();
|
||||||
|
heartbeat1.setDeviceId(heartbeat.getDeviceId());
|
||||||
|
heartbeat1.setEventType(heartbeat.getEventType());
|
||||||
|
return heartBeatService.receiveHeartbeat(heartbeat1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult<String> doPassengerInformation(PassengerInformation passengerInformation) {
|
||||||
|
cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.PassengerInformation passengerInformation1 = new cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.PassengerInformation();
|
||||||
|
passengerInformation1.setId(passengerInformation.getId());
|
||||||
|
passengerInformation1.setName(passengerInformation.getName());
|
||||||
|
passengerInformation1.setCommitTime(passengerInformation.getCommitTime());
|
||||||
|
passengerInformation1.setIdCard(passengerInformation.getIdCard());
|
||||||
|
passengerInformation1.setDeviceId(passengerInformation.getDeviceId());
|
||||||
|
return heartBeatService.doPassengerInformation(passengerInformation1);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.api.heartbeat.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
import org.springframework.data.mongodb.core.mapping.Document;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备 DO
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@Document("asset")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AssetVO {
|
||||||
|
private String id;
|
||||||
|
private String dataId;
|
||||||
|
private String assetname;
|
||||||
|
private String assettype;
|
||||||
|
private String assettypename;
|
||||||
|
private String isOnline;
|
||||||
|
private long lastFeedbackTime;
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.controller.admin.heartbeat;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.Heartbeat;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.PassengerInformation;
|
||||||
|
import cn.iocoder.yudao.module.ticket.service.heartbeat.HeartbeatService;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/heart")
|
||||||
|
public class HeartbeatController {
|
||||||
|
@Resource
|
||||||
|
private HeartbeatService heartbeatService;
|
||||||
|
@PostMapping
|
||||||
|
public CommonResult<String> receiveHeartbeat(@RequestBody Heartbeat heartbeat) {
|
||||||
|
return heartbeatService.receiveHeartbeat(heartbeat);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/doPassengerInformation")
|
||||||
|
public CommonResult<String> doPassengerInformation(@RequestBody PassengerInformation passengerInformation){
|
||||||
|
return heartbeatService.doPassengerInformation(passengerInformation);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Heartbeat {
|
||||||
|
//设备ID
|
||||||
|
private String deviceId;
|
||||||
|
//事件类型(1.设备上线 -1.故障发生 0.设备离线)
|
||||||
|
private String eventType;
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.data.mongodb.core.mapping.Document;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Document("heartbeatlog")
|
||||||
|
@Data
|
||||||
|
public class HeartbeatLog {
|
||||||
|
private String id;
|
||||||
|
private String dataId;
|
||||||
|
private String assetname;
|
||||||
|
private String assettype;
|
||||||
|
private String assettypename;
|
||||||
|
private long lastFeedbackTime;
|
||||||
|
private String requesttext;
|
||||||
|
private String returntext;
|
||||||
|
private List<Map<String, Object>> dataMapList;
|
||||||
|
private String loginTime;
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.data.mongodb.core.mapping.Document;
|
||||||
|
|
||||||
|
@Document("passengerInformation")
|
||||||
|
@Data
|
||||||
|
public class PassengerInformation {
|
||||||
|
//编号
|
||||||
|
private String id;
|
||||||
|
//设备id
|
||||||
|
private String deviceId;
|
||||||
|
//旅客姓名
|
||||||
|
private String name;
|
||||||
|
//旅客身份证
|
||||||
|
private String idCard;
|
||||||
|
//提交时间
|
||||||
|
private String commitTime;
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.controller.admin.login;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginBody;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.dataobject.asset.AssetDO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.dataobject.assetLoginLog.AssetLoginLogDO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.mongodb.login.LoginRepository;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.mongodb.login.SysuserRepository;
|
||||||
|
import cn.iocoder.yudao.module.ticket.service.login.LoginService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class LoginController {
|
||||||
|
// @Autowired
|
||||||
|
// private SysuserRepository sysuserRepository;
|
||||||
|
// @Autowired
|
||||||
|
// private JwtUtils jwtUtils;
|
||||||
|
// @Autowired
|
||||||
|
// private LoginRepository loginRepository;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private LoginService loginService;
|
||||||
|
|
||||||
|
@PostMapping("/login")
|
||||||
|
public CommonResult login(@RequestBody LoginBody loginBody) {
|
||||||
|
return loginService.login(loginBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.controller.admin.login.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class LoginBody {
|
||||||
|
//设备id
|
||||||
|
private String deviceId;
|
||||||
|
//识别码
|
||||||
|
private String identificationCode;
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.controller.admin.login.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class LoginResult {
|
||||||
|
// private String userId;
|
||||||
|
// private String username;
|
||||||
|
private String token;
|
||||||
|
// private String userType;
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.dal.mongodb.heartbeat;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.AssetVO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.dataobject.asset.AssetDO;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Repository
|
||||||
|
public interface AssetRepository extends MongoRepository<AssetVO,String> {
|
||||||
|
|
||||||
|
List<AssetVO>findAllByAssettypename(String assettypename);
|
||||||
|
AssetVO findByDataId(String dataId);
|
||||||
|
List<AssetVO> findAllByIsOnline(String online);
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.dal.mongodb.heartbeat;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.HeartbeatLog;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
|
||||||
|
public interface HeartbeatLogRepository extends MongoRepository<HeartbeatLog,String> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.dal.mongodb.heartbeat;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.PassengerInformation;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface PassengerInformationRepository extends MongoRepository<PassengerInformation,String> {
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.dal.mongodb.login;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.assetLoginLog.vo.AssetLoginLogVO;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface LoginRepository extends MongoRepository<AssetLoginLogVO, String> {
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.dal.mongodb.login;
|
||||||
|
|
||||||
|
|
||||||
|
//import com.example.loginModel.domain.Sysuser;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.AssetVO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.dataobject.asset.AssetDO;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.data.mongodb.repository.Query;
|
||||||
|
|
||||||
|
public interface SysuserRepository extends MongoRepository<AssetVO,String> {
|
||||||
|
@Query("{'dataId': {'$regex': '?0', '$options': 'i'}}")
|
||||||
|
Page<AssetVO> findByName(String q, PageRequest pageable);
|
||||||
|
|
||||||
|
AssetVO findSysuserByDataId(String dataId);
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.service.heartbeat;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.Heartbeat;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.PassengerInformation;
|
||||||
|
|
||||||
|
public interface HeartbeatService {
|
||||||
|
public CommonResult<String> receiveHeartbeat(Heartbeat heartbeat);
|
||||||
|
public CommonResult<String> doPassengerInformation(PassengerInformation passengerInformation);
|
||||||
|
}
|
@ -0,0 +1,95 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.service.heartbeat;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.AssetVO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.Heartbeat;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.HeartbeatLog;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.heartbeat.domain.PassengerInformation;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.dataobject.asset.AssetDO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.mongodb.heartbeat.AssetRepository;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.mongodb.heartbeat.HeartbeatLogRepository;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.mongodb.heartbeat.PassengerInformationRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||||
|
import org.springframework.data.mongodb.core.query.Criteria;
|
||||||
|
import org.springframework.data.mongodb.core.query.Query;
|
||||||
|
import org.springframework.data.mongodb.core.query.Update;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class HeartbeatServiceImpl implements HeartbeatService {
|
||||||
|
@Autowired
|
||||||
|
private MongoTemplate mongoTemplate;
|
||||||
|
@Autowired
|
||||||
|
private HeartbeatLogRepository heartbeatLogRepository;
|
||||||
|
@Autowired
|
||||||
|
private AssetRepository assetRepository;
|
||||||
|
@Autowired
|
||||||
|
private PassengerInformationRepository passengerInformationRepository;
|
||||||
|
|
||||||
|
public void update(String id, String isonline) {
|
||||||
|
Query query = new Query(Criteria.where("dataId").is(id));
|
||||||
|
Update update = new Update().set("isOnline", isonline);
|
||||||
|
mongoTemplate.updateFirst(query, update, AssetDO.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult<String> receiveHeartbeat(@RequestBody Heartbeat heartbeat) {
|
||||||
|
AssetVO asset = assetRepository.findByDataId(heartbeat.getDeviceId());
|
||||||
|
HeartbeatLog heartbeatLog=new HeartbeatLog();
|
||||||
|
heartbeatLog.setDataId(asset.getDataId());
|
||||||
|
heartbeatLog.setAssetname(asset.getAssetname());
|
||||||
|
heartbeatLog.setAssettype(asset.getAssettype());
|
||||||
|
heartbeatLog.setAssettypename(asset.getAssettypename());
|
||||||
|
if(heartbeat.getEventType().equals("1")){
|
||||||
|
long currentTimeMillis = System.currentTimeMillis();
|
||||||
|
//
|
||||||
|
heartbeatLog.setLastFeedbackTime(currentTimeMillis);
|
||||||
|
heartbeatLog.setRequesttext(heartbeat.toString());
|
||||||
|
heartbeatLog.setReturntext(CommonResult.success("收到").toString());
|
||||||
|
//更新mongodb的数据
|
||||||
|
heartbeatLogRepository.save(heartbeatLog);
|
||||||
|
}
|
||||||
|
else if(heartbeat.getEventType().equals("-1")){
|
||||||
|
heartbeatLog.setLastFeedbackTime(System.currentTimeMillis());
|
||||||
|
heartbeatLog.setRequesttext(heartbeat.toString());
|
||||||
|
heartbeatLog.setReturntext(CommonResult.error(new ErrorCode(999910,"设备异常")).toString());
|
||||||
|
heartbeatLogRepository.save(heartbeatLog);
|
||||||
|
update(heartbeat.getDeviceId(),"0");
|
||||||
|
return CommonResult.error(new ErrorCode(999910,"设备异常"));
|
||||||
|
}else if(heartbeat.getEventType().equals("0")){
|
||||||
|
heartbeatLog.setLastFeedbackTime(System.currentTimeMillis());
|
||||||
|
heartbeatLog.setRequesttext(heartbeat.toString());
|
||||||
|
heartbeatLog.setReturntext(CommonResult.error(new ErrorCode(999911,"设备下线")).toString());
|
||||||
|
heartbeatLogRepository.save(heartbeatLog);
|
||||||
|
update(heartbeat.getDeviceId(),"0");
|
||||||
|
return CommonResult.error(new ErrorCode(999911,"设备下线"));
|
||||||
|
}else {
|
||||||
|
heartbeatLog.setLastFeedbackTime(System.currentTimeMillis());
|
||||||
|
heartbeatLog.setRequesttext(heartbeat.toString());
|
||||||
|
heartbeatLog.setReturntext(CommonResult.error(new ErrorCode(999912,"未知异常")).toString());
|
||||||
|
heartbeatLogRepository.save(heartbeatLog);
|
||||||
|
update(heartbeat.getDeviceId(),"0");
|
||||||
|
return CommonResult.error(new ErrorCode(999912,"未知异常"));
|
||||||
|
}
|
||||||
|
update(heartbeat.getDeviceId(),"1");
|
||||||
|
return CommonResult.success("收到");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult<String> doPassengerInformation(@RequestBody PassengerInformation passengerInformation){
|
||||||
|
System.out.println(passengerInformation);
|
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
passengerInformation.setCommitTime(simpleDateFormat.format(System.currentTimeMillis()));
|
||||||
|
passengerInformationRepository.save(passengerInformation);
|
||||||
|
return CommonResult.success("true");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.service.login;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginBody;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginResult;
|
||||||
|
|
||||||
|
public interface LoginService {
|
||||||
|
CommonResult login(LoginBody loginBody);
|
||||||
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
package cn.iocoder.yudao.module.ticket.service.login;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.assetLoginLog.vo.AssetLoginLogVO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.api.heartbeat.vo.AssetVO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginBody;
|
||||||
|
import cn.iocoder.yudao.module.ticket.controller.admin.login.domain.LoginResult;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.dataobject.asset.AssetDO;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.mongodb.login.LoginRepository;
|
||||||
|
import cn.iocoder.yudao.module.ticket.dal.mongodb.login.SysuserRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class LoginServiceImpl implements LoginService {
|
||||||
|
@Autowired
|
||||||
|
private SysuserRepository sysuserRepository;
|
||||||
|
// @Autowired
|
||||||
|
// private JwtUtils jwtUtils;
|
||||||
|
@Autowired
|
||||||
|
private LoginRepository loginRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult login(LoginBody loginBody) {
|
||||||
|
System.out.println(loginBody);
|
||||||
|
AssetLoginLogVO loginLog = new AssetLoginLogVO();
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
loginLog.setLoginTime(dateFormat.format(System.currentTimeMillis()));
|
||||||
|
loginLog.setDeviceId(loginBody.getDeviceId());
|
||||||
|
loginLog.setIdentificationCode(loginBody.getIdentificationCode());
|
||||||
|
loginLog.setLoginParameter(loginBody.toString());
|
||||||
|
if (ObjectUtils.isEmpty(loginBody.getDeviceId()) || ObjectUtils.isEmpty(loginBody.getIdentificationCode())) {
|
||||||
|
loginLog.setStatus("0");
|
||||||
|
loginLog.setLoginRemark("登录失败,设备id、识别码为空");
|
||||||
|
loginRepository.save(loginLog);
|
||||||
|
return CommonResult.error(new ErrorCode(999900,"设备id、识别码不能为空"));
|
||||||
|
}
|
||||||
|
AssetVO sysuser = sysuserRepository.findSysuserByDataId(loginBody.getDeviceId());
|
||||||
|
if (sysuser != null){
|
||||||
|
loginLog.setAssetType(sysuser.getAssettype());
|
||||||
|
loginLog.setAssetName(sysuser.getAssetname());
|
||||||
|
}
|
||||||
|
if(sysuser==null || !sysuser.getDataId().equals(loginBody.getDeviceId())){
|
||||||
|
loginLog.setStatus("0");
|
||||||
|
loginLog.setLoginRemark("登录失败,设备不存在");
|
||||||
|
loginRepository.save(loginLog);
|
||||||
|
return CommonResult.error(new ErrorCode(999901,"设备不存在!"));
|
||||||
|
}
|
||||||
|
if(!loginBody.getIdentificationCode().equals("zy_alike")){
|
||||||
|
loginLog.setStatus("0");
|
||||||
|
loginLog.setLoginRemark("登录失败,识别码错误");
|
||||||
|
loginRepository.save(loginLog);
|
||||||
|
return CommonResult.error(new ErrorCode(999902,"识别码错误!"));
|
||||||
|
}
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
map.put("deviceId", sysuser.getDataId());
|
||||||
|
map.put("identificationCode", loginBody.getIdentificationCode());
|
||||||
|
//返回登录成功信息
|
||||||
|
LoginResult result = new LoginResult();
|
||||||
|
// result.setUserId(sysuser.getId());
|
||||||
|
// result.setUsername(sysuser.getUsername());
|
||||||
|
// result.setToken(JWTUtil.sign(map));
|
||||||
|
loginLog.setStatus("1");
|
||||||
|
loginLog.setLoginRemark("登录成功");
|
||||||
|
loginRepository.save(loginLog);
|
||||||
|
return CommonResult.success(result);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user