Java实战之实现物流配送系统示例详解
程序员文章站
2022-06-19 17:47:44
目录介绍效果图展示主要实现代码介绍系统分普通用户、企业、超级管理员等角色,除基础脚手架外,实现的功能有:超级管理员:系统管理、用户管理、企业用户管理、普通用户管理、货物类型管理、车辆管理、公告管理、使...
介绍
系统分普通用户、企业、超级管理员等角色,除基础脚手架外,实现的功能有:
超级管理员:系统管理、用户管理、企业用户管理、普通用户管理、货物类型管理、车辆管理、公告管理、使用帮助等。
普通用户:注册登录、个人信息管理(个人资料、密码修改、充值、订单管理等)、货物浏览、公告查看、下单等。
企业用户:注册登录、修改密码、充值、订单管理、货物管理、车辆管理、安排车辆等。
运行环境:windows/linux均可、jdk1.8、mysql5.7、redis3.0、idea/eclipse均可。
特色功能:系统支持支付宝沙箱支付。
效果图展示
主要实现代码
后台角色管理控制器:
/** * 后台角色管理控制器 * */ @requestmapping("/admin/role") @controller public class rolecontroller { private logger log = loggerfactory.getlogger(rolecontroller.class); @autowired private menuservice menuservice; @autowired private operaterlogservice operaterlogservice; @autowired private roleservice roleservice; /** * 分页搜索角色列表 * @param model * @param role * @param pagebean * @return */ @requestmapping(value="/list") public string list(model model,role role,pagebean<role> pagebean){ model.addattribute("title", "角色列表"); model.addattribute("name", role.getname()); model.addattribute("pagebean", roleservice.findbyname(role, pagebean)); return "admin/role/list"; } /** * 角色添加页面 * @param model * @return */ @requestmapping(value="/add",method=requestmethod.get) public string add(model model){ list<menu> findall = menuservice.findall(); model.addattribute("roletypes", userroletypeenum.values()); model.addattribute("topmenus",menuutil.gettopmenus(findall)); model.addattribute("secondmenus",menuutil.getsecondmenus(findall)); model.addattribute("thirdmenus",menuutil.getthirdmenus(findall)); return "admin/role/add"; } /** * 角色添加表单提交处理 * @param role * @return */ @requestmapping(value="/add",method=requestmethod.post) @responsebody public result<boolean> add(role role){ role top1byroletype = roleservice.findtop1byroletypeandroletypenot(role.getroletype()); if (top1byroletype != null){ return result.error(codemsg.admin_role_exist); } //用统一验证实体方法验证是否合法 codemsg validate = validateentityutil.validate(role); if(validate.getcode() != codemsg.success.getcode()){ return result.error(validate); } if(roleservice.save(role) == null){ return result.error(codemsg.admin_role_add_error); } log.info("添加角色【"+role+"】"); operaterlogservice.add("添加角色【"+role.getname()+"】"); return result.success(true); } /** * 角色编辑页面 * @param id * @param model * @return */ @requestmapping(value="/edit",method=requestmethod.get) public string edit(@requestparam(name="id",required=true)long id,model model){ list<menu> findall = menuservice.findall(); model.addattribute("topmenus",menuutil.gettopmenus(findall)); model.addattribute("secondmenus",menuutil.getsecondmenus(findall)); model.addattribute("thirdmenus",menuutil.getthirdmenus(findall)); role role = roleservice.find(id); model.addattribute("role", role); model.addattribute("authorities",jsonarray.tojson(role.getauthorities()).tostring()); model.addattribute("roletypes", userroletypeenum.values()); return "admin/role/edit"; } /** * 角色修改表单提交处理 * @param request * @param role * @return */ @requestmapping(value="/edit",method=requestmethod.post) @responsebody public result<boolean> edit(role role){ //用统一验证实体方法验证是否合法 codemsg validate = validateentityutil.validate(role); if(validate.getcode() != codemsg.success.getcode()){ return result.error(validate); } role existrole = roleservice.find(role.getid()); if(existrole == null){ return result.error(codemsg.admin_role_no_exist); } existrole.setname(role.getname()); existrole.setremark(role.getremark()); existrole.setstatus(role.getstatus()); existrole.setauthorities(role.getauthorities()); if(roleservice.save(existrole) == null){ return result.error(codemsg.admin_role_edit_error); } log.info("编辑角色【"+role+"】"); operaterlogservice.add("编辑角色【"+role.getname()+"】"); return result.success(true); } /** * 删除角色 * @param request * @param id * @return */ @requestmapping(value="delete",method=requestmethod.post) @responsebody public result<boolean> delete(@requestparam(name="id",required=true)long id){ try { roleservice.delete(id); } catch (exception e) { // todo: handle exception return result.error(codemsg.admin_role_delete_error); } log.info("编辑角色id【"+id+"】"); operaterlogservice.add("删除角色id【"+id+"】"); return result.success(true); } }
系统控制器:
/** * 系统控制器 * */ @requestmapping("/system") @controller public class systemcontroller { @autowired private operaterlogservice operaterlogservice; @autowired private userservice userservice; @autowired private databasebakservice databasebakservice; @autowired private orderauthservice orderauthservice; @autowired private homeuserservice homeuserservice; @autowired private expressmailorderservice expressmailorderservice; private logger log = loggerfactory.getlogger(systemcontroller.class); /** * 登录页面 * @param model * @return */ @requestmapping(value="/login",method=requestmethod.get) public string login(model model){ return "admin/system/login"; } /** * 用户登录提交表单处理方法 * @param request * @param user * @param cpacha * @return */ @requestmapping(value="/login",method=requestmethod.post) @responsebody public result<boolean> login(httpservletrequest request,user user,string cpacha){ if(user == null){ return result.error(codemsg.data_error); } if (user.getusername() == null || "".equals(user.getusername())){ return result.error(codemsg.admin_username_empty); } if (user.getpassword() == null || "".equals(user.getpassword())){ return result.error(codemsg.admin_password_empty); } //表示实体信息合法,开始验证验证码是否为空 if(stringutils.isempty(cpacha)){ return result.error(codemsg.cpacha_empty); } //说明验证码不为空,从session里获取验证码 object attribute = request.getsession().getattribute("admin_login"); if(attribute == null){ return result.error(codemsg.session_expired); } //表示session未失效,进一步判断用户填写的验证码是否正确 if(!cpacha.equalsignorecase(attribute.tostring())){ return result.error(codemsg.cpacha_error); } //表示验证码正确,开始查询数据库,检验密码是否正确 user findbyusername = userservice.findbyusername(user.getusername()); //判断是否为空 if(findbyusername == null){ return result.error(codemsg.admin_username_no_exist); } //表示用户存在,进一步对比密码是否正确 if(!findbyusername.getpassword().equals(user.getpassword())){ return result.error(codemsg.admin_password_error); } //表示密码正确,接下来判断用户状态是否可用 if(findbyusername.getstatus() == user.admin_user_status_unable){ return result.error(codemsg.admin_user_unable); } //检查用户所属角色状态是否可用 if(findbyusername.getrole() == null || findbyusername.getrole().getstatus() == role.admin_role_status_unable){ return result.error(codemsg.admin_user_role_unable); } //检查用户所属角色的权限是否存在 if(findbyusername.getrole().getauthorities() == null || findbyusername.getrole().getauthorities().size() == 0){ return result.error(codemsg.admin_user_role_authorites_empty); } //检查一切符合,可以登录,将用户信息存放至session request.getsession().setattribute(sessionconstant.session_user_login_key, findbyusername); //销毁session中的验证码 request.getsession().setattribute("admin_login", null); //将登陆记录写入日志库 operaterlogservice.add("用户【"+user.getusername()+"】于【" + stringutil.getformatterdate(new date(), "yyyy-mm-dd hh:mm:ss") + "】登录系统!"); log.info("用户成功登录,user = " + findbyusername); return result.success(true); } /** * 登录成功后的系统主页 * @param model * @return */ @requestmapping(value="/index") public string index(model model){ model.addattribute("operatorlogs", operaterlogservice.findlastestlog(10)); bigdecimal homeusercount = new bigdecimal(homeuserservice.total()); bigdecimal usercount = new bigdecimal(userservice.total()); bigdecimal homeusercountaddusercount = homeusercount.add(usercount); model.addattribute("branchesusers",userservice.inquiryoutletsunderthecourier()); model.addattribute("ordercountandmonthbynowyearlist",expressmailorderservice.ordercountandmonthbynowyear()); model.addattribute("usertotal",homeusercountaddusercount); model.addattribute("operatorlogtotal", operaterlogservice.total()); model.addattribute("databasebackuptotal", databasebakservice.total()); model.addattribute("onlineusertotal", sessionlistener.onlineusercount); return "admin/system/index"; } /** * 注销登录 * @return */ @requestmapping(value="/logout") public string logout(){ user logineduser = sessionutil.getlogineduser(); if(logineduser != null){ sessionutil.set(sessionconstant.session_user_login_key, null); } return "redirect:login"; } /** * 无权限提示页面 * @return */ @requestmapping(value="/no_right") public string noright(){ return "admin/system/no_right"; } /** * 修改用户个人信息 * @return */ @requestmapping(value="/update_userinfo",method=requestmethod.get) public string updateuserinfo(){ return "admin/system/update_userinfo"; } /** * 修改个人信息保存 * @param user * @return */ @requestmapping(value="/update_userinfo",method=requestmethod.post) public string updateuserinfo(user user){ user logineduser = sessionutil.getlogineduser(); logineduser.setmobile(user.getmobile()); logineduser.setheadpic(user.getheadpic()); //首先保存到数据库 userservice.save(logineduser); //更新session里的值 sessionutil.set(sessionconstant.session_user_login_key, logineduser); return "redirect:update_userinfo"; } /** * 修改密码页面 * @return */ @requestmapping(value="/update_pwd",method=requestmethod.get) public string updatepwd(){ return "admin/system/update_pwd"; } /** * 修改密码表单提交 * @param oldpwd * @param newpwd * @return */ @requestmapping(value="/update_pwd",method=requestmethod.post) @responsebody public result<boolean> updatepwd(@requestparam(name="oldpwd",required=true)string oldpwd, @requestparam(name="newpwd",required=true)string newpwd ){ user logineduser = sessionutil.getlogineduser(); if(!logineduser.getpassword().equals(oldpwd)){ return result.error(codemsg.admin_user_update_pwd_error); } if(stringutils.isempty(newpwd)){ return result.error(codemsg.admin_user_update_pwd_empty); } logineduser.setpassword(newpwd); //保存数据库 user save = userservice.save(logineduser); //更新session sessionutil.set(sessionconstant.session_user_login_key, save); return result.success(true); } /** * 日志管理列表 * @param model * @param operaterlog * @param pagebean * @return */ @requestmapping(value="/operator_log_list") public string operatorloglist(model model,operaterlog operaterlog,pagebean<operaterlog> pagebean){ model.addattribute("pagebean", operaterlogservice.findlist(operaterlog, pagebean)); model.addattribute("operator", operaterlog.getoperator()); model.addattribute("title", "日志列表"); return "admin/system/operator_log_list"; } /** * 删除操作日志,可删除多个 * @param ids * @return */ @requestmapping(value="/delete_operator_log",method=requestmethod.post) @responsebody public result<boolean> delete(string ids){ if(!stringutils.isempty(ids)){ string[] splitids = ids.split(","); for(string id : splitids){ operaterlogservice.delete(long.valueof(id)); } } return result.success(true); } /** * 清空整个日志 * @return */ @requestmapping(value="/delete_all_operator_log",method=requestmethod.post) @responsebody public result<boolean> deleteall(){ operaterlogservice.deleteall(); return result.success(true); } }
后台管理员管理控制器:
/** * 后台管理员管理控制器 * */ @requestmapping("/admin/user") @controller public class usercontroller { @autowired private userservice userservice; @autowired private roleservice roleservice; @autowired private operaterlogservice operaterlogservice; /** * 管理员列表页面 * @param model * @param user * @param pagebean * @return */ @requestmapping(value="/list") public string list(model model,user user,pagebean<user> pagebean){ model.addattribute("title", "管理员列表"); model.addattribute("username", user.getusername()); model.addattribute("pagebean", userservice.findlist(pagebean,user.getusername(), userroletypeenum.admin)); return "admin/user/list"; } /** * 新增管理员页面 * @param model * @return */ @requestmapping(value="/add",method=requestmethod.get) public string add(model model){ model.addattribute("roles", roleservice.findallbyroletype(userroletypeenum.admin)); return "admin/user/add"; } /** * 管理员添加表单提交处理 * @param user * @return */ @requestmapping(value="/add",method=requestmethod.post) @responsebody public result<boolean> add(user user){ //用统一验证实体方法验证是否合法 codemsg validate = validateentityutil.validate(user); if(validate.getcode() != codemsg.success.getcode()){ return result.error(validate); } if(user.getrole() == null || user.getrole().getid() == null){ return result.error(codemsg.admin_user_role_empty); } //判断管理员名是否存在 if(userservice.isexistusername(user.getusername(), 0l)){ return result.error(codemsg.admin_username_exist); } user.setusertype(userroletypeenum.admin); //到这说明一切符合条件,进行数据库新增 if(userservice.save(user) == null){ return result.error(codemsg.admin_use_add_error); } operaterlogservice.add("添加管理员,管理员名:" + user.getusername()); return result.success(true); } /** * 管理员编辑页面 * @param model * @return */ @requestmapping(value="/edit",method=requestmethod.get) public string edit(model model,@requestparam(name="id",required=true)long id){ model.addattribute("roles", roleservice.findallbyroletype(userroletypeenum.admin)); model.addattribute("user", userservice.find(id)); return "admin/user/edit"; } /** * 编辑管理员信息表单提交处理 * @param user * @return */ @requestmapping(value="/edit",method=requestmethod.post) @responsebody public result<boolean> edit(user user){ //用统一验证实体方法验证是否合法 codemsg validate = validateentityutil.validate(user); if(validate.getcode() != codemsg.success.getcode()){ return result.error(validate); } if(user.getrole() == null || user.getrole().getid() == null){ return result.error(codemsg.admin_user_role_empty); } if(user.getid() == null || user.getid().longvalue() <= 0){ return result.error(codemsg.admin_use_no_exist); } if(userservice.isexistusername(user.getusername(), user.getid())){ return result.error(codemsg.admin_username_exist); } //到这说明一切符合条件,进行数据库保存 user findbyid = userservice.find(user.getid()); //讲提交的管理员信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容 beanutils.copyproperties(user, findbyid, "id","createtime","updatetime","usertype"); if(userservice.save(findbyid) == null){ return result.error(codemsg.admin_use_edit_error); } operaterlogservice.add("编辑管理员,管理员名:" + user.getusername()); return result.success(true); } /** * 删除管理员 * @param id * @return */ @requestmapping(value="/delete",method=requestmethod.post) @responsebody public result<boolean> delete(@requestparam(name="id",required=true)long id){ try { userservice.delete(id); } catch (exception e) { return result.error(codemsg.admin_use_delete_error); } operaterlogservice.add("删除管理员,管理员id:" + id); return result.success(true); } }
以上就是java实战之实现物流配送系统示例详解的详细内容,更多关于java 物流配送系统的资料请关注其它相关文章!
上一篇: 复选框checkbox的JS操作
下一篇: JS得到当前时间字符串