Java项目:流浪动物收养系统(java+SSM+JSP+jQuery+Mysql)

news/2024/7/10 22:42:25 标签: mysql, java, jquery, SSM, JSP

源码获取:俺的博客首页 "资源" 里下载!

项目介绍

本项目分为前后台,前台为普通用户角色,后台为管理员角色;

管理员角色包含以下功能:

管理员登录,管理员信息管理,查看用户信息,新闻公告管理,类型管理,管理城市信息,救助中心信息管理,流浪动物信息管理,查看收养信息,查看评价信息,修改密码等功能。

用户角色包含以下功能:

查看首页,查看网站公告,用户登录,查看推荐,查看动物详情,查看领养计划,提交订单,查看我的订单,修改个人信息,修改密码等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可

4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7/8.0等版本均可;

技术栈

1. 后端:Spring+springmvc+mybatis

2. 前端:JSP+css+javascript+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;

2.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat

3. 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;

4. 运行项目,在浏览器中输入http://localhost:8080/ 登录

用户账号/密码: user/123456

管理员账号/密码:admin/admin

登录管理控制层:

java">java">/**
 * 登录验证
 */
@Controller
public class LoginController extends BaseController
{
    @Autowired
    public RoleServiceImpl roleService;
    @Autowired
    public UserServiceImpl userService;
    
    
    @GetMapping("/login")
    public String login(HttpServletRequest request, HttpServletResponse response)
    {
        // 如果是Ajax请求,返回Json字符串。
        if (ServletUtils.isAjaxRequest(request))
        {
            return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}");
        }

        return "login";
    }

    @PostMapping("/login")
    @ResponseBody
    public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
    {
        UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);
        Subject subject = SecurityUtils.getSubject();
        try
        {
            subject.login(token);
            return success();
        }
        catch (AuthenticationException e)
        {
            String msg = "用户或密码错误";
            if (StringUtils.isNotEmpty(e.getMessage()))
            {
                msg = e.getMessage();
            }
            return error(msg);
        }
    }
    
    @GetMapping("/regist")
    public String regist(ModelMap mmap){
        System.out.println("用户注册");
        mmap.put("roles", roleService.selectGeneralRole());
        return "regist";
    }
    
    
    @PostMapping("/regist")
    @ResponseBody
    public AjaxResult ajaxRegist(User user)
    {
         return toAjax(userService.registUser(user));
    }
    
    
    @GetMapping("/forget")
    public String forget(ModelMap mmap){
        return "/forget";
    }
    
    
    @Log(title = "忘记密码", businessType = BusinessType.UPDATE)
    @PostMapping("/forget")
    @ResponseBody
    public AjaxResult forget(User user)
    {
        if(StringUtils.isEmpty(user.getLoginName()) || StringUtils.isEmpty(user.getEmail())){
            return error("请输入用户名和邮箱!");
        }
        List<User> userList = userService.selectUserList(user);
        if(userList == null || userList.size() == 0){
            return error("输入的用户名/邮箱不匹配!");
        }else{
            user.setUserId(userList.get(0).getUserId());
            user.setPassword("123456");
            userService.resetUserPwd(user);
            return success();
        }
    }
    
    
    

    @GetMapping("/unauth")
    public String unauth()
    {
        return "error/unauth";
    }
}

用户管理控制层:

java">java">/**
 * 用户信息
 */
@Controller
@RequestMapping("/system/user")
public class UserController extends BaseController
{
    private String prefix = "system/user";

    @Autowired
    private IUserService userService;

    @Autowired
    private IRoleService roleService;

    @Autowired
    private IPostService postService;

    @RequiresPermissions("system:user:view")
    @GetMapping()
    public String user()
    {
        return prefix + "/user";
    }

