From 44dcfcdd50f1f55cbce3def11ca45c8c2fffe234 Mon Sep 17 00:00:00 2001 From: feng93 <498533950@qq.com> Date: Thu, 25 Mar 2021 21:14:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E7=9A=84=E4=B8=80=E4=BA=9B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validators/date/DateValueValidator.java | 25 +++++---- .../api/validators/phone/PhoneValue.java | 40 +++++++++++++++ .../validators/phone/PhoneValueValidator.java | 36 +++++++++++++ .../kernel/system/api/PositionServiceApi.java | 11 ++++ .../api/pojo/organization/HrPositionDTO.java | 51 +++++++++++++++++++ .../api/pojo/user/request/SysUserRequest.java | 9 ++-- .../service/HrPositionService.java | 5 +- .../user/mapper/mapping/SysUserMapper.xml | 8 ++- .../user/service/SysUserOrgService.java | 26 ++++++++-- .../impl/SysUserOrgServiceServiceImpl.java | 19 +++++++ .../user/service/impl/SysUserServiceImpl.java | 12 ++++- 11 files changed, 217 insertions(+), 25 deletions(-) create mode 100644 kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/phone/PhoneValue.java create mode 100644 kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/phone/PhoneValueValidator.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/PositionServiceApi.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionDTO.java diff --git a/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/date/DateValueValidator.java b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/date/DateValueValidator.java index 402873567..e1069f957 100644 --- a/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/date/DateValueValidator.java +++ b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/date/DateValueValidator.java @@ -51,17 +51,22 @@ public class DateValueValidator implements ConstraintValidator[] payload() default {}; + + /** + * 是否必填 + *

+ * 如果必填,在校验的时候本字段没值就会报错 + */ + boolean required() default true; + + @Target({ElementType.FIELD, ElementType.PARAMETER}) + @Retention(RUNTIME) + @Documented + @interface List { + PhoneValue[] value(); + } +} diff --git a/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/phone/PhoneValueValidator.java b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/phone/PhoneValueValidator.java new file mode 100644 index 000000000..8de4b44d0 --- /dev/null +++ b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/phone/PhoneValueValidator.java @@ -0,0 +1,36 @@ +package cn.stylefeng.roses.kernel.validator.api.validators.phone; + +import cn.hutool.core.util.StrUtil; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +/** + * 校验手机号是否为11位 + * + * @author fengshuonan + * @date 2020/10/31 14:53 + */ +public class PhoneValueValidator implements ConstraintValidator { + + private Boolean required; + + @Override + public void initialize(PhoneValue constraintAnnotation) { + this.required = constraintAnnotation.required(); + } + + @Override + public boolean isValid(String phoneValue, ConstraintValidatorContext context) { + + if (StrUtil.isEmpty(phoneValue)) { + if (required) { + return false; + } else { + return true; + } + } else { + return phoneValue.length() == 11; + } + } +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/PositionServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/PositionServiceApi.java new file mode 100644 index 000000000..5a631b5bf --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/PositionServiceApi.java @@ -0,0 +1,11 @@ +package cn.stylefeng.roses.kernel.system.api; + +/** + * 职位api + * + * @author linjinfeng + * @date 2021/3/24 17:20 + */ +public interface PositionServiceApi { + +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionDTO.java new file mode 100644 index 000000000..f4199f10c --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrPositionDTO.java @@ -0,0 +1,51 @@ +package cn.stylefeng.roses.kernel.system.api.pojo.organization; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 系统职位表 + * + * @author fengshuonan + * @date 2020/11/04 11:05 + */ +@Data +public class HrPositionDTO { + + /** + * 主键 + */ + private Long positionId; + + /** + * 职位名称 + */ + private String positionName; + + /** + * 职位编码 + */ + private String positionCode; + + /** + * 排序 + */ + private BigDecimal positionSort; + + /** + * 状态:1-启用,2-禁用 + */ + private Integer statusFlag; + + /** + * 职位备注 + */ + private String positionRemark; + + /** + * 删除标记:Y-已删除,N-未删除 + */ + private String delFlag; + +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java index a4adcbcd4..674ca9e17 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java @@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.user.request; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.validator.api.validators.date.DateValue; +import cn.stylefeng.roses.kernel.validator.api.validators.phone.PhoneValue; import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue; import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue; import lombok.Data; @@ -34,7 +35,6 @@ import lombok.EqualsAndHashCode; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.util.List; /** @@ -86,7 +86,6 @@ public class SysUserRequest extends BaseRequest { /** * 姓名 */ - @NotBlank(message = "姓名不能为空", groups = {add.class, edit.class, updateInfo.class}) private String realName; /** @@ -98,7 +97,7 @@ public class SysUserRequest extends BaseRequest { /** * 生日 */ - @DateValue(message = "生日格式不正确", groups = {add.class, edit.class}) + @DateValue(required = false, message = "生日格式不正确", groups = {add.class, edit.class}) private String birthday; /** @@ -116,8 +115,7 @@ public class SysUserRequest extends BaseRequest { /** * 手机 */ - @NotNull(message = "手机号码不能为空", groups = {add.class, edit.class, reg.class}) - @Size(min = 11, max = 11, message = "手机号码格式错误,不是11位", groups = {add.class, edit.class, reg.class}) + @PhoneValue(required = false, message = "手机号码格式错误", groups = {add.class, edit.class, reg.class}) private String phone; /** @@ -146,7 +144,6 @@ public class SysUserRequest extends BaseRequest { /** * 用户所属机构的职务 */ - @NotNull(message = "用户职务不能为空", groups = {add.class, edit.class}) private Long positionId; /** diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrPositionService.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrPositionService.java index 1f29826fe..1851a4bdc 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrPositionService.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrPositionService.java @@ -25,8 +25,9 @@ package cn.stylefeng.roses.kernel.system.modular.organization.service; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; -import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrPosition; +import cn.stylefeng.roses.kernel.system.api.PositionServiceApi; import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrPositionRequest; +import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrPosition; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -37,7 +38,7 @@ import java.util.List; * @author chenjinlong * @date 2020/11/04 11:07 */ -public interface HrPositionService extends IService { +public interface HrPositionService extends IService, PositionServiceApi { /** * 添加职位 diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/mapper/mapping/SysUserMapper.xml b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/mapper/mapping/SysUserMapper.xml index ba366ceeb..2ff311572 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/mapper/mapping/SysUserMapper.xml +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/mapper/mapping/SysUserMapper.xml @@ -17,9 +17,11 @@ suser.tel as tel, suser.status_flag as statusFlag, suorg.org_id as orgId, - suorg.position_id as positionId + suorg.position_id as positionId, + hpos.position_name as positionName from sys_user suser left join sys_user_org suorg on suser.user_id = suorg.user_id + left join hr_position hpos on suorg.position_id = hpos.position_id and suser.real_name like concat('%',#{sysUserRequest.realName},'%') @@ -55,9 +57,11 @@ suser.tel as tel, suser.status_flag as statusFlag, suorg.org_id as orgId, - suorg.position_id as positionId + suorg.position_id as positionId, + hpos.position_name as positionName from sys_user suser left join sys_user_org suorg on suser.user_id = suorg.user_id + left join hr_position hpos on suorg.position_id = hpos.position_id and suser.real_name like concat('%',#{sysUserRequest.realName},'%') diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java index 9b30edebb..cb21e1586 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java @@ -25,8 +25,8 @@ package cn.stylefeng.roses.kernel.system.modular.user.service; import cn.stylefeng.roses.kernel.system.api.UserOrgServiceApi; -import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserOrg; import cn.stylefeng.roses.kernel.system.api.pojo.user.request.UserOrgRequest; +import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserOrg; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -53,7 +53,17 @@ public interface SysUserOrgService extends IService, UserOrgServiceA * * @param userId 用户id * @param orgId 机构id - * @param positionId 部门id + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + void add(Long userId, Long orgId); + + /** + * 新增 + * + * @param userId 用户id + * @param orgId 机构id + * @param positionId 职位id * @author chenjinlong * @date 2021/1/26 12:52 */ @@ -91,7 +101,17 @@ public interface SysUserOrgService extends IService, UserOrgServiceA * * @param userId 用户id * @param orgId 机构id - * @param positionId 部门id + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + void edit(Long userId, Long orgId); + + /** + * 修改 + * + * @param userId 用户id + * @param orgId 机构id + * @param positionId 职位id * @author chenjinlong * @date 2021/1/26 12:52 */ diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java index abab0e643..3309a054c 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java @@ -72,6 +72,14 @@ public class SysUserOrgServiceServiceImpl extends ServiceImpl impl this.save(sysUser); // 更新用户员工信息 - sysUserOrgService.add(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); + if (null == sysUserRequest.getPositionId()) { + sysUserOrgService.add(sysUser.getUserId(), sysUserRequest.getOrgId()); + }else { + sysUserOrgService.add(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); + } } @Override @@ -229,7 +233,11 @@ public class SysUserServiceImpl extends ServiceImpl impl Long sysUserId = sysUser.getUserId(); // 更新用户员工信息 - sysUserOrgService.edit(sysUserId, sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); + if (null == sysUserRequest.getPositionId()) { + sysUserOrgService.edit(sysUser.getUserId(), sysUserRequest.getOrgId()); + }else { + sysUserOrgService.edit(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); + } // 清除缓存中的用户信息 sysUserCacheOperatorApi.remove(String.valueOf(sysUserId));