前言
该系统采用SpringBoot+Vue前后端分离开发,前端是一个单独的项目,后端是一个单独的项目。
技术栈:SpringBoot+Vue+Mybatis+Redis+Mysql
开发工具:IDEA、Vscode
浏览器:Chrome
开发环境:JDK1.8、Maven3.3.9、Node 16.6.0、MySql 5.7
一、功能划分
1、用户功能
2、管理员功能
二、页面展示部分
1、注册登录
2、系统首页
3、商品分类页面
4、购物车页面
5、订单页面
6、个人信息页面
7、后台页面
三、系统源码
1、前端
前端项目结构
部分核心代码
推荐商品 {{ good.name }}
¥{{ good.price }}
2、后端
项目结构
核心代码
/** * 商品 控制层 * * @author: ShanZhu * @date: 2023-11-10 */ @RestController @RequestMapping("/api/good") @RequiredArgsConstructor public class GoodController { private final GoodService goodService; private final StandardService standardService; /** * 查询商品 * * @param id 商品id * @return 商品 */ @GetMapping("/{id}") public RfindGood(@PathVariable Long id) { return R.success(goodService.getGoodById(id)); } /** * 查询商品规格 * * @param id 商品规格id * @return 商品规格 */ @GetMapping("/standard/{id}") public R getStandard(@PathVariable Integer id) { return R.success(goodService.getStandard(id)); } /** * 查询推荐商品,即recommend=1 * * @return 商品 */ @GetMapping public R findFrontGoods() { return R.success(goodService.findFrontGoods()); } /** * 商品销售额排行 * * @return 商品 */ @GetMapping("/rank") public R > getSaleRank(@RequestParam int num) { return R.success(goodService.getSaleRank(num)); } /** * 保存商品 * * @param good 商品信息 * @return 商品id */ @PostMapping public R
save(@RequestBody Good good) { return R.success(goodService.saveOrUpdateGood(good)); } /** * 更新商品 * * @param good 商品信息 */ @PutMapping public R update(@RequestBody Good good) { goodService.update(good); return R.success(); } /** * 删除商品 * * @param id 商品id */ @DeleteMapping("/{id}") public R delete(@PathVariable Long id) { goodService.loginDeleteGood(id); return R.success(); } /** * 保存商品规格 * * @param standards 商品规格列表 * @param goodId 商品id */ @PostMapping("/standard") public R saveStandard( @RequestBody List standards, @RequestParam int goodId ) { //先删除全部旧记录 standardService.deleteAll(goodId); //然后插入新记录 for (Standard standard : standards) { standard.setGoodId(goodId); if (!standardService.save(standard)) { return R.error(Status.CODE_500, "商品id: " + goodId + " ,规格保存失败"); } } return R.success(); } /** * 删除商品规格 * * @param standard 商品规格列表 */ @DeleteMapping("/standard") public R delStandard(@RequestBody Standard standard) { if (BooleanUtil.isTrue(standardService.delete(standard))) { return R.success(); } else { return R.error(Status.CODE_500, "删除失败"); } } /** * 修改商品推荐 * * @param id 商品id * @param isRecommend 是否推荐 * @return 结果 */ @GetMapping("/recommend") public R setRecommend( @RequestParam Long id, @RequestParam Boolean isRecommend ) { return R.success(goodService.setRecommend(id, isRecommend)); } /** * 分页查询商品 - 带查询条件 * * @param pageNum 页数 * @param pageSize 分页大学 * @param searchText 查询文本 * @param categoryId 分类id * @return 商品列表 */ @GetMapping("/page") public R > findGoodPage( @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "10") Integer pageSize, @RequestParam(required = false, defaultValue = "") String searchText, @RequestParam(required = false) Integer categoryId ) { return R.success( goodService.findPage(pageNum, pageSize, searchText, categoryId) ); } /** * 分页查询全部商品 * * @param pageNum 页数 * @param pageSize 分页大学 * @param searchText 查询文本 * @param categoryId 分类id * @return 商品列表 */ @GetMapping("/fullPage") public R > findGoodFullPage( @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "10") Integer pageSize, @RequestParam(required = false, defaultValue = "") String searchText, @RequestParam(required = false) Integer categoryId) { return R.success(goodService.findFullPage(pageNum, pageSize, searchText, categoryId)); } }
四、系统源码+答辩PPT
系统源码链接地址:仅供参考学习。
公众号:热爱技术的小郑。
回复:商城系统,即可获取到系统源码。
还没有评论,来说两句吧...