Java前后端分離的在線點(diǎn)餐系統(tǒng)實(shí)現(xiàn)詳解
項(xiàng)目功能:
此項(xiàng)目分為兩個(gè)角色:普通用戶和管理員。普通用戶有登錄注冊(cè)、瀏覽商品信息、添加購物車、結(jié)算訂單、查看個(gè)人信息、查看個(gè)人訂單詳情等等功能。管理員有管理所有商品信息、管理所有訂單信息、管理所有用戶信息、查看收益數(shù)據(jù)圖表等等功能。
應(yīng)用技術(shù):
SpringBoot + VueCli + MySQL + MyBatis + Redis + ElementUI
運(yùn)行環(huán)境:
IntelliJ IDEA2019.3.5 + MySQL5.7+ Redis5.0.5 + JDK1.8 + Maven3.6.3+ Node14.16.1






管理員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());//分頁查詢
List<User> us= userService.list();
int total = (int) new PageInfo<>(us).getTotal();//總條數(shù)
page.setTotal(total);
model.addAttribute("us", us);//所有用戶
model.addAttribute("total",total);
Map<User,List<Role>> user_roles = new HashMap<>();
//每個(gè)用戶對(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í)候沒有設(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());//分頁查詢
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";
}
}訂單模塊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";
}
}到此這篇關(guān)于Java前后端分離的在線點(diǎn)餐系統(tǒng)實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)Java 在線點(diǎn)餐系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA抽象類和抽象方法(abstract)實(shí)例分析
這篇文章主要介紹了JAVA抽象類和抽象方法(abstract),結(jié)合實(shí)例形式分析了java抽象類及抽象方法相關(guān)定義、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-11-11
Java中JUC包(java.util.concurrent)下的常用子類
相信大家已經(jīng)對(duì)并發(fā)機(jī)制中出現(xiàn)的很多的常見知識(shí)點(diǎn)進(jìn)行了總結(jié),下面這篇文章主要給大家介紹了關(guān)于Java中JUC包(java.util.concurrent)下的常用子類的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
java實(shí)現(xiàn)發(fā)送手機(jī)短信
這篇文章主要介紹了java實(shí)現(xiàn)發(fā)送手機(jī)短信,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03
springMVC如何將controller中數(shù)據(jù)傳遞到j(luò)sp頁面
這篇文章主要介紹了springMVC如何將controller中數(shù)據(jù)傳遞到j(luò)sp頁面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow)
這篇文章主要介紹了SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
關(guān)于SpringBoot靜態(tài)資源路徑管理問題
這篇文章主要介紹了SpringBoot靜態(tài)資源路徑管理,主要包括默認(rèn)靜態(tài)資源路徑,增加靜態(tài)資源路徑前綴的相關(guān)操作,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Spring 整合 MyBatis的實(shí)現(xiàn)步驟
SpringMVC 本來就是 Spring 框架的一部分,這兩者無須再做整合,所以 SSM 整合的關(guān)鍵就是Spring對(duì)MyBatis的整合,三大框架整合完成后,將以 Spring 為核心,調(diào)用有關(guān)資源,高效運(yùn)作,這篇文章主要介紹了 Spring 整合 MyBatis的實(shí)現(xiàn)步驟,需要的朋友可以參考下2023-02-02
IntelliJ IDEA搜索整個(gè)項(xiàng)目進(jìn)行全局替換(有危險(xiǎn)慎用)
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA搜索整個(gè)項(xiàng)目進(jìn)行全局替換(有危險(xiǎn)慎用),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10

