项目介绍
该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录;
管理员角色包含以下功能:
管理员登录,用户管理,鲜花类别管理,鲜花管理,订单管理并发货,留言管理,系统公告管理等功能。
用户角色包含以下功能:
该网站提供用户首页、用户注册登录、鲜花详情查看、商品加入购物车、订单确认、个人订单查看、商城留言板以及商城公告等多项功能。
环境需要
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如何实现鲜花商城系统的详细内容,更多请关注代码网其它相关文章!
发表评论