增加忘记密码

This commit is contained in:
wwb 2024-12-08 21:34:10 +08:00
parent 5ad0473e03
commit 3894c47452
14 changed files with 1259 additions and 620 deletions

View File

@ -24,5 +24,6 @@ public interface ErrorCodeConstants extends cn.hangtag.module.system.enums.Erro
ErrorCode PRODUCE_ORDER_IMPORT_LIST_IS_EMPTY = new ErrorCode(4003, "导入生产制单数据不能为空");
ErrorCode SALE_CONTRACT_NOT_EXISTS = new ErrorCode(5000, "OMS销售合约不存在");
ErrorCode PRODUCT_PRICE_NOT_EXISTS = new ErrorCode(600, "产品单价记录不存在");
ErrorCode CUSTOMER_EMAIL_EXISTS = new ErrorCode(600, "已存在重复的客户邮箱号");
}

View File

@ -13,6 +13,7 @@ import cn.hangtag.module.oms.controller.admin.customer.front.vo.AddressInfoVO;
import cn.hangtag.module.oms.controller.admin.customer.front.vo.CustomerInfoVO;
import cn.hangtag.module.oms.serialnumber.CodingRulesUtils;
import cn.hangtag.module.system.controller.admin.user.vo.user.UserSaveReqVO;
import cn.hangtag.module.system.dal.dataobject.user.AdminUserDO;
import cn.hangtag.module.system.service.permission.PermissionService;
import cn.hangtag.module.system.service.user.AdminUserService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -74,9 +75,15 @@ public class CustomerServiceImpl implements CustomerService {
customer.setNumber(getNewCode());
}
// 判断是否存在重复的邮箱账户
AdminUserDO user = userService.getUserByMail(createReqVO.getEmail(), 999999);
if(user!=null){
throw exception(CUSTOMER_EMAIL_EXISTS);
}
//新增用户账号
UserSaveReqVO userSaveReqVO = new UserSaveReqVO();
userSaveReqVO.setUsername(createReqVO.getPhone());
userSaveReqVO.setUsername(createReqVO.getEmail());
userSaveReqVO.setNickname(createReqVO.getName());
userSaveReqVO.setMobile(createReqVO.getPhone());
userSaveReqVO.setPassword(userInitPassword);
@ -94,8 +101,6 @@ public class CustomerServiceImpl implements CustomerService {
// 插入子表
createCustomerAddressList(customer.getId(), createReqVO.getCustomerAddresss());
// 返回
return customer.getId();
}

View File

@ -34,4 +34,8 @@ public class AuthMailModifyPwdReqVO {
@NotEmpty(message = "验证码不能为空")
private String code;
@Schema(description = "账户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotEmpty(message = "账户类型不能为空")
private Integer type;
}

View File

@ -30,4 +30,7 @@ public class AuthMailSendReqVO {
@InEnum(MailSceneEnum.class)
private Integer scene;
@Schema(description = "账户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "账户类型不能为空")
private Integer type;
}

View File

@ -25,6 +25,10 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
return selectOne(AdminUserDO::getEmail, email);
}
default AdminUserDO selectByEmail(String email,Integer type) {
return selectOne(AdminUserDO::getEmail, email,AdminUserDO::getDeptId,type);
}
default AdminUserDO selectByMobile(String mobile) {
return selectOne(AdminUserDO::getMobile, mobile);
}

View File

@ -262,7 +262,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
@Override
public void sendMailCode(AuthMailSendReqVO reqVO) {
// 登录场景验证是否存在
if (userService.getUserByMail(reqVO.getMail()) == null) {
if (userService.getUserByMail(reqVO.getMail(),reqVO.getType()) == null) {
throw exception(MAIL_ACCOUNT_NOT_EXISTS);
}
// 发送验证码
@ -275,7 +275,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
mailCodeApi.useMailCode(AuthConvert.INSTANCE.convert(reqVO, MailSceneEnum.MEMBER_RESET_PASSWORD.getScene(), getClientIP()));
// 获得用户信息
AdminUserDO user = userService.getUserByMail(reqVO.getMail());
AdminUserDO user = userService.getUserByMail(reqVO.getMail(),reqVO.getType());
if (user == null) {
throw exception(USER_NOT_EXISTS);
}

View File

@ -209,7 +209,7 @@ public interface AdminUserService {
* @param mail 邮箱号
* @return 用户对象信息
*/
AdminUserDO getUserByMail(String mail);
AdminUserDO getUserByMail(String mail,Integer type);
}

View File

@ -497,8 +497,8 @@ public class AdminUserServiceImpl implements AdminUserService {
}
@Override
public AdminUserDO getUserByMail(String mail) {
return userMapper.selectByEmail(mail);
public AdminUserDO getUserByMail(String mail,Integer type) {
return userMapper.selectByEmail(mail,type);
}
/**

View File

@ -37,7 +37,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input v-model="formData.email" placeholder="请输入邮箱" />
<el-input v-model="formData.email" placeholder="请输入邮箱" :disabled="formType=='update'" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -175,6 +175,7 @@ const formRules = reactive({
}
],
email: [
{ required: true, message: '邮箱不能为空', trigger: 'blur' },
{
type: 'email',
message: '请输入正确的邮箱地址',

View File

@ -15,6 +15,7 @@ export interface SmsLoginVO {
export interface MailCodeVO {
mail: string
scene: number
type: number
}
@ -23,6 +24,7 @@ export interface MailModifyPwdVO {
password: string
checkpassword: string
code: string
type: number
}
// 登录

View File

@ -145,6 +145,9 @@ export default {
SmsSendMsg: 'code has been sent',
pwdResetSuccess: 'password reset success'
},
forgetpassword: {
resetpwd: 'reset pwd',
},
captcha: {
verification: 'Please complete security verification',
slide: 'Swipe right to complete verification',

View File

@ -145,6 +145,9 @@ export default {
SmsSendMsg: '验证码已发送',
pwdResetSuccess: '密码重置成功'
},
forgetpassword: {
resetpwd: '重置密码',
},
captcha: {
verification: '请完成安全验证',
slide: '向右滑动完成验证',

View File

@ -103,7 +103,7 @@
<el-form-item>
<XButton
:loading="loginLoading"
:title="t('login.login')"
:title="t('forgetpassword.resetpwd')"
class="w-[100%]"
type="primary"
@click="modifyPwdIn()"
@ -173,11 +173,13 @@ const loginData = reactive({
const mailVO = reactive({
mailCode: {
mail: '',
scene: 4
scene: 4,
type: 999999
},
loginMail: {
mail: '',
code: ''
code: '',
type: 999999
}
})
const mailCodeTimer = ref(0)