fix:用户昵称作为一校验,用户新增、编辑和导入都增加校验

This commit is contained in:
zhangxuanming 2024-12-24 15:05:47 +08:00
parent b8b709b019
commit effd939522
6 changed files with 44 additions and 2 deletions

View File

@ -123,6 +123,10 @@ public class SysUserController extends BaseController
{
return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
}
else if (StringUtils.isNotEmpty(user.getNickName())
&& UserConstants.NOT_UNIQUE.equals(userService.checkNickNameUnique(user))) {
return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,昵称已存在");
}
else if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
{
@ -153,6 +157,10 @@ public class SysUserController extends BaseController
{
return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
}
else if (StringUtils.isNotEmpty(user.getNickName())
&& UserConstants.NOT_UNIQUE.equals(userService.checkNickNameUnique(user))) {
return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,昵称已存在");
}
else if (StringUtils.isNotEmpty(user.getEmail())
&& UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
{

View File

@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectWmStorageLocationVo"/>
where location_name = #{locationName} and warehouse_id = #{warehouseId} limit 1
</select>
<select id="selectByLocationIds" resultType="com.ktg.mes.wm.domain.WmStorageLocation">
<select id="selectByLocationIds" resultType="com.ktg.mes.wm.domain.WmStorageLocation" resultMap="WmStorageLocationResult">
<include refid="selectWmStorageLocationVo"/>
where location_id in
<foreach collection="ids" item="item" separator="," open="(" close=")">

View File

@ -131,4 +131,6 @@ public interface SysUserMapper
* @return 结果
*/
public SysUser checkEmailUnique(String email);
int checkUserNickNameUnique(SysUser user);
}

View File

@ -210,4 +210,11 @@ public interface ISysUserService
* @return 结果
*/
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
/**
* 校验昵称是否存在
* @param user
* @return
*/
String checkNickNameUnique(SysUser user);
}

View File

@ -4,6 +4,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import cn.hutool.core.util.ObjectUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -521,6 +523,16 @@ public class SysUserServiceImpl implements ISysUserService
{
try
{
if (ObjectUtil.isEmpty(user.getNickName())) {
failureNum++;
failureMsg.append("<br/>" + "必填项未填写");
continue;
}
if (UserConstants.NOT_UNIQUE.equals(checkNickNameUnique(user))) {
failureNum++;
failureMsg.append("<br/>" + "昵称重复");
continue;
}
// 验证是否存在这个用户
SysUser u = userMapper.selectUserByUserName(user.getUserName());
if (StringUtils.isNull(u))
@ -567,4 +579,14 @@ public class SysUserServiceImpl implements ISysUserService
}
return successMsg.toString();
}
@Override
public String checkNickNameUnique(SysUser user) {
int count = userMapper.checkUserNickNameUnique(user);
if (count > 0)
{
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
}

View File

@ -145,7 +145,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
select user_id, email from sys_user where email = #{email} limit 1
</select>
<select id="checkUserNickNameUnique" resultType="java.lang.Integer">
select count(1) from sys_user where nick_name = #{nickName} limit 1
</select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if>