feat: 新增动态数据源单元测试
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package com.youlai.system.sample;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.youlai.system.pojo.entity.SysDictType;
|
||||
import com.youlai.system.service.SysDictService;
|
||||
import com.youlai.system.service.SysDictTypeService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 动态数据源案例
|
||||
*
|
||||
* @author haoxr
|
||||
* @date 2023/4/24
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class DynamicDataSourceSample {
|
||||
|
||||
private final SysDictTypeService dictTypeService;
|
||||
|
||||
private final SysDictService dictService;
|
||||
|
||||
|
||||
@Transactional
|
||||
public boolean updateDictTypeCode(Long dictTypeId,String newTypeCode) {
|
||||
|
||||
SysDictType dictType = dictTypeService.getById(dictTypeId);
|
||||
String originalTypeCode = dictType.getCode();
|
||||
dictType.setCode(newTypeCode);
|
||||
boolean result = dictTypeService.updateById(dictType);
|
||||
|
||||
if (result) {
|
||||
result = dictService.updateDictTypeCode(originalTypeCode, newTypeCode);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -65,4 +65,13 @@ public interface SysDictService extends IService<SysDict> {
|
||||
* @return
|
||||
*/
|
||||
List<Option> listDictOptions(String typeCode);
|
||||
|
||||
/**
|
||||
* 修改字典类型编码
|
||||
*
|
||||
* @param originalTypeCode
|
||||
* @param newTypeCode
|
||||
* @return
|
||||
*/
|
||||
boolean updateDictTypeCode(String originalTypeCode, String newTypeCode);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,9 @@ package com.youlai.system.service.impl;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.system.converter.DictConverter;
|
||||
@@ -159,6 +161,23 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
|
||||
return options;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改字典类型编码(多数据源测试)
|
||||
*
|
||||
* @param originalTypeCode
|
||||
* @param newTypeCode
|
||||
* @return
|
||||
*/
|
||||
@DS("slave")
|
||||
@Override
|
||||
public boolean updateDictTypeCode(String originalTypeCode, String newTypeCode) {
|
||||
boolean result = this.update(new LambdaUpdateWrapper<SysDict>()
|
||||
.eq(SysDict::getTypeCode, originalTypeCode)
|
||||
.set(SysDict::getTypeCode, newTypeCode)
|
||||
);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.util.RandomUtil;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.youlai.system.pojo.form.RoleForm;
|
||||
import com.youlai.system.pojo.form.UserForm;
|
||||
import com.youlai.system.sample.DynamicDataSourceSample;
|
||||
import com.youlai.system.service.SysRoleService;
|
||||
import com.youlai.system.service.SysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -17,29 +18,13 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
class DynamicDataSourceTest {
|
||||
|
||||
@Autowired
|
||||
private SysUserService userService;
|
||||
private DynamicDataSourceSample dynamicDataSourceSample;
|
||||
|
||||
@Autowired
|
||||
private SysRoleService roleService;
|
||||
|
||||
private static Long userId = 3L; // 测试用户
|
||||
private static Long roleId = 3L;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
void updateUser() {
|
||||
UserForm userForm = userService.getUserFormData(userId);
|
||||
userForm.setNickname("测试用户_" + RandomUtil.randomString(RandomUtil.BASE_CHAR, 1));
|
||||
userService.updateUser(userId, userForm);
|
||||
|
||||
this.updateRole();
|
||||
}
|
||||
|
||||
|
||||
@DS("slave")
|
||||
void updateRole() {
|
||||
RoleForm roleForm = roleService.getRoleForm(roleId);
|
||||
roleForm.setName("访问游客_" + RandomUtil.randomString(RandomUtil.BASE_CHAR, 1));
|
||||
roleService.saveRole(roleForm);
|
||||
void testDynamicDataSourceWithTransactional() {
|
||||
String newTypeCod = RandomUtil.randomString(RandomUtil.BASE_CHAR, 6).toUpperCase();
|
||||
boolean result = dynamicDataSourceSample.updateDictTypeCode(2L, newTypeCod);
|
||||
log.info("testDynamicDataSourceWithTransactional result:{}", result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user