作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
在线相机商城系统源码,分为前后台,共有两个角色,一个管理员,一个普通用户
用户角色包含以下功能:
商城首页,查看详情评论商品,用户注册后登录,查看购物车,按分类查看商品,提交订单,选择地址支付页面,查看订单,查看收藏,申请售后,留言等功能。
管理员角色包含以下功能:
管理员登录,相机品牌管理,相机库存管理,相机商品管理,相机订单管理,相机售后管理,新闻资讯管理,物流管理等功能。
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
环境需要
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等版本均可;
技术栈
1. 后端:Spring springmvc mybatis
2. 前端:JSP+css+javascript+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置,然后运行;
4. 运行成功后,在浏览器中输入:http://localhost:8080/ssm_xiangjishop/
管理员账号密码:admin/admin
用户账号密码:user/123456
运行截图
前台界面-用户角色
后台管理界面
代码相关
订单管理控制器
@Controller
@RequestMapping("/orderForm")
public class OrderFormController {
@Autowired
private IOrderFormService iOrderFormService;
/**
* 获取所有用户订单
* @param model
* @return
*/
@GetMapping("/findAllOrderForm")
public String findAllOrderForm(
@RequestParam(defaultValue = "1") Integer num,
@RequestParam(defaultValue = "5") Integer size,
Model model) {
List<OrderForm> orderFormList = iOrderFormService.findAllOrderForm(num,size);
PageInfo<OrderForm> orderFormPageInfo = new PageInfo<>(orderFormList);
model.addAttribute("orderFormPageInfo",orderFormPageInfo);
return "/backstage/order_form";
}
/**
* 获取所有用户订单返回JSON数据
* @return
*/
@GetMapping("/findAllOrderForm1")
public @ResponseBody PageInfo<OrderForm> findAllOrderForm1(
@RequestParam(defaultValue = "1") Integer num,
@RequestParam(defaultValue = "5") Integer size
) {
List<OrderForm> orderFormList = iOrderFormService.findAllOrderForm(num,size);
PageInfo<OrderForm> orderFormPageInfo = new PageInfo<>(orderFormList);
return orderFormPageInfo;
}
/**
* 新增订单
* 1、将商品销售增加
* 2、剩余量减少
* 3、产生订单
* @param orderForm
* @return
*/
@PostMapping("/saveOrderForm")
public @ResponseBody int saveOrderForm(OrderForm orderForm) {
// System.out.println("OrderForm:"+orderForm);
int i = iOrderFormService.saveOrderForm(orderForm);
return i;
}
/**
* 搜索指定用户的订单列表
* @param uid
* @param num
* @param size
* @param model
* @return
*/
@GetMapping("/findByUid/{uid}")
public String findByUid(
@PathVariable Integer uid,
@RequestParam(defaultValue = "1") Integer num,
@RequestParam(defaultValue = "5") Integer size,
Model model) {
List<OrderForm> orderFormList = iOrderFormService.findByUid(uid,num,size);
PageInfo<OrderForm> orderFormPageInfo = new PageInfo<>(orderFormList);
model.addAttribute("orderFormPageInfo",orderFormPageInfo);
return "/frontdesk/order_form";
}
/**
* 是否发货
* @param orderForm
* @return
*/
@PostMapping("/updateOrderForm")
public @ResponseBody int updateOrderForm(OrderForm orderForm) {
int i = iOrderFormService.updateOrderForm(orderForm);
return i;
}
/**
* 移除该用户的某一订单
* @param id
* @return
*/
@PostMapping("/deleteShopping/{uid}/{id}")
public @ResponseBody int findByUid(@PathVariable Integer uid,@PathVariable Integer id) {
int i = iOrderFormService.deleteOrderForm(uid,id);
// System.out.println("返回的i="+i);
return i;
}
/**
* 根据主键Id删除某一订单
* @return
*/
@PostMapping("/deleteDeliver/{id}")
public @ResponseBody int deleteDeliver(@PathVariable Integer id) {
int i = iOrderFormService.deleteDeliver(id);
return i;
}
}
购物车管理控制器
@Controller
@RequestMapping("/shopping")
public class ShoppingController {
@Autowired
private IShoppingService iShoppingService;
@Autowired
private IOrderFormService iOrderFormService;
/**
* 添加购物车或修改购物车已有图书商品
*
* @param sp
* @return
*/
@PostMapping("/saveShopping")
public @ResponseBody
int saveShopping(Shopping sp) {
// System.out.println("获取到的值:"+shopping);
int i = iShoppingService.saveShopping(sp);
// System.out.println("返回i="+i);
return i;
}
/**
* 我的购物车
*
* @param uid
* @param model
* @return
*/
@GetMapping("/findByUid/{uid}")
public String findByUid(
@PathVariable Integer uid,
@RequestParam(defaultValue = "1") Integer num,
@RequestParam(defaultValue = "5") Integer size,
Model model
) {
List<Shopping> shoppingList = iShoppingService.findByUid(uid,num,size);
PageInfo<Shopping> shoppingPageInfo = new PageInfo<>(shoppingList);
model.addAttribute("shoppingPageInfo", shoppingPageInfo);
return "/frontdesk/shopping";
}
/**
* 移除购物车某一图书商品
*
* @param id
* @return
*/
@PostMapping("/deleteShopping/{uid}/{id}")
public @ResponseBody
int findByUid(@PathVariable Integer uid, @PathVariable Integer id) {
int i = iShoppingService.deleteShopping(uid, id);
// System.out.println("返回的i="+i);
return i;
}
/**
* 购买某一图书商品
* 1、新增订单
* 2、移除购物车某一图书商品
*
* @param id
* @return
*/
@PostMapping("/detShoppingSaveOrderForm")
@Transactional
public @ResponseBody
int detShoppingSaveOrderForm(Integer id) {
// 新增订单
Shopping shopping = iShoppingService.findById(id);
OrderForm orderForm = shoppingOrderForm(shopping);
int i1 = iOrderFormService.saveOrderForm(orderForm);
// 移除购物车某一图书商品
int i = iShoppingService.deleteShopping(shopping.getUid(), shopping.getId());
// System.out.println("返回的i="+i);
int count = i + i1;
return count;
}
/**
* 将购物车图书信息转化封装到订单实体类中
*
* @param shopping
* @return
*/
public static OrderForm shoppingOrderForm(Shopping shopping) {
OrderForm orderForm = new OrderForm();
orderForm.setImage(shopping.getImage());
orderForm.setName(shopping.getName());
orderForm.setPprice(shopping.getPprice());
orderForm.setBcount(shopping.getBcount());
orderForm.setBid(shopping.getBid());
orderForm.setUid(shopping.getUid());
return orderForm;
}
}
用户管理控制器
@Controller
@RequestMapping("/users")
@SessionAttributes({"userId","userName","password","adminId","adminName","adminpassword"})
public class UserController {
@Autowired
private IUserService iUserService;
/**
* 跳转用户登录页面
* @return
*/
@GetMapping("/login")
public String login() {
return "/frontdesk/login";
}
/**
* 用户登录
* @return
* @param u
*/
@PostMapping("/toLogin")
public String toLogin(User u,Model model) {
User user = iUserService.toLogin(u);
if (user == null) {
return "redirect:/users/register";
}
model.addAttribute("userId",user.getId());
model.addAttribute("userName",user.getName());
model.addAttribute("password",user.getPassword());
return "redirect:/book/qiantai";
}
/**
* 跳转用户注册页面
* @return
*/
@GetMapping("/register")
public String register() {
return "/frontdesk/register";
}
/**
* 用户注册
* @return
*/
@PostMapping("/toRegister")
public String toRegister(User u) {
// System.out.println("注册信息:"+u);
int i = iUserService.toRegister(u);
if (i != 1 ) {
return "redirect:/users/register";
}
return "redirect:/users/login";
}
/**
* 跳转管理员登录页面
* @return
*/
@GetMapping("/adminLogin")
public String adminLogin() {
return "/backstage/login";
}
/**
* 管理员登录
* @return
*/
@PostMapping("/toAdminLogin")
public String toAdminLogin(User u,Model model) {
// System.out.println("User==:"+u);
User user = iUserService.toLogin(u);
if (user == null) {
model.addAttribute("message","邮箱或密码错误,请确认后重试!");
return "/backstage/login";
}
model.addAttribute("adminId",user.getId());
model.addAttribute("adminName",user.getName());
model.addAttribute("adminpassword",user.getPassword());
return "redirect:/book/home";
}
/**
* 根据tag查看全部用户或管理员
* @param tag
* @return
*/
@GetMapping("/findByTag/{tag}")
public String findByTag(
@PathVariable Integer tag,
@RequestParam(defaultValue = "1") Integer num,
@RequestParam(defaultValue = "5") Integer size,
Model model) {
List<User> userList = iUserService.findByTag(tag,num,size);
PageInfo<User> userPageInfo = new PageInfo<>(userList);
model.addAttribute("userPageInfo",userPageInfo);
return "/backstage/user_control";
}
/**
* 返回JSON类型
* 根据tag查看全部用户或管理员
* @param tag
* @return
*/
@GetMapping("/findByTag1/{tag}")
public @ResponseBody PageInfo<User> findByTag1(
@PathVariable Integer tag,
@RequestParam(defaultValue = "1") Integer num,
@RequestParam(defaultValue = "5") Integer size
) {
List<User> userList = iUserService.findByTag(tag,num,size);
PageInfo<User> userPageInfo = new PageInfo<>(userList);
return userPageInfo;
}
/**
* 查看个人信息
* @return
*/
@GetMapping("/findById/{id}/{tag}")
public String findById(@PathVariable int id,@PathVariable int tag,Model model) {
User user = iUserService.findById(id,tag);
model.addAttribute("user",user);
if (user.getTag() != 1) {
return "/frontdesk/person_detail";
} else {
return "/backstage/person_detail";
}
}
/**
* 管理员查看他人信息
* @return
*/
@GetMapping("/adminFindById/{id}/{tag}")
public @ResponseBody User adminFindById(@PathVariable int id,@PathVariable int tag,Model model) {
User user = iUserService.findById(id,tag);
return user;
}
/**
* 新增用户
* @param u
* @return
*/
@PostMapping("/saveUser")
public String saveUser(User u) {
// System.out.println("1User==="+u);
int i = iUserService.saveUser(u);
return "redirect:/users/findByTag/0";
}
/**
* 修改个人信息
* @return
*/
@PostMapping("/updateUser")
public String updateUser(User u) {
// System.out.println("User:"+u);
int i = iUserService.updateUser(u);
// System.out.println("i=="+i);
if (i != 1) {
System.out.println("个人信息修改失败");
return "redirect:/users/findById/"+u.getId()+"/"+u.getTag();
}
if (u.getTag() != 1) {
return "redirect:/book/qiantai";
}
return "redirect:/book/home";
}
/**
* 修改他人信息
* @return
*/
@PostMapping("/adminUpdateUser")
public String adminUpdateUser(User u) {
// System.out.println("User:"+u);
int i = iUserService.updateUser(u);
// System.out.println("i=="+i);
if (i != 1) {
System.out.println("个人信息修改失败");
}
return "redirect:/users/findByTag/0";
}
/**
* 修改个人密码
* @return
*/
@PostMapping("/updatePwd")
public String updatePwd(User u) {
// System.out.println("User:"+u);
// 判断是否为管理员还是用户
if (u.getTag() != 1) {
int i = iUserService.updatePwd(u);
// System.out.println("ipwd=="+i);
if (i != 1) {
System.out.println("个人信息修改失败");
return "/frontdesk/update_pwd";
}
return "redirect:/users/toLoginOut";
}
// System.out.println("User:"+u);
int i = iUserService.updatePwd(u);
// System.out.println("ipwd=="+i);
if (i != 1) {
System.out.println("个人信息修改失败");
return "/backstage/update_pwd";
}
return "redirect:/users/toAdminLoginOut";
}
/**
* 退出登录
* @return
*/
@GetMapping("/toLoginOut")
public String toLoginOut(SessionStatus status) {
status.setComplete();
boolean complete = status.isComplete();
if (complete) {
System.out.println("退出成功");
}
return "redirect:/book/qiantai";
}
/**
* 管理员退出登录
* @return
*/
@GetMapping("/toAdminLoginOut")
public String toAdminLoginOut(SessionStatus status) {
status.setComplete();
boolean complete = status.isComplete();
if (complete) {
System.out.println("退出成功");
}
return "redirect:/users/adminLogin";
}
/**
* 根据主键Id删除某一用户
* @return
*/
@PostMapping("/deleteUser/{id}")
public @ResponseBody int deleteUser(@PathVariable Integer id) {
int i = iUserService.deleteUser(id);
return i;
}
}
如果也想学习本系统,下面领取。回复:234ssm