1、组织权限菜单过滤条件修复;2、更新用户修改手机号清空密码,前端入参移除username;3、报表接口使用ureport既有;

This commit is contained in:
gaoqr
2024-08-28 20:33:43 +08:00
parent 8d2a2eaefa
commit 6463eb37d9
7 changed files with 76 additions and 156 deletions
@@ -108,8 +108,9 @@ public class MenuController {
@Operation(summary = "获取菜单精简信息列表", description = "只包含被开启的菜单,用于【角色分配菜单】功能的选项。" +
"在多组织的场景下,会只返回组织所在套餐有的菜单")
public CommonResult<List<MenuSimpleRespVO>> getSimpleMenuList() {
// status0 开启 visiable1 显示
List<MenuDO> list = menuService.getMenuListByOrgan(
new MenuListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()).setVisiable(CommonStatusEnum.ENABLE.getStatus()));
new MenuListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()).setVisiable(CommonStatusEnum.DISABLE.getStatus()));
list.sort(Comparator.comparing(MenuDO::getSort));
return success(BeanUtils.toBean(list, MenuSimpleRespVO.class));
}
@@ -17,11 +17,6 @@ public class UserSaveReqVO {
@Schema(description = "用户编号", example = "1024")
private Long id;
@Schema(description = "a", requiredMode = Schema.RequiredMode.REQUIRED, example = "chenfeng")
@Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户名由 数字、字母 组成")
@Size(min = 4, max = 30, message = "用户名长度为 4-30 个字符")
private String username;
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰")
@Size(max = 30, message = "用户昵称长度不能超过30个字符")
private String nickname;
@@ -15,6 +15,7 @@ import com.cf.imes.module.system.controller.admin.user.vo.user.UserPageReqVO;
import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -162,4 +163,13 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
.eq(AdminUserDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
.between(AdminUserDO::getLoginDate, startTime, endTIme)));
}
/**
* 数据库锁id下的数据,注意使用
*
* @param id
* @return
*/
@Select("SELECT username FROM system_users WHERE id = #{id} FOR UPDATE")
AdminUserDO selectByIdForUpdate(@Param("id") Long id);
}
@@ -130,13 +130,14 @@ public class AdminUserServiceImpl implements AdminUserService {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.USER_COUNT_MAX, organ.getAccountCount());
}
});
// 改造:手机号直接当做用户名
createReqVO.setUsername(createReqVO.getMobile());
// 校验正确性
validateUserForCreateOrUpdate(null, createReqVO.getUsername(),
validateUserForCreateOrUpdate(null, createReqVO.getMobile(),
createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds(), null, organId);
// 插入用户
AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class);
// 改造:手机号直接当做用户名
user.setUsername(createReqVO.getMobile());
user.setOrganId(createReqVO.getOrganId());
String pinyinFull = PinYinUtils.convertToPinyin(user.getNickname());
if (StringUtils.isNotBlank(pinyinFull)) {
@@ -157,10 +158,11 @@ public class AdminUserServiceImpl implements AdminUserService {
@Transactional(rollbackFor = Exception.class)
public void updateUser(UserSaveReqVO updateReqVO) {
Long organId = updateReqVO.getOrganId() == null ? OrganContextHolder.getOrganId(): updateReqVO.getOrganId();
String mobile = updateReqVO.getMobile();
// 不允许关闭自身状态
checkCurrentWhenOperateStatus(updateReqVO.getId(), updateReqVO.getStatus());
// 校验正确性
validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(),
validateUserForCreateOrUpdate(updateReqVO.getId(), mobile,
updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(), null, organId);
// 更新用户
AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
@@ -174,7 +176,16 @@ public class AdminUserServiceImpl implements AdminUserService {
updateObj.setPinyinFull(pinyinFull);
updateObj.setPinyinInitial(PinYinUtils.convertFirstChar(updateReqVO.getNickname()));
}
Long id = updateObj.getId();
if (ObjectUtil.isNotNull(id)) {
AdminUserDO adminUserDO = userMapper.selectByIdForUpdate(id);
// 当手机号(账号)发生改变时,清空密码
if (ObjectUtil.isNotNull(adminUserDO) && !Objects.equals(adminUserDO.getUsername(), mobile)) {
// 清空密码
updateObj.setPassword("");
updateObj.setUsername(mobile);
}
}
userMapper.updateById(updateObj);
// 更新岗位
updateUserPost(updateReqVO, updateObj);