项目介绍
该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录;
管理员角色包含以下功能:
管理员登录,用户管理,鲜花类别管理,鲜花管理,订单管理并发货,留言管理,系统公告管理等功能。
用户角色包含以下功能:
该网站提供用户首页、用户注册登录、鲜花详情查看、商品加入购物车、订单确认、个人订单查看、商城留言板以及商城公告等多项功能。
环境需要
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.数据库:mysql 5.7版本;
6.是否maven项目:否;
技术栈
1. 后端:spring+springmvc+mybatis
2. 前端:jsp+jquery+ajax
使用说明
1. 使用navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用idea/eclipse/myeclipse导入项目,eclipse/myeclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/ 登录
用户账号/密码: user/123456
管理员账号/密码:admin/admin
效果图展示
核心代码
商品管理控制层
/** * 商品 **/ @restcontroller @requestmapping("flower") public class flowercontroller { @autowired flowersservice flowerservice; @autowired flowersdao flowersdao; @requestmapping("/test") r test() { r r = new r(); return r; } //find @requestmapping("/find") r find(@requestparam("page") int page, @requestparam("searchkey") string searchkey, @requestparam("searchtype") string searchtype) { r r = new r(); list<flower> flowers = flowerservice.find(searchkey, searchtype); if (flowers == null) { return r.setcode(2000); } return getresponse(flowers, page, constant.show_page_size, r); } // 管理员查询所有 @requestmapping("/findall") r findall(@requestparam("page") int page, @requestparam("searchkey") string searchkey) { r r = new r(); list<flower> flowers = flowerservice.findall(searchkey); if (flowers == null) { return r.setcode(2000); } return getresponse(flowers, page, constant.page_size, r); } // 返回结果 private r getresponse(list<flower> flowers, int page, int pagesize, r r) { map<string> map = new hashmap(); list<flower> items = flowers.size() >= page * pagesize ? flowers.sublist((page - 1) * pagesize, page * pagesize) : flowers.sublist((page - 1) * pagesize, flowers.size()); int len = flowers.size() % pagesize == 0 ? flowers.size() / pagesize : (flowers.size() / pagesize + 1); for (flower item : items) { if (item.getimg_guid() == null) { item.setimg_guid(constant.default_img); } item.setimg_guid(constant.img_use_path + item.getimg_guid()); } map.put("items", items); map.put("len", len); return r.setcode(2000).setdata(map); } @requestmapping("/create") r create(@requestbody flower flower) { r r = new r(); int ans = flowerservice.add(flower); if (ans == 1) { return r.setcode(2000).setmsg(httpmsg.add_flower_ok); } return r.setcode(4000).setmsg(httpmsg.add_flower_failed); } @requestmapping("/update") r update(@requestbody flower flower) { r r = new r(); int ans = flowerservice.update(flower); if (ans >= 0) { return r.setcode(2000).setmsg(httpmsg.update_flower_ok); } return r.setcode(4000).setmsg(httpmsg.update_flower_failed); } @requestmapping("/changestate") r changestate(@requestbody flower flower) { r r = new r(); flowersdao.changestate(flower); string msg = flower.getstate() == 1?httpmsg.goods_up_ok:httpmsg.goods_down_ok; return r.setcode(2000).setmsg(msg); } // 保存上传的图片 @requestmapping("/updateimg") r updateimg(@requestparam("file") multipartfile file) { r r = new r(); // 只接收 jpg/png 图片 string filename = file.getoriginalfilename(); if (!filename.endswith(".jpg") && !filename.endswith(".png")){ return r.setcode(4000).setmsg(httpmsg.error_file_type); } string img_guid = uuid.randomuuid().tostring().replaceall("-", "") + ".jpg"; try { savepic(file.getinputstream(), img_guid); return r.setcode(2000).setmsg(httpmsg.update_pic_ok).setdata(img_guid); } catch (ioexception e) { return r.setcode(4000).setmsg(httpmsg.update_pic_failed); } } @putmapping("/updateimgguid") r updateimgguid(@requestparam("guid") string guid, @requestparam("id") int id) { r r = new r(); int ans = flowerservice.updateimg(guid, id); if (ans == 1) { return r.setcode(2000).setmsg(httpmsg.update_pic_ok); } return r.setcode(4000).setmsg(httpmsg.update_pic_failed); } @deletemapping("/delete") r delete(@requestparam("id") int id) { r r = new r(); int ans = flowerservice.delete(id); if (ans == 1) { return r.setcode(2000).setmsg(httpmsg.delete_flower_ok); } return r.setcode(4000).setmsg(httpmsg.delete_flower_failed); } private void savepic(inputstream inputstream, string filename) { outputstream os = null; try { string path = constant.img_path; // 1k的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; // 输出的文件流保存到本地文件 os = new fileoutputstream(new file(path + filename)); // 开始读取 while ((len = inputstream.read(bs)) != -1) { os.write(bs, 0, len); } } catch (exception e) { e.printstacktrace(); } finally { // 完毕,关闭所有链接 try { os.close(); inputstream.close(); } catch (ioexception e) { e.printstacktrace(); } } } }</flower></string></flower></flower></flower>
订单管理控制层
/** * 用户 **/ @restcontroller @requestmapping("order") public class ordercontroller { @autowired orderservice orderservice; @autowired userdao userdao; @autowired orderdao orderdao; @autowired flowersdao flowersdao; @requestmapping("/test") r test() { r r = new r(); return r.setcode(4000).setmsg(constant.img_path).setdata(orderdao.findall(null)); } @requestmapping("/querybyaccount") r querybyaccount(@requestparam("account") string account) { r r = new r(); if (stringutil.isempty(account)) { return r.setcode(4000).setmsg(httpmsg.invalid_param); } list<order> orders = orderservice.querybyaccount(account); return r.setcode(2000).setdata(orders); } @requestmapping("/find") r find(@requestparam("page") int page, @requestparam("searchkey") string searchkey, @requestparam("account") string account) { r r = new r(); map<string> map = new hashmap(); list<order> orders = orderservice.find(searchkey, account); if (orders == null) { return r.setcode(2000); } map.put("items", orders); map.put("len", orders.size()); return r.setcode(2000).setdata(map); } @requestmapping("/findall") r findall(@requestparam("page") int page, @requestparam("searchkey") string searchkey) { r r = new r(); map<string> map = new hashmap(); list<order> orders = orderservice.findall(searchkey); if (orders == null) { return r.setcode(2000); } list<order> items = orders.size() >= page * constant.page_size ? orders.sublist((page - 1) * constant.page_size, page * constant.page_size) : orders.sublist((page - 1) * constant.page_size, orders.size()); int len = orders.size() % constant.page_size == 0 ? orders.size() / constant.page_size : (orders.size() / constant.page_size + 1); list<ordervo> vos = new arraylist(); for (order item : items) { user user = userdao.querybyid(item.getuid()); ordervo vo = new ordervo(); vo.setaddress(user.getaddress()).setphone(user.getphone()).setusername(user.getname()) .setamount(item.getamount()).setflower(item.getflower()).setid(item.getid()) .setuid(item.getuid()).setorder_guid(item.getorder_guid()).setprice(item.getprice()) .setstate(item.getstate()); vos.add(vo); } map.put("items", vos); map.put("len", len); return r.setcode(2000).setdata(map); } @requestmapping("/update") r update(@requestbody order order) { r r = new r(); int ans = orderservice.update(order); if (ans >= 0) { return r.setcode(2000).setmsg(httpmsg.update_user_ok); } return r.setcode(4000).setmsg(httpmsg.update_user_failed); } @requestmapping("/changestate") r changestate(@requestbody order order) { orderdao.changestate(order); return new r().setcode(2000).setmsg(httpmsg.update_order_ok); } @deletemapping("/delete") r delete(@requestparam("id") int id) { r r = new r(); int ans = orderservice.delete(id); if (ans == 1) { return r.setcode(2000).setmsg(httpmsg.delete_user_ok); } return r.setcode(4000).setmsg(httpmsg.delete_user_failed); } }</ordervo></order></order></string></order></string></order>
用户管理控制层
/** * 用户 **/ @restcontroller @requestmapping("user") public class usercontroller { @autowired userservice userservice; @autowired userdao dao; @requestmapping("/test") r test() { r r = new r(); return r.setcode(4000).setmsg(constant.img_path).setdata(dao.findall()); } @requestmapping("/queryinfobyaccount") r queryinfobyaccount(@requestparam("account") string account) { r r = new r(); if (stringutil.isempty(account)){ return r.setcode(4000).setmsg(httpmsg.invalid_param); } user loginuser = userservice.queryinfo(account); if (loginuser == null){ return r.setcode(4000).setmsg(httpmsg.invalid_user); } return r.setcode(2000).setdata(loginuser); } @requestmapping("/find") r find(@requestparam("page") int page, @requestparam("searchkey") string searchkey) { r r = new r(); map<string> map = new hashmap(); list<user> users = userservice.find(searchkey); if (users == null) { return r.setcode(2000); } list<user> items = users.size() >= page * constant.page_size ? users.sublist((page - 1) * constant.page_size, page * constant.page_size) : users.sublist((page - 1) * constant.page_size, users.size()); int len = users.size() % constant.page_size == 0 ? users.size() / constant.page_size : (users.size() / constant.page_size + 1); map.put("items", items); map.put("len", len); return r.setcode(2000).setdata(map); } @requestmapping("/create") r create(@requestbody user user) { r r = new r(); int ans = userservice.add(user); if (ans == 1) { return r.setcode(2000).setmsg(httpmsg.add_user_ok); } return r.setcode(4000).setmsg(httpmsg.add_user_failed); } @requestmapping("/update") r update(@requestbody user user) { r r = new r(); int ans = userservice.update(user); if (ans >= 0) { return r.setcode(2000).setmsg(httpmsg.update_user_ok); } return r.setcode(4000).setmsg(httpmsg.update_user_failed); } @deletemapping("/delete") r delete(@requestparam("id") int id) { r r = new r(); int ans = userservice.delete(id); if (ans == 1) { return r.setcode(2000).setmsg(httpmsg.delete_user_ok); } return r.setcode(4000).setmsg(httpmsg.delete_user_failed); } }</user></user></string>
以上就是java如何实现鲜花商城系统的详细内容,更多请关注代码网其它相关文章!
发表评论