900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 基于javaweb的网上商城项目(java+springboot+ssm+jsp+mysql)

基于javaweb的网上商城项目(java+springboot+ssm+jsp+mysql)

时间:2022-08-21 09:47:46

相关推荐

基于javaweb的网上商城项目(java+springboot+ssm+jsp+mysql)

基于javaweb的网上商城项目(java+springboot+ssm+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

基于javaweb+jsp的网上商城项目(java+SpringBoot+SSM+jsp+mysql+maven)

一、项目简述

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

二、项目运行

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

项目技术: JSP +SpringBoot+Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。

后台管理-订单页:

/**

后台管理-订单页

*/

@Controller

public class

OrderController extends BaseController{

@Resource(name=“productOrderService”)

private ProductOrderService productOrderService;

@Resource(name = “addressService”)

private AddressService addressService;

@Resource(name=“userService”)

private UserService userService;

@Resource(name = “productOrderItemService”)

private ProductOrderItemService productOrderItemService;

@Resource(name = “productService”)

private ProductService productService;

@Resource(name = “productImageService”)

private ProductImageService productImageService;

@Resource(name = “lastIDService”)

private LastIDService lastIDService;

//转到后台管理-订单页-ajax

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

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

logger.info(“获取前10条订单列表”);

PageUtil pageUtil = new PageUtil(0, 10);

List productOrderList =

productOrderService.getList(

null,

null,

new OrderUtil(“productOrder_id”,

true), pageUtil);

map.put(“productOrderList”,productOrderList);

logger.info(“获取订单总数量”);

Integer productOrderCount = productOrderService.getTotal(null, null);

map.put(“productOrderCount”, productOrderCount);

logger.info(“获取分页信息”);

pageUtil.setTotal(productOrderCount);

map.put(“pageUtil”, pageUtil);

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

return “admin/orderManagePage”;

//转到后台管理-订单详情页-ajax

@RequestMapping(value = “admin/order/{oid}”, method = RequestMethod.GET)

public String goToDetailsPage(HttpSession session, Map<String, Object> map, @PathVariable Integer oid/* 订单ID */) {

logger.info(“获取order_id为{}的订单信息”,oid);

ProductOrder order = productOrderService.get(oid);

logger.info(“获取订单详情-地址信息”);

Address address = addressService.get(order.getProductOrder_address().getAddress_areaId());

Stack addressStack = new Stack<>();

//详细地址

addressStack.push(order.getProductOrder_detail_address());

//最后一级地址

addressStack.push(address.getAddress_name() + " ");

//如果不是第一级地址,循环拼接地址信息

while (!address.getAddress_areaId().equals(address.getAddress_regionId().getAddress_areaId())) {

address = addressService.get(address.getAddress_regionId().getAddress_areaId());

addressStack.push(address.getAddress_name() + " ");

StringBuilder builder = new StringBuilder();

while (!addressStack.empty()) {

builder.append(addressStack.pop());

logger.info(“订单地址字符串:{}”, builder);

order.setProductOrder_detail_address(builder.toString());

logger.info(“获取订单详情-用户信息”);

order.setProductOrder_user(userService.get(order.getProductOrder_user().getUser_id()));

logger.info(“获取订单详情-订单项信息”);

List productOrderItemList = productOrderItemService.getListByOrderId(oid, null);

if (productOrderItemList != null) {

logger.info(“获取订单详情-订单项对应的产品信息”);

for (ProductOrderItem productOrderItem : productOrderItemList) {

Integer productId = productOrderItem.getProductOrderItem_product().getProduct_id();

logger.info(“获取产品ID为{}的产品信息”, productId);

Product product = productService.get(productId);

if (product != null) {

logger.info(“获取产品ID为{}的第一张预览图片信息”, productId);

product.setSingleProductImageList(productImageService.getList(productId, (byte) 0, new PageUtil(0, 1)));

productOrderItem.setProductOrderItem_product(product);

order.setProductOrderItemList(productOrderItemList);

map.put(“order”, order);

logger.info(“转到后台管理-订单详情页-ajax方式”);

return “admin/include/orderDetails”;

//更新订单信息-ajax

@ResponseBody

@RequestMapping(value = “admin/order/{order_id}”, method = RequestMethod.PUT, produces = “application/json;charset=UTF-8”)

public String updateOrder(@PathVariable(“order_id”) String order_id) {

JSONObject jsonObject = new JSONObject();

logger.info(“整合订单信息”);

ProductOrder productOrder = new ProductOrder()

.setProductOrder_id(Integer.valueOf(order_id))

.setProductOrder_status((byte) 2)

.setProductOrder_delivery_date(new Date());

logger.info(“更新订单信息,订单ID值为:{}”, order_id);

boolean yn = productOrderService.update(productOrder);

if (yn) {

logger.info(“更新成功!”);

jsonObject.put(“success”, true);

} else {

logger.info(“更新失败!事务回滚”);

jsonObject.put(“success”, false);

throw new RuntimeException();

jsonObject.put(“order_id”, order_id);

return jsonObject.toJSONString();

//按条件查询订单-ajax

@ResponseBody

@RequestMapping(value = “admin/order/{index}/{count}”, method = RequestMethod.GET, produces = “application/json;charset=UTF-8”)

public String getOrderBySearch(@RequestParam(required = false) String productOrder_code/* 订单号 */,

@RequestParam(required = false) String productOrder_post/* 订单邮政编码 */,

@RequestParam(required = false) Byte[] productOrder_status_array/* 订单状态数组 */,

@RequestParam(required = false) String orderBy/* 排序字段 */,

@RequestParam(required = false,defaultValue = “true”) Boolean isDesc/* 是否倒序 */,

@PathVariable Integer index/* 页数 */,

@PathVariable Integer count/* 行数 */){

//移除不必要条件

if (productOrder_status_array != null && (productOrder_status_array.length <= 0 || productOrder_status_array.length >=5)) {

productOrder_status_array = null;

if (productOrder_code != null){

productOrder_code = “”.equals(productOrder_code) ? null : productOrder_code;

if(productOrder_post != null){

productOrder_post = “”.equals(productOrder_post) ? null : productOrder_post;

if (orderBy != null && “”.equals(orderBy)) {

orderBy = null;

//封装查询条件

ProductOrder productOrder = new ProductOrder()

.setProductOrder_code(productOrder_code)

.setProductOrder_post(productOrder_post);

OrderUtil orderUtil = null;

if (orderBy != null) {

logger.info(“根据{}排序,是否倒序:{}”,orderBy,isDesc);

orderUtil = new OrderUtil(orderBy, isDesc);

} else {

orderUtil = new OrderUtil(“productOrder_id”,

true);

JSONObject object = new JSONObject();

logger.info(“按条件获取第{}页的{}条订单”, index + 1, count);

PageUtil pageUtil = new PageUtil(index, count);

List productOrderList = productOrderService.getList(productOrder, productOrder_status_array, orderUtil, pageUtil);

object.put(“productOrderList”, JSONArray.parseArray(JSON.toJSONString(productOrderList)));

logger.info(“按条件获取订单总数量”);

Integer productOrderCount = productOrderService.getTotal(productOrder, productOrder_status_array);

object.put(“productOrderCount”, productOrderCount);

logger.info(“获取分页信息”);

pageUtil.setTotal(productOrderCount);

object.put(“totalPage”, pageUtil.getTotalPage());

object.put(“pageUtil”, pageUtil);

return object.toJSONString();

后台管理-产品类型页:

/**

后台管理-产品类型页

*/

@Controller

public class CategoryController extends BaseController {

@Resource(name = “categoryService”)

private CategoryService categoryService;

@Resource(name = “lastIDService”)

private LastIDService lastIDService;

@Resource(name = “propertyService”)

private PropertyService propertyService;

//转到后台管理-产品类型页-ajax

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

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

logger.info(“获取前10条产品类型列表”);

PageUtil pageUtil = new PageUtil(0, 10);

List categoryList = categoryService.getList(null, pageUtil);

map.put(“categoryList”, categoryList);

logger.info(“获取产品类型总数量”);

Integer categoryCount = categoryService.getTotal(null);

map.put(“categoryCount”, categoryCount);

logger.info(“获取分页信息”);

pageUtil.setTotal(categoryCount);

map.put(“pageUtil”, pageUtil);

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

return “admin/categoryManagePage”;

//转到后台管理-产品类型详情页-ajax

@RequestMapping(value = “admin/category/{cid}”, method = RequestMethod.GET)

public String goToDetailsPage(HttpSession session, Map<String, Object> map, @PathVariable Integer cid/* 分类ID */) {

logger.info(“获取category_id为{}的分类信息”, cid);

Category category = categoryService.get(cid);

logger.info(“获取分类子信息-属性列表”);

category.setPropertyList(propertyService.getList(new Property().setProperty_category(category), null));

map.put(“category”, category);

logger.info(“转到后台管理-分类详情页-ajax方式”);

return “admin/include/categoryDetails”;

//转到后台管理-产品类型添加页-ajax

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

public String goToAddPage(HttpSession session, Map<String, Object> map) {

logger.info(“转到后台管理-分类添加页-ajax方式”);

return “admin/include/categoryDetails”;

//添加产品类型信息-ajax

@ResponseBody

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

public String addCategory(@RequestParam String category_name/* 分类名称 */,

@RequestParam String category_image_src/* 分类图片路径 */) {

JSONObject jsonObject = new JSONObject();

logger.info(“整合分类信息”);

Category category = new Category()

.setCategory_name(category_name)

.setCategory_image_src(category_image_src.substring(category_image_src.lastIndexOf(“/”) + 1));

logger.info(“添加分类信息”);

boolean yn = categoryService.add(category);

if (yn) {

int category_id = lastIDService.selectLastID();

logger.info(“添加成功!,新增分类的ID值为:{}”, category_id);

jsonObject.put(“success”, true);

jsonObject.put(“category_id”, category_id);

} else {

jsonObject.put(“success”, false);

logger.warn(“添加失败!事务回滚”);

throw new RuntimeException();

return jsonObject.toJSONString();

//更新产品类型信息-ajax

@ResponseBody

@RequestMapping(value = “admin/category/{category_id}”, method = RequestMethod.PUT, produces = “application/json;charset=utf-8”)

public String updateCategory(@RequestParam String category_name/* 分类名称 */,

@RequestParam String category_image_src/* 分类图片路径 */,

@PathVariable(“category_id”) Integer category_id/* 分类ID */) {

JSONObject jsonObject = new JSONObject();

logger.info(“整合分类信息”);

Category category = new Category()

.setCategory_id(category_id)

.setCategory_name(category_name)

.setCategory_image_src(category_image_src.substring(category_image_src.lastIndexOf(“/”) + 1));

logger.info(“更新分类信息,分类ID值为:{}”, category_id);

boolean yn = categoryService.update(category);

if (yn) {

logger.info(“更新成功!”);

jsonObject.put(“success”, true);

jsonObject.put(“category_id”, category_id);

} else {

jsonObject.put(“success”, false);

logger.info(“更新失败!事务回滚”);

throw new RuntimeException();

return jsonObject.toJSONString();

//按条件查询产品类型-ajax

@ResponseBody

@RequestMapping(value = “admin/category/{index}/{count}”, method = RequestMethod.GET, produces = “application/json;charset=utf-8”)

public String getCategoryBySearch(@RequestParam(required = false) String category_name/* 分类名称 */,

@PathVariable Integer index/* 页数 */,

@PathVariable Integer count/* 行数 */) throws UnsupportedEncodingException {

//移除不必要条件

if (category_name != null) {

//如果为非空字符串则解决中文乱码:URLDecoder.decode(String,“UTF-8”);

category_name = “”.equals(category_name) ? null : URLDecoder.decode(category_name, “UTF-8”);

JSONObject object = new JSONObject();

logger.info(“按条件获取第{}页的{}条分类”, index + 1, count);

PageUtil pageUtil = new PageUtil(index, count);

List categoryList = categoryService.getList(category_name, pageUtil);

object.put(“categoryList”, JSONArray.parseArray(JSON.toJSONString(categoryList)));

logger.info(“按条件获取分类总数量”);

Integer categoryCount = categoryService.getTotal(category_name);

object.put(“categoryCount”, categoryCount);

logger.info(“获取分页信息”);

pageUtil.setTotal(categoryCount);

object.put(“totalPage”, pageUtil.getTotalPage());

object.put(“pageUtil”, pageUtil);

return object.toJSONString();

// 上传产品类型图片-ajax

@ResponseBody

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

public String uploadCategoryImage(@RequestParam MultipartFile file, HttpSession session) {

String originalFileName = file.getOriginalFilename();

logger.info(“获取图片原始文件名: {}”, originalFileName);

String extension = originalFileName.substring(originalFileName.lastIndexOf(‘.’));

String fileName = UUID.randomUUID() + extension;

String filePath = session.getServletContext().getRealPath(“/”) + “r/files/52560/item/categoryPicture/” + fileName;

logger.info(“文件上传路径:{}”, filePath);

JSONObject object = new JSONObject();

try {

logger.info(“文件上传中…”);

file.transferTo(new File(filePath));

logger.info(“文件上传完成”);

object.put(“success”, true);

object.put(“fileName”, fileName);

} catch (IOException e) {

logger.warn(“文件上传失败!”);

e.printStackTrace();

object.put(“success”, false);

return object.toJSONString();

后台管理-登录页:

/**

后台管理-登录页

*/

@Controller

public class AdminLoginController extends BaseController {

@Resource(name = “adminService”)

private AdminService adminService;

//转到后台管理-登录页

@RequestMapping(“admin/login”)

public String goToPage(){

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

return “admin/loginPage”;

//登陆验证-ajax

@ResponseBody

@RequestMapping(value = “admin/login/doLogin”,method = RequestMethod.POST,produces = “application/json;charset=utf-8”)

public String checkLogin(HttpSession session, @RequestParam String username, @RequestParam String password) {

logger.info(“管理员登录验证”);

Admin admin = adminService.login(username,password);

JSONObject object = new JSONObject();

if(admin == null){

logger.info(“登录验证失败”);

object.put(“success”,false);

} else {

logger.info(“登录验证成功,管理员ID传入会话”);

session.setAttribute(“adminId”,admin.getAdmin_id());

object.put(“success”,true);

return object.toJSONString();

//获取管理员头像路径-ajax

@ResponseBody

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

public String getAdminProfilePicture(@RequestParam String username){

logger.info(“根据用户名获取管理员头像路径”);

Admin admin = adminService.get(username,null);

JSONObject object = new JSONObject();

if(admin == null){

logger.info(“未找到头像路径”);

object.put(“success”,false);

} else {

logger.info(“成功获取头像路径”);

object.put(“success”,true);

object.put(“srcString”,admin.getAdmin_profile_picture_src());

return object.toJSONString();

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。