源码获取:俺的博客首页 "资源" 里下载!
项目介绍
主要功能包括:
系统功能如下:用户管理、商品书籍管理、购物车管理、订单管理、收货地址管理、会员信息管理等等。系统的用户角色和权限分配如下:
(1)游客:
商品书籍浏览:游客可以在线上浏览书籍信息,并且可以阅读书籍;
(2)顾客:
商品书籍浏览:顾客可对商品进行浏览;
商品书籍购买:顾客可购买自己想要书籍;
会员注册:顾客可进行会员注册;
顾客个人信息管理:顾客可对自己个人注册信息的增删改查的操作;
商品书籍管理:顾客可把书籍加入购物车或删除;
订单管理:顾客可对订单的进行增删改查的操作;
购物车管理:顾客对购物车增删改查的等操作;
收货地址管理:顾客对收货地址的增删改查的操作;
(3)管理员:
用户管理:管理员可以对注册的用户进行管理;
商家管理:管理员可以对商家的发布的商品进行审核操作;
违规管理:管理商店书城的违规用户账号;
图书审核管理:可对商家发布的书籍进行审核;
会员信息管理:可对用户的注册信息进行增删改查等操作;
(4)商家:
商品书籍发布:商家可发布书籍商品;
商品上下架书籍管理:商家可以对书籍进行上下架管理;
商品书籍管理:商家可以对书籍进行添加、查看、修改、删除等操作;
订单管理:商家可对顾客订单信息的添加、查看、修改、删除等操作;
环境需要
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等版本均可;
技术栈
后端:SSM(Spring+SpringMVC+Mybatis)
前端:JSP+CSS+JS+JQUERY+Layui
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
3. 将项目中db.xml配置文件中的数据库配置改为自己的配置,然后运行;







