[java]代码库package com.liang.bike.controller.rent;
import com.alibaba.fastjson.JSONObject;
import com.liang.bike.bean.base.BikeBase;
import com.liang.bike.bean.base.OrderBase;
import com.liang.bike.bean.base.UserBase;
import com.liang.bike.enumeration.BikeStatusEnum;
import com.liang.bike.enumeration.OperateEnum;
import com.liang.bike.service.rent.IRentBikeService;
import com.liang.bike.utill.ReturnUtill;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Administrator on 2017/2/22.
*/
@Controller
@RequestMapping("/rent")
public class RentBikeController {
Logger logger = Logger.getLogger(RentBikeController.class);
@Autowired
private IRentBikeService rentBikeService;
//获取用户信息
public UserBase getUser(HttpServletRequest request) {
HttpSession session = request.getSession();
return (UserBase) session.getAttribute("user");
}
/**
* 生成租借自行车订单
*
* @param request
* @param bikeBase 自行车信息
* @return
*/
@RequestMapping("/bike")
public String rentBike(HttpServletRequest request, Model model, BikeBase bikeBase) {
UserBase userBase = getUser(request);
String page = "user/rent";
try {
//查询自行车是否存在
BikeBase bike = rentBikeService.selectBikeByBikeNo(bikeBase);
model.addAttribute("bike", bike);
if (bike == null) {
model.addAttribute("index", OperateEnum.BIKE_BIKE_NOT_EXIST.getIndex());
model.addAttribute("desc", OperateEnum.BIKE_BIKE_NOT_EXIST.getDesc());
return page;
}
//自行车是否在空闲状态
String status = bike.getBikeStatus();
if (status != null && !status.equals(BikeStatusEnum.FREE.getKey())) {
//如果正在使用自行车的正是当前用户
if (status.equals(BikeStatusEnum.USING.getKey())) {
OrderBase orderBase = new OrderBase();
orderBase.setUserId(userBase.getUserId());
orderBase.setBikeId(bikeBase.getBikeId());
orderBase.setReturnBy("");
OrderBase order = rentBikeService.selectOrder(orderBase);
if (order != null) {
page = "user/running";
model.addAttribute("order", order);
model.addAttribute("createDate", order.getCreateDate().getTime());
return page;
}
}
model.addAttribute("index", status);
model.addAttribute("desc", OperateEnum.getOperateDesc(status));
return page;
}
//修改自行车使用状态并生成订单
rentBikeService.rentBike(bike, userBase);
//自行车状态描述
} catch (Exception e) {
//e.printStackTrace();
logger.info("租借自行车失败RentBikeController.rentBike" + e.getMessage());
model.addAttribute("index", OperateEnum.OPERATE_ERROR.getIndex());
model.addAttribute("desc", OperateEnum.OPERATE_ERROR.getDesc());
return page;
}
model.addAttribute("index", OperateEnum.OPERATE_SUCCESS.getIndex());
return page;
}
/**
* 完成订单
*
* @param request
* @param model
* @param orderBase
* @return
*/
@RequestMapping("/finish")
@ResponseBody
public JSONObject finish(HttpServletRequest request, Model model, OrderBase orderBase) {
JSONObject json = new JSONObject();
UserBase userBase = getUser(request);
orderBase.setReturnBy(userBase.getUserName());
orderBase.setReturnDate(new Date());
boolean flag = false;
try {
rentBikeService.finishOrder(orderBase);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
json.put("flag", flag);
return json;
}
}