天天看点

基于javaweb的网上商城系统(java+ssm+jsp+mysql)

基于javaweb的网上商城系统(java+ssm+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的网上商城系统(java+ssm+jsp+mysql)
基于javaweb的网上商城系统(java+ssm+jsp+mysql)
基于javaweb的网上商城系统(java+ssm+jsp+mysql)
基于javaweb的网上商城系统(java+ssm+jsp+mysql)
基于javaweb的网上商城系统(java+ssm+jsp+mysql)

基于javaweb+jsp的网上商城系统(java+SSM+jsp+mysql)

一、项目简述功能

javaweb 网上商城系统,前台+后台管理,用户注册,登录,上哦展示,分组展示,搜索,收货地址管理,购物车管理,添加,购买,个人信息修改。订单查询等等,后台商品管理,分类管理,库存管理,订单管理,用户管理,信息修改等等.

二、项目运行

环境配置: Jdk1.8 + Tomcats . 5 + mysql + Eclispe ( IntelliJ IDEA ,Eclispe , MyEclispe , sts 都支持)

项目技术: JSP + Spring + SpringMVC + MyBatis + html + cSS + Javascriipt + JQuery + Ajax 等等。

后台管理平台登录代码:

@Controller

public class AdminHomeController extends BaseController {

@Resource(name = “adminService”)

private AdminService adminService;

@Resource(name = “productOrderService”)

private ProductOrderService productOrderService;

@Resource(name = “productService”)

private ProductService productService;

@Resource(name = “userService”)

private UserService userService;

@RequestMapping(value = “admin”, method = RequestMethod.GET)

public String goToPage(HttpSession session, Map<String, Object> map) throws ParseException {

logger.info(“获取管理员信息”);

Object adminId = checkAdmin(session);

if (adminId == null) {

return “redirect:/admin/login”;

Admin admin = adminService.get(null, Integer.parseInt(adminId.toString()));

map.put(“admin”, admin);

logger.info(“获取统计信息”);

//产品总数

Integer productTotal = productService.getTotal(null, new Byte[]{0, 2});

//用户总数

Integer userTotal = userService.getTotal(null);

//订单总数

Integer orderTotal = productOrderService.getTotal(null, new Byte[]{3});

logger.info(“获取图表信息”);

map.put(“jsonObject”, getChartData(null,null,7));

map.put(“productTotal”, productTotal);

map.put(“userTotal”, userTotal);

map.put(“orderTotal”, orderTotal);

logger.info(“转到后台管理-主页”);

return “admin/homePage”;

@RequestMapping(value = “admin/home”, method = RequestMethod.GET)

public String goToPageByAjax(HttpSession session, Map<String, Object> map) throws ParseException {

logger.info(“获取管理员信息”);

Object adminId = checkAdmin(session);

if (adminId == null) {

return “admin/include/loginMessage”;

Admin admin = adminService.get(null, Integer.parseInt(adminId.toString()));

map.put(“admin”, admin);

logger.info(“获取统计信息”);

Integer productTotal = productService.getTotal(null, new Byte[]{0, 2});

Integer userTotal = userService.getTotal(null);

Integer orderTotal = productOrderService.getTotal(null, new Byte[]{3});

logger.info(“获取图表信息”);

map.put(“jsonObject”, getChartData(null, null,7));

logger.info(“获取图表信息”);

map.put(“jsonObject”, getChartData(null,null,7));

map.put(“productTotal”, productTotal);

map.put(“userTotal”, userTotal);

map.put(“orderTotal”, orderTotal);

logger.info(“转到后台管理-主页-ajax方式”);

return “admin/homeManagePage”;

@ResponseBody

@RequestMapping(value = “admin/home/charts”, method = RequestMethod.GET, produces = “application/json;charset=utf-8”)

public String getChartDataByDate(@RequestParam(required = false) String beginDate, @RequestParam(required = false) String endDate) throws ParseException {

if (beginDate != null && endDate != null) {

//转换日期格式

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd”);

return getChartData(simpleDateFormat.parse(beginDate), simpleDateFormat.parse(endDate),7).toJSONString();

} else {

return getChartData(null, null,7).toJSONString();

private JSONObject getChartData(Date beginDate,Date endDate,int days) throws ParseException {

JSONObject jsonObject = new JSONObject();

SimpleDateFormat time = new SimpleDateFormat(“yyyy-MM-dd”, Locale.UK);

SimpleDateFormat time2 = new SimpleDateFormat(“MM/dd”, Locale.UK);

SimpleDateFormat timeSpecial = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”, Locale.UK);

//如果没有指定开始和结束日期

if (beginDate == null || endDate == null) {

//指定一周前的日期为开始日期

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DATE, 1-days);

beginDate = time.parse(time.format(cal.getTime()));

//指定当前日期为结束日期

cal = Calendar.getInstance();

endDate = cal.getTime();

} else {

beginDate = time.parse(time.format(beginDate));

endDate = timeSpecial.parse(time.format(endDate) + " 23:59:59");

logger.info(“根据订单状态分类”);

//未付款订单数统计数组

int[] orderUnpaidArray = new int[7];

//未发货订单数统计叔祖

int[] orderNotShippedArray = new int[7];

//未确认订单数统计数组

int[] orderUnconfirmedArray = new int[7];

//交易成功订单数统计数组

int[] orderSuccessArray = new int[7];

//总交易订单数统计数组

int[] orderTotalArray = new int[7];

logger.info(“从数据库中获取统计的订单集合数据”);

List orderGroupList = productOrderService.getTotalByDate(beginDate, endDate);

//初始化日期数组

JSONArray dateStr = new JSONArray(days);

//按指定的天数进行循环

for (int i = 0; i < days; i++) {

//格式化日期串(MM/dd)并放入日期数组中

Calendar cal = Calendar.getInstance();

cal.setTime(beginDate);

cal.add(Calendar.DATE, i);

String formatDate = time2.format(cal.getTime());

dateStr.add(formatDate);

//该天的订单总数

int orderCount = 0;

//循环订单集合数据的结果集

for(int j = 0; j < orderGroupList.size(); j++){

OrderGroup orderGroup = orderGroupList.get(j);

//如果该订单日期与当前日期一致

if(orderGroup.getProductOrder_pay_date().equals(formatDate)){

//从结果集中移除数据

orderGroupList.remove(j);

//根据订单状态将统计结果存入对应的订单状态数组中

switch (orderGroup.getProductOrder_status()) {

case 0:

//未付款订单

orderUnpaidArray[i] = orderGroup.getProductOrder_count();

break;

case 1:

//未发货订单

orderNotShippedArray[i] = orderGroup.getProductOrder_count();

break;

case 2:

//未确认订单

orderUnconfirmedArray[i] = orderGroup.getProductOrder_count();

break;

case 3:

//交易成功订单

orderSuccessArray[i] = orderGroup.getProductOrder_count();

break;

//累加当前日期的订单总数

orderCount += orderGroup.getProductOrder_count();

//将统计的订单总数存入总交易订单数统计数组

orderTotalArray[i] = orderCount;

logger.info(“返回结果集map”);

jsonObject.put(“orderTotalArray”, orderTotalArray);

jsonObject.put(“orderUnpaidArray”, orderUnpaidArray);

jsonObject.put(“orderNotShippedArray”, orderNotShippedArray);

jsonObject.put(“orderUnconfirmedArray”, orderUnconfirmedArray);

jsonObject.put(“orderSuccessArray”, orderSuccessArray);

jsonObject.put(“dateStr”,dateStr);

return jsonObject;

用户相关接口:

@Controller

@RequestMapping(“/index”)

public class UserController{

@Resource

private UserService userService;

@Resource

private OrderService orderService;

@Resource

private GoodService goodService;

@Resource

private TypeService typeService;

@Resource

private ShopcartService shopcartService;

@Resource

private SkuService skuService;

@GetMapping(“/register”)

public String reg(Model model) {

model.addAttribute(“flag”, -1); // 注册页面

return “/index/register.jsp”;

@PostMapping(“/register”)

public String register(Users user, Model model){

if (user.getUsername().isEmpty()) {

model.addAttribute(“msg”, “用户名不能为空!”);

return “/index/register.jsp”;

}else if (userService.isExist(user.getUsername())) {

model.addAttribute(“msg”, “用户名已存在!”);

return “/index/register.jsp”;

}else {

String password = user.getPassword();

userService.add(user);

user.setPassword(password);

return “/index/index”; // 注册成功后转去登录

@GetMapping(“/login”)

public String log() {

return “/index/index”;

@PostMapping(“/login”)

public String login(@RequestParam(required=false, defaultValue=“0”)int flag, Users user, HttpSession session, Model model) {

model.addAttribute(“typeList”, typeService.getList());

if(flag==-1) {

flag = 6; // 登录页面

return “/index/index”;

if(userService.checkUser(user.getUsername(), user.getPassword())){

Users loginUser = userService.get(user.getUsername());

session.setAttribute(“user”, loginUser);

// 还原购物车数量

session.setAttribute(“total”, shopcartService.getTotal(loginUser.getId()));

return “redirect:index”;

} else {

model.addAttribute(“msg”, “用户名或密码错误!”);

return “/index/index”;

@RequestMapping(“/logout”)

public String logout(HttpSession session) {

session.removeAttribute(“user”);

session.removeAttribute(“order”);

return “/index/index”;

@RequestMapping(“/shopcart”)

public String shopcart(Model model, HttpSession session) {

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

model.addAttribute(“msg”, “请先登录!”);

return “/index/index”;

model.addAttribute(“typeList”, typeService.getList());

model.addAttribute(“shopcartList”, shopcartService.getList(user.getId()));

model.addAttribute(“totalPrice”, shopcartService.getTotalPrice(user.getId()));

return “/index/shopcart.jsp”;

@RequestMapping(“/buy”)

public @ResponseBody int buy(Shopcart shopcart, HttpSession session, Model model){

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

return -111;

shopcart.setUserId(user.getId());

shopcart.setGood(goodService.get(shopcart.getGoodId()));

// 验证库存

// int stock = skuService.getStock(shopcart.getGoodId(), shopcart.getColorId(), shopcart.getSizeId());

// if(shopcart.getAmount() > stock) {

// model.addAttribute(“msg”, "商品 [ " + shopcart.getGood().getName() + " ] 库存不足! 当前库存只有: " + stock);

// }

return orderService.save(Arrays.asList(shopcart), user);

@RequestMapping(“/cart”)

public @ResponseBody int cart(Shopcart shopcart, HttpSession session, Model model){

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

return -111;

shopcart.setUserId(user.getId());

shopcartService.save(shopcart);

int total = shopcartService.getTotal(user.getId());

session.setAttribute(“total”, total);

return total;

@RequestMapping(“/add”)

public @ResponseBody boolean add(int skuid, HttpSession session){

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

return false;

return shopcartService.add(skuid);

@RequestMapping(“/less”)

public @ResponseBody boolean less(int skuid, HttpSession session){

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

return false;

return shopcartService.less(skuid);

@RequestMapping(“/delete”)

public @ResponseBody boolean delete(int skuid, HttpSession session){

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

return false;

shopcartService.delete(skuid);

session.setAttribute(“total”, shopcartService.getTotal(user.getId()));

return true;

@RequestMapping(“/total”)

public @ResponseBody int total(HttpSession session){

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

return -111;

return shopcartService.getTotalPrice(user.getId());

@RequestMapping(“/save”)

public String save(ServletRequest request, HttpSession session, Model model){

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

model.addAttribute(“msg”, “请先登录!”);

return “/index/index”;

List shopcartList = shopcartService.getList(user.getId());

if(Objects.isNull(shopcartList) || shopcartList.isEmpty()) {

model.addAttribute(“msg”, “购物车没有商品”);

return shopcart(model, session);

// 验证库存

for(Shopcart cart : shopcartList) {

int stock = skuService.getStock(cart.getGoodId(), cart.getColorId(), cart.getSizeId());

if(cart.getAmount() > stock) {

model.addAttribute(“msg”, "商品 [ " + cart.getGood().getName() + " ] 库存不足! 当前库存只有: " + stock);

return shopcart(model, session);

int orderid = orderService.save(shopcartList, user);

if(orderid > 0) {

// 清空购物车

session.setAttribute(“total”, shopcartService.getTotal(user.getId()));

// 跳转支付

return “redirect:topay?orderid=”+orderid;

model.addAttribute(“msg”, “出了点问题”);

return shopcart(model, session);

@RequestMapping(“/topay”)

public String topay(int orderid, ServletRequest request, HttpSession session) {

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

request.setAttribute(“msg”, “请先登录!”);

return “/index/index”;

request.setAttribute(“typeList”, typeService.getList());

request.setAttribute(“order”, orderService.get(orderid));

return “/index/pay.jsp”;

@RequestMapping(“/pay”)

public String pay(Orders order, ServletRequest request, HttpSession session) {

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

request.setAttribute(“msg”, “请先登录!”);

return “/index/index”;

// 模拟支付

orderService.pay(order);

request.setAttribute(“typeList”, typeService.getList());

request.setAttribute(“order”, orderService.get(order.getId()));

request.setAttribute(“msg”, “支付成功! 即将跳转到订单列表”);

return “/index/pay.jsp”;

@RequestMapping(“/order”)

public String order(HttpSession session, Model model){

model.addAttribute(“flag”, 12);

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

model.addAttribute(“msg”, “请登录后查看订单!”);

return “/index/index”;

model.addAttribute(“typeList”, typeService.getList());

model.addAttribute(“orderList”, orderService.getListByUserid(user.getId()));

return “/index/order.jsp”;

@RequestMapping(“/my”)

public String my(HttpSession session, Model model){

model.addAttribute(“flag”, 11);

model.addAttribute(“typeList”, typeService.getList());

Users user = (Users) session.getAttribute(“user”);

if (user == null) {

model.addAttribute(“msg”, “请先登录!”);

return “/index/index”;

model.addAttribute(“user”, user);

return “/index/my.jsp”;

@RequestMapping(“/updateUser”)

public String updateUser(Users user, HttpSession session, Model model){

model.addAttribute(“flag”, 11);

model.addAttribute(“typeList”, typeService.getList());

Users userLogin = (Users) session.getAttribute(“user”);

if (userLogin == null) {

model.addAttribute(“msg”, “请先登录!”);

return “/index/index”;

// 修改资料

Users u = userService.get(userLogin.getId());

u.setName(user.getName());

u.setPhone(user.getPhone());

u.setAddress(user.getAddress());

userService.update(u); // 更新数据库

session.setAttribute(“user”, u); // 更新session

model.addAttribute(“msg”, “信息修改成功!”);

return “/index/my.jsp”;

@RequestMapping(“/updatePassword”)

public String updatePassword(Users user, HttpSession session, Model model){

model.addAttribute(“flag”, 11);

model.addAttribute(“typeList”, typeService.getList());

Users userLogin = (Users) session.getAttribute(“user”);

if (userLogin == null) {

model.addAttribute(“msg”, “请先登录!”);

return “/index/index”;

// 修改密码

Users u = userService.get(userLogin.getId());

if(user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) {

if (user.getPassword()!=null && !user.getPassword().trim().isEmpty()

&& SafeUtil.encode(user.getPassword()).equals(u.getPassword())) {

if (user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) {

u.setPassword(SafeUtil.encode(user.getPasswordNew()));

userService.update(u); // 更新数据库

session.setAttribute(“user”, u); // 更新session

model.addAttribute(“msg”, “密码修改成功!”);

return “redirect:logout”;

}else {

model.addAttribute(“msg”, “原密码错误!”);

return “/index/index”;

前台相关接口:

@Controller

@RequestMapping(“/index”)

public class IndexController{

private static final int rows = 8; // 默认每页数量

@Autowired

private TopService topService;

@Autowired

private GoodService goodService;

@Autowired

private TypeService typeService;

@Autowired

private SkuService skuService;

@RequestMapping(“/index”)

public String index(HttpServletRequest request){

request.setAttribute(“flag”, -1);

List typeList = typeService.getList();

request.setAttribute(“typeList”, typeList);

List<Map<String, Object>> dataList = new ArrayList<>();

for(Types type : typeList) {

Map<String, Object> map = new HashMap<>();

map.put(“type”, type);

map.put(“goodList”, goodService.getListByType(type.getId(), 1, 8)); // 取前8个

dataList.add(map);

request.setAttribute(“dataList”, dataList);

return “/index/index.jsp”;

@RequestMapping(“/top”)

public String tops(int typeid, @RequestParam(required=false, defaultValue=“1”)int page, HttpServletRequest request) {

request.setAttribute(“flag”, typeid==2 ? 7 : 8);

request.setAttribute(“typeList”, typeService.getList());

request.setAttribute(“goodList”, goodService.getList(typeid, page, rows));

request.setAttribute(“pageHtml”, PageUtil.getPageHtml(request, goodService.getTotal(typeid), page, rows));

return “/index/goods.jsp”;

@RequestMapping(“/goods”)

public String goods(int typeid, @RequestParam(required=false, defaultValue=“1”)int page, HttpServletRequest request){

request.setAttribute(“flag”, typeid);

request.setAttribute(“typeList”, typeService.getList());

request.setAttribute(“topList”, topService.getList(Tops.TYPE_SUPPER, 1, 4));

if (typeid > 0) {

request.setAttribute(“type”, typeService.get(typeid));

request.setAttribute(“goodList”, goodService.getListByType(typeid, page, rows));

request.setAttribute(“pageHtml”, PageUtil.getPageHtml(request, goodService.getTotalByType(typeid), page, rows));

return “/index/goods.jsp”;

@RequestMapping(“/detail”)

public String detail(int goodid, HttpServletRequest request){

request.setAttribute(“typeList”, typeService.getList());

request.setAttribute(“topList”, topService.getList(Tops.TYPE_SUPPER, 1, 4));

Goods good = goodService.get(goodid);

request.setAttribute(“good”, good);

request.setAttribute(“type”, typeService.get(good.getTypeId()));

request.setAttribute(“colorList”, skuService.getColorList(goodid));

request.setAttribute(“sizeList”, skuService.getSizeList(goodid));

return “/index/detail.jsp”;

@RequestMapping(“/search”)

public String search(String name, @RequestParam(required=false, defaultValue=“1”)int page, HttpServletRequest request) {

if (Objects.nonNull(name) && !name.trim().isEmpty()) {

request.setAttribute(“goodList”, goodService.getListByName(name, page, rows));

request.setAttribute(“pageHtml”, PageUtil.getPageHtml(request, goodService.getTotalByName(name), page, rows));

request.setAttribute(“typeList”, typeService.getList());

return “/index/goods.jsp”;

@GetMapping(“/stock”)

public @ResponseBody int stock(int goodid, int colorid, int sizeid) {

return skuService.getStock(goodid, colorid, sizeid);

基于javaweb的网上商城系统(java+ssm+jsp+mysql)
基于javaweb的网上商城系统(java+ssm+jsp+mysql)
基于javaweb的网上商城系统(java+ssm+jsp+mysql)