1 实现过程
在RuoYi-fast系统中对之前编写的子菜单功能进行和用户的信息关联,实现user与test条目对应的部分操作:
- 给user信息添加test标签
- 批量新增和删除test标签
- 查询test关联用户数量
1.1 后端
1.1.1 sys_user_test表
在数据库中新建sys_user_test表,存放user_id与test_id的对应关系:
1.1.2 TestMapper.java
在TestMapper接口中声明关联查询方法
/**
* 根据用户id查询test
*
* @param userId
* @return test列表
*/
public List<Test> selectTestsByUserId(Long userId);
1.1.3 TestMapper.xml
在TestMapper.xml中对新方法定义新表和sys_user、sys_test两表关联的键:
<select id="selectTestsByUserId" parameterType="Long" resultMap="TestResult">
SELECT t.test_id, t.test_name, t.test_code
FROM sys_user u
LEFT JOIN sys_user_test ut ON u.user_id = ut.user_id
LEFT JOIN sys_test t ON t.test_id = ut.test_id
WHERE ut.user_id = #{userId}
</select>
1.1.4 UserTest.java
在com.ruoyi.project.system.user包新增Java bean:UserTest
package com.ruoyi.project.system.user.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 用户和测试关联 sys_user_test
*
* @author XYM_
*/
public class UserTest
{
/**用户id*/
private Long userId;
/**test id*/
private Long testId;
public Long getUserId() {
return userId; }
public void setUserId(Long userId) {
this.userId = userId; }
public Long getTestId() {
return testId; }
public void setTestId(Long testId) {
this.testId = testId; }
@Override
public String toString()
{
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId",getUserId())
.append("testId",getTestId())
.toString();
}
}
1.1.5 UserTestMapper.java
新建UserTestMapper接口声明数据表操作方法
package com.ruoyi.project.system.user.mapper;
import java.util.List;
import com.ruoyi.project.system.user.domain.UserTest;
/**
* 用户与测试关联表 数据层
*
* @author XYM_
*/
public interface UserTestMapper
{
/**
* 通过用户id删除和测试关联
*
* @param userId
* @return 结果
*/
public int deleteUserTestByUserId(Long userId)<