基于javaweb+jsp的零食商城系统(java+SSM+jsp+MySQL+EasyUI)
系统主要实现的功能有:用户浏览商品、加入商品到购物车、登录注册、提交订单,会员中心修改个人信息、查看订单等。
后台管理员登录后可以分角色添加管理员,不同角色有不同权限,可以管理用户信息、商品信息、订单信息,订单信息可以导出到excel。其中支付是模拟在线支付,从账户余额中扣费的,用户注册后自动设置余额为指定值。
适用
课程设计,大作业,毕业设计,项目练习,学习演示等

@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";
}
/**
* 查询库存
* @param goodid
* @param colorid
* @param sizeid
* @return
*/
private SkuService skuService;
/**
* 首页
* @return
*/
@RequestMapping("/index")
public String index(HttpServletRequest request){
request.setAttribute("flag", -1);
List<Types> 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";
}
* sku删除
*
* @return
*/
@RequestMapping("/skuDelete")
public String skuDelete(int id, int status) {
if(status > 0) {
skuService.deleteSize(id);
}else {
skuService.deleteColor(id);
}
return "redirect:skuList?status="+status;
*/
@RequestMapping("/skuDelete")
public String skuDelete(int id, int status) {
if(status > 0) {
skuService.deleteSize(id);
}else {
skuService.deleteColor(id);
}
return "redirect:skuList?status="+status;
}
/**
* 产品列表
*
* @return
*/
@RequestMapping("/goodList")
public String goodList(@RequestParam(required=false, defaultValue="0")byte status, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
request.setAttribute("flag", 3);
request.setAttribute("page", page);
}
/**
* 添加
*/
@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);
}
/**
* 减少
*/
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";
}
/**
* 查看订单
* @return
*/
@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";
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"; // 注册成功后转去登录
}
}
*/
@RequestMapping("/typeList")
public String typeList(HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("typeList", typeService.getList());
return "/admin/type_list.jsp";
}
/**
* 类目添加
*
* @return
*/
}
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
@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"; // 注册成功后转去登录
}
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;
}
@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";
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); // 更新数据库
/**
* sku添加
*
* @return
*/
@RequestMapping("/skuSave")
public String skuSave(String name, int status) {
if(status > 0) {
skuService.addSize(name);
}else {
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("/typeSave")
public String typeSave(Types type, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
type.setCover(UploadUtil.upload(file));
typeService.add(type);
return "redirect:typeList?flag=1&page="+page;
}
/**
* 类目更新
*
* @return
*/
@RequestMapping("/typeEdit")
public String typeEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("type", typeService.get(id));
return "/admin/type_edit.jsp";
}
/**
* 类目更新
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";
}
/**
* 购买
* @return
*/
@RequestMapping("/buy")
public @ResponseBody int buy(Shopcart shopcart, HttpSession session, Model model){
Users user = (Users) session.getAttribute("user");
request.setAttribute("msg", "恭喜你! 登录成功了");
return "/admin/index.jsp";
}
/**
* 类目列表
*
* @return
*/
@RequestMapping("/typeList")
public String typeList(HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("typeList", typeService.getList());
return "/admin/type_list.jsp";
}
/**
* 类目添加
*
* @return
*/
@RequestMapping("/typeAdd")
public String typeAdd(HttpServletRequest request) {
request.setAttribute("flag", 1);
return "/admin/type_add.jsp";
}
public String goodAdd(HttpServletRequest request) {
request.setAttribute("flag", 3);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("colorList", skuService.getColorList());
request.setAttribute("sizeList", skuService.getSizeList());
return "/admin/good_add.jsp";
}
/**
* 产品添加
*
* @return
* @throws Exception
*/
@RequestMapping("/goodSave")
public String goodSave(Goods good, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
good.setCover(UploadUtil.upload(file));
goodService.add(good);
return "redirect:goodList?flag=3&page="+page;
* @return
*/
@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()));
}else {
model.addAttribute("msg", "原密码错误!");
}
}
return "/index/index";
}
}
前台相关接口:
/**
@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"; // 注册成功后转去登录
}
}
/**
* 用户登录
* @return
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;
}
/**
* 添加
orderService.pay(order);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("order", orderService.get(order.getId()));
request.setAttribute("msg", "支付成功! 即将跳转到订单列表");
return "/index/pay.jsp";
}
/**
* 查看订单
* @return
*/
@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";
request.setAttribute("goodList", goodService.getListByType(typeid, page, rows));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotalByType(typeid), page, rows));
return "/index/goods.jsp";
}
/**
* 商品详情
* @return
*/
@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));
public @ResponseBody String topSave(Tops tops,
@RequestParam(required=false, defaultValue="0")byte status,
@RequestParam(required=false, defaultValue="1") int page) {
int id = topService.add(tops);
return id > 0 ? "ok" : null;
}
/**
* 删除推荐
* @return
*/
@RequestMapping("/topDelete")
session.setAttribute("total", shopcartService.getTotal(loginUser.getId()));
return "redirect:index";
} else {
model.addAttribute("msg", "用户名或密码错误!");
return "/index/index";
}
}
/**
* 注销登录
* @return
if (user == null) {
model.addAttribute("msg", "请先登录!");
return "/index/index";
}
model.addAttribute("user", user);
return "/index/my.jsp";
}
/**
* 修改信息
* @return
*/
@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";
}
// 修改资料
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
