package i.am.whp.controller;
import i.am.whp.model.OrderDetailVo;
import i.am.whp.model.enums.Category;
import i.am.whp.model.enums.OrderState;
import i.am.whp.model.enums.Role;
import i.am.whp.model.enums.VehicleState;
import i.am.whp.model.po.*;
import i.am.whp.service.LogisticsService;
import i.am.whp.service.OrderService;
import i.am.whp.service.UserService;
import i.am.whp.service.VehicleService;
import i.am.whp.util.Md5Util;
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.HttpSession;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Controller
public class BackstageController {
@Autowired
UserService userService;
@Autowired
OrderService orderService;
@Autowired
VehicleService vehicleService;
@Autowired
LogisticsService logisticsService;
//--------------------登录--------------------
@RequestMapping("/checkadmin")
@ResponseBody
public String checkadmin(String adminname, String adminpwd, HttpSession session) {
User user = userService.queryUser(adminname);
if (user == null || user.getRole() == Role.user.getRole()) {
return "notadmin";
}
//管理员登录
if (user.getPassword().equals(Md5Util.MD5(adminpwd))) {
//更新登录时间
user.setLogintime(new Timestamp(System.currentTimeMillis()));
userService.updateUserInfo(user);
//登录成功 判断角色 存储session
session.setAttribute("backstage", adminname);
//如果是管理员
if (user.getRole() == Role.admin.getRole()) {
return "admindlcg";
} else {
//如果是运输员
return "transporterdlcg";
}
} else {
return "mmcw";
}
}
//------------------用户管理--------------------
@RequestMapping("/getAllUser")
public String getAllUser(Model model) {
List<User> allUser = userService.getAllUser();
model.addAttribute("allUser", allUser);
return "admin/alluser";
}
@RequestMapping("/doAddUser")
public String doAddUser(String username, String role, String mobile, String email, String address) {
User newUser = new User();
newUser.setUsername(username);
newUser.setPassword(Md5Util.MD5(username));
newUser.setMobile(mobile);
newUser.setEmail(email);
newUser.setRole(Integer.parseInt(role));
newUser.setAddress(address);
newUser.setRegtime(new Timestamp(System.currentTimeMillis()));
userService.addUser(newUser);
return "redirect:/getAllUser";
}
@RequestMapping("/editPre")
public String editPre(String username, Model model) {
User edituser = userService.queryUser(username);
model.addAttribute("edituser", edituser);
return "admin/edituser";
}
@RequestMapping("/doEditUser")
public String doEditUser(String username, String mobile, String email, String address) {
User doedituser = userService.queryUser(username);
doedituser.setMobile(mobile);
doedituser.setEmail(email);
doedituser.setAddress(address);
userService.updateUserInfo(doedituser);
return "redirect:/getAllUser";
}
//-------------------订单管理----------------------
@RequestMapping("/getAllOrder")
public String getAllOrder(String pageNum, String pageSize, Model model) {
int pagenum;
if (pageNum == null || pageNum.equals("")) {
pagenum = 1;
} else {
pagenum = Integer.parseInt(pageNum);
}
int pagesize;
if (pageSize == null || pageSize.equals("")) {
pagesize = 5;
} else {
pagesize = Integer.parseInt(pageSize);
}
List<OrderInfo> allOrder = orderService.getAllOrder();
int pageTotal = allOrder.size() % pagesize == 0 ? allOrder.size() / pagesize : allOrder.size() / pagesize + 1;
model.addAttribute("pageTotal", pageTotal);
model.addAttribute("pagenum", pagenum);
model.addAttribute("pagesize", pagesize);
List<OrderDetailVo> orderDetailVos = new ArrayList<>();
for (OrderInfo orderInfo : allOrder) {
OrderDetailVo orderDetailVo = new OrderDetailVo();
orderDetailVo.setOrderid(orderInfo.getOrderid());
orderDetailVo.setUsername(orderInfo.getUsername());
orderDetailVo.setGoodswt(orderInfo.getGoodswt());
orderDetailVo.setPostage(orderInfo.getPostage());
orderDetailVo.setCategory(Objects.requireNonNull(Category.valueOf(orderInfo.getCategory())).getDetail());
orderDetailVo.setOrderstate(Objects.requireNonNull(OrderState.valueOf(orderInfo.getOrderstate())).getDetail());
orderDetailVo.setOrdertime(orderInfo.getOrdertime());
orderDetailVos.add(orderDetailVo);
}
model.addAttribute("allOrder", orderDetailVos.subList((pagenum - 1) * pagesize,
pagenum * pagesize < orderDetailVos.size() ? pagenum * pagesize : orderDetailVos.size()));
return "admin/allorder";
}
@RequestMapping("/daiLanjian")
public String daiLanjian(String pageNum, String pageSize, Model model) {
int pagenum;
if (pageNum == null || pageNum.equals("")) {
pagenum = 1;
} else {
pagenum = Integer.parseInt(pageNum);
}
int pagesize;
if (pageSize == null || pageSize.equals("")) {
pagesize = 5;
} else {
pagesize = Integer.parseInt(pageSize);
}
List<OrderInfo> allOrder = orderService.getAllOrderByState(OrderState.dailanjian.getState());
int pageTotal = allOrder.size() % pagesize == 0 ? allOrder.size() / pagesize : allOrder.size() / pagesize + 1;
model.addAttribute("pageTotal", pageTotal);
model.addAttribute("pagenum", pagenum);
model.addAttribute("pagesize", pagesize);
List<OrderDetailVo> orderDetailVos = new ArrayList<>();
for (OrderInfo orderInfo : allOrder) {
OrderDetailVo orderDetailVo = new OrderDetailVo();
orderDetailVo.setOrderid(orderInfo.getOrderid());
orderDetailVo.setUsername(orderInfo.getUsername());
orderDetailVo.setGoodswt(orderInfo.getGoodswt());
orderDetailVo.setPostage(orderInfo.getPostage());
orderDetailVo.setCategory(Objects.requireNonNull(Category.valueOf(orderInfo.getCategory())).getDetail());
orderDetailVo.setOrderstate("待揽件");
orderDetailVo.setOrdertime(orderInfo.getOrdertime());
orderDetailVos.add(orderDetailVo);
}
model.addAttribute("allOrder", orderDetailVos.subList((pagenum - 1) * pagesize,
pagenum * pagesize < orderDetailVos.size() ? pagenum * pagesize : orderDetailVos.size()));
return "admin/daiorder";
}
@RequestMapping("/yiWancheng")
public String yiWancheng(String pageNum, String pageSize, Model model) {
int pagenum;
if (pageNum == null || pageNum.equals("")) {
pagenum = 1;
} else {
pagenum = Integer.parseInt(pageNum);
}
int pagesize;
if (pageSize == null || pageSize.equals("")) {
pagesize = 5;
} else {
pagesize = Integer.parseInt(pageSize);
}
List<OrderInfo> allOrde