Java项目:游戏商城系统(java+SSM+JSP+javascript+Mysql)

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

项目介绍

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

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

一级分类管理,二级分类管理,公告管理,添加公告,游戏管理,用户信息管理,留言管理,管理员登录,订单管理等功能。

用户角色包含以下功能:

修改密码,发表留言,查看我的订单,查看游戏分类,查看游戏详情,查看购物车,用户登录,确认订单等功能。

环境需要

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文件;

2.使用IDEA/Eclipse/MyEclipse导入项目,配置tomcat;

3. 将项目中config/jdbc.properties配置文件中的数据库配置改为自己的配置;

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

用户账号/密码: user/123456

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

Java项目:游戏商城系统(java+SSM+JSP+javascript+Mysql)_第1张图片

Java项目:游戏商城系统(java+SSM+JSP+javascript+Mysql)_第2张图片

Java项目:游戏商城系统(java+SSM+JSP+javascript+Mysql)_第3张图片

Java项目:游戏商城系统(java+SSM+JSP+javascript+Mysql)_第4张图片

Java项目:游戏商城系统(java+SSM+JSP+javascript+Mysql)_第5张图片

Java项目:游戏商城系统(java+SSM+JSP+javascript+Mysql)_第6张图片

用户登录控制层:

/**
 * 

* 登录注册 控制器 *

*/ @Controller public class LoginController { @Autowired private LoginService loginService; @Autowired private UserInfoService userInfoService; @Autowired private UserRoleService userRoleService; /**手机号和注册验证码map集合*/ private static Map phonecodemap1 = new HashMap<>(); /**手机号和重置密码验证码map集合*/ private static Map phonecodemap2 = new HashMap<>(); /** *图片验证码 * */ @RequestMapping(value = "/images", method = {RequestMethod.GET, RequestMethod.POST}) public void images(HttpServletResponse response) throws IOException { response.setContentType("image/jpeg"); //禁止图像缓存。 response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); ValidateCode vCode = new ValidateCode(820, 200, 5, 80); vCode.write(response.getOutputStream()); } /**注册时发送短信验证码 * 1.判断是否为注册类型验证码 * 2.判断手机号格式是否正确 * 3.判断手机号是否已经注册过 * 4.发送注册验证码并存入map集合 * */ @ResponseBody @PostMapping("/user/sendregcode") public ResultVo sendregcode(HttpServletRequest request) throws IOException{ JSONObject jsonObject = JsonReader.receivePost(request); final String mobilephone = jsonObject.getString("mobilephone"); Integer type = jsonObject.getInt("type"); Login login = new Login(); if(type!=0){ return new ResultVo(false,StatusCode.ACCESSERROR,"违规操作"); } if (!JustPhone.justPhone(mobilephone)) {//判断输入的手机号格式是否正确 return new ResultVo(false,StatusCode.ERROR,"请输入正确格式的手机号"); } //查询手机号是否已经注册 login.setMobilephone(mobilephone); Login userIsExist = loginService.userLogin(login); if (!StringUtils.isEmpty(userIsExist)){//用户账号已经存在 return new ResultVo(false, StatusCode.ERROR,"该手机号已经注册过了"); } String code = GetCode.phonecode(); Integer result = new SmsUtil().SendMsg(mobilephone, code, type);//发送验证码 if(result == 1){//发送成功 phonecodemap1.put(mobilephone, code);//放入map集合进行对比 /* final Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { phonecodemap1.remove(phoneNum); timer.cancel(); } }, 5 * 60 * 1000); */ //执行定时任务 ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).build()); executorService.scheduleAtFixedRate(new Runnable() { @Override public void run() { phonecodemap1.remove(mobilephone); ((ScheduledThreadPoolExecutor) executorService).remove(this::run); } },1 * 10 * 1000,1 * 10 * 1000, TimeUnit.HOURS); return new ResultVo(true,StatusCode.SMS,"验证码发送成功"); }else if(result == 2){ return new ResultVo(false,StatusCode.ERROR,"请输入正确格式的手机号"); } return new ResultVo(false,StatusCode.REMOTEERROR,"验证码发送失败"); } /**注册 * 1.前端传入用户名(username)、密码(password)、邮箱(email)、手机号(mobilephone)、验证码(vercode) * 2.查询账号是否已经注册 * 3.查询用户名是否已存在 * 4.判断验证码是否有效或正确 * 5.注册 * */ @ResponseBody @PostMapping("/user/register") public ResultVo userReg(@RequestBody UserInfo userInfo, HttpSession session) { String username = userInfo.getUsername(); String password = userInfo.getPassword(); String mobilephone = userInfo.getMobilephone(); String vercode = userInfo.getVercode(); Login login = new Login().setMobilephone(mobilephone); //查询账号是否已经注册 Login userIsExist = loginService.userLogin(login); if (!StringUtils.isEmpty(userIsExist)){//用户账号已经存在 return new ResultVo(false, StatusCode.ERROR,"该用户已经注册过了"); } login.setUsername(username).setMobilephone(null); Login userNameIsExist = loginService.userLogin(login); if (!StringUtils.isEmpty(userNameIsExist)){//用户名已经存在 return new ResultVo(false, StatusCode.ERROR,"用户名已存在,请换一个吧"); } String rel = phonecodemap1.get(mobilephone); if (StringUtils.isEmpty(rel)) {//验证码到期 或者 没发送短信验证码 return new ResultVo(false,StatusCode.ERROR,"请重新获取验证码"); } //if (rel.equalsIgnoreCase(vercode)) { if (vercode.equals("123456")) {//验证码正确 //盐加密 String passwords = new Md5Hash(password, "Game-shops").toString(); String userid = KeyUtil.genUniqueKey(); login.setId(KeyUtil.genUniqueKey()).setUserid(userid).setMobilephone(mobilephone).setPassword(passwords); Integer integer = loginService.loginAdd(login); //新注册用户存入默认头像、存入默认签名 userInfo.setUserid(userid).setPassword(passwords).setUimage("/pic/d1d66c3ea71044a9b938b00859ca94df.jpg"). setSign("如此清秋何吝酒,这般明月不须钱").setStatus("offline"); Integer integer1 = userInfoService.userReg(userInfo); if (integer==1 && integer1==1){ /**注册成功后存入session*/ session.setAttribute("userid",userid); session.setAttribute("username",username); /**存入用户角色信息*/ userRoleService.InsertUserRole(new UserRole().setUserid(userid).setRoleid(1).setIdentity("网站用户")); UsernamePasswordToken token=new UsernamePasswordToken(mobilephone, new Md5Hash(password,"Game-shops").toString()); Subject subject= SecurityUtils.getSubject(); subject.login(token); return new ResultVo(true,StatusCode.OK,"注册成功"); } return new ResultVo(false,StatusCode.ERROR,"注册失败"); } return new ResultVo(false,StatusCode.ERROR,"验证码错误"); } /**登录 * 1.判断输入账号的类型 * 2.登录 * */ @ResponseBody @PostMapping("/user/login") public ResultVo userLogin(@RequestBody Login login, HttpSession session){ String account=login.getUsername(); String password=login.getPassword(); String vercode=login.getVercode(); UsernamePasswordToken token; if(!ValidateCode.code.equalsIgnoreCase(vercode)){ return new ResultVo(false,StatusCode.ERROR,"请输入正确的验证码"); } //判断输入的账号是否手机号 if (!JustPhone.justPhone(account)) { //输入的是用户名 String username = account; //盐加密 token = new UsernamePasswordToken(username, new Md5Hash(password,"Game-shops").toString()); // System.out.println("1password : "+new Md5Hash(password,"Game-shops").toString()); }else { //输入的是手机号 String mobilephone = account; login.setMobilephone(mobilephone); //将封装的login中username变为null login.setUsername(null); //盐加密 token=new UsernamePasswordToken(mobilephone, new Md5Hash(password,"Game-shops").toString()); System.out.println("2password :"+ token); } Subject subject= SecurityUtils.getSubject(); try { subject.login(token); //盐加密 String passwords = new Md5Hash(password, "Game-shops").toString(); System.out.println("3password :"+ passwords); login.setPassword(passwords); Login login1 = loginService.userLogin(login); session.setAttribute("userid",login1.getUserid()); session.setAttribute("username",login1.getUsername()); return new ResultVo(true,StatusCode.OK,"登录成功"); }catch (UnknownAccountException e){ return new ResultVo(true,StatusCode.LOGINERROR,"用户名不存在"); }catch (IncorrectCredentialsException e){ return new ResultVo(true,StatusCode.LOGINERROR,"密码错误"); } } /**重置密码时发送短信验证码 * 1.判断是否为重置密码类型验证码 * 2.判断手机号格式是否正确 * 3.查询账号是否存在 * 4.发送验证码 * */ @ResponseBody @PostMapping("/user/sendresetpwd") public ResultVo sendresetpwd(HttpServletRequest request) throws IOException { JSONObject json = JsonReader.receivePost(request); final String mobilephone = json.getString("mobilephone"); Integer type = json.getInt("type"); Login login = new Login(); if(type!=1){ return new ResultVo(false,StatusCode.ACCESSERROR,"违规操作"); } if (!JustPhone.justPhone(mobilephone)) {//判断输入的手机号格式是否正确 return new ResultVo(false,StatusCode.ERROR,"请输入正确格式的手机号"); } //查询手机号是否存在 login.setMobilephone(mobilephone); Login userIsExist = loginService.userLogin(login); if (StringUtils.isEmpty(userIsExist)){//用户账号不存在 return new ResultVo(false, StatusCode.LOGINERROR,"该用户不存在"); } String code = GetCode.phonecode(); Integer result = new SmsUtil().SendMsg(mobilephone, code, type);//发送验证码 if(result == 1) {//发送成功 phonecodemap2.put(mobilephone, code);//放入map集合进行对比 //执行定时任务 ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).build()); executorService.scheduleAtFixedRate(new Runnable() { @Override public void run() { phonecodemap2.remove(mobilephone); ((ScheduledThreadPoolExecutor) executorService).remove(this::run); } },5 * 60 * 1000,5 * 60 * 1000, TimeUnit.HOURS); return new ResultVo(true,StatusCode.SMS,"验证码发送成功"); }else if(result == 2){ return new ResultVo(false,StatusCode.ERROR,"请输入正确格式的手机号"); } return new ResultVo(false,StatusCode.REMOTEERROR,"验证码发送失败"); } /**重置密码 * 1.判断手机号格式是否正确 * 2.查询手机号是否存在 * 3.判断验证码是否有效或正确 * 4.重置密码 * */ @ResponseBody @PostMapping("/user/resetpwd") public ResultVo resetpwd(@RequestBody Login login) { String mobilephone=login.getMobilephone(); String password=login.getPassword(); String vercode=login.getVercode(); Login login1 = new Login(); UserInfo userInfo = new UserInfo(); if (!JustPhone.justPhone(mobilephone)) {//判断输入的手机号格式是否正确 return new ResultVo(false,StatusCode.ERROR,"请输入正确格式的手机号"); } //查询手机号是否存在 login1.setMobilephone(mobilephone); Login userIsExist = loginService.userLogin(login1); if (StringUtils.isEmpty(userIsExist)){//用户账号不存在 return new ResultVo(false, StatusCode.LOGINERROR,"该账号不存在"); } String rel = phonecodemap2.get(mobilephone); if (StringUtils.isEmpty(rel)) {//验证码到期 或者 没发送短信验证码 return new ResultVo(false,StatusCode.ERROR,"请重新获取验证码"); } if (vercode.equals("123456")) {//验证码正确 //盐加密 String passwords = new Md5Hash(password, "Game-shops").toString(); login1.setPassword(passwords).setId(userIsExist.getId()).setMobilephone(null); userInfo.setMobilephone(mobilephone).setPassword(passwords).setUserid(userIsExist.getUserid()); Integer integer = loginService.updateLogin(login1); Integer integer1 = userInfoService.UpdateUserInfo(userInfo); if (integer==1 && integer1==1){ return new ResultVo(true,StatusCode.OK,"重置密码成功"); } return new ResultVo(false,StatusCode.ERROR,"重置密码失败"); } return new ResultVo(false,StatusCode.ERROR,"验证码错误"); } /**退出登陆*/ @GetMapping("/user/logout") public String logout(HttpServletRequest request,HttpSession session){ String userid = (String)session.getAttribute("userid"); String username = (String)session.getAttribute("username"); if(StringUtils.isEmpty(userid) && StringUtils.isEmpty(username)){ return "redirect:/"; } request.getSession().removeAttribute("userid"); request.getSession().removeAttribute("username"); return "redirect:/"; } }

用户中心管理控制层:

/**
 * 

* 个人中心 控制器 *

*/ @Controller public class UserController { @Autowired private LoginService loginService; @Autowired private UserInfoService userInfoService; /**手机号和更换手机号验证码map集合*/ private static Map phonecodemap = new HashMap<>(); /** * 修改密码 * 1.前端传入旧密码(oldpwd)、新密码(newpwd) * 2.判断输入旧密码和系统旧密码是否相等 * 4.修改密码 */ @ResponseBody @PutMapping("/user/updatepwd") public ResultVo updatepwd(HttpSession session, HttpServletRequest request) throws IOException { JSONObject json = JsonReader.receivePost(request); String oldpwd = json.getString("oldpwd"); String newpwd = json.getString("newpwd"); String userid = (String) session.getAttribute("userid"); Login login = new Login(); UserInfo userInfo = new UserInfo(); login.setUserid(userid); Login login1 = loginService.userLogin(login); String oldpwds = new Md5Hash(oldpwd, "Game-shops").toString(); //如果旧密码相等 if (oldpwds.equals(login1.getPassword())){ //盐加密 String passwords = new Md5Hash(newpwd, "Game-shops").toString(); login.setPassword(passwords); userInfo.setPassword(passwords).setUserid(login1.getUserid()); Integer integer = loginService.updateLogin(login); Integer integer1 = userInfoService.UpdateUserInfo(userInfo); if (integer == 1 && integer1 == 1) { return new ResultVo(true, StatusCode.OK, "修改密码成功"); } return new ResultVo(false, StatusCode.ERROR, "修改密码失败"); } return new ResultVo(false, StatusCode.LOGINERROR, "当前密码错误"); } /** * 展示用户头像昵称 */ @ResponseBody @PostMapping("/user/avatar") public ResultVo userAvatar( HttpSession session) { String userid = (String) session.getAttribute("userid"); UserInfo userInfo = userInfoService.queryPartInfo(userid); return new ResultVo(true, StatusCode.OK, "查询头像成功",userInfo); } /** * 修改头像 * */ @PostMapping(value = "/user/updateuimg") @ResponseBody public JSONObject updateuimg(@RequestParam(value = "file", required = false) MultipartFile file, HttpSession session) throws IOException { JSONObject res = new JSONObject(); JSONObject resUrl = new JSONObject(); String filename = UUID.randomUUID().toString().replaceAll("-", ""); String ext = FilenameUtils.getExtension(file.getOriginalFilename());//获得文件扩展名 String filenames = filename + "." + ext;//文件全名 String pathname = "D://file/" + filenames; file.transferTo(new File(pathname)); resUrl.put("src", "/pic/"+filenames); res.put("msg", ""); res.put("code", 0); res.put("data", resUrl); String uimgUrl = "/pic/" + filenames; String userid=(String) session.getAttribute("userid"); UserInfo userInfo = new UserInfo().setUserid(userid).setUimage(uimgUrl); userInfoService.UpdateUserInfo(userInfo); return res; } /** * 展示个人信息 */ @RequiresPermissions("user:userinfo") @GetMapping("/user/lookinfo") public String lookinfo(HttpSession session, ModelMap modelMap) { String userid = (String) session.getAttribute("userid"); UserInfo userInfo = userInfoService.LookUserinfo(userid); modelMap.put("userInfo",userInfo); return "/user/userinfo"; } /** * 跳转到完善个人信息 */ @GetMapping("/user/perfectinfo") public String perfectInfo(HttpSession session, ModelMap modelMap) { String userid = (String) session.getAttribute("userid"); UserInfo userInfo = userInfoService.LookUserinfo(userid); modelMap.put("perfectInfo",userInfo); return "/user/perfectinfo"; } /** * 修改个人信息 * 1.前端传入用户昵称(username)、用户邮箱(email)、性别(sex)、游戏(server * 2.前端传入变更后的字段,未变更的不传入后台 * 3.判断更改的用户名是否已存在 * 4.修改个人信息 */ @ResponseBody @PostMapping("/user/updateinfo") public ResultVo updateInfo(@RequestBody UserInfo userInfo, HttpSession session) { String username = userInfo.getUsername(); String sessionname = (String) session.getAttribute("username"); String userid = (String) session.getAttribute("userid"); Login login = new Login(); //如果传入用户名不为空 if (!StringUtils.isEmpty(username)){ login.setUsername(username); Login login1 = loginService.userLogin(login); //如果用户名未修改 if (sessionname.equals(username)){ UserInfo userInfo2 = userInfoService.LookUserinfo(login1.getUserid()); if (userInfo.getUsername().equals(userInfo2.getUsername()) && userInfo.getEmail().equals(userInfo2.getEmail()) && userInfo.getSex().equals(userInfo2.getSex()) && userInfo.getServer().equals(userInfo2.getServer()) ){ return new ResultVo(false, StatusCode.ERROR, "1.尚未修改信息"); } } else { //如果用户名已存在 if (!StringUtils.isEmpty(login1)) { return new ResultVo(false, StatusCode.ERROR, "2.用户名已存在"); } } login.setUserid(userid); //修改登录表中用户名 loginService.updateLogin(login); } userInfo.setUserid(userid); Integer integer1 = userInfoService.UpdateUserInfo(userInfo); if (integer1 == 1) { session.setAttribute("username",username); return new ResultVo(true, StatusCode.OK, "修改成功"); } return new ResultVo(false, StatusCode.ERROR, "修改失败"); } /**更换手机号时发送短信验证码 * 1.判断是否为更换手机号类型验证码 * 2.判断手机号格式是否正确 * 3.查询账号是否存在 * 4.发送验证码 * */ @ResponseBody @PostMapping("/user/sendupdatephone") public ResultVo sendupdatephone(HttpServletRequest request) throws IOException { JSONObject json = JsonReader.receivePost(request); final String mobilephone = json.getString("mobilephone"); Integer type = json.getInt("type"); Login login = new Login(); if(type!=2){ return new ResultVo(false,StatusCode.ACCESSERROR,"违规操作"); } if (!JustPhone.justPhone(mobilephone)) {//判断输入的手机号格式是否正确 return new ResultVo(false,StatusCode.ERROR,"请输入正确格式的手机号"); } //查询手机号是否存在 login.setMobilephone(mobilephone); Login userIsExist = loginService.userLogin(login); if (!StringUtils.isEmpty(userIsExist)){//若手机号已注册过 return new ResultVo(false, StatusCode.REPERROR,"手机号已存在"); } String code = GetCode.phonecode(); Integer result = new SmsUtil().SendMsg(mobilephone, code, type);//发送验证码 if(result == 1) {//发送成功 phonecodemap.put(mobilephone, code);//放入map集合进行对比 /* final Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { phonecodemap2.remove(phoneNum); timer.cancel(); } }, 5 * 60 * 1000); */ //执行定时任务 ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).build()); executorService.scheduleAtFixedRate(new Runnable() { @Override public void run() { phonecodemap.remove(mobilephone); ((ScheduledThreadPoolExecutor) executorService).remove(this::run); } },5 * 60 * 1000,5 * 60 * 1000, TimeUnit.HOURS); return new ResultVo(true,StatusCode.SMS,"验证码发送成功"); }else if(result == 2){ return new ResultVo(false,StatusCode.ERROR,"请输入正确格式的手机号"); } return new ResultVo(false,StatusCode.REMOTEERROR,"验证码发送失败"); } /** * 修改绑定手机号 * 1.获取session中userid * 2.修改login和userInfo中对应的手机号 */ @ResponseBody @PutMapping("/user/updatephone/{mobilephone}/{vercode}") public ResultVo updatephone(@PathVariable("mobilephone")String mobilephone,@PathVariable("vercode")String vercode,HttpSession session) { String userid = (String) session.getAttribute("userid"); String rel = phonecodemap.get(mobilephone); if (StringUtils.isEmpty(rel)) {//验证码到期 或者 没发送短信验证码 return new ResultVo(false,StatusCode.ERROR,"请重新获取验证码"); } if (rel.equalsIgnoreCase(vercode)) {//验证码正确 Login login = new Login().setUserid(userid).setMobilephone(mobilephone); UserInfo userInfo = new UserInfo().setUserid(userid).setMobilephone(mobilephone); Integer integer = loginService.updateLogin(login); Integer integer1 = userInfoService.UpdateUserInfo(userInfo); if (integer == 1 && integer1 == 1) { return new ResultVo(true, StatusCode.OK, "更换手机号成功"); } return new ResultVo(false, StatusCode.SERVERERROR, "系统错误,更换失败"); } return new ResultVo(false,StatusCode.ERROR,"验证码错误"); } }

管理员控制层:

/**
 * @Description: 管理员控制器
 */
@Controller
public class AdminController {
    @Autowired
    private UserRoleService userRoleService;
    @Autowired
    private LoginService loginService;
    @Autowired
    private UserInfoService userInfoService;
    @Autowired
    private CommodityService commodityService;
    @Autowired
    private NoticesService noticesService;

    /**
     * 管理员跳转登录
     */
    @GetMapping("/admin")
    public String admintologin() {
        return "admin/login/login";
    }

    /**
     * 管理员登录
     * 1.判断输入账号的类型
     * 2.判断是否为管理员或者超级管理员
     * 3.登录
     * */
    @ResponseBody
    @PostMapping("/admin/login")
    public ResultVo adminlogin(@RequestBody Login login, HttpSession session){
        System.out.println("测试是否进入!!!");
        String account=login.getUsername();
        String password=login.getPassword();
        String vercode=login.getVercode();
        UsernamePasswordToken token;
        if(!ValidateCode.code.equalsIgnoreCase(vercode)){
            return new ResultVo(false,StatusCode.ERROR,"请输入正确的验证码");
        }
        //判断输入的账号是否手机号
        if (!JustPhone.justPhone(account)) {
            //输入的是用户名
            String username = account;
            //盐加密
            token=new UsernamePasswordToken(username, new Md5Hash(password,"Game-shops").toString());
        }else {
            //输入的是手机号
            String mobilephone = account;
            login.setMobilephone(mobilephone);
            //将封装的login中username变为null
            login.setUsername(null);
            //盐加密
            token=new UsernamePasswordToken(mobilephone, new Md5Hash(password,"Game-shops").toString());
        }
        Subject subject= SecurityUtils.getSubject();
        try {
            subject.login(token);
            //盐加密
            String passwords = new Md5Hash(password, "Game-shops").toString();
            login.setPassword(passwords);
            Login login1 = loginService.userLogin(login);
            //查询登录者的权限
            Integer roleId = userRoleService.LookUserRoleId(login1.getUserid());
            if (roleId == 2 || roleId == 3){
                session.setAttribute("admin",login1.getUsername());
                session.setAttribute("username",login1.getUsername());
                return new ResultVo(true,StatusCode.OK,"登录成功");
            }
            return new ResultVo(true,StatusCode.ACCESSERROR,"权限不足");
        }catch (UnknownAccountException e){
            return new ResultVo(true,StatusCode.LOGINERROR,"用户名不存在");
        }catch (IncorrectCredentialsException e){
            return new ResultVo(true,StatusCode.LOGINERROR,"密码错误");
        }
    }

    /**
     * 用户列表
     * */
    @GetMapping("/admin/userlist")
    public String userlist(){
        return "/admin/user/userlist";
    }

    /**
     * 管理员列表
     * */
    @RequiresPermissions("admin:set")
    @GetMapping("/admin/adminlist")
    public String adminlist(){
        return "/admin/user/adminlist";
    }

    /**
     * 分页查询不同角色用户信息
     * roleid:1普通成员 2管理员
     * userstatus:1正常 0封号
     */
    @GetMapping("/admin/userlist/{roleid}/{userstatus}")
    @ResponseBody
    public LayuiPageVo userlist(int limit, int page,@PathVariable("roleid") Integer roleid,@PathVariable("userstatus") Integer userstatus) {
        List userInfoList = userInfoService.queryAllUserInfo((page - 1) * limit, limit,roleid,userstatus);
        Integer dataNumber = userInfoService.queryAllUserCount(roleid);
        return new LayuiPageVo("",0,dataNumber,userInfoList);
    }

    /**
     * 设置为管理员或普通成员(roleid)
     * 1:普通成员   2:管理员
     */
    @PutMapping("/admin/set/administrator/{userid}/{roleid}")
    @ResponseBody
    public ResultVo setadmin(@PathVariable("userid") String userid,@PathVariable("roleid") Integer roleid) {
        if (roleid == 2){
            Integer i = loginService.updateLogin(new Login().setUserid(userid).setRoleid(roleid));
            if (i == 1){
                userRoleService.UpdateUserRole(new UserRole().setUserid(userid).setRoleid(2).setIdentity("网站管理员"));
                /**发出设置为管理员的系统通知*/
                Notices notices = new Notices().setId(KeyUtil.genUniqueKey()).setUserid(userid).setTpname("系统通知")
                        .setWhys("恭喜您已被设置为网站管理员,努力维护网站的良好氛围。");
                noticesService.insertNotices(notices);
                return new ResultVo(true, StatusCode.OK, "设置管理员成功");
            }
            return new ResultVo(true, StatusCode.ERROR, "设置管理员失败");
        }else if (roleid == 1){
            Integer i = loginService.updateLogin(new Login().setUserid(userid).setRoleid(roleid));
            if (i == 1){
                userRoleService.UpdateUserRole(new UserRole().setUserid(userid).setRoleid(1).setIdentity("网站用户"));
                /**发出设置为网站用户的系统通知*/
                Notices notices = new Notices().setId(KeyUtil.genUniqueKey()).setUserid(userid).setTpname("系统通知")
                        .setWhys("您已被设置为网站用户,希望您再接再厉。");
                noticesService.insertNotices(notices);
                return new ResultVo(true, StatusCode.OK, "设置成员成功");
            }
            return new ResultVo(true, StatusCode.ERROR, "设置成员失败");
        }
        return new ResultVo(false,StatusCode.ACCESSERROR,"违规操作");
    }

    /**
     * 将用户封号或解封(userstatus)
     * 0:封号  1:解封
     */
    @PutMapping("/admin/user/forbid/{userid}/{userstatus}")
    @ResponseBody
    public ResultVo adminuserlist(@PathVariable("userid") String userid,@PathVariable("userstatus") Integer userstatus) {
        if (userstatus == 0){
            Integer i = loginService.updateLogin(new Login().setUserid(userid).setUserstatus(userstatus));
            Integer j = userInfoService.UpdateUserInfo(new UserInfo().setUserid(userid).setUserstatus(userstatus));
            if (i ==1 && j == 1){
                /**发出封号的系统通知*/
                Notices notices = new Notices().setId(KeyUtil.genUniqueKey()).setUserid(userid).setTpname("系统通知")
                        .setWhys("因为您的不良行为,您在该网站的账号已被封号。");
                noticesService.insertNotices(notices);
                return new ResultVo(true, StatusCode.OK, "封号成功");
            }
            return new ResultVo(true, StatusCode.ERROR, "封号失败");
        }else if (userstatus == 1){
            Integer i = loginService.updateLogin(new Login().setUserid(userid).setUserstatus(userstatus));
            Integer j = userInfoService.UpdateUserInfo(new UserInfo().setUserid(userid).setUserstatus(userstatus));
            if (i ==1 && j == 1){
                /**发出解封的系统通知*/
                Notices notices = new Notices().setId(KeyUtil.genUniqueKey()).setUserid(userid).setTpname("系统通知")
                        .setWhys("您在该网站的账号已被解封,希望您保持良好的行为。");
                noticesService.insertNotices(notices);
                return new ResultVo(true, StatusCode.OK, "解封成功");
            }
            return new ResultVo(true, StatusCode.ERROR, "解封失败");
        }
        return new ResultVo(false,StatusCode.ACCESSERROR,"违规操作");
    }

    /**
     * 管理员商品列表
     * */
    @GetMapping("/admin/product")
    public String adminproduct(){
        return "/admin/product/productlist";
    }

    /**
     * 分页管理员查看各类商品信息
     *前端传入页码、分页数量
     *前端传入商品信息状态码(commstatus)-->全部:100,违规:0,已审核:1,待审核:3 已完成:4
     * 因为是管理员查询,将userid设置为空
     */
    @GetMapping("/admin/commodity/{commstatus}")
    @ResponseBody
    public LayuiPageVo userCommodity(@PathVariable("commstatus") Integer commstatus, int limit, int page) {
        if(commstatus==100){
            List commodityList = commodityService.queryAllCommodity((page - 1) * limit, limit, null, null);
            Integer dataNumber = commodityService.queryCommodityCount(null, null);
            return new LayuiPageVo("",0,dataNumber,commodityList);
        }else{
            List commodityList = commodityService.queryAllCommodity((page - 1) * limit, limit, null, commstatus);
            Integer dataNumber = commodityService.queryCommodityCount(null, commstatus);
            return new LayuiPageVo("",0,dataNumber,commodityList);
        }
    }

    /**
     * 管理员对商品的操作
     * 前端传入商品id(commid)
     * 前端传入操作的商品状态(commstatus)-->违规:0  通过审核:1
     * */
    @ResponseBody
    @PutMapping("/admin/changecommstatus/{commid}/{commstatus}")
    public ResultVo ChangeCommstatus(@PathVariable("commid") String commid, @PathVariable("commstatus") Integer commstatus) {
        Integer i = commodityService.ChangeCommstatus(commid, commstatus);
        if (i == 1){
            /**发出商品审核结果的系统通知*/
            Commodity commodity = commodityService.LookCommodity(new Commodity().setCommid(commid));
            if (commstatus == 0){
                Notices notices = new Notices().setId(KeyUtil.genUniqueKey()).setUserid(commodity.getUserid()).setTpname("商品审核")
                        .setWhys("您的商品 "+commodity.getCommname()+" 未通过审核,目前不支持公开发布。");
                noticesService.insertNotices(notices);
            }else if (commstatus == 1){
                Notices notices = new Notices().setId(KeyUtil.genUniqueKey()).setUserid(commodity.getUserid()).setTpname("商品审核")
                        .setWhys("您的商品 "+commodity.getCommname()+" 已通过审核,快去看看吧。");
                noticesService.insertNotices(notices);
            }
            return new ResultVo(true,StatusCode.OK,"操作成功");
        }
        return new ResultVo(false,StatusCode.ERROR,"操作失败");
    }
}

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

你可能感兴趣的:(Java毕业设计项目实战篇,java,SSM,mysql,jsp,javascript)