diff --git a/web-adapter/src/main/java/com/zcloud/certificate/web/UserController.java b/web-adapter/src/main/java/com/zcloud/certificate/web/UserController.java new file mode 100644 index 0000000..d50159b --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/certificate/web/UserController.java @@ -0,0 +1,28 @@ +package com.zcloud.certificate.web; + +import com.alibaba.cola.dto.MultiResponse; +import com.zcloud.certificate.api.UserServiceI; +import com.zcloud.certificate.dto.UserQryCmd; +import com.zcloud.certificate.dto.clientobject.UserCO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "user") +@RequestMapping("/${application.gateway}/user") +@RestController +@AllArgsConstructor +public class UserController { + private final UserServiceI userService; + + @ApiOperation("查询所有用户") + @GetMapping("/listAll") + @PreAuthorize("@pms.hasAnyPermission('gfd-tzzyrugl', 'gfd-tzsbczrygl', 'gfd-qyzyfzrgl','gfd-qyaqscglrygl', 'qyd-tzzyrugl', 'qyd-tzsbczrygl', 'qyd-zyfzrgl','qyd-aqscglrygl', 'xgfd-zyfzrgl', 'xgfd-tzzzsbczrygl', 'xgfd-aqscglrygl','xgfd-tzzyrugl')") + public MultiResponse listAll(UserQryCmd userQryCmd) { + return userService.listAll(userQryCmd); + } +} diff --git a/web-app/src/main/java/com/zcloud/certificate/command/convertor/UserCoConvertor.java b/web-app/src/main/java/com/zcloud/certificate/command/convertor/UserCoConvertor.java new file mode 100644 index 0000000..d415f3c --- /dev/null +++ b/web-app/src/main/java/com/zcloud/certificate/command/convertor/UserCoConvertor.java @@ -0,0 +1,13 @@ +package com.zcloud.certificate.command.convertor; + +import com.zcloud.certificate.dto.clientobject.UserCO; +import com.zcloud.certificate.persistence.dataobject.UserDO; +import org.mapstruct.Mapper; + +import java.util.List; + +@Mapper(componentModel = "spring") +public interface UserCoConvertor { + + List converDOsToCOs(List userDOs); +} diff --git a/web-app/src/main/java/com/zcloud/certificate/command/query/UserQueryExe.java b/web-app/src/main/java/com/zcloud/certificate/command/query/UserQueryExe.java new file mode 100644 index 0000000..079fce9 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/certificate/command/query/UserQueryExe.java @@ -0,0 +1,28 @@ +package com.zcloud.certificate.command.query; + +import com.alibaba.cola.dto.MultiResponse; +import com.zcloud.certificate.command.convertor.UserCoConvertor; +import com.zcloud.certificate.dto.UserQryCmd; +import com.zcloud.certificate.dto.clientobject.UserCO; +import com.zcloud.certificate.persistence.dataobject.UserDO; +import com.zcloud.certificate.persistence.repository.UserRepository; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +@Component +@AllArgsConstructor +public class UserQueryExe { + private final UserRepository userRepository; + private final UserCoConvertor userCoConvertor; + + public MultiResponse executeListAll(UserQryCmd userQryCmd) { + Map params = PageQueryHelper.toHashMap(userQryCmd); + List userDOList = userRepository.listAll(params); + List userCOList = userCoConvertor.converDOsToCOs(userDOList); + return MultiResponse.of(userCOList); + } +} diff --git a/web-app/src/main/java/com/zcloud/certificate/service/UserServiceImpl.java b/web-app/src/main/java/com/zcloud/certificate/service/UserServiceImpl.java new file mode 100644 index 0000000..222d049 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/certificate/service/UserServiceImpl.java @@ -0,0 +1,20 @@ +package com.zcloud.certificate.service; + +import com.alibaba.cola.dto.MultiResponse; +import com.zcloud.certificate.api.UserServiceI; +import com.zcloud.certificate.command.query.UserQueryExe; +import com.zcloud.certificate.dto.UserQryCmd; +import com.zcloud.certificate.dto.clientobject.UserCO; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class UserServiceImpl implements UserServiceI { + private final UserQueryExe userQueryExe; + + @Override + public MultiResponse listAll(UserQryCmd userQryCmd) { + return userQueryExe.executeListAll(userQryCmd); + } +} diff --git a/web-client/src/main/java/com/zcloud/certificate/api/UserServiceI.java b/web-client/src/main/java/com/zcloud/certificate/api/UserServiceI.java new file mode 100644 index 0000000..138c8dd --- /dev/null +++ b/web-client/src/main/java/com/zcloud/certificate/api/UserServiceI.java @@ -0,0 +1,10 @@ +package com.zcloud.certificate.api; + +import com.alibaba.cola.dto.MultiResponse; +import com.zcloud.certificate.dto.UserQryCmd; +import com.zcloud.certificate.dto.clientobject.UserCO; + +public interface UserServiceI { + + MultiResponse listAll(UserQryCmd userQryCmd); +} diff --git a/web-client/src/main/java/com/zcloud/certificate/dto/UserQryCmd.java b/web-client/src/main/java/com/zcloud/certificate/dto/UserQryCmd.java new file mode 100644 index 0000000..df6ff17 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/certificate/dto/UserQryCmd.java @@ -0,0 +1,47 @@ +package com.zcloud.certificate.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class UserQryCmd extends PageQuery { + + @ApiModelProperty(value = "企业ID") + private String eqCorpinfoId; + + @ApiModelProperty(value = "部门ID") + private String eqDepartmentId; + + @ApiModelProperty(value = "岗位ID") + private String eqPostId; + + @ApiModelProperty(value = "在职状态") + private String eqEmploymentFlag; + + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "部门ID") + private Long departmentId; + + @ApiModelProperty(value = "岗位ID") + private Long postId; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "是否排除主账号") + private Integer noMain; + + @ApiModelProperty(value = "是否查询当前企业") + private String isMyCorp; + + @ApiModelProperty(value = "用户ID集合") + private List userIdList; + + @ApiModelProperty(value = "菜单路径") + private String menuPath; +} diff --git a/web-client/src/main/java/com/zcloud/certificate/dto/clientobject/UserCO.java b/web-client/src/main/java/com/zcloud/certificate/dto/clientobject/UserCO.java new file mode 100644 index 0000000..f131cd3 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/certificate/dto/clientobject/UserCO.java @@ -0,0 +1,53 @@ +package com.zcloud.certificate.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserCO extends ClientObject { + @ApiModelProperty(value = "主键ID") + private Long id; + + @ApiModelProperty(value = "用户业务ID") + private String userId; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "部门ID") + private Long departmentId; + + @ApiModelProperty(value = "岗位ID") + private Long postId; + + @ApiModelProperty(value = "手机号") + private String phone; + + @ApiModelProperty(value = "在职状态") + private Integer employmentFlag; + + @ApiModelProperty(value = "流程状态") + private Integer flowFlag; + + @ApiModelProperty(value = "年龄") + private Integer age; + + @ApiModelProperty(value = "生日") + private String birthday; + + @ApiModelProperty(value = "性别") + private String sex; + + @ApiModelProperty(value = "部门名称") + private String departmentName; + + @ApiModelProperty(value = "岗位名称") + private String postName; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/dataobject/UserDO.java b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/dataobject/UserDO.java new file mode 100644 index 0000000..e8b16a3 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/dataobject/UserDO.java @@ -0,0 +1,57 @@ +package com.zcloud.certificate.persistence.dataobject; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@TableName("user") +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class UserDO extends BaseDO { + + @ApiModelProperty(value = "user id") + private String userId; + + @ApiModelProperty(value = "username") + private String username; + + @ApiModelProperty(value = "name") + private String name; + + @ApiModelProperty(value = "corpinfo id") + private Long corpinfoId; + + @ApiModelProperty(value = "department id") + private Long departmentId; + + @ApiModelProperty(value = "post id") + private Long postId; + + @ApiModelProperty(value = "phone") + private String phone; + + @ApiModelProperty(value = "employment flag") + private Integer employmentFlag; + + @ApiModelProperty(value = "flow flag") + private Integer flowFlag; + + @ApiModelProperty(value = "age") + private Integer age; + + @ApiModelProperty(value = "birthday") + private String birthday; + + @ApiModelProperty(value = "sex") + private String sex; + + @ApiModelProperty(value = "department name") + private String departmentName; + + @ApiModelProperty(value = "post name") + private String postName; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/mapper/UserMapper.java b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/mapper/UserMapper.java new file mode 100644 index 0000000..36db9d9 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/mapper/UserMapper.java @@ -0,0 +1,20 @@ +package com.zcloud.certificate.persistence.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; +import com.zcloud.certificate.persistence.dataobject.UserDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +@DataScopes({ + @DataScope(method = "selectListAll", menuPerms = "") +}) +public interface UserMapper extends BaseMapper { + + List selectListAll(@Param("params") Map params, @Param("menuPerms") String menuPerms); +} diff --git a/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/repository/UserRepository.java b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/repository/UserRepository.java new file mode 100644 index 0000000..cc1f092 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/repository/UserRepository.java @@ -0,0 +1,12 @@ +package com.zcloud.certificate.persistence.repository; + +import com.jjb.saas.framework.repository.repo.BaseRepository; +import com.zcloud.certificate.persistence.dataobject.UserDO; + +import java.util.List; +import java.util.Map; + +public interface UserRepository extends BaseRepository { + + List listAll(Map params); +} diff --git a/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/repository/impl/UserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/repository/impl/UserRepositoryImpl.java new file mode 100644 index 0000000..29209bb --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/certificate/persistence/repository/impl/UserRepositoryImpl.java @@ -0,0 +1,40 @@ +package com.zcloud.certificate.persistence.repository.impl; + +import com.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; +import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; +import com.zcloud.certificate.domain.enums.MenuEnum; +import com.zcloud.certificate.persistence.dataobject.UserDO; +import com.zcloud.certificate.persistence.mapper.UserMapper; +import com.zcloud.certificate.persistence.repository.UserRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.List; +import java.util.Map; + +@Service +@RequiredArgsConstructor +public class UserRepositoryImpl extends BaseRepositoryImpl implements UserRepository { + private final UserMapper userMapper; + + @Override + public List listAll(Map params) { + if (params.containsKey("eqEmploymentFlag")) { + params.put("employmentFlag", params.get("eqEmploymentFlag")); + } + if (params.containsKey("isMyCorp")) { + SSOUser currentUser = AuthContext.getCurrentUser(); + if (currentUser != null) { + params.put("corpinfoId", currentUser.getTenantId()); + } + } + + String menuPerms = ""; + if (!ObjectUtils.isEmpty(params.get("menuPath"))) { + menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); + } + return userMapper.selectListAll(params, menuPerms); + } +} diff --git a/web-infrastructure/src/main/resources/mapper/UserMapper.xml b/web-infrastructure/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..70dc138 --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,73 @@ + + + + + + +