admin.md 4.3 KB

4 litemall管理后台

项目技术架构:

  • 管理后台前端,即litemall-admin模块
    • vue
    • vuex
    • vue-router
    • axios
    • element
    • vue-element-admin 3.9.3
    • 其他,见package.json
  • 管理后台后端, 即litemall-admin-api模块
    • Spring Boot 2.x
    • Spring MVC

目前存在的问题:

  • 缺失首页中实现一些小组件,同时点击能够跳转相应页面
  • 缺失支持导出表所有数据
  • 改善管理员登录页面打开慢,优化速度
  • 改善地址优化,目前每一次点击都会请求后台,应该缓存已有的数据
  • 改善vue和vue-element-admin等及时更新
  • 功能系统角色和权限
  • 功能系统日志功能
  • 功能系统数据字典功能
  • 功能系统栏目管理功能
  • 功能支持数据库备份

4.1 litemall-admin-api

本节介绍管理后台的后台服务模块。

4.1.1 授权服务

见AdminAuthController类

4.1.2 用户管理服务

用户管理服务进一步分成:

  • 会员管理服务,见AdminUserController类
  • 收货地址服务,见AdminAddressController类
  • 会员收藏服务,见AdminCollectController类
  • 会员足迹服务,见AdminFootprintController类
  • 搜索历史服务,见AdminHistoryController类
  • 意见反馈服务,见AdminFeedbackController类

4.1.3 商场管理服务

商城管理服务进一步分成:

  • 行政区域服务,见AdminRegionController类
  • 品牌制造商服务,见AdminBrandController类
  • 商品类目服务,见AdminCategoryController类
  • 订单管理服务,见AdminOrderController类
  • 通用问题服务,见AdminIssueController类
  • 关键词服务,见AdminKeywordController类

4.1.4 商品管理服务

商品服务,见AdminAdminController类

4.1.5 推广管理服务

推广管理服务进一步分成:

  • 广告服务,见AdminAdController类
  • 专题服务,见AdminTopicController类
  • 团购服务,见AdminGrouponController类

4.1.6 系统管理服务

系统管理服务进一步分成:

  • 管理员服务,见AdminAdminController类
  • 对象存储服务,见见AdminStorageController类

4.1.7 其他服务

  • 统计服务,见AdminStatController类
  • 个人服务,见AdminProfileController类

4.1.8 安全

4.1.8.1 Token

管理员登录成功以后,后端会返回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,则返回错误信息“管理员未登录”。

4.1.8.2 账号密码加盐

如果是微信登录,那么无需账号和密码。

而如果用户采用了账号和密码的形式登录,那么后端需要把用户密码加盐。

4.1.9 定时任务

AdminOrderController类存在以下三个方法,其实是三个定时任务:

  • checkOrderUnpaid
  • checkOrderUnconfirm
  • checkOrderComment

注意:

虽然定时任务放在AdminOrderController类中,但是可能这里不是很合适, 以后需要调整或者完善。

4.2 litemall-admin

本章介绍管理后台的前端模块。

litemall-admin模块的代码基于vue-element-admin

4.3 开发新组件

本章节介绍如何开发新的管理后台功能。

4.3.1 管理后台前端页面

4.3.2 前后端交互服务API

4.3.3 管理后台后端服务

4.3.4 数据库