主页管理控制层:
@Controller
@RequestMapping("/shop/")
public class ShopControll {
@Autowired
public shopService shopService=null;
@Autowired
public typeService typeService;
//主页
@RequestMapping("index")
public String gotoIndex(HttpServletRequest request){
List<Snackinfo> HotSnackList = shopService.getHotSnack();
List<Snackinfo> newSnackList = shopService.getNewSnack();
List<Type> typeList = typeService.getall();
request.setAttribute("HotSnackList",HotSnackList);
request.setAttribute("newSnackList",newSnackList);
request.getSession().setAttribute("type", typeList);
System.out.println("00");
return "user/index";
}
//登录
@RequestMapping("userLoginGet")
public String gotoUserLogin(){
return "user/userLogin";
}
@RequestMapping("userLoginPost")
public String gotoUserLogin(Userinfo userinfo,HttpServletRequest request){
Userinfo exituser = shopService.userLogin(userinfo);
if(exituser ==null){
request.setAttribute("msg","用户名或密码错误");
return "user/userLogin";
}
request.getSession().setAttribute("exituser", exituser);
request.getSession().setAttribute("frontuser", exituser.getuUsername());
request.getSession().setAttribute("frontuserId", exituser.getuId());
request.getSession().setAttribute("money", exituser.getuMoney());
return "redirect:index";
}
//退出登录
@RequestMapping("userlogout")
public String showlogin(HttpServletRequest request){
HttpSession session = request.getSession();
session.removeAttribute("frontuser");
session.removeAttribute("frontuserId");
return "redirect:userLoginGet";
}
//商品详情
@RequestMapping("proDatail")
public String gotoProDatail(HttpServletRequest request,Snackinfo snack){
Snackinfo sck = shopService.selectById(snack);
request.setAttribute("sck", sck);
return "product/proDetail";
}
//查询订单
@RequestMapping("selectOrderSnack")
@ResponseBody
public DataTables selectOrderSnack(String oId,int start,int length){
Map<Object,Object> map=new HashMap<Object, Object>();
map.put("oId", oId);
map.put("pageStart",start);
map.put("pageSize",length);
PageHelp<DoSnack> pageHelp = shopService.selectOrderSnack(map);
DataTables datatable=new DataTables();
datatable.setData(pageHelp.getList());
datatable.setRecordsFiltered(pageHelp.getRecord());
datatable.setRecordsTotal(pageHelp.getRecord());
return datatable;
}
//type页面
@RequestMapping("puffingType")
public String puffing(HttpServletRequest request,DoSnackType doSnackType){
List<Snackinfo> TypeSnackList=shopService.selectPuffing(doSnackType.getType(),doSnackType.getSnackName());
Type type = typeService.getOne(doSnackType.getType());
request.setAttribute("TypeSnackTitle",type.getName());
request.setAttribute("TypeNum",doSnackType.getType());
request.setAttribute("TypeSnackList",TypeSnackList);
return "user/typePage";
}
}
订单管理控制层:
@Controller
@RequestMapping("/sorder")
public class SorderController {
@Autowired
private sorderService sorderService=null;
@Autowired
private userService userService;
@RequestMapping(value="/add",method=RequestMethod.POST)
public String addSorder(Snackinfo snackinfo,HttpSession session) {
System.out.println("-------addCar()------"+snackinfo.getsNumber());
// 1:通过 product.id获取当前的商品数据
Snackinfo findSnackinfo = sorderService.snackfindById(snackinfo.getsId());
findSnackinfo.setsNumber(snackinfo.getsNumber());
//2:判断当前session是否有购物车,如果没有则创建
if (session.getAttribute("receiptinfo")==null) {
//创建购物车,存到session中
session.setAttribute("receiptinfo", new Receiptinfo(new HashSet<Orderdetail>()));
}
Receiptinfo receiptinfo = (Receiptinfo)session.getAttribute("receiptinfo");
//3:把商品信息转化为sorder,并且添加到购物车中(判断购物车是否重复)
receiptinfo = sorderService.addSorder(receiptinfo, findSnackinfo);
receiptinfo.setoPhone(cluTotal(receiptinfo));
return "redirect:gotocar";
}
@RequestMapping("gotocar")
public String gotocar() {
return "product/car";
}
//计算总金额
public String cluTotal(Receiptinfo receiptinfo) {
double tal=0.0;
for(Orderdetail temp : receiptinfo.getOrderdetailSet()){
tal+=temp.getoMoney()*temp.getoNum();
}
return String.valueOf(tal);
}
@RequestMapping(value="/delete",method=RequestMethod.GET)
public String deleteSorder(Snackinfo snackinfo,HttpSession session) {
Receiptinfo receiptinfo = (Receiptinfo)session.getAttribute("receiptinfo");
Set<Orderdetail> set = receiptinfo.getOrderdetailSet();
Iterator<Orderdetail> iterator = set.iterator();
while(iterator.hasNext()){
Orderdetail orderdetail = iterator.next();
if(orderdetail.getSnackinfo().getsId()==snackinfo.getsId()){
iterator.remove();
receiptinfo.setoPhone(String.valueOf((Double.parseDouble(receiptinfo.getoPhone())-orderdetail.getoMoney()*orderdetail.getoNum())));
}
}
if( set.size() <= 0){
session.removeAttribute("receiptinfo");
}
return "redirect:gotocar";
}
@RequestMapping(value="/clear",method=RequestMethod.GET)
public String clearSorder(Snackinfo snackinfo,HttpSession session) {
Receiptinfo receiptinfo = (Receiptinfo)session.getAttribute("receiptinfo");
if(receiptinfo!=null){
Set<Orderdetail> set = receiptinfo.getOrderdetailSet();
set.clear();
}
receiptinfo.setoPhone(String.valueOf(0d));
session.removeAttribute("receiptinfo");
return "redirect:gotocar";
}
//下订单
@RequestMapping("setOrder")
@ResponseBody
public String setOrder(HttpServletRequest request,HttpSession session,Receiptinfo receiptinfo) {
DoMoneyFK dfk=new DoMoneyFK();
Receiptinfo receiptinfoSession = (Receiptinfo)session.getAttribute("receiptinfo");
Date day=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String oId=df.format(day).toString()+String.valueOf((int)(Math.random()*9000+1000));
receiptinfo.setoId(oId);
receiptinfo.setOrderdetailSet(receiptinfoSession.getOrderdetailSet());
sorderService.addReceiptinfo(receiptinfo);
Order order=new Order();
order.setoId(oId);
order.setuId((int)session.getAttribute("frontuserId"));
order.setoTime(DateUtil.getCurrentTime());
order.setoType(-1);
sorderService.addOrder(order);
Orderdetail orderdetail=new Orderdetail();
orderdetail.setoId(oId);
for (Orderdetail orderdetailSession : receiptinfoSession.getOrderdetailSet()) {
orderdetail.setoNum(orderdetailSession.getoNum());
orderdetail.setoMoney(orderdetailSession.getoMoney());
orderdetail.setsId(orderdetailSession.getsId());
sorderService.addOrderdetail(orderdetail);
}
Userinfo selectUserinfoMoney = userService.selectUserinfoMoney((int)request.getSession().getAttribute("frontuserId"));
Double selectOrderdetailPayMoney = sorderService.selectOrderdetailPayMoney(oId);
dfk.setoId(oId);
dfk.setPayMoney(selectOrderdetailPayMoney.toString());
dfk.setuMoney(selectUserinfoMoney.getuMoney());
session.removeAttribute("receiptinfo");
return ResponseUtil.successToClientStr(dfk);
}
}
用户管理控制层:
@Controller
@RequestMapping("/user/")
public class UserControll {
@Autowired
private userService userService;
@Autowired
private sorderService sorderService;
@Autowired
private adminOrderService adminOrderService;
//跳转注册
@RequestMapping("userRegisterGet")
public String gotoRegister(){
return "user/register";
}
//注册判断用户名存在
@RequestMapping("selectUserOne")
@ResponseBody
public AjaxResult getUserOne(Userinfo userinfo){
AjaxResult aj=new AjaxResult();
Userinfo rs = userService.selectUserOne(userinfo);
aj.setTag(rs);
return aj;
}
//注册
@RequestMapping("addUserRegister")
@ResponseBody
public AjaxResult addUserOne(Userinfo userinfo){
AjaxResult aj=new AjaxResult();
int rs = userService.addUserOne(userinfo);
aj.setTag(rs);
return aj;
}
//查登陆的用户
@RequestMapping("readUserinfo")
@ResponseBody
public AjaxResult readUserinfo(Userinfo userinfo,HttpServletRequest request){
AjaxResult aj=new AjaxResult();
Userinfo usr= userService.selectUserinfoById(userinfo);
if(usr!=null){
aj.setTag(usr);
}
return aj;
}
//修改个人信息
@RequestMapping("editUserinfo")
@ResponseBody
public int editUserinfo(Userinfo userinfo){
int rs= userService.updateUserinfoById(userinfo);
return rs;
}
//跳转注册
@RequestMapping("userPersonalInfo")
public String gotoPersonalInfo(){
return "user/personalInfo";
}
//加载个人信息界面
@RequestMapping("userInfo")
public String gotoUserInfo(){
return "user/userInfo";
}
//跳转个人积分页面
@RequestMapping("userIntegral")
public String userIntegral(){
return "user/integral";
}
//跳转个人图片
@RequestMapping("userGerenImg")
public String userGerenImg(){
return "user/gerenImg";
}
//加载个人积分
@RequestMapping("userIntegralLimit")
@ResponseBody
public DataTables userIntegralLimit(HttpServletRequest request,int start,int length){
Map<Object,Object> map=new HashMap<Object, Object>();
map.put("uId",request.getSession().getAttribute("frontuserId"));
map.put("pageStart",start);
map.put("pageSize",length);
PageHelp<Integral> pageHelp= userService.selectIntegralLimit(map);
DataTables datatable=new DataTables();
datatable.setData(pageHelp.getList());
datatable.setRecordsFiltered(pageHelp.getRecord());
datatable.setRecordsTotal(pageHelp.getRecord());
return datatable;
}
//跳转个人账户页面
@RequestMapping("userAccount")
public String userAccount(){
return "user/account";
}
//加载个人积分
@RequestMapping("userAccountLimit")
@ResponseBody
public DataTables userAccountLimit(HttpServletRequest request,int start,int length){
Map<Object,Object> map=new HashMap<Object, Object>();
map.put("uId",request.getSession().getAttribute("frontuserId"));
map.put("pageStart",start);
map.put("pageSize",length);
PageHelp<Account> pageHelp= userService.selectAccountLimit(map);
DataTables datatable=new DataTables();
datatable.setData(pageHelp.getList());
datatable.setRecordsFiltered(pageHelp.getRecord());
datatable.setRecordsTotal(pageHelp.getRecord());
return datatable;
}
//获得金额
@RequestMapping("getMoneyAcount")
@ResponseBody
public Object getMoneyAcount(HttpServletRequest request){
return request.getSession().getAttribute("money");
}
//查看当前订单
@RequestMapping("userOrderLimit")
@ResponseBody
public DataTables userOrderLimit(HttpServletRequest request,int start,int length){
Map<Object,Object> map=new HashMap<Object, Object>();
map.put("uId",request.getSession().getAttribute("frontuserId"));
map.put("pageStart",start);
map.put("pageSize",length);
PageHelp<DoMyOrder> pageHelp= userService.selectOrderLimit(map);
DataTables datatable=new DataTables();
datatable.setData(pageHelp.getList());
datatable.setRecordsFiltered(pageHelp.getRecord());
datatable.setRecordsTotal(pageHelp.getRecord());
return datatable;
}
//跳转订单页面
@RequestMapping("userGoOrder")
public String userGoOrder(HttpSession session){
return "user/myOrder";
}
//跳转历史订单
@RequestMapping("userGoSuccessOrder")
public String userGoSuccessOrder(){
return "user/myOrderSuccess";
}
//查看当前订单
@RequestMapping("userSucOrderLimit")
@ResponseBody
public DataTables userSucOrderLimit(HttpServletRequest request,int start,int length){
Map<Object,Object> map=new HashMap<Object, Object>();
map.put("uId",request.getSession().getAttribute("frontuserId"));
map.put("pageStart",start);
map.put("pageSize",length);
PageHelp<DoMyOrder> pageHelp= userService.selectMySuccessOrderLimit(map);
DataTables datatable=new DataTables();
datatable.setData(pageHelp.getList());
datatable.setRecordsFiltered(pageHelp.getRecord());
datatable.setRecordsTotal(pageHelp.getRecord());
return datatable;
}
//请确认收货
@RequestMapping("userOrderConfirm")
@ResponseBody
public String userOrderConfirm(HttpServletRequest request,int id,int typeNum){
int eId;
if(typeNum==0){
eId = (int)request.getSession().getAttribute("adminId");
}else{
eId=0;
}
return ResponseUtil.successToClient(userService.upDateByorderConfirm(id,typeNum,eId));
}
//去付款
@RequestMapping("userOrderPayMoney")
@ResponseBody
public String userOrderPayMoney(HttpServletRequest request,String oId){
DoPayMoney dpm=new DoPayMoney();
Userinfo selectUserinfoMoney = userService.selectUserinfoMoney((int)request.getSession().getAttribute("frontuserId"));
Double selectOrderdetailPayMoney = sorderService.selectOrderdetailPayMoney(oId);
dpm.setPayMoney(selectOrderdetailPayMoney.toString());
dpm.setuMoney(selectUserinfoMoney.getuMoney());
return ResponseUtil.successToClient(dpm);
}
//确认付款
@RequestMapping("userOrderPayMoneyConfirm")
@ResponseBody
public String userOrderPayMoneyConfirm(HttpServletRequest request,Float payNumber,Float uMoney,String uPasword,String oId){
Userinfo userinfo = (Userinfo)request.getSession().getAttribute("exituser");
if(userinfo.getuPassword().equals(uPasword)){
sorderService.updateOrderByoId(oId);
userService.updateUserinfoBypay(userinfo.getuId(), uMoney-payNumber);
}else{
return ResponseUtil.errorToClient();
}
return ResponseUtil.successToClient();
}
//删除订单
@RequestMapping("deleteMyOrder")
@ResponseBody
public String deleteAdminOrder(String oId){
return ResponseUtil.successToClient(adminOrderService.deleteAdminOrder(oId));
}
//跳转管理员信息
@RequestMapping("mainToAdminuser")
public String mainToAdminuser(){
return "admin/persionInfo/adminInfo";
}
//加载管理员信息
@RequestMapping("mainSelectAdminuser")
@ResponseBody
public String mainSelectAdminuser(HttpServletRequest request){
int adId =(int)request.getSession().getAttribute("adminId");
return ResponseUtil.successToClient(userService.selectAdminInfo(adId));
}
//更新管理员信息
@RequestMapping("mainUpdateAdminuser")
@ResponseBody
public String mainUpdateAdminuser(DoAdminInfo admin){
return ResponseUtil.successToClient(userService.updateAdminInfo(admin));
}
}
源码获取:俺的博客首页 "资源" 里下载!
该博客介绍了一个商城系统项目,包含用户、商品、订单等管理功能,有游客、顾客、管理员和商家四种角色。运行环境需Java JDK 1.8等,技术栈采用后端SSM、前端JSP等。还说明了使用步骤,可从博客首页“资源”下载源码。
788

被折叠的 条评论
为什么被折叠?



