mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-25 00:15:06 +08:00
新增 mybatis-plus-join
This commit is contained in:
@ -3,11 +3,15 @@ package cn.iocoder.yudao.module.system.dal.dataobject.user;
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
|
||||
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
||||
import cn.iocoder.yudao.module.system.enums.common.SexEnum;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import icu.mhb.mybatisplus.plugln.annotations.JoinField;
|
||||
import icu.mhb.mybatisplus.plugln.constant.RelevancyType;
|
||||
import lombok.*;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
@ -93,4 +97,13 @@ public class AdminUserDO extends TenantBaseDO {
|
||||
*/
|
||||
private LocalDateTime loginDate;
|
||||
|
||||
/**
|
||||
* 用户所属部门
|
||||
*/
|
||||
@JoinField(masterModelClass = AdminUserDO.class, masterModelField = "deptId",
|
||||
sunModelClass = DeptDO.class, sunModelField = "id",
|
||||
relevancyType = RelevancyType.ONT_TO_ONE, sunAlias = "d")
|
||||
@TableField(exist = false, typeHandler = FastjsonTypeHandler.class)
|
||||
private DeptDO dept;
|
||||
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.dept.DeptMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
||||
import cn.iocoder.yudao.module.system.enums.common.SexEnum;
|
||||
@ -23,6 +24,7 @@ import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
||||
import cn.iocoder.yudao.module.system.service.dept.PostService;
|
||||
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
||||
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
|
||||
import icu.mhb.mybatisplus.plugln.extend.Joins;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.stubbing.Answer;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
@ -63,6 +65,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
||||
private AdminUserMapper userMapper;
|
||||
@Resource
|
||||
private UserPostMapper userPostMapper;
|
||||
@Resource
|
||||
private DeptMapper deptMapper;
|
||||
|
||||
@MockBean
|
||||
private DeptService deptService;
|
||||
@ -770,6 +774,37 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
||||
userDO.getNickname());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSelectUserIncludeDept_success() {
|
||||
// 需设置 application-unit-test.yaml 文件中 spring.main.lazy-initialization: true
|
||||
|
||||
// 准备部门数据
|
||||
DeptDO dept = new DeptDO();
|
||||
dept.setName("测试");
|
||||
dept.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
deptMapper.insert(dept);
|
||||
|
||||
// 准备用户参数
|
||||
UserCreateReqVO reqVO = randomPojo(UserCreateReqVO.class, o -> {
|
||||
o.setSex(RandomUtil.randomEle(SexEnum.values()).getSex());
|
||||
o.setMobile(randomString());
|
||||
o.setPostIds(asSet(1L, 2L));
|
||||
o.setDeptId(dept.getId());
|
||||
});
|
||||
|
||||
// 调用
|
||||
Long userId = userService.createUser(reqVO);
|
||||
|
||||
// 断言
|
||||
AdminUserDO user = Joins.of(AdminUserDO.class)
|
||||
.leftJoin(DeptDO.class, DeptDO::getId, AdminUserDO::getDeptId)
|
||||
.end()
|
||||
.eq(AdminUserDO::getId, userId)
|
||||
.joinGetOne(AdminUserDO.class);
|
||||
System.out.println("=========>" + user);
|
||||
}
|
||||
|
||||
|
||||
// ========== 随机对象 ==========
|
||||
|
||||
@SafeVarargs
|
||||
|
Reference in New Issue
Block a user