若依框架简介
一、用户管理模块代码注意点简介
1.1 针对界面的搜索功能
1.1.1 前端部分的代码
举例用户管理界面的带搜索条件的搜索
页面的搜索方法中仅两个代码块,并未看到以往项目当中的拼接搜索搜索条件的部分的代码
具体的搜索条件部分的代码拼接在ry-ui.js中
根据这里的代码也就要求我们在页面元素部分的代码中需要去写name喝id的属性,并且这两个属性的值是相同的。
1.1.2 后端部分的代码
1.1.2.1 controller层
从上图中我们可以看到,这里controller中接收参数的代码中可以看到,我们这里接收的是一个User对象。
/**
* Entity基类
*
* @author lwj
*/
public class BaseEntity implements Serializable
{
private static final long serialVersionUID = 1L;
/** 搜索值 */
@Transient
private String searchValue;
/** 请求参数 */
@Transient
private Map<String, Object> params;
public String getSearchValue()
{
return searchValue;
}
public void setSearchValue(String searchValue)
{
this.searchValue = searchValue;
}
public Map<String, Object> getParams()
{
if (params == null)
{
params = Maps.newHashMap();
}
return params;
}
public void setParams(Map<String, Object> params)
{
this.params = params;
}
}
在BaseEntity中我们可以看到我们这里定义了搜索值和请求参数
1.1.2.2 service层
我们在下面的代码中可以看到,这里使用了数据权限的注解,但是这个注解是具有局限的
@Override
@DataScope(tableAlias = "u")
public List<User> selectUserList(User user) {
// 生成数据权限过滤条件
return userMapper.selectUserList(user);
}
查看注解部分的代码,我们发现是规定了范围的,主要是过滤了dept_id
1.1.2.3 dao xml层
上图中可以看到,我们的这部分其中一个表的一个别名为“u”,这个对应service层代码中的这个方法,见下图
切面会将数据权限部分的sql代码拼装到params字段中,该字段位于User实体中的BaseEntity中定义。
1.2 关于用户管理界面上的按钮部分的注意点
该项目中目前用户对按钮的权限部分是通过后台调用来判断的,有权限的会显示,没有权限的不会显示。
1.2.1 前端部分
按钮的控制使用到了thymeleaf模板中的@+Spring容器中注册的Bean的名字+方法名的方式;目前该方法中传入的参数permission:user:add为该按钮在数据库表结构中配置的
1.2.2 后端部分
1.3 关于用户新增修改部分
1.3.1 新增部分
1.3.1.1 新增前端部分
前端加入了validate的前端校验
1.3.1.2 后端部分
首先在controller层的方法上我们可以看到很多注解
@Log注解:使用这个注解将通过注解的方式为项目添加操作日志。
@Transactional注解:这个注解是事务注解,在编写业务逻辑中涉及到多个表的更新的时候,需要使用事务去回滚可能出现的错误。
@Valid注解:该注解是hibernate的对于对象参数的校验。
1.3.2 用户修改部分
此部分后端代码基本一致。