    @RequiresPermissions("system:user:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(User user)
    {
        startPage();
        List<User> list = userService.selectUserList(user);
        return getDataTable(list);
    }

    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:user:export")
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(User user)
    {
        List<User> list = userService.selectUserList(user);
        ExcelUtil<User> util = new ExcelUtil<User>(User.class);
        return util.exportExcel(list, "用户数据");
    }

    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
    @RequiresPermissions("system:user:import")
    @PostMapping("/importData")
    @ResponseBody
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
    {
        ExcelUtil<User> util = new ExcelUtil<User>(User.class);
        List<User> userList = util.importExcel(file.getInputStream());
        String message = userService.importUser(userList, updateSupport);
        return AjaxResult.success(message);
    }

    @RequiresPermissions("system:user:view")
    @GetMapping("/importTemplate")
    @ResponseBody
    public AjaxResult importTemplate()
    {
        ExcelUtil<User> util = new ExcelUtil<User>(User.class);
        return util.importTemplateExcel("用户数据");
    }

    /**
     * 新增用户
     */
    @GetMapping("/add")
    public String add(ModelMap mmap)
    {
        mmap.put("roles", roleService.selectRoleAll());
        mmap.put("posts", postService.selectPostAll());
        return prefix + "/add";
    }

    /**
     * 新增保存用户
     */
    @RequiresPermissions("system:user:add")
    @Log(title = "用户管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(@Validated User user)
    {
        if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(user.getLoginName())))
        {
            return error("新增用户'" + user.getLoginName() + "'失败,登录账号已存在");
        }
        else if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
        {
            return error("新增用户'" + user.getLoginName() + "'失败,手机号码已存在");
        }
        else if (UserConstants.USER_EMAIL_NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
        {
            return error("新增用户'" + user.getLoginName() + "'失败,邮箱账号已存在");
        }
        return toAjax(userService.insertUser(user));
    }

    /**
     * 修改用户
     */
    @GetMapping("/edit/{userId}")
    public String edit(@PathVariable("userId") Long userId, ModelMap mmap)
    {
        mmap.put("user", userService.selectUserById(userId));
        mmap.put("roles", roleService.selectRolesByUserId(userId));
        mmap.put("posts", postService.selectPostsByUserId(userId));
        return prefix + "/edit";
    }

    /**
     * 修改保存用户
     */
    @RequiresPermissions("system:user:edit")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(@Validated User user)
    {
        userService.checkUserAllowed(user);
        if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
        {
            return error("修改用户'" + user.getLoginName() + "'失败,手机号码已存在");
        }
        else if (UserConstants.USER_EMAIL_NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
        {
            return error("修改用户'" + user.getLoginName() + "'失败,邮箱账号已存在");
        }
        return toAjax(userService.updateUser(user));
    }

    @RequiresPermissions("system:user:resetPwd")
    @Log(title = "重置密码", businessType = BusinessType.UPDATE)
    @GetMapping("/resetPwd/{userId}")
    public String resetPwd(@PathVariable("userId") Long userId, ModelMap mmap)
    {
        mmap.put("user", userService.selectUserById(userId));
        return prefix + "/resetPwd";
    }

    @RequiresPermissions("system:user:resetPwd")
    @Log(title = "重置密码", businessType = BusinessType.UPDATE)
    @PostMapping("/resetPwd")
    @ResponseBody
    public AjaxResult resetPwdSave(User user)
    {
        userService.checkUserAllowed(user);
        if (userService.resetUserPwd(user) > 0)
        {
            if (ShiroUtils.getUserId() == user.getUserId())
            {
                setSysUser(userService.selectUserById(user.getUserId()));
            }
            return success();
        }
        return error();
    }

    

    @RequiresPermissions("system:user:remove")
    @Log(title = "用户管理", businessType = BusinessType.DELETE)
    @PostMapping("/remove")
    @ResponseBody
    public AjaxResult remove(String ids)
    {
        try
        {
            return toAjax(userService.deleteUserByIds(ids));
        }
        catch (Exception e)
        {
            return error(e.getMessage());
        }
    }

    /**
     * 校验用户名
     */
    @PostMapping("/checkLoginNameUnique")
    @ResponseBody
    public String checkLoginNameUnique(User user)
    {
        return userService.checkLoginNameUnique(user.getLoginName());
    }

    /**
     * 校验手机号码
     */
    @PostMapping("/checkPhoneUnique")
    @ResponseBody
    public String checkPhoneUnique(User user)
    {
        return userService.checkPhoneUnique(user);
    }

    /**
     * 校验email邮箱
     */
    @PostMapping("/checkEmailUnique")
    @ResponseBody
    public String checkEmailUnique(User user)
    {
        return userService.checkEmailUnique(user);
    }

    /**
     * 用户状态修改
     */
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @RequiresPermissions("system:user:edit")
    @PostMapping("/changeStatus")
    @ResponseBody
    public AjaxResult changeStatus(User user)
    {
        userService.checkUserAllowed(user);
        return toAjax(userService.changeStatus(user));
    }
}

购物车管理控制层:

java">java">/**
 * 购物车Controller
 * 
 */
@Controller
@RequestMapping("/system/cart")
public class CartController extends BaseController
{
    private String prefix = "system/cart";

    @Autowired
    private ICartService cartService;

    @RequiresPermissions("system:cart:view")
    @GetMapping()
    public String cart()
    {
        return prefix + "/cart";
    }

    /**
     * 查询购物车列表
     */
    @RequiresPermissions("system:cart:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(Cart cart)
    {
        Long userId = ShiroUtils.getSysUser().getUserId();
        cart.setUserId(userId);
        startPage();
        List<Cart> list = cartService.selectCartList(cart);
        return getDataTable(list);
    }

    /**
     * 导出购物车列表
     */
    @RequiresPermissions("system:cart:export")
    @Log(title = "购物车", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(Cart cart)
    {
        List<Cart> list = cartService.selectCartList(cart);
        ExcelUtil<Cart> util = new ExcelUtil<Cart>(Cart.class);
        return util.exportExcel(list, "cart");
    }

    /**
     * 新增购物车
     */
    @GetMapping("/add")
    public String add()
    {
        return prefix + "/add";
    }

    /**
     * 新增保存购物车
     */
    @RequiresPermissions("system:cart:add")
    @Log(title = "购物车", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(Cart cart)
    {
        return toAjax(cartService.insertCart(cart));
    }
    
    /**
     * 新增保存购物车
     */
    @Log(title = "购物车", businessType = BusinessType.INSERT)
    @GetMapping("/addcart/{productId}")
    @ResponseBody
    public AjaxResult addcart(@PathVariable("productId") Long productId,Cart cart)
    {
        Long userId = ShiroUtils.getSysUser().getUserId();
        cart.setProductId(productId);
        cart.setUserId(userId);
        cartService.insertCart(cart);
        return AjaxResult.success("加入购物车成功!");
    }

    /**
     * 修改购物车
     */
    @GetMapping("/edit/{cartId}")
    public String edit(@PathVariable("cartId") Long cartId, ModelMap mmap)
    {
        Cart cart = cartService.selectCartById(cartId);
        mmap.put("cart", cart);
        return prefix + "/edit";
    }

    /**
     * 修改保存购物车
     */
    @RequiresPermissions("system:cart:edit")
    @Log(title = "购物车", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(Cart cart)
    {
        return toAjax(cartService.updateCart(cart));
    }

    /**
     * 删除购物车
     */
    @RequiresPermissions("system:cart:remove")
    @Log(title = "购物车", businessType = BusinessType.DELETE)
    @PostMapping( "/remove")
    @ResponseBody
    public AjaxResult remove(String ids)
    {
        return toAjax(cartService.deleteCartByIds(ids));
    }
}

源码获取:俺的博客首页 "资源" 里下载!


http://www.niftyadmin.cn/n/1553408.html

相关文章

PRE_PAGE_SGA 的玩法

看了看官方文档&#xff0c;了解到一个以前没有注意到的细节(还是得看文档啊........)&#xff0c;在Oracle实例启动时&#xff0c;只会在物理内存中首先加载SGA的个内存区的最小的大小(以Granule粒度计算)。而剩余的SGA内存只作为虚拟内存(Page File)分配&#xff0c;只有当进…

Java项目:绿茶商城系统(java+SSM+JSP+jQuery+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01;项目介绍本项目分为前后台&#xff0c;前台为普通用户角色&#xff0c;后台为管理员角色&#xff1b;管理员角色包含以下功能&#xff1a;管理员登录,用户管理,一级分类管理,二级分类管理,绿茶管理,订单管…

AIX上pin住Oracle的SGA的方法

Performance测试过程中&#xff0c;我们在新部署的AIX上都是通过设置操作系统的v_pinshm,maxpin%参数以及Oracle中的lock_sga等参数&#xff0c;将oracle SGA pin在内存中&#xff0c;目的就是为了防止这部分内存交换出去。通过pin住oracle SGA在一定程度上提高了我们数据库的性…

Java项目:鲜花商城系统(java+SSM+JSP+jQuery+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01;项目介绍本项目分为前后台&#xff0c;前台为普通用户角色&#xff0c;后台为管理员角色&#xff1b;管理员角色包含以下功能&#xff1a;会员信息管理,售后管理,库存管理,查看营业额统计,查看销售量,查询…

解決EXP-00091的方法

最近在做exp的过程中经常会碰见EXP-00091 Exporting questionable statistics的错误. 确切的说是个警告&#xff0c;那么他产生的原因主要就是我们系统环境变量中的NLS_LANG和数据库中的NLS_CHARACTERSET设置不一致造成的。但是EXP-00091这个对我们所生成的dump影响不大&#x…

Java项目:农产品特产商城系统(java+SSM+JSP+jQuery+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01;项目介绍本项目分为前后台&#xff0c;前台为普通用户角色&#xff0c;后台为管理员角色&#xff1b;管理员角色包含以下功能&#xff1a;管理员登录,类目管理,用户管理,农产品管理,订单管理,公告管理,留…

Java项目:汽车配件商城系统(java+SSM+JSP+jQuery+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01;项目介绍本项目分为前后台&#xff0c;前台为普通用户角色&#xff0c;后台为管理员角色&#xff1b;管理员角色包含以下功能&#xff1a;人员管理,修改个人信息,图片管理,图表管理,管理员登录,订单管理,…

每日一句:A friend and I went out to a bar and got wasted.

A friend and I went out to a bar and got wasted.我和一个朋友去酒吧喝得大醉。----------------------------------------------------------------------在这个句子中&#xff0c;waste不再是“浪费”的意思&#xff0c;而是got very very drunk。例句&#xff1a;I got wa…