From 2d66b8c54838441f7c65ff18370505772a7a95ff Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Wed, 7 Jun 2023 19:56:36 +0800 Subject: [PATCH] Added email and tel verify --- .../service/impl/StaffServiceImpl.java | 19 ++++++++++++++ ui/src/pages/info/StaffManagement.vue | 26 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java index 78206ee..f327fab 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java @@ -13,8 +13,10 @@ import com.cfive.pinnacle.utils.WebUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import java.util.Objects; +import java.util.regex.Pattern; /** *

@@ -56,6 +58,8 @@ public class StaffServiceImpl extends ServiceImpl implements @Override @Transactional public boolean modifyStaff(User user) { + verifyEmailAndTel(user.getStaff()); + Long departmentId = user.getDepartmentId(); Staff newStaff = user.getStaff(); user = userMapper.getOneById(user.getId()); @@ -81,6 +85,8 @@ public class StaffServiceImpl extends ServiceImpl implements @Override @Transactional public boolean modifySelf(Staff staff) { + verifyEmailAndTel(staff); + User user = WebUtil.getLoginUser().getUser(); Staff oldStaff = user.getStaff(); staff.setUserId(user.getId()); @@ -94,4 +100,17 @@ public class StaffServiceImpl extends ServiceImpl implements return true; } + + public void verifyEmailAndTel(Staff staff) { + String email = staff.getEmail(); + String tel = staff.getTel(); + String emailPattern = "^\\w[-\\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\\.)+[A-Za-z]{2,14}$"; + String telPattern = "0?(13|14|15|17|18|19)[0-9]{9}"; + if (StringUtils.hasText(email) && !Pattern.matches(emailPattern, email)) { + throw new DataValidationFailedException(); + } + if (StringUtils.hasText(tel) && !Pattern.matches(telPattern, tel)) { + throw new DataValidationFailedException(); + } + } } diff --git a/ui/src/pages/info/StaffManagement.vue b/ui/src/pages/info/StaffManagement.vue index 8b4def5..fd22d8b 100644 --- a/ui/src/pages/info/StaffManagement.vue +++ b/ui/src/pages/info/StaffManagement.vue @@ -200,6 +200,20 @@ import { ElMessage } from 'element-plus' export default { name: 'StaffManagement', data() { + const checkEmail = (rule, value, callback) => { + if (value && !/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/.test(value)) { + return callback(new Error('非法邮箱地址')) + } else { + return callback() + } + } + const checkTel = (rule, value, callback) => { + if (value && !/^0?(13|14|15|17|18|19)[0-9]{9}$/.test(value)) { + return callback(new Error('非法手机号码')) + } else { + return callback() + } + } return { dialogVisible: false, tableLoading: true, @@ -232,6 +246,18 @@ export default { required: true, message: '姓氏为必填项' } + ], + inputEmail: [ + { + validator: checkEmail, + message: '非法邮箱地址' + } + ], + inputTel: [ + { + validator: checkTel, + message: '非法手机号码' + } ] }, departments: [],