package com.park.controller;
import com.park.dao.OrderInfoDAO;
import com.park.dto.Message;
import com.park.dto.Result;
import com.park.enity.OrderInfo;
import com.park.enity.ParkInfo;
import com.park.enity.User;
import com.park.exception.ParkException;
import com.park.exception.StatusEnum;
import com.park.service.ParkService;
import com.park.service.UserService;
import com.park.socketmanage.SocketThreadManage;
import com.park.vo.LoginVo;
import com.park.vo.RegisterVo;
import com.park.vo.RequestVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import com.park.data.Data;
import java.util.List;
/**
* 处理手机HTTP请求
* Created by ansore on 16-9-11.
*/
@Controller
@RequestMapping(value = "/")
public class PhoneController {
@Autowired
ParkService parkService;
@Autowired
UserService userService;
//TODO 写入Serivice
@Autowired
OrderInfoDAO orderInfoDAO;
@RequestMapping (value = "/phone", produces = "application/json;charset=UTF-8")
@ResponseBody
public Result dealRequest(HttpServletRequest request, @RequestBody RequestVo requestVo){
Result result = new Result(false, StatusEnum.getStatusCode(-1).getStatusInfo());
if(request.getMethod().toLowerCase().equals("get")){
result.setStatus(false);
result.setStatusInfo(StatusEnum.getStatusCode(103).getStatusInfo());
return result;
}
//检测输入字段
if(requestVo==null|| StringUtils.isEmpty(requestVo.getAction())) {
result.setStatus(false);
result.setStatusInfo(StatusEnum.getStatusCode(102).getStatusInfo());
return result;
}
try {
/**
* 处理注册请求
*/
if(requestVo.getAction().equals(Data.Reg)) {
//检测输入字段
if(StringUtils.isEmpty(requestVo.getPalte())||StringUtils.isEmpty(requestVo.getUsername())||StringUtils.isEmpty(requestVo.getPassword())||StringUtils.isEmpty(requestVo.getTelephone())){
result.setStatus(false);
result.setStatusInfo(StatusEnum.getStatusCode(102).getStatusInfo());
return result;
}
//实体转化
RegisterVo registerVo = new RegisterVo();
registerVo.setTelephone(requestVo.getTelephone());
registerVo.setPassword(requestVo.getPassword());
registerVo.setPalte(requestVo.getPalte());
registerVo.setUsername(requestVo.getUsername());
//Service 请求
int i = userService.userRegister(registerVo);
if(i == 1) {
result.setStatus(true);
result.setStatusInfo(StatusEnum.getStatusCode(201).getStatusInfo());
}
return result;
}
/**
* 处理登录请求
*/
if(requestVo.getAction().equals(Data.LoginPhone)) {
//检测输入字段
if(StringUtils.isEmpty(requestVo.getTelephone())||StringUtils.isEmpty(requestVo.getPassword())){
result.setStatusInfo(StatusEnum.getStatusCode(102).getStatusInfo());
return result;
}
//实体转化
LoginVo loginVo = new LoginVo();
loginVo.setTelephone(requestVo.getTelephone());
loginVo.setPassword(requestVo.getPassword());
//service 请求
int i = userService.userLogin(loginVo);
if(i==1) {
result.setStatus(true);
result.setStatusInfo(StatusEnum.getStatusCode(200).getStatusInfo());
}
return result;
}
/**
* 获取停车场信息列表
*/
if(requestVo.getAction().equals(Data.GetParksInfo)) {
//构造返回数据
// result = new Result<ParkInfo>(false,StatusEnum.getStatusCode(101).getStatusInfo());
List<ParkInfo> l = parkService.getParksInfoList();
if(l!=null&&l.size()!=0) {
for (ParkInfo parkInfo : l) {
if(SocketThreadManage.socketThread.get(parkInfo.getParkid()) != null) {
parkInfo.setAlive(true);
} else {
parkInfo.setAlive(false);
}
}
result.setStatus(true);
result.setData(l);
result.setStatusInfo(StatusEnum.getStatusCode(202).getStatusInfo());
}
return result;
}
/**
* 获取车位信息
*/
if(requestVo.getAction().equals(Data.GetLotInfo)) {
//检测输入字段
if(StringUtils.isEmpty(requestVo.getParkId())) {
result.setStatusInfo(StatusEnum.getStatusCode(102).getStatusInfo());
return result;
}
if(SocketThreadManage.socketThread.get(requestVo.getParkId())==null) {
result.setStatusInfo(StatusEnum.getStatusCode(104).getStatusInfo());
return result;
}
//PC交互
Message message = new Message();
message.setMessageType(Data.GetParkInfo);
Message m = SocketThreadManage.socketThread.get(requestVo.getParkId()).sendMessageWait(message);
if(m==null) {
result.setStatusInfo(StatusEnum.getStatusCode(105).getStatusInfo());
return result;
}
//赋值返回
result.setStatus(true);
result.setStatusInfo(StatusEnum.getStatusCode(202).getStatusInfo());
result.setData(m.getParkList());
//释放线程Message对象
SocketThreadManage.socketThread.get(requestVo.getParkId()).freeMessage();
return result;
}
/**
* 预订车位
*/
if(requestVo.getAction().equals(Data.OrderPark)) {
//检测输入字段
if(StringUtils.isEmpty(requestVo.getParkId())||StringUtils.isEmpty(requestVo.getSpaceId())||StringUtils.isEmpty(requestVo.getTelephone())) {
result.setStatusInfo(StatusEnum.getStatusCode(102).getStatusInfo());
return result;
}
if(SocketThreadManage.socketThread.get(requestVo.getParkId())==null) {
result.setStatusInfo(StatusEnum.getStatusCode(104).getStatusInfo());
return result;
}
if(orderInfoDAO.orderIsExist(requestVo.getTelephone())>0) {
result.setStatusInfo(StatusEnum.getStatusCode(106).getStatusInfo());
return result;
}
Message message = new Message();
message.setMessageType(Data.OrderInfo);
message.setParkId(requestVo.getSpaceId());
message.setTelephone(requestVo.getTelephone());
User user = userService.getUser(requestVo.getTelephone());
message.setPalte(user.getPalte());
message.setUserName(user.getUsername());
Message m = SocketThreadManage.socketThread.get(requestVo.getParkId()).sendMessageWait(message);
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于物联网的停车系统完整源码.zip (289个子文件)
PhoneController.class 8KB
PhoneController.class 8KB
ServerSocketThread.class 4KB
ServerSocketThread.class 4KB
StatusEnum.class 3KB
StatusEnum.class 3KB
SocketThread.class 3KB
SocketThread.class 3KB
Message.class 3KB
Message.class 3KB
Result.class 3KB
Result.class 3KB
UserServiceImpl.class 2KB
UserServiceImpl.class 2KB
ParkServiceImpl.class 2KB
ParkServiceImpl.class 2KB
RequestVo.class 2KB
RequestVo.class 2KB
ParkInfo.class 1KB
ParkInfo.class 1KB
RegisterVo.class 1KB
RegisterVo.class 1KB
SocketServiceLoader.class 1KB
SocketServiceLoader.class 1KB
User.class 1KB
User.class 1KB
ParkStatus.class 1KB
ParkStatus.class 1KB
ParkException.class 1015B
ParkException.class 1015B
OrderParkVo.class 947B
OrderParkVo.class 947B
Data.class 946B
Data.class 946B
OrderInfo.class 740B
OrderInfo.class 740B
LoginVo.class 733B
LoginVo.class 733B
UnlockRelayVo.class 688B
UnlockRelayVo.class 688B
LockRelayVo.class 678B
LockRelayVo.class 678B
EndParkVo.class 672B
EndParkVo.class 672B
GetOrderInfoVo.class 560B
GetOrderInfoVo.class 560B
SocketThreadManage.class 559B
SocketThreadManage.class 559B
GetAllParkInfoVo.class 553B
GetAllParkInfoVo.class 553B
CommonVo.class 529B
CommonVo.class 529B
ParkInfoDAO.class 503B
ParkInfoDAO.class 503B
UserDAO.class 496B
UserDAO.class 496B
GetLotInfoVo.class 494B
GetLotInfoVo.class 494B
OrderInfoDAO.class 462B
OrderInfoDAO.class 462B
ParkService.class 335B
ParkService.class 335B
UserService.class 282B
UserService.class 282B
.classpath 410B
.directory 83B
.gitignore 6B
park.iml 5KB
park-server.iml 4KB
guava-19.0.jar 2.2MB
mybatis-3.3.0.jar 1.35MB
jackson-databind-2.6.0.jar 1.11MB
spring-context-4.1.7.RELEASE.jar 1003KB
spring-core-4.1.7.RELEASE.jar 985KB
spring-webmvc-4.1.7.RELEASE.jar 764KB
spring-web-4.1.7.RELEASE.jar 705KB
spring-beans-4.1.7.RELEASE.jar 696KB
mysql-connector-java-5.1.7-bin.jar 693KB
mysql-connector-java-5.1.6.jar 687KB
mchange-commons-java-0.2.3.4.jar 568KB
logback-core-1.1.3.jar 444KB
spring-jdbc-4.1.7.RELEASE.jar 417KB
c3p0-0.9.2.1.jar 414KB
jstl-1.2.jar 405KB
standard-1.1.2.jar 384KB
spring-aop-4.1.7.RELEASE.jar 351KB
okhttp-3.3.1.jar 336KB
logback-classic-1.1.3.jar 274KB
spring-expression-4.1.7.RELEASE.jar 253KB
jackson-core-2.6.0.jar 253KB
spring-tx-4.1.7.RELEASE.jar 247KB
junit-4.11.jar 239KB
spring-context-support-4.1.7.RELEASE.jar 174KB
okio-1.8.0.jar 70KB
commons-logging-1.2.jar 60KB
mybatis-spring-1.2.3.jar 50KB
jackson-annotations-2.6.0.jar 46KB
hamcrest-core-1.3.jar 44KB
slf4j-api-1.7.3.jar 25KB
aopalliance-1.0.jar 4KB
共 289 条
- 1
- 2
- 3
资源评论
龙年行大运
- 粉丝: 1385
- 资源: 3960
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2025计量基础知识考试题库及答案.doc
- 2025金属冶炼(炼钢)安全员考试题库(含答案).pptx
- 2025健康管理师三级专业能力考核试卷及答案.doc
- 2025交管12123驾驶证学法减分题库附含答案.doc
- 建筑工程员工工资表.xls
- 工程部薪酬2018年6月.doc
- 工程施工操作员薪酬管理制度.doc
- 2025教育心理学与德育工作基础知识点大全.doc
- 2025教育心理学与德育工作基础知识点整理总复习资料.doc
- 2025基本公共卫生知识考试题及答案.docx
- 2025基本公共卫生知识题库及答案.docx
- 2025基础知识与规范要求技能大赛题库及答案.docx
- 2025脊柱术后脑脊液漏应急预案考试试题(含答案).docx
- 2025计量基础知识题库及答案.docx
- 2025计算机二级考试全真试题库及答案(通用版).docx
- 2025计算机基础理论信息安全基本知识试题及答案.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功