欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)戰(zhàn)之校園外賣(mài)點(diǎn)餐系統(tǒng)的實(shí)現(xiàn)

 更新時(shí)間:2022年03月29日 13:34:27   作者:qq_1334611189  
這篇文章主要介紹了如何利用Java實(shí)現(xiàn)簡(jiǎn)易的校園外賣(mài)點(diǎn)餐系統(tǒng),文中采用的技術(shù)有:JSP、Spring、SpringMVC、MyBatis 等,感興趣的可以了解一下

一、項(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è)查詢
        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í)候沒(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è)查詢
        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)文章

  • JDK更換IDEA如何修改圖文詳解

    JDK更換IDEA如何修改圖文詳解

    這篇文章主要給大家介紹了關(guān)于JDK更換IDEA如何修改的相關(guān)資料,Java的不同版本的JDK之間存在細(xì)微的差別,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java集合框架迭代器Iterator實(shí)現(xiàn)原理解析

    Java集合框架迭代器Iterator實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java集合框架迭代器Iterator實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java實(shí)用小技能之快速創(chuàng)建List常用幾種方式

    Java實(shí)用小技能之快速創(chuàng)建List常用幾種方式

    java集合可以說(shuō)無(wú)論是面試、刷題還是工作中都是非常常用的,下面這篇文章主要給大家介紹了關(guān)于Java實(shí)用小技能之快速創(chuàng)建List常用的幾種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • springBoot mybatis 包掃描實(shí)例

    springBoot mybatis 包掃描實(shí)例

    這篇文章主要介紹了springBoot mybatis 包掃描實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Netty的心跳檢測(cè)解析

    Netty的心跳檢測(cè)解析

    這篇文章主要介紹了Netty的心跳檢測(cè)解析,客戶端的心跳檢測(cè)對(duì)于任何長(zhǎng)連接的應(yīng)用來(lái)說(shuō),都是一個(gè)非?;A(chǔ)的功能,要理解心跳的重要性,首先需要從網(wǎng)絡(luò)連接假死的現(xiàn)象說(shuō)起,需要的朋友可以參考下
    2023-12-12
  • Java中StringBuilder類(lèi)的用法解析

    Java中StringBuilder類(lèi)的用法解析

    StringBuilder是一個(gè)可變的字符序列,這個(gè)類(lèi)提供了一個(gè)與StringBuffer兼容的API。本文主要為大家介紹了StringBuilder類(lèi)的常用用法,需要的可以參考一下
    2023-05-05
  • IDEA使用properties配置文件進(jìn)行mysql數(shù)據(jù)庫(kù)連接的教程圖解

    IDEA使用properties配置文件進(jìn)行mysql數(shù)據(jù)庫(kù)連接的教程圖解

    Properties類(lèi)是 鍵和值均為字符串的可以永久存儲(chǔ)到文件中的key-value集合。這篇文章主要介紹了IDEA使用properties配置文件進(jìn)行mysql數(shù)據(jù)路連接 ,需要的朋友可以參考下
    2018-10-10
  • 解決mapper.xml中resultType映射類(lèi)型的問(wèn)題

    解決mapper.xml中resultType映射類(lèi)型的問(wèn)題

    這篇文章主要介紹了解決mapper.xml中resultType映射類(lèi)型的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • JDK1.8使用的垃圾回收器和執(zhí)行GC的時(shí)長(zhǎng)以及GC的頻率方式

    JDK1.8使用的垃圾回收器和執(zhí)行GC的時(shí)長(zhǎng)以及GC的頻率方式

    這篇文章主要介紹了JDK1.8使用的垃圾回收器和執(zhí)行GC的時(shí)長(zhǎng)以及GC的頻率方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解springmvc常用5種注解

    詳解springmvc常用5種注解

    在本篇里我們給大家總結(jié)了關(guān)于springmvc常用5種注解相關(guān)知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們參考下。
    2019-07-07

最新評(píng)論