Merge pull request '票务模块 自助机接口' (#109) from cgt into master

Reviewed-on: #109
This commit is contained in:
root 2025-03-03 14:31:05 +08:00
commit 612744be20
13 changed files with 241 additions and 0 deletions

View File

@ -0,0 +1,29 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.LoginBody;
import cn.iocoder.yudao.module.datacenter.service.asset.AssetLoginService;
import cn.iocoder.yudao.module.datacenter.service.asset.AssetService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Tag(name = "设备机")
@RestController
@RequestMapping("/assetLogin")
@Validated
public class AssetLoginApi {
@Resource
private AssetLoginService assetLoginService;
@PostMapping("/login")
@Operation(summary = "获得所有设备名称和数量")
public CommonResult login(@RequestBody LoginBody loginBody) {
System.out.println("datacenter loginBody:::::::::::::::::::" + loginBody);
return assetLoginService.login(loginBody);
}
}

View File

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.LoginBody;
import io.swagger.v3.oas.annotations.Operation;
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;
@FeignClient("ticket-server")
public interface AssetLoginClientApi {
@PostMapping("/rpc-api/ticket/assetLoginLog/login")
@Operation(summary = "设备登陆")
CommonResult login(@RequestBody LoginBody loginBody);
}

View File

@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.Heartbeat;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.LoginBody;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.PassengerInformation;
import cn.iocoder.yudao.module.datacenter.service.asset.AssetLoginService;
import cn.iocoder.yudao.module.datacenter.service.asset.HeartBeatService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Tag(name = "设备机")
@RestController
@RequestMapping("/asset/heartbeat")
@Validated
public class HeartBeatApi {
@Resource
private HeartBeatService heartBeatService;
@PostMapping
@Operation(summary = "设备状态上报")
public CommonResult receiveHeartbeat(@RequestBody Heartbeat heartbeat) {
return heartBeatService.receiveHeartbeat(heartbeat);
}
@PostMapping("/doPassengerInformation")
public CommonResult<String> doPassengerInformation(@RequestBody PassengerInformation passengerInformation){
return heartBeatService.doPassengerInformation(passengerInformation);
}
}

View File

@ -0,0 +1,22 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.Heartbeat;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.LoginBody;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.PassengerInformation;
import io.swagger.v3.oas.annotations.Operation;
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;
@FeignClient("ticket-server")
public interface HeartBeatClientApi {
@PostMapping("/rpc-api/ticket/heartbeat")
@Operation(summary = "设备状态上报")
CommonResult receiveHeartbeat(@RequestBody Heartbeat heartbeat);
@PostMapping("/rpc-api/ticket/heartbeat/doPassengerInformation")
@Operation(summary = "旅客信息上报")
CommonResult doPassengerInformation(@RequestBody PassengerInformation passengerInformation);
}

View File

@ -0,0 +1,11 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset.vo;
import lombok.Data;
@Data
public class Heartbeat {
//设备ID
private String deviceId;
//事件类型1.设备上线 -1.故障发生 0.设备离线
private String eventType;
}

View File

@ -0,0 +1,22 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset.vo;
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;
}

View File

@ -0,0 +1,11 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset.vo;
import lombok.Data;
@Data
public class LoginBody {
//设备id
private String deviceId;
//识别码
private String identificationCode;
}

View File

@ -0,0 +1,11 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset.vo;
import lombok.Data;
@Data
public class LoginResult {
// private String userId;
// private String username;
private String token;
// private String userType;
}

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.datacenter.controller.app.asset.vo;
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;
}

View File

@ -0,0 +1,9 @@
package cn.iocoder.yudao.module.datacenter.service.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.LoginBody;
public interface AssetLoginService {
CommonResult login(LoginBody loginBody);
}

View File

@ -0,0 +1,21 @@
package cn.iocoder.yudao.module.datacenter.service.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.AssetLoginClientApi;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.LoginBody;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
@Service
@Validated
public class AssetLoginServiceImpl implements AssetLoginService {
@Resource
private AssetLoginClientApi assetLoginClientApi;
@Override
public CommonResult login(LoginBody loginBody) {
return assetLoginClientApi.login(loginBody);
}
}

View File

@ -0,0 +1,10 @@
package cn.iocoder.yudao.module.datacenter.service.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.Heartbeat;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.PassengerInformation;
public interface HeartBeatService {
public CommonResult<String> receiveHeartbeat(Heartbeat heartbeat);
public CommonResult<String> doPassengerInformation(PassengerInformation passengerInformation);
}

View File

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.datacenter.service.asset;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.HeartBeatClientApi;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.Heartbeat;
import cn.iocoder.yudao.module.datacenter.controller.app.asset.vo.PassengerInformation;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
@Service
@Validated
public class HeartBeatServiceImpl implements HeartBeatService {
@Resource
private HeartBeatClientApi heartBeatClientApi;
@Override
public CommonResult receiveHeartbeat(Heartbeat heartbeat) {
return heartBeatClientApi.receiveHeartbeat(heartbeat);
}
@Override
public CommonResult doPassengerInformation(PassengerInformation passengerInformation) {
return heartBeatClientApi.doPassengerInformation(passengerInformation);
}
}