# 4 litemall管理后台

项目技术架构：

* 后台管理前端，即litemall-admin模块
  * vue
  * vuex
  * vue-router
  * axios
  * element-ui
  * vue-element-admin
  * 其他，见package.json
* 后台管理后端, 即litemall-admin-api模块
  * Spring Boot 1.5.10
  * Spring MVC

目前存在的问题：

* `严重`业务功能重新设计，例如即使是管理员也不能删除修改用户的相关数据
* `严重`商品和货品管理，特别是添加一个商品
* `缺失`支持微信登录
* `缺失`后台采用事务
* `缺失`首页中实现一些小组件，同时点击能够跳转相应页面
* `缺失`商品评价中管理员回复功能
* `缺失`支持导出表所有数据
* `改善`返回的时间日期，在前端显示20180101T0000格式，效果不好
* `改善`管理员登录页面打开慢，优化速度
* `改善`大部分页面仅仅是一个表CRUD的效果，交互性一般。
  例如，显示商品的时候，只是简单显示表中保存的类目ID和品牌商ID，
  更好的效果可能是显示对应的类目名称和品牌商名称，
  同时能够显示更详细的类目信息和品牌商信息。
* `改善`页面中图片数据目前是显示地址，更好地做法应该是显示小图片，
  同时支持点击放大的效果
* `改善`地址优化，目前每一次点击都会请求后台，应该缓存已有的数据
* `改善`查询时排序功能
* `改善`vue和vue-element-admin等及时更新
* `功能`系统角色和权限
* `功能`系统日志功能
* `功能`系统数据字典功能
* `功能`系统栏目管理功能
* `功能`支持国际化???
* `功能`支持数据库备份


## 4.1 litemall-admin-api

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

### 4.1.1 授权服务




### 4.1.16 安全

#### 4.1.16.1 Token

用户登录成功以后，后端会返回`token`，之后用户的请求都会携带token。

目前token的失效和跟新机制没有涉及。

#### 4.1.16.2 CROS

如果litemall-admin-api不配置CROS，则Spring Boot会失败。

#### 4.1.16.3 账号密码加盐

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

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

#### 4.1.16.4 限制登录

如果采用账号密码登录，那么登录失败一定次数，应该限制登录。

进一步地，如果项目启用了短信功能，应该短信提醒用户，防止他人登录。

目前这里没有实现，仅列出。

### 4.1.17 定时任务

### 4.1.18 并发控制

参考`2.2.8 乐观锁`

当乐观锁更新失败时采用多次尝试方案。

### 4.1.19 事务管理

### 4.1.20 开发技巧

当小商城后台服务开发中因为测试或者debug可能需要经常性重启应用，此时
一旦重启，将导致小商场的小程序段的token失效，因此要求用户再次登录。
这里，介绍一个小技巧:
开发时，


## 4.2 litemall-admin

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

litemall-admin模块的代码基于[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)

### 4.2.1

### 4.2.2

### 4.2.3

### 4.2.4

### 4.2.5

### 4.2.6

### 4.2.7

### 4.2.8

### 4.2.9

### 4.2.10 系统基础功能

#### 4.2.10.1 数据字典

#### 4.2.10.2 角色权限

#### 4.2.10.3 国际化

#### 4.2.10.4 菜单

#### 4.2.10.5 日志


## 4.3 开发新组件

这里介绍开发一个新的组件的流程。