持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第26天,点击查看活动详情
项目启动
端口设置
启动前端 npm run dev
启动后端:运行引导类
接口
SpringBoot2.x整合mybatis-generator插件
1.模块litemall-db下
pom.xml—bulid—plugins 标签内导入插件依赖
2.添加配置文件,设置数据库连接信息、生成文件存放位置
3.运行
首页
litemall-admin-api —> controller
litemall-db —> service
逆向工程生成的 mapper接口 和 实体类&Example类 存放在litemall-db —> dao、 domain
1.首页显示4种数量,在首页的 AdminDashboardController注入4个service,调用它们的count()方法获取总数。
2.以orderService为例:在service中注入对应的mapper,使用mapper去操作数据库
用户管理
会员管理AdminUserController (收获地址 会员收藏 会员足迹 搜索历史 意见反馈)
admin/user/list 查询满足条件的所有用户
- @RequestParam 用于接收请求参数为表单类型的数据,通常用在方法的参数前面。
- Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配(注解用不用均可)。
- 当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定。
商场管理
行政区域 AdminRegionController(商品类目)
admin/region/list 查询所有 省——市——区
所有省市区信息都存储在litemall_region表中,
- type:区分行政区域类型,1省, 2市,3区县
- pid:行政区域父ID,例如区县的pid指向市,市的pid指向省,省的pid则是0
1.定义RegionVo
其中children的类型为List
2.取出表中所有数据——List regionList
regionList按type属性分流——>省、市、区
Map<Byte, List<LitemallRegion>> collect = regionList.stream().collect(Collectors.groupingBy(LitemallRegion::getType));
List<LitemallRegion> provinceList = collect.get(provinceType); //所有省
List<LitemallRegion> cityList = collect.get(cityType); //所有市
List<LitemallRegion> areaList = collect.get(areaType); //所有区
//对cityList按pid属性(标记属于哪个省)再次分流
Map<Integer, List<LitemallRegion>> cityListMap = cityList.stream().collect(Collectors.groupingBy(LitemallRegion::getPid));
//对areaList按pid属性(标记属于哪个市)再次分流
Map<Integer, List<LitemallRegion>> areaListMap = areaList.stream().collect(Collectors.groupingBy(LitemallRegion::getPid));
//三层for循环封装数据