springboot2.1 springMVC mybatis商城系统
技术栈:
后端采用 springboot2.1 springmvc mybaits
前端采用bootstrap jquery thymeleaf html
数据库mysql jdk1.8
开发工具:eclipse idea myeclipse sts等java开发工具
order_id, order_no, user_id, total_price, pay_status, pay_type, pay_time, order_status, extra_info, user_name, user_phone, user_address, is_deleted, create_time, update_time
import flowershop.mall.common.ServiceResultEnum;
import flowershop.mall.entity.Goods;
import flowershop.mall.entity.GoodsCategory;
import flowershop.mall.service.CategoryService;
import flowershop.mall.service.GoodsService;
import flowershop.mall.common.Constants;
import flowershop.mall.common.CategoryLevelEnum;
import flowershop.mall.util.PageQueryUtil;
import flowershop.mall.util.Result;
import flowershop.mall.util.ResultGenerator;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.thymeleaf.expression.Ids;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Controller
@RequestMapping("/admin")
public class GoodsController {
@Resource
private GoodsService goodsService;
@Resource
private CategoryService categoryService;
@GetMapping("/goods")
public String goodsPage(HttpServletRequest request) {
request.setAttribute("path", "newbee_mall_goods");
return "admin/goods";
}
@GetMapping("/goods/edit")
public String edit(HttpServletRequest request) {
request.setAttribute("path", "edit");
//查询所有的一级分类
List firstLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(0L), CategoryLevelEnum.LEVEL_ONE.getLevel());
if (!CollectionUtils.isEmpty(firstLevelCategories)) {
//查询一级分类列表中第一个实体的所有二级分类
List secondLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(firstLevelCategories.get(0).getCategoryId()), CategoryLevelEnum.LEVEL_TWO.getLevel());
if (!CollectionUtils.isEmpty(secondLevelCategories)) {
//查询二级分类列表中第一个实体的所有三级分类
List thirdLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(secondLevelCategories.get(0).getCategoryId()), CategoryLevelEnum.LEVEL_THREE.getLevel());
request.setAttribute("firstLevelCategories", firstLevelCategories);
request.setAttribute("secondLevelCategories", secondLevelCategories);
request.setAttribute("thirdLevelCategories", thirdLevelCategories);
request.setAttribute("path", "goods-edit");
return "admin/goods_edit";
}
}
return "error/error_5xx";
}
@GetMapping("/goods/edit/{goodsId}")
public String edit(HttpServletRequest request, @PathVariable("goodsId") Long goodsId) {
request.setAttribute("path", "edit");
Goods goods = goodsService.getNewBeeMallGoodsById(goodsId);
if (goods == null) {
return "error/error_400";
}
if (goods.getGoodsCategoryId() > 0) {
if (goods.getGoodsCategoryId() != null || goods.getGoodsCategoryId() > 0) {
//有分类字段则查询相关分类数据返回给前端以供分类的三级联动显示
GoodsCategory currentGoodsCategory = categoryService.getGoodsCategoryById(goods.getGoodsCategoryId());
//商品表中存储的分类id字段为三级分类的id,不为三级分类则是错误数据
if (currentGoodsCategory != null && currentGoodsCategory.getCategoryLevel() == CategoryLevelEnum.LEVEL_THREE.getLevel()) {
//查询所有的一级分类
List firstLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(0L), CategoryLevelEnum.LEVEL_ONE.getLevel());
//根据parentId查询当前parentId下所有的三级分类
List thirdLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(currentGoodsCategory.getParentId()), CategoryLevelEnum.LEVEL_THREE.getLevel());
//查询当前三级分类的父级二级分类
GoodsCategory secondCategory = categoryService.getGoodsCategoryById(currentGoodsCategory.getParentId());
if (secondCategory != null) {
//根据parentId查询当前parentId下所有的二级分类
List secondLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(secondCategory.getParentId()), CategoryLevelEnum.LEVEL_TWO.getLevel());
//查询当前二级分类的父级一级分类
GoodsCategory firestCategory = categoryService.getGoodsCategoryById(secondCategory.getParentId());
if (firestCategory != null) {
//所有分类数据都得到之后放到request对象中供前端读取
request.setAttribute("firstLevelCategories", firstLevelCategories);
request.setAttribute("secondLevelCategories", secondLevelCategories);
request.setAttribute("thirdLevelCategories", thirdLevelCategories);
request.setAttribute("firstLevelCategoryId", firestCategory.getCategoryId());
request.setAttribute("secondLevelCategoryId", secondCategory.getCategoryId());
request.setAttribute("thirdLevelCategoryId", currentGoodsCategory.getCategoryId());
}
}
}
}
}
if (goods.getGoodsCategoryId() == 0) {
//查询所有的一级分类
List firstLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(0L), CategoryLevelEnum.LEVEL_ONE.getLevel());
if (!CollectionUtils.isEmpty(firstLevelCategories)) {
//查询一级分类列表中第一个实体的所有二级分类
List secondLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(firstLevelCategories.get(0).getCategoryId()), CategoryLevelEnum.LEVEL_TWO.getLevel());
if (!CollectionUtils.isEmpty(secondLevelCategories)) {
//查询二级分类列表中第一个实体的所有三级分类
List thirdLevelCategories = categoryService.selectByLevelAndParentIdsAndNumber(Collections.singletonList(secondLevelCategories.get(0).getCategoryId()), CategoryLevelEnum.LEVEL_THREE.getLevel());
request.setAttribute("firstLevelCategories", firstLevelCategories);
request.setAttribute("secondLevelCategories", secondLevelCategories);
request.setAttribute("thirdLevelCategories", thirdLevelCategories);
}
}
}
request.setAttribute("goods", goods);
request.setAttribute("path", "goods-edit");
return "admin/goods_edit";
}
@RequestMapping(value = "/goods/list", method = RequestMethod.GET)
@ResponseBody
public Result list(@RequestParam Map params) {
if (StringUtils.isEmpty(params.get("page")) || StringUtils.isEmpty(params.get("limit"))) {
return ResultGenerator.genFailResult("参数异常!");
}
PageQueryUtil pageUtil = new PageQueryUtil(params);
return ResultGenerator.genSuccessResult(goodsService.getNewBeeMallGoodsPage(pageUtil));
}
@RequestMapping(value = "/goods/save", method = RequestMethod.POST)
@ResponseBody
public Result save(@RequestBody Goods goods) {
if (StringUtils.isEmpty(goods.getGoodsName())
|| StringUtils.isEmpty(goods.getGoodsIntro())
|| StringUtils.isEmpty(goods.getTag())
|| Objects.isNull(goods.getOriginalPrice())
|| Objects.isNull(goods.getGoodsCategoryId())
|| Objects.isNull(goods.getSellingPrice())
|| Objects.isNull(goods.getStockNum())
|| Objects.isNull(goods.getGoodsSellStatus())
|| StringUtils.isEmpty(goods.getGoodsCoverImg())
|| StringUtils.isEmpty(goods.getGoodsDetailContent())) {
return ResultGenerator.genFailResult("参数异常!");
}
String result = goodsService.saveNewBeeMallGoods(goods);
if (ServiceResultEnum.SUCCESS.getResult().equals(result)) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult(result);
}
}



