Java實(shí)戰(zhàn)之校園外賣(mài)點(diǎn)餐系統(tǒng)的實(shí)現(xiàn)
一、項(xiàng)目簡(jiǎn)述
環(huán)境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
項(xiàng)目技術(shù):
JSP +Spring + SpringMVC + MyBatis + css + JavaScript + JQuery + Ajax + layui+ maven等等。
二、效果圖展示






三、核心代碼
管理員controller控制層
/**
* 管理員controller
*/
@Controller
@RequestMapping("/config")
public class UserController {
@Autowired
UserRoleService userRoleService;
@Autowired
UserService userService;
@Autowired
RoleService roleService;
@RequestMapping("/enableStatus")
@ResponseBody
public String enableStatus(@RequestParam(value = "name") String name){
return userService.enableStatus(name);
}
@RequestMapping("/stopStatus")
@ResponseBody
public String stopStatus(@RequestParam(value = "name") String name){
return userService.stopStatus(name);
}
@RequestMapping("/adminAdd")
public String adminadd(Model model){
List<Role> list = roleService.list();
model.addAttribute("rolelist",list);
return "syspage/admin-add";
}
@RequestMapping("/listUser")
public String list(Model model, Page page){
PageHelper.offsetPage(page.getStart(),page.getCount());//分頁(yè)查詢(xún)
List<User> us= userService.list();
int total = (int) new PageInfo<>(us).getTotal();//總條數(shù)
page.setTotal(total);
model.addAttribute("us", us);//所有用戶(hù)
model.addAttribute("total",total);
Map<User,List<Role>> user_roles = new HashMap<>();
//每個(gè)用戶(hù)對(duì)應(yīng)的權(quán)限
for (User user : us) {
List<Role> roles=roleService.listRoles(user);
user_roles.put(user, roles);
}
model.addAttribute("user_roles", user_roles);
return "syspage/admin-list";
}
/**
* 修改管理員角色
* @param model
* @param id
* @return
*/
@RequestMapping("/editUser")
public String edit(Model model,Long id){
List<Role> rs = roleService.list();
model.addAttribute("rs", rs);
User user =userService.get(id);
model.addAttribute("user", user);
//當(dāng)前擁有的角色
List<Role> roles =roleService.listRoles(user);
model.addAttribute("currentRoles", roles);
return "syspage/admin-edit";
}
@RequestMapping("deleteUser")
public String delete(Model model,long id){
userService.delete(id);
return "redirect:listUser";
}
@RequestMapping("updateUser")
public String update(User user, long[] roleIds){
userRoleService.setRoles(user,roleIds);
String password=user.getPassword();
//如果在修改的時(shí)候沒(méi)有設(shè)置密碼,就表示不改動(dòng)密碼
if(user.getPassword().length()!=0) {
String salt = new SecureRandomNumberGenerator().nextBytes().toString();
int times = 2;
String algorithmName = "md5";
String encodedPassword = new SimpleHash(algorithmName,password,salt,times).toString();
user.setSalt(salt);
user.setPassword(encodedPassword);
}
else
user.setPassword(null);
userService.update(user);
return "redirect:listUser";
}
@RequestMapping("addUser")
public String add(User user,long[] roleIds){
String salt = new SecureRandomNumberGenerator().nextBytes().toString();//生成隨機(jī)數(shù)
int times = 2;
String algorithmName = "md5";
String encodedPassword = new SimpleHash(algorithmName,user.getPassword(),salt,times).toString();
User u = new User();
u.setName(user.getName());
u.setPassword(encodedPassword);
u.setSalt(salt);
u.setStatus(1);
u.setAddress(user.getAddress());
u.setPhone(user.getPhone());
userService.add(u);
userRoleService.setRoles(u,roleIds);
return "redirect:listUser";
}
}管理員角色controler控制層
/**
* 管理員角色controler
*/
@Controller
@RequestMapping("/config")
public class RoleController {
@Autowired
RoleService roleService;
@Autowired
RolePermissionService rolePermissionService;
@Autowired
PermissionService permissionService;
@RequestMapping("/addRoleUI")
public String addRole(){
return "syspage/admin-role-add";
}
@RequestMapping("/listRole")
public String list(Model model, Page page){
PageHelper.offsetPage(page.getStart(),page.getCount());//分頁(yè)查詢(xún)
List<Role> rs= roleService.list();
int total = (int) new PageInfo<>(rs).getTotal();//總條數(shù)
page.setTotal(total);
model.addAttribute("rs", rs);
model.addAttribute("roleSize",total);
Map<Role,List<Permission>> role_permissions = new HashMap<>();
for (Role role : rs) {
List<Permission> ps = permissionService.list(role);
role_permissions.put(role, ps);
}
model.addAttribute("role_permissions", role_permissions);
return "syspage/admin-role";
}
@RequestMapping("/editRole")
public String list(Model model,long id){
Role role =roleService.get(id);
model.addAttribute("role", role);
//所有權(quán)限
List<Permission> ps = permissionService.list();
model.addAttribute("ps", ps);
//當(dāng)前管理員擁有的權(quán)限
List<Permission> currentPermissions = permissionService.list(role);
model.addAttribute("currentPermissions", currentPermissions);
return "syspage/admin-role-edit";
}
@RequestMapping("/updateRole")
public String update(Role role,long[] permissionIds){
rolePermissionService.setPermissions(role, permissionIds);
roleService.update(role);
return "redirect:listRole";
}
@RequestMapping("/addRole")
public String list(Model model,Role role){
roleService.add(role);
return "redirect:listRole";
}
@RequestMapping("/deleteRole")
public String delete(Model model,long id){
roleService.delete(id);
return "redirect:listRole";
}
}后臺(tái)登錄控制層
/**
* 后臺(tái)登陸
*/
@Controller
@RequestMapping("")
public class LoginController {
@Autowired
UserService userService;
@RequestMapping(value="/login",method=RequestMethod.POST)
public String login(Model model, String name, String password){//throws ParseException
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(name,password);
try {
subject.login(token);
User us = userService.getByName(name);
String lastLoginTime = "";
if(us!=null){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//上次時(shí)間
Date time = us.getLasttime();
lastLoginTime = sdf.format(time);
//新時(shí)間
String format = sdf.format(new Date());
//string轉(zhuǎn)date 不處理時(shí)間格式會(huì)不理想
ParsePosition pos = new ParsePosition(0);
Date strtodate = sdf.parse(format, pos);
us.setLasttime(strtodate);
userService.update(us);
}
if (us.getStatus()==1){
Session session=subject.getSession();
session.setAttribute("subject", subject);
session.setAttribute("lastLoginTime",lastLoginTime);
return "redirect:index";
}else {
model.addAttribute("error", "賬號(hào)已被停用!");
return "/login";
}
} catch (AuthenticationException e) {
model.addAttribute("error", "驗(yàn)證失?。?);
return "/login";
}
}
}訂單模塊controller控制層
/**
* 訂單模塊controller
*/
@Controller
@RequestMapping("/order")
public class OrderController {
@Autowired
OrderService orderService;
@Autowired
OrderItemService orderItemService;
/**
* 所有訂單
* @param model
* @param page
* @return
*/
@RequestMapping("/list")
public String list(Model model, Page page){
PageHelper.offsetPage(page.getStart(),page.getCount());
List<Order> os= orderService.list();
int total = (int) new PageInfo<>(os).getTotal();
page.setTotal(total);
//為訂單添加訂單項(xiàng)數(shù)據(jù)
orderItemService.fill(os);
model.addAttribute("os", os);
model.addAttribute("page", page);
model.addAttribute("totals", total);
return "ordermodule/order-list";
}
/**
* 訂單發(fā)貨
* @param o
* @return
*/
@RequestMapping("/orderDelivery")
public String delivery(Order o){
o.setStatus(2);
orderService.update(o);
return "redirect:list";
}
/**
* 查看當(dāng)前訂單的訂單項(xiàng)
* @param oid
* @param model
* @return
*/
@RequestMapping("/seeOrderItem")
public String seeOrderItem(int oid,Model model){
Order o = orderService.get(oid);
orderItemService.fill(o);
model.addAttribute("orderItems",o.getOrderItems());
model.addAttribute("total",o.getOrderItems().size());
model.addAttribute("totalPrice",o.getTotal());
return "ordermodule/orderItem-list";
}
}以上就是Java實(shí)戰(zhàn)之校園外賣(mài)點(diǎn)餐系統(tǒng)的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Java點(diǎn)餐系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java多線程面試題之交替輸出問(wèn)題的實(shí)現(xiàn)
本文主要介紹了Java多線程面試題之交替輸出問(wèn)題的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Java實(shí)現(xiàn)作業(yè)調(diào)度的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)SJF算法調(diào)度,要求測(cè)試數(shù)據(jù)可以隨即輸入或從文件中讀入,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-04-04
Java TreeSet類(lèi)的簡(jiǎn)單理解和使用
這篇文章主要介紹了Java TreeSet類(lèi)的簡(jiǎn)單理解和使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Java JDBC連接Kerberos認(rèn)證的HIVE和Impala方式
本文主要介紹了HiveJDBC和ImpalaJDBC的使用方法,包括版本對(duì)應(yīng)、Maven安裝、主機(jī)名配置、端口開(kāi)通、JDBC連接和Kerberos認(rèn)證等2025-02-02
idea全局設(shè)置Maven配置的實(shí)現(xiàn)步驟
本文主要介紹了idea全局設(shè)置Maven配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Java中使用增強(qiáng)for循環(huán)的實(shí)例方法
在本篇文章里小編給大家整理是的關(guān)于Java中如何使用增強(qiáng)for循環(huán)的實(shí)例內(nèi)容以及相關(guān)代碼,需要的朋友們可以學(xué)習(xí)下。2019-08-08

