项目技术架构:
目前存在的问题:
缺失首页中实现一些小组件,同时点击能够跳转相应页面缺失支持导出表所有数据改善管理员登录页面打开慢,优化速度改善地址优化,目前每一次点击都会请求后台,应该缓存已有的数据改善vue和vue-element-admin等及时更新功能系统角色和权限功能系统日志功能功能系统数据字典功能功能系统栏目管理功能功能支持数据库备份本节介绍管理后台的后台服务模块。
见AdminAuthController类
用户管理服务进一步分成:
商城管理服务进一步分成:
商品服务,见AdminAdminController类
推广管理服务进一步分成:
系统管理服务进一步分成:
管理员登录成功以后,后端会返回token,之后管理员的请求都会携带token。
见AdminWebMvcConfiguration类、LoginAdmin和LoginAdminHandlerMethodArgumentResolver类。
管理后台后端服务每次请求都会检测是否存在HTTP头部域X-Litemall-Admin-Token。
如果存在,则内部查询转换成LoginAdmin,然后作为请求参数。
如果不存在,则作为null请求参数。
而具体的后端服务controller中,则可以利用LoginAdmin来检查。
例如管理员地址服务中:
@RestController
@RequestMapping("/admin/address")
@Validated
public class AdminAddressController {
@GetMapping("/list")
public Object list(@LoginAdmin Integer adminId,
Integer userId, String name,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer limit,
@Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) {
if (adminId == null) {
return ResponseUtil.unlogin();
}
...
}
如果检测adminId是null,则返回错误信息“管理员未登录”。
如果是微信登录,那么无需账号和密码。
而如果用户采用了账号和密码的形式登录,那么后端需要把用户密码加盐。
AdminOrderController类存在以下三个方法,其实是三个定时任务:
注意:
虽然定时任务放在AdminOrderController类中,但是可能这里不是很合适, 以后需要调整或者完善。
本章介绍管理后台的前端模块。
litemall-admin模块的代码基于vue-element-admin
本章节介绍如何开发新的管理后台功能。